Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

56
Lecture 3 Requirements CS 540 – Quantitative Software Engineering
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    221
  • download

    0

Transcript of Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Page 1: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Lecture 3 Requirements

CS 540 – Quantitative Software Engineering

Page 2: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Software Requirements Process

Requirements Elicitation Requirements Analysis Use Cases Requirements Specification Prototype/Modeling Requirements Management

Page 3: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Highlights of quantitative approach

Lambda Protocol Overlaps with Systems Engineering Industrial Strength Requirements for

Software Intensive Systems-of-Systems

Page 4: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

What is a requirement?

A property that must be exhibited by a system to solve some problem.

Requirements may be • Functional providing product capabilities

• Non-Functional constraining the implementation

Page 5: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Robust Requirements

Volume

Dynamic Range

Ideal

Discrete Specifications

RobustRequirements

Page 6: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Simplified Spiral Model

Determine objectives, alternatives, constraints1 Evaluate alternatives;

identify and resolve risks2

Develop and verify next-level product3Plan next phase4

Cumulative CostProgress through steps

Commitment Partition

Review

Page 7: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Spiral Model

Determine objectives, alternatives, constraints1 Evaluate alternatives;

identify and resolve risks2

Develop and verify next-level product3

Plan next phase4

Cumulative CostProgress through steps

Commitment Partition

Review

Requirements Plan; Life-cycle plan

Concept of Operation

Risk Analysis Prototype

1Prototype

2Prototype

3Operational Prototype

Simulations, models, benchmarks

Software Requirements

Risk Analysis

Risk Analysis

Risk Analysis

Req.s Validation

Development Plan

Integration and Test Plan

Software Product Design

Design Validation and Verification

Detailed Design

Code

Unit Test

Integration and Test

Acceptance Test

Implementation

From Boehm (1988), p. 64From Boehm (1988), p. 64

Page 8: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Project uncertainty

Relative Cost Range x

1.25x

1.5x

2x

4x

0.8x

0.5x

0.25x

0.67x

Phases and Milestones

Feasibility

Concept of Operation

Plans and Requirements

Requirements Specifications

Product Design

Product Design Specifications

Detailed Design

Detailed Design Specifications

Development and Test

Accepted Software

Page 9: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

SEI Capability Model

Level 1Initial

Process81%

Ad Hoc, chaotic

Level 2Repeatable

Process12%

Intuitive, dependent on talented individuals

Level 3DefinedProcess

7%

Process defined & institutionalized, reliable cost & schedule

Level 4ManagedProcess

0%Reasonable control over quality, measured process

Level 5Optimizing

Process0% Adaptive feedback

process

Source: Andriole, Stephen J., Managing System Requirements, Methods,

Tools, and CasesMcGraw-Hill, 1996

Source: Andriole, Stephen J., Managing System Requirements, Methods,

Tools, and CasesMcGraw-Hill, 1996

Key Process Areas

Configuration ManagementQuality AssuranceSubcontract ManagementProject planning, tracking, & oversightRequirements management

Peer reviews & training programInter-group coordinationProduct engineeringProcess definition & focusIntegrated software management

Software quality managementQuantitative process management

Process change managementTechnology change managementDefect prevention

Page 10: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Top Ten Software Risk Items

Category Risk Item

People 1. Personnel Shortfalls

2. Unrealistic Schedules and Budgets

Requirements 3. Developing the Wrong Software Functions

4. Developing the Wrong User Interface

5. Gold Plating

6. Continuing Stream of Requirements Changes

Externalities 7. Shortfalls in Externally-Furnished Component

8. Shortfalls in Externally-Performed Tasks

Technology 9. Real-Time Performance Shortfalls

10. Straining Computer Science Capabilities

From Boehm (1988), p. 6From Boehm (1988), p. 6

Page 11: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Creeping featurism

Endemic to the Software Industry• Occurs on more than 70% of all applications over 1000 function points

From a 60 project sample

• Average creep = 35%

• Maximum = 200%

• Creeping requirements change about 1% per month» For a 3 year project, 1/3 of the delivered requirements will

be added after requirements are baselined. Rate of software requirements change is higher than for other

engineering fields (electrical, mechanical, civil).

Source: Assessment and Control of Software Risks,

Capers Jones, 1994

Source: Assessment and Control of Software Risks,

Capers Jones, 1994It’s only software!

