06 september 2007kaiser: coms w4156 fall 20071 coms w4156: advanced software engineering prof. gail...

77
06 September 2007 Kaiser: COMS W4156 Fall 2 007 1 COMS W4156: Advanced Software Engineering Prof. Gail Kaiser [email protected] http://york.cs.columbia.edu/clas ses/cs4156/

Upload: valerie-evans

Post on 29-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

06 September 2007 Kaiser: COMS W4156 Fall 2007 1

COMS W4156: Advanced Software Engineering

Prof. Gail Kaiser

[email protected]

http://york.cs.columbia.edu/classes/cs4156/

06 September 2007 Kaiser: COMS W4156 Fall 2007 2

Software Engineering Activities

• System Engineering

• Process Selection and Training

• Requirements– Eliciting– Analysis– Recording

• Technology Selection and Training• Design

– Architecture– Components– Modules

• Coding – Unit Testing– Debugging

• Integration– Build– Integration Testing– Configuration Management

• System Testing– Performance Testing & Optimization– Acceptance Testing– Beta Testing

• Deployment– Delivery– Installation

• Operations– System Management– Maintenance– Upgrades

• Support Activities– Project Planning and Tracking– Customer Interaction– Process Improvement– Training– Documentation– Personnel Management

06 September 2007 Kaiser: COMS W4156 Fall 2007 3

Software Process

• Major Task Identification

• Sequencing

• General model to be tailored

In the beginning was......

06 September 2007 Kaiser: COMS W4156 Fall 2007 4

Build FirstVersion

Retirement

Operations

Modify untilCustomer satisfied

Code-and-Fix

06 September 2007 Kaiser: COMS W4156 Fall 2007 5

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

06 September 2007 Kaiser: COMS W4156 Fall 2007 6

Requirements

Validate

Retirement

Operations

Test

ImplementationVerify

Design

Waterfall

06 September 2007 Kaiser: COMS W4156 Fall 2007 7

More Detailed WaterfallREQUIREMENTS

ANALYSIS

SYSTEMDESIGN

PROGRAMDESIGN

CODING

UNIT & INTE-GRATION TESTING

SYSTEMTESTING

ACCEPTANCETESTING

OPERATION& MAINTENANCE

06 September 2007 Kaiser: COMS W4156 Fall 2007 8

Discussion of Waterfall• Articulated by Win Royce, ~1970• 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

• The original waterfall model (as interpreted by many) disallowed iteration– Inflexible– Monolithic– Requirements change over time– Maintenance not handled well

• The “waterfall with feedback” model was, however, what Royce had in mind

06 September 2007 Kaiser: COMS W4156 Fall 2007 9

Waterfall*REQUIREMENTS

ANALYSIS

SYSTEMDESIGN

PROGRAMDESIGN

CODING

UNIT & INTE-GRATION TESTING

SYSTEMTESTING

ACCEPTANCETESTING

OPERATION& MAINTENANCE

06 September 2007 Kaiser: COMS W4156 Fall 2007 10

Requirements

Validate

Retirement

Operations

Test

ImplementationVerify

Design

Requirements Change

Waterfall*

06 September 2007 Kaiser: COMS W4156 Fall 2007 11

Prototyping

Initial Concept

Complete and Release

Prototype

Refine Prototype Until Acceptance

Design and Implement

Initial Prototype

06 September 2007 Kaiser: COMS W4156 Fall 2007 12

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 won’t commit to specification

• Once requirements “known”, waterfall (or some other process model) used

• Prototypes discarded once design begins– Prototypes should not be used as a basis for implementation,

since 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%

06 September 2007 Kaiser: COMS W4156 Fall 2007 13

Incremental (Staged)

Detailed Design, Implement, Test, Deliver Feature Set

Requirements

Validate

Retirement

Operations

Verify

Architectural Design

06 September 2007 Kaiser: COMS W4156 Fall 2007 14

Discussion of Incremental

• 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

06 September 2007 Kaiser: COMS W4156 Fall 2007 15

Spiral Model

PLAN DEVELOP AND TEST

DETERMINE GOALS,ALTERNATIVES,CONSTRAINTS

EVALUATE ALTERNATIVESAND RISKS

Requirements,life-cycle plan

Budget1

Alternatives1

Constraints1

Risk analysis1

Risk analysis2

Risk analysis3

Risk analysis4

Constraints2

Constraints3

Constraints4

Budget2

Budget3Budget4

Altern

atives 2

Altern

ative

s 3Altern

