September 30, 2010COMS W41561 COMS W4156: Advanced Software Engineering Prof. Gail Kaiser

Slides:



Advertisements
Similar presentations
Software Processes.
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Unit 2. Software Lifecycle
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.
Software Processes Modified by Randy K. Smith
Chap 2. Software Processes
What is software? Computer programs and associated documentation
Chapter 2 Software Processes (1/2) Yonsei University 2 nd Semester, 2014 Woo-Cheol Kim.
CSE 470 : Software Engineering The Software Process.
1 Chapter 2 Software Processes An overview of conventional software process models, Rational Unified Process, and CASE tools.
EE6421/ED5031Software Engineering Slide 1 Section # 2 (Read Sommerville Ch (3 or 4) and Pressman Ch 2) Software Processes.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Software Processes Overview
 © Ian Sommerville A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective.
Chapter 2 – Software Processes
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
ISNE101 Dr. Ken Cosh. Recap  We’ve been talking about Software…  Application vs System Software  Programming Languages  Vs Natural Languages  Syntax,
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
SYSC System Analysis and Design
Software Process Models
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 3Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
Software Engineering.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CMSC 345, Version 1/03 An Overview of Software Processes Reference: Software Engineering, by Ian Sommerville, 6 th edition, Chapter 3.
Chapter 3 Software Processes.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Lecture 2 Software Processes CSC301-Winter 2011 Hesam C. Esfahani
Software Processes Sumber dari : cc.ee.ntu.edu.tw/~farn/courses/SE/ch4.ppt.
Software Processes. Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline.
Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
Lecture 3 Software Engineering Models (Cont.)
1 SWE Introduction to Software Engineering Lecture 4.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
An Introduction to Software Engineering
September 10, 2009COMS W41561 COMS W4156: Advanced Software Engineering Prof. Gail Kaiser
4. Software Processes Software Engineering. Objectives To introduce software process models To describe three generic process models and when they may.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
1 SYS366 Week 2 - Lecture Visual Modeling and Process.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Software engineering Software Processes.
Software Processes (a)
Chapter 2 SW Process Models
Software Processes.
Chapter 2 – Software Processes
Chapter 2 Software Processes
An Overview of Software Processes
An Overview of Software Processes
Software Processes.
Presentation transcript:

September 30, 2010COMS W41561 COMS W4156: Advanced Software Engineering Prof. Gail Kaiser

September 30, 2010COMS W41562 Topics covered in this lecture Introduce software process Describe several generic process models and consider advantages/disadvantages

September 30, 2010COMS W41563 Software Process

September 30, 2010COMS W41564 What is a software process? A structured set of activities required to develop a software product –Specification; –Design and implementation; –Validation; –Evolution (operation and maintenance).

September 30, 2010COMS W41565 Software specification The process of establishing what features and services are required, as well as the constraints on the system’s operation and development. Requirements engineering process –Feasibility study; –Requirements elicitation and analysis; –Requirements specification; –Requirements validation.

September 30, 2010COMS W41566 Software design and implementation The process of converting the system specification into an executable system. Software design –Design a software structure that realizes the specification; Implementation –Translate this structure into an executable program; The activities of design and implementation are closely related and may be inter-leaved.

September 30, 2010COMS W41567 Software validation Verification and validation (V & V) is intended to show that a system conforms to its specification and meets the requirements of the customer(s). Involves checking and review processes, and acceptance or beta testing. Custom software: Acceptance testing involves executing the system with test cases that are derived from the real data to be processed by the system in the customer’s environment. Generic software: Beta testing executes the system in many customers’ environments under real use.

September 30, 2010COMS W41568 Software evolution Software is inherently flexible and can change. As requirements change due to changing business circumstances, the software that supports the business must also evolve and change. Although there has historically been a demarcation between development and evolution, this is increasingly irrelevant as fewer and fewer systems are completely new.

September 30, 2010COMS W41569 Process Models

September 30, 2010COMS W Software Process A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective. –Major Task Identification –Sequencing In the beginning was......

September 30, 2010COMS W Build First Version Retirement Operations Modify until Customer satisfied Code-and-Fix

September 30, 2010COMS W Discussion of Code-and-Fix Really Bad Really Common Advantages –No Overhead –No Expertise Disadvantages –No means of assessing progress –Difficult to coordinate multiple programmers Useful for “hacking” single-use/personal-use programs: start with empty program and debug until it works

September 30, 2010COMS W Requirements Validate Retirement Operations Test Implementation Verify Design Waterfall

September 30, 2010COMS W More Detailed Waterfall REQUIREMENTS ANALYSIS SYSTEM DESIGN PROGRAM DESIGN CODING UNIT & INTE- GRATION TESTING SYSTEM TESTING ACCEPTANCE TESTING OPERATION & MAINTENANCE

September 30, 2010COMS W Discussion of Waterfall Articulated by Win Royce, ~1970Articulated by Win Royce Widely used today Advantages –Measurable progress –Experience applying steps in past projects can be used in estimating duration of “similar” steps in future projects –Produces software artifacts that can be re-used in other projects Disadvantages –Difficulty of accommodating change after the process is underway: One phase has to be complete before moving onto the next phase.

