2.2
Focus on analysis and design
In the late eighties, a number of object-oriented methodologies were proposed, reflecting
that modeling and design was gaining importance. We consider this development positive,
since it encourages programmers to think about their designs before implementing tricky
inheritance relations. In analysis and design it is obvious that subclassing should be used for
representing specialisation of concepts instead of incidental inheritance.
The methodologies do, however, seem to introduce some new problems to object-
orientation:
•
Their importance are often overestimated. A lot of effort seems to be used in drawing
boxes and bubbles with little semantic meaning and often no code is ever produced.
•
New analysis and design languages are proposed. These languages are mainly graphical
notations for expressing object-oriented language constructs like class, subclass, virtual
procedure, etc. These new languages are often supported by CASE tools that support
construction of diagrams and code generation. As discussed in section 2.3 this has
reintroduced the traditional problems with CASE gap and reverse engineering.
The real benefit of object-orientation compared to traditional structured analysis and design
(SA/SD) is that object-orientation provides a unifying perspective on analysis, design and
implementation. This unification also includes data modeling in databases, since object-
oriented databases provides much richer modeling capabilities than relational databases.
Traditional SA/SD has never been used in the Simula/BETA community and probably
the same can be said about most Smalltalk programmers. It has always been considered
something that was needed when programming in COBOL, since there was a need for
something at a more abstract level. In contrast, Simula/BETA have been used for design
since they were designed to be able to represent real world phenomena and concepts.
It has always been difficult to teach object-orientation to people working with traditional
SA/SD and Cobol, since they have insisted on having more than 'just a programming lan-
guage' for design and they did not accept object-orientation as useful in design. It helped
when Yourdon together with Coad published his book on OOA [CY89]. This immediately
made it much easier to advocate object-orientation.
The problem now seems that there is too much focus on analysis and design. In addition
people that used to be engaged in SA/SD methods are introducing problems in object-
orientation that did not use to be there. In SA/SD, the programming language has not been
considered important partly because it is usually at a much lower level than the languages
used for analysis and design. When converting to object-orientation, many methodology
people continue to ignore the importance of the programming language. It is, however, the
power of the programming languages that have made object-orientation so successful.
Do'stlaringiz bilan baham: |