![Page 1: CS5103 Software Engineering Lecture 02 More on Software Process Models](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/1.jpg)
CS5103Software
Engineering
Lecture 02 More on
Software Process Models
![Page 2: CS5103 Software Engineering Lecture 02 More on Software Process Models](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/2.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/3.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/4.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/5.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/6.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/7.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/8.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/9.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/10.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/11.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/12.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/13.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/14.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/15.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/16.jpg)
UTSA CS510316
Simple Requirements – User Stories
![Page 17: CS5103 Software Engineering Lecture 02 More on Software Process Models](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/17.jpg)
UTSA CS510317
Simple Requirements – User Stories
![Page 18: CS5103 Software Engineering Lecture 02 More on Software Process Models](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/18.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/19.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/20.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/21.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/22.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/23.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/24.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/25.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062804/5697bf7c1a28abf838c841fe/html5/thumbnails/26.jpg)
UTSA CS510326
Assignment I is online now:
http://xywang.100871.net/CS5103.htm