ative

s 4

Prototype1

Proto-type2

Proto-type3

Proto-type4

Concept ofoperation

Softw

are

requ

irem

ents

Validated

requirements

Developmentplan

Integrationand test plan

Softw

are

desig

n

Validated,

verified design

Detaileddesign

Code

Unit test

SystemtestAcceptance

testImplementation

plan

start

06 September 2007 Kaiser: COMS W4156 Fall 2007 16

Discussion of Spiral Model

• Proposed by Barry Boehm, ~1986• Similar to Incremental Model, but each

iteration is driven by “risk management” and/or customer feedback

• Determine objectives and current status• Identify risks and priorities• Next iteration addresses (current) highest

risk and/or highest priority items• Repeat

06 September 2007 Kaiser: COMS W4156 Fall 2007 17

Agile Programming

Initial Concept

Operations

Acceptance Testing

and Delivery

Requirements and Iteration

Planning

Next Iteration

Design andImplement

06 September 2007 Kaiser: COMS W4156 Fall 2007 18

Discussion of Agile

• Each iteration a mini-project– Each iteration’s deliverable is not a prototype, but an

operational system– Understand risk vs. business value in planning

iterations– Put some working functionality into user’s hands as

early as possible• Timeboxing:

– Set the date for delivering an iteration– Date cannot change– Only functionality (scope) can change– Short duration iterations (weeks, not months)

06 September 2007 Kaiser: COMS W4156 Fall 2007 19

The Basic Problem: Risk

• The spiral model and agile programming view “risk” as the main problem of software development– Schedule slips– Business changes– Staff turnovers– New technologies– …

06 September 2007 Kaiser: COMS W4156 Fall 2007 20

Planning and Scheduling: Gantt Chart

• List tasks• Graphically represent dependencies among

tasks• Show duration and time period of each task• Heavily dependent on prediction regarding:

– Activities involved– Effort and time required

06 September 2007 Kaiser: COMS W4156 Fall 2007 21

Gantt chart example• Programmer working on a small software

project

ID Task Name Start FinishDuratio

n

Dec 2002

5 6 7 8 9 10 11 12 13 14 15 16 17 18

1 2d12/6/200212/5/2002Requirement gathering

2 1d12/9/200212/9/2002Analysis

3 2d12/11/200212/10/2002Design

4 4d12/17/200212/12/2002Coding

5 10d12/31/200212/18/2002Testing

19 20 21 22 23 24 25 26 27 28 29 30 31

Explicit start time, end time, and duration (e.g., in days )

Explicit calendar bar

06 September 2007 Kaiser: COMS W4156 Fall 2007 22

Another Gantt

06 September 2007 Kaiser: COMS W4156 Fall 2007 23

Planning and Scheduling: Pert chart

• Alternative to Gantt chart• Different perspective

– Focuses on dependencies more than calendar time

• No fixed format

2 12/6/2002

Late Start Slack Late Finish

12/5/2002

Requirement gathering

1 12/9/2002

Late Start Slack Late Finish

12/9/2002

Analysis

2 12/11/2002

Late Start Slack Late Finish

12/10/2002

Design

4 12/17/02

Late Start Slack Late Finish

12/12/2002

Coding

10 12/31/2002

Late Start Slack Late Finish

12/18/2002

Testing

Start time

Duration

End timeTask

06 September 2007 Kaiser: COMS W4156 Fall 2007 24

Another Pert

06 September 2007 Kaiser: COMS W4156 Fall 2007 25

The BIG Question: How do you know how long a software engineering task is

going to take?

06 September 2007 Kaiser: COMS W4156 Fall 2007 26

Function Points

• A.J. Albrecht of IBM, ~1979

• FP is a unit for estimating time and effort independent of programming language

• Identify set of application activities (building blocks) and sum the weights assigned to each

• From end-user’s viewpoint

06 September 2007 Kaiser: COMS W4156 Fall 2007 27

Function Points• Number of basic FP building blocks determined

from application, not implementation (which doesn’t exist yet!):– Input files – Output files– Inquiries (snapshot request, no state change)– Internal files (transformations)– External interfaces (to other systems)

• Score for each block based on complexity: low, medium, high

• Unadjusted FP (UFP) is sum of the scores

06 September 2007 Kaiser: COMS W4156 Fall 2007 28

UFP Scores

Low Medium High

Input files 3 4 6

Output files 4 5 7

Inquiries 3 4 6

Internal files 7 10 15

External interfaces

5 7 10

