Lecture 3 Software Development Processes



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

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

Modelli di sviluppo software. Enrico Giunchiglia

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

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

Unit 1 Learning Objectives

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

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

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

Software Engineering. What is a system?

CSCI-485: Software Design

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

CS4507 Advanced Software Engineering

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

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

Software Engineering. Software Engineering. Software Costs

Software Life Cycle Processes

Chapter 3. Software Processes

Chapter 2 Software Processes

Software Processes. Topics covered

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

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

Software Project Models

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

Software Process Models. Xin Feng

Advanced Software Engineering. Software Development Processes

Foundations of software engineering

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

COMP 354 Introduction to Software Engineering

Software Engineering Reference Framework

Unit I. Introduction

IV. Software Lifecycles

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

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

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

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

A Comparison between Five Models of Software Engineering

Classical Software Life Cycle Models

How To Understand The Software Process

ASSESSMENT OF SOFTWARE PROCESS MODELS

Process Models and Metrics

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

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

CSE 435 Software Engineering. Sept 16, 2015

LECTURE 1. SYSTEMS DEVELOPMENT

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

Software Development Life Cycle (SDLC)

Software Development Processes. Software Life-Cycle Models

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

Software Production and Lifecycle Models

A Capability Maturity Model (CMM)

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

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

SOFTWARE DEVELOPMENT SD

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Chakra Vs Spiral Model - A Practical Approach

Title: Topic 3 Software process models (Topic03 Slide 1).

How To Model Software Development Life Cycle Models

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

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

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

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

A Process Model for Software Architecture

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

Software Development Process

Software Engineering Question Bank

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

Lecture Slides for Managing and Leading Software Projects. Chapter 2: Process Models for Software Development

A Review of an MVC Framework based Software Development

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

Lifecycle Models: Waterfall / Spiral / EVO

A Comparison Between Five Models Of Software Engineering

Surveying and evaluating tools for managing processes for software intensive systems

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

Chapter 4 Software Lifecycle and Performance Analysis

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

Software Development Process Models

CHAPTERS A NEW KNOT MODEL FOR COMPONENT BASED SOFTWARE DEVELOPMENT

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

Rapid Software Development

Chapter 3. Technology review Introduction

Software Process for QA

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

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

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

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

Test Cases Design for Software Database Provisioning Development

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

The profile of your work on an Agile project will be very different. Agile projects have several things in common:

2. Analysis, Design and Implementation

Increasing Development Knowledge with EPFC

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

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

Software Engineering

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

Basic Trends of Modern Software Development

Transcription:

Lecture 3 Software Development Processes Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte September 2, 2008

Lecture Overview Conclusion of Chapter 1 A Discipline of Software Engineering Design Terminology Software design as problem solving Abstraction Modeling Software development process (lifecycle) Software engineering design methods 2

The Big Picture: Design Methods Software design method procedure for generating a precise and complete software design solution that meets clients needs and constraints Design method components Design Process Collection of related tasks that transforms set of inputs into set of outputs Design Notations Symbolic representational system Design Heuristics Rules providing guidance, but no guarantee, for achieving some end Design methods also use design principles stating characteristics of design that make them better or worse 3

The Software Development Process A structured set of activities required to develop a software system Specification Design Validation Evolution Software Product Life Cycle Requirements Specification Design Implementation Product Design Engineering Design Validation Evolution Product Redesign and Engineering Redesign 4

Software Process So far, we ve considered common design activities as occurring sequentially Design is not always a purely sequential activity (and shouldn t be!!!) 5

Software Lifecycle Models A software process model is an abstract representation of a process Presents a description of a process from some particular perspective Provides guidance concerning order of and transitions between different phases of a project What should we do next? How long should we continue doing it 6

Generic Software Process Models The waterfall model Separate and distinct phases of specification and development Evolutionary development Specification and development are interleaved Incremental development Distinct phases, product delivered in increments Spiral development Risk-driven iterations that may use different models 7

Waterfall Model Requirements Specification System and Software Design Implementation & Unit Testing Integration & System Testing Evolution 8

