object-oriented analysis and design (ooad)
DESCRIPTION
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? - PowerPoint PPT PresentationTRANSCRIPT
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?
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
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
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
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
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
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
Objects Classes Relationships An Instance Idea of encapsulation
Some concept of reality A physical entity It is characterized by: a number of operations, a state which remembers the effect of these
operations
Operations:• Work• Dance• Drive• Jump
Attributes:• Height• Eye color• Hair color• Weight
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
Composition - structure object from Parts Partition - into hierarchy (‘is a’) Consist of - build objects from others Aggregate - to join together (‘has a’)
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
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
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
Polymorphism – same object has different implementations
Inheritance – to adopt, permutated, and derive from some generic objects
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
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
“If class B inherits class A, then both operations and the information structure described in class
A will become part of class B”
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
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
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
1. Finding objects2. Organizing objects3. Describing how objects interacts4. Defining the operations of objects5. Defining objects internally
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
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
Identify how objects fit into a system Use of scenarios - unique situations Objects’ communication Objects’ interfaces Refined relationships
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
The specification of CLASSES Define information that an object encapsulates - ATTRIBUTES and METHODS
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++
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)
Inheritance Models Object Aggregation Models Object Behaviour 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'.
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)
Modelling the interaction of objects Modelling behaviours using senarios (UML Use Cases) and 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.
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.
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.
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.
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.
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.
UML has Special Notation for Use Cases:
Actors: Represented as a Stick menUse 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.
An OO Methodology that emphasizes on the identification of objects – requirement analysis
Based on 3 techniques: Conceptual Modeling Object Oriented Programming Use Case
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
The Jacobson requirements model includes a problem domain object diagram and use case diagrams. This model defines the limits and functionality of a system.
Jacobson's Problem Domain Object Diagram The problem domain object diagram provides a logical view of the
system, which is used to specify the use cases for use case diagrams.
Jacobson's Use Case Diagrams Use case diagrams illustrate how the outside world interacts with
elements of the application system.
Capture the functional and non-functional requirements. Formalize the requirement. Identify and Document essential system entities. Identify and Document essential system behaviors.
Structure a system independently to the actual implementation Capture information, behavior and presentation Specify objects
Refine the object structure to the chosen implementation environment.
Objects are consolidated into BLOCKS – abstracted classes. Blocks interactions are also documented using Interaction Diagrams.
The blocks in the design model are implemented using classes. Class diagrams are used to express relationships between classes.
States the method and result of testing. Test specifications describe how classes and system is to be tested. Test results document outcome of the tests executed. Verification and Validation
Requirement Analysis Functional Analysis and Design
Generate requirement model with actors, and use cases identified STEP 1: System context diagram STEP 2: Identify principal actors STEP 3: Construct Use Cases STEP 4: Represent actors and Use Cases with a Use Case Diagram
Structure system functionality into objects To distribute the behavior of the use cases among objects – analysis
model Create objects that are common to actors or use cases. Identify the responsibilities of objects. Identify the relationships between objects.
STEP 1: Identify scenarios from use cases. STEP 2: Associate actors and use cases to scenarios STEP 3: Produce event lists for scenarios STEP 4: Identify Primary object types. STEP 5: Consolidate objects into control, entity and interface. STEP 6: Identify and represent relationships.
Standardized general purpose modeling language
UML includes a set of graphical notation techniques
Graphical language for visualizing, specifying and constructing system elements
UML is not a development method by itself designed to be compatible with the leading
object-oriented methods of its time new methods have been created based on UML Best Example RUP(Rational Unified Process)
Unified Method 0.8
UML 0.9
UML 1.0
UML 1.1
UML 1.3
Other Methods
Booch Method OMTOOSE(Jacobson)
OMG Acceptance, Nov 1997
Final Submission to OMG, Sep ‘97
First submission to OMG, Jan ‘97
Functionality
Cost
Capacity
Availability
PerformanceTechnology
Resilience
Compatibility
“The Challenge over the next 20 years will not be speed or cost or performance; it will be a question of complexity”
Bill Raduchell, Chief Strategy Officer, Sun Microsystems
“Our enemy is complexity, and it’s our goal to kill it” Jan Baan
Sequence Diagrams
Collaboration Diagrams
Statechart Diagrams
Activity DiagramsDeployment Diagrams
Component Diagrams
Object Diagrams
Class Diagrams
Use Case Diagrams
UML
“A Use Case Diagram depicts actions by people and systems outside your system, along with what your system does in response. It’s useful for depicting the functional requirements of your system. ”
1- What does the KMS do when the care giver checks a pet in?
2- What does the KMS do when the care giver checks a pet out?
3- What action or actions by the care giver will cause the KMS to
update a kennel assignment?
4- What action or actions by the Care Giver will involve the
Veterinarian?
“An Activity Diagram depicts the detailed behavior inside a single functional requirement, including a primary scenario and a number of alternate scenarios. It’s useful for ensuring that you thoroughly understand a given functionality.”
1- What is the sequence of steps the system performs when assigning a pen to a pet that has visited previously?
2- What additional steps are performed for a pet that is new to the kennel?
“A Component Diagram depicts the deployable units of your system—executables, components, data stores, among others—and the interfaces through which they interact. It’s useful for exploring the architecture of your system. ”
1- The Care Giver Center is the Web page that the care giver uses to enter information about a pet. What interface does it use to provide data to the KMS?
2- What other components provide data to the KMS, and through what interfaces?
3- What types of contacts can be made through the Comm Center component?
“A Class Diagram depicts the classes and interfaces within the design of your system, as well as the relations between them. It’s useful for defining the internal, Object-Oriented structure of your code.”
1- What three classes are associated with the Kennel Assignment class?
2- What operations can objects of the Kennel Assignment class perform?
3- What attributes describe an object of the Pet Record class?
4- What attributes describe an object of the Kennel Space class?
“A Statechart Diagram depicts how the state of your system changes in response to internal and external events. It’s useful for ensuring that each event is handled properly no matter what state your system may be in.”
1- What event causes a kennel space, or pen, to enter the Defined state?
2- What events (from which states) cause a pen to enter the Available state?
3- What state does a pen enter when it’s currently in the Available state, and a Dismantled event occurs?
4- How can a pen go from the In Use state to the Deconstructed state?
“A Deployment Diagram depicts how the deployable units of your system—applications, components, data stores, etc.—are assigned to various nodes, as well as how the nodes communicate with each other and with devices. It’s useful both as a map of your system and as a means for studying the load across your system.”
1- How is the KMS server connected to the telephone?
2- How does the owner’s PC access pet information on the KMS server?
3- How does information go from the care giver station to the reception station?
“A Package Diagram depicts how related elements of your design are grouped together, as well as how the groups depend upon each other. It’s useful for dividing a complex design into multiple, more manageable smaller designs. ”
1- Which packages make use of information from the KMS Interfaces package?
2- Which packages does the KMS Central Classes package make use of?
UML is all about clear communication Certain drawbacks of UML like too many
infrequently and redundant constructs not only used with OO methods; RUP UML 2.0 major revision adopted by OMG 2005 OMG vision is that in near future all applications
will be written using only a modelling tool Models will compile directly to machine
language
http://www.soi.wide.ad.jp/class/20010030/slides/05/index_38.html
http://www.dbmsmag.com/9606d15.html http://en.wikipedia.org/wiki/Object-
oriented_analysis_and_design http://www.dcs.bbk.ac.uk/~steve/1/
tsld004.htm http://www.imse.hku.hk/imse1013/pdf/ESA-
06%20OOAD.pdf http://www.devshed.com/c/a/Practices/
Introducing-UMLObjectOriented-Analysis-and-Design/2/