06 September 2007 Kaiser: COMS W4156 Fall 2007 29

Function Points• 14 “technical factors” related to complexity

– Grouped under 3 classes of complexity:system, I/O, application

– Each factor ranked from 0 to 5

• Technical complexity factor (TCF)

• Adjusted function points (AFP or FP)FP = UFP * (0.65 + TCF)

01.014

1 i iTCFTCF

The sum of the 14 factors’ ranks

06 September 2007 Kaiser: COMS W4156 Fall 2007 30

Technical Factors1. System Complexity 2. I/O Complexity 3. Application Complexity

1.1 Data communication

2.1 Reliable and transaction-oriented data management

3.1 Algorithms and processing ability

1.2 Distributed data processing

2.2 Online data management

3.2 Need to reuse the code later

1.3 Relevance of performance

2.3 Usability and efficiency of end user

3.3 Installation easiness

1.4 Configuration of hardware and software

2.4 Online update of the data

3.4 Startup, shutdown, and operation easiness

Partial (1) Partial (2) 3.5 Requirements to run on multiple sites

        3.6 Readiness to change

        Partial (3)

Total

06 September 2007 Kaiser: COMS W4156 Fall 2007 31

Using FPs to Estimate Time/Effort

• Previous measurements of FP per staff month or FP per calendar month

• Applies to maintenance as well as development (“enhancement function points”)

• Tables available for lines of code per FP in various programming languages

06 September 2007 Kaiser: COMS W4156 Fall 2007 32

UFP for Making CappuccinoName Type

(building block)Complexity Value

Milk Input File Medium 4

Coffee Input File Medium 4

Water Input File Low 3

Cappuccino Output File High 7

Water Temperature Inquiry Low 3

External Temperature External Interface Medium 7

Total Unadjusted Function Points 28

06 September 2007 Kaiser: COMS W4156 Fall 2007 33

FP for Making Cappuccino1. System Complexity 2. I/O Complexity 3. Application Complexity

1.1 Data communication 5 2.1 Reliable and transaction-oriented data management

0 3.1 Algorithms and processing ability

1

1.2 Distributed data processing

3 2.2 Online data management

4 3.2 Need to reuse the code later

0

1.3 Relevance of performance

4 2.3 Usability and efficiency of end user

4 3.3 Installation easiness 5

1.4 Configuration of the hardware and the software

4 2.4 Online update of the data

2 3.4 Startup, shutdown, and operation easiness

3

Partial (1) 16 Partial (2) 10 3.5 Requirements to run on multiple sites

2

        3.6 Readiness to change 2

        Partial (3) 13

Total = 39

06 September 2007 Kaiser: COMS W4156 Fall 2007 34

FP for Making Cappuccino

• FP = UFP * (0.65 + TCF)

= 28 * (0.65 + (39 * 0.01)) = 29.12

• So what was the time/effort required last time your firm implemented 29 FPs?

06 September 2007 Kaiser: COMS W4156 Fall 2007 35

Function Points

• Building blocks identification and weight assignment depend critically on:– A world-wide database of FP practices– History of the firm (or consultants)– Experience of the FP estimators (certification)

• International Function Points User Group– 200 page Function Point Counting Practices

Manual (but you have to be a member to get it)– http://www.ifpug.org/

06 September 2007 Kaiser: COMS W4156 Fall 2007 36

Constructive Cost Model

• Barry Boehm of TRW (now USC), ~1981, updated ~1995

• COCOMO estimates best/likely/worst case range for cost, effort and schedule required to develop software

• Based on empirical data from numerous projects, dividing according to development mode

06 September 2007 Kaiser: COMS W4156 Fall 2007 37

Development Modes

• Organic: relatively small software teams develop software in a highly familiar, in-house environment

• Semidetached: intermediate stage between the organic and embedded modes

• Embedded: Product must operate within (is embedded in) a strongly coupled complex of hardware, software, regulations, and operational procedures

06 September 2007 Kaiser: COMS W4156 Fall 2007 38

Additional Factors

Platform Personnel Project

Execution Time Constraints

Analyst Capability Use of Modern Programming Practices

Main Storage Constraints Programmer Capability Use of Software Tools

Platform Volatility Applications Experience Multi-site Development

Computer Turnaround Time

Platform Experience Required Development Schedule

  Language and Tool Experience

Classified Security Application

  Personnel Continuity  

06 September 2007 Kaiser: COMS W4156 Fall 2007 39

COCOMO

