Requirements and the Software Lifecycle

Slides:



Advertisements
Similar presentations
Software Processes.
Advertisements

Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.
Prescriptive Process models
Ninth Lecture Hour 8:30 – 9:20 pm, Thursday, September 13
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
Unit 2. Software Lifecycle
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.
Software Engineering Saeed Akhtar The University of Lahore Lecture 4 Originally shared for: mashhoood.webs.com.
COMP 474 Software Engineering Professor William L. Honig.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
ISNE101 Dr. Ken Cosh. Recap  We’ve been talking about Software…  Application vs System Software  Programming Languages  Vs Natural Languages  Syntax,
SYSC System Analysis and Design
Object-oriented Analysis and Design
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Iterative development and The Unified process
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Object-Oriented Analysis and Design Iterative Development and the Unified Process.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Software Development *Life-Cycle Phases* Compiled by: Dharya Dharya Daisy Daisy
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
Lecture 3 Software Engineering Models (Cont.)
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
1 Requirements Management - General concepts - Noureddine Abbadeni King Saud University College of Computer and Information Sciences Based on “Software.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
REQUIREMENTS - WHY WHAT AND HOW? Steve Chenoweth & Chandan Rupakheti CSSE 371 Chapters Requirements Text. Question 6.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
An Introduction to Software Engineering
Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
CS 389 – Software Engineering Lecture 2 – Part 2 Chapter 2 – Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Announcements/Assignments
TK2023 Object-Oriented Software Engineering
Lecture 3 Prescriptive Process Models
Chapter 2: Software Processes
The Systems Engineering Context
SNS College of Engineering Coimbatore
Software Processes (a)
Software Process Models
Chapter 2 SW Process Models
Software Process Models
Life Cycle Models PPT By :Dr. R. Mall.
Software Life Cycle Models
Chapter 2: Software Process Models
Unified Process (UP).
Software Processes.
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
Object Oriented Analysis and Design
Chapter 2 Software Processes
Chapter 2 – Software Processes
Software life cycle models
An Overview of Software Processes
Software Process Models
Software Processes.
Chapter 2: Software Process Models
CSCI 360: Software Architecture & Design
Presentation transcript:

Requirements and the Software Lifecycle Chapter 3 The traditional software process models Waterfall model Spiral model The iterative approach

Any Good Software Development Process should have Collect + Analysis: Identify what the system should do Design: Determine what is the best way to do it Implementation + Test: Build the system correctly

Traditional Software Process Models Effective requirements management can occur only within the context of a reasonably well-defined software process that defines the full set of activities your team must execute to deliver the final software product. In order for your team to reach its goal, your team's software development process should define who is doing what, when and how.

The Waterfall Model The waterfall model is sequential: Software activities proceed logically through a sequence of steps. Each step bases its work on the activities of the previous step. The waterfall model was widely followed in the 1970s and '80s and served successfully as a process model for a variety of medium- to large-scale projects.

The Waterfall Model (Royce 1970)

The Waterfall Model Collect major requirements (hardware, software & human parts), define clearly, and document them. Design & plan how to meet the req. Code the system and test units, Link all parts, install and test as a whole Corrective, adaptive & perfective maintenance

Waterfall Model Problems Inflexible partitioning of the project into distinct stages makes it difficult to respond to changes in customer requirements. Therefore, this model is only appropriate when the requirements are well-understood and changes will be fairly limited during the design process. Long process and no intermediate builds, but Stakeholders need to gain confidence Designers and developers need confirmation that they are building what is needed and wanted. Some team members are idle (because they are not involved in the current development phase) We need to put people to work on several phases at once

Incremental Development Notice that Successful large system is originally successful small project that grows incrementally. Two incremental models: Spiral Model Iterative approach

Prototyping Prototype is a system or partially complete system that is built quickly to operate some aspects of the requirements. Thus, it may have poor performance, less functionality, limited data processing capacity, and low quality.

The Spiral Model (Boehm, 88)

Spiral Model’s 4 Sectors Objectives setting: specific objectives for the phase are identified. Risk assessment and reduction: risks are assessed and activities put in place to reduce the key risks. Development and validation: a development model for the system is chosen which can be any of the generic models. Planning: the project is reviewed and the next phase of the spiral is planned.

The Spiral Model’s properties Risk-driven and incremental development process Process is represented as a spiral rather than as a sequence of activities with backtracking. Each loop in the spiral represents a phase in the process. No fixed phases such as specification or design loops in the spiral are chosen depending on what is required. Risks are explicitly assessed and resolved throughout the process. The main advantage of this process model is the availability of multiple feedback opportunities with the users and customers.

The Iterative Approach (Kruchten, 95) In the iterative approach, the lifecycle phases are decoupled from the logical software activities that occur in each phase, allowing us to revisit various activities, such as requirements, design, and implementation, during various iterations of the project.

The Iterative Approach: Lifecycle Phases It has 4 phases Inception: scope & purpose of project Elaboration: analysis of the req. and the structure of the system Construction: writing the code Transition: installing the system

The Iterative Approach: Lifecycle Phases Inception phase The team is focused on understanding the business case for the project, the scope of the project, and the feasibility of an implementation. Problem analysis is performed, the vision for the solution is created, and preliminary estimates of schedule and budget, as well as project risk factors, are defined.

The Iterative Approach: Lifecycle Phases Elaboration phase The requirements for the system are refined, an initial, perhaps even executable, architecture is established, and an early feasibility prototype is typically developed and demonstrated.

The Iterative Approach: Lifecycle Phases Construction phase The focus is on implementation. Most of the coding is done in this phase, and the architecture and design are fully developed.

The Iterative Approach: Lifecycle Phases Transition phase Beta testing The users and maintainers of the system are trained on the application. The tested baseline of the application is transitioned to the user community and deployed for use.

The Iterative Approach: Iterations

The Iterative Approach: Iterations Within each phase, the project typically undergoes multiple iterations. An iteration is a sequence of activities with an established plan and evaluation criteria, resulting in an executable of some type. Each iteration builds on the functionality of the prior iteration; thus, the project is developed in an "iterative and incremental" fashion.

The Iterative Approach: Disciplines

The Iterative Approach: Disciplines In the iterative approach, the activities associated with the development of the software are organized into a set of disciplines. Each discipline consists of a logically related set of activities, and each defines how the activities must be sequenced to produce a viable work product (or artifact). Although the number and kind of disciplines can vary, based on the company or project circumstances, there are typically at least six disciplines.

The Iterative Approach: Disciplines During each iteration, the team spends as much time as appropriate in each discipline. Thus, an iteration can be regarded as a mini-waterfall through the activities of requirements, analysis and design, and so on, but each mini-waterfall is "tuned" to the specific needs of that iteration. The size of the "hump" indicates the relative amount of effort invested in a discipline. For example, in the elaboration phase, significant time is spent on "refining" the requirements and in defining the architecture that will support the functionality. The activities can be sequential (a true mini-waterfall) or may execute concurrently, as is appropriate to the project.

Requirements in the Iterative Model From the requirements management perspective, the iterative approach provides two major advantages: Better adaptability to requirements change. Better scope management.

Key Points The team's development process defines who is doing what, when, and how. In the waterfall model, software activities proceeded through a sequence of steps, and requirements were "fixed" early. In the spiral model, the first steps were taken to a more risk-driven and incremental approach to development. The iterative approach, a hybrid of the waterfall and spiral models, decouples the lifecycle phases from the software activities that take place in each phase. The iterative model is a more robust model and provides for successive refinement of the requirements over time.