CSC 480 Software Engineering

Slides:



Advertisements
Similar presentations
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 12, Software Life Cycle.
Advertisements

Computer Science Department
Ch 3: Unified Process CSCI 4320: Software Engineering.
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Using UML, Patterns, and Java Object-Oriented Software Engineering 15. Software Life Cycle.
Software Life Cycle Sources:
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
CSE 470 : Software Engineering The Software Process.
Modeling the Process and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015.
Using UML, Patterns, and Java Object-Oriented Software Engineering 15. Software Life Cycle.
April 22, 2014CS410 – Software Engineering Lecture #19: The Software Life Cycle 1 The Software Life Cycle.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
CS 325: Software Engineering January 15, 2015 Software Process & Methodology Prototyping Process Model Evolutionary Process Model Spiral Process Model.
SYSC System Analysis and Design
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Chapter 15: Life Cycle Models
Object-oriented Analysis and Design
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
Incremental Model Requirements phase Verify Specification phase Verify
CMSC 345, Version 1/03 An Overview of Software Processes Reference: Software Engineering, by Ian Sommerville, 6 th edition, Chapter 3.
CEN 4010 Second Lecture January 23, 2006 CEN 4010 Introduction to Software Engineering Spring 2006 Instructor: Masoud Sadjadi
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
1 CMPT 275 Software Engineering Software life cycle.
Chapter 15, Software Life Cycle
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 15, Software Life Cycle.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Life-Cycle Models Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University
Conquering Complex and Changing Systems Object-Oriented Software Engineering Art for Chapter 12, Software Life Cycle.
1 Introduction to Software Development Process Lecture - 2.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Project Life Cycles.
1 Instructor: S. Masoud Sadjadi sadjadi At cs Dot fiu Dot edu Software Engineering and Project Communications.
CEN nd Lecture CEN 5011 Advanced Software Engineering Instructor: Masoud Sadjadi Software Life Cycle.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
Systems Analysis and Design in a Changing World, Fourth Edition
An Introduction to Software Engineering
Software Production ( ) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD)
Software Production Chapter 2: Identifying Software Development Activities.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
September 30, 2010COMS W41561 COMS W4156: Advanced Software Engineering Prof. Gail Kaiser
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Using UML, Patterns, and Java Object-Oriented Software Engineering 15. Software Life Cycle (Waterfall)
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
PI2134 Software Engineering IT Telkom.  Layered technology  Software Process  Generic Process (by Pressman)  Fundamental activities (by Sommerville)
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Production ( ) Lecture 3: Dr. Samer Odeh Hanna (PhD) office: 318.
Chapter 2 Software Development Model and 1. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
1 SYS366 Week 2 - Lecture Visual Modeling and Process.
Chapter 2- Software Development Process  Product Components  Software Project Staff  Software Development Lifecycle Models.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 15, Software Life Cycle.
Advanced Software Engineering Dr. Cheng
Object-Oriented Analysis & Design
Object-Oriented Software Engineering Using UML, Patterns, and Java,
SNS College of Engineering Coimbatore
IEEE Std 1074: Standard for Software Lifecycle
Dr. Samer Odeh Hanna (PhD)
CS101 Introduction to Computing Lecture 20 SW Development Methodology
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
CEN 5011 Advanced Software Engineering
15. Software Life Cycle.
Presentation transcript:

CSC 480 Software Engineering Software Process Models

Outline Software Life Cycle Waterfall model and its problems Pure Waterfall Model V-Model Iterative process models Boehm’s Spiral Model USDP (Unified S/W Dev. Process)

What we intend Requirements Software One of the problems with complex system design is that you cannot foresee the requirements at the beginning of the project. In many cases, where you think you can start with a set of requirements, that specifies the completely the properties of your system you end up with.... Software

Our plan of attack Requirements Analysis Design Implementation Testing Delivery and Installation

How it often goes Requirements Analysis D E L A Y Vaporware

Inherent Problems w/ S/W Dev. Requirements are complex Business processes to be automated are complex and changing with the business environment The client does not know the functional requirements in advance Requirements may be changing Technology enablers introduce new possibilities to deal with nonfunctional requirements Frequent changes are difficult to manage Identifying milestones and cost estimation is difficult

Definitions Software lifecycle modeling: Attempt to deal with complexity and change Software lifecycle: Set of activities and their relationships to each other to support the development of a software system Software development methodology: A collection of techniques for building models - applied across the software lifecycle

Software Life Cycle Software construction goes through a progression of states Conception Childhood Adulthood Retirement Pre- Development Post- Development Development

