The Software Life Cycle. CSE 308: Software Engineering



Similar documents
Software Development Process Models

Introduction to Software Engineering: Project Management ( Highlights )

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

When is Agile the Best Project Management Method? Lana Tylka

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

What is a life cycle model?

Software Engineering

Software Development Life Cycle (SDLC)

Classical Software Life Cycle Models

CSE 435 Software Engineering. Sept 16, 2015

Frank Tsui. Orlando Karam. Barbara Bernal. State. University. Polytechnic. Ail of Southern JONES & BARTLETT LEARNING

Software Development Process

Software Development Life Cycle at SSPL. An Summary of Methodologies We Offer

Building Software in an Agile Manner

Software Development Methodologies

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

Standardized software development model for SME software houses in Pakistan

Plan-Driven Methodologies

PLM - Agile. Design Code Test. Sprints 1, 2, 3, 4.. Define requirements, perform system design, develop and test the system. Updated Project Plan

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

Application of software product quality international standards through software development life cycle

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

A Capability Maturity Model (CMM)

How To Understand The Software Process

Agile Projects 7. Agile Project Management 21

Software Lifecycles Models

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

Supporting Workflow Overview. CSC532 Fall06

Information Technology Policy

Software Process and Models

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 Life Cycle Processes

CS4507 Advanced Software Engineering

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

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

Models of Software Development

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

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

(Refer Slide Time: 01:52)

Software Engineering. What is a system?

Software Life Cycles and Configuration Management

An Approach for assessing the Quality of Software for small and medium sized firms

System development lifecycle waterfall model

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

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

Metrics and scope management in agile projects

A Viable Systems Engineering Approach. Presented by: Dick Carlson

Development Methodologies

Alternative Development Methodologies

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

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

Product Development: From Conception to Execution. Slide 1

Timeboxing: A Process Model for Iterative Software Development

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

How To Model Software Development Life Cycle Models

Software Engineering Reference Framework

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

SOFTWARE DEVELOPMENT SD

Certified Software Quality Engineer (CSQE) Body of Knowledge

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

Establishing Great Software Development Process(es) for Your Organization. By Dale Mayes

Surveying and evaluating tools for managing processes for software intensive systems

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

Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan

Information Systems Development Process (Software Development Life Cycle)

Introducing Agility into a Phase Gate Process

Capability Maturity Model Software Development Using Cleanroom Software Engineering Principles - Results of an Industry Project

A Survey of Software Development Process Models in Software Engineering

AGILE vs. WATERFALL METHODOLOGIES

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Unit 1 Learning Objectives

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

0. INTRODUCTION 1. SCRUM OVERVIEW

USING DEFECT ANALYSIS FEEDBACK FOR IMPROVING QUALITY AND PRODUCTIVITY IN ITERATIVE SOFTWARE DEVELOPMENT

Using the Agile Methodology to Mitigate the Risks of Highly Adaptive Projects

Karunya University Dept. of Information Technology

Agile Project Management

Keywords Software Engineering, Software cost, Universal models. Agile model, feature of software projects.

JOURNAL OF OBJECT TECHNOLOGY

How To Plan An Agile Project

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

RUP for Software Development Projects

Agile Testing. What Students Learn

Building Ontology Networks: How to Obtain a Particular Ontology Network Life Cycle?

Agile Engineering Introduction of a new Management Concept

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

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

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

Moving from ISO9000 to the Higher Levels of the Capability Maturity Model (CMM)

Process Models and Metrics

Software Process Models. Xin Feng

Comparison study between Traditional and Object- Oriented Approaches to Develop all projects in Software Engineering

Software Engineering. An Introduction. Fakhar Lodhi

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

Transcription:

The Software Life Cycle CSE 308: Software Engineering 1

Life Cycle Models A software life cycle model represents all of the activities and work products necessary to develop a software system Life cycle models allow us to deal with the complexity of the software development process make activities and their dependencies visible 2

Model Dependencies Forward engineering use case model analysis and design models analysis, design models implementation, test models Reverse engineering existing code analysis & design models Round-trip engineering 3

