Session02 OOA

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 20

CSSE 374:

Introduction to Object-
Oriented Analysis and
Design
Steve Chenoweth Chandan Rupakheti
Office: Moench Room F220 Office: Moench Room F203
Phone: (812) 877-8974 Phone: (812) 877-8390
Email: [email protected] Email: [email protected]

These slides and others derived from Shawn Bohner, Curt


Clifton, Alex Lo, and others involved in delivering 374. Q1
Learning Outcomes: O-O Design

Demonstrate object-oriented
design basics like domain
models, class diagrams, and
interaction (sequence and
communication) diagrams.

 Understand OOA to OOD


transition http://enterprisegeeks.com/blog/2009/07/

 Examine elaboration & refinement in design


 Walkthrough OOD example
 Explain model structure for UML
As we discussed yesterday, design
organizes things for implementation.

So, what makes software


design different than other
engineering disciplines?
 Again, think for 15 seconds…
 Turn to a neighbor and discuss
it for a minute
Why is Software Design Important?

 Size
Needs, Features, &
Requirements
 Complexity

 Constraints ABSTRACT &


INCOMPLETE

 Performance Software
System
 Communication
CONCRETE &
COMPLETE
Q2
Thinking at the Right Level
 Abstraction - hiding irrelevant details
to focus attention at right level
 Process of component identification
is top-down, decomposing the
system into successively smaller,
less complex components
 Process of integration, which is
bottom-up, building (composing) the
target system by combining
components in useful ways

©2000-2002 McQuain WD & Keller BJ


Q3
Elaboration and Refinement…
 Starting with Abstract Requirements
 Successively Elaborate and
Refine them into specifications,
models, and ultimately
implementation
Key Questions for Res
pon
D
Object-Oriented Design rive sibili
nD ty-
esig
n
1. What classes do we get from the
application domain?
2. How should responsibilities be allocated
to classes?
3. What classes should do what?
4. How should objects collaborate?

Guided by design patterns

Q4
Topics Covered in Book
OOA/D

Patterns UML notation

Topics and Skills

Principles and Requirements


guidelines analysis

Iterative
development with
an agile Unified
Process
http://www.craiglarman.com/wiki/images/4/43/Craig_larman_head.JPG Q5
Assigning responsibilities to software
objects is a critical ability in Object-
Oriented development. Why?

 Again, think for 15 seconds…


 Turn to a neighbor and discuss
it for a minute

Q6
Analysis versus Design

 Analysis Classes/Objects

 Investigation of the problem


and requirements, rather
than a solution O-O
 Do the right thing… Patterns
Desig Operation
s/Methods

n
 Design
A conceptual solution,
rather than its implementation Data/Attributes

 Excludes low level details


 Do the thing right…

Q7
Analysis and Design Concepts

Analysis Concept
Design Concept
Plane
visualization of
domain concept tailNumber domain concept

public class Plane


{
representation in an private String tailNumber;
object-oriented
programming language public List getFlightHistory() {...}
}
Unified Modeling Language (UML)

Grady Booch

Ivar Jacobson Jim


Rumbaugh
Let’s do a Quick Example: Dice
 Define Use Cases
 Play a dice game: Players requests to roll the
dice. System presents results: If the dice face
value totals seven, player wins; otherwise
player loses

 Define a Domain Model

 Assign Object Responsibilities,


Draw Interaction Diagrams

 Define Design Class Diagrams


Domain Model for a Dice Game

Player Die
1 Rolls 2
name faceValue
1 2
Plays
1

DiceGame
1 Includes
Sequence Diagram for Play Dice Game
Design Class Diagram for Dice Game

DiceGame Die

die1 : Die 1 2 faceValue : int


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

How does it differ from the domain model?

Q8
Three Perspectives to Apply UML

 Conceptual perspective (Sketch)

 Software specification perspective (Blueprint)

 Software implementation perspective


(Executable programming language)

Q9
Abstract Requirements to Concrete Systems
Concrete
Implementation
Implementation
Classes
(Language)
Software
Classes Platform
(Design Class Specific
Analysis/ Diagrams) Model
Conceptual Platform
Classes Independent
(Domain Model) Model
Computational
Independent
Model
Abstract
Requirements
The Case Studies
 NextGen Point of Sale (POS) System

 Monopoly Game

 The case study is organized in three iterations


 Each iteration conducts analysis and design on the
features for that current software release
Reading, Homework, Project, …
 See the course schedule!

You might also like