Professional Documents
Culture Documents
Thanh Pham
CS - 652
Table Contents
Design ......................................................................................................................... 5
Coding ......................................................................................................................... 5
Testing......................................................................................................................... 6
Deployment ................................................................................................................. 6
Maintenance ................................................................................................................ 6
V model ....................................................................................................................... 9
References ......................................................................................................................... 38
Table of figures
known as these models of software development. There are some models like spiral,
waterfall, incremental, V, prototype, RAD, iterative, and Agile model. Each software
development model will follow a specific lifecycle to ensure that the software
The software development process model will describe the stages of the software
development life cycle as well as the order in which these stages are executed. Software
requirements are transformed into designs. Based on the design, the code will be created.
This is called development phase. After the development phase, the test phase will
compare the product with the software requirements. The test team will check with
A software development life cycle usually has six stages: Collect and analyze
Software requirements will be collected during this stage. This stage focus on the
job between stakeholders and managers. The discussion between these parties like
through answering the questions like “Who is the software used by?” “How is the
software used?” “The input of the software” “The output of the software”. These
questions will be answered and recorded throughout this stage. After collecting the
software requirements, they will be analyzed for their ability to incorporate them into the
software.
After completion of the analysis and agreement with the parties, a software
guide the next stage. This document will also be used by the testing team for software
testing.
Design
During this stage, software design will be prepared based on the software
requirements specification document that was finalized at the earlier stage. Software
design defines the overall architecture of the software as well as hardware requirements.
A system design specification document will be provided as input to the next stage of the
model.
Coding
AGILE MODEL IN SOFTWARE ENGINEERING 6
After receiving the software design documentation, the job of this stage is to split
the software into smaller modules and execute it. In this stage the code will be created
and this stage will be for the developers. The coding is the longest period in the software
Testing
After these codes have been developed, it will be re-checked to ensure that the
software meets the requirements described in the software specification document. In this
stage these types of testing such as unit, integration, system, acceptance testing and non-
Deployment
After the testing process is finished, the product will be delivered to the customer.
If any errors are found, the customer will report back to the technical team. When all
Maintenance
Maintenance is the process of taking care of the product that has been delivered to
the customer. In the process that customers use the product, the actual problems will be
discovered and these issues need to be overcome over time. The whole process of solving
These models of software development are methods or processes which are chosen
to develop a project. The choice of the model depends on the objectives of the project.
AGILE MODEL IN SOFTWARE ENGINEERING 7
There are many models of software development life cycle which developed to achieve
the goals. The choice of model will greatly affect the testing process. It will determine
There are many different models of software development. They are listed below:
Waterfall, V, Incremental, RAD, Iterative, Spiral, Prototype, Agile Model. Using the
appropriate model for developing software applications is very important. Because of the
Different companies will choose different types of development models that match
the company's product type. Currently the agile model is the most commonly used model.
This model breaks the software into small functions, developing and testing these
functions. Create a demo for the customer, the customer can see the function and give
revisions if needed. Waterfall model is a model that has been used for a long time.
Testing is only performed when the whole development process is complete. Because
errors are shown at the end of the process, the cost of repairing is huge.
There are many companies that use “V model” to apply for their product
development. In the V model, the testing process is carried out simultaneously with the
”incremental model” are also used based on customer requirements and product
requirements.
Waterfall model
Waterfall model is a simple model to use and apply. In the waterfall model, a stage
will have to be completed before the next stage is started. This model is also called the
AGILE MODEL IN SOFTWARE ENGINEERING 8
sequential life cycle model. This model is often applied to small project, the requirements
are less varied and clear. In this model the software testing process is only carried out
after the development process has been completed. The stages in this model are
Figure 1: Waterfall Model. Adapted from " What is Waterfall model," by Istqb
Exam Certification. Retrieved from http://istqbexamcertification.com/what-is-waterfall-
model-advantages-disadvantages-and-when-to-use-it/
the rigidity of the model. Stages are completely independent and do not overlap.This
model applies to small projects where software requirements are simple and less varied.
When a product is testing, it will be very difficult for the application to change
requirements that is not included at the software requirements gathering stage. Customers
may only see software at the end of the software development life cycle. The risk is quite
high. This model is not suitable for projects where the requirements of the software vary
widely.
The waterfall model is used only if the software requirements are understandable
and fixed. The definition of product is fixed. Technology is well understood. There are no
Customers are less likely to interact with the product development process.
Customers will only be exposed to the product when it is finished. Once the product has
V model
The V-shaped is also known as the test and authentication model. Like the
waterfall model, the V-shaped model is a sequential processing model. A stage must be
fully completed before the next stage is started. V-shaped model is one of the many
software development models. The product testing process is carried out in parallel with
the product development process in this model (ISTQB Exam Certification, 2017h).
AGILE MODEL IN SOFTWARE ENGINEERING 10
Figure 2: Vee Model. Adapted from " What is V-model," by Istqb Exam
Certification. Retrieved from http://istqbexamcertification.com/what-is-v-model-
advantages-disadvantages-and-when-to-use-it/
Software requirements are the first stage of the life cycle model as well as the
waterfall model. In this model before the development phase is started, a system test plan
will be created. The system test plan will focus on the functional requirements that are
The high-level design phase will focus on system architecture design. It provides
an overview of the solution, the system, the platform, the process. An integrated test plan
will be created at this stage to test the interoperability of the components of the software.
AGILE MODEL IN SOFTWARE ENGINEERING 11
The low-level design stage is where the real components of the software are
The programming stage is the stage at which the code is generated. Once the code
is completed, the previous test plan will be used. The code generation stage is the bottom
of the V model. The system design is converted into code by the programmer. Unit
testing plans will be executed by programmers on the code that is generated by them.
Pros of V-model
Simple and easy to use. Test plans are planned before code generation. This will
save a lot of time. The success rate is higher than the waterfall model. Errors will be
found in the early stages. Compatible with small projects, the software requirements are
easy to understand.
Cons of V-model
This is a rather rigid and non-flexible model. Software developed during the
implementation phase. If there are changes in the middle of the line, the test document
The V model is used for small and medium projects where software requirements
are clearly defined and fixed. V model is selected when technical resources are available.
Incremental model
AGILE MODEL IN SOFTWARE ENGINEERING 12
The entire software requirement will be broken down into smaller requirements in
the incremental model. There are many development cycles that take place in this model.
This model makes the software development life cycle much like a collection of waterfall
models. Software development lifecycles will be broken down into smaller, more
model similar to the V model, the Agile model (ISTQB Exam Certification, 2017c).
created throughout the first module, so we will have a fairly early version of the software
throughout the software development life cycle. Each subsequent version of the module
adds functionality to the previous version. The process will continue until the system
completes..
For example:
development life cycle. This model saves money when customers change their
interact and respond to each module. Lower transfer costs. Risk management is easier
because the risks of each small module are defined and controlled during the interaction
process
A good plan and design is needed. The whole system must be fully defined before
it can be broken down and built up step by step. The total cost for selecting this model is
This model can be selected when the requirements of the whole system are defined
and understood. Key requirements must be defined. Models are selected for products that
need to be brought early to market. New technology used. Have high risk characteristics
and goals.
RAD model
RAD model, functions or components are developed simultaneously as they are small
prototype. This can quickly provide the customer with something to look at and use, and
Figure 5: RAD model. Adapted from " What is RAD model," by Istqb Exam
Certification. Retrieved from http://istqbexamcertification.com/what-is-rad-model-
advantages-disadvantages-and-when-to-use-it/
Rapid application development (RAD) model have some stages that are listed
below:
business functions.
AGILE MODEL IN SOFTWARE ENGINEERING 16
Data Modeling: The information obtained from business modeling will be used to
define these data objects that are needed for the business.
Process Modeling: Data objects defined in data modeling will be transformed into
Descriptions will be defined and created for the CRUD of data objects.
feedback will appear soon. Customer feedback is encouraged. Integration issues will be
Determining the business requirements depends on the strength of the team and
the capabilities of the individual. Only modularized systems can be built in the RAD
model. Developers and designers require high expertise. This model often applies to
RAD should be used when the system can be modulated in 2-3 months. It should
be chosen if there are many designers available to model and the budget is high enough to
pay for their effort along with the cost of automated code generation tools. The RAD
AGILE MODEL IN SOFTWARE ENGINEERING 17
model should only be chosen if high business intelligence resources are available and
Iterative model
The iterative development lifecycle model does not require a full specification of
the software requirements. Instead, the development process begins with specific part of
software, which can be evaluated to determine the next requirements. This process is
repeated, creating a new version of the software for each cycle of the model (ISTQB
For example
Figure 6: Iterative model example. Adapted from " What is iterative model," by
Istqb Exam Certification. Retrieved from http://istqbexamcertification.com/what-is-
iterative-model-advantages-disadvantages-and-when-to-use-it/
In the example above, the job will be repeated. The original product is only in the
raw form, then it will be reviewed and improved in the next iteration, the same process
Figure 7: Iterative model. Adapted from " What is iterative model," by Istqb
Exam Certification. Retrieved from http://istqbexamcertification.com/what-is-iterative-
model-advantages-disadvantages-and-when-to-use-it/
We will only create high-level design of the application before actually starting to
build the product and define a design solution for the entire product. Then a skeleton of
the product will be designed and constructed. Then the whole design will be based on
what has been built. Products will be improved step by step in this model. Therefore
errors can be tracked at very early stages. Reliable feedback from users will be sent to us.
We can ask them how the product works when we present the design and sketch of the
product to the user. Time to create the document will decrease, the design time will
increase.
architecture or design issues may increase as not all requirements are collected for the
entire lifecycle.
AGILE MODEL IN SOFTWARE ENGINEERING 19
The complete system requirements are clearly understood and defined. The project
Spiral model
The spiral model is similar to the incremental model, with an emphasis on the risk
analysis phase. The spiral model has four phases: the planning phase, the risk analysis
phase, the design phase, and the evaluation phase (ISTQB Exam Certification, 2017g).
A software project will be going through these stages in iterations. The basic spiral
is started during the planning phase, the requirements are collected, these risks are taken
into consideration. The next spiral will be based on the basic spiral.
Planning stage: Software requirements are collected during the planning phase.
Risk Analysis stage: A process is performed to define the risks and alternatives. A
prototype will be created at the end of the risk analysis stage. Alternative methods will be
Design stage: During this stage the software has been developed, along with the
test at the end of the stage. Therefore, in this stage testing and development will be
completed.
Evaluation Stage: This stage allows the client to evaluate the output of the project
Figure 8: Spiral model. Adapted from " What is Spiral model," by Istqb Exam
Certification. Retrieved from http://istqbexamcertification.com/what-is-spiral-model-
advantages-disadvantages-and-when-to-use-it/
The risks are avoided by a large amount of risk analysis. This model is suitable for
projects with important tasks. Powerful document control. Additional functions may be
added later. Software is created early in the software development life cycle.
The model is quite costly to use. Risk analysis requires high expertise. The success
of the project depends on the stage of risk analysis. Not suitable for small projects.
Models are chosen where cost and risk assessment are important. This model is for
high risk projects. Users do not identify their needs. The requirements are very complex.
Prototype model
requirements. By using prototypes, customers can get closer to the real-world system, and
customers can better understand the system through interaction with the prototype.
not provide for complex systems that have many details not built into the prototype
can better understand the system through prototypes. Errors can be detected sooner. Early
feedback will lead to better solutions. The error function can be determined soon. Hard or
This model can lead to the implementation and then modify the way the system is
built. This model is likely to increase the complexity of the system. The scope of the
system may be wider than originally planned. Incomplete applications may be the reason
The prototype is suitable for systems that have a lot of interaction with customers.
Web systems that interact with users are highly relevant to this model. This model
ensures that users continually work with the system and provide a response. This model
is great for interactive design between the user and the system.
other software development models (Water model, V model, Iterative model, etc.). Agile
AGILE MODEL IN SOFTWARE ENGINEERING 23
means "quick and easy migration" and the ability to respond quickly to changes. This is
Agile software development thinks that each project needs a different handling
and these methods need to be adapted to suit each project requirement. In this model,
these tasks should be divided into small time boxes to provide a specific feature for a
release.
An iterative approach is chosen and the version of the software delivered to the
user after each iteration. Each version of the software will be enhanced with features. The
final build will have all the functionality required by the client (Quick Scrum, 2016).
Figure 10: Agile Model. Adapted from " What is Agile model," by Istqb Exam
Certification. Retrieved from http://istqbexamcertification.com/what-is-agile-model-
advantages-disadvantages-and-when-to-use-it/
AGILE MODEL IN SOFTWARE ENGINEERING 24
In the Agile software development model, the development process is started early
and therefore the model becomes more popular over time because of its adaptability and
flexibility.
The most popular Agile methods include Rational Unified Process (1994), Scrum
(1995). After the Manifesto of Agile was announced in 2001, these above methods were
may need several years to complete and final product can’t be shown for customers until
the project is finished. For high level projects that do not use the agile model, they often
have to allocate extended time periods for collecting software requirements, designing,
On the other hand, projects using the agile model will divide large projects into
shorter development periods (sprints or iterations). These periods usually range from 2
weeks to 2 months. In these periods, the predefined characteristics will be developed and
Projects using the Agile model may have one or more small iterations and the
finished product will be fully delivered to the customer in the final iteration.
The Agile Agenda includes four values and 12 principles to lead the Agile
approach to software development. Each Agile approach applies four values in different
ways, but they must all be based on these values to guide the development and delivery
seniority in the Agile software development life cycle,. Team members are encouraged to
actively participate in the development and planning process. They can make specific
decisions by themselves. The Agile team must share ideas and collaborate for product
Working software
releases through increased product cycles over document and operating protocols. The
main objective of this model is to develop and distribute fault-free product functions in a
Customer collaboration
development are often unavailable or incomplete due to many reasons. In this model, the
development process takes place immediately and a working product release is shown for
the customer to verify and adjust. Stakeholders and project managers will communicate
to understand all necessary features of the product. Development time is greatly saved
AGILE MODEL IN SOFTWARE ENGINEERING 26
through collaborative processes with customers. The success rate will be higher due to
Responding to changes
in the product development cycle. These changes in product features can be made easily
functions that are described in the product records. Changes can be made at any time
while features are growing, including late in the product development cycle.
Here are 12 guidelines for Agile models. They describe the culture in which
Accept all change requests even late in the development process. The Agile model
In a short time, the stable version of the product is delivered to the customer.
Delivery times are sequential, ranging from a few weeks to a few months.
Developers and customers must work together on a daily basis throughout the
trusted and provided with all the things they need to be able to finish the job.
AGILE MODEL IN SOFTWARE ENGINEERING 27
meetings.
The stable version of the software that is delivered to customers is the main
Simple is essential.
The self-organizing groups will provide the best requirements, architecture, and
design.
Frequently, the team reflects on how to become more efficient, then adjust its
behavior accordingly.
was previously built by MS Word. Google's request is a new product that provides all of
the features that Ms Word has to offer, plus new features offered by the marketing team.
The final product should be completed in 10 months. Here are two approaches that will
be used to develop this software. Use Agile model and use traditional model like
waterfall model.
The project team will spend 15% of the project time collecting software
requirements and analyzing them (1.5 months). Time spent on application design is 20%
(2 months). Time for code generation and unit testing is 40% (4 months). The time for
integration testing and system testing is 20% (2 months). This project will have 5% of the
Customers will not see the final product until the end of the project. Any change
request will become too late and the cost is huge. Below is an illustration of the activities
Figure 11: These activities on traditional model. Adapted from " What is Agile
methodology" by Istqb Exam Certification. Retrieved from
http://istqbexamcertification.com/what-is-agile-methodology-examples-when-to-use-it-
advantages-and-disadvantages/
AGILE MODEL IN SOFTWARE ENGINEERING 29
When using the Agile model, the project will be broken down into a number of
short periods that we call "iterations." All of these periods will have the same duration
and usually two to eight weeks. At the end of each period, a working product will be
delivered to the customer. In other words, customers will receive 10 releases of the
product when applying the agile approach (assuming that each 4-week short period).
In this approach, the team will not spend 1.5 months collecting and analyzing
software requirements. Instead, they will find the core features of the product that can be
developed in the first iteration. All the features that were not implemented in the first
iteration will be implemented in the next iteration. The selected feature for the next
Teams will transfer a working software with these features that were selected for
Figure 12: These phase in an iteration. Adapted from " What is Agile
methodology" by Istqb Exam Certification. Retrieved from
http://istqbexamcertification.com/what-is-agile-methodology-examples-when-to-use-it-
advantages-and-disadvantages/
AGILE MODEL IN SOFTWARE ENGINEERING 31
Figure 13: The iterations of an Agile project. Adapted from " What is Agile
methodology" by Istqb Exam Certification. Retrieved from
http://istqbexamcertification.com/what-is-agile-methodology-examples-when-to-use-it-
advantages-and-disadvantages/
These customers can interact with the working software at the end of an iteration,
and customers can provide feedback on the release. This approach also allows the team to
receive required changes and easily correct them if needed. In the Agile approach, the
software will be developed and released from ascending in iteration. The relationship
between the software and the iterations is shown in the figure below.
AGILE MODEL IN SOFTWARE ENGINEERING 32
Figure 14: Relationship between software and iterations. Adapted from " What
is Agile methodology" by Istqb Exam Certification. Retrieved from
http://istqbexamcertification.com/what-is-agile-methodology-examples-when-to-use-it-
advantages-and-disadvantages/
customers, feedback on product changes and working product delivery. Due to its
industry. In a recent survey, more than 52% of respondents said their company was using
the Agile development approach to their projects. Understanding how the Agile
In traditional development methods, each function performs its job then moves
over to the next function. The previous function must confirm completed in all aspects
before moving to the next function. Requirements are collected and analyzed complete
and then passed through the design phase. End of the design phase will move through the
development phase and then the test phase. Each major function is a phase in itself.
In the way the Agile model works, each feature is completed in terms of design,
development, code generation, testing before the feature is considered done. This model
does not have separate phases and all work is completed in a single phase.
AGILE MODEL IN SOFTWARE ENGINEERING 33
approach. Teams that work with traditional models often work with detailed plans and a
complete prediction of the tasks and characteristics that are delivered in the next few
The predictive approach is entirely dependent on required analysis and plans are
completed at the beginning of the cycle. Any changes are strictly controlled. The Agile
model uses an adaptive approach that does not have a detailed plan and only clarifies
what functions need to be developed immediately. This model has developed according
to the features and the team will adapt to the changing requirements of the product.
Products are tested regularly, through releases. This will reduce the risk of future bugs.
approach. The Agile team will work closely together and the members are usually placed
project.
this method.
person's decision.
known as iterations.
advance. development.
very important. New changes can be made at low cost by the frequency of new
increments that are created. A new feature will only take a few days or a few hours to
In the Agile model the plans for starting a project are very limited. This model
assumes that customer requirements are changing. These changes can be discussed and
the features can be refreshed or removed based on feedback. This flexibility will give
Attributes
in the development
process.
future
system.
collaborate. oriented.
teamwork and cross-training. The functions are rapidly evolving and illustrated. This
method does not require too much resources. This method can be applied to projects with
fixed or variable requirements. The right solution to the problem is transferred soon. Easy
to deploy documentation with few rules. The original plan was very little or no
This method is not suitable for handling complex dependencies. There are many
risks of maintenance and expansion. A master plan, an agile leader is required to be able
to manage the project. This method depends a lot on the understanding of the customer. If
the client is not clear, the team will go in the wrong direction. Dependence on the
individual is very high because only very few materials are created. Transferring projects
to a new team will be difficult because there are not many documents.
References
ISTQB EXAM CERTIFICATION. (2017, 07). What are the Software Development Life Cycle
http://istqbexamcertification.com/what-are-the-software-development-life-cycle-sdlc-
phases/
ISTQB EXAM CERTIFICATION. (2017). What is Agile methodology? Examples, when to use
http://istqbexamcertification.com/what-is-agile-methodology-examples-when-to-use-it-
advantages-and-disadvantages/
disadvantages and when to use it? Retrieved from ISTQB Exam Certification:
http://istqbexamcertification.com/what-is-incremental-model-advantages-disadvantages-
and-when-to-use-it/
http://istqbexamcertification.com/what-is-iterative-model-advantages-disadvantages-and-
when-to-use-it/
http://istqbexamcertification.com/what-is-prototype-model-advantages-disadvantages-
and-when-to-use-it/
ISTQB EXAM CERTIFICATION. (2017). What is RAD model- advantages, disadvantages and
http://istqbexamcertification.com/what-is-rad-model-advantages-disadvantages-and-
when-to-use-it/
http://istqbexamcertification.com/what-is-spiral-model-advantages-disadvantages-and-
when-to-use-it/
AGILE MODEL IN SOFTWARE ENGINEERING 40
ISTQB EXAM CERTIFICATION. (2017, 03). What is V-model- advantages, disadvantages and
http://istqbexamcertification.com/what-is-v-model-advantages-disadvantages-and-when-
to-use-it/
disadvantages and when to use it? Retrieved from ISTQB Exam Certification:
http://istqbexamcertification.com/what-is-waterfall-model-advantages-disadvantages-
and-when-to-use-it/
Quick Scrum. (2016, 03 28). What Is Agile Software Development Life Cycle? Retrieved from
Agile-Software-Development-Life-Cycle
Smart Sheet. (n.d.). Comprehensive Guide to the Agile Manifesto. Retrieved from Smart Sheet:
https://www.smartsheet.com/comprehensive-guide-values-principles-agile-manifesto
Tutorials Point. (n.d.). SDLC - Agile Model. Retrieved from Tutorials Point:
https://www.tutorialspoint.com/sdlc/sdlc_agile_model.htm