1 csse 490 - requirements steve chenoweth department of computer science & software engineering...

21
1 CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 1 – Wed, June 6, 2007 Above – Sources of requirements in the business I was in – Telecom. From http://www.althosbooks.com/crrffor iptec.html

Post on 20-Dec-2015

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 1 – Wed, June 6, 2007 Above – Sources of requirements

1

CSSE 490 - Requirements

Steve ChenowethDepartment of Computer Science &

Software EngineeringRHIT

Session 1 – Wed, June 6, 2007

Above – Sources of requirements in the business I was in – Telecom. From http://www.althosbooks.com/crrfforiptec.html.

Page 2: 1 CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 1 – Wed, June 6, 2007 Above – Sources of requirements

2

Today

• Course syllabus. • Introductions & your objectives.• Schedule and overview.• Requirements (Req) situations and Req in software.• The “Req problem.”• Where Req are in the engineering lifecycle.• Where the Req people fit on a team.• Sample Req documents.• Discuss possible projects, first 2 assignments .• Discuss grading & assignments in general.

Questions?

Page 3: 1 CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 1 – Wed, June 6, 2007 Above – Sources of requirements

3

Course syllabus

• See link to course website syllabus.

• Grading & assignments yet to be determined! (Last thing today.)

Page 4: 1 CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 1 – Wed, June 6, 2007 Above – Sources of requirements

4

Introductions & your objectives

• You -- Who / what you do / where / how requirements are involved / what you’d like to see in this course

• Me -- See website. In general – – 1974 – 2003 I worked on software projects, mostly for

NCR and AT&T / Lucent.– Wrote lots of requirements, including problem

statements, use cases, quality attribute specs, & similar modern stuff.

– Reviewed requirements & architecture for about 50 telecom projects.

Page 5: 1 CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 1 – Wed, June 6, 2007 Above – Sources of requirements

5

Schedule and overview

• Schedule -- See link to course website schedule.

• Overview –– Achieve your objectives– Achieve course objectives– Be able to say you can do requirements for an

engineering / IT project

Questions?

Page 6: 1 CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 1 – Wed, June 6, 2007 Above – Sources of requirements

6

Requirements (Req) situations and Req in software

• The situation questions are:– When do you have to do them?– How well do you have to do them?

• We’ll talk about software Req for various reasons…

Page 7: 1 CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 1 – Wed, June 6, 2007 Above – Sources of requirements

7

Requirements (Req) situations

• When do you have to do them?– Someone outside makes you (e.g., for govt

contracts, FDA, customer contract).– It really enables your development to be done

right.

• Examples of “times” to do requirements:– Starting a new project.– Discovering you didn’t do them!

Questions?

Page 8: 1 CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 1 – Wed, June 6, 2007 Above – Sources of requirements

8

Requirements (Req) situations

• How well do you have to do them?• At end of “R,” Leffingwell & Widrig give their view

about how agile to be.• It depends in part on team practices. What are

developers expecting to develop from?• The common trap is to fall into “incremental

artifacts only.” Usually ends up being “not good enough.”

• In the course, we’ll take a middle ground approach, covering most of the new kinds of artifacts you may need to create.

Questions?

Page 9: 1 CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 1 – Wed, June 6, 2007 Above – Sources of requirements

9

How well? – What’s “Minimalist”?

• Let’s try XP (Extreme Programming*), to see what a minimalist Req approach is like. Here’s how requirements feed into the system with XP:– User Stories are done at the beginning for release planning:

• These are written by the customers as things that the system needs to do for them. They are similar to usage scenarios, except that they are not limited to describing a user interface. They are in the format of about three sentences of text written by the customer in the customers terminology without techno-syntax.

• User stories should only provide enough detail to make a reasonably low risk estimate of how long the story will take to implement. When the time comes to implement the story developers will go to the customer and receive a detailed description of the requirements face to face.

– The customer is always available: • Because details are left off the user stories the developers will need to talk

with customers to get enough detail to complete a programming task. Projects of any significant size will require a full time commitment from the customer.

• The customer will also be needed to help with functional testing. The test data will need to be created and target results computed or verified.

*See for example, http://www.extremeprogramming.org/, which these descriptions are taken from.

Page 10: 1 CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 1 – Wed, June 6, 2007 Above – Sources of requirements

10

An interesting exercise

• Here are 4 user stories to feed into development of a new product to be called the Mark IV Coffee Maker* :

• In this exercise, decide what order should these be done in by the development organization…

