SOFTWARE PROCESS MODELS



Similar documents
Object-Oriented and Classical Software Engineering

Software Engineering. An Introduction. Fakhar Lodhi

Development Methodologies

Software Life-Cycle. Series of steps through which software product progresses. A life-cycle is selected during requirement Phase

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

Life-Cycle Model. Software Life-Cycle Models. Software Development in Theory. Software Development in Practice

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

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

CHAPTER 02 SOFTWARE LIFE-CYCLE MODELS

Slide 2.1. Slide 2.3. Slide 2.5

Object-Oriented and Classical Software Engineering

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

CS4507 Advanced Software Engineering

3C05: Unified Software Development Process

Software Development Life Cycle (SDLC)

CHAPTER 3 : AGILE METHODOLOGIES. 3.3 Various Agile Software development methodologies. 3.4 Advantage and Disadvantage of Agile Methodology

A Capability Maturity Model (CMM)

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

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

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

Supporting Workflow Overview. CSC532 Fall06

CSE 435 Software Engineering. Sept 16, 2015

Software Life Cycle Processes

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

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

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

Plan-Driven Methodologies

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

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

Software Project Management using an Iterative Lifecycle Model

Classical Software Life Cycle Models

I219 Software Design Methodology

2. Analysis, Design and Implementation

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

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

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

System development lifecycle waterfall model

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

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

Software Development Life Cycle

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

2. Analysis, Design and Implementation

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

Process Models and Metrics

Agile and Secure: Can We Be Both?

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

Agile Processes and Methodologies: A Conceptual Study

Agile Software Development Methodologies and Its Quality Assurance

An Agile Project Management Model

Software Development Process

The Unified Software Development Process

Advanced Software Engineering. Software Development Processes

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

COMP 354 Introduction to Software Engineering

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

How To Understand The Software Process

Singhania University, Jhunjhunu, Rajasthan, India. 2 Department of Information Technology King Abdul Aziz University, Jeddah, Saudi Arabia

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

Software Process. Process: A sequence of activities, subject to constraints on resources, that produce an intended output of some kind.

Karunya University Dept. of Information Technology

Software processes that are:

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

Software Development with Agile Methods

Software Engineering. What is a system?

Agile Methodologies and Its Processes

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming

6 Contracts and Scenarios in the Software Development Process

A Comparison between Five Models of Software Engineering

Comparing Agile Software Processes Based on the Software Development Project Requirements

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

The Essence of Software Engineering: Applying the SEMAT Kernel. Scott Ambler interviews Ivar Jacobson

Software Development Methodologies

Software Design Models, Tools & Processes *

Software Development Processes. Software Life-Cycle Models

CMMI - The AGILE Way By Hitesh Sanghavi

COMPARATIVE STUDY ON SOFTWARE PROJECT MANAGEMENT MODELS

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

Software Development Methodologies in Industry. By: Ahmad Deeb

Quality Assurance Software Development Processes

Development Methodologies. Types of Methodologies. Example Methodologies. Dr. James A. Bednar. Dr. David Robertson

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

The Spiral development model is a risk-driven process model generator. It

Contents. 3 Agile Modelling Introduction Modelling Misconceptions 31

Software Process and Models

Extreme Programming, an agile software development process

RUP for Software Development Projects

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

Extreme Programming, an agile software development process

Agile and Secure: OWASP AppSec Seattle Oct The OWASP Foundation

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

Abstract. 1 Introduction

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Transcription:

SOFTWARE PROCESS MODELS Slide 1

Software Process Models Process model (Life-cycle model) - steps through which the product progresses Requirements phase Specification phase Design phase Implementation phase Integration phase Maintenance phase Retirement Slide 2

Overview Different process models Build-and-fix model Waterfall model Incremental model Evolutionary process models o Rapid prototyping model o Spiral model Agile process models o Extreme programming Synchronize-and-stabilize model Object-oriented life-cycle models o Fountain Model o Unified Process Slide 3

Build-and-Fix Model Problems No specifications No design Totally unsatisfactory High cost Difficult maintenance Slide 4

Waterfall Model Only model widely used until early 1980s Characterized by Feedback loops Documentation-driven Slide 5

Waterfall Model (contd) Advantages Enforces disciplined approach o Documentation for each phase o Products of each phase checked by SQA group Maintenance is easier o Every change reflected in the relevant documentation Disadvantages Working version of the software will not be available until late in the project time-span Specifications are long, detailed, written in a style unfamiliar to the client Blocking states some project team members must wait for other team members to complete dependent tasks Slide 6

Incremental Model Divide project into builds modules interacting to provide a specific functionality Typical product - 5 to 25 builds Slide 7

Incremental Model (contd) Waterfall and rapid prototyping models Deliver complete product at the end Incremental model Deliver portion of the product at each stage Advantages Less traumatic Smaller capital outlay, rapid return on investment Open architecture maintenance implications Disadvantages Easily can degenerate into build-and-fix model Contradiction in terms Slide 8

Incremental Model (contd) Concurrent incremental model more risky version pieces may not fit Slide 9

Rapid Prototyping Model First step - construct the prototype as rapidly as possible Only those aspects of the software that will be visible to the customer/user Linear model no feedback loops Slide 10

