Levels of abstraction 1968: Dijkstra paper on his experiences with T.H. E Multiprograming system Designed using "levels of abstraction System design described in layers Higher levels could use services of lower levels Lower levels could not access higher levels Lowest level implemented first Provided a virtual machine"for implementation of next level Process continued until highest level completed a bottom up"technique Copyright Nancy Leveson, Sept 1999
Levels of Abstraction 1968: Dijkstra paper on his experiences with T.H.E. Multiprograming system Designed using "levels of abstraction" System design described in layers Higher levels could use services of lower levels Lower levels could not access higher levels Lowest level implemented first Provided a "virtual machine" for implementation of next level Process continued until highest level completed. A "bottom up" technique Copyright Nancy Leveson, Sept. 1999 c �
Stepwise Refinement Wirth(1971): Divide and conquer A top-down technique for decomposing a system from preliminary design specification of functionality into more elementary levels Program construction consists of sequence of refinement steps Use a notation natural to problem as long as possible Refine function and data in parallel Each refinement step implies design decisions. Should be made explicit cy Leveson, Sept 1999
Stepwise Refinement Wirth (1971): "Divide and conquer" A top-down technique for decomposing a system from preliminary design specification of functionality into more elementary levels. Program construction consists of sequence of refinement steps. Use a notation natural to problem as long as possible. Refine function and data in parallel. Each refinement step implies design decisions. Should be made explicit. Copyright Nancy Leveson, Sept. 1999 c �