*Taken from http://www.extremeprogramming.org/example/coffeestories.html.

1. Brew some coffee. When the brew button is pressed boil the water until empty.

2. Keep the coffee warm. When the pot has coffee in it turn on the warmer. When the coffeepot is removed turn off the warmer.

3. Indicator light. Turn on this light when coffee is done brewing. Turn off the light when coffeepot is picked up.

4. Interrupt brewing if the coffeepot is removed. Opening the relief valve will stop the water flow. If coffeepot is replaced, continue.

Page 11: 1 CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 1 – Wed, June 6, 2007 Above – Sources of requirements

11

Oh, and it should look like this…

• And run faster than that one…

• And spill less.

• Huh?

Image from javaqueen.us/coffeemaker.htm .

Page 12: 1 CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 1 – Wed, June 6, 2007 Above – Sources of requirements

12

How well? – What’s “Maximalist”?

• Often hundreds of pages of one liners sounding like, “The system shall…” E.g.,

• See for example WIRE C&DH Flight Software Requirements Specification DRAFT .– 041.1.1 The flight software shall receive data in the form of

CCSDS packets from the Software Bus, and shall transmit the data over the 1553B bus.

– 041.1.2 The flight software shall collect data from the 1553B remote terminals and shall transmit the data on the Software Bus in the form of CCSDS packets.

– 041.1.3 If necessary, the flight software shall use multiple 1553B transactions to collect or transmit a single CCSDS packet.

• They are organized into well defined sections, often according to “IEEE SRS” guidelines (Std 830-1998 ).

*See for example, http://www.extremeprogramming.org/, which these descriptions are taken from.

Page 13: 1 CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 1 – Wed, June 6, 2007 Above – Sources of requirements

13

Req in software

• Req in software run the gamut from well-defined to a series of prototypes.

• Req can be especially hard in software --– Software can do almost anything?– You never have to build the same thing twice?– It’s invisible (and builds on other things that

are invisible)?

Questions?

Page 14: 1 CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 1 – Wed, June 6, 2007 Above – Sources of requirements

14

The “Req problem”

• Ch 1 & 2 in R• Who’s giving the Req?• Customers• Product manager• Suppliers• Req are often a root cause of success &

failure (thus your first assignment)• Lots of Req errors – why?

Questions?

Page 15: 1 CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 1 – Wed, June 6, 2007 Above – Sources of requirements

15

The “Req problem”

• What are the key Req activities?• Elicitation – from whom?• Documentation – for whom?• Management – watching for what?

– (This is most of R)

• Tracing fwd from Req to development & product (e.g., in creating test cases)

• Tracing back to Req from development & product errors

Questions?

Page 16: 1 CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 1 – Wed, June 6, 2007 Above – Sources of requirements

16

Where Req are in the engineering lifecycle

• Ch 3 in R

• In software, most people use iterative or spiral prototyping.

• With Agile processes, writing down a full set of Req before committing to development decisions – not in the play book!

Questions?

Page 17: 1 CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 1 – Wed, June 6, 2007 Above – Sources of requirements

17

Where the Req people fit on a team

• Ch 4 in R

• Junior or senior, vs. regular engineers / developers?

• How many decisions they make on their own, vs. just recording or translating?

• What org they are part of?

Questions?

Page 18: 1 CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 1 – Wed, June 6, 2007 Above – Sources of requirements

18

Sample Req documents

• See link to course website handouts.

Questions?

Page 19: 1 CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 1 – Wed, June 6, 2007 Above – Sources of requirements

19

Discuss possible projects, first 2 assignments

• What projects could you do, eliciting and managing a set of requirements?– Project description due next week

• What could you do as a short case history for next week?

Questions?

Page 20: 1 CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 1 – Wed, June 6, 2007 Above – Sources of requirements

20

Discuss grading & assignments in general

• The sample syllabus lists the following types of assignments:40%Project Work (details below)14%Exam 114%Exam 2??%Homeworks (unknown, but 2% each)10%Class Participation (including attendance)??%Total – We’ll make it add up

• Want all those? (Time to pick!)

Questions?

Page 21: 1 CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 1 – Wed, June 6, 2007 Above – Sources of requirements

21

Discuss grading & assignments in general

• The Project Work suggests this grading:– 20% Clients’ Evaluation– 10% Peer Evaluations– 50% All the Project Artifacts– 20% Project Presentations

• Want all those? (Time to pick!)

Questions?