Use case model specified by Analysis model realized by distributed by Design model implemented by Deployment model verified by Implementation model Test model 4

Brief Outline Typical life cycle activities (IEEE standard 1074) Capability Maturity Model Life cycle models waterfall, V-model, spiral, unified software process 5

Modeling Approaches Activity-centered focus on software development activities most life cycle models take this approach Entity-centered focus on the content and structure of work products 6

Activity-Centered View Problem definition activity System development activity System operation activity 7

Entity-Centered View Software development Market survey document Lessons learned document Requirements specification document Executable system 8

Merging Both Views Activity Work product Problem definition activity System development activity System operation activity consumes produces consumes produces consumes produces Market survey document Specification document Executable system Lessons learned document 9

IEEE 1074 Standard Describes activities and processes that are mandatory for software development and maintenance Establishes a common framework, with examples, for developing life cycle models Contains 17 processes, divided into 6 process groups 10

IEEE 1074 Process Groups Life Cycle Modeling Project Management Pre-Development Development Post-Development Integral 11

IEEE 1074 Process Groups Life Cycle Modeling Selection of a Life Cycle Model Project Management Pre-Development Development Post-Development Integral 12

IEEE 1074 Process Groups Life Cycle Modeling Project Management Pre-Development Project Initiation Project Monitoring and Control Software Quality Management Development Post-Development Integral 13

IEEE 1074 Process Groups Life Cycle Modeling Project Management Pre-Development Development Concept Exploration System Allocation Post-Development Integral 14

IEEE 1074 Process Groups Life Cycle Modeling Project Management Pre-Development Development Post-Development Requirements Design Implementation Integral 15

IEEE 1074 Process Groups Life Cycle Modeling Project Management Pre-Development Development Post-Development Integral Installation Operation and Support Maintenance Retirement 16

IEEE 1074 Process Groups Life Cycle Modeling Project Management Pre-Development Development Post-Development Integral Verification and Validation Software Configuration Management Documentation Development Training 17

Capability Maturity Model Measures the maturity of an organization with respect to the structure of its life cycle processes Five levels: Initial, Repeatable, Defined, Managed, Optimized Very few companies are at CMM level 5 SEI uses key process areas (KPAs) to enumerate requirements for each CMM level 18

Software Model Maturity Initial Ad-hoc No client/developer interaction Repeatable Project-specific models, not shared across an organization Client interacts at well-defined points in time Defined Organization-specific model, customized per project Client knows model 19

Software Model Maturity Managed Metrics for activities and deliverables are used to understand and analyze model Client knows measures, understands risks Optimized Measurement data are used as feedback to improve model over the organization Constant organization/client interaction 20

A Comparison of Life Cycle Models Waterfall Prototyping Iterative/Spiral Timeboxing Agile Methods (Extreme Programming) 21

The Waterfall Model Activity-centered life cycle model All development/management processes are executed sequentially Constant verification activity Simplistic model that measures progress by the number of steps completed Royce, Managing the Development of Large Software Systems 22

Project Initiation Process Concept Exploration Process System Allocation Process Requirements Process Design Process Implementation Process Verification & Validation Process Installation Process Operation & Support Process 23

Prototyping Used for risky/unfamiliar development tasks Addresses risk by developing an initial version to explore the problem space Plan to throw the first one away Use prototype to generate more stable requirements Low cost prototype: no testing, prioritized feature set 24

The Spiral Model Iterative model Adds risk management, reuse, and prototyping to waterfall activities Focuses on addressing risks incrementally Each round has four phases: identify objectives, manage risks, realize prototype, review and plan for next round 25

26

Timeboxing Goal: speed up output from iterative development by executing stages in parallel Analogous to instruction pipelining in CPU design Unit of development is a time box fixed-duration length of time divided into equal-length stages (one per task) each stage has a dedicated team Increases flexibility, but sensitive to disruptions 27

Timeboxing Execution Requirements Build Deploy Requirements Build Deploy Requirements Build Deploy Requirements Build Deploy 28

Timeboxing Work Allocation 29

Next Time Agile Methods Introduction to Extreme Programming Scrum (agile project management) 30