System development cycle is mostly used in software engineering, system engineering and information systems. The term is used to describe the process of developing an information system through creating, planning and deploying of the system. This concept applies to a number or range of system software and hardware configurations, since a system can be made of both software and hardware or a single entity of each. The main aim of SDLC is to develop systems of high quality that meet the expectations of the client, based on their requirements. The system moves through clearly defined phases or steps, within the scheduled periods and cost estimates. To manage the complexity of computer systems there are a number of methodologies or SDLC that have been developed. These methodologies include spiral, agile software, and waterfall, stabilize and synchronize, iterative rapid prototyping and incremental.
The SDLC describes a system of building information systems in a deliberate, methodical and structured way. The system reiterates every stage of the product life. This paper shall give succinct and articulate insight on SDLC models with regard to their merits and demerits as well as their trends in the life cycle of modeling.
The waterfall model originates in the construction and manufacturing industries. The waterfall model follows a sequential form from one phase to another. One of the benefits that accrue in this form of model is that the model is easy to implement. In development of this model minimum resources are required.
Secondly, output of data is generated at the end of every stage; therefore, it is highly visible. This makes the project manager feel considerable progress. It is also prudent to note that project management at both the client’s level and the internal level is easy. This is facilitated by the visible outputs that are generated at the end of every stage. Deadlines are easily set for evaluation and completion of each stage or phase and this can be done from time to time. This model is significantly better as opposed to the haphazard way or approach to develop software. It provides a system to which methods of coding, design, analysis, maintenance and testing can be placed. It also preferred in works where quality is paramount as compared to cost and schedule.
On the other hand some of the demerits that are attributed to this form model are the fact that real projects do not necessarily follow sequential iterations and flow since they are handled indirectly. This can result to confusion when the project proceeds. Another disadvantage is that it is not easy to get the customer requirements in an explicit manner. The resultant effect of this is that specifications cannot be freezed.
The agile process model is also an incremental model type which is developed in rapid cycles. This leads to incremental release where each release builds on the previous functionality. The releases are thoroughly tested to make sure that there is software quality. This type of model is used for critical applications. This model has the following advantages; there is continuous development of useful software that meets the client’s or customer’s satisfaction, there is emphasis of people and interactions as opposed to tools and processes.
In this model the working software is frequently delivered. It also enhances close and daily cooperation of people and developers. However, some of its disadvantages are that emphasis on designing and documentation are not there and that the decision making process is only made by the senior programmers. Therefore, it does not accord opportunity to new programmers.
In incremental model there are multiple development referred to as multiple waterfall cycles. These cycles are divided into smaller modules which are easily managed. There is ease of software generation during its life cycle and secondly the initial costs of delivery are lower as compared to other models. The main disadvantages of this form of model are that it requires good designing and planning for its development and the cost of generation of the model is higher than that required in the waterfall model.
Software prototyping which is also another model of SDLC refers to the creation of software prototypes. In this model the designer gets valuable feedback from the clients in the early stages of the system or project. This enables them to compare whether the software application meets the software specification. Another advantage of this model is that there is reduced cost of development and time and this improves the quality of specifications and requirements. Despite the merits of this model, the model is prone to insufficient analysis of the project thus leading to overlook of better solutions. The developer might also misunderstand the objectives of the user.
Lastly, the spiral model of SDLC has higher risk avoidance since there is risk analysis. The model also has good documentation control and approval. On the other hand the spiral model can be costly since the risk analysis requires expertise to carry out. This model also does not work well for smaller projects.
References
Chun. (2010). Core Python Programming. London : Oxford University Press.
Research & Education Associates. (2011). GRE Computer Science Test. London: Oxford University Press.
Teukolsky, R. (2012). Barron's AP Computer Science. Cambridge: Barron's Educational Series publishers.
Zelle, J. M. (2010). Python Programming: An Introduction to Computer Science. Cambridge: Franklin, Beedle & Associates publishers.