CMPT 275 Software Engineering

Similar documents
03. Perspective Process Models

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

SDLC Models- A Survey

Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at

Chapter 3 Software Process Model

SWE 211 Software Processes

Introduction to Software Engineering

Software Life Cycle. Main Topics. Introduction

The Top Thrill Dragster

Software Development Life Cycle:

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

Selecting Software Development Life Cycles. Adapted from Chapter 4, Futrell

A New Divide & Conquer Software Process Model

Introduction to Software Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 06 09/08/2016

DRAFT. Effort = A * Size B * EM. (1) Effort in person-months A - calibrated constant B - scale factor EM - effort multiplier from cost factors

Software Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

Case Study: How to Eliminate Flaws of Waterfall and Agile Development Processes Using a Hybrid Model

LIFE-CYCLE MODELS AND PROCESS. Software Engineering 1/9/2008. CHAPTER 1, 2, and 3. Stephen R. Schach

Pertemuan 2. Software Engineering: The Process

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF INFORMATION TECHNOLOGY QUESTION BANK

18-642: Software Development Processes

Research Article / Paper / Case Study Available online at: Analysis of Strengths and Weakness of SDLC Models Shikha Verma Delhi India

Rekayasa Perangkat Lunak 2 (IN043): Pertemuan 10. * Construction, Installation and Operations * Agile Method Software Development

Chapter. Redesigning The Organization With Information Systems

Object-Oriented and Classical Software Engineering

Learning Objectives. Agile Modeling and. Major Topics. Prototyping. Patched Up Prototype. Agile Modeling, but First. Prototyping

Based on Software Engineering, by Ian Sommerville Coherent sets of activities for specifying, designing, implementing and testing software systems

Introduction to Software Life Cycles and Agile. CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014

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

Installation and Maintenance of Health IT Systems

Software Development Methodologies. CSC 440: Software Engineering Slide #1

Part 1. Software engineering Facts. CSC 4181 Compiler Construction Software Engineering Lectures. What is software engineering? What is software?

TECHNICAL REVIEWS AND AUDITS

Introduction to Systems Analysis and Design

Sistemi ICT per il Business Networking

Object-Oriented and Classical Software Engineering THE SOFTWARE PROCESS 9/17/2017. CHAPTER 3 Slide 3.2. Stephen R. Schach. Overview Slide 3.

The Basic Waterfall Model. Software Process Models. Concurrent Development. (Concurrent Development) The Agile Critique of the Waterfall

Lectures 2 & 3. Software Processes. Software Engineering, COMP201 Slide 1

Waterfall model is the earliest SDLC approach that was used for software development.

[Name] [ ID] [Contact Number]

SE420 Software Quality Assurance

V Model material adapted from Steve Easterbrook. Waterfall Model material adapted from Steve Easterbrook. Lifecycle of Software Projects

Criteria for Method Selection and Process Design of a Technical Development Strategy

Number: DI-IPSC-81427B Approval Date:

Prof. Dr. Liggesmeyer, 1. Quality Management of Software and. Processes and QM. Systems. QMSS Processes and QM

Oracle Unified Method (OUM) Using OUM with Agile Techniques. Jan Kettenis Oracle Global Methods Oracle Consulting Netherlands

Command and Control Software Development Lessons Learned. Lt Col Michael D. Sarchet Deputy Director, Space Systems Command and Control Division

Agile Development Doesn t Have to Mean Fragile Enterprise Processes

Software Engineering Lecture 5 Agile Software Development

Introduction to Agile/Extreme Programming

Copyright Software Engineering Competence Center

Identification of. 2 (25) - SOFTWARE ARCHITECTURE ATAM: Method for Architecture Evaluation - Sven Arne Andreasson - Computer Science and Engineering

Component-based Development Process and Component Lifecycle

Agile Project Management

Analysis of Spiral Model in Software Projects for the Software Houses of Pakistan

An Evolutionary Lifecycle Model with Agile Practices for Software Development at ABB

Quality Management of Software and Systems: Processes and QM

Object-Oriented & Classical Soft Engineering

INF5181: Process Improvement and Agile Methods in Systems Development

Redesigning the Organization with Information Systems

ICS 52: Introduction to Software Engineering

Scrum, Creating Great Products & Critical Systems

2 Why is systems development difficult and risky? 3 How do businesses use the systems development life cycle (SDLC) process?

[control] [data] [process] [strategy] [partners] [testing] [validation]

Information Systems Development

by Craig Larman and Bas Vodde Version 1.1

Scrum. Software Engineering and. The Waterfall model. The Waterfall model - some arguments. The Waterfall model - some arguments. Time.

Objectives. Rapid software development. Topics covered. Rapid software development. Requirements. Characteristics of RAD processes

ISTQB Sample Question Paper Dump #11

AGILE SOLUTIONS. Agile Basics

Requirements Engineering and Agile Methodology

7. What is planning? It is an act of formulating a program for a definite course of action. Planning is to decide what is to be done.

