SDLC:
The following figure is a graphical representation of the various stages of a typical SDLC.
*Requirement analysis is the most important and fundamental stage in SDLC.
*Business requirements are gathered in this phase. This phase is the main focus of the project managers and stake holders.
Defining Requirements:
*Once the requirement analysis is done the next step is to clearly define and document the product requirements and get them approved from the customer or the market analysts.
*This process done through .SRS,Software Requirement Specification document which consists of all the product requirements to be designed and developed during the project life cycle.
Designing the product architecture:
*In this phase the system and software design is prepared from the requirement specifications which were studied in the first phase.
*System Design helps in specifying hardware and system requirements and also helps in defining overall system architecture.
Building or Developing the Product:
*In this stage of SDLC the development starts to built the product.
*During this stage the programming code will be generated by design document specification.
Testing the Product:
*After the code is developed it is tested against the requirements to make sure that the product is actually solving the needs addressed and gathered during the requirements phase.
*During this phase all types of functional testing like unit testing, integration testing, system testing, acceptance testing are done as well as non-functional testing are also done.
Deployment in the Market and Maintenance:
*After successful testing the product is delivered / deployed to the customer for their use.
*When the product is given to the customers they will first do the beta testing. If any changes are required or if any bugs are caught, then they will report it to the engineering team.
SDLC Models:
There are various software development life cycle models defined and designed which are followed during software development process. These models are also referred as "Software Development Process Models".
Following are the most important and popular SDLC models followed in the industry:
- Waterfall Model
- Iterative Model
- Spiral Model
- V-Model
- Rad model
The Waterfall Model was first Process Model to be introduced. It is also referred to as a linear-sequential life cycle model. It is very simple to understand and use. In a waterfall model, each phase must be completed fully before the next phase can begin. This type of model is basically used for the for the project which is small and there are no uncertain requirements.
System Design:System Design helps in specifying hardware and system requirements and also helps in defining overall system architecture.
Implementation:The system is first developed in small programs called units, which are integrated in the next phase. Each unit is developed and tested for its functionality which is referred to as Unit Testing.
Integration and Testing:All the units developed in the implementation phase are integrated into a system after testing of each unit.
Deployment of system:The functional and non functional testing is done, the product is deployed in the customer environment or released into the market.
Maintenance:Maintenance is used to done the issues from the client side and deliver these changes in the customer environment.
Advantage:
- 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.
- 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.
An iterative life cycle model does not attempt to start with a full specification of requirements. Instead, development begins by specifying and implementing just part of the software, which can then be reviewed in order to identify further requirements. This process is then repeated, producing a new version of the software for each cycle of the model.
Advantage:
- Parallel development can be planned.
- Progress can be measured.
- Less costly to change the scope/requirements.
- Testing and debugging during smaller iteration is easy.
- 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.
Identification:This phase starts with gathering the business requirements in the baseline spiral.It includes understanding the system requirements by continuous communication between the customer and the system analyst.
Design:Design phase starts with the conceptual design in the baseline spiral and involves architectural design, logical design of modules, physical product design and final design in the subsequent spirals.
Construct or Build:This phase refers to production of the actual software product at every spiral.In the baseline spiral when the product is just thought of and the design is being developed a POC (Proof of Concept) is developed in this phase to get customer feedback.
Evaluation and Risk Analysis:Analysis includes identifying, estimating, and monitoring technical feasibility and management risks, such as schedule slippage and cost overrun.
Advantage:
- High amount of risk analysis hence, avoidance of Risk is enhanced.
- Good for large and mission-critical projects.
- Strong approval and documentation control.
- Risk analysis requires highly specific expertise.
- Project’s success is highly dependent on the risk analysis phase.
- Doesn’t work well for smaller projects.
V- model means Verification and Validation model. Just like the waterfall model, the V-Shaped life cycle is a sequential path of execution of processes. Each phase must be completed before the next phase begins.
System Design:In system design there is two types HLD and LLD
HLDHigh level design phase focuses on system architecture and design. It provide overview of solution, platform, system, product and service/process.
LLDLow level design phase is where the actual software components are designed. It defines the actual logic for each and every component of the system.
Architectural Design In this phase more than one technical approach is proposed and based on the technical and financial feasibility the final decision is taken. System design is broken down further into modules taking up different functionality.This is also referred to as High Level Design (HLD).
Module Design:In this phase the detailed internal design for all the system modules is specified, referred to as Low Level Design (LLD). It is important that the design is compatible with the other modules in the system architecture and the other external systems.
Coding Phase:This is at the bottom of the V-Shape model. Module design is converted into code by developers.
Advantage:
- Simple and easy to use.
- Avoids the downward flow of the defects.
- Works well for small projects where requirements are easily understood.
- 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.
When to use RAD model:
- RAD should be used when there is a need to create a system that can be modularized in 2-3 months of time.
- It should be used if there’s high availability of designers for modeling and the budget is high enough to afford their cost along with the cost of automated code generating tools.
Data modeling:Information gathered from business modeling is used to define data objects that are needed for the business.
Process modeling:Data objects defined in data modeling are converted to achieve the business information flow to achieve some specific business objective. Description are identified and created for CRUD of data objects.
Application generation:Automated tools are used to convert process models into code and the actual system.
Testing and turnover:Test new components and all the interfaces.
Advantage:
- Reduced development time.
- Increases reusability of components
- Quick initial reviews occur
- Only system that can be modularized can be built using RAD
- Requires highly skilled developers/designers.
- High dependency on modeling skills.
More Details Visit My Website: Website Development Bangalore|Website Design Company Bangalore|Web Designing Companies Bangalore|Web Design Company Bangalore|Website Design Agency Bangalore.