28
1 Questions? CSSE 490 - Requirements Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 2 – Wed, June 13, 2007 Above – Tell us your requirements! The power advantage can be on either side. This scene’s actually from a production of the play “The Dumb Waiter” by Harold Pinter, . Note – I often put the next lecture out on the server so you can see what’s coming up. But I reserve the right to add/change things up till class time!

CSSE 490 - Requirements

  • Upload
    roana

  • View
    39

  • Download
    0

Embed Size (px)

DESCRIPTION

Note – I often put the next lecture out on the server so you can see what’s coming up. But I reserve the right to add/change things up till class time!. CSSE 490 - Requirements. Steve Chenoweth Department of Computer Science & Software Engineering RHIT Session 2 – Wed, June 13, 2007. - PowerPoint PPT Presentation

Citation preview

Page 1: CSSE 490 - Requirements

1Questions?

CSSE 490 - Requirements

Steve ChenowethDepartment of Computer Science &

Software EngineeringRHIT

Session 2 – Wed, June 13, 2007

Above – Tell us your requirements!The power advantage can be on either side.

This scene’s actually from a production of the play “The Dumb Waiter” by Harold Pinter, www.bestheatre.com/ .

Note – I often put the next lecture out on the server so you can see what’s coming up. But I reserve the right to add/change things up till class time!

Page 2: CSSE 490 - Requirements

2Questions?

Today

• Discuss case histories (5-10 min each).• Discuss project descriptions (~ 5-10 min each).• Problem analysis & problem statements (see Handouts).• Business modeling.• Req & Systems Engineering.• Why elicitation’s hard?• What’s a feature? • What you wanted in this course (review)• Bonus – What kinds of questions could be on an exam?

Page 3: CSSE 490 - Requirements

3Questions?

Discuss case histories (5-10 min each)

• Trade with someone else

• Read theirs

• Read their analysis at the end

• Tell us about it

• Tell us if you agree with their analysis!

• Was it believable?

Page 4: CSSE 490 - Requirements

4Questions?

Discuss project descriptions (~ 5-10 min each)

• Generally describe your project (paying attention to intellectual property)

• What’s your client like?

• What’s the value of the project (generally)?

• How easy will it be for you to get access to the right people?

Page 5: CSSE 490 - Requirements

5Questions?

Problem analysis & problem statements (see Handouts)

• Ch 5 in R• This is the forerunner to requirements• Goal – deep understanding w/o details on this:

– Step 1 – Get agreement on the problem– Step 2 – Root causes– Step 3 – Stakeholders & users– Step 4 – System boundary– Step 5 – Other constraints

With new problems – all these steps cycle on you!

Page 6: CSSE 490 - Requirements

6Questions?

Problem statementsKey aspects to a problem statement:• Readable by everyone• Define what it won’t do• Define what it will do – main features, at a

high level*• Define how well – quality attributes• Always up to date• Tell it in different perspectives – like what?

*More like “needs & wants,” perhaps.

Page 7: CSSE 490 - Requirements

7Questions?

Problem statements• Tell it in different perspectives – we stole

these from CRSS*:

– Function – Economy – Form – Time

• F/F/E/T for short – But what are they?

*CRSS, Houston, TX, was at the time the largest architectural firm in the US, specializing in this type of building (public & private, elementary, secondary, and higher education). They’re now part of HOK. See www.HOK.com. See also Problem seeking: An architectural programming primer, by William Peña, AAAI, 1977.

Page 8: CSSE 490 - Requirements

8Questions?

Problem statementsF/F/E/T of a system:• Function: What does it do, and for whom?

(Features perspective – the short list)• Form: What is it (its “quality attributes”)?

(How well)• Economy: How does it create value (for

whom?) at what cost (for whom?)• Time: How does it relate to past, present

and future? (E.g., what’s it replace?)

Page 9: CSSE 490 - Requirements

9Questions?

Problem statementsF/F/E/T of a system: Tricky ones -- E & T --• Economy: What you’re looking for is

– Single Greatest Benefit & Total Est. Benefit (of key features)

• Then take Problem Stmt back to engg and calc – Single Greatest Cost & Total Est. Cost

• For economic feasibility:– If SGB > TEC, then Can’t lose!– If SGC > TEB, then Can’t win!

