29
Fall 2002 SJSU -- CmpE Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department – RM# College of Engineering San José State University One Washington Square San José, CA 95192-0180 URL: http://www.cmpe.sjsu.edu/~fayad

Object-Oriented Analysis & Design

  • Upload
    maren

  • View
    29

  • Download
    0

Embed Size (px)

DESCRIPTION

Object-Oriented Analysis & Design. Dr. M.E. Fayad, Professor Computer Engineering Department – RM# College of Engineering San José State University One Washington Square San José, CA 95192-0180 URL: http://www.cmpe.sjsu.edu/~fayad. Lesson 3: Analysis Heuristics. 2. Lesson Objectives. - PowerPoint PPT Presentation

Citation preview

Page 1: Object-Oriented Analysis & Design

Fall 2002 SJSU -- CmpE

Object-Oriented Analysis & Design

Dr. M.E. Fayad, Professor

Computer Engineering Department – RM#

College of Engineering

San José State University

One Washington Square

San José, CA 95192-0180

URL: http://www.cmpe.sjsu.edu/~fayad

Page 2: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S2 Analysis Heuristics

2

Lesson 3:Analysis Heuristics

Page 3: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S3 Analysis Heuristics

Lesson Objectives

Objectives

3

Overview of previous lectures. Understand the analysis heuristics

–Go Beyond the Problem Domain

–Speculate About Likely Changes

–Separate General Functionality from Specific Policy

–Object should have Cohesive Interfaces

–Objects Should Be Intelligent Agents

–Objects Should Export Services

–Avoid “Object Machismo”

Page 4: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S4 Analysis Heuristics

RA

Design

Code

Test

Deploy

4

Overview: Life Cycle

What

How

Build

Test

Use

What is the customer really wants?

How – the best solution

How do we construct (implement) the system

Test

- Are customer requirements testable?

- Does the how logically follow from what?

- Does the built system do what it is suppose to do?

How do we enhance &/or repair the built system?

Page 5: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S5 Analysis Heuristics

Analysis Design

What is the problem? How to solve the problem?

Problem Space Solution Space

Mostly “one” Problem Many Solutions

5

Overview: Analysis vs. Design

Page 6: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S6 Analysis Heuristics

Practical

Concrete Action

Can be measured

Repeatable

Tailorable

Must be documented

Hierarchical

Specify who, what, when, how and ignore the why?

6

Overview: Process Properties

Page 7: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S7 Analysis Heuristics

Simple

Complete (most likely to be correct)

Stable to technological changes

Testable

Easy to understand

Visual or graphical 7

Overview: Model Properties

Page 8: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S8 Analysis Heuristics

A system structure is based on the “Real World”, “locks in” today’s problem domain relationships.

This makes it difficult to adapt the system to future requirements.

Look for relationships and generalizations that transcend the current problem domain

– Ask “What is it?”

8

Heuristic #1: Go Beyond the Problem Domain

Page 9: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S9 Analysis Heuristics

Build these into the analysis model

Developing an adaptable architecture does not happen just because you are using OOD and/or C++ (any more than extensibility or reuse occur automatically)

9

Heuristic #1: Go Beyond the Problem Domain

Generalize Early & Generalize Vigorously Generalize Early & Generalize Vigorously

Page 10: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S10 Analysis Heuristics

The “Real World” is the best model of today but it only hints at what tomorrow will bring

Basic for speculation

– Changing user requirements

– Changing customer base

– Competitive products

– changing technology10

Heuristic #2: Speculate About Likely Changes

Page 11: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S11 Analysis Heuristics

Build the analysis model so it can adapt to these likely changes

You do not have to be 100% correct.

Developing an adaptable architecture does not happen just because you are using OOD and/or C++ (any more than extensibility or reuse occur automatically) – Exs: Hooks, HotSpots, Design Patterns

11

Heuristic #2: Speculate About Likely Changes

Page 12: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S12 Analysis Heuristics

Place general functionality in entity objects (class)

– Entity object (class) will now be more reusable.

Place specific policy in control objects (active class)

– Policy is localized so that it is easier to introduce changes to this policy

12

Heuristic #3: Separate General Functionality from Specific Policy

Page 13: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S13 Analysis Heuristics

Conservation of Policy

– There is no way to eliminate or ignore all policy

– The policy will be in the delivered system

– All we can do is structure the policy so that it is easy to adapt and change it.

13

Heuristic #3: Separate General Functionality from Specific Policy

Mechanism Rich & Policy Free Mechanism Rich & Policy Free

Page 14: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S14 Analysis Heuristics

14

Heuristic #3: Illustrated Example – The Problem

Forms

State Tax

Federal Tax

File System

Calculator

Page 15: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S15 Analysis Heuristics

15

