Chap 2 Software Engineering Models
Chap 2 Software Engineering Models
Spring 2020
Different Process Models
1. Build and fix – No plan, very bad model,
Develop then maintain– little plan and more
maintenance
2. Waterfall—Linear steps. Never go back
3. Incremental prototype – deliver by parts
4. Synchronize and stabilize – Microsoft. team
works independently then join for synchronize
then stabilize. Repeat.
5. Spiral – repeating cycle of plan—analysis—
develop--evaluate
Different Process Models(2)
6. Object Oriented – Cycle of software process
-based on object model
7. Cleanroom – good mathematics and statistics
for software engineering
8. 4-GT – Fourth Generation Technique
9. Agile –very flexible and dynamic for user’s
request
10. Service model – SOA/ESB Service Oriented
Architecture/Enterprise Service Bus
1. Build and Fix
No plan, no engineering. Just code, test and
correct, run, correct, run ……
2. Waterfall
3. Prototype model
Prototype
Rapid prototyping
Evolutionary Model
4. Synchronize and stabilize Model
• Model made by Microsoft around 1990.
• Begins with good requirement analysis –
interview potential customers.
• Draw up specification in detail
• Divide project into 3-4 steps of production
cycle
• Each cycle is performed by small sized teams
working in parallel.
Synchronize-and-Stabilize(2)
• At the end of each team gathers and test and
debug. (Synchronize)
• At the end of cycle (build) they finalize.
(stabilize)
• The products are always worked together and
gets total picture.
S&S model
5. Spiral Model (Boehm)
• Popular model for many practitioners
• Iterative model from small to large scale
6. OO Model
7. Cleanroom Software Eng (CSE)
8. ETVXM model
CSE and ETVXM
9. Open Source Software Model
• Based on Open Source Movement
• It is developed by many people free.
• Cooperative work
• Two phases –
– Initial development by multiple developers
– Once accepted, continue to improve.
– Seek GPL license for quality assurance.
OSS Phase 1
Development
OSS is Open Source Software.
One individual builds an initial version.
Publish to web or SourceForge for free download
See the reaction of people
Enough interest and downloads then
Ask feedback and suggestion for expansion
Extend the feature in cooperation
OSS Phase-2
Maintenance
• Report and correct defects (corrective
maintenance)
• Add additional functionality (perfective
maintenance)
• Port the program to a new environment
(adaptive maintenance)
Summary
Developers of OSS
• Two groups—
– Core group : Spend most of their time in
developing and maintaining the software
– Peripheral group : Who usually detects error and
send report. Occasionally, help in development.
Release new version as soon as developed. Core group
does minimal testing. It is done by peripheral
group.
Often attracts most capable people in the developer.
Quality can vary depending of the situation—but many
OSS have proven quality.
Newer Models
-- Component based development
Use COTS for development cycle
-- Aspect Oriented software Development (AOSD)
extended from Component based development but
focus on functionality of each “aspects” of software.
-- Agile Software development
Effective (rapid and adaptive) response to change
Effective communication among all stakeholders
Drawing the customer onto the team
Organizing a team so that it is in control of the work
performed
Aspect Oriented Software Devel.
XP (Extreme Programming)
Begins with the creation of “user stories”
Agile team assesses each story and assigns a cost
Stories are grouped to for a deliverable increment
A commitment is made on delivery date
After the first increment “project velocity” is used
to help define subsequent delivery dates for
other
5-Key characteristics of XP
Communication
Simplicity
Feedback
Respect
Encourage.
Key Techniques of XP
User story
Pair Programming
Test before coding (TDD)
Class Exercise of Pair Programming
(Pair drawing)
Using one paper and one pen, draw any two
from the following.
A) World map with major country specified.
B) Typical keyboard (without seeing the actual
keyboard)
C) Arrangement of car interior (driver’s view)
D) Shape of a military tank (or airplane)
E) Sukbaatar square and buildings around.
10. Other Agile models
ASD (Agile Software Development) - Mission-driven planning
Component-based focus
DSDM(Dynamic Software Development Method) Active user
involvement is imperative.
Scrum -Development work is partitioned into “packets”
Crystal - family of process models that allow
“maneuverability” based on problem characteristics
FDD(Feature Driven Development)
Emphasis is on defining “features”
Software
Same as program?