SDLC Phases Software Development Life Cycle
SDLC ( Software Development Life Cycle) :
Software Development Life Cycle is structured step-by-step approach for developing the information systems.
SDLC consists of ;
There are various software development approaches defined and designed which are used/employed during development process of software, these approaches are also referred as “Software Development Process Models”. Each process model follows a particular life cycle in order to ensure success in process of software development.
Phases of SDLC :
- Scope Identification/ Requirement Gathering
- Testing / debugging
- Deployment / Installation
- User training and User acceptance( UAT)
Requirement Gathering/ Scope Identification-
- BA/ Project Manager
- Scope document/ BRD(Business Requirement Document)
- Project Manager
- Project Plan – Scheduling & Budgeting
- Functional Requirement Document
- Architect / Designers
- Design Documents
- Source Code
Testing / debugging
- QA – Team
- Test Plan
Deployment / Installation
- Installation Manual
User training and user acceptance
- User Manual
- Linear-Sequential life cycle Model
- Flows steadily downwards
- Should move to next phase only when one phase is completed
Advantages of Waterfall Model:
- This model is simple and easy to understand and use.
- It is easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process.
- In this model phases are processed and completed one at a time. Phases do not overlap.
- Waterfall model works well for smaller projects where requirements are very well understood.
Disadvantages of waterfall model:
- Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage.
- No working software is produced until late during the life cycle.
- High amounts of risk and uncertainty.
- Not a good model for complex and object-oriented projects.
- Poor model for long and ongoing projects.
- Not suitable for the projects where requirements are at a moderate to high risk of changing.
- Verification and Validation Model
- Sequential Model
- In this type each phase undergoes testing i.e for each phase a test design is created and testing is carried on the corresponding designs and undergoes coding phase if defect is determined
- Since it does not follow a linear path and bends after coding phase this model is termed as V-model
Advantages of V-model:
- Simple and easy to use.
- Testing activities like planning, test designing happens well before coding. This saves a lot of time. Hence higher chance of success over the waterfall model.
- Proactive defect tracking – that is defects are found at early stage.
- Avoids the downward flow of the defects.
- Works well for small projects where requirements are easily understood.
Disadvantages of V-model:
- Very rigid and least flexible.
- Software is developed during the implementation phase, so no early prototypes of the software are produced.
- If any changes happen in midway, then the test documents along with requirement documents has to be updated.
Spiral Model has four Phases;
- Risk analysis
- Engineering and Execution
- It emphasis more on Risk analysis
- These types of model is used in Risk analyzing Projects like in Space Crafts
Advantages of Spiral model:
- High amount of risk analysis hence, avoidance of Risk is enhanced
- Good for large and mission-critical projects
- Strong approval and documentation control
- Additional Functionality can be added at a later date
- Software is produced early in the software life cycle
Disadvantages of Spiral model:
- Can be a costly model to use.
- Risk analysis requires highly specific expertise.
- Project’s success is highly dependent on the risk analysis phase.
- Doesn’t work well for smaller projects.
- It is also called as Incremental Model
- The whole application is divided into modules.
- Each module is developed and tested, each module is implemented separately on real time and gain feed back from customers and once attaining customer satisfaction we move on next module development.
- It has different approaches extreme programming, SCRUM, etc
Advantages of Agile model:
- 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).
- Face-to-face conversation is the best form of communication.
- Close, daily cooperation between business people and developers.
- Continuous attention to technical excellence and good design.
- Regular adaptation to changing circumstances.
- Even late changes in requirements are welcomed
Disadvantages of Agile model:
- In case of some software deliverables, especially the large ones, it is difficult to assess the effort required at the beginning of the software development life cycle.
- There is lack of emphasis on necessary designing and documentation.
- The project can easily get taken off track if the customer representative is not clear what final outcome that they want.
- Only senior programmers are capable of taking the kind of decisions required during the development process. Hence it has no place for newbie programmers, unless combined with experienced resources.