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