900 likes | 1.26k Views
Object-Oriented Analysis and Design (OOAD). Presented By Zubair Azmat Omer bin Asad M. Daniyal Shafiq. Object-Orientation?. What is Object-Orientation & Object-Oriented (OO) Methods? (C++, Java,Oracle??) What is OO methods used for? What are the features of OO methods?
E N D
Object-OrientedAnalysis and Design(OOAD) Presented By Zubair Azmat Omer bin Asad M. DaniyalShafiq
Object-Orientation? • What is Object-Orientation & Object-Oriented (OO) Methods? (C++, Java,Oracle??) • What is OO methods used for? • What are the features of OO methods? • How are they different from SSADM?
Object-Oriented Methods • A technique for system modeling • A technique to manage complexity inherent in analysis, design, and implementation • For the analysis and design of system • Provide integrated view of hardware and software • Provide a methodology for system development
Is It Any Good? • A system which is designed and modeled using an object-oriented technology is: • Easy to understand • Directly related to reality • Natural partitioning of the problem • More flexible and resilient to change • Systems can be developed more rapidly and at a lower cost
Some Qualities of OO • Understanding of system is enhanced, as the semantic gap is reduced • Modification to the model tend to be local as they often result from an individual item, which is represented by a single object Ideally suited to model real systems, and simulating systems
Some Examples of Using OO • Object technology is key to re-engineering business process at Xerox • Space telescope uses OO technology and • Booch Method to build interface to Hubble Database • British Airways choose OO tools for airline applications
OO Methods • Jacobson Use Case - Jacobson • Unified Modelling Language (UML) • Object-Oriented Design (OOD) - Booch (1983), • Object-Oriented System Analysis (OOSA) – • Object-Oriented Analysis (OOA) – Coad &Yourdon (1991) • Object Modelling Technique (OMT) – • Hierarchical Object-Oriented Design • (HOOD) - ESA (1989), architectural design
Object-Oriented Modeling • Attach the behavior and information that is important to objects • Associate relations between object to describe the static and dynamic organization and structure of real situation
The Basics • Objects • Classes • Relationships • An Instance • Idea of encapsulation
An Object • Some concept of reality • A physical entity • It is characterized by: • a number of operations, • a state which remembers the effect of these operations
An Object • Operations: • Work • Dance • Drive • Jump • Attributes: • Height • Eye color • Hair color • Weight
Relationships • Static: • relations existing over a long time • objects know about each other existence • Dynamic: • relations which two objects communicate with each other • object sending stimuli to other • stimuli - events, messages
‘Creating’ Objects • Composition - structure object from Parts • Partition - into hierarchy (‘is a’) • Consist of - build objects from others • Aggregate - to join together (‘has a’)
Encapsulation • A concept of ‘Self-containing’ • Information hiding - ‘internal’ structure is hidden from their surroundings • Behavior and information is represented or implemented internally • Functionality and behavior characterized by ‘interfacing’ operations
Class • A class represents a template for several • objects and describes how these objects • are structured internally • Objects of the same class have the same • definition both for their operations and • their information structure • Class is an implementation of objects
Instance • An instance is an object created from a Class • A class describes the behavior and information structure of an instance, while the current state of the instance is defined by the operations performed on the Instance • System’s behavior is performed via the interactions between instances
Key Concepts • Polymorphism – same object has different implementations • Inheritance – to adopt, permutated, and derive from some generic objects
Polymorphism • A concept in type theory • A common name may denote instances • of different classes • One type of operation can be implemented • in different ways by different classes • Overloading in modern OO language
Why Polymorphism • A very strong tool for allowing system • designers to develop flexible systems • Designer only need to specify what shall • occur and not how it shall occur • To add an object, the modification will only • affect the new object, not those using it
Inheritance “If class B inherits class A, then both operations and the information structure described in class A will become part of class B”
Why Inheritance? • Show similarities • Reuse common descriptions • ‘Software Reuse’ • Easy modification of model by performing • modification in one place • Avoid redundancy, leading to smaller and • more efficient model, easier to • understand
Limitations of SSADM • Treat data and function separately – function/data oriented method • More suited to classical hardware • More difficult to maintain and re-configure • Method require more abstraction - not too Natural • Large semantic gap between external and internal view of a system
Object-Oriented Methods • Advocate integral objects which encapsulate both function and data • Main activities include: • Identification of objects, and • Analyzing their behavior and information • Uses object-oriented techniques and ideas: • Inheritance • Polymorphism • Function/data abstraction
Object-Oriented Analysis & Design • Finding objects • Organizing objects • Describing how objects interacts • Defining the operations of objects • Defining objects internally
Finding Objects • Naturally occurring entities – physical • A concept of some abstract ideas – conceptual • Should be stable • Classes of objects • active/passive • temporary/permanent/persistent • part/whole • generic/specific • private/public
Object-Oriented Design • The objects found are to be implemented • Once objects for a system are identified, they are refined, organized and related • Classes that define the implementation are structured and consolidated • Classes are refined with implementation details (e.g. OS, language, hardware, etc.) • Classes are coded
Object Interactions • Identify how objects fit into a system • Use of scenarios - unique situations • Objects’ communication • Objects’ interfaces • Refined relationships
Object’s Functionality • Operations performed by an object • Behavior of an object • Specification of interfaces, external and internal functions • Objects with complex functionality should be partitioned into simpler objects
Object Implementation • The specification of CLASSES • Define information that an object • encapsulates - ATTRIBUTES and METHODS
Object Implementation • METHODS: • Specify external functions • Specify internal functions that are not seen or usable by others objects • Languages: C++, Smalltalk, Adam, • Eiffel, Modula-2, Simulate, Java++
OO Methods - Some Advantages • Reduce semantic gap between domain(the actual) and model (the design) • Closer to reality e.g. classification of objects close to how human understand surroundings • Easier to understand and maintain • Easier to modify (e.g. polymorphism)
Object Models • Inheritance Models • Object Aggregation Models • Object Behaviour Modelling
Inheritance Modelling • Objects are organized in a taxonomy • Taxonomy; classification scheme showing the relation of one object to the other, in terms of common attributes and services. • Concept of Super and Sub Classes. Note: In UML inheritance is 'upwards' in contrast to 'downwards'.
Object Aggregation • A composition in which the "whole" subsumes and conceals its constituent "parts". • A composition that encapsulates (hides) the parts of the composition. • "Parts" do not exist in autonomy(are not visible externally)
Object Behavior Modelling – Interaction Design • Modelling the interaction of objects • Modelling behaviours using senarios (UML Use Cases) and Sequence Diagrams.
Sequence Diagrams • Its an interaction diagram in UML, that shows how processes operate one with another and in what order. • Sequence diagrams are sometimes called Event-trace diagrams, event scenarios, and timing diagrams.
Use Case • Usage Case is simply a reason to use a system. • Three key things: 1. The actor or actors involved. An actor is a type of user (for example, cardholder) that interacts with the system. 2. The system being used. 3. The functional goal that the actor achieves using the system . the reason for using the system.
Use Case Scenarios • The set of all possible outcomes of the interaction between the actor and system to achieve a goal. Note: An actor is an external entity to the system (may or may not be a Human.
Sequence Diagram in Use Case Scenario and Object Interaction Design
UI Storyboards • User Interface Storyboards are a step further to the logical design. • UI Designs show how it might look with a real UI Implementation. • This is done after the key Use Scenarios are finalized. Note: UI Design’s purpose is to enhance user involvement in earlier stages of the ISD cycle.
Use Case - Relationships • Uses: • The Uses relationship extracts similarities (i.e., common flow of events) from use cases and abstracts them into another use case. For example, in a system, several use cases may share the login validation sequence of actions. The verification is abstracted into a use case that is the target of a "uses" connection from the concrete use cases.
Use Case - Relationships • Extends: • The extends relationship allows the modeling of complex interactions by extending previous use cases to document variations. The original use case is left complete and intact. Changing or removing the "extended" use case has no effect on the base use case. An example is statistics collection for this product. The action of an end-user interacting with the system to view the methodology is documented in a use case, the View Methodology use case. The statistics collection is modeled as a use case that extends the View Methodology use case.
Use Cases and UML UML has Special Notation for Use Cases: Actors: Represented as a Stick men Use Case: Drawn as an Oval, with the name inside the oval. Line is drawn to show the communication of the actor and the use case. System boundary is drawn, keeping the actor outside the boundary (the actor is always outside the boundary.
Jacobson Use Case Method (OOSE) • An OO Methodology that emphasizes on the identification of objects – requirement analysis • Based on 3 techniques: • Conceptual Modeling • Object Oriented Programming • Use Case
5 Models of JM ISD Cycle • Ivar Jacobson's Object-Oriented Software Engineering (OOSE) is one of the precursors to the more modern Unified Modeling Language (UML). OOSE includes a: • Requirements Model • Analysis Model • Design Model • Implementation Model • Testing Model