Software Life Cycle. Main Topics. Introduction

Similar documents
The Systems Development Lifecycle

3. Comparison of Above Described SDLC Models

Chapter 3 Prescriptive Process Models

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

Lecture 1. In practice, most large systems are developed using a. A software process model is an abstract representation

Objectives. The software process. Topics covered. Waterfall model. Generic software process models. Software Processes

The software process

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

CMPT 275 Software Engineering

Software Processes. Objectives. Topics covered. The software process. Waterfall model. Generic software process models

Topics covered. Software process models Process iteration Process activities The Rational Unified Process Computer-aided software engineering

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

Software processes. Software Applications A.Y. 2018/2019

Modern Systems Analysis and Design Seventh Edition

Agile Projects 7. Agile Project Management 21

Explore Comparative Analysis Software Development Life Cycle Models

Chapter 3 Software Process Model

CS 320 Introduction to Software Engineering Spring February 01, 2017

Software Engineering QUESTION BANK

SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)

03. Perspective Process Models

Process, Models, Methods, Diagrams Software Development Life Cyles. Part - II

Software Process. Overview

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

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

SOFTWARE ENGINEERING SOFTWARE-LIFE CYCLE AND PROCESS MODELS. Saulius Ragaišis.

CS350 Lecture 2 Software Dev. Life Cycle. Doo-Hwan Bae

Other Agile Approaches & Methodologies

CS 5704: Software Engineering

An Overview of Software Process

SWE 211 Software Processes

Requirements Engineering and Agile Methodology

Component-Based Software Engineering. ECE493-Topic 5 Winter Lecture 27 Component Based Development Process (Part A)

Chapter 1 Systems Development in an Organization Context

The good news. 34% of software projects succeed. Standish Group, CHAOS Report, 2003

Software Modeling & Analysis. - Fundamentals of Software Engineering - Software Process Model. Lecturer: JUNBEOM YOO

Chapter 3. Information Systems Development. McGraw-Hill/Irwin. Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved.

Software Engineering in the Agile World. Table of contents

AGILE DEVELOPMENT AND ITS IMPACT ON PRODUCTIVITY

Introduction to Software Engineering

MDA Legacy Modernization Case Study: State of Wisconsin Unemployment Insurance Division

Software LEIC. Lecture 23

Tuesday, October 25. Announcements

Software Engineering Part 2

Introduction of RUP - The Rational Unified Process

Chapter 2 Objectives. Pfleeger and Atlee, Software Engineering: Theory and Practice (edited by B. Cheng) Chapter 2.

Processes. Object Orientated Analysis and Design. Benjamin Kenwright

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

2009 Spring. Software Modeling & Analysis. - Software Process Model. Lecturer: JUNBEOM YOO

Software development activities

II. Software Life Cycle. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

Software Development Software Development Activities

The Software Life Cycle

QAIassist IT Methodology General Context

MODULE Explain briefly the different types of system models that might be created during the system analysis phase. 2. Write short notes on

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

Software Processes. CSE-C3610, Software Engineering, 5 cr. Prof. Casper Lassenius

Unified Process. Peter Dolog dolog [at] cs [dot] aau [dot] dk Information Systems March 3, 2008

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

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

Software Processes 1

Software Engineering

INTRODUCTION. Objectives. Unit 1: Introduction to Systems Analysis and Design. Key Ideas

Introduction to Agile Software Development

Software Methodologies

Chapter 8 : Informatics Practices. Software engineering- Process activities and Agile methods. Class XII ( As per CBSE Board) New Syllabus

Building Information Systems

Agile Software Development. Agile Software Development Basics. Principles of the Agile Alliance. Agile Manifesto. Agenda. Agile software development

Agile Software Development:

Business Analysis Essentials

Prerequisites It is recommended that the participants have a working knowledge of traditional Business Analysis tasks and techniques.

Development Process Bennett, McRobb and Farmer 1

Ingegneria del Software Corso di Laurea in Informatica per il Management

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

SDLC Models- A Survey

Rational Unified Process

04. Agile Development

Software Life Cycles and Configuration Management

The Product Creation Process

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

Ian Koenig Quality IS Projects, Inc. Philippines Chapter Project Management Institute June 8 th 2010

