Software development life cycle

Software development is a part of the systems development life cycle. Within the development phase, there are many stages and processes. The activity or cycle starts from a specification development based on which the overall system is designed and implemented.

The software programs are written based on the system design, the system is documented and the operating procedures are written too.

During the entire process of the software development life cycle, other activities are involved to ensure the functionality of the developed application. Verification and validation are the two important activities during development and implementation.

Verification is used to establish the adherence to software specifications, whereas validation is used to establish the fitness of the system as outlined in the design and requirements.

Software development models

Life cycle models are used for software development purposes. The objectives of such models are to develop quality software applications or products that meet specifications, customer requirements, and financial viability in terms of budgets and timelines.

Simplistic model

A simplistic model is the one that takes an approach of sequential stages in software development. In this model, the concept of rework does not arise, and it assumes that each and every stage of development is finalized before moving to the next stage. One of the popular models in simplistic software development is the waterfall model.

Waterfall model

The waterfall model is a type of simplistic model where the development flows like water falling from top to bottom through a series of steps. In this model, activities such as requirements analysis, design, implementation, testing, integration, and maintenance are completed in a sequence. This model's top-down only approach will have difficulty when a rework has to be done on the system design or the software application:

Waterfall model

Waterfall model

Complex models

Software development models are considered to be complex when the scope or requirements are uncertain during the initiation of the project. A complex model expects that the scope, requirements, or specifications may change during the development phase. Hence, such models have to be accommodating to include the changes, and development processes should have robust change management processes and strong integration methods. One of the popular methods that is considered to be following a complex model is an agile framework.

When a software development life cycle model uses iterative methods and processes, then such models are called iterative models. In such models, reworking is allowed to improve the systems. Some of the examples of this model include an incremental model and a spiral model.

Incremental model

This model allows the segregation of software development processes into multiple builds or modules. An incremental model can, in a way, be visualized as similar to a multiple waterfall model with each build following its own set of processes. Some of the advantages of such models include flexibility, smaller iterations, and parallel development. Disadvantages include a higher cost than simplistic models, and complete scope and design should be ready before the development:

Incremental model

The incremental model

Spiral model

The spiral model is a type of iterative model. This model specifies design as well as prototyping stages. This model proposes top-down as well as bottom-up approaches so that rework is possible:

Spiral model

Agile framework

This framework emphasizes the concept of iterations throughout the software development life cycle. An Agile method can use incremental models. However, the development model is considered to be Agile when it adheres to the Agile manifesto that was published in the year 2001 by a consortium of software developers.

The agile manifesto envisages individuals such as software programmers and their interactions, working software (for example beta versions) instead of only documentation, customer or stakeholder involvement throughout the development, and continuous development that includes quick response to changes.

One of the popular agile programming methods is called Extreme Programming (XP). There are two core objectives of such programming. One is producing high-quality software, and the other is productivity enhancements. Extreme programming generally has multiple short development cycles. Agile development methods are considered to be more suitable from the perspective of security.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.191.181.36