Foundations of software engineering



Similar documents
Modelli di sviluppo software. Enrico Giunchiglia

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

The software process. Generic software process models. Waterfall model. Software Development Methods. Bayu Adhi Tama, ST., MTI.

To introduce software process models To describe three generic process models and when they may be used

Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems

Unit 1 Learning Objectives

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Software Engineering. Objectives. Designing, building and maintaining large software systems

Software Life Cycle Processes

CSCI-485: Software Design

Chapter 2 Software Processes

IV. Software Lifecycles

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

Software Engineering. Software Engineering. Software Costs

Lecture 3 Software Development Processes

A Comparison between Five Models of Software Engineering

CS4507 Advanced Software Engineering

COMP 354 Introduction to Software Engineering

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

Software Engineering. What is a system?

And the Models Are System/Software Development Life Cycle. Why Life Cycle Approach for Software?

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

Software Project Models

Software development lifecycle

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Dependable (Safe/Reliable) Systems. ARO Reliability Workshop Software Intensive Systems

How To Understand The Software Process

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

A Comparison Between Five Models Of Software Engineering

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Software Development Life Cycle (SDLC)

Unit I. Introduction

Software Development: The Waterfall Model

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

Classical Software Life Cycle Models

Software Development Process Models

ASSESSMENT OF SOFTWARE PROCESS MODELS

Software Processes. Topics covered

A COMPARISON BETWEEN DIFFERENT TYPES OF SOFTWARE DEVELOPMENT LIFE CYCLE MODELS IN SOFTWARE ENGINEERING

I219 Software Design Methodology

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

The most suitable system methodology for the proposed system is drawn out.

Software Development Life Cycle

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

General Problem Solving Model. Software Development Methodology. Chapter 2A

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

CSC 492 The Practice of Software Engineering. Lecture 3 University of Mount Union Software Life Cycle Models

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

Introduction to Software Engineering

Software Engineering

A Review of Risk Management in Different Software Development Methodologies

Lifecycle Models: Waterfall / Spiral / EVO

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

Software Development Methodologies

Software Development Process

Rapid Development & Software Project Survival Guide Steve McConnell Dave Root (Developed with Mel Rosso-Llopart)

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Software Production and Lifecycle Models

(Refer Slide Time: 01:52)

Alternative Development Methodologies

A Capability Maturity Model (CMM)

Advanced Software Engineering. Software Development Processes

Elite: A New Component-Based Software Development Model

Software Development Methodologies

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

What is a life cycle model?

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

An Assessment between Software Development Life Cycle Models of Software Engineering

Use service virtualization to remove testing bottlenecks

Umbrella: A New Component-Based Software Development Model

How To Model Software Development Life Cycle Models

Security Considerations for the Spiral Development Model

Software development process

A Survey of Software Development Process Models in Software Engineering

Chapter 8 Approaches to System Development

Software Process for QA

Trends in Embedded Software Development in Europe. Dr. Dirk Muthig

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur

Chapter 3 Methodology

A Process Programmer Looks at the Spiral Model

Software Development Processes. Software Life-Cycle Models

Overview. Software engineering and the design process for interactive systems. Standards and guidelines as design rules

INTRODUCTION TO SOFTWARE ENGINEERING

Chapter 1: Introduction to Rapid Application Development (RAD) 1. Introductions

Using an Agile Methodology for business success. Bryte Systems

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

IF2261 Software Engineering. Introduction. What is software? What is software? What is software? Failure Curve. Software Applications Type

Software Development Processes. Software Life-Cycle Models. Process Models in Other Fields. CIS 422/522 Spring

The Software Life Cycle. CSE 308: Software Engineering

Process Models and Metrics

Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler

Transcription:

Foundations of software engineering Waterfalls, V s and Spirals: Standard SE Methodologies Dr. Julie Greensmith G51

Objectives To introduce three of the major software process models: Waterfall methods Spiral Methodologies V- model To describe the pros and cons of each model To show how these models are used in practice 2

The software process The software process is a structured set of activities required to develop a software system as pictured as a linear activity: Requirements Design Implementation Integration Deployment Maintenance A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective Different methodologies utilise these stages in different orders and in different combinations 3

Lots of methodologies! Many methodologies are used in SE Which one you use is often dictated by: the project manager the complexity of the problem organisational policy Methodology: a standard process or collection of methods used within a specific discipline, to provide a consistent and unified development process 4