The Product Creation Process

Some Well Known Software Development Life Cycle Models

SE420 Software Quality Assurance

Expand application range with respect to consider the whole system. Consider state of the art and adapt actual regulations and standards

Contents. Today Project Management. What is Project Management? Project Management Activities. Project Resources

The Agile PMP Teaching an Old Dog New Tricks

Reducing Business Risk

SUSE Unified Delivery Process

Lean Agile Methodologies Accentuate Benefits of Cloud Computing Yash Talreja, President, The Technology Gurus

D25-4. How Intertech Uses Agile

Software System Integration. Chapter 8 Software testing 1

Chapter 6: Software Evolution and Reengineering

Scrum and Agile Processes. Dr.-Ing. Oliver Ciupke Haufe-Lexware GmbH & Co. KG 2011

Chapter 2: The Project Management and Information Technology Context

Software Engineering II - Exercise

Attribute-Driven Design Method

SOFTWARE ENGINEERING

What are requirements? Basics of Requirement Engineering. Definition of a Stakeholder. Stated Vs. Real Requirements. Stated Vs.

Use Cases and User Stories for Agile Requirements

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Evolutionary Differences Between CMM for Software and the CMMI

Application of an Agile Development Process for EN50128/railway conformant

When the Business Wants Waterfall Implementing Agile in a Phase-Based Environment

The effect of moving from a plan-driven to an incremental software development approach with agile practices

Task 1: Multiple Choice (25%)

Software Engineering Fall 2014

Agile Plus Comprehensive model for Software Development

Agile Tutorial for the Senior Project Class School of Computing and Information Sciences Florida International University

Transcription:

CMPT 275 Software Engineering Software life cycle 1 Software Life Cycle Sequence of processes completed as a software project moves from inception to retirement At beginning of project development, choose Software development paradigm Software development process model Define the order/manner in which software life cycle processes are performed Then you are ready to start software specification, design, implementation, validation Janice Regan, 2008 2 Development Processes Next we will discuss a list of processes that need to occur some time during the lifetime of a project. The exact order of the processes and the number of times the processes are done will vary according to the process model developed Some processes can be considered to happen before, during or after development Other process occur at any time during development Janice Regan, 2008 3 1

Processes For each process we consider we will decide/indicate when the process will most likely occur, give a name for the process, and give a list (partial?) of activities that comprise the process WHEN: before, during, after development Name of process List of activities Janice Regan, 2008 4 Development Processes - 1 WHEN: before development Concept Exploration Identifying idea and need for a product Formulate possible approaches to solution (high level only) Determining feasibility, identifying and mitigating risks promotion concept and setting up funding/support Janice Regan, 2008 5 Development Processes - 2 WHEN: before development System allocation Estimating, planning and identifying staffing needs for each phase Determine system architecture Janice Regan, 2008 6 2

Development Processes - 3 WHEN: during development Requirements Analysis gathering, specifying and analyzing the requirements. Defining functionality and scope (limits on functionality) Define interface requirements Prioritize requirements Validate and Verify requirements Janice Regan, 2008 7 Development Processes - 4 WHEN: during development System and Software Design Design how software will be structured internally Establish system architecture Select or develop algorithms (if needed) Describe software system abstractions and relationships Analysis of the design and verification that the design meets the requirements Janice Regan, 2008 8 Development Processes - 5 WHEN: during development Implementation: Programming (and building) Verification that implemented software meets all requirements Plan unit implementation and integration (implementation/test) Create user manual (operating instructions) Janice Regan, 2008 9 3

Development Processes - 6 WHEN: during development Testing (verification of implementation phase) Testing modules (unit test) Testing combinations of modules (integration test) Testing the whole system (system test) Janice Regan, 2008 10 Development Processes - 7 WHEN: post development Installation Installation at user site (plan test accept) User testing, verifying user needs are met (includes user acceptance test or UAT) Errors corrected, bugs fixed Janice Regan, 2008 11 Development Processes - 8 WHEN: post development Operation and Support (maintenance) Software enhanced (new features, new requirements) Errors corrected, bugs fixed Evolution to newer platforms (newer OS, hardware) Retirement: post development Janice Regan, 2008 12 4

Integral Processes Integral processes take place during all phases of development Verification and Validation: Software Configuration and Management Configuration Control, Revision management Tracking and control of changes Documentation development / distribution Training Plan, Develop, Validate, Implement training program Janice Regan, 2008 13 Life cycle models Combine the development processes and activities in different ways (different order, once or repeated ) to model the life cycle of a project By making models of the life cycle of successful software projects can help us design better approaches to plan the life cycle of future projects There are several generic life cycle models that are often used or used as a basis for design of custom life cycle models Janice Regan, 2008 14 Generic Life Cycle models Sequential (activity centered) Perspective The waterfall method V model Iterative (activity centered) development Evolutionary Spiral Janice Regan, 2008 15 5