September 30, 2010COMS W Discussion of Waterfall The original waterfall model (as interpreted by many) disallowed iteration –Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements. –Therefore, this model is only appropriate when the requirements are very well-understood and changes will be very limited during the design process. –But few business systems have stable requirements. The “waterfall with feedback” model was, however, what Royce had in mind

September 30, 2010COMS W Requirements Validate Retirement Operations Test Implementation Verify Design Requirements Change Waterfall*

September 30, 2010COMS W Waterfall* REQUIREMENTS ANALYSIS SYSTEM DESIGN PROGRAM DESIGN CODING UNIT & INTE- GRATION TESTING SYSTEM TESTING ACCEPTANCE TESTING OPERATION & MAINTENANCE

September 30, 2010COMS W Evolutionary Throw-away prototyping –Objective is to understand the system requirements. –Should start with poorly understood requirements to clarify what is really needed. Incremental development –Objective is to work with customers to evolve a final system from an initial outline specification. –Should start with well understood requirements and stage development and delivery.

September 30, 2010COMS W Prototyping Initial Concept Complete and Release Prototype Refine Prototype Until Acceptance Design and Implement Initial Prototype

September 30, 2010COMS W Discussion of prototyping Mock-ups allow users to visualize an application that hasn't yet been constructed Used to help develop requirements specification –Useful for rapidly changing requirements –Or when customer isn’t sure what specification should be Prototypes should be discarded once requirements are “known”, and another process model used for development –Prototypes should not be used as a basis for implementation, since rapid prototyping tools do not create production quality code –Customer (and management) may need to be “educated” about prototypes: a prototype is not 80-90% of the final product, usually not even 10%

September 30, 2010COMS W Incremental (staged) delivery Detailed Design, Implement, Test, Deliver Feature Set Requirements Validate Retirement Operations Verify Architectural Design

September 30, 2010COMS W Discussion of incremental delivery Iterations are classified according to feature sets: –e.g., features 1 and 2 will be delivered in this iteration, features 3 and 4 are next. Series of increasingly “complete” releases. Lack of process visibility - when will it be done? Systems are often poorly structured.

September 30, 2010COMS W Process Iteration System requirements ALWAYS evolve in the course of a project so process iteration where earlier stages are reworked is always part of the process for large systems. Iteration can be applied to any of the generic process models. Several approaches.

September 30, 2010COMS W Iterative delivery Initial Concept Operations Acceptance Testing and Delivery Requirements and Iteration Planning Next Iteration Design and Implement

September 30, 2010COMS W Discussion of iterative delivery Rather than deliver the system as a completed product, the development and delivery is broken down into iterations, with each iteration delivering part of the required functionality. User requirements are prioritized and the highest priority requirements are included in early iterations. Once the development of an iteration is started, the requirements are frozen - but requirements for later iterations can continue to evolve (this is the distinction compared to incremental delivery of feature sets)

September 30, 2010COMS W Discussion of iterative development Customer value can be delivered with each iteration so system functionality is available earlier. Each iteration’s deliverable is not a prototype, but an operational system. However, early iterations act as a prototype to help elicit requirements for later iterations (exploratory). Lower risk of overall project failure. The highest priority system services tend to receive the most testing.

September 30, 2010COMS W Agile (eXtreme) Programming Iterative, but with a lot of hypehype Timeboxing: –Set the date for delivering an iteration –Date cannot change –Only functionality (scope) can change –Short duration iterations (weeks, not months)

September 30, 2010COMS W Spiral model PLANDEVELOP AND TEST DETERMINE GOALS, ALTERNATIVES, CONSTRAINTS EVALUATE ALTERNATIVES AND RISKS Requirements, life-cycle plan Budget 1 Alternatives 1 Constraints 1 Risk analysis Constraints Budget Alternatives Prototype 1 Proto- type 2 Proto- type 3 Proto- type 4 Concept of operation Software requirements Validated requirements Development plan Integration and test plan Software design Validated, verified design Detailed design Code Unit test System test Acceptance test Implementation plan start

September 30, 2010COMS W Discussion of Spiral Model Proposed by Barry Boehm, ~1986Proposed by Barry Boehm Process is represented as a spiral rather than as a sequence of activities with backtracking. –Each loop in the spiral represents a phase in the process. –No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required.

September 30, 2010COMS W Discussion of Spiral Model Each iteration is driven by “risk management” –Determine objectives and current status –Identify risks and priorities –Next iteration addresses (current) highest risk and/or highest priority items

September 30, 2010COMS W The Basic Problem: Risk The spiral and agile iterative process models view “risk” as the main problem of software development –Schedule slips –Business changes –Staff turnovers –New technologies –…

Upcoming Assignments September 30, 2010COMS W415633

Upcoming Assignments Project Concept due Tuesday 5 October, 10am Project Concept Posted on course websitecourse website Submit via CourseWorksCourseWorks September 30, 2010COMS W415634

Team Project Planning and Progression September 30, 2010COMS W415635

First Iteration Assignments First Iteration Plan due Tuesday 19 October. First Iteration Plan First Iteration Progress Report due Tuesday 26 October. First Iteration Progress Report First Iteration Demo Wednesday 3 November – Thursday 11 November. First Iteration Demo First Iteration Final Report due Friday 12 November. First Iteration Final Report September 30, 2010COMS W415636

COMS W4156: Advanced Software Engineering Prof. Gail Kaiser September 30, 2010COMS W415637