13
Software Life-Cycle and Models

Software Life-Cycle and Models. Let's Define Some Terms Software Life Cycle Software Life Cycle [Model] Software Development Life Cycle [Model]

Embed Size (px)

Citation preview

Page 1: Software Life-Cycle and Models. Let's Define Some Terms  Software Life Cycle  Software Life Cycle [Model]  Software Development Life Cycle [Model]

Software Life-Cycle and Models

Page 2: Software Life-Cycle and Models. Let's Define Some Terms  Software Life Cycle  Software Life Cycle [Model]  Software Development Life Cycle [Model]

Let's Define Some Terms

Software Life Cycle

Software Life Cycle [Model]

Software Development Life Cycle [Model]

Software Process

Software Process Model

aka: Defined Software Process

Page 3: Software Life-Cycle and Models. Let's Define Some Terms  Software Life Cycle  Software Life Cycle [Model]  Software Development Life Cycle [Model]

What is a Software Lifecycle?

Stages of existence of software.

Each stage represents a different state of software.

Can be from developer's view or customer's view.

Page 4: Software Life-Cycle and Models. Let's Define Some Terms  Software Life Cycle  Software Life Cycle [Model]  Software Development Life Cycle [Model]

Real World Software Lifecycle

1. idea.

2. decision to implement.

3. initial prototype.

4. create a fake business case to justify writing it.

5. reimplement in greater detail

6. add requirements (because its too hard to remember what we've doing)

7. software + architecture design

8. working but buggy software

9. software initial release for use

10. iterative fix bugs and add new features

Page 5: Software Life-Cycle and Models. Let's Define Some Terms  Software Life Cycle  Software Life Cycle [Model]  Software Development Life Cycle [Model]

What is a Life Cycle Model

A model of the phases that software goes through Serves as a guide for management of software

development Models omit some real-life complexity and detail

Page 6: Software Life-Cycle and Models. Let's Define Some Terms  Software Life Cycle  Software Life Cycle [Model]  Software Development Life Cycle [Model]

Typical Lifecycle Model Inception of idea

vision business case

Analysis Design Implementation Acceptance Deployment

transition training & education

Maintenance and Support End of Support Retirement

end of useful life transition or archiving

GREEN = part of the process, not life cycle

Page 7: Software Life-Cycle and Models. Let's Define Some Terms  Software Life Cycle  Software Life Cycle [Model]  Software Development Life Cycle [Model]

Is Testing Part of the Software Lifecycle?

Many people say it is.

Or, is it an activity that is part of many steps in the development process.

Page 8: Software Life-Cycle and Models. Let's Define Some Terms  Software Life Cycle  Software Life Cycle [Model]  Software Development Life Cycle [Model]

Idea

Software

What We Want

source: Bruegge, Object-oriented Software Engineering

Page 9: Software Life-Cycle and Models. Let's Define Some Terms  Software Life Cycle  Software Life Cycle [Model]  Software Development Life Cycle [Model]

How it should go: Our plan of attack

RequirementsAnalysis

Implementation

Design

Testing

Delivery and Installation

source: Bruegge, Object-oriented Software Engineering

Page 10: Software Life-Cycle and Models. Let's Define Some Terms  Software Life Cycle  Software Life Cycle [Model]  Software Development Life Cycle [Model]

Why the LC Model Doesn't Work Requirements aren't complete or accurate.

even the client doesn't know precisely

Analysis and design aren't accurate.

communication issues

model not precise

Difficult to manage change...

technology changes

new requirements emerge

resource limitations

Software consists of many systems

Page 11: Software Life-Cycle and Models. Let's Define Some Terms  Software Life Cycle  Software Life Cycle [Model]  Software Development Life Cycle [Model]

Why End of Software Life?

Software doesn't really "wear out".

Some products reach "end of support" even though people are still using them.

So what causes its end-of-life?

Page 12: Software Life-Cycle and Models. Let's Define Some Terms  Software Life Cycle  Software Life Cycle [Model]  Software Development Life Cycle [Model]

Causes of Software Obsolescence

Newer product is superior

hardware changes

functionality is no longer needed

Page 13: Software Life-Cycle and Models. Let's Define Some Terms  Software Life Cycle  Software Life Cycle [Model]  Software Development Life Cycle [Model]

Causes of Software "wear out"

Code becomes too difficult to maintain or modify

No one understands the source code (key developers leave w/o documentation)

Cost of maintenance is more than customers' willingness to pay

related to first item

shrinking customer base