Intro to course
Course Title: Object-Oriented Analysis and Design
Course Code: IT-3311
Course Structure: Lectures: 3/Labs: 0
Credit Hours: 3
Prerequisites: CMP-2123 (Object Oriented Programming),
CMP-3310 (Software Engineering)
Course Objectives:
In this course, the students will learn how to produce detailed object models and designs
from system requirements;
use the modeling concepts provided by UML;
identify use cases and expand into full behavioral designs;
expand the analysis into a design ready for implementation and construct designs that are
reliable.
Introduction to OOAD
Lecture # 1
OO Objectives
We want a development method which:
Is able to guide us through analysis, design,
and implementation using one consistent
paradigm throughout those phases
Is less likely to generate errors
Facilitates reuse of designs and code
Analysis & Design
Analysis
Investigation of problem and requirements,
rather than a solution.
E.g. Requirements analysis and OO analysis.
Design
It emphasizes a conceptual solution that fulfills
the requirements.
E.g. Database design or OO design
Implementation expresses the true and complete
realized design
Object Oriented Analysis (OOA)
OOA is “a method of analysis that
examines requirements from the
perspectives of the classes and objects.”
(Booch 1995)
Emphasis is on finding and describing
conceptual objects in the problem
domain.
Object Oriented Design (OOD)
OOD is “a method of design
encompassing the process of OO
decomposition and a notation for depicting
both logical and physical as well as static
and dynamic models of the system.”
(Booch 1995)
Emphasis is on defining software
objects, and how they collaborate to fulfill
system requirements
What is OO analysis and design?
Essence of OO analysis - consider a
problem domain from the perspective of
objects (real world things, concepts)
Essence of OO design - define the
solution as a collection of software
objects (allocating responsibilities to
objects)
Examples- Library IS
OO Analysis - in the case of the library
information systems, one would find
concepts like book, library, patron
OO Design - emphasis on defining the
software objects; ultimately these objects
are implemented in some programming
language; Book may have a method
named print.
Example - contd.
Book
domain concept visualization of
title domain concept
public class Book
{
representation in an private String title;
object-oriented
programming language public Chapter getChapter(int) {...}
}
Flight IS
Plane
visualization of
domain concept tailNumber domain concept
public class Plane
{
representation in an private String tailNumber;
object-oriented
programming language public List getFlightHistory() {...}
}
What are the business processes?
First step - consider what the business
must do; in the case of a library - lending
books, keeping track of due dates, buying
new books.
In requirements analysis; represent the
business processes in textual narration
(Use Cases).
Business processes - contd.
Identifying and recording the business
processes as use cases is not actually an
object oriented activity; though a necessary
first step.
Roles in the organization
Identify the roles of people who will be
involved in the business processes
In OO terms - domain analysis
Examples - customer, library assistant,
programmer, navigator, sensor, etc.
Who does what?
Business processes and roles (actors);
time to determine how to fulfill the
processes and who does these processes
in OO terms - object oriented design;
assigning responsibilities to the various
software objects
often expressed in class diagrams
In Summary...
Business OO Analysis Associated
Analogy and Design Documents
What are the Requirements Use cases
business analysis
processes?
What are Domain analysis Conceptual
employee roles? model
Who is Responsibility Design class
responsible for assignment; diagrams
what?
Simple example to see big picture
Define use cases
Define domain model
Define interaction diagrams
Define design class diagrams
Define domain Define Define design
Define use Interaction
cases model class diagrams
diagrams
Short Example
Dice game
A software simulates a player rolling two dice. If
the total is seven, they win; otherwise, they
lose.
Define use cases
Use cases
Narrative descriptions of domain processes in a
structured prose format
They are stories or scenarios of how people use
the system
Use case: Play a game
Actors: Player
Description: Player requests to roll the dice. System
presents results: If the dice face value totals seven,
player wins; otherwise, player loses.
Define conceptual model
OO Analysis concerns
specification of the problem domain
identification of concepts (objects)
Decomposition of the problem domain
includes
identification of objects, attributes, associations
results can be expressed in conceptual
model
Conceptual model - dice game
Player Die
1 Rolls 2
name faceValue
1 2
Plays
1
DiceGame
1 Includes
Conceptual model is not a description of the software components;
it represents concepts in the real world problem domain
Defining Interaction diagram
OO Design is concerned with
defining software objects – their responsibilities and
collaborations
Essential step - allocating responsibility to
objects and illustrating how they interact with
other objects
Expressed as interaction diagrams
Sequence Diagrams
Communication Diagrams
Example – Sequence Diagram
:DiceGame die1 : Die die2 : Die
play()
roll()
fv1 := getFaceValue()
roll()
fv2 := getFaceValue()
Defining class diagrams
Key questions to ask
How do objects connect to other objects?
What are the behaviors (methods) of these objects?
interaction diagrams suggests connections; to support
these connections methods are needed
Expressed as class diagrams
Example - Class diagram
DiceGame Die
die1 : Die 1 2 faceValue : int
die2 : Die
getFaceValue() : int
play() roll()