ObjectOriented Development By Linda M Northrop vol 1
Object-Oriented Development By Linda M. Northrop vol. 1, chapter 5, pp. 291 -300 Presented by: Gleyner Garden EEL 6883 Software Engineering II
Introduction n n The paper was written in 1994 and provides an overview of object-oriented methodologies Describes the history of object-oriented methods, models of object-oriented design, and concepts of object-oriented programming Most of you probably already knew most of this stuff as you were reading… but when this paper was written, a lot of these ideas were new to a lot of people…
Historical Perspective Was initially thought of as a “research curiosity” n Object-oriented programming is today what structured programming was in the 1970’s n The Object and object attribute idea first conceived in the 1950’s for A. I. n The real movement began in 1966 with the introduction of the Simula language n
Historical Perspective n Palo Alto Research Center (PARC) developed Smalltalk in the early 1970’s n n Led other languages to support object-oriented programming n n Smalltalk is considered the first truly objectoriented language examples: Objective-C, C++, Self, Eiffel, and Flavors 1980 Booch pioneered the concept of objectoriented design (OOD)
Motivation n Benefits are Greater: Productivity n Reliability n Maintainability n Manageability n
Motivation Direct mapping of concepts in the problem domain to software units and their interfaces n Viewing the world as objects is more natural since it is closer to the way humans think n Objects are more stable than functions… n Supports information hiding, data abstraction, and encapsulation n
Motivation n Easily modified, extended, and maintained… n if your product was designed correctly
Object-Oriented Model A “new” way of thinking about what it means to compute and how information can be structured n Systems are viewed as cooperating objects that encapsulate structure and behavior in a hierarchical construction n Functionality achieved by messages passing between objects n
Object-Oriented Model n Object-oriented model can be viewed as the framework containing: n n n n n Abstraction Encapsulation Modularity Hierarchy Typing Concurrence Persistence Reusability Extensibility
Object-Oriented Model n The integration of procedural and datadriven approaches
Object Oriented Programming n Concepts: Programs are organized into cooperating collections of objects n Object: entity that encapsulates state and behavior. An instance of a class n Interface or protocol: set of messages to which it will respond n Response can be a message or routine, or delegation of the message to another object n
Object Oriented Programming
Languages n 4 Branches of object-oriented languages, with Simula being the common ancestor: Smalltalk-based n C-based n n Objective-C, C++, Java n LISP-based n Flavors, XLISP, LOOPS, CLOS n PASCAL-based n Object Pascal, Turbo Pascal, Eiffel, Ada 95
Languages n Object-based languages: Alphard: n CLU n Euclid n Gypsy n Mesa n Ada n Want to learn more about these languages (history, where their names came from, etc)? click here:
Life Cycle n If it is accepted that object-oriented is more than object-oriented coding, then a whole new approach, including life cycle, must be adopted (Booch, 1994)
Life Cycle n n n Waterfall consists of a sequential process, primarily in one direction Does not accommodate real iteration Criticized for placing no emphasis on reuse and having no unifying model to integrate the phases
Life Cycle n n Water fountain life cycle describes the inherent iterative and incremental qualities of objectoriented development Prototyping and feedback loops are standard
Object-Oriented Analysis Examines requirements from the perspective of the classes and objects found in the vocabulary of the problem domain n Yields black-box objects that are derived from the problem domain n Scenarios can be used to determine necessary object behavior n
Analysis example Problem: Drawing shapes n Scenarios: n n Draw a point n Draw a line n Draw a circle n Draw a square n Draw a rectangle n Draw a polygon
Object-Oriented Design Object focus shifts to the solution domain n Objects, their semantics, and relationships are identified n Implementation and iteration occur n Jacobsen says “when details of the implementation begin to show, it’s OOD” n In my practice: OOA is preliminary design, and OOD is detailed design n
Management Issues Object-oriented development requires a commitment to change processes, resources, and organizational structure. n LOC measurements are less valuable, # of classes reused, inheritance depth, number of class-to-class relationships, object coupling, total # of classes, and class sizes are more valuable and meaningful n
Management Issues Booch suggests smaller development teams, and cultivation of reuse experts n Reward reuse, not LOC: build libraries and application frameworks n QA: review and testing activities still essential, but timing and definition are different n Tools: everything described exists in visual studio n
Object-Oriented Transition Levels of absorption before assimilation into a software development organization occurs n Training is essential n Pilot projects are recommended n Combining structured and object-oriented approached not recommended n
Object-Oriented Transition n Total object-oriented approach recommended for the following reasons: Traceability improvement n Reduction in significant integration problems n Improved conceptual integrity of process and product n Less need for objectification and deobjectification n Maximization of the benefits of object-orientation n
The Future n The future is now… object-oriented development is pretty standard Class libraries and application frameworks (exist) n Transparent information access across applications and environments (exists) n Movement will gain popularity (did) n
Conclusion n This paper was pretty cutting-edge when it was first published
Questions? Comments? n Feel free to speak up!
- Slides: 27