1 Software qualities and problem statement

 

This chapter covers:

  • Evaluating software from different points of view and for different objectives
  • Distinguishing internal from external software qualities
  • Distinguishing functional from non-functional software qualities
  • Assessing interactions and tradeoffs between software qualities

The core idea of this book is to separately optimize the same class with respect to different code qualities. So, what are these qualities? First of all, the word quality should be intended as a characteristic that a piece of software may or may not have, not as its overall value. That’s why we talk about multiple qualities. Still, not all characteristics can be considered qualities. The programming language in which a piece of software is written is certainly a characteristic of that software, but not a quality. Qualities should be susceptible to be graded on a scale, at least in principle.

1.1  Mostly external software qualities

 
 
 
 

1.1.1  Correctness

 
 
 

1.1.2  Robustness

 

1.1.3  Usability

 
 
 

1.1.4  Efficiency

 
 

1.2  Mostly internal software qualities

 

1.2.1  Readability

 

1.2.2  Reusability

 
 

1.2.3  Testability

 
 

1.2.4  Maintainability

 
 
 

1.3  Interactions between software qualities

 
 
 

1.4  Special qualities

 
 
 

1.4.1  Thread safety

 
 

1.4.2  Succinctness

 
 
 

1.5  Structure of the book

 
 

1.6  Specifications for a system of water containers

 
 
 

1.6.1  The API

 

1.6.2  The use case

 
 

1.7  Data model and representations

 

1.7.1  Storing water amounts

 
 
 

1.7.2  Storing connections

 

1.8  Hello containers! Novice

 
 
 
sitemap

Unable to load book!

The book could not be loaded.

(try again in a couple of minutes)

manning.com homepage
test yourself with a liveTest