comp.lang.ada
 help / color / mirror / Atom feed
* Re: About software engineering now..
       [not found] ` <6sadnWWZptJrpyrKnZ2dnUU7-X_NnZ2d@giganews.com>
@ 2016-08-19 19:55   ` Jeffrey R. Carter
  0 siblings, 0 replies; only message in thread
From: Jeffrey R. Carter @ 2016-08-19 19:55 UTC (permalink / raw)


On 08/19/2016 09:59 AM, Norman Worth wrote:
> It looks the same as it did 50 years ago.  But each new group of programmers
> needs to be taught this stuff.

Indeed. In /Software Tools/ (1976), Kernighan and Plauger use the term "computer
programming", but they're actually talking about design and software
engineering. Their summary of important points includes

"/Controlling complexity/ is the essence of computer programming."

"Each module is also /cohesive/ ..."

"[T]he modules are kept as uncoupled as possible, and the coupling that exists
is kept visible."

"We tried to make the programs easy to modify, by hiding design decisions and
data structures so that routines that don't need to know about them don't."

Simplicity. Modules. Cohesion. Low coupling. Information hiding. Still basic
concepts of software engineering. Too bad 98% of developers can't understand
them, no matter what they're taught. Too bad most of the commonly used languages
still don't have modules, and don't have information hiding, or combine it with
unrelated concepts.

They also list 3 additional principles:

1. "Keep it simple." (Control complexity.)

2. "Build it in stages." (Iterative development. Prioritized requirements. You
may never need to implement the low-priority features.)

3. "Let someone else do the hard part." (Design for reuse, and reuse during design.)

-- 
Jeff Carter
"I'm a vicious jungle beast!"
Play It Again, Sam
131

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2016-08-19 19:55 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <np27hc$78r$13@dont-email.me>
     [not found] ` <6sadnWWZptJrpyrKnZ2dnUU7-X_NnZ2d@giganews.com>
2016-08-19 19:55   ` About software engineering now Jeffrey R. Carter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox