opps approch of software development
Post on 19-Jan-2017
Embed Size (px)
Object-Oriented Approach/Developmentof Software Presented by: Raja PrasadMca (IV sem) AGI
Outlines Historical ProspectiveMotivationsObject-Oriented ModelObject-Oriented programmingLife CycleObject-Oriented AnalysisUmlObject-Oriented Design
Historical PerspectiveWas initially thought of as a research curiosityObject-oriented programming is today what structured programming was in the 1970sThe Object and object attribute idea first conceived in the 1950s for A.I.The real movement began in 1966 with the introduction of the Simula language
Historical PerspectivePalo Alto Research Center (PARC) developed Smalltalk in the early 1970sSmalltalk is considered the first truly object-oriented languageLed other languages to support object-oriented programming examples: Objective-C, C++, Self, Eiffel, and Flavors1980 Booch pioneered the concept of object-oriented design (OOD)
MotivationBenefits are Greater:ProductivityReliabilityMaintainabilityManageability
MotivationDirect mapping of concepts in the problem domain to software units and their interfacesViewing the world as objects is more natural since it is closer to the way humans thinkObjects are more stable than functionsSupports information hiding, data abstraction, and encapsulationEasily modified, extended, and maintained if your product was designed correctly
Object-Oriented ModelA new way of thinking about what it means to compute and how information can be structuredSystems are viewed as cooperating objects that encapsulate structure and behavior in a hierarchical constructionFunctionality achieved by messages passing between objects
Object-Oriented ModelObject-oriented model can be viewed as the framework containing: AbstractionEncapsulationModularityHierarchyConcurrenceReusabilityExtensibility
Object-Oriented ModelThe integration of procedural and data-driven approaches
Object Oriented ProgrammingConcepts:Programs are organized into cooperating collections of objectsObject: entity that encapsulates state and behavior. An instance of a classInterface or protocol: set of messages to which it will respondResponse can be a message or routine, or delegation of the message to another object
Object Oriented Programming
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)
Waterfall consists of a sequential process, primarily in one directionDoes not accommodate real iterationCriticized for placing no emphasis on reuse and having no unifying model to integrate the phases
Life CycleWater fountain life cycle describes the inherent iterative and incremental qualities of object-oriented developmentPrototyping and feedback loops are standard
Object-Oriented AnalysisExamines requirements from the perspective of the classes and objects found in the vocabulary of the problem domainYields black-box objects that are derived from the problem domainScenarios can be used to determine necessary object behavior
Analysis exampleProblem: Drawing shapesScenarios:Draw a pointDraw a lineDraw a circleDraw a squareDraw a rectangleDraw a polygon
UMLUML is a standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems.UML was created by Object Management Group (OMG) and UML 1.0 specification draft was proposed to the OMG in January 1997.UML stands for Unified Modeling Language.UML is a pictorial language used to make software blue prints.
UML Building-BlocksThere three building blocks of UMLBuilding-BlocksRelationshipsDiagramsStructuralBehavioralGroupingAnnotational
ThingsStructural things: Structural things define the static part of the model. They represent physical and conceptual elements
Behavioral thingsA behavioral thing consists of the dynamic parts of UML models.
Grouping thingsGrouping things can be defined as a mechanism to group elements of a UML model together.
Annotational 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.
RelationshipRelationship 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.
Class 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 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 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 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 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.
Structure chart diagram
Object-Oriented DesignObject focus shifts to the solution domainObjects, their semantics, and relationships are identifiedImplementation and iteration occurJacobsen says when details of the implementation begin to show, its OODIn my practice: OOA is preliminary design, and OOD is detailed design
Management IssuesObject-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
Management IssuesBooch suggests smaller development teams, and cultivation of reuse expertsReward reuse, not LOC: build libraries and application frameworksQA: review and testing activities still essential, but timing and definition are differentTools: everything described exists in visual studio
The FutureThe future is now object-oriented development is pretty standardClass libraries and application frameworks (exist)Transparent information access across applications and environments (exists)Movement will gain popularity (did)
Questions? Comments?Feel free to speak up!