Software Engineering: Development Life Cycle Models PDF
Document Details
Uploaded by IngeniousTan
National University
Tags
Summary
This document provides an overview of software development life cycle (SDLC) models, including Waterfall, V-Model, Prototype, and RAD. It details the process stages, advantages, and disadvantages of each model. The document also discusses security integration into the SDLC and the importance of planning.
Full Transcript
SOFTWARE ENGINEERING CHAPTER 1 “Software Development Life cyle Models” 1 Software Development Life Cycle Software Engineering Software Development Life Cycle Software development li...
SOFTWARE ENGINEERING CHAPTER 1 “Software Development Life cyle Models” 1 Software Development Life Cycle Software Engineering Software Development Life Cycle Software development life cycle (SDLC) is a structured process that is used to design, develop, test and deliver good-quality software. The goal of the SDLC life cycle process is to deliver high-quality, maintainable software that meets the user’s requirements. SDLC consists of a defined plan (stages) that describes how to design, develop, and maintain software Software Development Life Cycle Software Engineering Software Development Life Cycle Software Development Life Cycle Software Engineering SDLC – Planning and Analysis At planning stage, you collect business requirements from your client or stakeholders. Evaluate the feasibility of creating the software, in terms of cost and benefits Once found the software project is in line with business requirements and feasible to develop, you move on to the next phase (detail definition of the requirement). Software Development Life Cycle Software Engineering SDLC – Define Requirements This is critical phase, converts the collected requirements into clear requirements for the development team. Any ambiguities (doubts) are resolved in this phase only. This phase provide understanding or knowledge of the software Once the requirement is clearly understood, software requirement specification (SRS) document is developed for customer and also to be used in the system design Software Development Life Cycle Software Engineering SDLC – System Design In this phase, the requirements gathered in the SRS documents are used as an input in the design of software. You can draw flowchart on how the software responds to user actions. In some cases, the design will develop a prototype to visualize what the product will look like Software Development Life Cycle Software Engineering SDLC – Development The development team members divide the project into modules and turn the software requirement into code that makes the product. This phase requires quite a lot of time and specialized development tools like Computer Aided Design (CAD) Product Lifecycle Management (PLM) e.g Oracle Cloud PLM Computer Aided Engineering (CAE) Product Data management (PDM) Simulation and Prototyping Software Choice of which tool to use depends on your experience and features available Software Development Life Cycle Software Engineering SDLC – Test, Deploy, Maintain Testing: In this phase, the quality assurance team perform validation to make sure it is functioning properly as per the specification (SRS) Deployment: The final software is delivered to user for UAT (User Acceptance Test). If the customer finds the software is as expected, then the software is approved to go live. Maintenance: Maintenance is only a stage for further improvement of the software. Software Development Life Cycle Software Engineering Software Engineering Process Plan-driven process and agile processes Plan-driven processes: All of the process activities are planned in advance and progress is measured against this plan. Agile-driven processes: Planning is incremental and it is easier to change the process to reflect changing customer requirements. There are no right or wrong software processes. Software Development Life Cycle Software Engineering Software Development Process Models 1. The waterfall model 2. V-shaped Model 3. Spiral 4. Incremental development: 5. Prototype 6. Rapid Application Development 7. Reuse-oriented software engineering 8. Integrating security to SDLC – New approach Software Development Life Cycle Software Engineering The Waterfall Model The waterfall model One of the first published models Planning should occur first “Plan-driven” model The separate phases: Requirements definition Software design Implementation & Unit testing Integration & System testing Operation & Maintenance The output of one stage is input to the next. It requires much documentation. Software Development Life Cycle Software Engineering SE Process Models - Waterfall Software Development Life Cycle Software Engineering The Waterfall Model - Benefits Good features: Simple and easy to use Easy to monitor the progress of the project Can be used for large projects when a system is developed at several sites, where a Plan-driven nature of the this model helps coordinate the work. Software Development Life Cycle Software Engineering The Waterfall Model - problems The difficulty of do changes after the process is passed. Change requires revising previous step(s), re-work (costly) This model is appropriate only when a) The requirements are well-understood and b) No much Changes during the design process. In principle, a phase has to be completed before moving on to the next phase. BUT Customers sometimes need to change the requirements Software Development Life Cycle Software Engineering V- Shaped Model In this model Verification & Validation goes hand in hand i.e. development and testing goes parallel Similar to waterfall model except that the test planning and testing start at an early stage in V-Model. Verification Phase: Analysis, Design and coding Validation Phase: Testing unit, integration, system and acceptance Software Development Life Cycle Software Engineering V- Shaped Model Software Development Life Cycle Software Engineering V- Shaped Model-- Advantages It is a simple and easily understandable model. V –model approach is good for smaller projects wherein the requirement is defined and it freezes in the early stage. It is a systematic and disciplined model which results in a high-quality product. Software Development Life Cycle Software Engineering V- Shaped Model-- Disadvantages V-shaped model is not good for large projects. Requirement change at the later stage would cost too high.. Software Development Life Cycle Software Engineering SE Process Models - Prototype The process of developing a working models of a system This model is used when the customers do not know the exact project requirements. A prototype of the product is first developed, tested, and refined as per customer feedback repeatedly till a final acceptable prototype is achieved Software Development Life Cycle Software Engineering SE Process Models - Prototype Software Development Life Cycle Software Engineering SE Process Models - Prototype Advantages The customers can see the partial product early in the life cycle New requirements can be easily accommodated Errors can be detected much earlier The developed prototype can be reused by the developer in the future Disadvantages Costly with respect to time as well as money Poor Documentation due to continuously changing customer requirements There is uncertainty in the number of iterations to complete the project. Software Development Life Cycle Software Engineering SE Process Models - RAD Type of incremental process model in which there is an extremely short system development cycle. When the requirements are fully understood, the project can be broken down into small modules, and each module can be assigned independently to separate teams. Software Development Life Cycle Software Engineering SE Process Models - RAD Software Development Life Cycle Software Engineering SE Process Models - RAD Advantages use of powerful development tools results in better quality products in comparatively shorter time spans Productivity can be quickly available Disadvantages It uses powerful and efficient tools, requires highly skilled professionals (Cost) The team leader must work closely with the developers and customers to close the project on time. Project cost can sometimes be higher Software Development Life Cycle Software Engineering SE Process Models – Reuse Oriented This is based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems. Process stages Component analysis Requirements modification; System design with reuses Development and integration. Reuse is now the standard approach for building many types of business system (e.g Microsoft) Software Development Life Cycle Software Engineering SE Process Models – Reuse Oriented Software Development Life Cycle Software Engineering SE Process Models - SCRUM The Scrum model is also one of the Agile-driven model that has become popular in recent years due to its capability in managing complex project It has three roles Product Owner: Stakeholders for defining and prioritizing the product backlog. Scrum Master: Facilitates the process and ensures that the team adheres to its practices. Development Team: Cross-functional and self-organizing group responsible for delivering the product increment. It has Product Backlogs: List of prioritized features, enhancement, fixes It has Sprint: A time-boxed iteration (usually 2-4 weeks) during which a potentially shippable product increment is created. It has Product Increment: The sum of all the completed product backlog items at the end of a sprint Software Development Life Cycle Software Engineering SE Process Models - SCRUM Software Development Life Cycle Software Engineering SE Process Models - SCRUM Product Backlogs: List of prioritized features, enhancement, fixes developed by owner Planning Sprint: Scrum team select a items in the backlog to work in a given sprint. Sprint meetings: Meeting to discuss what to work on next, and highlight any problem. The goal is to synchronize the team’s activities and ensure everyone is on the same page. Sprint review: The team discusses what went well, what could be improved, and any action items for enhancing their processes Sprint retrospective: The team discusses what went well, what could be improved, and any action items for enhancing their processes Software Development Life Cycle Software Engineering SE Process Models - SCRUM Advantages Fast product Delivery Focus on customer satisfaction High quality product with less time since it has constant feedback Improve collaboration Disadvantages It resource consuming due to daily meetings and frequent review It requires clear definition of the requirements Software Development Life Cycle Software Engineering INTEGRATE SECURITY INTO SDLC Security testing was a separate process from the SDLC. The security team discovered security flaws only after they built the software. Modern Approach of SDLC (DevSecOps) covers security to the whole process in the SDLC. Built a “Secure-by-Design” systems, which is resilient to attacks Software Development Life Cycle Software Engineering 31 INTEGRATE SECURITY INTO SDLC Regardless of the type of SDLC, security must be built into the process so that it is adequately addressed during each phase Software Development Life Cycle Software Engineering 32 References https://www.geeksforgeeks.org/software-development-life-cycle-sdlc/ https://theproductmanager.com/topics/software-development-life-cycle/ https://www.geeksforgeeks.org/software-engineering-rapid-application-development-model- rad/ https://aws.amazon.com/what-is/devsecops/ Software Development Life Cycle Software Engineering