Ooad Overview

3,257 views
3,122 views

Published on

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,257
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
169
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide
  • Ooad Overview

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

    ×