Processes and Life- Cycles. Kristian Sandahl

Note 10: Software Process

ABHELSINKI UNIVERSITY OF TECHNOLOGY

Introduction to Disciplined Agile Delivery

Software Engineering. M Umair.

By: Ronny Trefftzs CSCI 5828: Foundations of Software Engineering Spring 2012 Professor: Kenneth Anderson

Agile Essentials Track: Business Services

Agile Development Methodologies:

Course Title: Agile for Business Analysts

Agile. How would you implement agile methodologies and tools for web projects? What do you see as the benefits and challenges to doing this?

CONTENTS. Introduction to Software Engineering. Software Process and Life Cycle Models. Software Life-Cycle Model-2. Chapter 1. Chapter 2.

Sistemi ICT per il Business Networking

Course Title: Agile for Business Analysts

7. Model based software architecture

The Software Life Cycle

Introduction to Agile/Extreme Programming

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

Darshan Institute of Engineering & Technology for Diploma Studies Rajkot Unit-1

THE ADVANTAGES OF AGILE METHODOLOGIES APPLIED IN THE ICT DEVELOPMENT PROJECTS

Transcription:

Software Life Cycle Main Topics Study the different life cycle models Study the difference between software maintenance and evolution Study product line engineering as a design methodology 2 Introduction Software development projects are large and complex Proper control requires a phased approach to development Traditional models are document-driven: there is a new pile of paper after each phase is completed Evolutionary models recognize that much of what is called maintenance is inevitable Latest trend: agile methods, extreme Programming Life cycle models can be explicitly modeled, in a process modeling language 3

Simple life cycle model problem requirements engineering reqs specification design design implementation system working system maintenance 4 Point to ponder #1 Why does the model look like this? Is this how we go about it? 5 Simple Life Cycle Model document driven, planning driven, heavyweight milestones are reached if the appropriate documentation is delivered (e.g., requirements specification, design specification, program, test document) much planning upfront, often heavy contracts are signed Hard to adapt to changes 6

Waterfall Model reqs engineering V & V design V & V implementation V & V V & V maintenance V & V 7 Waterfall Model includes iteration and feedback validation (are we building the right system?) and verification (are we building the system right?) after each step user requirements are fixed as early as possible problems too rigid developers cannot move between various abstraction levels 8 V-Model reqs eng acceptance global design integration det. design unit coding 9

Activity versus phase Phase Activity Design Implementation Integration Acceptance Integration 4.7 43.4 26.1 25.8 Coding 6.9 70.3 15.9 6.9 Design 49.2 34.1 10.3 6.4 10 Agile Methods Model based development assumes complete or close to complete knowledge about the application s world Agile methods assume that the world is inherently undeterministic 11 The Agile Manifesto Individuals and interactions more important than processes and tools Working software more important than comprehensive documentation Customer collaboration more important than contract negotiation Responding to change more important than following a plan 12

Agile Methods Prototyping Incremental development Rapid application development (RAD), and the dynamic system development model (DSDM) extreme Programming (XP) 13 Prototyping Requirements elicitation is difficult software is developed because the present situation is unsatisfactory however, the desirable new situation is as yet unknown Prototyping is used to obtain the requirements of some aspects of the system 14 Prototyping Prototyping should be a relatively cheap process use rapid prototyping languages and tools (Functional but inefficient) not all functionality needs to be implemented production quality is not required 15

Prototyping as a tool for requirements engineering reqs engineering design design implementation implementation maintenance 16 Prototyping Approaches Throwaway prototyping: the n-th prototype is followed by a waterfalllike process Evolutionary prototyping: the nth prototype is the final system 17 Advantages of Prototyping The resulting system is easier to use The resulting system has fewer features User needs are better accommodated The design is of higher quality Problems are detected earlier The resulting system is easier to maintain The development incurs less effort 18

Disadvantages of Prototyping The resulting system has more features The design is of lower quality The performance of the resulting system is worse The resulting system is harder to maintain The prototyping approach requires more experienced team members 19 Prototyping, recommendations Users and designers must be well aware of the issues and the pitfalls Use prototyping when the requirements are unclear Use prototyping in situations where a heavy emphasis is placed on the user interface Prototyping needs to be planned and controlled as well 20 Incremental Development A software system is delivered in small increments, thereby avoiding the Big Bang effect The waterfall model is employed in each phase The user is closely involved in directing the next steps The most risky functionality is implemented first Incremental development prevents overfunctionality 21

