Object Oriented Analysis And Design Overview
What is an Object? A self-contained package, with specific variables (attributes) and methods (behaviors). An object stands alone. An object’s implementation is purposely hidden from us.
Visual representation of a software object What is an Object?
A  bicycle modeled as a software object   What is an Object?
What is a Class? A class is a blueprint or prototype that defines the variables and the methods common to all objects of a certain kind.
What is a Class? Class is an implementation of an abstract data type and so encapsulates both data and operations. Object is run-time instance of class. Classes just sit there, objects do the real work. Memory is allocated for Objects not for Classes.
What is a Message? The object to which the message is addressed (YourBicycle)  The name of the method to perform (changeGears)  Any parameters needed by the method (lowerGear)
Example Object Description - provides time of day, and an audible indication of a user-defined time during the day  Interface Inputs - time of day, alarm time Outputs - time of day, audible alarm Attributes hour hand, minute hand, second hand, bell Behaviors Increment hour, increment minute, increment second, sound bell
Key Object-Oriented Characteristics Encapsulation (Information Hiding) Attributes and behavior are rolled into the object, and hidden from the rest of us. Only thing exposed is the “public interface”  Inheritance Creating one object from another, already defined object, adding to its capabilities and public interface.. Polymorphism Specific object behavior is determined within a run-time context. An object can “morph” itself based on the context in which it is currently used. Re-useable With very discrete and finite capabilities, objects can be used in other parts of the system, or within other systems.
Clock Object How does our clock rate as an object? Encapsulation Provides hour, minutes and seconds, and an alarm. Do we know the mechanisms for incrementing hours, minutes and seconds? Sounding the alarm? Inheritance We can use our simple clock object to create additional, more complex objects requiring time. E.g., chronograph, washing machine timer controller, etc.  Polymorphism Not applicable Re-usable Our clock can be used in thousands of applications as is. We can use it in any application that requires us to keep track of time, and alert us when a certain time has occurred.
What is OOAD? Object Oriented Analysis & Design is the  art  of developing systems based on a set of cooperating objects. This stuff is not an exact science. Anyone who tells you that is mistaken. Experience allows you to develop the craft, but it can never be mastered. Success depends upon systems analysis and software development teams understanding OOAD and available tools. Smooth and natural transition occurs between analysis and design teams due to nature of defined processes.
What is OOAD? OOAD facilitates a variety of processes for analyzing and developing systems. A methodology. There is no right or wrong process to implement OOAD. Understanding the principles of OOAD, as well as the toolkits available, allows you to “define” or tailor your own process. The main advantage of OOAD is its integration of systems analysis and software development teams through process definition and modeling techniques available.
Visual Modeling “ Modeling captures essential parts of the system. Visual modeling is modeling using standard graphical notations” – Dr. James Rumbaugh “ A picture is worth a thousand words.” – Ancient Proverb Order Item Ship via Business Process
UML stands for Unified Modeling Language The UML combines the best of the best from Data Modeling concepts (Entity Relationship Diagrams) Business Modeling (work flow) Object Modeling  Component Modeling The UML is the standard language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system. It can be used with all processes, throughout the development life cycle, and across different implementation technologies What is UML?
What is UML? The Unified Modeling Language is used to Specify, Visualize, Implement, Test and Document systems.  UML captures the elements and artifacts of the development of object oriented systems and software. UML also facilitates the Specification and Visualization of ANY system (whether it appear as an object-oriented system or not). It is a  visual modeling  tool used to implement a process and methodology.
What UML is NOT A process. Processes include: Waterfall Spiral Development Incremental Agile etc. Proprietary UML is free to use and distribute. Third party vendors can build a tool based upon it without prior permission. Companies can use it in their design documentation without prior permission.
Static Modeling This defines the non-changing characteristics of the system. For example: What are the uses of the system? What are the relationships between uses in the system? What are the inputs and outputs, or  interface  to the system? What are the objects in the system and their relationships? How is the system deployed?
Dynamic Modeling This defines the changing characteristics of the system. For example: What are the various timing aspects of the uses of the system? What are the states, and circumstances of those states, that the objects in the system can be in at any particular time? How does the system behave over time as a result of the environment in which it is in?
UML Static Diagrams Use Case Depicts functional capabilities, or uses, of the system. Class Depicts relationships and dependencies of classes in the system. Object Depicts relationships and dependencies of instantiated classes (I.e. objects) in the system.
UML Static Diagrams Structure Diagrams Depicts the main components of the system (hardware, software, human) and the interfaces between. Package Depicts relationships and dependencies of high-level components in the system.  Component Depicts relationships and dependencies of system components. Deployment Depicts how system components are implemented in hardware in the system.
Use Case Diagram
Class Diagram
Object Diagram
Structure Diagram
Component Diagram
Package Diagram
Deployment Diagram
UML Dynamic Diagrams Interaction Diagrams  Depict timing of events and messages within Use Cases and classes in the system. They are interchangeable. Sequence Depicts timing of events in a sequential top to bottom, left to right fashion. Collaboration Depicts timing of events using a sequential numbering.
UML Dynamic Diagrams State Depicts all the possible states that objects of the class can have, and which events cause the state to change.  Activity Depicts the activities performed in an operation , though it can also be used to describe other activity flows, such as a use case or an interaction.
Sequence Diagram
Collaboration Diagram
State Diagram
Activity Diagrams
Visual Modeling With Class Diagrams
Class Diagram
Activity Diagram
Sequence Diagram
Thoughts on OOAD/UML The OOAD methodology, and any process that uses it, will only work if the entire project team embraces it. Everyone from the Program Manager on down must be convinced of it’s utility. You cannot implement a system successfully unless the entire system is analyzed and developed in a consistent manner. As a minimum, the system must go through the Requirements and Analysis phases using Use Cases. More on this later.  Most importantly, the systems and software teams must be an integrated team to gain the most benefits.
An approach to system development using models as a basis for understanding, design, construction, deployment, operation, maintenance and modification Three essential elements: specifying a system independently of the platform that supports it, specifying platforms, transforming the system specification into one for a particular choice of platform. Goals: portability, interoperability and reusability Prescribes the kinds of model to be used in specifying a system, how those models are prepared and the relationships between them  Model Driven Architecture  (MDA)
What MDA Does Identifies different viewpoints on a system  different abstractions - reflecting different concerns providing a way of dealing with system complexity Specifies 3 kinds of viewpoint model for a system: a  computation independent model (CIM) : a view of a system that  specifies its function without specifying details of its structure  a  platform independent model (PIM) : a view of a system that specifies its computational structure independent of any specific platform - usable with different platforms of similar type.  a  platform specific model (PSM) : a view of a system that combines the specifications in the PIM with a specification of the use of a particular type of platform. Specifies transformations between models
MDA Ultimate Goal? Complete, executable model. 100% automatic code generation from the model. Complete requirements, design and test information contained in models.
UML Resources http://www.rational.com Rational site with a plethora of information about UML and the Rational process. http://www.omg.org/technology/documents/formal/uml.htm UML 2.0 specification

