• No results found

Software Life Cycle. Management of what to do in what order

N/A
N/A
Protected

Academic year: 2021

Share "Software Life Cycle. Management of what to do in what order"

Copied!
28
0
0

Loading.... (view fulltext now)

Full text

(1)

Software Life Cycle

Management of what to do in

what order

(2)

Software Life Cycle (Definition)

The sequence of activities that take place during software development.

Examples:

code development

quality assurance (QA)

changing client requirements

management intervention

redevelopment

QA again

etc.

(3)

Typical Life Cycle

(at the worst short-lived companies)

Software Development Management

Quality Assurance (QA)

Sales

Customer

(1. Imagines printer software.)

(2. Sells copy machine software.)

(3. Develops really cool walking/talking AI that will operate fax machines.)

(4. Unsure what code does, but tests for bugs and agrees product will properly toast bread.)

(5. Sues.)

(4)

Need Communication and Control

Model from one company where I worked.

(And the basis of many early “.coms”.)

Developers

Management

QA

Sales Customer

requirements match code developed brainstorm

idea

developers tell

management about product

pass buck to sales

convince customers we have a good product

(5)

Problems?

Mostly works, but

1.

QA has no real feedback. By definition the code does what the developers say it will. Just minor bug control.

2.

Development does whatever they want (fun).

3.

Management only manages sales, not developers or QA.

4.

What if Development didn’t do a good job of

anticipating market needs? Are they business

majors?

(6)

Can You Suggest a Better Model?

Developers

Management

QA

Sales Customer

Try it…

(7)

Classic “Waterfall” Model

An idealized linear model in roughly 5 steps.

 Analyze

 Specify

 Design

 Build

 Test

(8)

Waterfall Picture

Analyze

Specify

Design

Build

Test

Also called “throw-it-over-the-wall” model.

(9)

Waterfall Details

1. Analyze

(management, marketing, sometimes development)

consult with client, or brainstorm use case diagrams

ensure useful

2. Specify

(development management, QA)

set requirements document

communication between management and developers

break up into modules for each developer (sometimes

part of the Design stage)

(10)

Waterfall Details (cont.)

3. Design

(development, dev management, QA)

functional specification document class diagram

sequence diagram (if necessary)

4. Build

(development)

write code

ensure modularity, flexibility

ensure high cohesion, low connectivity

implementation document (when done)

use case scenarios for QA (for your detailed piece)

5. Test

(QA, development)

ensure reliable

(11)

Design Stage Has Many Review Steps

Reviews facilitate communication between developers and developers’ boss (nail down expectations).

Functional Spec Review

This is the functionality I will code.

Parrot use case diagram in code-like terms.

Design Document Review

Here’s how I’ll really do this in detail.

Includes class diagram.

Implementation Document Review

Despite what I said, this is the way it really worked.

Includes class diagram.

Post-Mortem Review

This is what worked well or did not work well.

Lessons for next time.

Reviews go by many different names…

(12)

Other Stages Have Many Steps

But as software developers we are

primarily concerned with Design steps.

Take business courses for other stages.

(13)

Advantages of Waterfall Model

Easy to understand.

Easy to implement.

Commonly used.

Easy to modify.

Many government and big business contracts require you to use and document this

approach.

(14)

Problems With Waterfall Model

Many criticisms of the standard waterfall model, including

1.

Problems are not discovered until Test stage.

2.

Requirements must be completely specified before the software is designed - requirement changes make the model unstable.

3.

Design and coding often turn up requirements

inconsistencies, missing components, and unexpected development needs.

4.

System performance cannot be tested until the system is almost coded.

Linear and uni-directional. Can’t go backwards.

(15)

Alternative: Prototyping Model

A big failure of waterfall is that changes in requirements muck up everything.

Solution: build a prototype.

 Or a quick mock up, or partial implementation…

 Show it to the customer.

 Revise requirements.

 Repeat.

(16)

Prototyping Model Picture

Specify (Requirements)

Quick Design

Revise Requirements Build Prototype

Full Design Show Customer

satisfied not satisfied

the rest is the same…

(17)

1. Throw away prototype.