Heuristic #3: Illustrated Example – The Solution

Forms

State Tax

Federal Tax

File System

Calculator

MRPF

MRPF

MRP+

MRPR

MRPR

Page 16: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S16 Analysis Heuristics

In the “Real World”, a remote Controller for home electronics may have 50 buttons for controlling your TV, VCR, Stereo , and others.

Modeling this controller as a single, real-life object will not be adaptable to future changes.

16

Heuristic #4: Objects Should Have Cohesive Interfaces

Page 17: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S17 Analysis Heuristics

It may be better to:– First model each different set of operations as a

separate object with a strongly cohesive interface.– Model the combined functionality as a separate object

that uses other objects.

Result is more adaptable and reusable

17

Heuristic #4: Objects Should Have Cohesive Interfaces

Do One Thing Do One Thing

Page 18: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S18 Analysis Heuristics

Intelligent (Responsible) Objects

Incorporate important knowledge

Incorporate knowledge that is difficult to

produce, find, or replicate

Know how to synthesize knowledge

18

Heuristic #5: Objects Should Intelligent Agents

Page 19: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S19 Analysis Heuristics

Agents are capable of (limited) autonomous behavior

Know that they are supposed to do, and they do.

Work best with limited supervision.

Adapt to their environment

Know how to delegate work to other objects19

Heuristic #5: Objects Should Intelligent Agents

Page 20: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S20 Analysis Heuristics

Agents are capable of (limited) autonomous behavior

Know how to find objects to which they can delegate work

Have the information they need or know where to get the information or know where to get information on getting information or can interpret information given to them.

Are highly adaptable, extensible, and reusable

Are expensive to design and build20

Heuristic #5: Objects Should Intelligent Agents

Page 21: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S21 Analysis Heuristics

Objects that only export attributes or data must be

manipulated by clients. (aka. “dead data”)

Objects that only export basic operations require clients to

direct and supervise all activity (aka. “stupid objects”)

Objects that export services make life easier for their

clients:

– Server selects the best way to perform the service

– Server finds and manages the resources 21

Heuristic #6: Objects Should Export Services

Page 22: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S22 Analysis Heuristics

Services should define “What” not “How”

– Can “Drive to Work” be replaced by “Get to Work”

– Enhances extensibility

– Enhances reusability

– Distributes intelligence

22

Heuristic #6: Objects Should Export Services

Move Complexity From the Clients to the Servers Move Complexity From the Clients to the Servers

Page 23: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S23 Analysis Heuristics

23

Heuristic #6: Stack Example

Type Stackpush ( )

pop ( )

length ( )

empty ( )

full ( )

Stack Implementations

StackInterfaces

Page 24: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S24 Analysis Heuristics

Object machismo

– Equating the value of an object with how big and/or complex it is (e.g., Lines of Code, # of methods, or complexity of algorithms it uses).

– Macho objects tend to be central controllers that are difficult to design, difficult to understand, have to much policy, are hard to extend, and low reuse potential.

24

Heuristic #7: Avoid “Object Machismo”

Page 25: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S25 Analysis Heuristics

The value of an object is based on many factors

Does it do something useful Does it have a simple and clean interface Does it have well-specific behavior Does it model an essential quality of the system Can it be composed with other objects to

perform more complex tasks.

25

Heuristic #7: Avoid “Object Machismo”

Page 26: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S26 Analysis Heuristics

The value of an object is also based on other objects:

– An object perfectly suited for one model may be

totally wrong in another model

– The object must be placed in context to see

whether or not it is a good and valuable object.

26

Heuristic #7: Avoid “Object Machismo”

A Valuable Object Works and Plays Well with Others. A Valuable Object Works and Plays Well with Others.

Page 27: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S27 Analysis Heuristics

• Explain the following statements:

1. Objects should be intelligent agents

2. Mechanism rich and policy free

3. A valuable object works and plays well with others

4. Analysis model should not be too elaborate or too formal

• Explain how to build an analysis model

• Explain how do you make the analysis model more adaptable

27

Discussion Questions

Page 28: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S28 Analysis Heuristics

Define:

– Guidelines

– Heuristics

What do you think of these heuristics

– A designer should distribute system intelligence uniformly among the top level classes in the system.

– A designer should have 4.6 top level classes per 1,000 lines of code.

– Eliminate classes that are outside the system 28

Questions for the Next Lecture

Page 29: Object-Oriented Analysis & Design

Fall 2002 SJSU – CmpE --- M.E. Fayad L3-S29 Analysis Heuristics

Task 1: Problem Statement for team assignments are needed (see sample problems on the course web site). This is due on the second week of the semester.

Task 2: Identify the team members of your team. Select team name and e-mail me your team name and its members’ names, e-mails, phone numbers.

29

Tasks for Next Lecture