Rapid Prototyping Model (contd) Rapid prototype Used in the requirements phase Evaluated by the customer/user Then, it is discarded - do not turn into product Rapid prototyping model is not proven and has its own problems Possible solution o Rapid prototyping for defining requirements o Waterfall model for rest of life cycle Slide 11

Spiral Model Minimize risk via the use of prototype and other means Simplified form - Waterfall model plus risk analysis Precede each phase by Alternatives Risk analysis Follow each phase by Evaluation Planning of next phase Slide 12

Simplified Spiral Model If risks cannot be resolved, project may be terminated immediately Slide 13

Full Spiral Model (contd) Radial dimension - cumulative cost to date Angular dimension - progress through the spiral Slide 14

Analysis of Spiral Model Strengths Answers the question How much to test? in terms of risk No distinction between development and maintenance (another cycle of the model) Weaknesses Internal (in-house) development only o For contract software, all risk analysis must be performed before the contract is signed, not in the spiral model Large-scale software only o For small software performing risk analysis would significantly affect the profit potential Slide 15

Agile Process Models Agile software engineering combines a philosophy and a set of development guidelines Philosophy o o o o o Encourages customer satisfaction and early incremental delivery of the software Small highly motivated project teams Informal methods Minimal software engineering work products Overall development simplicity Development guidelines o Stress delivery over analysis and design o Active and continuous communication between developers and customers Slide 16

Agile Process Models (contd) There are many agile process models Extreme Programming (XP) Adaptive Software Development (ASD) Dynamic System Development Method (DSDM) Scrum Crystal Feature Driven Development (FDD) Agile Modeling (AM) Reading: Choose Agile Methods from http://www.computer.org/portal/site/seportal/index.jsp Slide 17

Extreme Programming (XP) Somewhat controversial new approach; variation of the incremental model First step Determine features that client wants (stories) Estimate duration and cost of each feature Client selects stories for each successive build Each build is divided into tasks Test cases for a task are drawn up Pair programming working with a partner on one screen Continuous integration of tasks Slide 18

Extreme Programming (contd) http://www.extremeprogramming.org/ Slide 19

Features of XP Computers are put in center of large room lined with cubicles Client representative works with the XP team at all the times Individual cannot work overtime for 2 successive weeks There is no specialization all members of the XP team work on specification, design, code, and testing There is no overall design phase before various builds are constructed refactoring Slide 20

Features of XP Advantages Useful when requirements are vague or changing Emphasis on teamwork and communication Programmer estimates before committing to a schedule Continuous measurement; frequent, extensive testing Disadvantages Limited to small products and small teams - can be disastrous when programs are larger than a few thousand lines of code or when the work involves more than a few people. Lack of design documentation Lack of a structured review process Slide 21

Synchronize-and-Stabilize Model Microsoft s life-cycle model version of incremental model Requirements analysis interview potential customers; list of features with priorities Draw up specifications Divide project into 3 or 4 builds Each build is carried out by small teams working in parallel Slide 22

Synchronize-and-Stabilize Model (contd) At the end of the day synchronize (put together partially completed components; test and debug) At the end of the build stabilize (fix the remaining faults; freeze build) Advantages Components always work together Early insights into operation of product Model can be used even the initial specification is incomplete Slide 23

Object-Oriented Life-Cycle Models Need for iteration within and between phases Fountain model Unified software development process All incorporate some form of Iteration Parallelism Incremental development Slide 24

Fountain Model Overlap (parallelism) Arrows (iteration) Smaller maintenance circle Slide 25

Unified Process Unified process is a framework for OO software engineering using UML (Unified Modeling Language) Book by Ivar Jacobson, Grady Booch, and James Rumbaugh (1999) Unified process (UP) is an attempt to draw on the best features and characteristics of conventional software process models, but characterize them in a way that implements many of the best principles of agile software development Slide 26

Unified Process: Phases Inception phase Encompasses the customer communication and planning activities Rough architecture, plan, preliminary use-cases Elaboration phase Encompasses the customer communication and modeling activities Refines and expands preliminary use-cases Expands architectural representation to include: use-case model, analysis model, design model, implementation model, and deployment model The plan is carefully reviewed and modified if needed Construction phase Analysis and design models are completed to reflect the final version of the software increment Using the architectural model as an input develop or acquire the software components, unit tests are designed and executed, integration activities are conducted Use-cases are used to derive acceptance tests Slide 27

Unified Process: Phases Transition phase Software is given to end-users for beta testing User report both defects and necessary changes Support information is created (e.g., user manuals, installation procedures) Software increment becomes usable software release Production phase Software use is monitored Defect reports and requests for changes are submitted and evaluated Slide 28

Unified Process: Major work products Inception phase Vision document Initial use-case model Initial project glossary Initial business case Initial risk assessment Project plan phases and iterations Business model if necessary One or more prototypes Elaboration phase Use-case model Supplementary requirements, including non-functional Analysis model Software architecture description Executable architectural prototype Preliminary design model Revised risk list Project plan including iteration plan adapted workflows milestones technical work products Preliminary user manual Slide 29

Unified Process: Major work products Construction phase Design model Software components Integrated software increment Test plan and procedure Test cases Support documentation user manuals installation manuals description of current increment Transition phase Delivered software increment Beta test reports General user feedback Slide 30

Conclusions Different process models, each with its own strengths and weaknesses Criteria for deciding on a model include Organization Its management style Skills of the employees Product nature Slide 31