Professional Documents
Culture Documents
Software Engineering Concepts
Software Engineering Concepts
1 Differentiate between and describe the different types of software process model or software
development model. Highlight which software process model is used for windows and Linux
Applications.
Ans: One of the basic notions of the software development process is SDLC models which stands for Software
Development Life Cycle models. SDLC – is a continuous process, which starts from the moment, when it’s
made a decision to launch the project, and it ends at the moment of its full remove from the exploitation. The
most used, popular and important SDLC models are given below:
• Waterfall model
• Iterative model
• Spiral model
• V-shaped model
• Agile model
No matter what type of the models has been chosen, each of them has basic stages which are used by every
software development company. Let’s explore those stages as this is important for the understanding of the each
of SDLC models and the differences between them.
Waterfall Model:
Waterfall – is a cascade SDLC model, in which development process looks like the flow, moving step by step
through the phases of analysis, projecting, realization, testing, implementation, and support. This SDLC model
includes gradual execution of every stage completely. This process is strictly documented and predefined with
features expected to every phase of this software development life cycle model.
Advantages:
1. Simple to use and understand.
2. Management simplicity thanks to its
rigidity.
3. Development stages go one by one
4. Perfect for the small or mid-sized
projects where requirements are clear
and not equivocal.
5. Easy to classify and prioritize tasks.
Disadvantages:
1. The software is ready only after the last
stage is over.
2. High risks and uncertainty.
3. Not the best choice for complex and object-oriented projects.
4. Does not give the option of identifying the problem in advance.
5. Inappropriate for the long-term projects.
Iterative SDLC Model:
The Iterative SDLC model does not need the full list of requirements before the project starts. The development
process may start with the requirements to the functional part, which can be expanded later. The process is
repetitive, allowing to make new versions of the product for every cycle.
the iterative model is a realization of the sequential approximation method; that means a gradual closeness to
the planned final product shape.
Advantages:
1. Some functions can be quickly developed at the beginning of the development lifecycle.
2. The paralleled development can be applied.
3. It is easier to control the risks as high-risk tasks are completed first.
4. Problems and risks defined within
one iteration can be prevented in the
next sprints.
Disadvantages:
1. Iterative model requires more
resources than the waterfall model.
2. Bad choice for the small projects.
The process is difficult to manage.
3. The risks may not be completely
determined even at the final stage of
the project.
4. Risks analysis requires involvement of the highly-qualified specialists.
Advantages:
1. Lifecycle is divided into small parts,
and if the risk concentration is higher,
the phase can be finished earlier to
address the treats.
2. The scalability allows to make
changes and add new functionality
even at the relatively late stages.
3. The development process is precisely
documented yet scalable to the
changes.
Disadvantages:
1. Can be quite expensive and Can be ineffective for the small projects.
2. Big number of the intermediate stages requires excessive documentation.
3. The risk control demands involvement of the highly-skilled professionals.
Advantages:
1. Every stage of V-shaped model has strict results so it’s easy to control.
2. Testing and verification take place in the early stages.
3. Good for the small projects, where requirements are static and clear.
Disadvantages:
1. Lack of the flexibility.
2. Bad choice for the small
projects.
3. Relatively big risks.
Advantages:
1. Corrections of functional requirements are
implemented into the development process to
provide the competitiveness.
2. Project is divided by short and transparent
iterations.
3. Risks are minimized thanks to the flexible change
process.
4. Fast release of the first product version.
Disadvantages:
1. Difficulties with measuring the final cost because
of permanent changes.
2. The team should be highly professional and
client-oriented.
3. New requirements may conflict with the existing architecture.
4. With all the corrections and changes there is possibility that the project will exceed expected time.
Why use ATM: When you need money, you can stop at an ATM, enter a PIN and leave with cash.
Framework Tasks:
1. Automated Teller Machine is a banking terminal that accepts deposits and dispenses cash. When card
special card (ATM card is inserted) it activates its system.
2. It requests the bank’s computers to verify the balance and the authenticity.
3. Transaction is done according to limit of Card and available balance.
4. Updates Balance of user from bank and return the card to user.
5. Receipt printer that produces hard copies of all the transactions that have been affected.