IEEE Std 1074: Standard Process Group Processes IEEE Std 1074 Project Management Pre- Development Develop- ment Post- Development Cross- Development (Integral Processes) > Project Initiation >Project Monitoring &Control > Software Quality Management > Requirements Analysis > Design > Implemen- tation > Concept Exploration > System Allocation > Installation > Operation & Support > Maintenance > Retirement > V & V > Configuration Management > Documen- tation > Training Processes

Processes, Activities & Tasks Process Group: Consists of Set of Processes Process: Consists of Activities Activity: Consists of sub activities and tasks Development Process Group Process Design Activity Design Database Task Make a Purchase Recommendation

Example The Design Process is part of Development Process Group The Design Process consists of the following Activities Perform Architectural Design Design Database (If Applicable) Design Interfaces Select or Develop Algorithms (If Applicable) Perform Detailed Design (= Object Design) The Design Database Activity has the following Tasks Review Relational Databases Review Object-Oriented Databases Make a Purchase recommendation ....

A Use Case Model

Activity-centered View Software development goes through a linear progression of states called software development activities

Entity-centered view Software development consists of the creation of a set of deliverables

Combined view

UML Class Diagram of the IEEE Standard

Life Cycle Modeling Many models have been proposed to deal with the problems of defining activities and associating them with each other The first model proposed was the waterfall model [Royce 1970]

Life-Cycle Model: Variations on a Theme Many models have been proposed to deal with the problems of defining activities and associating them with each other The waterfall model First described by Royce in 1970 There seem to be at least as many versions as there are authorities - perhaps more

The Waterfall Model of the Software Life Cycle Requirements Process System Allocation Concept Exploration Design Implementation Installation Operation & Support Process Verification & Validation adapted from [Royce 1970]

Problems with Waterfall Model Managers love waterfall models: Nice milestones No need to look back (linear system), one activity at a time Easy to check progress : 90% coded, 20% tested Different stakeholders need different abstractions => V-Model Software development is iterative During design problems with requirements are identified During coding, design and requirement problems are found During testing, coding, design& requirement errors are found => Spiral Model System development is a nonlinear activity => Issue-Based Model In practice, software development is not sequential The development stages overlap The tendency to freeze parts of the development leads to systems the client does not want and which are badly structured as design problems are circumvented by tricky coding

From the Waterfall to the V Model System Testing Unit Integration Acceptance Requirements Engineering Requirements Analysis System Design Object Design Implemen- tation Integration Testing System Testing Unit

Activity Diagram of a V Model Is validated by precedes The V-model is a variation of the waterfall model that makes explicit the dependency between development activities and verification activities. The difference between the waterfall model and the V model is that the latter makes explicit the notion of level of abstraction. Allactivities from requirements to implementation focus on building more and more detailed representation of the system, whereas all activities from implementation to operation focus on validating the system. Problem with the V-Model: Developers Perception = User Perception

V Model: Level of Detail Low High Client’s Understanding Developer’s Understanding Requirements Elicitation Acceptance Testing Low Problem with V-Model: Client’s Perception is the same as the Developer’s Perception System Testing Analysis The V-model is a variation of the waterfall model that makes explicit the dependency between development activities and verification activities. The difference between the waterfall model and the V model is that the latter makes explicit the notion of level of abstraction. Allactivities from requirements to implementation focus on building more and more detailed representation of the system, whereas all activities from implementation to operation focus on validating the system. Distinguishes btw Development and Verification Activities Design Integration Testing Object Design Unit Testing High Project Time

Problems with V Model The V model and its variants do not distinguish temporal and logical dependencies, but fold them into one type of association In particular, the V model does not model iteration

Properties of Waterfall-based Models Managers love waterfall models: ... (see previous slide) Easy to check progress during development: 90% coded, 20% tested However, software development is nonlinear While a design is being developed, problems with requirements are identified While a program is being coded, design and requirement problems are found While a program is tested, coding errors, design errors and requirement errors are found In practice, software development is not sequential The development stages overlap The tendency to freeze parts of the development leads to systems the client does not want and which are badly structured as design problems are circumvented by tricky coding

Spiral Model Deals with Iteration 18 The spiral model proposed by Boehm is an iterative model with the following activities Determine objectives and constraints Evaluate Alternatives Identify risks Resolve risks by assigning priorities to risks Develop a series of prototypes for the identified risks starting with the highest risk. Use a waterfall model for each prototype development (“cycle”) If a risk has successfully been resolved, evaluate the results of the “cycle” and plan the next round If a certain risk cannot be resolved, terminate the project immediately

Spiral Model Project P1 Project P2

Unified Model