1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the...

35
1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification Don Bagert, Rose-Hulman Institute of Technology September 27, 2005 Thanks to Mark Ardis and Steve Chenoweth for some of the slides included.
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    216
  • download

    0

Transcript of 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the...

Page 1: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

1

Team Skill 4 - Team Skill 5 -Scope Refining the Systems Definition (Chapters 18-23 of the requirements text)

CSSE 371 Software Requirements and SpecificationDon Bagert, Rose-Hulman Institute of TechnologySeptember 27, 2005

Thanks to Mark Ardis and Steve Chenoweth for some of the slides included.

Page 2: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

2

Outline

Scope Establishing Project Scope Managing Your Customer

Refining the System Definition A More Rigorous Look at Requirements Refining Use Cases Supplementary Specifications Ambiguity and Specificity

Page 3: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

3

Establishing Project Scope

Page 4: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

4

The Shape of Project Scope

Res

ourc

es

Time

Deadline

Deadline

TimeR

esou

rces

Page 5: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

5

Brooks' Law

Adding labor to a late project makes it later

Why?

Page 6: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

6

Requirements Baseline

Itemized list of features intended for a given release

Must be acceptable to customer Must have reasonable probability of

success

Page 7: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

7

Setting Priorities

Customers should decide priorities. Why?

Page 8: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

8

Example Priorities

# Feature Priority

1 External RDB support Critical

4 Portability to a new OS Critical

3 Ability to clone new project Important

5 New project wizard Important

2 Implementation of tool tips Useful

Page 9: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

9

Assessing Effort

Developers should estimate effort Why?

Page 10: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

10

Example Effort

# Feature Priority Effort

1 External RDB support Critical Medium

4 Portability to a new OS Critical High

3 Ability to clone new project Important Low

5 New project wizard Important Low

2 Implementation of tool tips Useful Low

Page 11: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

11

Setting the Baseline

Include all "Critical" items Can you deliver those items on time? Add some "Important" items as budget

allows

Page 12: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

12

Example Baseline

# Feature Priority Effort

1 External RDB support Critical Medium

4 Portability to a new OS Critical High

3 Ability to clone new project Important Low

Baseline

5 New project wizard Important Low

2 Implementation of tool tips Useful Low

Page 13: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

13

Managing Your Customer

Page 14: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

14

Suggestions for Dealing with the Client During Development

Include customer in decisions about scope reduction

Negotiate changes to requirements Give yourself some slack Avoid "feature creep"

Page 15: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

15

A More Rigorous Look at Requirements

Page 16: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

16

Describing System Behavior Through Requirements Include:

Inputs Outputs Functions System Attributes Environmental Attributes

Page 17: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

17

Expressing Requirements for System Development

The two important components that we will use are Use Case Model Supplementary Specifications

More on these later

Page 18: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

18

What Not to Put in Requirements

Project Planning Information May be part of the contract, though

Design Information (“what vs. how”)

Page 19: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

19

Refining Use Cases

Page 20: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

20

Use Case Model Components

Use Case Diagram Use Cases

Page 21: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

21

Use Case Diagram Example

Page 22: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

22

Use Cases

Each feature that will be in the next version of the software (according to the Vision Document) should be involved in at least one use case

The set of use cases cannot be exhaustive, but should include all system uses involving those features as described by stakeholders

Pre-conditions, post-conditions and special requirements are important for development

Page 23: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

23

Extending Use Cases

Extend an existing use case instead of redefining it

Page 24: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

24

Microwave Extension

User

Cook Food

Cook and Rotate Food

<<extend>>

Page 25: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

25

Including Use Cases

Frequent sequences of events may be defined as use cases

Including a use case is like calling a subroutine

Page 26: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

26

Microwave Inclusion

User

Cook Food

Set Timer

<<include>>

Page 27: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

27

Cook Food Inclusion

D. Basic flow:1. User opens door and places food in unit

2. User performs Set Timer use case

3. User pushes start button

4. Unit cooks food

5. Unit beeps

Page 28: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

28

Supplementary Specifications

Page 29: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

29

Types of Requirements

Functional Requirements Nonfunctional Requirements Design Constraints “Other” Requirements

Page 30: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

30

Typical Nonfunctional Requirements

Usability Reliability Performance Supportability

That is, nonfunctional requirements generally focus on quality attributes

Page 31: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

31

Design Constraints

Restriction of Design Options (e.g. what database to use)

Process (e.g. must use ISO or IEEE software engineering standards)

Regulations (e.g. FDA)

Why are these in the requirements, if they involve design? Because it is part of what the customer wants or needs in the system to be developed.

Page 32: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

32

“Other” Requirements

Deliverables (e.g. user documentation, other artifacts to be supplied by the developer – may in part depend on who’s doing the maintenance

Technical Support Training Requirements

Some organizations will include these in the “nonfunctional requirements”

Page 33: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

33

Supplementary Specifications Document

Includes Nonfunctional Requirements, Design Constraints, and Other Requirements

That are not confined to just one use case

Page 34: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

34

Ambiguity and Specificity

Page 35: 1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters 18-23 of the requirements text) CSSE 371 Software Requirements and Specification.

35

Basic Problem

The requirements must be both understandable and unambiguous

Balancing the two is sometimes difficult! Client – needs it to be understandable Software Team – needs it to be unambiguous