Object-Oriented Object-Oriented Approach/DevelopApproach/Develop
mentmentof Software of Software
Presented by: Raja PrasadPresented by: Raja PrasadMca (IV sem) AGIMca (IV sem) AGI
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
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 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
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
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
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, or Response can be a message or routine, or
delegation of the message to another delegation of the message to another objectobject
Object Oriented Object Oriented ProgrammingProgramming
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
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.
UML Building-BlocksUML Building-BlocksThere three building blocks of UML
Building-Blocks
Relationships Diagrams
Structural
Behavioral
Grouping
Annotational
ThingsThingsStructural things: Structural things define the static part of the model. They represent physical and conceptual elements
Continue thingsContinue things
Behavioral thingsBehavioral thingsA behavioral thing consists of the dynamic parts of UML models.
Grouping thingsGrouping thingsGrouping things can be defined as a mechanism to group elements of a UML model together.
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.
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.
RelationshipRelationship
Structural NotationStructural Notationclass
Object
Structural NotationStructural Notation
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.
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.
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.
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.
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.
Sequence diagramSequence diagram
Collaboration diagramCollaboration diagram
Structure chart diagramStructure chart diagram
Activity diagramActivity diagram
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
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
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)
Questions? Comments?Questions? Comments? Feel free to speak up!Feel free to speak up!