Chapter 3. Software Design Principles

Before looking at the technical aspects of what makes a good software application we should establish what we think constitutes good software.

A good software application should:

  • Enable small changes in users' needs to be accommodated by small changes in the code

  • Be delivered on time and on budget

  • Function mostly to expectations

  • Be easy to use

  • Be maintainable

  • Perform well

  • Fail gracefully

  • Be secure

  • Work reliably

Why is Software Complex?

 

. . . software seems like malleable stuff, most programs are actually intricate plexuses of brittle logic through which data of only the right kind may pass.[1]

 
 --W. Waytt Gibbs, “Software's Chronic Crisis”

Software can be thought of as a machine that has many states, with these states ...

Get A Software Engineering Approach to LabVIEW™ now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.