Rapid Application Development (RAD) Evolutionary development, with time boxes: fixed time frames within which activities are done Time frame is decided upon first, then one tries to realize as much as possible within that time frame 22 Rapid Application Development (RAD) Utilizes a triage process to prioritize requirements into 4 categories: Must haves Should haves Could haves Won t haves 23 Rapid Application Development (RAD) Design and planning activities carried out jointly among developers and users in: Joint Requirements Planning (JRP) workshops Joint Application Design (JAD) workshops development by a SWAT team: Skilled Workers with Advanced Tools 24

Dynamic System Development Method (DSDM) A RAD framework Fundamental idea: fix time and resources (timebox), adjust functionality accordingly One needs to be a member of the DSDM consortium 25 DSDM Phases Feasibility: delivers feasibility report and outline plan Business study: use a series of joint workshops to develop a high level architecture 26 DSDM Phases (cont.) Functional model iteration: Identify activities to be performed Plan for performing the activities Perform the activities Verify the implementation of the activities Design and build iteration Implementation: transfer to production environment 27

DSDM practices Active user involvement is imperative Teams must be empowered Frequent delivery of products Acceptance determined by fitness for business purpose Iterative, incremental development All changes are reversible Requirements baselined at a high level Testing integrated in life cycle Collaborative, cooperative approach shared by all stakeholders is essential 28 extreme Programming (XP) Everything is done in small steps The system always compiles, always runs Clients and developers work collaboratively Development is often done by pairs of programmers, one of them watching over the other s shoulder 29 Principle practices of XP Rapid feedback Simplicity Incremental change Embracing change Quality work 30

Rational Unified Process (RUP) Complements UML (Unified Modeling Language) Relies on use cases for modeling requirements Tool-supported 31 RUP Phases Inception: establish scope, boundaries, critical use cases, candidate architectures, schedule and cost estimates Elaboration: foundation of architecture, establish tool support, get all use cases Construction: manufacturing process, one or more releases Transition: release to user community, often several releases 32 Two-dimensional Process Structure of RUP 33

MDA Model Driven Architecture model model maintenance implementation transformation code maintenance code 34 Essence of MDA 1. Computation independent model (CIM) 2. Platform Independent Model (PIM) 3. Platform Specific Model (PSM) 4. Code Transition from 1 to 2 is not automated, transitions from 2 to 3 and 3 to 4 are often automated 35 Maintenance or Evolution Maintenance like systems are not built from scratch there is time pressure on maintenance 36

Laws of Software Evolution Continuing change Increasing complexity Self regulation Conservation of organizational stability Conservation of familiarity Continuing growth Declining quality Feedback system 37 Software Product Lines Developers are not inclined to make a maintainable and reusable product, it has additional costs Generally, developers have no incentive for reuse This changes if the product family is the focus of attention rather than producing a single version of a product two processes result: domain engineering, and application engineering 38 Process Modeling The process itself is often modeled using one of several methods: Process programming languages State transition diagrams (typically in UML) Petri nets 39

Example Process Programming Language function review(document, threshold): boolean; begin prepare-review; hold-review{document, no-ofproblems); make-report; return no-of-problems < threshold end review; 40 Example UML Diagram coding ready submit ready for next step re-review review prepare ready do done make report ready report 41 Example Petri-net Representation from coding code ready hold review code update revised code end next step from management scheduled minutes 42

Purposes of Process Modeling facilitates understanding and communication by providing a shared view of the process supports management and improvement; it can be used to assign tasks, track progress, and identify trouble spots serves as a basis for automated support (usually not fully automatic) 43 Caveats of Process Modeling not all aspects of software development can be caught in an algorithm a model is a model, thus a simplification of reality progression of stages differs from what is actually done some processes (e.g. learning the domain) tend to be ignored no support for transfer across projects 44 Summary Traditional models focus on control of the process There is no one-size-fits-all model; each situation requires its own approach A pure project approach inhibits reuse and maintenance There has been quite some attention for process modeling, and tools based on such process models 45