Process Models: Perspective Process Models Lecture by Engr. Sidra SDLC Software Development Life Cycle (SDLC) is a series of steps that must be followed by a development team to develop and maintain software Why the software life cycle is important: It provides visibility for the engaged parties It allows to control the project Predictable deliveries throughout an entire development process Eliminating risks like going over budget or deadline breach The process goes on until all the requirements are met Lecture by Engr. Sidra SDLC Phases Lecture by Engr. Sidra Perspective Process Model Perspective process models define a prescribed set of process elements and a predictable process work flow. They can be adapted and extended to create more specific processes. The most used, popular and important SDLC models are given below: Waterfall model V model Incremental model RAD model Iterative model Spiral model Prototype model Lecture by Engr. Sidra Waterfall Model • The waterfall model is also called as 'Linear sequential model' or 'Classic life cycle model'. • In this model, each phase is fully completed before the beginning of the next phase. • Each phase depends on the deliverables of the previous one and corresponds to a specialisation of tasks. • Feedback is taken after each phase to ensure that the project is on the right path. • Testing part starts only development is complete. • It is used for the small projects. Lecture by Engr. Sidra after the Waterfall Model - Application • Requirements are very well documented, clear and fixed. • Product definition is stable. • Technology is understood and is not dynamic. • Ample resources with required available to support the product. • The project is short. Lecture by Engr. Sidra expertise are Advantages of waterfall model Simple and easy to understand and use All the requirements are known at the beginning of the project, hence it is easy to manage. Easy to manage due to the rigidity of the model. Each phase has specific deliverables and a review process. Phases are processed and completed one at a time. Works well for smaller projects where requirements are very well understood. Lecture by Engr. Sidra Advantages of waterfall model Clearly defined stages. Well understood milestones. Easy to arrange tasks. Process and results are well documented. This model is preferred for those projects where the quality is more important as compared to the cost of the project. Lecture by Engr. Sidra Disadvantages of Waterfall model This model is not good for complex and object oriented projects. Poor model for long and ongoing projects. No working software is produced until late during the life cycle. High amounts of risk and uncertainty. Not suitable for the projects where requirements are at a moderate to high risk of changing. So, risk and uncertainty is high with this process model. Lecture by Engr. Sidra Disadvantages of Waterfall model It is difficult to measure progress within stages. Cannot accommodate changing requirements. Adjusting scope during the life cycle can end a project. Integration is done as a "big-bang. at the very end, which doesn't allow identifying any technological or business bottleneck or challenges early. The problems with this model are uncovered, until the software testing. Lecture by Engr. Sidra V-Model The V-model represents a development process that may be considered an extension of the waterfall model. It is also known as Verification and Validation model. The V-Model demonstrates the relationships between each phase of the development life cycle and its associated phase of testing. Under the V-Model, the corresponding testing phase of the development phase is planned in parallel. So, there are Verification phases on one side of the ‘V’ and Validation phases on the other side. The Coding Phase joins the two sides of the VModel This is a highly-disciplined model and the next phase starts only after completion of the previous phase Lecture by Engr. Sidra V-Model - Applications Requirements are well defined, clearly documented and fixed. Product definition is stable. Technology is not dynamic and is well understood by the project team. There are no ambiguous or undefined requirements. The project is short. Lecture by Engr. Sidra Advantages of V- Model This is a highly-disciplined model and Phases are completed one at a time. Works well for smaller projects where requirements are very well understood. Simple and easy to understand and use. Easy to manage due to the rigidity of the model. Each phase has specific deliverables and a review process. 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. Lecture by Engr. Sidra Disadvantages of V-Model High 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. Once an application is in the testing stage, it is difficult to go back and change a functionality. 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. Lecture by Engr. Sidra Incremental Model The incremental model combines the elements of waterfall model and they are applied in an iterative fashion. In incremental model the whole requirement is divided into various builds. Multiple development cycles take place here, making the life cycle a “multi-waterfall” cycle. Cycles are divided up into smaller, more easily managed modules. The first increment in this model is generally a core product. Each increment builds the product and submits it to the customer for any suggested modifications. The next increment implements on the customer's suggestions and add additional requirements in the previous increment. This process is repeated until the product is finished. For example, the word-processing software is developed using the incremental model. Lecture by Engr. Sidra Incremental Model In the diagram when we work incrementally we are adding piece by piece but expect that each piece is fully finished. Thus keep on adding the pieces until it’s complete. This means that the customer can evaluate the system at early stage in the development to see if it delivers what’s required. If not, then only the current increment has to be changed and, possibly, new functionality defined for later increments. By developing the software incrementally, it is cheaper and easier to make changes in the software as it is being developed. Lecture by Engr. Sidra Incremental Model - Example As in the image below a person has thought of the application. Then he started building it and in the first iteration the first module of the application or product is totally ready and can be demoed to the customers. Likewise in the second iteration the other module is ready and integrated with the first module. Similarly, in the third iteration the whole product is ready and integrated. Hence, the product got ready step by step. Lecture by Engr. Sidra Incremental V/S Waterfall Model Compared to the waterfall model, incremental development has three important benefits: The cost of accommodating changing customer requirements is reduced. It’s easier to get customer feedback on the work done during development More rapid delivery of useful software is possible even if all the functionality hasn’t been included. Lecture by Engr. Sidra Incremental Model - Applications This model can be used when the requirements of the complete system are clearly defined and understood. Major requirements must be defined; however, some details can evolve with time. There is a need to get a product to the market early. A new technology is being used Resources with needed skill set are not available There are some high risk features and goals. Lecture by Engr. Sidra Advantages of Incremental model It is easier to test and debug during the smaller iteration. The customers can respond to its functionalities after every increment. Generates working software quickly and early during the software life cycle. This model is more flexible – less costly to change scope and requirements. Lowers initial delivery cost. Easier to manage risk because risky pieces are identified and handled during iteration. Lecture by Engr. Sidra Disadvantages of Incremental model Needs good planning and design. Needs a clear and complete definition of the whole system before it can be broken down and built incrementally. The cost of the final product may cross the cost estimated initially. The demands of customer for the additional functionalities after every increment causes problem during the system architecture. Lecture by Engr. Sidra