Software Engineering Chapter 2
with complete verified solutions
2024/2025
What is software development in theory?
It is software that is developed linearly and starting from scratch
Requirements -> Analysis -> Design -> Implementation
What is Software Development in Practice like?
In the real world it is different, mistakes are made, and requirements
change while the product is being developed.
Winburg Mini Case Study -> Evolution Tree Model (What are the steps?)
• Episode 1: first version implemented
• Episode 2: a fault is found in Implementation
• Episode 3: a new design is adopted
• Episode 4: requirements change
• Epilogue: all this occurs again
What is the Waterfall Model?
• Linear lifecycle model with feedback loops
o Cannot show order of events.
o Feedback loops are maintenance and verification activities.
Evolution-Tree Model
• Explicit order of events is shown.
• End of each episode: baseline and a complete set of artifacts
(constituent components).
What are the Lessons of the Winburg Mini Case Study?
• Changes are always needed:
o Software product is a model of the real world that is continually
changing, and mistakes are always made
Moving Target Problem?
, • Change in requirements during development.
• Even if the reasons for change are good, the software product can be
adversely impacted
o Dependencies will be induced
• Any change can cause a regression fault
o A fault in a seemingly unrelated part of the software
• Too many changes -> entire produce may have to be redesigned and
reimplemented
T/F • Any change can cause a regression fault in a moving target problem?
T
What is Iteration and Incrementation?
• Real world: no talk about "phases"
• Basic software development process is iterative: each successive version
is intended to be closer to its target than its predecessor
What is Miller's Law?
• We can concentrate on only seven chunks (units of information)
• To handle large amounts of information, we use stepwise refinement:
o Concentrate on currently most important aspects
o Postpone less critical aspects
o Every aspect is eventually handled, but in order of importance
• This process is incremental.
What is stepwise refinement?
o Concentrate on currently most important aspects
o Postpone less critical aspects
o Every aspect is eventually handled, but in order of importance
What model uses Multiple instances of each phase as "workflows"
Iteration and Incrementation
What model uses • Sequential phases only exist in very small programs &
larger projects utilize the five workflows over the entire life cycle
Iteration and Incrementation
What are workflows in iteration and incrementaiton
• All five workflows are performed over the entire life cycle.
o One usually predominates.
Examples: beginning of lifecycle-> requirements
end of lifecycle -> implementation and test
• Planning and documentation activities are performed throughout the
entire lifecycle.
with complete verified solutions
2024/2025
What is software development in theory?
It is software that is developed linearly and starting from scratch
Requirements -> Analysis -> Design -> Implementation
What is Software Development in Practice like?
In the real world it is different, mistakes are made, and requirements
change while the product is being developed.
Winburg Mini Case Study -> Evolution Tree Model (What are the steps?)
• Episode 1: first version implemented
• Episode 2: a fault is found in Implementation
• Episode 3: a new design is adopted
• Episode 4: requirements change
• Epilogue: all this occurs again
What is the Waterfall Model?
• Linear lifecycle model with feedback loops
o Cannot show order of events.
o Feedback loops are maintenance and verification activities.
Evolution-Tree Model
• Explicit order of events is shown.
• End of each episode: baseline and a complete set of artifacts
(constituent components).
What are the Lessons of the Winburg Mini Case Study?
• Changes are always needed:
o Software product is a model of the real world that is continually
changing, and mistakes are always made
Moving Target Problem?
, • Change in requirements during development.
• Even if the reasons for change are good, the software product can be
adversely impacted
o Dependencies will be induced
• Any change can cause a regression fault
o A fault in a seemingly unrelated part of the software
• Too many changes -> entire produce may have to be redesigned and
reimplemented
T/F • Any change can cause a regression fault in a moving target problem?
T
What is Iteration and Incrementation?
• Real world: no talk about "phases"
• Basic software development process is iterative: each successive version
is intended to be closer to its target than its predecessor
What is Miller's Law?
• We can concentrate on only seven chunks (units of information)
• To handle large amounts of information, we use stepwise refinement:
o Concentrate on currently most important aspects
o Postpone less critical aspects
o Every aspect is eventually handled, but in order of importance
• This process is incremental.
What is stepwise refinement?
o Concentrate on currently most important aspects
o Postpone less critical aspects
o Every aspect is eventually handled, but in order of importance
What model uses Multiple instances of each phase as "workflows"
Iteration and Incrementation
What model uses • Sequential phases only exist in very small programs &
larger projects utilize the five workflows over the entire life cycle
Iteration and Incrementation
What are workflows in iteration and incrementaiton
• All five workflows are performed over the entire life cycle.
o One usually predominates.
Examples: beginning of lifecycle-> requirements
end of lifecycle -> implementation and test
• Planning and documentation activities are performed throughout the
entire lifecycle.