Evaluating the Waterfall Model What are some of the issues faced when using this model? So, when is it useful? Software Product Life Cycle Requirements Specification Design Implementation When is it not? Validation Evolution 9

Evolutionary Development Exploratory development Evolve a final system from an initial outline specification Should start with well-understood requirements Throw-away prototyping Understand the system requirements Should start with poorly understood requirements 10

Evolutionary development Concurrent activities Specification Initial version Outline description Development Intermediate versions Validation Final version 11

Evaluating Evolutionary Development Problems Lack of process visibility Why? Resulting systems are often poorly structured Special skills may be required Languages for rapid prototyping Applicability Small or medium-size interactive systems Parts of large systems Short-lifetime systems Why? 12

Evaluating CBSE Fact 16: Reuse-in-the-large (components) remains a mostly unsolved problem, even though everyone agrees it is important and desirable. Robert Glass, F&F Fact 17: Reuse-in-the-large works best in families of related systems and thus is domain-dependent. This narrows the potential applicability of reuse-in-thelarge. -- Robert Glass, F&F 13

Process Iteration System requirements ALWAYS evolve We apply process iteration to deal with changing requirements Earlier stages in the development process are re-examined Iteration can be applied to any of the generic process models Two (related) approaches Incremental delivery Spiral development 14

Process Iteration: Incremental Delivery Development and delivery broken down into increments Each increment delivers part of required functionality Highest priority requirements in early increments Once the development of an increment starts, its requirements are frozen Requirements for later increments can change 15

Comparing Process Models 16

Process Iteration: Extreme Programming An approach to incremental development agile method Principles: Development and delivery of very small increments of functionality Constant code improvement User involvement in the development team Pairwise programming Collective ownership 17

Process Iteration: Spiral Development Process is represented as a spiral Each loop in the spiral represents a process iteration Activities within loops are adjusted based on what is required Risks are explicitly assessed and resolved throughout the process Evaluation at each loop Protoyping sometimes used to address risks Evaluation at milestones Artifacts and conditions Customer can terminate project Combines features of Waterfall and Evolutionary Provides formal phases of requirements, design, testing Supports prototyping at any point to address risks 18

Process Iteration: Spiral Model Image: www.blog.hydro4ge.com 19

Process Iteration: Spiral Model Sectors Objective setting Identify specific objectives for the phase Risk assessment and reduction Assess risk and identify activities to reduce key risks Prototyping may be used to clarify needs Development and validation Choose development model for the system Can be any of the generic process models Develop requirements/design Planning Customer reviews project Designers plan next phase of the spiral 20

Process Iteration: Evaluating Incremental Development Functionality can be delivered with each increment Early increments can act as a prototype Helps elicit requirements for later increments Helps to address risks Lower risk of overall project failure Why? Highest priority system services receive the most testing Why? 21

Specialized Process Models Formal systems development A mathematical system model is formally transformed to an implementation Reuse-based development The system is assembled from existing components 22

Formal Systems Development Transform a mathematical specification through different representations to an executable program Transformations are correctness-preserving Straightforward to show that program conforms to spec Embodied in the cleanroom approach to software development No need to test for defects 23

Evaluating Formal Systems Development Problems Need for specialized skills and training to apply the technique Difficult to formally specify some aspects of the system e.g, user interface Changes require new transformations and proofs Typically does not scale Applicability Critical systems (e.g., in terms of safety or security) 24

Reuse-oriented Development Based on systematic reuse where systems are integrated from existing components or COTS systems Process stages Component analysis Requirements modification System design with reuse Development and integration Requirements specification Component analysis Requirements modification System design with reuse Development and integration System validation 25

Summary Software processes are the activities involved in producing and evolving a software system Specification Design and Implementation Validation Evolution Software process models are a general way of describing specific processes Waterfall model Evolutionary development CBSE Formal specification Iterative process models help with changing requirements Approaches to iterative development Incremental delivery Spiral model 26

Next time Beginning the software development process Requirements elicitation Read Chapter 2 Especially notation for activity diagrams! 27