comp.lang.ada
 help / color / mirror / Atom feed
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




  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