Software development life cycle (SDLC) is the step by step unambiguous processes and tasks performed in developing software. It can also be defined as a representation of the major components of software development works and their interrelationships in a framework that can be easily understood and communicated. It consists of a detailed plan describing how to develop, maintain, replace, edit, debug and alter specified software (Beydeda, Book & Gruhn, 2005)
1.2. SDLC MODELS
There are diverse types of software development life cycle models which are defined, design and inculcate during software development processes. Each process model is unique in styles and design; they are also up in place to ensure the successful development of software’s (Crnkovic & Larsson, 2002). Among many, the following are the major and popular SDLC models be used in the industries:
- WATERFALL MODEL
- ITERATIVE MODEL
- SPIRAL MODEL
- V- MODEL
- AGILE MODEL.
1.2.1. WATERFALL MODEL
The waterfall model is the first of its kind. It is also known as linear-sequential life cycle model. Owing to its simplicity, it is one of the most used life cycle models. Being referred to as linear-sequential life cycle model; it executes phase of program line by line, the next phase in the development process can be executed only if the preceding one is successfully executed (Davis, Bersoff & Comer, 1988).
Strength of waterfall model
Waterfall model has many advantages over every other cycle model, which includes:
- It is simple and easy to use and understand
- It process and result are well documented
- All its stages are clearly defined
- Phases are linearly sequential (phases have completed one at a time).
Weakness of waterfall
There are also some weakness in waterfall life cycle which are:
- There is a high amount of risk and uncertainty in using it
- The process within stages is difficult to measure and determine.
- It is not good enough for complex and object-oriented projects.
1.2.2. ITERATIVE MODEL
Iterative model, on the other hand, enhance the evolving of the software version until the complete system and full version of the software is implemented and ready to be deployed (Westfall, 2008).
Strength of iterative model
Iterative model is very efficient in:
- Producing results earlier and periodically
- Parallel development of plans
- Easy Testing and debugging during smaller iteration
Weaknesses of iterative model
- It requires highly skilled resources for risk analysis.
- It’s the phase processes; some system architecture issue may arise because all requirements are not gathered from the beginning of each phase execution.
1.2.3. SPIRAL MODEL
The spiral model is widely used in the software industry due to its maturity and minimal risk that involve the customer as well as development firms and developers. It allows elements of the product been developed to be added when they become available or known (Koch, 2005).
Strength of spiral model
- In spiral model, changing requirements can be accommodated.
- Spiral allows for excessive use of prototypes
- Spiral model help in a modular type of development; thereby helps in the successful management of risk.
Weakness of spiral model
- Spiral model is very complex to manage
- The project end may not be known
- Spiral model processes are a complex and large number of intermediate stages is required for excessive documentation.
1.2.4. V- MODEL
Has the name implies, V-model involves the execution of the phase process in a sequential manner in a V-shape. V-model is an extension of the waterfall model and is based on an association testing phase for each corresponding development stage.
Strength of V-model
- The V – model is very easy to understand and apply and thereby easy to manage
- It works effectively for smaller projects where project requirement is very much understood and unambiguous.
- It also involves a step-by-step execution of phases.
Weakness of V-model
- Like any other model, v-model is also highly risky and very uncertain.
- Since it is simple and easy to use, it cannot be used for complex projects and object-oriented projects.
- Also, it is not suitable for projects where an element needs to be modified.
1.2.5. AGILE MODEL
Agile is a type of model, which is focused on adapting, variable and universal, customer satisfactory working software product. In agile, tasks are divided into time boxes to deliver specific features.
Strength of agile model
- Agile model is a very realistic approach to software development
- It is suitable for both fixed and variable requirements
- Agile model is straightforward to use and manage
- It promotes teamwork and cross training for developers.
Weakness of agile model
- Agile model is not suitable for complex development owing to its simplicity
- Agile depends heavily on customer interaction, so the mistake of the customer can affect the effective working of the model.
1.3. CURRENT TREND IN LIFE CYCLE MODELLING
Agile is the most popular and trending model being used in the industry. Agile introduces a concept of fast and reliable delivery to customers using prototype approach. Agile is more in the industry today because of it so many unique features, which allow customers to interact with the backbone of agile methodology and open communication with minimum documentation
Beydeda, S., Book, M., & Gruhn, V. (2005). Model-driven software development (1st Ed.). Berlin: Springer.
Crnkovic, I., & Larsson, M. (2002). Building reliable component-based software systems (1st Ed.). Boston: Artech House.
Davis, A., Bersoff, E., & Comer, E. (1988). A strategy for comparing alternative software development life cycle models. Software Engineering, IEEE Transactions On, 14 (10), 1453–1461.
Giunchiglia, F., Mylopoulos, J., & Perini, A. (2003). The Tropos software development methodology: processes, models and diagrams. Springer, 162–173.
Koch, S. (2005). Free/open source software development (1st Ed.). Hershey, PA: Idea Group Pub.
Westfall, L. (2008). The Certified Software Quality Engineer Handbook. United States of America: Quality Press. Pp-136