CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench...

20
CSSE 374: Introduction to Object-Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812) 877-8974 Email: [email protected] Chandan Rupakheti Office: Moench Room F203 Phone: (812) 877-8390 Email: [email protected] These slides and others derived from Shawn Bohner, Curt Clifton, Alex Lo, and others involved in delivering 374.

Transcript of CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench...

Page 1: CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812) 877-8974 Email: chenowet@rose-hulman.edu.

CSSE 374:Introduction to Object-Oriented Analysis and

Design

Q1

Steve Chenoweth

Office: Moench Room F220

Phone: (812) 877-8974Email: [email protected]

Chandan Rupakheti

Office: Moench Room F203

Phone: (812) 877-8390Email: [email protected]

These slides and others derived from Shawn Bohner, Curt Clifton, Alex Lo, and others involved in delivering 374.

Page 2: CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812) 877-8974 Email: chenowet@rose-hulman.edu.

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

Examine elaboration & refinement in design Walkthrough OOD example Explain model structure for UML

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

Page 3: CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812) 877-8974 Email: chenowet@rose-hulman.edu.

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

Page 4: CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812) 877-8974 Email: chenowet@rose-hulman.edu.

Why is Software Design Important?

Size

Complexity

Constraints

Performance

Communication

Needs, Features, &

Requirements

ABSTRACT & INCOMPLETE

Software System

CONCRETE & COMPLETE

Q2

Page 5: CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812) 877-8974 Email: chenowet@rose-hulman.edu.

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 BJQ3

Page 6: CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812) 877-8974 Email: chenowet@rose-hulman.edu.

Elaboration and Refinement…

Starting with Abstract Requirements Successively Elaborate and

Refine them into specifications, models, and ultimately implementation

Page 7: CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812) 877-8974 Email: chenowet@rose-hulman.edu.

Key Questions forObject-Oriented Design

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?

Responsibility-Driven Design

Guided by design patterns

Q4

Page 8: CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812) 877-8974 Email: chenowet@rose-hulman.edu.

Topics Covered in Book

Topics and Skills

UML notation

Requirements analysis

Principles and guidelines

Patterns

Iterative development with an agile Unified

Process

OOA/D

http://www.craiglarman.com/wiki/images/4/43/Craig_larman_head.JPG Q5

Page 9: CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812) 877-8974 Email: chenowet@rose-hulman.edu.

Assigning responsibilities to software objects is a critical ability in Object-Oriented development. Why?

Q6

Again, think for 15 seconds… Turn to a neighbor and discuss

it for a minute

Page 10: CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812) 877-8974 Email: chenowet@rose-hulman.edu.

Analysis versus Design

Analysis Investigation of the problem

and requirements, rather than a solution

Do the right thing…

Design A conceptual solution,

rather than its implementation Excludes low level details

Do the thing right…

Q7

O-O Desig

n

Classes/Objects

Operations/Methods

Data/Attributes

Patterns

Page 11: CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812) 877-8974 Email: chenowet@rose-hulman.edu.

Analysis and Design Concepts

Plane

tailNumber

public class Plane{private String tailNumber;

public List getFlightHistory() {...}}

domain concept

visualization of domain concept

representation in an object-oriented programming language

Analysis ConceptDesign Concept

Page 12: CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812) 877-8974 Email: chenowet@rose-hulman.edu.

Grady Booch

Ivar Jacobson Jim Rumbaugh

Unified Modeling Language (UML)

Page 13: CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812) 877-8974 Email: chenowet@rose-hulman.edu.

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

Page 14: CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812) 877-8974 Email: chenowet@rose-hulman.edu.

Domain Model for a Dice Game

Player

name

DiceGame

Die

faceValue

Rolls

Plays

Includes

2

2

1

1

1

1

Page 15: CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812) 877-8974 Email: chenowet@rose-hulman.edu.

Sequence Diagram for Play Dice Game

Page 16: CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812) 877-8974 Email: chenowet@rose-hulman.edu.

Design Class Diagram for Dice Game

2

Die

faceValue : int

getFaceValue() : introll()

DiceGame

die1 : Diedie2 : Die

play()

1

How does it differ from the domain model?

Q8

Page 17: CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812) 877-8974 Email: chenowet@rose-hulman.edu.

Three Perspectives to Apply UML

Conceptual perspective (Sketch)

Software specification perspective (Blueprint)

Software implementation perspective (Executable programming language)

Q9

Page 18: CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812) 877-8974 Email: chenowet@rose-hulman.edu.

Abstract Requirements to Concrete Systems

AbstractRequirements

ConcreteImplementation

ComputationalIndependent

Model

PlatformIndependent

Model

PlatformSpecificModelAnalysis/

ConceptualClasses

(Domain Model)

SoftwareClasses

(Design ClassDiagrams)

ImplementationClasses

(Language)

Page 19: CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812) 877-8974 Email: chenowet@rose-hulman.edu.

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

Page 20: CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812) 877-8974 Email: chenowet@rose-hulman.edu.

Reading, Homework, Project, …

See the course schedule!