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


3.     A. Specialized Process Model
Specialized Process Model
Specialized Process Model

-          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

      B. Agile Methods
Agile Method
Agile Method

-          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

C. Scrum Methodology
Scrum Methodology
Scrum Methodology

-          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

Postingan populer dari blog ini

Laporan Buku "Algoritma Dan Pemograman Dalam Bahasa Pascal, C, dan C++" Karya Rinaldi Munir, Leony Lidya

Perbedaan Antara HDD dan SSD