• If feature list changes, SGB can change

Page 10: CSSE 490 - Requirements

10Questions?

Problem statementsF/F/E/T of a system: Tricky ones -- E & T --• Time: Strategic pieces include:

– What has to change in the environment to make room for it

– What it has to make room for

– Market window:Need to end up doing this

Right – Typical market C vs. P guess, from http://sustainable.tamu.edu/publications/organicproduce/markets/markets.html.

Page 11: CSSE 490 - Requirements

11Questions?

Problem Statements – Let’s do one!

• I have 5 things to do in TH tomorrow morning:1. Meet with a new prof about the course he’ll be

teaching2. Talk to a client about extending a current job3. Talk to a dept head about a programming project he

wants to do4. Check in on my two dept heads about what I’m

teaching this fall5. Hear a readout from two consultants on a

compliance analysis they did

• Problem: How to do it?

Format: See Ins & Outs of Problem Statements in Handouts.

Page 12: CSSE 490 - Requirements

12Questions?

Business modeling• Ch 6 in R

• This is analogous to defining the environment in which a system must operate, in engineering generally– What’s the existing machinery / operation?– What’s this thing’s predecessor like?– How will the new system fit in?

Page 13: CSSE 490 - Requirements

13Questions?

Business modeling• There has to be a way to do this!• You want the engineers to visualize how

the new system will fit in, as they work• Common tools –

– Diagrams with explanations (like UML)

– Simulations– SOP’s

Image from simulation, at http://www.ifen.unibw-muenchen.de/research/gnss_simulator.htm.

Page 14: CSSE 490 - Requirements

14Questions?

Business modeling• Typical SOP’s – Easy to use?

– For a taste, see OSU’s Compressed Gasses SOP’s: http://www.biosci.ohio-state.edu/safety/SOP/CompressedGases.htm.

Hey Dave, do I smell a leak?

The OSU building for Industrial, Welding, and Systems Engineering, from www.osu.edu/mobile/map/building.php?building=280 .

Page 15: CSSE 490 - Requirements

15Questions?

Req & Systems Engineering• Ch 7 in R• Means different things in different orgs:• At Lexis-Nexis, Sys Engrs keep systems running • At NCR, they are the technical people who support sales, doing pre-

sale, installations and training• At AT&T, as noted last week:

– In some orgs they translate requirements to terms the developers understand – a smaller role

– In other orgs they are the system architects, and also invent a part of the design as “requirements” – a larger role

– I.e., we had Sys Engrs who were pawns and some who were kings.• What do Sys Engrs do in your organization?• What’s INCOSE say? See esp their Evolution of Sys Engg article.

Page 16: CSSE 490 - Requirements

16Questions?

Req & Systems Engineering

• In some way, Sys Engg always refers to a role requiring a “systems view” – the big picture.

• But the Sys Engg could be about:– Operations– Performance– Testing– Manufacturing– Etc

• Or, all of these!

Page 17: CSSE 490 - Requirements

17Questions?

Req & Systems Engineering

Most often, Sys Engg is about* --

• Creating or adapting systems so that they achieve a variety of goals

• Solving hard problems where the goals may conflict

• Having a big-picture, long-term view

*See, for example, Arthur D. Hall’s books, A Methodology for Systems Engineering, Princeton NJ, 1962; and Metasystems Methodology: A New Synthesis and Unification (Ifsr International Series on Systems Science and Engineering, Vol 3), Pergamon, 1989, ISBN-10: 0080369561.

Page 18: CSSE 490 - Requirements

18Questions?

Req & Systems Engineering

• As the book notes, Sys Engg also refers to someone who uses “systems thinking”

• It’s all about the “lines and boxes”

• Right – The architecture of “Ant,” from www.lattix.com/technology/antexample.php.

Page 19: CSSE 490 - Requirements

19Questions?

• Ch 8 in R.• “Yes but” syndrome• “Undiscovered ruins” effect• “User and developer”

cultures

Why’s elicitation hard?

Right - Developer-think about users, in action. From http://headrush.typepad.com/creating_passionate_users/2005/week5/index.html.

Page 20: CSSE 490 - Requirements

20Questions?