Page 12: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

What drives creeping featurism?

Not knowing real user needs, not their wants. Changes in normal business environment Solution changes nature of business Economic downturns. Failure to adopt processes designed to limit creeping

featurism Primitive technologies for exploring and modeling

requirements Failure to use technology to measure the impact of

creeping requirementsSource: Assessment and Control of

Software Risks,Capers Jones, 1994

Source: Assessment and Control of Software Risks,

Capers Jones, 1994

Page 13: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Managing requirements

Create and invoke the MOV. Establish, update and model the business case . Strategic linkages to business and technology

organizations to AVOID SHELFWARE Continuous customer agreement on requirements Requirements agreement used as a basis for estimating,

planning, implementing and tracking FORMAL COMMITMENT PROCESS

Source: Andriole, Stephen J., Managing System Requirements, Methods, Tools, and CasesMcGraw-Hill, 1996

Page 14: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Requirements engineering process

Requirements ElicitationRequirements Elicitation

Requirements Analysis & Negotiation

Requirements Analysis & Negotiation

Agreed Requirements

Draft Requirements Document

Requirements Document & Validation Report

Informal Statement of Requirements

Decision Point: Accept Document or re-enter spiral

Requirements SpecificationRequirements Specification

Requirements ValidationRequirements Validation

Process Models Process Actors and

Stakeholders Process Support and

Management Process Quality and

Improvements Relationship to the

Business Decision

Page 15: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

QSE Lambda Protocol

Prospectus Measurable Operational Value Prototyping and Modeling sQFD Schedule, Staffing, Quality Estimates ICED-T Trade-off Analysis

As of 31 August

Page 16: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.
Page 17: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Universal Software Engineering Equation

Reliability (t) = ℮ -k t

when the error rate is constant and where k is a normalizing constant for a software shop and

= Complexity/ effectiveness x staffing

Page 18: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Case Study: SchedulerPro Prospectus

User friendly, efficient interface for students to create and modify class schedules.

Features:• Visual schedule creation and editing

• Schedule suggestion

• Schedule comparison view

• Monitor closed-out sections

Page 19: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

SchedulerPro Prototype

Page 20: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

SchedulerPro Prototype Iterated

Page 21: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

SchedulerPro Notification Emails

Page 22: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

SchedulerPro MOV

Course scheduling and registration time reduced by an average of 20 minutes per student per semester.

Page 23: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

SchedulerPro features

Schedule Classes and Personal Time

Searching

Course Placement

Course Detail Viewing

Course Removal

Scheduling Personal Blocks

Notification (optional)

Course Suggestions (optional)

Page 24: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

SchedulerPro Functional Requirements

• Search available classes by: Same professor Similar time Same or equivalent class but different sections

• Register and track registrations

• Color classes and arbitrary time-blocks by user choice

Page 25: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

SchedulerPro nonfunctional requirements

• Integrate with “Web for Students’ and existing authentication systems and avoid incompatibilities

• Allow schedules to be saved/accessed from a server or local file

• Provide a scaled time-accurate visual representation of the schedule

Page 26: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

More non-feature requirements

Make schedules available even if the application is down, provided an internet connection is available

Perform some functions without a live connection to the ‘Web for Students’ registrar web site

Make compatible with all popular browsers• Display section states and print schedules without

loss of detail

Page 27: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

SchedulerPro sQFD

Features / Functions

Class FiltersAllocate non-class

timeLong term information

availabilityAuthenticate

Makes scheduling classes easier 8 3 6 2 19

Makes scheduling a semester easier

7 9 8 2 26

Find schedules in one place 1 1 5 7 14

Total 16 13 19 11 59

Page 28: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Jan. Function Point estimates

Function Low (L) Average (A) High (H) Total

Outputs 1 3 0 19

Inquiries 8 4 1 49

Inputs 5 7 1 41

Internal Files 3 2 0 24

External Interfaces 2 1 0 10

Total UFP 143

Adjustment Factor 0.99

Total AFP 141

Page 29: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

April Function Point estimates

Function Low Average High Total

Outputs 1 0 1 9

Inquiries 3 0 0 9

Inputs 2 3 0 18

Internal Files 3 1 0 31

External Interfaces 1 1 0 12

Total UFP 79

AFP 82

Page 30: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

History of Function Point estimates