Types of Generic Process Models - 2 Component Based Perspective Focus on applying reusable components (most already exist) Rational Unified Process Combines aspects of all three perspectives Useful for large systems Janice Regan, 2008 16 Waterfall Process Model Project Initiation Concept Exploration System Allocation Requirements Design Implementation Verification Validation Installation Operation & Support Janice Regan, 2008 17 Waterfall Process Model Project Planning Requirement Analysis Design Implementation Testing Maintenance Janice Regan, 2008 18 6

V Model System Requirements Allocation Requirements Elicitation Requirements Analysis Preliminary Design Component Integration/test Operation Client Acceptance System Integration/test Detailed Design Unit Test Implementation Janice Regan, 2008 19 Why a Waterfall Process Model? Phases (processes) are performed once Makes the process easy to follow One phase should not be started until the previous one is complete Makes the process easy to manage Documents need only be produced and approved once (this is a costly process) Parallels other engineering process models The waterfall method should only be used if the requirements are well understood Janice Regan, 2008 20 Why not? Impractical to fully complete any one of the phases before starting the next one difficult to capture all requirements before proceeding to design Users don t get to see the results until the end problems may emerge only at the end when user realizes the product is not what was needed Janice Regan, 2008 21 7

Fixing the problems How can we modify these sequential life cycle model to address these problems Prototypes can be useful to show to the user to catch problems before implementation can also be misleading as the client must understand that the system is not almost ready Allow for return to earlier processes to update models to include changes to fix deficiencies found in later processes: incorporate iteration Allow for an incremental approach of developing a basic solution, then adding additional functionality Janice Regan, 2008 22 Modified Waterfall Model Project Planning Requirement Analysis Design Add some iteration Implementation Testing Maintenance Janice Regan, 2008 23 Evolutionary model Iterative and incremental (many waterfalls) Software system to be developed is partitioned into development phases (sub goals) that include some user driven subset of the functionality of the entire project (e.g. Critical Functionality, Required Functionality, Desired Functionality) Each phase has its own requirements analysis followed by design, implementation, and testing Each phase adds additional functionality to the project Janice Regan, 2008 24 8

Boehm s spiral model Unit Test and test System Acceptance test test Janice Regan, 2008 25 After Boehm, 1987 Spiral model Round 0: Feasibility study Round 1: Requirements development Round 2 : Development / test of system Risk analysis aspect is critical. In any round development can stop is risk is too high Requirements clearly defined and completely defined, risks are all low and a single round of development reduces to a waterfall Requirements clearly defined, but lowest risk in 1 st round, higher in 2 nd reduces to evolutionary Janice Regan, 2008 26 Evolutionary Process Model - 1 Advantages: Helps assure modularity and maintainability Each version built on tested results of a previous version User/client feedback of first iteration (could be a prototype) provides opportunity to catch potential problems, or misunderstanding early Helps improve project time estimation Record time taken during first iteration Helps produce better estimations for next iterations Test plans can be expanded for new functionality in later iterations Janice Regan, 2008 27 9

Evolutionary Process Model - 2 Disadvantages: Because of overlapping iterations Synchronizing documentation Management overhead Janice Regan, 2008 28 Programming Paradigm The process life cycle models we have discussed were developed before the OO paradigm came into common use Some models can be adapted to the new paradigm What about life cycle models specifically for the OO paradigm? Janice Regan, 2008 29 OO: Dividing Tasks During requirements analysis identify requirements or groups of requirements that have different priorities. As an example Core functionality (for OO a few use cases) Necessary additional functionality (for OO add use cases) Desired additional functionality ( for OO add more use cases) Janice Regan, 2008 30 10

OO: Incremental Development A proposed approach for the example: Develop the Core functionality. Get feedback from the client As a second iteration/increment add the necessary additional features, repeat the linear sequential process. Get more feedback Finally (time permitting) complete a third iteration/increment to add the desired additional functionality Janice Regan, 2008 31 Prototyping Build a mock up of the system for evaluation by client Helps confirm you are on the right track Mock-ups may be throwaway, that is rapidly constructed, (usually in a modeling language too inefficient for the final system) to illustrate the functionality of the system Mockups may be incremental, demonstrating some aspects of the system Beware the client may see the mock-up as an almost finished product, not a tool for interactive development with input from the client Janice Regan, 2008 32 Agile development: Scrum Please refer to an excellent online summary and video at http://scrumreferencecard.com/scrumreference-card/ http://scrumtrainingseries.com/intro_to_ Scrum/Intro_to_Scrum.htm Janice Regan, 2008 33 11

SCRUM Three roles Project owner has overview of entire project (might include multiple scrum teams) Scrum manager (no management authority, a facilitator) Scrum team (ideally small < 6) a group of developers with a variety of skills Janice Regan, 2008 34 Scrum: incremental development Task are kept in a backlog Scrum team accepts tasks (features) from backlog as they are ready to deal with them. Develop working system by adding one feature or one small group of features at a time. Janice Regan, 2008 35 12