Software Development Life Cycle Models: Waterfall, Incremental, RAD, Prototype
Software Development Life Cycle Models
Waterfall Model
The Waterfall model means that the requirements of a problem are well understood and stable in the 5 Stages of Generic Software Engineering. Documents are generated in each stage. Revisions are made after each stage; the process only passes to the next stage if the previous stage is completed.
Advantages:
- Recommended for products that have a stable definition.
- Recommended when working with known methodologies.
- Helps to minimize the costs of planning
Software Engineering: Testing, ISO 12207, Quality & Planning
Software Testing Principles
Analyze the set of testing principles adopted in software engineering? Here’s a concise summary of the testing principles in software engineering:
- Testing Shows Presence of Defects: Testing reveals defects but cannot prove the software is defect-free.
- Exhaustive Testing Is Impossible: It’s impractical to test all possible scenarios; prioritize critical areas.
- Early Testing Saves Time and Costs: Detecting defects early in the SDLC reduces effort and cost.
- Defect Clustering:
Software Design and Implementation Phases
Software Design and Implementation
Design and Implementation
- Software design and implementation is the stage in the software engineering process at which an executable software system is developed.
- Software design and implementation activities are invariably inter-leaved.
- Software design is a creative activity in which you identify software components and their relationships, based on a customer’s requirements.
- Implementation is the process of realizing the design as a program.
Build or Buy
- In a wide range
Software Maintainability, SCM, CMS, and Development Factors
Maintainable Software
Maintainability is the ease with which software can be modified to fix defects, improve performance, or adapt to changes. High maintainability reduces long-term costs and effort.
Key Principles of Maintainable Software
- Modularity – Breaking software into independent, reusable modules.
- Readability & Understandability – Writing clear, well-documented code.
- Low Coupling & High Cohesion – Ensuring minimal dependency between modules while keeping related functions together.
Software Development Processes and Models
Plan-Driven and Agile Processes
- Plan-driven processes are processes where all activities are planned in advance, and progress is measured against this plan.
- In agile processes, planning is incremental, making it easier to change the process to reflect changing customer requirements.
- In practice, most processes include elements of both plan-driven and agile approaches.
- There are no right or wrong software processes.
Software Process Models
- Waterfall model
- Plan-driven model. Separate and distinct phases
Agile Methods in Software Development
Agile Methods
- Dissatisfaction with the overheads involved in software design methods of the 1980s and 1990s led to the creation of agile methods. These methods:
- Focus on the code rather than the design.
- Are based on an iterative approach to software development.
- Are intended to deliver working software quickly and evolve it rapidly to meet changing requirements.
- The aim of agile methods is to reduce overheads in the software process (e.g., by limiting documentation) and to be able to respond quickly