• Assumes separate guestimate of lines of code (e.g., “backfiring” function points), then considers additional factors

• Polynomial model

• A and B are computed based on the development mode and additional factors

0,

)(

BAwhere

SizeASizeEffort B

06 September 2007 Kaiser: COMS W4156 Fall 2007 40

Using COCOMO

• Continued data collection to improve prediction accuracy (questionnaires, software, NDAs)

• 544 page handbook available as a guide for the calculations of A and B (anyone can order from amazon.com - and elsewhere - but costs $$$)

• Supporting software available from USC and commercially

• http://sunset.usc.edu/research/COCOMOII/

06 September 2007 Kaiser: COMS W4156 Fall 2007 41

Summary

• FP and COCOMO macro-estimation based partially on large historical databases of contributing software projects from multiple domains and partially on in-house experience

• In contrast, most software industry micro-estimation entirely in-house, usually based on same or similar projects by same or related project team

06 September 2007 Kaiser: COMS W4156 Fall 2007 42

Software Engineering Activities

• System Engineering• Process Selection and Training• Requirements

– Eliciting– Analysis– Recording

• Technology Selection and Training• Design

– Architecture– Components– Modules

• Coding – Unit Testing– Debugging

• Integration– Build– Integration Testing– Configuration Management

• System Testing– Performance Testing & Optimization– Acceptance Testing– Beta Testing

• Deployment– Delivery– Installation

• Operations– System Management– Maintenance– Upgrades

• Support Activities– Project Planning and Tracking– Customer Interaction– Process Improvement– Training– Documentation– Personnel Management

06 September 2007 Kaiser: COMS W4156 Fall 2007 43

Requirements

• What is the (future) software system supposed to “do”? And “why?”

• Requirements must be measurable, testable, related to identified business needs or opportunities, and defined to a level of detail sufficient for system design

• Usage scenarios– User stories– Use Cases– Process specifications– Generic natural language– …

06 September 2007 Kaiser: COMS W4156 Fall 2007 44

User Stories• Written by the customers (or end-users) as

things that the system needs to do for them • About 3 sentences in the customer’s

terminology, without technical detail• Written on index cards (!)• May be augmented by samples (e.g., formatted

report)• Prioritize (high, medium, low)• Generally does not address non-functional

requirements (e.g., performance, security)

06 September 2007 Kaiser: COMS W4156 Fall 2007 45

Example Story Card

111 Instructor View

The instructor view for a given course includes the course number, name and semester; a button to edit the introduction; a button to designate library reserves; and a button to adjust settings for the course.

Otherwise the instructor view is the same as the student view.

Priority High

06 September 2007 Kaiser: COMS W4156 Fall 2007 46

Continuing Example

222 Student View

The student view for a given course includes the course number, name and semester; general courseinformation; and instructor information.

There are buttons to select introduction, discussion, board, class e-mail, dictionary, notepad and help.

Priority High

06 September 2007 Kaiser: COMS W4156 Fall 2007 47

Continuing Example

123 Instructor vs. Student View

When an instructor selects one of the courses he/she is teaching, the instructor view is shown.The instructor view should include a button to show the student view, and then that special studentview should include a button to switch back to the instructor view

Priority Medium

06 September 2007 Kaiser: COMS W4156 Fall 2007 48

Continuing Example

321 Login

The user is prompted to enter uni and password

If the uni and password match database,the user is shown the default screen with his/her list of current courses

Priority High

06 September 2007 Kaiser: COMS W4156 Fall 2007 49

Why are user stories on cards?

• Easy to rip up• Tangible Unit of

– Discussion– Estimation– Scheduling– Testing– Completion

• Used for:– Construction of engineering tasks– Creation of acceptance tests– Derivation of time estimates for planning

06 September 2007 Kaiser: COMS W4156 Fall 2007 50

Use Case Modeling• Each use case provides one or more scenarios

that convey how the system should interact with the end user or another system to achieve a specific business goal

• Use case model emphasizes the behavior as it appears to external actors, treats the system as a black box

• Partitions system functionality into interactions (‘use cases’) that are meaningful to users or external systems (‘actors’)

• Sometimes hundreds of use cases are needed to fully specify a system

06 September 2007 Kaiser: COMS W4156 Fall 2007 51

Use Case Diagram

• Using, e.g., UML = Unified Modeling Language• Visualizes the high-level functions of the system

and the system's scope– Including the relationship of "actors" to essential

processes and system functionality– As well as the relationships among different use

cases• By looking at a use case diagram, you can easily

tell the functions that the system provides (and doesn’t provide)

• Generally does not address non-functional requirements (e.g., performance, security)

06 September 2007 Kaiser: COMS W4156 Fall 2007 52

Example Use Case• This system lets the band

manager view a sales statistics report and the Billboard 200 report for the band's CDs

• It also lets the record manager view a sales statistics report and the Billboard 200 report for a particular CD

• The diagram also tells us that our system delivers Billboard reports from an external system called Billboard Reporting Service

06 September 2007 Kaiser: COMS W4156 Fall 2007 53

Continuing Example

• This use case diagram does not provide a way for a band manager to listen to songs from the different albums on the Billboard 200 — i.e., we see no reference to a use case called Listen to Songs from Billboard 200

06 September 2007 Kaiser: COMS W4156 Fall 2007 54

Customer

Supervisor

SalespersonPlace

Establishcredit

Check

Telephone Catalog

Fill orders

Shipping Clerk

status

order

Another Simple Example

06 September 2007 Kaiser: COMS W4156 Fall 2007 55Fig. 3-54, UML Notation Guide

Not So Simple Use Case Relationships

additional requests :

OrderProduct

SupplyArrange

«include»«include»«include»

RequestCatalog

«extend»Extension points

PaymentCustomer Data

after creation of the order

Place Order

1 * the salesperson asks forthe catalog

06 September 2007 Kaiser: COMS W4156 Fall 2007 56

Yet Another Simple Example

Online HR System

LocateEm ployees

UpdateEm ployee

Profile

Update Benefits

Access TravelSystem

Access PayRecords

Em ployee

M anager

Healthcare P lan System

{if currentMonth = Oct.}

{readOnly}

Insurance P lan System

06 September 2007 Kaiser: COMS W4156 Fall 2007 57

More Not So Simple Use Case Relationships

Update M edicalP lan

Update DentalP lan

Update Benefits______________Extension pointsbenefit options:

after required enrollm ents

UpdateInsurance P lan

Em ployee

<<include>> <<include>> <<include>>

ElectReim bursem entfor Healthcare

Elect StockPurchase

<<extend>>em ployee requestsstock purchase option

<<extend>>em ployee requestsreim bursem ent option

extensioncondition

extension pointname andlocation

06 September 2007 Kaiser: COMS W4156 Fall 2007 58

Use Cases vs. User Stories

• Both intended to capture functional requirements

• Neither directly address non-functional requirements

• Use Cases are more formal

• User Stories tend to be more fine-grained

• User Stories don’t easily map relationships

06 September 2007 Kaiser: COMS W4156 Fall 2007 59

One problem with User Stories and User Cases

• Where do the usage scenarios come from?

• The customers (or users).

• But how do the customers know what to put in their usage scenarios?

06 September 2007 Kaiser: COMS W4156 Fall 2007 60

Requirements Elicitation• Process of “discovering” the requirements for a system• Through communication with customers, system users,

system administrators and other stakeholders• Through domain analysis• Through investigation of previous and similar systems –

reuse requirements– Saves time and money– Reduces risk – Reused requirements have a better chance of being

understood by all stakeholders– Requirements reuse may lead to additional reuse in

other lifecycle activities

06 September 2007 Kaiser: COMS W4156 Fall 2007 61

Requirements Elicitation• Use Business Concerns to drive elicitation

– If a system is to be useful, it must contribute to the key concerns of the business

– If those business concerns are identified and used as drivers of the requirements elicitation process, there will be higher confidence that the system will meet real organization needs

• Collect requirements from Multiple Viewpoints– If the requirements are collected from a single viewpoint,

unlikely to meet other stakeholders requirements– Identified viewpoints can be used to help organize

requirements elicitation and the resulting requirements specification

06 September 2007 Kaiser: COMS W4156 Fall 2007 62

Requirements Challenges: “Yes, But”

• The first time users see the system, the first reaction is either, “Wow this is so cool” or “Yes, but, hmm, now that I see it what about this…?”

• This reaction is simply human nature

• Need to get the “buts” out early

• Anticipate that there will be “buts” and add time and resources to plan for feedback

06 September 2007 Kaiser: COMS W4156 Fall 2007 63

Requirements Challenges: “Undiscovered Ruins”

• Developers struggle with determining when they are done with requirements elicitation– How can we tell whether all the requirements have

been elicited, or have we found at least enough?– Like asking an archeologist “how many undiscovered

ruins are there?”• First scope the elicitation effort by defining the

business problem(s) to be solved by the system• Employ techniques that help find some of those

ruins and get the stakeholders to buy-into the requirements

06 September 2007 Kaiser: COMS W4156 Fall 2007 64

Requirements Challenges:“User versus Developer”

• Users do not know what they want, or cannot articulate it

• Users think they know what they want until developers give them what they said they wanted

• Developers think they understand user problems better than users do

• Recognize and appreciate the users as domain experts

• Provide alternative elicitation techniques earlier: storyboard, role playing, prototypes, etc.

• Put the developers in the users’ place

06 September 2007 Kaiser: COMS W4156 Fall 2007 65

Requirements Challenge: Living with “the Sins

of your Predecessors”• Like it or not, your customers and developers

remember what happened in the past– “Total Quality Management” programs that promised

things would be different– The last project where requirements were vague and/or

were delivered short of expectations• Need to build trust slowly: do not over-commit to

features, schedule or budget• Deliver highest priority features early

06 September 2007 Kaiser: COMS W4156 Fall 2007 66

Requirements Elicitation Techniques

• Interviewing and questionnaires

• Brainstorming and idea reduction

• Storyboarding

• Role Playing

• Requirements workshops

• Prototyping

06 September 2007 Kaiser: COMS W4156 Fall 2007 67

Technique: Interviewing

• Simple direct technique

• Context-free questions about what system needs to do for the users

• Convergence on some common needs will initiate a “requirements repository”

• A questionnaire is no substitute for an interview, but may precede or follow interviews

06 September 2007 Kaiser: COMS W4156 Fall 2007 68

Interview: Context-free questions

• Goal is to prevent prejudicing the user’s response to the questions

• Examples:– Who is the customer?– Who is the user?– Who is the user’s customer?– Are their needs different?– Where else can a solution to this problem be found?

• After context-free questions are asked, suggested solutions can be explored

06 September 2007 Kaiser: COMS W4156 Fall 2007 69

Technique: Brainstorming

• Brainstorming involves both idea generation and idea reduction

• The most creative, innovative ideas often result from combining seemingly unrelated ideas

• Various voting techniques may be used to prioritize the ideas created

• Although live brainstorming is preferred, web-based brainstorming may be a viable alternative

06 September 2007 Kaiser: COMS W4156 Fall 2007 70

Rules for Brainstorming

• Do not allow criticism or debate• Let your imagination soar• Generate as many ideas as possible• Mutate and combine ideas• Only then do Idea Reduction

– Prune ideas that are not worthy of further discussion– Group similar ideas into one super topic

• Prioritize the remaining ideas

06 September 2007 Kaiser: COMS W4156 Fall 2007 71

Technique: Storyboarding

• Scripted walkthrough of system activities and/or screen mockups

• Identify the players, explain what happens to them, and describes how it happens

• Make the storyboard sketchy and easy to modify

06 September 2007 Kaiser: COMS W4156 Fall 2007 72

Technique: Role Playing

• Role playing allows developers to experience the user’s world from the user’s perspective

• Live storyboard or unscripted walkthrough

• Generate system activities and/or screen mockups as you go along

06 September 2007 Kaiser: COMS W4156 Fall 2007 73

Technique: Requirements Workshop

• Perhaps the most powerful technique for eliciting requirements

• Gather all key stakeholders together for a short but intensely focused period

• Use an outside facilitator experienced in requirements management

• May combine interviewing, brainstorming, storyboards, role playing

06 September 2007 Kaiser: COMS W4156 Fall 2007 74

Technique: Prototyping

• Partial implementation of a software system, built to help developers, users and customers better understand system requirements

• Focus on the “fuzzy” requirements: poorly defined and/or poorly understood

06 September 2007 Kaiser: COMS W4156 Fall 2007 75

Reminder: First Assignments Due Next Week!

• Tuesday 11 September, 10am

• Assignments posted on course website

• Submit via CourseWorks

• Individual Development Assignment #1

• Pair Formation

06 September 2007 Kaiser: COMS W4156 Fall 2007 76

Upcoming Deadlines

• Individual development assignment #2 due September 18th

• Teams announced September 18th • Team project concept due September 25th • Individual development assignment #3 due

October 2nd • Revised project concept due October 9th – first

iteration begins

06 September 2007 Kaiser: COMS W4156 Fall 2007 77

COMS W4156: Advanced Software Engineering

Prof. Gail Kaiser

[email protected]

http://york.cs.columbia.edu/classes/cs4156/