Software Development Models

SDLC is a framework that describes the activities performed at each stage of a Software development project.
There are different models of SDLC, for-example:
  • Waterfall Model
  • V-Model etc, one which is most used in Agile Model.
Unlike the Waterfall Model in Agile Model very limited planning is required to get started with the project. Agile assumes that the end users' needs are ever changing in a dynamic business and IT world. Changed can be discussed and features can be newly effected or removed based on feedback. This effectively gives the customer the finished system they want or need.
  • A Waterfall model is easy to follow.
  • It can be implemented for any size project.
  • Every stage has to be done separately at the right time, so you can't go to other without completing the first stage.
  • Documentation is produced at every stage of a Waterfall model allowing people to understand what has been done.
  • Testing is done at every stage. 
Although, whenever there is change in requirements, this model may not work. It is impossible to make one stage of the project's lifecycle perfect. Estimation of time and cost for each stage of the development process can't be handled during the initial stage. Constant Testing of the design is much needed. An Iterative lifecycle model does not attempt to start with a full specification of requirements. There are four Phases of it:
  • A Requirement phase, in which the requirements for the software are gathered and analyzed.
  • A Design phase, in which a software solution to meet the requirements is designed. This may be a new design, or, an extension of an earlier design.
  • An Implementation and Test phase, when the software is coded, integrated and tested.
  • A Review phase, in which the software is evaluated, the current requirements are reviewed, and the changed and additions to requirements proposed.
Each phase of an iteration is rigid with no overlaps. Costly system architecture or design issues may arise because not all requirements are gathered up front for the entire lifecycle. V-Model evolved from Waterfall Model.
  • Each phase must be completed before the next phase begins.
  • Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V Shape.
  • Testing is emphasized in this model more than in the Waterfall Model.
  • It is a structured approach to testing.
  • Brings high quality into the development of our products. 
The V-shaped model should be used for small to medium sized projects where the requirements are clearly defined and fixed. The V-shaped model should be chosen when resources are available. It is very rigid and least flexible. Software is developed during the implementation phase, so no early prototypes of the software are produced. If any changed happen in midway, then the test documents along with requirement documents has to be updated.
  • Speed up or bypass one or more lifecycle phases.
  • Usually less formal and reduced scope.
  • Used for time-critical applications.
  • Used in organizations that employ disciplined methods.
When new changed are needed to be implemented, Agile Model gives the freedom to change which is very important. New changes can be implemented at very little cost because of the frequency of new increments that are produced. To implement a new feature the developers need to lose only the work of a few days, or even only hours, to rollback and implement it.
  • Product Backlog is a prioritized features list, containing descriptions of functionality of the product. A good product backlog is at heart of any well functioning Agile Team. It doesn't ensure good software, but the lack of it results in incomplete software.It consists of three things:
    • User Stories.
    • Estimations.
    • Priority.
  •  Sprint Backlog is the duration of time during which specific work has to be completed and made ready for a review is a Sprint. A sprint begins with the sprint planning meeting, in which Product Owner and the team decides which stories should be moved from Product backlog to Sprint Backlog. A sprint ends with the sprint ending meeting, in which the team presents its work to the Product Owner and he determines if the team's work has met his acceptance criteria.
  • Planning is the phase in which project vision, mission and expectations from the project is established.
  • Staging is the phase where the product backlog is created and assess the various functions that is to be performed in the project. It also builds communication and coordination mechanism.
  • Development phase consists of multiple sprints of product functionality. A Sprint consists of Planning, meeting and a Review.
  • Release phase consists of product owner assesses whether functionality of the development phase is available and if it is ready for the release. This phase consists of two activities:
    • The first activity adds requirements to the product backlog, and,
    • the second activity is one or more sprints of work that will make the product release.
Customer Satisfaction by rapid, continuous delivery of useful software. People and interactions are emphasized rather than process and tools. Customers, developers, and testers constantly interact with each other. Working software is delivered frequently. (Weeks rather than months)

Comments

Popular posts from this blog

Managing Vm's with Virish

How Yum Works?

Steps to install Ubuntu