cnotes4 - . Outline: Software Design Goals History of...

Info iconThis preview shows pages 1–7. Sign up to view the full content.

View Full Document Right Arrow Icon
c . Outline: Software Design Goals History of software design ideas Design principles Design methods Life belt or leg iron? (Budgen) Copyright Nancy Leveson, Sept. 1999
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
c A Little History . .. At first, struggling with programming languages, small programs, math algorithms. Worried about giving instructions to machine (efficiency) "Think like a computer" Found that life cycle costs depend far more on how well communicates with people than how fast it runs. Separated the two and more emphasis began on How to write software to communicate algorithms and structure to humans How to structure design process itself. Copyright Nancy Leveson, Sept. 1999
Background image of page 2
Structured Programming Goal: mastering complexity Dijkstra, Hoare, Wirth: Construction of correct programs requires that programs be intellectually manageable Key to intellectual manageability is the structure of the program itself. Disciplined use of a few program building blocks facilitates correctness arguments. c Copyright Nancy Leveson, Sept. 1999
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Structured Programming (2) Restricted control structures Levels of abstraction Stepwise refinement Program families Abstract data types System structure: Programming-in-the-large vs. programming-in-the-small Modularization Minimizing connectivity Copyright c Nancy Leveson, Sept. 1999
Background image of page 4
Restricting Control Structures Dijkstra: 3 main mental tools Enumerative reasoning Mathematical induction Abstraction (e.g., variable, procedure, data type) 1. Restrict programs to constructs that allow us to use these mental aids. Sequencing and alternation (enumeration) Iteration and recursion (induction) Procedures, macros, and programmer-defined data types SESX Small procedures Make program structure fit problem structure. 2. c Copyright Nancy Leveson, Sept. 1999
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Levels of Abstraction 1968: Dijkstra paper on his experiences with T.H.E. Multiprograming system
Background image of page 6
Image of page 7
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 16

cnotes4 - . Outline: Software Design Goals History of...

This preview shows document pages 1 - 7. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online