use-case is everything

23
Use-Case is EVERYTHING! Software Engineering 1 Use-Case is Everything!

Upload: chinmay-v-s

Post on 20-Aug-2015

327 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: Use-Case is Everything

Use-Case is Everything! 1

Use-Case isEVERYTHING!

Software Engineering

Page 2: Use-Case is Everything

Use-Case is Everything! 2

DisclaimerThe purpose of this slide deck is

to highlight the importance of a

good requirements gathering processin software development.

(~,~)

Breaking the ENIGMA code was an amazing feat of reverse-engineering.

The events described below are not meant to belittle the task in any way.

Page 3: Use-Case is Everything

Use-Case is Everything! 3

Remember Alan Turing?

The guy who developed the system

used to defeat the

Nazi

ENIGMA encryption.

Page 4: Use-Case is Everything

Use-Case is Everything! 4

Remember Alan Turing?

• …actually, this is Alan Turing.

• Pioneering…– computer scientist– Mathematician– Logician– Cryptanalyst– Philosopher– mathematical biologist– marathon runner

Why enigma?... …because no one else is doing anything about it

and I can have it to myself…

Page 5: Use-Case is Everything

The Engineering Team

5

ProjectManager

Lead Executive Manager

Software Engineers

Use-Case is Everything!

Guys! Requirement = Break ENIGMA!

Page 6: Use-Case is Everything

The Engineering Team

6Use-Case is Everything!

• Used £100,000 ($6Million in today’s terms).• Spent 30 man-months.• Result ?

ummm… OK!

Page 7: Use-Case is Everything

Use-Case is Everything! 7

A “Bombe”

* operator not included.

Page 8: Use-Case is Everything

Use-Case is Everything! 8

The bombe ran . . .

Page 9: Use-Case is Everything

Use-Case is Everything! 9

. . . and ran . . .

Page 10: Use-Case is Everything

Use-Case is Everything! 10

. . . and ran . . .

Page 11: Use-Case is Everything

Use-Case is Everything! 11

. . . until it was switched-off.

Page 12: Use-Case is Everything

Use-Case is Everything! 12

Requirements? What requirements?(a.k.a. requirement = requirements)

Doesn’t work??The bombe was still running, trying to break the code.Isn’t that what you wanted!!??

Yes. But the requirement was to break the code within a “reasonable” time-frame.

Oh! Ok.Since code is changed daily,Time to break code < 24hrs.

Page 13: Use-Case is Everything

So who gathers use-cases?

13

ProjectManager

Lead Executive Manager

Software Engineers

Use-Case is Everything!

Page 14: Use-Case is Everything

Use-Case is Everything! 14

So who gathers use-cases?

…but did not prioritise this over other tasks. Only to end-up forgetting this when put under a strict deadline.

In fact, Alan Turing did start gathering use-cases early-on…

Page 15: Use-Case is Everything

Use-Case is Everything! 15

Luckily, someone else wasgathering use-cases !

Each message always starts with…

Not this guy

Customer facing field engineer

Page 16: Use-Case is Everything

Use-Case is Everything! 16

. . . and just like that . . .

ENIGMA is promptly broken in 5 minutes

Page 17: Use-Case is Everything

Use-Case is Everything! 17

OK. So what?

Page 18: Use-Case is Everything

Use-Case is Everything! 18

Remember the bombe?

* operator not included.

Looks familiar?

Page 19: Use-Case is Everything

Use-Case is Everything! 19

“Bombe” vs. Software

Is this block required?

Page 20: Use-Case is Everything

Use-Case is Everything! 20

Requirements “Features”

What is possible to engineerwithin the feature

What is actually requiredto be engineeredwithin the feature

What is notpart of the feature(but requested by the customer)

Supported Feature Customer Requirements

Page 21: Use-Case is Everything

Use-Case is Everything! 21

Requirements “Features”

TODO.

When I have a hammer,everything looks like a nail to me.

Supported Features Customer Requirements

Page 22: Use-Case is Everything

Use-Case is Everything! 22

TL;DR

• Gather use-cases before designing.– Prepare a comprehensive set of use-cases.

• Know all the use-cases before starting out to implement the design.

• Let the customer know what use-cases the system will handle once ready.– Essentially letting the customers know of any shortcomings

in the input requirements provided by them.

Page 23: Use-Case is Everything

Use-Case is Everything! 23

References

• http://en.wikipedia.org/wiki/Alan_Turing#Hut_8_and_Naval_Enigma

• http://en.wikipedia.org/wiki/Cryptanalysis_of_the_Enigma

• http://www.imdb.com/title/tt2084970/

Linkedin.com/in/chinmayvs

TheCodeArtist.blogspot.com

StackOverflow.com/users/319204/TheCodeArtist