Software Engineering Tutorial2
Software Engineering Tutorial2
Software Engineering Tutorial2
Tutorial 2
2. Which of the software engineering paradigms presented in Lecture 2&3 do you think
would be the most effective?
Prototyping model, because the resulting software is usually more usable, user needs
are better accommodated and the resulting software is easier to maintain.
6. Why are evolutionary models considered by many to be the best approach to software
development in a modern context?
Users get a chance to experiment with a partially developed system
Helps finding exact user requirements
Core modules get tested thoroughly
Training can start on an earlier release
b. Incremental Model
Builds system incrementally
Consists of a planned number of iterations
Each iteration produces a working program
c. Evolutionary Model
First develop the core modules of the software
The initial software is refined into increasing levels of capability
(Iterations)
By adding new functionalities in successive versions
d. Spiral Model
Spiral Model is a combination of both, iterative model and one of the
SDLC model
The team must decide – how to structure the project into phases
Each loop in the spiral is split into four sectors quadrants)
This model considers risk, which often goes un-noticed by most other
models
11. Why do requirements change so much? After all, don’t people know what they want?
Customer may not know what they want until they see the prototype of the software and
they will start to give their opinions on how to improve the software. Therefore,
prototyping and modeling and other things are encouraged so customer could see things
while developers are writing the requirements instead of making them wait until the
product is developed. Unforeseen problems such as budget cuts, changes in delivery
dates, problems during testing phases. Or maybe developers ignored certain requirements
at the early stages
12. Do a bit more reading and describe the concepts of refactoring and pair programming
in your own words.
Pair programming is an XP concept which recommends that two people work together at
the same workstation/ machine. One programmer acts as the driver who codes while the
other will serve as the observer who will check the code being written, proofread and
spell check it, while also figuring out where to go next. These roles can be switched at
any time: the driver will then become the observer and vice versa. This provides a
mechanism for real time problem solving as two people work together will be better than
a single person.