Component-Based & Software Reuse

37
SJSU – CmpE Fall 2003 & 2004 L07-01-S1 Software Stability Component-Based & Software Reuse Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San José State University One Washington Square San José, CA 95192-0180 http://www.engr.sjsu.edu/~fayad

description

Component-Based & Software Reuse. Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San José State University One Washington Square San José, CA 95192-0180 http://www.engr.sjsu.edu/~fayad. Lesson 07: Software Stability. 2. Lesson Objectives. - PowerPoint PPT Presentation

Transcript of Component-Based & Software Reuse

Page 1: Component-Based & Software Reuse

SJSU – CmpE Fall 2003 & 2004 L07-01-S1 Software Stability

Component-Based & Software Reuse

Dr. M.E. Fayad, ProfessorComputer Engineering Department, Room #283I College of EngineeringSan José State UniversityOne Washington SquareSan José, CA 95192-0180 http://www.engr.sjsu.edu/~fayad

Page 2: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S2 Software Stability

2

Lesson 07:Software Stability

Page 3: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S3 Software Stability

Lesson Objectives

Objectives

3

Overview of Previous Lecture Understand the following:– Enduring Business Theme – Business Objects– Industrial Objects– Framework Layering

Page 4: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S4 Software Stability

Roadmap

4

Scare - General State of Panic

Identify the Killers (Problems)

Catch the killers (Solutions)

Objectives

Page 5: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S5 Software Stability

The Current State of Software - I

5

Current software projects are engineered for the “here and now.”

Changes in the support structure or the software market require massive reengineering projects.

This reengineering costs ridiculous amounts of money.

Page 6: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S6 Software Stability

The Current State of Software - II

6

Software has short life span. Often wrong software application is

implemented Sometimes cancelled before completion maintenance cost over 80% of the

development lifecycle

Page 7: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S7 Software Stability

Sample Problem - The Loan

7

January 1998– I gave a loan of $1000 to one of my students.– He promised to return the money by May 1998.

April 1998– Received an e-mail asking for an extension until

August 1998 March 2002

– I have not received the money

Page 8: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S8 Software Stability

Where Is The Problem?

8

After giving this problem to the students in a software engineering class, I received the following responses.– There is no problem.– Take him to court.– Kick his $@%#&!– Ignore it.

What do you think?

Page 9: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S9 Software Stability

A Traditional Model

9

Lender Loan

Borrower

Owes Borrowed

Lent

Do you think this model is an accurate representation of the problem?

Page 10: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S10 Software Stability

Roadmap

10

Scare - General State of Panic

Identify the Killers (Problems)

Catch the killers (Solutions)

Objectives

Page 11: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S11 Software Stability

Problems

11

Wrong Analysis

Industrial Objects

Not stable architecture

Missing the most enduring concepts

Page 12: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S12 Software Stability

Roadmap

12

Scare - General State of Panic

Identify the Killers (Problems)

Catch the killers (Solutions)

Objectives

Page 13: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S13 Software Stability

Open Discussion

13

Problem DomainFriendship

Health

EmploymentFamily

Other Relationships

Borrower

Schedule

Lender

Loan

Education

Expenses

Finance

Needs

Page 14: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S14 Software Stability

EBT-Based Model - The Loan Problem

14…

Friendship{Enduring}

Friend{Business}

Borrower Lender

Finance{Enduring}

Loan{Business}

Solvency{Enduring}

Need{Enduring}

Expenses{Business}

Employment{Business}

Health{Business}

Education{Business}

Family{Business}

Page 15: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S15 Software Stability

Kitchens are systems that we are all familiar with. What makes a kitchen a kitchen? Traditionally, people think of a certain set of objects

when they think of a kitchen:– Stove– Sink– Refrigerator– Dishwasher– etc...

15

Sample Problem II - The Kitchen

Page 16: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S16 Software Stability

The result is a model like this:

16

The Kitchen - A Traditional Model

Kitchen

Cabinet Counter Appliance Sink

Refrigerator Dishwasher RangePantry

Cooktop OvenFreezer

Page 17: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S17 Software Stability

This model has inherent flaws, however.

The model can be thought of as a “tree” of aggregations and generalizations.

Many of the roots of the subtrees can change drastically, causing this model to break.

For example, imagine replacing the appliance node with a Star Trek food replicator... 17

The Kitchen - A Traditional Model

Kitchen

Cabinet Counter Appliance Sink

Refrigerator Dishwasher RangePantry

Cooktop OvenFreezer

Page 18: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S18 Software Stability

To correct this model, one must concentrate on those aspects that do not change over time.

Enduring Business Themes are those concepts that remain constant for a given problem.

Business Objects are those support objects that remain internally stable.

Objects that may be replaced as times change are Industrial Objects.

18

The Kitchen - Correcting The Model

Page 19: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S19 Software Stability

What does a kitchen need? What do people do in a kitchen? What is a kitchen for?

19

The Kitchen - Correcting The Model

Cooking

Cuisine

LivabilityStorage

Cleanliness

Convenience

Spaciousness

Page 20: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S20 Software Stability

20

The Kitchen - A Stable Model

Cabinet Pantry

Refrigerator Freezer

Food Storage &

Preservation{Enduring}

Microwave

Range

Cooking{Enduring}

Cooktop Oven

Cuisine{Enduring}

Recipe{Business}

