Transcript
Page 1: Opps approch of software development

Object-Oriented Object-Oriented Approach/DevelopApproach/Develop

mentmentof Software of Software

Presented by: Raja PrasadPresented by: Raja PrasadMca (IV sem) AGIMca (IV sem) AGI

Page 2: Opps approch of software development

Outlines Outlines Historical ProspectiveHistorical Prospective MotivationsMotivations Object-Oriented ModelObject-Oriented Model Object-Oriented programmingObject-Oriented programming Life CycleLife Cycle Object-Oriented AnalysisObject-Oriented Analysis UmlUml Object-Oriented DesignObject-Oriented Design

Page 3: Opps approch of software development

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

Page 4: Opps approch of software development

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)

Page 5: Opps approch of software development

MotivationMotivation Benefits are Greater:Benefits are Greater:

ProductivityProductivity ReliabilityReliability MaintainabilityMaintainability ManageabilityManageability

Page 6: Opps approch of software development

MotivationMotivation Direct mapping of concepts in the problem Direct mapping of concepts in the problem

domain to software units and their domain to software units and their interfacesinterfaces

Viewing the world as objects is more natural Viewing the world as objects is more natural since it is closer to the way humans thinksince it is closer to the way humans 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 Easily modified, extended, and maintained…Easily modified, extended, and maintained…

if your product was designed correctlyif your product was designed correctly

Page 7: Opps approch of software development

Object-Oriented ModelObject-Oriented Model A “new” way of thinking about what it A “new” way of thinking about what it

means to compute and how 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 and objects that encapsulate structure and behavior in a hierarchical constructionbehavior in a hierarchical construction

Functionality achieved by messages Functionality achieved by messages passing between objectspassing between objects

Page 8: Opps approch of software development

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 ConcurrenceConcurrence ReusabilityReusability ExtensibilityExtensibility

Page 9: Opps approch of software development

Object-Oriented ModelObject-Oriented Model The integration The integration

of procedural of procedural and data-driven and data-driven approachesapproaches

Page 10: Opps approch of software development

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, or Response can be a message or routine, or

delegation of the message to another delegation of the message to another objectobject

Page 11: Opps approch of software development

Object Oriented Object Oriented ProgrammingProgramming

Page 12: Opps approch of software development

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)

Page 13: Opps approch of software development

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

Page 14: Opps approch of software development

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

Page 15: Opps approch of software development

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

Page 16: Opps approch of software development

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

Page 17: Opps approch of software development

UMLUML UML is a standard language for specifying, UML is a standard language for specifying,

visualizing, constructing, and documenting visualizing, constructing, and documenting the artifacts of software systems.the artifacts of software systems.

UML was created by Object Management UML was created by Object Management Group (OMG) and UML 1.0 specification Group (OMG) and UML 1.0 specification draft was proposed to the OMG in January draft was proposed to the OMG in January 1997.1997.

UML stands for UML stands for UUnified nified MModeling odeling LLanguage.anguage.

UML is a pictorial language used to make UML is a pictorial language used to make software blue prints.software blue prints.

Page 18: Opps approch of software development

UML Building-BlocksUML Building-BlocksThere three building blocks of UML

Building-Blocks

Relationships Diagrams

Structural

Behavioral

Grouping

Annotational

Page 19: Opps approch of software development

ThingsThingsStructural things: Structural things define the static part of the model. They represent physical and conceptual elements

Page 20: Opps approch of software development

Continue thingsContinue things

Page 21: Opps approch of software development

Behavioral thingsBehavioral thingsA behavioral thing consists of the dynamic parts of UML models.

Page 22: Opps approch of software development

Grouping thingsGrouping thingsGrouping things can be defined as a mechanism to group elements of a UML model together.

Page 23: Opps approch of software development

Annotational thingsAnnotational thingsAnnotational things can be defined as a mechanism to capture remarks, descriptions, and comments of UML model elements. Note is the only one Annotational thing available.

Page 24: Opps approch of software development

RelationshipRelationshipRelationship is another most important building block of UML. It shows how elements are associated with each other and this association describes the functionality of an application.

Page 25: Opps approch of software development

RelationshipRelationship

Page 26: Opps approch of software development

Structural NotationStructural Notationclass

Object

Page 27: Opps approch of software development

Structural NotationStructural Notation

Page 28: Opps approch of software development

Class diagramClass diagramDefn:-The class diagram is a static diagram. It represents the static view of an application.Purpose:-The purpose of the class diagram is to model the static view of an application.

Page 29: Opps approch of software development

Object diagramObject diagramDefn:-Object diagrams are derived from class diagrams so object diagrams are dependent upon class diagrams.Object diagrams represent an instance of a class diagram.Purpose:-The purpose of a diagram should be understood clearly to implement it practically.

Page 30: Opps approch of software development

Component diagramComponent diagramDefn:-Component diagrams are used to model physical aspects of a system.Purpose:-It does not describe the functionality of the system but it describes the components used to make those functionalities.

Page 31: Opps approch of software development

Deployment diagramDeployment diagramDefn:-deployment diagrams are used to describe the static deployment view of a system. Deployment diagrams consist of nodes and their relationships.Purpose:-Deployment diagrams are used for describing the hardware components where software components are deployed.

Page 32: Opps approch of software development

Use caseUse caseDefn:-deployment diagrams are used to describe the static deployment view of a system. Deployment diagrams consist of nodes and their relationships.Purpose:-Deployment diagrams are used for describing the hardware components where software components are deployed.

Page 33: Opps approch of software development

Sequence diagramSequence diagram

Page 34: Opps approch of software development

Collaboration diagramCollaboration diagram

Page 35: Opps approch of software development

Structure chart diagramStructure chart diagram

Page 36: Opps approch of software development

Activity diagramActivity diagram

Page 37: Opps approch of software development

Object-Oriented DesignObject-Oriented Design Object focus shifts to the solution Object focus shifts to the solution

domaindomain 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

Page 38: Opps approch of software development

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

Page 39: Opps approch of software development

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

Page 40: Opps approch of software development

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)

Page 41: Opps approch of software development
Page 42: Opps approch of software development

Questions? Comments?Questions? Comments? Feel free to speak up!Feel free to speak up!


Top Related