Software Life-Cycle and Models. Let's Define Some Terms Software Life Cycle Software Life...

Preview:

Citation preview

Software Life-Cycle and Models

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

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.

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

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

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

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.

Idea

Software

What We Want

source: Bruegge, Object-oriented Software Engineering

How it should go: Our plan of attack

RequirementsAnalysis

Implementation

Design

Testing

Delivery and Installation

source: Bruegge, Object-oriented Software Engineering

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

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?

Causes of Software Obsolescence

Newer product is superior

hardware changes

functionality is no longer needed

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

Recommended