CSE P503: Principles of Software Engineering
David Notkin Autumn 2007 Dogs must be carried Shoes must be worn
[Example from Michael Jackson]
CSE P503: Principles of Shoes must Software be worn Engineering - - PowerPoint PPT Presentation
CSE P503: Principles of Shoes must Software be worn Engineering David Notkin Autumn 2007 Dogs must be carried [Example from Michael Jackson] Principle 0: Establish communication Tommy, can you hear me? Do you copy? Can you hear me
[Example from Michael Jackson]
UW CSE P503 David Notkin ● Autumn 2007 2
UW CSE P503 David Notkin ● Autumn 2007 3
– Wilde or Shaw or Churchill
Dogs must be carried Shoes must be worn
One Hour Parking 8AM to 5PM Swedish Train Ticket Machine
Continue Correct
UW CSE P503 David Notkin ● Autumn 2007 4
UW CSE P503 David Notkin ● Autumn 2007 5
UW CSE P503 David Notkin ● Autumn 2007 6
UW CSE P503 David Notkin ● Autumn 2007 7
UW CSE P503 David Notkin ● Autumn 2007 8
UW CSE P503 David Notkin ● Autumn 2007 9
product design
quantitatively evaluated)
underappreciated or ignored by practitioners
reusability, testing
specifications
UW CSE P503 David Notkin ● Autumn 2007 10
management
and then releasing it such that customers are not adversely affected
UW CSE P503 David Notkin ● Autumn 2007 11
UW CSE P503 David Notkin ● Autumn 2007 12
UW CSE P503 David Notkin ● Autumn 2007 13
UW CSE P503 David Notkin ● Autumn 2007 14
UW CSE P503 David Notkin ● Autumn 2007 15
UW CSE P503 David Notkin ● Autumn 2007 16
progress of anything; a turning-point; also, a state of affairs in which a decisive change for better or worse is imminent” [OED]
affairs in which a decisive change is impending; especially : one with the distinct possibility of a highly undesirable outcome” [Merriam-Webster] – Cuban missile crisis – Subprime lending crisis – AIDS crisis – …
imminent in software engineering?
possibility of a highly undesirable outcome for software engineering?
UW CSE P503 David Notkin ● Autumn 2007 17
UW CSE P503 David Notkin ● Autumn 2007 18
included related industries like software services]
UW CSE P503 David Notkin ● Autumn 2007 19
UW CSE P503 David Notkin ● Autumn 2007 20
UW CSE P503 David Notkin ● Autumn 2007 21
believing that I am terribly dogmatical about [the goto statement]. I have the uncomfortable feeling that others are making a religion out of it, as if the conceptual problems of programming could be solved by a single trick, by a simple form of coding discipline!” [E. Dijkstra]
a method enthusiast. The best advice comes from people who care more about your problem than about their solution.” [M. Jackson,
Principle of Dispassionate Methodology]
UW CSE P503 David Notkin ● Autumn 2007 22
– They have pushed research, and in some cases industry, forward in important and impressive ways
– “Program testing can be used to show the presence of bugs, but never to show their absence!” [1970] – In other words, proving properties across all possible executions is good, while sampling across executions is inherently flawed
– Need I note that most of industry uses dynamic approaches, often exclusively?
UW CSE P503 David Notkin ● Autumn 2007 23
Deadlock Freedom from races Data structure invariants
UW CSE P503 David Notkin ● Autumn 2007 28
UW CSE P503 David Notkin ● Autumn 2007 29
UW CSE P503 David Notkin ● Autumn 2007 30
UW CSE P503 David Notkin ● Autumn 2007 31
UW CSE P503 David Notkin ● Autumn 2007 32
UW CSE P503 David Notkin ● Autumn 2007 33
a television
lanes to bridges
at airports
languages to European Union documents
for an entirely new document type (e.g., digital pens)
an order of magnitude (pick your dimension)
desktop productivity suite
languages to a tool
UW CSE P503 David Notkin ● Autumn 2007 34
UW CSE P503 David Notkin ● Autumn 2007 35
by largely well-known and well-understood laws of physics – Many of these laws rely on notions of continuity, where small changes in an input generally – and under well-defined conditions – lead to a small change in the output – Continuous mathematics is a powerful model for these systems
input often lead to discontinuous changes in the output – The state spaces are enormous, and we have far less mathematics
[Norman Augustine]
UW CSE P503 David Notkin ● Autumn 2007 36
development is condemned in no uncertain terms
crisis, right? “The Standish Group [1994] research shows a staggering 31.1% of projects will be canceled before they ever get completed. Further results indicate 52.7% of projects will cost 189% of their original
just the tip of the proverbial iceberg. The lost
UW CSE P503 David Notkin ● Autumn 2007 37
UW CSE P503 David Notkin ● Autumn 2007 38
UW CSE P503 David Notkin ● Autumn 2007 39
the machine before being targeted – several died
– The code wasn’t independently reviewed – The software wasn’t considered during reliability modeling – A physical interlock present in earlier models was removed; the interlock had masked software defects in those earlier models – The software could not verify that sensors were working correctly – Experienced operators could enable a dangerous race condition – evidently testing was done with inexperienced operators – A flag variable was set by incrementing it, with overflow weakening the error checking
management and more – but at least popularly, this is viewed as a tragic example of a software failure
UW CSE P503 David Notkin ● Autumn 2007 40
UW CSE P503 David Notkin ● Autumn 2007 41
UW CSE P503 David Notkin ● Autumn 2007 42
UW CSE P503 David Notkin ● Autumn 2007 43
UW CSE P503 David Notkin ● Autumn 2007 44
Year Proportion of software maintenance costs Definition Reference 2000 >90% Software cost devoted to system maintenance & evolution / total software costs Erlikh (2000) 1993 75% Software maintenance / information system budget (in Fortune 1000 companies) Eastwood (1993) 1990 >90% Software cost devoted to system maintenance & evolution / total software costs Moad (1990) 1990 60-70% Software maintenance / total management information systems (MIS) operating budgets Huff (1990) 1988 60-70% Software maintenance / total management information systems (MIS) operating budgets Port (1988) 1984 65-75% Effort spent on software maintenance / total available software engineering effort. McKee (1984) 1981 >50% Staff time spent on maintenance / total time (in 487 organizations) Lientz & Swanson (1981) 1979 67% Maintenance costs / total software costs Zelkowitz et al. (1979)
UW CSE P503 David Notkin ● Autumn 2007 45
UW CSE P503 David Notkin ● Autumn 2007 46
UW CSE P503 David Notkin ● Autumn 2007 47
docs.sun.com/source/801-7837/images/6-1-8D82.gif
UW CSE P503 David Notkin ● Autumn 2007 48
UW CSE P503 David Notkin ● Autumn 2007 49
UW CSE P503 David Notkin ● Autumn 2007 50
UW CSE P503 David Notkin ● Autumn 2007 51
UW CSE P503 David Notkin ● Autumn 2007 52
UW CSE P503 David Notkin ● Autumn 2007 53
UW CSE P503 David Notkin ● Autumn 2007 54
UW CSE P503 David Notkin ● Autumn 2007 55
UW CSE P503 David Notkin ● Autumn 2007 56
UW CSE P503 David Notkin ● Autumn 2007 57
UW CSE P503 David Notkin ● Autumn 2007 58
UW CSE P503 David Notkin ● Autumn 2007 59
UW CSE P503 David Notkin ● Autumn 2007 60
UW CSE P503 David Notkin ● Autumn 2007 61
UW CSE P503 David Notkin ● Autumn 2007 62