Food

Livability{Enduring}

Cleanliness{Enduring}

Convenience{Enduring}

Light{Business}

Counter Shelf

Sink DishwasherWindow Electric Light

Kitchen

Page 21: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S21 Software Stability

Identifying Enduring Business Themes & Business Objects - Identification

Criteria

21

Stability Adaptability Essentiality Explicitness Intuition Tangibility Commonality to the Domain

Page 22: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S22 Software Stability

22

EnduringBusinessThemes

BusinessObjects

IndustrialObjects

Intuition Intuition Intuition andReading

Reading Only

Identification Criteria

Page 23: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S23 Software Stability

23

Enduring Business Themes

Business Objects

Industrial Objects

Intuition Intuition Intuition and Reading

Reading Only

Stability Over Time

Stable Over Time Internally Stable Unstable

Identification Criteria

Page 24: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S24 Software Stability

24

Enduring Business Themes

Business Objects

Industrial Objects

Intuition Intuition Intuition and Reading

Reading Only

Stability Over Time

Stable Over Time Internally Stable Unstable

Adaptability Adaptable Without Change

Adaptable Through external Change

Not Adaptable

Identification Criteria

Page 25: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S25 Software Stability

25

Enduring Business Themes

Business Objects

Industrial Objects

Intuition Intuition Intuition and Reading

Reading Only

Stability Over Time

Stable Over Time Internally Stable Unstable

Adaptability Adaptable Without Change

Adaptable Through external Change

Not Adaptable

Essentiality Essential Essential Replaceable

Identification Criteria

Page 26: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S26 Software Stability

26

Enduring Business Themes

Business Objects

Industrial Objects

Intuition Intuition Intuition and Reading

Reading Only

Stability Over Time

Stable Over Time Internally Stable Unstable

Adaptability Adaptable Without Change

Adaptable Through external Change

Not Adaptable

Essentiality Essential Essential Replaceable

Commonality to the Domain

Core Core Peripheral

Identification Criteria

Page 27: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S27 Software Stability

27

Enduring Business Themes

Business Objects

Industrial Objects

Intuition Intuition Intuition and Reading

Reading Only

Stability Over Time

Stable Over Time Internally Stable Unstable

Adaptability Adaptable Without Change

Adaptable Through external Change

Not Adaptable

Essentiality Essential Essential Replaceable

Commonality to the Domain

Core Core Peripheral

Tangibility Conceptual Semi-tangible Tangible

Identification Criteria

Page 28: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S28 Software Stability

28

Enduring Business Themes

Business Objects

Industrial Objects

Intuition Intuition Intuition and Reading

Reading Only

Stability Over Time

Stable Over Time Internally Stable Unstable

Adaptability Adaptable Without Change

Adaptabl Through external change

Not Adaptable

Essentiality Essential Essential Replaceable

Commonality to the Domain

Core Core Peripheral

Tangibility Conceptual Semi-tangible Tangible

Explicitness Implicit Sometimes Explicit

Explicit

Identification Criteria

Page 29: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S29 Software Stability

Identification Heuristics - Enduring

29

Enduring Business Themes and Business Objects must be enduring.

Watch out - Long field histories will not necessarily translate to true endurance.

Page 30: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S30 Software Stability

Identification Heuristics - Industrial Object Identification

30

Is the object present in a “classical” model?

Can the object be replaced?

Is the object a representation of a concrete item?

Page 31: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S31 Software Stability

Identification Heuristics - Top-Down Identification

31

Break off conceptual pieces of the problem.

Recursively break these concepts down.

Stop when a layer of industrial objects is reached.

Page 32: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S32 Software Stability

Identification Heuristics - Bottom-Up Identification

32

Start with a “classical” model.

Group the industrial objects under a conceptual “heading.”

Continue this grouping until further grouping is impractical or nonsensical.

Page 33: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S33 Software Stability

Identification Heuristics - There Is No Silver Bullet

33

EBT’s are conceptual themes… Usually

Business objects are more concrete objects… Usually

There are always exceptions to any rule.

Page 34: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S34 Software Stability

34

Security_Manager (I O)

CheckPassword( )

Trait_Gatekeeper (I O)

CheckTraits( )

1 Identity (enduring)1Security (enduring) 11

*1 *1

IDSession (B O)DomainName : type = string

FindCandidates( )AddPerson( )DeletePerson( )GetPersonProfile( )

11IDManager (B O) 1PersonIdentifier (B O)

Search( )Search( )

1

1

*PersonProfile (I O)

uniqueID : type = longvalCandidateListGenerator (I O) *1

DataManager (B O)11 11

1

*

PersonTraits (I O)*1

HealthCare Example: PID

Page 35: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S35 Software Stability

• 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

35

Discussion Questions

Page 36: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S36 Software Stability

Define: Criteria for Enterprise Frameworks

Let’s discuss of how to build Enterprise Frameworks

T/F:

EBTs are testing patterns.

BOs are stable design patterns.

EBTs + BOs = Framework.

36

Questions for the Next Lecture

Page 37: Component-Based & Software Reuse

Fall 2003 & 2004 SJSU – CmpE M.E. Fayad L07-01-S37 Software Stability

Task 1: Stable Analysis Patterns

Task 2: Stable Design Patterns

Task 3: Design Sessions for SSM (Discuss)

37

Tasks for Next Lecture