CSCI-485: Software Design



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

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

Lecture 3 Software Development Processes

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

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

Modelli di sviluppo software. Enrico Giunchiglia

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

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Foundations of software engineering

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 Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

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

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

COMP 354 Introduction to Software Engineering

A Comparison between Five Models of Software Engineering

Unit 1 Learning Objectives

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

ASSESSMENT OF SOFTWARE PROCESS MODELS

Software Life Cycle Processes

Chapter 2 Software Processes

Software Engineering

Software Processes. Topics covered

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

A Comparison Between Five Models Of Software Engineering

Classical Software Life Cycle Models

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

Software Development Life Cycle Models - Process Models. Week 2, Session 1

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

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

Introduction to Software Engineering (ESE : Einführung in SE)

An Assessment between Software Development Life Cycle Models of Software Engineering

Software development lifecycle

Análisis, diseño y construcción de Software

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Software Project Models

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

Lecture 21 March 7, 2013

Software Engineering. Software Engineering. Software Costs

Project management. Organizing, planning and scheduling software projects

Project management: an SE Perspective

Unit I. Introduction

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

Topics covered. An Introduction to Software Engineering. FAQs about software engineering Professional and ethical responsibility

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

Chapter 1 Introduction

Introduction to Software Engineering. Adopted from Software Engineering, by Ian Sommerville

Software Engineering Reference Framework

What is Software? The Software Development Process. Definition of Software. Why Software?

Organizing, planning and scheduling software projects

Components Based Design and Development. Unit 2: Software Engineering Quick Overview

Today: Software Development Models (cont)

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

CMSC 435: Software Engineering Course overview. Topics covered today

Software Engineering UNIT -1 OVERVIEW

Advanced Software Engineering. Software Development Processes

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

Project management. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 5 Slide 1

Christina Wallin ABB Corporate Research Department of Industrial IT Västerås +46 (0)

CPSC 491 Lecture Notes Fall 2013

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

An Introduction to Software Engineering

An Introduction to Software Engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1

1. Software Process Models (Sommerville Chapters 4, 17, 19, 12.4)

Software Engineering. What is a system?

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

Applying QFD to improve the requirements and project management in small-scale project. Terhi Kivinen

Software Process Models. Xin Feng

Introduction to Software Engineering

Software Engineering. What is SE, Anyway? Based on Software Engineering, 7 th Edition by Ian Sommerville

Project management. Organising, planning and scheduling software projects. Ian Sommerville 2000 Software Engineering, 6th edition.

Basic Trends of Modern Software Development

Rapid Software Development

Lifecycle Models: Waterfall / Spiral / EVO

Software Development Processes. Software Life-Cycle Models

A Review of Risk Management in Different Software Development Methodologies

CS4507 Advanced Software Engineering

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

System development lifecycle waterfall model

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

Hamid Faridani March 2011

Software Engineering

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

How era Develops Software

Weaving the Software Development Process Between Requirements and Architectures

Chapter 23 Software Cost Estimation

Alternative Development Methodologies

I219 Software Design Methodology

Selecting a Software Development Methodology based on. Organizational Characteristics. Adrienne Farrell

Project management. Organizing, planning and scheduling software projects. Objectives. Chapter 3. Chapter 3 Project Management. Learning Objective

Review of Software Development Methodologies Used in Software Design

Software cost estimation

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

LECTURE 1. SYSTEMS DEVELOPMENT

CS4507 Advanced Software Engineering

Software Process for QA

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

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

Models of Software Development

Transcription:

CSCI-485: Software Design Lecture 6 Note: Some slides adapted from Software Engineering by Ian Sommerville

Software Processes

Code-and-fix model Software process model used in the early days of computing (i.e., when software development was mainly a single-person usually a scientist task and the problem to be solved usually mathematical in nature was well understood) It has been the source of many difficulties and deficiencies It was ok at the time though, well understood simple applications The failure of this model in the new software age led to the recognition of the so-called software crisis and, in turn, to the birth of software engineering as a discipline

Prescriptive Models Prescriptive models advocate an orderly approach to software engineering That leads to a few questions If prescriptive process models strive for structure and order, are they inappropriate for a software world that thrives on change? Yet, if we reject traditional process models (and the order they imply) and replace them with something less structured, do we make it impossible to achieve coordination and coherence in software work?

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

Limitations of Models A model is just a model It abstracts away some aspects and highlights others Artificial constraints Compromises with model are often necessary (as with almost everything in SE) Risk of overemphasizing the process The process is not the end in itself Product delivery is

Waterfall model First described by Winston Royce in 1970

Waterfall model problems Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer 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 Waterfall model describes a process of stepwise refinement based on hardware engineering models Model derived from the hardware world, presenting a manufacturing view of software development

Waterfall model problems (cont d) Real projects rarely follow the sequential flow that the model proposes. Iteration always occurs and creates problems in the application of the paradigm It is often difficult for the customer to state all requirements explicitly. The classic life cycle requires this and has difficulty accomodating the natural uncertainty that exists at the beginning of many projects The customer must have patience. A working version of the program will not be available until late in the project timespan. A major blunder, if undetected until the working program is reviewed, can be disastrous If this model is pure fiction, why is it still the standard software process? Mainly because of its links to the traditional engineering model and ease of management

Waterfall model problems (cont d) Waterfall delays risk (CLASS DISCUSSION)

Formal systems development Based on the transformation of a mathematical specification through different representations to an executable program Transformations are correctness-preserving so it is straightforward to show that the program conforms to its specification Embodied in the Cleanroom approach (which was originally developed by IBM) to software development Requirements definition Formal specification Formal transformation Integration and system testing

Formal systems development Problems Need for specialised skills and training to apply the technique Difficult to formally specify some aspects of the system such as the user interface Applicability Critical systems especially those where a safety or security case must be made before the system is put into operation Use Outside specialized areas, this process is not widely used

Component-based software engineering Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems This approach is becoming more important but still limited experience with it

The Manifesto for Agile Software Development (CLASS DISCUSSION) (The Rise and Fall of Waterfall)