From: Jeffrey Carter <jrcarter@acm.org>
Subject: Re: Designing Packages and programs for a newbie.
Date: Sat, 23 Nov 2002 01:36:44 GMT
Date: 2002-11-23T01:36:44+00:00 [thread overview]
Message-ID: <3DDEDC0F.60903@acm.org> (raw)
In-Reply-To: ybAD9.113316$QZ.18519@sccrnsc02
Stapler wrote:
> First, I'm looking for perhaps some good introductory docs/texts on the
> design process and the different approaches taken.
Good design is the process of creating useful abstractions. Examples
include abstracting entities external to the software that the software
must interact with (external interfaces) and major data structures
internal to the software.
An Ada package is usually an implementation of an abstraction. As such
its specification should hide the implementation of the abstraction and
only expose what is necessary for the client to use that abstraction.
My experience indicates that creating useful abstractions is a skill
that cannot be taught or learned. In addition, it's a fairly rare skill.
That you recognize deficiencies in your early designs is a good sign.
Those who have the skill seem to realize what is needed from seeing good
examples, while those who don't never do.
This is a major cause of the poor state of software. Anyone who can
write code is considered qualified to design software. This is why we
see major projects that are designed around a types package, a variables
package, a hardware package, and a processing package.
> Because my applications are limited in scope, performance isn't a
> problem. However I like to see just how small I can make the binary
> executable. Are there any design pointers you would suggest that might
> help in this regard?
This is an irrelevant consideration. For certain applications you may be
constrained by the amount of memory available to hold the application,
but executable file size is often not a good measure even of that.
--
Jeff Carter
"Now go away or I shall taunt you a second time."
Monty Python & the Holy Grail
next prev parent reply other threads:[~2002-11-23 1:36 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-11-23 0:44 Designing Packages and programs for a newbie Stapler
2002-11-23 1:02 ` achrist
2002-11-23 1:36 ` Jeffrey Carter [this message]
2002-11-24 16:57 ` Chad R. Meiners
2002-11-26 10:47 ` Georg Bauhaus
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox