amber-developers: interfaces references

From: Scott Brozell <sbrozell.scripps.edu>
Date: Fri, 20 Oct 2006 14:57:55 -0700

Hi,

Here are some annotated references to some good books on designing
interfaces. My previous 'optimization references' post has many
that deal with interfaces; and I have only duplicated the first
one from that list.

The most engaging digestable overall discussion of programming.
Includes chapters on interfaces and performance.
.book{kernighan99,
  author = "{Brian W. Kernighan and Rob Pike}",
  title = "The Practice of Programming",
  publisher = "Addison--Wesley",
  address = "Reading, Mass.",
  year = 1999 }


This classic text presents the concepts of cohesion and coupling.
Software should be constructed from highly cohesive, loosely coupled
pieces. I have noticed that scientific software frequently fails in this
regard due to method-itis without redesign: start with a decent comp
chem program, add method A, then add method C, then method B, ...
and before u know it once cohesive components are diluted and tightly
coupled to other pieces via all manner of mostly undocumented cleverness.
.book{yourdon78,
  author = "{Edward Yourdon and Larry L. Constantine}",
  title = "Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design",
  edition = "Second",
  publisher = "Yourdon Press",
  address = "New York",
  year = 1978 }

Here is another entry from Kernighan which espouses reading and writing
good software. The result is simple versions of many great unix tools.
.book{kernighan81,
  author = "{Brian W. Kernighan and P. J. Plauger}",
  title = "Software Tools in Pascal",
  publisher = "Addison--Wesley",
  address = "Reading, Mass.",
  year = 1981 }

Another classic. Although the focus and details are on object
oriented software, the generality, depth, and craftmanship are
applicable to all programming.
.book{gamma95,
  author = "{Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides}",
  title = "Design Patterns: Elements of Reusable Object-Oriented Software",
  publisher = "Addison--Wesley",
  address = "Boston",
  year = 1995 }


.article{dubois2002,
  author = "{Paul F. Dubois}",
  title = "Designing Scientific Components",
  journal = cse,
  volume = 4,
  number = 5,
  pages = {84--90},
  month = "Sep./Oct.",
  year = 2002 }
.string{cse = "Computing in Science and Engineering"}
Received on Sun Oct 22 2006 - 06:07:30 PDT
Custom Search