Date AFP Project Length*

Projected Finish*

January 27 141 19.7 staff months

August 2006

February 24 104 14.4 staff months

March 2006

April 17 82 8.5 staff months

May

2006

*Using COCOMO Model

Page 31: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Web Point estimates

Function Total Web Objects

Outputs 11

Inquiries 9

Inputs 18

Internal Files 31

External Interfaces 12

# Multimedia files 6

# Web building blocks 7

# Scripts 3

# Links 0

Total Web Objects 97

Effort = A * cdi (Size)P1

Because it is a small web project, assume:

A=2.1, B=2.0, P1=1.00, and P2=.5

Language Expansion Factor = 25

From this, we estimate 2.43 KLOC

Effort = A* KLOC = 2.1 * 2.43

= 5.103= 5.103 staff-months staff-months Duration =B * EffortP2 = 2.0 * 5.103.5

= 4.5184.518 calendar months calendar months

Page 32: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

ICED-T

Scheduling by:Intuitive Consistent Efficient Durable Thoughtful

Paper 3 2 2 2 3

Excel 3 2 3 3 3

School Scheduler 3 4 4 3 4

SchedulerPro 4 4 5 4 5

Page 33: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

SchedulerPro Creeping Features

Are the System Admins important stakeholders?

You bet…

Page 34: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

SchedulerPro Installation Plan

Installation

1. Third Party Software Required

Scheduler Pro requires the following products to be already installed on the target machine. Please consult the documentation of each product for installation instructions specific to each.

- Windows 2000, XP, or 2003 Server- Microsoft IIS, version 5.0 or higher- Microsoft .NET, version 1.1- Microsoft SQL Server 2000- Message Queuing Service (Windows component)- ASP.NET State Service

Page 35: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

2. Installing the Scheduler Pro applicationTo install Scheduler Pro, please follow these steps:

I. Setting up the web site1. Create a virtual directory for the site in IIS2. Copy the contents of the “site” folder to the directory on your hard drive represented

by the IIS virtual directoryII. Setting up the database

1. Using the SQL Server Enterprise Manager tool, attach the database located under the “sqldb” directory.2. Create a new user account for accessing this database, and give it read/write access for the database.

III. Installing the Suggest, Notified, and Data Loader Windows ServicesOpen the directory titled “services”. Run each of these files: - InstallSuggestService.exe - InstallNotifierService.exe - InstallDataLoaderService.exe

Each installer will properly install the service. The Data Loader installer willalso ask you for the location and name of the course data file it will load.

SchedulerPro Installation Plan

Page 36: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

SchedulerPro Installation Plan

3. Configuring Your InstallationOpen the directory where you installed the site files (step 2A above). Open the file “web.config”, and find the properties labeled “DBLocation”, “DBUser”, “DBPassword”, and “SecretAuthenticateKey”. These are set to default values that you should modify. Make sure that the location, username, and password match those you set up in SQL Server in step 2B above. Set SecretAuthenticateKey to the random string you are using in your authentication web page.

Technical Information

Scheduler Pro uses HTTP and XMLTHTTP protocols:

- HTTP: As a typical client/server application, an HTTP request is sent to server. Server processes the request and returns HTTP response.- XMLHTTP: client opens XMLHTTP connection to the server. Server executes query on the database and returns needed data.

Refer to Development view and process view from the “4+1” architecture views for further technical details.

Page 37: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Requirements Engineering(van Vliet, p.209)

Feedback

Domain Knowledge Domain Knowledge

User Rqtsuser

Problem domain

elicitation specification validation

Models to be Validated by user

Rqts Spec

Knowledge

Request moreKnowledge

models

Validationresults

Page 38: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

More on Requirements

Requirements are the what and why but … “… it is an illusion to expect that perfect

requirements can be formulated ahead of time” - (Endres & Rombach, p. 15)

Outsourced products require careful requirements - key in today’s world

All stakeholders must participate

Page 39: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Importance of Requirements

Often too many, unstable due to late changes, ambiguous, incomplete

Glass: “Requirements deficiencies are the prime source of project failures.”

Boehm: “Errors are most frequent during the requirements and design activities and are more expensive the later they are removed.”

Cost of requirements errors increase with their longevity.

Page 40: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Some Success Processes

Should expend 15-30% of effort on requirements Requirements should be assigned priorities Traceability should be enforced throughout Validation and verification