What should get built – The Real Problem Space

What gets built – the chosen solution space

Security

Reliability

Maint &Admin

Performance

A cynical view: The “Solution Space” is governed by pragmatics.

And, what the project focuses on (like features we can sell)

What theClient

Asked For

Why’s elicitation hard?

A similar view – See Davis & Zowghi article.

Page 21: CSSE 490 - Requirements

21Questions?

Why’s elicitation hard?

It’s perceived as a little bit adversarial: “Conducted by a skillful intelligence collector, elicitation appears to be normal social or professional conversation and can occur anywhere – in a restaurant, at a conference, or during a visit to one’s home. But it is conversation with a purpose, to collect information about your work or to collect assessment information about you or your colleagues.”

At least in the spy business… See http://rf-web.tamu.edu/security/secguide/T3method/Elicit.htm.

Page 22: CSSE 490 - Requirements

22Questions?

Why’s elicitation hard?• Time to try eliciting!• I’ll go through the slide presentation on

Instant Connections (in Handouts on the web site)… as “Steve Jobless,” CEO.

• You write down 4 good questions to ask as I talk.

• You’ll have a few minutes to ask the questions.

• We’ll all figure out what we now know about the Instant Connections product idea.

Page 23: CSSE 490 - Requirements

23Questions?

What’s a feature?

• Ch 9 in R.

• Feature = Desired system behavior.

• For talking, need a short list.

• And, need to prioritize

A visual explanation of the difference, from http://spaceuser.blogspot.com/search/label/Space%20Automation.

Page 24: CSSE 490 - Requirements

24Questions?

What’s a feature?• Feature = details of clients’ wants & needs

• Prioritize by asking how much they want it:

Don’t want! Need!

Wouldn’t Don’t Don’t Like Gotta

buy it if it like it care it have it!

has that!

Page 25: CSSE 490 - Requirements

25Questions?

What’s a feature?

Figure from http://www.protoolkits.com/Analysisandrequirements/needsfeaturesandrequirements.html.

Req

Sys

Another view:

• Req start as “needs and wants”

• Usually explore Req top-down

• Would like to build Sys bottom-up (and it all magically works when integrated!)

• Not bloody likely! – need to match Req and Sys being built, at each level!

Page 26: CSSE 490 - Requirements

26Questions?

What’s a feature?

Then, are these features (on a messaging Sys)?• Send to multiple recipients • Set min/max password length • Display active topics of all subforums • Set search flood interval to limit server load • Templates are cached • Set group avatar

What issues do these features bring out?

From http://www.phpbb.com/about/features/.

Page 27: CSSE 490 - Requirements

27Questions?

What you wanted in this course (review)

• Functional Req for software

• User Req

• Automation / swre Req

• Build on Sys Engg (3 people)

• Product management / customer specs

• Product management / internal (sales & applied engineering) & external

Page 28: CSSE 490 - Requirements

28Questions?

Bonus – What kinds of questions could be on an exam?

• So, when can you stop doing requirements?• XP claims you can just get short “user

stories” at the start of a project, use that to plan stages based on those stories. Later, you get the details. When would this work well, and when not?

• How are requirements inherently different when coming from a product manager, versus coming directly from a key customer?

• Besides the existing SOP’s , what else must you know about the environment to close the Time loop in the problem statement?

• It is commonly claimed that requirements is an analysis, whereas engineering proper is a synthesis. Argue the reverse.

• What’s the proper order for the following activities, and why is that best?

– Designing acceptance tests for the product – Getting the requirements from a customer– Architecting the product– Planning how to build the product– Detailing the product design

• Suppose you need to find out what your wife (girlfriend) wants for her birthday, but you can’t ask her directly. Write the conversation that would take place through which you would discover what she wanted.

• Everyone knows you should separate problem from solution. Then why does everyone mess up on this, and jump right to trying to solve it, after the client finishes his first sentence about requirements?

• A lot of the value of having a problem statement comes from being able to match it against the high-level design. When you do that, what should you expect the designers to do?

• In doing iterative development, everyone gets into starting the next cycle with just a list of new features and old bugs. They then try to prioritize that list, and figure out how much can be done in some timeframe. Propose a better basis for iterative cycles, and explain why it’s better!