Understanding the Waterfall Model in Software Engineering
The Waterfall Model in software engineering follows a sequential process involving stages like requirements analysis, system design, implementation, integration, and maintenance. Each stage is crucial for successful software development, ensuring that the final product meets the specified requirements and functions as intended.
Download Presentation
Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
E N D
Presentation Transcript
Software engineering Software engineering Chapter 2 Software Process By: Lecturer By: Lecturer Raoof Raoof Talal Talal
2-5 the Waterfall Model The first published model of the software development process was derived from more general system engineering processes (Royce, 1970). This model is illustrated in Figure 2.5. Because of the cascade from one phase to another, this model is known as the waterfall model or software life cycle.
The principal stages of the waterfall model directly reflect the fundamental development activities: 1.Requirements analysis and definition: The system s services, constraints, and goals are established by consultation with system users. They are then defined in detail and serve as a system specification .
2. System and software design: The systems design process allocates the requirements to either hardware or software systems by establishing an overall system architecture. Software design involves identifying and describing the fundamental software system abstractions and their relationships.
3. Implementation and unit testing: During this stage, the software design is realized as a set of programs or program units. Unit testing involves verifying that each unit meets its specification.
4.Integration and system testing: The individual program units or programs are integrated and tested as a complete system to ensure that the software requirements have been met. After testing, the software system is delivered to the customer.
5. Operation and maintenance: Normally (although not necessarily), this is the longest life cycle phase. The system is installed and put into practical use. Maintenance involves correcting errors which were not discovered in earlier stages of the life cycle, improving the implementation of system units and enhancing the system s services as new requirements are discovered.
2-6 the Incremental Model Incremental development is based on the idea of developing an initial implementation, exposing this to user comment and evolving it through several versions until an adequate system has been developed. The incremental model combines elements of the linear sequential model (applied repetitively) with the iterative philosophy of prototyping.
Referring to Figure 2.6, the incremental model applies linear sequences in a staggered fashion as calendar time progresses. Each linear sequence produces a deliverable increment of the software.
For example, word-processing software developed using the incremental paradigm might deliver basic file management, editing, and document production functions in the first increment; more developed editing and document production capabilities in the second increment; spelling and grammar checking in the third increment; and advanced page layout capability in the fourth increment.
It should be noted that the process flow for any increment can incorporate the prototyping paradigm. When an incremental model is used, the first increment is often a core product. The incremental process model, like prototyping, is iterative in nature. But unlike prototyping, the incremental model focuses on the delivery of an operational product with each increment.
Incremental development is particularly useful when staffing is unavailable for a complete implementation by the business deadline that has been established for the project. Early increments can be implemented with fewer people. If the core product is well received, then additional staff (if required) can be added to implement the next increment.
2-7 the Spiral Model The spiral model was proposed by Boehm (1988). This is shown in Figure 2.7. Here, the software process is represented as a spiral, rather than a sequence of activities with some backtracking from one activity to another.
It provides the potential for rapid development of incremental versions of the software. Using the spiral model, software is developed in a series of incremental releases. During early iterations, the incremental release might be a paper model or prototype. During later iterations, increasingly more complete versions of the engineered system are produced.
A spiral model is divided into a number of framework activities, also called task regions. Typically, there are between three and six task regions. Figure 2.7 depicts a spiral model that contains six task regions:
Customer communication tasks required to establish effective communication between developer and customer. Planning tasks required to define resources, timelines, and other project related information. Risk analysis tasks required to assess both technical and management risks.
Engineering tasks required to build one or more representations of the application. Construction and release tasks required to construct, test, install, and provide user support (e.g., documentation and training). Customer evaluation tasks required to obtain customer feedback based on evaluation of the software representations created during the engineering stage and implemented during the installation stage.