Object-Oriented Development By Linda M. Northrop vol. 1, chapter 5, pp. 291-300 Presented by:...
-
Upload
lambert-hopkins -
Category
Documents
-
view
214 -
download
0
Transcript of Object-Oriented Development By Linda M. Northrop vol. 1, chapter 5, pp. 291-300 Presented by:...
Object-Oriented Object-Oriented DevelopmentDevelopmentBy Linda M. NorthropBy Linda M. Northrop
vol. 1, chapter 5, pp. 291-300 vol. 1, chapter 5, pp. 291-300
Presented by: Gleyner Presented by: Gleyner GardenGarden
EEL6883EEL6883
Software Engineering II Software Engineering II
IntroductionIntroduction
The paper was written in 1994 and provides The paper was written in 1994 and provides an overview of object-oriented methodologiesan overview of object-oriented methodologies
Describes the history of object-oriented Describes the history of object-oriented methods, models of object-oriented design, methods, models of object-oriented design, and concepts of object-oriented programmingand concepts of object-oriented programming
Most of you probably already knew most of this Most of you probably already knew most of this stuff as you were reading… but when this stuff as you were reading… but when this paper was written, a lot of these ideas were paper was written, a lot of these ideas were new to a lot of people…new to a lot of people…
Historical PerspectiveHistorical Perspective
Was initially thought of as a “research Was initially thought of as a “research curiosity”curiosity”
Object-oriented programming is today Object-oriented programming is today what structured programming was in what structured programming was in the 1970’sthe 1970’s
The Object and object attribute idea The Object and object attribute idea first conceived in the 1950’s for A.I.first conceived in the 1950’s for A.I.
The real movement began in 1966 with The real movement began in 1966 with the introduction of the the introduction of the SimulaSimula language language
Historical PerspectiveHistorical Perspective
Palo Alto Research Center (PARC) Palo Alto Research Center (PARC) developed developed SmalltalkSmalltalk in the early 1970’s in the early 1970’s SmalltalkSmalltalk is considered the first truly is considered the first truly
object-oriented languageobject-oriented language Led other languages to support object-Led other languages to support object-
oriented programmingoriented programming examples: examples: Objective-C, C++, Self, Eiffel, Objective-C, C++, Self, Eiffel,
andand Flavors Flavors 1980 Booch pioneered the concept of 1980 Booch pioneered the concept of
object-oriented design (OOD)object-oriented design (OOD)
MotivationMotivation
Benefits are Greater:Benefits are Greater: ProductivityProductivity ReliabilityReliability MaintainabilityMaintainability ManageabilityManageability
MotivationMotivation
Direct mapping of concepts in the Direct mapping of concepts in the problem domain to software units and problem domain to software units and their interfacestheir interfaces
Viewing the world as objects is more Viewing the world as objects is more natural since it is closer to the way natural since it is closer to the way humans thinkhumans think
Objects are more stable than functions…Objects are more stable than functions… Supports information hiding, data Supports information hiding, data
abstraction, and encapsulationabstraction, and encapsulation
MotivationMotivation
Easily modified, extended, and Easily modified, extended, and maintained…maintained… if your product was designed correctlyif your product was designed correctly
Object-Oriented ModelObject-Oriented Model
A “new” way of thinking about what A “new” way of thinking about what it means to compute and how it means to compute and how information can be structuredinformation can be structured
Systems are viewed as cooperating Systems are viewed as cooperating objects that encapsulate structure objects that encapsulate structure and behavior in a hierarchical and behavior in a hierarchical constructionconstruction
Functionality achieved by messages Functionality achieved by messages passing between objectspassing between objects
Object-Oriented ModelObject-Oriented Model Object-oriented model can be viewed as Object-oriented model can be viewed as
the framework containing: the framework containing: AbstractionAbstraction EncapsulationEncapsulation ModularityModularity HierarchyHierarchy TypingTyping ConcurrenceConcurrence PersistencePersistence ReusabilityReusability ExtensibilityExtensibility
Object-Oriented ModelObject-Oriented Model
The integration The integration of procedural of procedural and data-driven and data-driven approachesapproaches
Object Oriented Object Oriented ProgrammingProgramming
Concepts:Concepts: Programs are organized into cooperating Programs are organized into cooperating
collections of objectscollections of objects Object: entity that encapsulates state and Object: entity that encapsulates state and
behavior. An instance of a classbehavior. An instance of a class Interface or protocol: set of messages to Interface or protocol: set of messages to
which it will respondwhich it will respond Response can be a message or routine, Response can be a message or routine,
or delegation of the message to another or delegation of the message to another objectobject
LanguagesLanguages
4 Branches of object-oriented 4 Branches of object-oriented languages, with Simula being the languages, with Simula being the common ancestor:common ancestor: Smalltalk-basedSmalltalk-based CC-based-based
Objective-C, C++, JavaObjective-C, C++, Java LISPLISP-based-based
Flavors, XLISP, LOOPS, CLOSFlavors, XLISP, LOOPS, CLOS PASCALPASCAL-based-based
Object Pascal, Turbo Pascal, Eiffel, Ada 95Object Pascal, Turbo Pascal, Eiffel, Ada 95
LanguagesLanguages
Object-based languages:Object-based languages: Alphard:Alphard: CLUCLU EuclidEuclid GypsyGypsy MesaMesa AdaAda
Want to learn more about these Want to learn more about these languages (history, where their languages (history, where their names came from, etc)? click names came from, etc)? click herehere::
Life CycleLife Cycle
If it is accepted that object-oriented If it is accepted that object-oriented is more than object-oriented coding, is more than object-oriented coding, then a whole new approach, then a whole new approach, including life cycle, must be adopted including life cycle, must be adopted (Booch, 1994)(Booch, 1994)
Life CycleLife Cycle
Waterfall consists Waterfall consists of a sequential of a sequential process, primarily process, primarily in one directionin one direction
Does not Does not accommodate real accommodate real iterationiteration
Criticized for Criticized for placing no placing no emphasis on reuse emphasis on reuse and having no and having no unifying model to unifying model to integrate the integrate the phasesphases
Life CycleLife Cycle
Water fountain Water fountain life cycle life cycle describes the describes the inherent iterative inherent iterative and incremental and incremental qualities of qualities of object-oriented object-oriented developmentdevelopment
Prototyping and Prototyping and feedback loops feedback loops are standardare standard
Object-Oriented AnalysisObject-Oriented Analysis
Examines requirements from the Examines requirements from the perspective of the classes and perspective of the classes and objects found in the vocabulary of objects found in the vocabulary of the problem domainthe problem domain
Yields black-box objects that are Yields black-box objects that are derived from the problem domainderived from the problem domain
Scenarios can be used to determine Scenarios can be used to determine necessary object behaviornecessary object behavior
Analysis exampleAnalysis example
Problem: Drawing shapesProblem: Drawing shapes Scenarios:Scenarios:
Draw a pointDraw a point Draw a lineDraw a line Draw a circleDraw a circle Draw a squareDraw a square Draw a rectangleDraw a rectangle Draw a polygonDraw a polygon
Object-Oriented DesignObject-Oriented Design
Object focus shifts to the solution domainObject focus shifts to the solution domain Objects, their semantics, and Objects, their semantics, and
relationships are identifiedrelationships are identified Implementation and iteration occurImplementation and iteration occur Jacobsen says “when details of the Jacobsen says “when details of the
implementation begin to show, it’s OOD”implementation begin to show, it’s OOD” In my practice: OOA is preliminary In my practice: OOA is preliminary
design, and OOD is detailed designdesign, and OOD is detailed design
Management IssuesManagement Issues
Object-oriented development requires a Object-oriented development requires a commitment to change processes, commitment to change processes, resources, and organizational structure.resources, and organizational structure.
LOC measurements are less valuable, # LOC measurements are less valuable, # of classes reused, inheritance depth, of classes reused, inheritance depth, number of class-to-class relationships, number of class-to-class relationships, object coupling, total # of classes, and object coupling, total # of classes, and class sizes are more valuable and class sizes are more valuable and meaningfulmeaningful
Management IssuesManagement Issues
Booch suggests smaller development Booch suggests smaller development teams, and cultivation of reuse expertsteams, and cultivation of reuse experts
Reward reuse, not LOC: build libraries Reward reuse, not LOC: build libraries and application frameworksand application frameworks
QA: review and testing activities still QA: review and testing activities still essential, but timing and definition are essential, but timing and definition are differentdifferent
Tools: everything described exists in Tools: everything described exists in visual studiovisual studio
Object-Oriented Object-Oriented TransitionTransition
Levels of absorption before Levels of absorption before assimilation into a software assimilation into a software development organization occursdevelopment organization occurs
Training is essentialTraining is essential Pilot projects are recommendedPilot projects are recommended Combining structured and object-Combining structured and object-
oriented approached not oriented approached not recommendedrecommended
Object-Oriented Object-Oriented TransitionTransition
Total object-oriented approach Total object-oriented approach recommended for the following reasons:recommended for the following reasons: Traceability improvementTraceability improvement Reduction in significant integration problemsReduction in significant integration problems Improved conceptual integrity of process and Improved conceptual integrity of process and
productproduct Less need for objectification and Less need for objectification and
deobjectificationdeobjectification Maximization of the benefits of object-Maximization of the benefits of object-
orientationorientation
The FutureThe Future
The future is now… object-oriented The future is now… object-oriented development is pretty standarddevelopment is pretty standard Class libraries and application Class libraries and application
frameworks (exist)frameworks (exist) Transparent information access across Transparent information access across
applications and environments (exists)applications and environments (exists) Movement will gain popularity (did)Movement will gain popularity (did)
ConclusionConclusion
This paper was pretty cutting-edge This paper was pretty cutting-edge when it was first publishedwhen it was first published