Top Banner
CS5103 Software Engineering Lecture 02 More on Software Process Models
26
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CS5103 Software Engineering Lecture 02 More on Software Process Models.

CS5103Software

Engineering

Lecture 02 More on

Software Process Models

Page 2: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS5103

2

Requirementsengineering

Validateprototype

Design + buildprototype

Design andimplementation

Formalizerequirements

Integration

The Prototype Model     

Page 3: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS51033

Looks like a two-cycle water fall model Actually not, it is weak + strong

Improvements from waterfall Good: users involve more (by using prototype),

reveal small errors in requirements / design

Not solved: still can not handle frequent requirement changes

Bad: prototype is discarded (waste of some effort, sometimes can be even more expensive than water fall)

The Prototype Model     

Page 4: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS51034

Used frequently for requirement collection

Rarely used as a whole software development process

In practice

Page 5: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS51035

The Iterative Model     

Requirementsengineering

Design & Implementation& Integration

Testing

Solve these risks by infinite weak cycles

Page 6: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS51036

Plan for change

Use the same steps as waterfall

But expect to iterate the whole process continually, and spend less effort on each iteration (weak cycles)

Iterative Model     

Page 7: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS51037

Building tool for Java

First stable version 1.1 released in June 2000 Small developer group with 3-4 people First prototype version released in one month First stable version released in about half a year

Example: Ant Project     

Page 8: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS51038

The Project evolves for 13 years 5770 issue (bugs & new features) reports from users,

2581 reports handled

7 more major versions in 13 years Code commits 12,000 + File modifications 50,000 + Lines of code from 25.6k to 260k

Example: Ant Project     

Page 9: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS51039

Cheaper to get a working software Get the first version very fast

Users involve earlier User can give feedback after the first version released

The software always work, though not perfect Important in many cases, e.g., in competitions

Keep refining requirements, and accommodates changes Cost for requirement changes/errors are small

Advantages

Page 10: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS510310

More bugs, sometimes may cause severe loss

Design is critical to make sure a change does not affect the whole system

Disadvantages

Page 11: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS510311

Most existing software projects use this model Daily builds Releases

Not suitable for systems that are costly for testing or very critical in quality NASA programs Military / Scientific / …

In practice

Page 12: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS510312

Time is the enemy of all software projects

Why time matters?

Before we go to Extreme Programming, Let’s see an opinion on

time

Page 13: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS510313

The World Changes requirement may change Techniques become obsolete Computing environment changes

Business Competition

Within a very short period of time, the world can be viewed as unchanged

Time matters

Page 14: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS510314

Extreme Programming still uses iterative process model, but goes to extreme

Extreme Programming

Page 15: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS510315

Small requirements Testable user stories Write test cases first

Simple design Simplest design to pass test cases Pair programming Code refactoring frequently

Quick evaluation Have customers involved to evaluate the software

frequently

Shorter cycles (2-4 weeks)

Page 16: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS510316

Simple Requirements – User Stories

Page 17: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS510317

Simple Requirements – User Stories

Page 18: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS510318

Customer must describe how the stories are tested

With concrete data examples Tests should be automated

Test case example1. I create an account “savings”

2. I ask for list of accounts, I must obtain “savings”

3. I create an account “savings” again, I must get error

4. I check the balance the account “savings”, I must get 0

5. …

Sample Requirements – test cases

Page 19: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS510319

Just in time Design and implement what you know now, not worry

too much about future : future is unpredictable

No optimization for future It is common that the optimization becomes

unnecessary Example: optimization to handle large input data,

but later found the input changed (e.g., smaller format, or available in a summarized form)

Simple design

Page 20: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS510320

Programmer and Monitor Pilot and Copilot Or Driver and Navigator

Programmer types, monitor think about high-level issues

Disagreement points to design decisions

Pairs are shuffled

Pair programming

Page 21: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS510321

Result in better code Instant code review Monitor always notice the big picture

Knowledge and skill migration Better coding styles

Reduces Risk More people understands the code

Advantages

Page 22: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS510322

Stressful to relate to people all the time Slows the programming

But save for time in maintenance

Waste of personnel But less bugs, and more people can work on it, once

bugs are revealed

Why people don’t like

Page 23: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS510323

Automatic comprehensive suite is required Always keeps code working

Do regression testing before/after any major changes Plan coding to allow frequent tests

Do not do too comprehensive changes, try to break them to smaller phases

Example: Add a product query feature for shopping software Add list all products first Add text query Add filtering conditions one by one Add sorting …

Regression Testing and Evaluation

Page 24: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS510324

Use for: Requirement prone to change Easy to get testable requirements (often true in the

maintenance phase on a software) Need quick delivery (business competition)

In practice, frequently used in start-up companies

Not to use for: Large group for large project (still can be used for

components) No highly-involved customers

When to use extreme programming

Page 25: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS510325

Software Requirements Concepts Process

Elicitation Analysis Specification Validation

Elicitation Approaches

Next Class

Page 26: CS5103 Software Engineering Lecture 02 More on Software Process Models.

UTSA CS510326

Assignment I is online now:

http://xywang.100871.net/CS5103.htm