Software Development Process Models
1.
A. Incremental Model
-
Definition:
The
Incremental Model is a method of software development where the model is
designed, implemented and tested incrementally (a little more is added each
time) until the product is finished. It involves both development and
maintenance. The product is defined as finished when it satisfies all of its
requirements [1]. Based on client feedback, a plan is developed for the next
increments, and modifications are made accordingly [2].
-
Advantages:
a.
Faster and earlier in developing product
during SDLC
b.
Testing and debugging during smaller
iteration are easy [3]
c.
More flexible in costs and requirements
required
d.
User can respond the initial product
during SDLC
-
Disadvantages:
a.
Need a long process to fulfill the
requirements
b.
Not kind of an instant project
c. Requires
early definition of a complete and fully functional system to allow for the
definition of increments [4]
B.
Concurrent Development Model
-
Definition:
The
Concurrent Development Model is a method of software development method that
all processes and stages are carried out at the same time but can suddenly stop
when there are new requests from customers. Concurrent software development
means starting developing when only partial requirements are known and
developing in short iterations which provide the feedback that causes the
system to emerge [5].
-
Advantages:
a.
Gives a breadth-first approach to
high-stakes decisions, making it more likely that they will be made correctly [6]
b.
Can apply to all types of software
development
c.
Provide an accurate picture of the current
condition of a project
d.
New features of the software can be added
later at the end of the project
-
Disadvantages:
a.
It needs better communication between team
members, this may not be achieved all the time and also need to remember the
status of the different activities [7]
b.
The process and stages can be so numerous
that it requires more time.
c.
It will be difficult to find a problem in
the middle of the process
2.
A. V Model
-
Advantages:
a.
The test team is reasonably kept occupied
throughout the development cycle in contrast to the waterfall model where the
testers are active only during the testing phase, this leads to more efficient
manpower utilization [8]
b.
Simple and easily understand and use
c.
Low cost in maintenance and modification
software during life cycle
d.
Users participate in the maintenance and
modification process
-
Disadvantages:
a.
Not a good method for complex and
object-oriented projects
b.
Not suitable for the projects where
requirements are at a moderate to high risk of changing
c. The
process is only temporary. When the project is finished, the model process is
stopped
B.
RAD Model
-
Advantages:
a.
Suitable for project that require shorter
development time
b.
Generally, incorporates short development
cycles – users see the RAD product quickly [9]
c.
Involves user participation so it can
increase chances of early user community acceptance
-
Disadvantages:
a.
Cannot be used when the system to be built
cannot be modulated
b.
Requires experienced human resources and
also large scaled in software development
c. Unknown
cost of product, can be alleviated by the customer agreeing to a limited amount
of rework in the process [10]
C.
Spiral Model
-
Advantages:
a.
Recommended for a complex and large-scaled
project
b.
Customer can change the requirements
without disrupting product development
c.
Concerned people of a project can early
review each phase and each loop as well because of rapid prototyping tools [11]
-
Disadvantages:
a.
Not suitable for a short-scaled or tiny
project
b.
Produce a lot of documentation caused by many
processes and also repeated phases
c.
Project’s success is highly dependent on
the risk analysis phase [12]
d.
Highly requires a risk analysis capability
-
Definition:
Specialized
process models are process model that adjusts the stages and methods to the
project and the type of product to be made. Specialized process models are
frameworks in software engineering based on characteristics and conditions that
are possible in software development.
-
Advantages:
a.
Process models are applied according to
product characteristics
b.
The stages of the process are tailored to
product development
c.
Costs can be easily known in detail
d.
All details and processes can be planned
properly
-
Disadvantages:
a.
The process model cannot proceed if there
is a large change in demand
b.
Too rigid and must follow applicable
procedures
c. Cannot
be applied in the development of other software
-
Definition:
Agile Methods are a group of software
development methods that are based on iterative and incremental development.
The four major characteristics that are fundamental to all agile methodologies
are: adaptive planning, iterative & evolutionary development, rapid and
flexible response to change and promote communication [13]. The values of agile
methods are Individuals and interactions over processes and tools; working soft
over comprehensive documentation; customer collaboration over contract
negotiation; and responing to change over following a plan [14].
-
Advantages:
a.
Software development is made faster
b.
Increase client satisfaction
c.
Reducing the risk of software
implementation failure from a non-technical prespective
d.
If during the system development a failure
occurs, the loss in terms of material is relatively small
-
Disadvantages:
a. Need a team that has a high responsibility
b.
If the team cannot communicate properly
there will be setbacks
c. Uncertain
schedule
-
Definition:
Scrum Methodology is one of the
software engineering method that uses the principle of agile approach with the
strength of team collaboration, incremental, and iterative processes in the
process of forming the final results. In Scrum, projects progress via a series of
iterations called sprints. Each sprint is typically 2-4 weeks long. A typical
scrum team has between five and nine people, but Scrum projects can easily
scale into the hundreds [15]. The Scrum methodology moves a project forward by
improving communication between team members and breaking the work into a
series of “sprints” [16].
-
Advantages:
a.
Can save time and money in the development
process
b.
Easy to send quality products on time
c.
The team is small so that it makes
communication easier, reduces costs and empowers one another.
d.
Documentation and testing continues after
the software is built
-
Disadvantages:
a.
The developer must always be ready to
accept requests and changes from clients
b.
if team members are not committed, the
project will not be completed
c. If
the task is not well defined, estimate the project cost and time will not be
accurate
References:
1. A. Ghahrai, “Incremental Model”, Testing
Exellence, [Online]. Tersedia: https://www.testingexcellence.com/incremental-model
[Accessed 12 September 2019].
2. N. Kumar, A. S. Zadgaonkar, and
A. Shukla, “Evolving a New Software Development Life Cycle Model SDLC-2013 with
Client Satisfaction”, International Journal of Soft Computing and
Engineering, vol.3 issues 1, pp. 217, March 2013.
3. N. Kumar, A. S. Zadgaonkar, and A. Shukla, “Evolving
a New Software Development Life Cycle Model SDLC-2013 with Client
Satisfaction”, International Journal of Soft Computing and Engineering,
vol.3 issues 1, pp. 218, March 2013.
4 A. Alshamrani and A. Bahattab, “A Comparison Between
Three SDLC Models Waterfall Model, Spiral Model, and Incremental/Iterative
Model” IJCSI International Journal of Computer Science Issues, vol. 12,
no. 1, pp. 109, January 2015
5 M. Poppendieck, “Concurrent Development”, Lean
Essays, [Online]. Tersedia: http://www.leanessays.com/2003/08/concurrent-development.html
[Accessed 13 September 2019].
6 M. Poppendieck, “Concurrent Development”, Lean
Essays, [Online]. Tersedia: http://www.leanessays.com/2003/08/concurrent-development.html
[Accessed 13 September 2019].
7 Admin, “Evolutionary Process Models in Software
Engineering”, TutorialRide.com, [Online]. Tersedia: https://www.tutorialride.com/software-engineering/evolutionary-process-models-in-software-engineering.htm
[Accessed 13 September 2019].
8. R. Mall,
“Software Life Cycle Models”, Fundamentals of Software Engineering,
Fifth Edition. Delhi: PHI Learning Private Limited, 2018, 53.
9. R. Tilloo, “RAD Model in Software Engineering”, Techno
Trice, [Online]. Tersedia: https://www.technotrice.com/incremental-model-in-software-engineering
[Accessed 13 September 2019].
10. S. Jain, “Software Engineering | Spiral Model”, GeeksforGeeks,
[Online]. Tersedia: https://www.geeksforgeeks.org/software-engineering-spiral-model
[Accessed 14 September 2019].
11. N. M. A. Munassar and A. Govardhan, “A Comparison
Between Five Models of Software Engineering”, IJCSI International Journal of
Computer Science Issues, vol. 7, issues 5, no. 98, September 2010.
12. N. M. A. Munassar and A. Govardhan, “A Comparison
Between Five Models of Software Engineering”, IJCSI International Journal of
Computer Science Issues, vol. 7, issues 5, no. 98, September 2010.
13. G. Kumar and P. K. Bhatia, “Impact of Agile
Methodology on Software Development Process”, International Journal of
Computer Technology and Electronics Engineering, vol. 2, Issue 4, pp. 46, August
2012.
14. J. M. Fernandes and M. Almeida, “Classification and
Comparison of Agile Methods” Seventh International Conference on the Quality
of Information and Communications Technology, pp. 391, 2010.
15. G. Kumar and P. K. Bhatia, “Impact of Agile
Methodology on Software Development Process”, International Journal of
Computer Technology and Electronics Engineering, vol. 2, Issue 4, pp. 47,
August 2012.
16. J. A. Livermore, “Factors that Significantly Impact
the Implementation of an Agile Software Development Methodology”, Journal of
Software, vol. 3, no. 4, pp. 32 APRIL 2008.
Komentar
Posting Komentar