Ooad Overview

  • 1.
    Object Oriented AnalysisAnd Design Overview
  • 2.
    What is anObject? A self-contained package, with specific variables (attributes) and methods (behaviors). An object stands alone. An object’s implementation is purposely hidden from us.
  • 3.
    Visual representation ofa software object What is an Object?
  • 4.
    A bicyclemodeled as a software object What is an Object?
  • 5.
    What is aClass? A class is a blueprint or prototype that defines the variables and the methods common to all objects of a certain kind.
  • 6.
    What is aClass? Class is an implementation of an abstract data type and so encapsulates both data and operations. Object is run-time instance of class. Classes just sit there, objects do the real work. Memory is allocated for Objects not for Classes.
  • 7.
    What is aMessage? The object to which the message is addressed (YourBicycle) The name of the method to perform (changeGears) Any parameters needed by the method (lowerGear)
  • 8.
    Example Object Description- provides time of day, and an audible indication of a user-defined time during the day Interface Inputs - time of day, alarm time Outputs - time of day, audible alarm Attributes hour hand, minute hand, second hand, bell Behaviors Increment hour, increment minute, increment second, sound bell
  • 9.
    Key Object-Oriented CharacteristicsEncapsulation (Information Hiding) Attributes and behavior are rolled into the object, and hidden from the rest of us. Only thing exposed is the “public interface” Inheritance Creating one object from another, already defined object, adding to its capabilities and public interface.. Polymorphism Specific object behavior is determined within a run-time context. An object can “morph” itself based on the context in which it is currently used. Re-useable With very discrete and finite capabilities, objects can be used in other parts of the system, or within other systems.
  • 10.
    Clock Object Howdoes our clock rate as an object? Encapsulation Provides hour, minutes and seconds, and an alarm. Do we know the mechanisms for incrementing hours, minutes and seconds? Sounding the alarm? Inheritance We can use our simple clock object to create additional, more complex objects requiring time. E.g., chronograph, washing machine timer controller, etc. Polymorphism Not applicable Re-usable Our clock can be used in thousands of applications as is. We can use it in any application that requires us to keep track of time, and alert us when a certain time has occurred.
  • 11.
    What is OOAD?Object Oriented Analysis & Design is the art of developing systems based on a set of cooperating objects. This stuff is not an exact science. Anyone who tells you that is mistaken. Experience allows you to develop the craft, but it can never be mastered. Success depends upon systems analysis and software development teams understanding OOAD and available tools. Smooth and natural transition occurs between analysis and design teams due to nature of defined processes.
  • 12.
    What is OOAD?OOAD facilitates a variety of processes for analyzing and developing systems. A methodology. There is no right or wrong process to implement OOAD. Understanding the principles of OOAD, as well as the toolkits available, allows you to “define” or tailor your own process. The main advantage of OOAD is its integration of systems analysis and software development teams through process definition and modeling techniques available.
  • 13.
    Visual Modeling “Modeling captures essential parts of the system. Visual modeling is modeling using standard graphical notations” – Dr. James Rumbaugh “ A picture is worth a thousand words.” – Ancient Proverb Order Item Ship via Business Process
  • 14.
    UML stands forUnified Modeling Language The UML combines the best of the best from Data Modeling concepts (Entity Relationship Diagrams) Business Modeling (work flow) Object Modeling Component Modeling The UML is the standard language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system. It can be used with all processes, throughout the development life cycle, and across different implementation technologies What is UML?
  • 15.
    What is UML?The Unified Modeling Language is used to Specify, Visualize, Implement, Test and Document systems. UML captures the elements and artifacts of the development of object oriented systems and software. UML also facilitates the Specification and Visualization of ANY system (whether it appear as an object-oriented system or not). It is a visual modeling tool used to implement a process and methodology.
  • 16.
    What UML isNOT A process. Processes include: Waterfall Spiral Development Incremental Agile etc. Proprietary UML is free to use and distribute. Third party vendors can build a tool based upon it without prior permission. Companies can use it in their design documentation without prior permission.
  • 17.
    Static Modeling Thisdefines the non-changing characteristics of the system. For example: What are the uses of the system? What are the relationships between uses in the system? What are the inputs and outputs, or interface to the system? What are the objects in the system and their relationships? How is the system deployed?
  • 18.
    Dynamic Modeling Thisdefines the changing characteristics of the system. For example: What are the various timing aspects of the uses of the system? What are the states, and circumstances of those states, that the objects in the system can be in at any particular time? How does the system behave over time as a result of the environment in which it is in?
  • 19.
    UML Static DiagramsUse Case Depicts functional capabilities, or uses, of the system. Class Depicts relationships and dependencies of classes in the system. Object Depicts relationships and dependencies of instantiated classes (I.e. objects) in the system.
  • 20.
    UML Static DiagramsStructure Diagrams Depicts the main components of the system (hardware, software, human) and the interfaces between. Package Depicts relationships and dependencies of high-level components in the system. Component Depicts relationships and dependencies of system components. Deployment Depicts how system components are implemented in hardware in the system.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
    UML Dynamic DiagramsInteraction Diagrams Depict timing of events and messages within Use Cases and classes in the system. They are interchangeable. Sequence Depicts timing of events in a sequential top to bottom, left to right fashion. Collaboration Depicts timing of events using a sequential numbering.
  • 29.
    UML Dynamic DiagramsState Depicts all the possible states that objects of the class can have, and which events cause the state to change. Activity Depicts the activities performed in an operation , though it can also be used to describe other activity flows, such as a use case or an interaction.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
    Visual Modeling WithClass Diagrams
  • 35.
  • 36.
  • 37.
  • 38.
    Thoughts on OOAD/UMLThe OOAD methodology, and any process that uses it, will only work if the entire project team embraces it. Everyone from the Program Manager on down must be convinced of it’s utility. You cannot implement a system successfully unless the entire system is analyzed and developed in a consistent manner. As a minimum, the system must go through the Requirements and Analysis phases using Use Cases. More on this later. Most importantly, the systems and software teams must be an integrated team to gain the most benefits.
  • 39.
    An approach tosystem development using models as a basis for understanding, design, construction, deployment, operation, maintenance and modification Three essential elements: specifying a system independently of the platform that supports it, specifying platforms, transforming the system specification into one for a particular choice of platform. Goals: portability, interoperability and reusability Prescribes the kinds of model to be used in specifying a system, how those models are prepared and the relationships between them Model Driven Architecture (MDA)
  • 40.
    What MDA DoesIdentifies different viewpoints on a system different abstractions - reflecting different concerns providing a way of dealing with system complexity Specifies 3 kinds of viewpoint model for a system: a computation independent model (CIM) : a view of a system that specifies its function without specifying details of its structure a platform independent model (PIM) : a view of a system that specifies its computational structure independent of any specific platform - usable with different platforms of similar type. a platform specific model (PSM) : a view of a system that combines the specifications in the PIM with a specification of the use of a particular type of platform. Specifies transformations between models
  • 41.
    MDA Ultimate Goal?Complete, executable model. 100% automatic code generation from the model. Complete requirements, design and test information contained in models.
  • 42.
    UML Resources http://www.rational.comRational site with a plethora of information about UML and the Rational process. http://www.omg.org/technology/documents/formal/uml.htm UML 2.0 specification