0% found this document useful (0 votes)
29 views17 pages

Object-Oriented Analysis and Design

The document provides an overview of object-oriented analysis and design (OOA/D). It discusses topics like requirements analysis, object-oriented analysis, design principles, the Unified Process as an iterative development approach, the Unified Modeling Language (UML) for visual modeling, and provides a short example of analyzing and designing a dice game to illustrate key OOA/D concepts and techniques.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views17 pages

Object-Oriented Analysis and Design

The document provides an overview of object-oriented analysis and design (OOA/D). It discusses topics like requirements analysis, object-oriented analysis, design principles, the Unified Process as an iterative development approach, the Unified Modeling Language (UML) for visual modeling, and provides a short example of analyzing and designing a dice game to illustrate key OOA/D concepts and techniques.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 17

Object-Oriented Analysis and

Design
Topics and skills covered in Course
OOA/D

Patterns UML notation

Topics and Skills

Principles and Requirements


guidelines analysis

Iterative
development with
an agile Unified
Process
Objectives

• Describe the book goals and scope


• Define OOA/D (Object-Oriented Analysis and Design)
• Illustrate a brief OOA/D example
• Overview UML and visual agile modeling
Analysis
• Analysis emphasizes an investigation of the problem and requirements, rather
than a solution.

• In software development, we are primarily concerned with two forms of analysis.


• Requirements Analysis is discovering the requirements that a system must
meet in order to be successful.

• Object-Oriented Analysis is investigating the objects in a domain to discover


information important to meet the requirements.
Design
• Design emphasizes a conceptual solution that fulfills the requirements, rather
than its implementation.
• Design ideas often exclude low-level or obvious details – obvious to the
intended consumers.

• There are subsets of design, including


• architectural design,
• object design,
• database design.
Object-Oriented Analysis and Design (OOA/D)
• During OOA, the emphasis is on finding and describing the objects (or concepts)
in the problem domain, i.e., domain objects.

• During OOD (or simply object design), the emphasis is on defining software
objects and how they collaborate to fulfill the requirements.

• During OOP (OO Programming) or Implementation, design objects are


implemented in a programming language.
• Implementation is also known as Coding or Construction.
Object-Oriented Analysis and Design (OOA/D)
What is OOA/D
• It is a software development approach that emphasize a logical
solution based on objects
The Unified Process (UP)
• A standardized approach to analysis and design helps to ensure that
all necessary tasks are understood and completed in software
development.

• Requirements analysis and OOA/D needs to be presented and practiced in the


context of some development process.
• Here, an agile (light, flexible) approach to well-known Unified Process (UP) is
used as a sample iterative development process.
Unified Modeling Language (UML)
• UML: Unified Modeling Language
– A standard diagramming notation
– How to write down requirements, design intent, etc. in a
standardized, graphical way so your teammates can understand it
– Software tools for manipulating UML documents
– A visual language for specifying, constructing, and documenting Systems.

• An iterative development process


- The Rational Unified Process
- The “agile” (light, flexible) approach
Three perspectives to apply UML are ...
• Conceptual perspective – the diagrams are interpreted as describing
things in a situation of the real world or domain of interest.

• Specification (software) perspective – the diagrams describe sw


abstractions or components with specifications and interfaces, but no
commitment to a particular language implementation.

• Implementation perspective – the diagrams describe sw


implementations in a particular technology.
Fig 1: Object-orientation emphasizes representation of objects

Plane
visualization of
domain concept tailNumber domain concept

public class Plane


{
representation in an private String tailNumber;
object-oriented
programming language public List getFlightHistory() {...}
}
Three ways people apply UML are ...
• UML as sketch
– Informal and incomplete diagrams (often hand sketched on whiteboards)
created to explore difficult parts of the problem or solution space
– Agile modeling emphasizes UML as sketch.
• UML as blueprint
– relatively detailed design diagrams used either for reverse engineering to
visualize and better understand existing code,
– or for forward engineering to guide for code generation, either manually or
automatically with a tool.
• UML as a programming language
– Complete executable specification of a sw system in UML.
Short Example: Dice Game
• Software simulates the player rolling two dice
- If total is seven, they win. Otherwise, they lose.
• A few key steps and diagrams in iterative development
1. Define use cases
2. Define domain model
3. Draw interaction diagrams, assign object responsibilities
4. Draw design class diagrams
1. Use Case: Play a Dice Game
• Player requests to roll the dice. System presents results. If the dice
face value totals seven, player wins; otherwise, player loses.
2. Define domain model (real world objects, not
software objects)
Player Die
1 Rolls 2
name faceValue
1 2
Plays
1

DiceGame
1 Includes

Domain model shows the noteworthy domain concepts as objects, their attributes, and
associations.
3. Draw interaction diagrams, assign object
responsibilities
:DiceGame die1 : Die die2 : Die

play()
roll()

fv1 := getFaceValue()

roll()

fv2 := getFaceValue()

A sequence diagram (a kind of UML interaction diagram) shows the flow of messages between
software objects and thus the invocation of objects.
4. Draw class diagrams (software objects)

DiceGame Die

die1 : Die 1 2 faceValue : int


die2 : Die
getFaceValue() : int
play() roll()

A static view of the class (including its attributes and methods)


definitions is usefully shown with a UML class diagram.

You might also like