object-oriented development by linda m. northrop vol. 1, chapter 5, pp. 291-300 presented by:...

27
Object-Oriented Object-Oriented Development Development By Linda M. Northrop By Linda M. Northrop vol. 1, chapter 5, pp. vol. 1, chapter 5, pp. 291-300 291-300 Presented by: Gleyner Presented by: Gleyner Garden Garden EEL6883 EEL6883 Software Engineering II Software Engineering II

Upload: lambert-hopkins

Post on 23-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

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

Object Oriented Object Oriented ProgrammingProgramming

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

Questions? Comments?Questions? Comments?

Feel free to speak up!Feel free to speak up!