Why do we need standards? Surely the nature of a project should dictate how we go about developing the software? This is not necessarily the case - these methods are important so that we have common frameworks in which to develop software use common language clear order in which components can be developed makes it obvious where testing should be done Present in many industries not just in SE 5

The Waterfall Model 6

Generic software process models The waterfall model Separate and distinct phases of specification and development Evolutionary development Specification, development and validation are interleaved Component-based software engineering The system is assembled from existing components There are many variants of these models e.g. formal development where a waterfall-like process is used but the specification is a formal specification that is refined through several stages to an implementable design 7

Requirements Design Implementation Integration Deployment Maintenance Requirements definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance

Waterfall model phases The standard components of a software lifecycle sometimes interaction between phases generally cascades downwards, hence the name waterfall You cannot easily accommodate change! One phase has to be complete before moving onto the next phase The guy who proposed them published the technique as an exemplar as to how not to develop software! 10

Waterfall model problems Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing client requirements Therefore, this model is only appropriate when the requirements are well-understood and changes will be fairly limited during the design process Few business systems have stable requirements The waterfall model is mostly used for large systems engineering projects where a system is developed at several sites including construction 11

Where does testing fit in? Requirements Design Implementation Integration Deployment Maintenance 12

Where does testing fit in? Unit Acceptance Regression Requirements Design Implementation Integration Deployment Maintenance Integration System 13

Projects which use waterfalls Military and space development projects use waterfall methods BAE systems Aerospace development companies Engineering heritage and mistrust of new and novel techniques Do you remember Arianne-5?? The NHS Information System - is it running yet?? 14

Variants on the Waterfall Model What we have described is known as the pure waterfall model Two commonly known variants: Royce s model which links back one loop from implementation back to requirements Big Design Up Front (BDUF) model where 60% of effort is spent in perfecting designs and not in heavily investing in prototyping Experian use BDUF - clients who know best like it 16

Spiral Methodologies 17

Spiral development -Boehm 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 and is a mini-waterfall No fixed phases or phase order such as specification or design loops in the spiral are chosen depending on what is required, they are lovely and flexible!! Risks are explicitly assessed and resolved throughout the process. 18

Determine objectives, alternatives and constraints Plan next phase REVIEW Requirements plan Life-cycle plan Development plan Integration and test plan Risk analysis Risk analysis Risk analysis Prototype 2 Risk analysis Prototype 1 Concept of Operation S/W requirements Requirement validation Design V&V Service Acceptance test Prototype 3 Operational protoype Simulations, models, benchmarks Product design Integration test Evaluate alternatives, identify, resolve risks Unit test Code Detailed design Develop, verify next-level product

Spiral model sectors Objective 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. 20

Spiral Model Stages Can be whatever is needed to get the job done dictated by what you are trying to develop depends what your resources are in terms of both people, time and money Can take a much more fine grained and less hierarchical view of the development process risk analysis specify where the prototypes are used precise with testing points in development cycle 21

Spiral Model Pros Estimates of time and cost are easier to see as problems become apparent quite early on each rotation of the spiral is a mini-version of the whole project It is robust to coping with an evolving requirements specification or changes in underlying technology The development team can get stuck in sooner, meaning less idle people in the project team 22

Spiral Model Cons Limited re-use as spirals tailored per project Spirals applied to different problems in a different way Hard to see the overall design up front managers get nervous with things like this Hard to keep on track in terms of time and budget as its not explicit in the original spiral 23

V-Models 24

V- Development An implementation sits underneath interacting layers of design/planning with integration and testing Is less flexible but more structured than the spiral methods Can account for more changes than a pure waterfall model Popular with developers as implementation is seen as the keystone of this approach 25

Requirements Generic design Validation stages System testing Integration testing Detailed design Unit testing Implementation 26

Pros and cons of V-model In theory, used by Thales for aerospace systems Pros: Cons: Each phase has specific deliverables Simple and Easy to use Very Rigid similar to the Waterfall method As there is a fixed implementation phase there is little scope for prototype development 27

The Truth... 28

Summary To introduce three of the major software process models: Waterfall methods Spiral Methodologies V- model To describe the pros and cons of each model To show how these models are used in practice 29