Page 41: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

What goes wrong

Miss or misunderstand a majority of the essential requirements - prototyping and other elicitation techniques are helpful

Endless requirements - requirements stages require a cutoff point

Sales team (or management) interferes and confuses what is desired with what is required

Spend too little time on user interface requirements - what does the user see in the end, eh?

Page 42: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Requirements Process

Elicit feature or functional requirements from the user (Boehm -as much as 40% of final features not in requirements specification)

Understand constraints and non-functional requirements - many are ‘ilities

Analyze the requirements (use cases) to make sure they flow and make sense

Develop prototype, model or user documentation Produce and control a requirements specification

Page 43: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Requirements Elicitation

Implicit conceptual model of users becomes explicit Requires us to become quick learners but Much of knowledge is

• Knowledge taken for granted• Tacit-knowledge skillfully applied in the background,

not verbalized• Involves habits, customs, inconsistencies• Influenced by frequency and recency• What’s needed may be different from what exists

Page 44: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Requirements Elicitation Techniques

Asking: interview, questionnaire, structured interview, Delphi (group based)

Task analysis: hierarchical decomposition Scenario based analysis: instances of tasks, use-

case (not only for OO) Ethnography: studying folks in natural setting Walking around Models

Page 45: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Requirements Elicitation Techniques

Form analysis: existing forms Natural language descriptions: training, manuals, Derivation from existing system Domain analysis: study existing systems w/in

domain, reuseable components Project future business enviornment from PMO

and systems

Page 46: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Requirements Elicitation Techniques

Business Process Redesign - radically redesign the processes, information processing systems should enable• At the very least rethink the existing

process Prototyping Usually a combination Panels of Subject Matter Experts

Page 47: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Requirements Analysis

1. Lambda Protocol2. Revise requirements as needed3. Redo and replan with GANTT chart 4. Review MOV and ICED-T to see if it is worth

doing

Page 48: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Cost of Big Requirements Up Front (BRUF)

Never45%

Rarely19%

Sometimes16%

Often13%

Always7%

Source: Jim Johnson of the Standish Group, Keynote Speech XP 2002

Feature usageEven “Successful” Projects Have Significant Waste

As of 9/26

Page 49: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Serial development is costly

Cost ofChange

Time

The Longer You Wait for Feedback, the more costs are sunk.

Page 50: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Business Analyst

Requirements Specifications

Questions Questions

A sometime facilitator between customers and developers.

Page 51: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Agile Values (www.agilealliance.org)

We value:1. Individuals and

interactions 2. Working software3. Customer collaboration4. Responding to change

Over:

1. Processes and tools

2. Comprehensive documentation

3. Contract negotiation

4. Following a plan

Some things are more important than others

Page 52: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Agile Principles 1-6

1. Satisfy the customer through early and continuous delivery of valuable software.

2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.

3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

4. Business people and developers must work together daily throughout the project.

5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

Page 53: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Agile Principles 7-12

7. Working software is the primary measure of progress. 8. Agile processes promote sustainable development. The

sponsors, developers, and users should be able to maintain a constant pace indefinitely.

9. Continuous attention to technical excellence and good design enhances agility.

10. Simplicity--the art of maximizing the amount of work not done--is essential.

11. The best architectures, requirements, and designs emerge from self-organizing teams.

12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Page 54: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Communication Medium

Co

mm

un

ica

tio

n E

ffe

cti

ven

es

s

Richness of Communication ChannelCold Hot

Paper

Audiotape

Videotape

Emailconversation

Phoneconversation

Videoconversation

Face-to-faceconversation

Face-to-faceat whiteboard

DocumentationOptions

ModelingOptions

Page 55: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Misunderstandings about Agility

Ideas which are just plain crazy talk:• Agile = “code and fix”• XP is the only agile process• Agilists don’t document• Agilists don’t model• We’re ISO/CMM/6sigma therefore we can’t be agile• Agile results in low quality• Agile doesn’t scale• Agilists ignore enterprise concerns

Page 56: Lecture 3 Requirements CS 540 – Quantitative Software Engineering.

Agile Software Requirements Management

{Each iteration implement the highest-priority requirements

Each new requirement is prioritized and added to the stack

Requirements may be reprioritized at any time

Requirements may be removed at any time

Requirements

HighPriority

LowPriority