David Parnas

From CSSEMediaWiki
Jump to: navigation, search

Contents

David Lorge Parnas

David Parnas is a very influential early pioneer of 'software engineering', or the application of engineering principles to software design. Parnas himself described the term 'software engineering' as an "unconsummated marriage" (Parnas, D.L., (1997). Software Engineering: An Unconsummated Marriage, Communications of the ACM, 40(9), p. 128.). In the object-oriented world, Parnas is best-known for introducing the term information hiding into software engineering.

Modular design

Parnas commented on different approaches to modular design in software engineering in several papers.

In 1972 he published the influential 'On the Criteria to be Used in Decomposing Systems into Modules', a paper discussing "modularization as a mechanism for improving the flexibility and comprehensibility of a system while allowing the shortening of its development time". In this he compares two methods of modularisation: one which bases modules on stages in a process flow, and one which is based on information hiding:
"every module in the second decomposition is characterized by its knowledge of a design decision which it hides from all others. Its interface or definition is chosen to reveal as little as possible about its inner workings".

In his comparison, Parnas showed the advantages of the information hiding approach in terms of changeability (changes to the specification required changes only in one module), independent development of modules (because the interfaces themselves are more abstract rather than encoding specific design decisions), and comprehensibility (each information hiding module can be understood on its own; the process-flow modules are only comprehensible as parts of a whole system). (Parnas, D.L. (1972). On the Criteria to be Used in Decomposing Systems into Modules. Communications of the ACM, 15(12), pp.1053-1058.)

In 1985 Parnas discussed the sequential stages or process-driven approach to software design further in 'Software Aspects of Strategic Defense Systems'. In this he criticises what he characterises as a 'think like a computer' approach to software design - "think about what the computer had to do first and write that down ...think about what the computer had to do next and continue in that way ...". Describing this as intuitively appealing but simplistic he concludes "It should be clear that writing and understanding very large real-time programs by 'thinking like a computer' will be beyond our intellectual capabilities". (Parnas, D.L. (1985). Software Aspects of Strategic Defense Systems. American Scientist, 73, pp. 432-440.)

Testing , reliability and software designers' promises

Parnas published the paper 'Software Aspects of Strategic Defense Systems' to explain his decision to step down from his position on the software team for Ronald Reagan's 'Star Wars' Strategic Defense Initiative when he has concluded - along with other software experts - that an application which could be completely trusted to defend against a nuclear attack could not be written and tested. In the paper he comments on software reliability and testing: "Programming is a trial and error craft. People write programs without any expectation that they will be right the first time ... Software is released for use, not when it is known to be correct, but when the rate of discovering errors slows to one that management considers appropriate." Wikipedia note that Parnas' decision to resign from Star Wars and make public his concerns about the aims and assumptions of the project are evidence of his commitment to ethics in software engineering.

See also

David Parnas' web-vitae

Hoffman, Daniel M., Weiss David M. (Eds.) (2001). Software Fundamentals – Collected Papers by David L. Parnas. Addison-Wesley.

Personal tools