Jump to content

David Parnas: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
fix ref probs
Line 32: Line 32:


==Modular design==
==Modular design==
In [[modular design]] his double dictum of high [[Cohesion (computer science)|cohesion]] within modules and loose [[Coupling (computer science)|coupling]] between modules is fundamental to modular design in software. However, in Parnas's seminal 1972 paper ''[http://www.acm.org/classics/may96/ 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.
In [[modular design]] his double dictum of high [[Cohesion (computer science)|cohesion]] within modules and loose [[Coupling (computer science)|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.<ref name="modules_paper">
{{cite web
| url = http://www.cs.umd.edu/class/spring2003/cmsc838p/Design/criteria.pdf
| title = On the Criteria To Be Used in Decomposing Systems into Modules
}}
</ref>


==Technical activism==
==Technical activism==
Line 60: Line 65:
*[http://www.cas.mcmaster.ca/sqrl/parnas.homepg.html McMaster University homepage]
*[http://www.cas.mcmaster.ca/sqrl/parnas.homepg.html McMaster University homepage]
*[http://www.sqrl.ul.ie/profiles/David.pdf University of Limerick profile] and [http://www.sqrl.ul.ie/Downloads/dlparnas%20vitae-pdf.pdf CV] ([[PDF]])
*[http://www.sqrl.ul.ie/profiles/David.pdf University of Limerick profile] and [http://www.sqrl.ul.ie/Downloads/dlparnas%20vitae-pdf.pdf CV] ([[PDF]])
*[http://www.acm.org/classics/may96/ On the Criteria to Be Used in Decomposing Systems into Modules]
*[http://www.informit.com/store/product.aspx?isbn=0201703696 Software Fundamentals: Collected Papers by David L. Parnas] at Addison Wesley online bookstore
*[http://www.informit.com/store/product.aspx?isbn=0201703696 Software Fundamentals: Collected Papers by David L. Parnas] at Addison Wesley online bookstore
*[http://portal.acm.org/citation.cfm?id=1297815&coll=ACM&dl=ACM&CFID=7006488&CFTOKEN=52285372 Stop the numbers game]
*[http://portal.acm.org/citation.cfm?id=1297815&coll=ACM&dl=ACM&CFID=7006488&CFTOKEN=52285372 Stop the numbers game]
*[http://www.computer.org/portal/site/ieeecs/menuitem.c5efb9b8ade9096b8a9ca0108bcd45f3/index.jsp?&amp;pName=ieeecs_level1&amp;path=ieeecs/about/awards&amp;file=60aaPresentation.xml&amp;xsl=generic.xsl IEEE Computer Society's 60th Anniversary Award]
*[http://www.computer.org/portal/site/ieeecs/menuitem.c5efb9b8ade9096b8a9ca0108bcd45f3/index.jsp?&amp;pName=ieeecs_level1&amp;path=ieeecs/about/awards&amp;file=60aaPresentation.xml&amp;xsl=generic.xsl IEEE Computer Society's 60th Anniversary Award]
* [http://www.cs.umd.edu/class/spring2003/cmsc838p/Design/criteria.pdf On the Criteria to Be Used in Decomposing Systems into Modules] ([[PDF]])


==References==
==References==
{{reflist}}
<references/>


== Further reading ==
== Further reading ==

Revision as of 22:41, 12 May 2008

David Parnas
Born (1941-02-10) 10 February 1941 (age 83)
Scientific career
Doctoral advisorAlan Perlis
Everhard Mott Williams
Doctoral studentsRichard J. Lipton

David Lorge Parnas (born February 10, 1941) is an early pioneer of software engineering who developed the concept of module design which is the foundation of object oriented programming today. He is also noted for his advocacy of technical realism.

Career

David earned his Ph.D. at Carnegie Mellon University in electrical engineering and 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), and Queen's University (Ontario, Canada). He then went to McMaster University in Hamilton, Ontario, Canada, in 1991. Since 2002, David Parnas has worked at the University of Limerick in Limerick, Ireland. Parnas also earned a professional engineering license in Canada and was one of the first to apply traditional engineering principles to software design.

Modular design

In modular design his double dictum 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. 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.

Awards and honors

Quotations

...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.[2]
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]

See also

References

  1. ^ "On the Criteria To Be Used in Decomposing Systems into Modules" (PDF).
  2. ^ Communications of the ACM, Volume 15, Issue 12, Pages: 1053-1058, Year: 1972
  3. ^ "David Parnas on Software Engineering". Retrieved 2007-11-07.

Further reading

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