David Parnas
David Parnas

Born 10 February 1941 (1941-02-10) (age 70)
Doctoral advisor Alan Perlis
Everhard Mott Williams
Doctoral students Richard J. Lipton
Denise Woit

David Lorge Parnas (born February 10, 1941) is a Canadian early pioneer of software engineering, who developed the concept of information hiding in modular programming, which is an important element of object-oriented programming today. He is also noted for his advocacy of precise documentation.


Parnas earned his Ph.D. at Carnegie Mellon University in electrical engineering. Parnas also earned a professional engineering license in Canada and was one of the first to apply traditional engineering principles to software design. He worked there as a professor for many years. He also taught at the University of North Carolina at Chapel Hill (U.S.), the Technische Hochschule Darmstadt (Germany), the University of Victoria (British Columbia, Canada), McMaster University in Hamilton, Ontario, and University of Limerick (Limerick, Republic of Ireland).

David Parnas received several awards and honors


Modular design

In modular design, his double dictum[citation needed] of high cohesion within modules and loose coupling between modules is fundamental to modular design in software. However, in Parnas's seminal 1972 paper On the Criteria to Be Used in Decomposing Systems into Modules, this dictum is expressed in terms of information hiding, and the terms cohesion and coupling are not used.[1]

Technical activism

Dr. Parnas took a public stand against the US Strategic Defense Initiative (also known as "Star Wars") in the mid 1980s, arguing that it would be impossible to write an application of sufficient quality that it could be trusted to prevent a nuclear attack.[2] He has also been in the forefront of those urging the professionalization of "software engineering" (a term that he characterizes as "an unconsummated marriage"). Dr. Parnas is also a heavy promoter of ethics in the field of software engineering.

Stance on academic evaluation methods

Dr. Parnas has joined the group of scientists which openly criticize the number-of-publications-based approach towards ranking academic production. On his November 2007 paper Stop the Numbers Game, he elaborates on several reasons on why the current number-based academic evaluation system used in many fields by universities all over the world (be it either oriented to the amount of publications or the amount of quotations each of those get) is flawed and, instead of generating more advance of the sciences, it leads to knowledge stagnation.


...it is almost always incorrect to begin the decomposition of a system into modules on the basis of a flowchart. We propose instead that one begins with a list of difficult design decisions or design decisions which are likely to change. Each module is then designed to hide such a decision from the others.[1]
I would advise students to pay more attention to the fundamental ideas rather than the latest technology. The technology will be out-of-date before they graduate. Fundamental ideas never get out of date. However, what worries me about what I just said is that some people would think of Turing machines and Goedel's theorem as fundamentals. I think those things are fundamental but they are also nearly irrelevant. I think there are fundamental design principles, for example structured programming principles, the good ideas in "Object Oriented" programming, etc.[3]
Artificial intelligence has the same relation to intelligence as artificial flowers have to flowers. From a distance they may appear much alike, but when closely examined they are quite different.[4]

See also


Further reading

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

External links

Wikimedia Foundation. 2010.

Look at other dictionaries:

  • David Parnas — David Parnas. David Lorge Parnas (* 10. Februar 1941 in Plattsburgh, New York) ist ein Pionier der Softwaretechnik. Er entwickelte das Modulkonzept, welches mit seinem Geheimnisprinzip eine wesentliche Grundlage der heutigen objektorientierten… …   Deutsch Wikipedia

  • David Parnas — en 2002. David Lorge Parnas, né le 10 février 1941 dans l État de New York, est un informaticien canadien pionnier du génie logiciel. Il est le développeur du principe d encapsulation en programmation modulaire, concept aujourd hui… …   Wikipédia en Français

  • Parnas — may refer to: *David Parnas, an early pioneer of software engineering who developed the concept of module design which is the foundation of object oriented programming today *Jakub Karol Parnas, Polish biochemist *Parnas (Saint Petersburg Metro) …   Wikipedia

  • Parnas — Ein Parnas ist der Vorsteher einer jüdischen Gemeinde. Personen mit dem Namen Parnas: David Parnas (Pionier der Softwaretechnik) Jakub Karol Parnas (1884 1949), polnischer Biochemiker Diese Seite ist ein …   Deutsch Wikipedia

  • DAVID BEN JOSHUA — (d. 1647), head and emissary of the karaite community in Jerusalem. Originally from Egypt, David settled in Jerusalem in the early 17th century, where he helped to consolidate the Karaite community, later becoming its parnas. The anti Jewish… …   Encyclopedia of Judaism

  • HA-PARNAS, SEFER — (Heb. סֵפֶר הַפַּרְנָס), work by Moses Parnas, one of the pupils of meir b. baruch of Rothenburg, who lived in the first half of the 14th century. Almost nothing is known of its author. His work was well known to the scholars of Germany in the… …   Encyclopedia of Judaism

  • FRANKS, DAVID SALISBURY — (c. 1743–1793), U.S. merchant, a Revolutionary War officer, and patriot. Franks was born in Philadelphia. Three years after his registration in 1760 at the Philadelphia Academy (University of Pennsylvania), he went to Montreal as a merchant. He… …   Encyclopedia of Judaism

  • Liste der Biografien/Pan–Par — Biografien: A B C D E F G H I J K L M N O P Q …   Deutsch Wikipedia

  • Software engineer — A software engineer is an engineer who applies the principles of software engineering to the design, development, testing, and evaluation of the software and systems that make computers or anything containing software, such as computer chips,… …   Wikipedia

  • Waterfall model — The waterfall model is a sequential design process, often used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation, Analysis, Design,… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”