































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An overview of software process models, focusing on three categories: sequential (Waterfall), iterative, and incremental. It explains the phases and deliverables of each model, their strengths and weaknesses, and when to use them. The document also introduces the concept of process models and their role in software development.
Typology: Study notes
1 / 39
This page cannot be seen from the preview
Don't miss anything!
































To introduce software process models To describe three generic process models and when they may be used To describe outline process models for requirements engineering, software development, testing and evolution
Requirements Operation and Maintenance Implementation Design Feasibility and Planning
Project Management Requirement Engineering Design Coding Testing Software Quality Assurance Software Configuration Management Software Integration Rest of the activities
Fundamental Assumption: Good processes lead to good software Good processes reduce risk Good processes enhance visibility Good processes enable teamwork Variety of Software Processes (^) Software products are very varied. Therefore, there is no standard process for all software engineering projects (^) BUT successful software development projects always need to address similar issues. This creates a number of process steps that should be part of all software projects.
A feasibility study precedes the decision to begin a project. What is the scope of the proposed project? Is the project technically feasible? What are the projected benefits? What are the costs, Numerable? Are the resources available? What are the risks and how can they be managed? A feasibility study leads to a decision: go or no-‐go.
This step is occasionally divided into:
(^) Design describes the system from the software developers' viewpoint System design: (^) Establish a system architecture, both hardware and software, that matches the requirements Program design: (^) Represent the software functions in a form that can be transformed into one or more executable programs Preliminary user testing is often carried out as part of the design step. Models are used to represent the requirements, system architecture, and program design.
The system is tested against the requirements by the client, often with selected customers and users.
After successful acceptance testing, the system is delivered to the client and released into production or marketed to customers. Process Step: Acceptance and Release
Operation: The system is put into practical use. Maintenance: Errors and problems are identified and fixed. (^) Evolution: The system evolves over time as requirements change, to add new functions, or adapt to a changing technical environment. (^) Phase out: The system is withdrawn from service. This is called the Software Life Cycle Process Step: Operation and Maintenance
In a heavyweight process, the development team works through the process steps slowly and systematically, with the aim of fully completing each process step and deliverables for that step that will need minimal changes and revision. Example: Modified Waterfall Model (^) In a lightweight process, the development team releases working software in small increments, and develops the plans incrementally, based on experience. Each increment includes all the process steps. There is an expectation that changes will be made based on experience. Example: Agile Software Development Heavyweight and Lightweight Software Development
Deliverables A deliverable is some work product that is delivered to the client. In a heavyweight process, each process step creates a deliverable, usually documentation, e.g., a requirements specification. In a lightweight process, the deliverables are incremental working code, with minimal supporting documentation.
“ A simplified representation of a software process, presented from a specific perspective ”. Generic process models: ◦ (^) Waterfall ◦ (^) Evolutionary development ◦ (^) Component-based software engineering ◦ (^) Iterative development
Perspective Process Models ◦ (^) The Waterfall Model ◦ (^) Incremental Process Models ◦ (^) V-Shaped Model ◦ (^) Evolutionary Process Models (^) Prototyping (^) The Spiral Model ◦ (^) Concurrent Models Specialized Process Models ◦ (^) Component-Based Development ◦ (^) The Formal Methods Model ◦ (^) Aspect-Oriented Software Development