11.2.1.2 analyze the advantages and disadvantages of waterfall, agile, and spiral models Models of Software Development Life Cycle When creating software, we go through several stages, we define these stages in the system development life cycle.
There are many SDLC models, in middle school, you learn the most general model. The Software Development Life Cycle (SDLC) is a structured process used by software development teams and organizations to design, develop, test, deploy, and maintain software systems or applications. It outlines the steps and stages that a software project goes through from its inception to its completion. Key stages of the software development life cycle The following are the key stages of the cycle: Analysis. This is the first step when the team decides what the software needs to do. The main point is to think about what the user will want from the program. At this stage, it might be a good idea to ask other people what they want from the software. Who is going to use it? What information do they need to input? What information or data does it need to output? Consider existing similar systems or determine how the current system works. Design The team works out the details of the program by breaking it down into smaller chunks. This includes thinking about the visual appearance and the programming behind the software. The team will use pseudocode and diagrams to work out how the program should go. Implementation The program code is written. Good pseudocode allows the implementation stage to be relatively easy. The code is normally written in a high-level language. Testing This involves testing the program under various conditions to make sure it is going to work. You need to think about what devices it could be used on and what might cause the program to crash. Evaluation The final stage of the SDLC discusses the level of achievement of the goals. The key evaluation criterion is the use of the system by the intended users. Models of the software development life cycle There are various SDLC models, but they typically share common phases, which may vary in name and number. Waterfall (Cascade) model The Waterfall Model is a traditional and linear software development methodology that organizes the software development process into a sequence of discrete phases, with each phase dependent on the deliverables of the previous one. It is often represented as a waterfall, where progress flows in one direction, and each phase is completed before moving on to the next. Here are the key characteristics and phases of the Waterfall Model: Phases of the Waterfall model a. Requirements gathering and analysis: In this initial phase, project stakeholders work closely to define and document the system's requirements comprehensively. This phase aims to establish a clear understanding of what the software must do and achieve. b. System Design: Once the requirements are well-defined, the system design phase begins. During this phase, system architects and designers create a detailed blueprint of how the software will be structured, including its architecture, database design, and user interface design. c. Implementation/Development/Coding: In this phase, developers write the actual code based on the system design specifications. The implementation phase involves translating the design into executable software and building all the necessary features and functionality. d. Testing: After coding is complete, the software is rigorously tested to identify and resolve defects or bugs. This phase includes various types of testing, such as unit testing, integration testing, and system testing, to ensure that the software works as intended. e. Deployment (or Installation): Once testing is successful, the software is deployed to a production environment or made available to end-users. This is when users can begin to interact with the software. f. Maintenance and Support: The final phase of the Waterfall Model involves ongoing maintenance and support of the software. This includes addressing any issues that arise, making updates, and ensuring the long-term reliability and stability of the system. Advantages of the Waterfall model
Disadvantages of the Waterfall mode
The Waterfall Model is most appropriate when the following conditions are met:
Agile model The Agile Model, or Agile methodology, is a modern and flexible approach to software development and project management. It emphasizes collaboration, customer feedback, and the iterative delivery of small, working increments of a software product. Agile methodologies are particularly well-suited for projects where requirements are subject to change, and where the ability to adapt quickly is crucial. Requirements (User Stories/Backlog): Agile projects begin with the identification and prioritization of requirements, often expressed as user stories or items in a product backlog. These requirements are typically short, concise, and focused on user needs. Design (Sprint Planning): In Agile, design activities are often integrated into the sprint planning phase. During sprint planning, the development team discusses how they will implement the selected user stories or backlog items in the upcoming sprint. Design decisions are made as part of this planning process. Development (Sprint): The development phase in Agile is carried out in iterations called sprints. During a sprint, the development team works on implementing the user stories or backlog items selected for that sprint. This phase involves coding, testing, and integration of the features. Test (Continuous Testing): Testing is a continuous activity throughout the Agile development process. Agile teams conduct testing alongside development to ensure that each user story or feature is tested as it is built. Automated testing is often used to support continuous testing practices. Deploy (Incremental Delivery): Agile promotes incremental delivery, meaning that working software is deployed or released incrementally throughout the project. At the end of each sprint, there is typically a potentially shippable product increment that can be deployed if the product owner chooses to do so. Review (Sprint Review/Retrospective): The Agile model includes regular review and reflection phases. At the end of each sprint, a Sprint Review is conducted to demonstrate the completed work to stakeholders and gather feedback. Additionally, a Sprint Retrospective is held to reflect on the sprint process and identify areas for improvement. Advantages of the Agile model
Disadvantages of the Agile model
Spiral model The Spiral Model is a software development methodology that combines elements of iterative development and risk management. It was developed by Barry Boehm in the 1980s and is particularly well-suited for projects with a high level of uncertainty and risk. The Spiral Model is characterized by its iterative approach, where the project progresses through a series of cycles, or "spirals," each of which includes the following key phases: Planning: In the initial phase, project objectives, requirements, constraints, and risks are identified and defined. A preliminary project plan is developed, outlining the overall strategy and approach for the project. Risk Analysis: This phase focuses on identifying and assessing project risks. Risk analysis involves evaluating potential technical, schedule, and cost risks associated with the project. Risks are prioritized based on their potential impact and likelihood. Engineering (Development): Once the risks have been assessed, the development team works on creating a version of the product based on the requirements and addressing the highest-priority risks. This phase can be viewed as a mini-waterfall or iterative process within each spiral. Evaluation (Testing): After the product increment is developed, it undergoes testing and evaluation. This phase includes quality assurance activities to ensure that the product meets the specified requirements and that identified risks have been mitigated. Review and Planning: In this phase, the project is reviewed with stakeholders to assess progress, reevaluate risks, and make decisions about whether to proceed to the next spiral. Based on the feedback and results, the project plan is refined and updated. Advantages of the Spiral model
Disadvantages of the Spiral model
Any system development lifecycle must result in a high-quality system that meets or exceeds customer expectations, is completed within time and cost, is efficient and effective, is inexpensive to maintain, and is cost-effective to improve. Questions:
Exercises: Ex. 1 Ex. 2 Ex. 3 Ex. 4
Exam questions: | |
| |
Просмотров: 13444 | | |
Всего комментариев: 0 | |