2. Re-usable prototype. Modularity a must!

Advantages, disadvantages?

Speed for prototype vs. speed for final product.

Time is money

Two Types of Prototypes

(18)

Problems With Prototype Model

When do you stop iterating?

 picky customers are never satisfied.

 Solution: Can set arbitrary time limits on each iteration.

1 week.

Difficult for big products.

 The prototype can be too big a job.

 Solution: Rapid throwaway. Quick and dirty

prototypes. Not re-useable. 

(19)

Iterative Model

Standard operating system software approach.

1. Develop software and release to public.

2. Using customer’s experiences, improve, redesign, re-implement, re-release.

3. Iterate, and keep releasing with new and better functionality.

Modularity is essential! Why?

(20)

Iterative Model Picture

Analyze

Specify

Design

Build

Test Deliver

Sometimes also includes

the prototype model.

(21)

Iterative

Advantages/Disadvantages

Advantages

1.

incorporates the customer’s feedback naturally.

2.

changing requirements are incorporated at two levels.

1. prototyping

2. new releases

3.

generate excitement/buzz with limited beta release.

Disadvantages

annoy customer with poor releases.

(22)

Spiral Model

Developed by Boehm, 1988.

Iterative.

Rarely used exactly.

Frequently used to some extent.

(23)

Spiral Model Picture

increasing cost

1. Analyze risks

2. Specify requirements 3. Engineer:

Design Implement QA

4. Evaluate

commitment partition

(24)

Spiral Advantages

1. Works with any of the previous models.

2. Naturally incorporates changes in requirements.

3. Good model for handling risk.

 Can do high risk in first loop (so bail early if necessary).

 Lower risk items later.

(25)

Spiral Model Is Vague!

(Disadvantage)

Doesn’t indicate what the result of each loop should be.

A final product? (uncommon)

An increasingly refined product? (common)

Partial products, slowly integrated? (common)

Doesn’t indicate when to end.

Probably should happen in risk assessment.

So with inexperienced hands, costs can

blossom.

(26)

Object-Oriented Process

Just the above models with OO practices.

Heavier use of UML to guide the above models.

Attempt to reuse components.

(27)

OO Process and Reusability

VERY DIFFICULT. (true reusability hard to achieve)

Still maturing.

One idea:

1.

Identify potentially reusable classes/packages.

2.

Set these aside into a “possibly reusable library”

3.

When a new customer’s project is started, identify those classes in the library that might be reused.

4.

If they can be, then generalize/improve these classes so that they really are modular and reusable.

5.

Pass on the cost of generalization to the new customer

(who will see it as a cost savings because you don’t

have to develop from scratch!)

(28)

Many Other Life Cycle Models

Clean Room Process

Emphasis on defect prevention rather than correction.

Use mathematical proofs to show each part of the code is correct.

Invented by IBM.

Defect Prevention Process

whenever something doesn’t work, find the root cause and suggest an improvement to the life cycle process

Etc.

References

Related documents

Tarleton State University exists to provide an academically challenging educational experience through effective teaching, scholarship, research, and service enabling students

and Minerals (MIM), which was responsible for most of the country’s SOEs, developed a strategy to keep its “staff working and off the streets, cover their payroll disbursements

(2) Subject to provisions of the Regulations notified by the Commission and such direction as the Commission may give from time to time, the obligated

When the price elasticity of demand for a good is unit elastic (or unitary elastic) (|Ed| = 1), the percentage change in quantity is equal to that in price and a change in price will

MIFID II PRODUCT GOVERNANCE / PROFESSIONAL INVESTORS AND ELIGIBLE COUNTERPARTIES MARKET – Solely for the purposes of [the/each] manufacturer’s product approval process,

One possible approach, found in the Obama campaign plan, would be to establish a purchasing exchange at the federal level. Ensuring that health insurance is uniformly available

There are three types of pure-strategy equilibria that can emerge in this model in state (1, 1) : a) the firm fully discloses the state, b) the firm engages in partial disclosure, or

The agile process follows the software development life cycle which includes requirements gathering, analysis, design, coding, testing and delivers partially implemented