Software Quality in Unbounded Networks

Lecture 2
10/22/98
Scribe: Stephanie Hill

Today's topic: Software Quality Attributes

Information covered in this lecture is from an SEI paper from January 1996, excerpts from which
    will be distributed in the next lecture.
Discussion of what is a technology
The paper focuses on a way to categorize technologies by their application areas (particularly in
    software). There are two taxonomies:

  1. Applications used in operational systems
  2. Applications used to support operational systems

Software Measures taxonomy (one focused on today)
Focus of this taxonomy are the quality attributes and the technologies that support them
This taxonomy should be complete--meaning that everything should fit into this perspective
    Five major categories:

  1. needs satisfaction measures
  2. performance measures
  3. maintenance measures
  4. adaptive measures
  5. operational measures

Each of these categories has certain quality attributes associated with them (i.e. portability falls under
    adaptive measures)

General information relating to quality attributes:
Total cost is highest in the later phases of the software life cycle (i.e. testing, maintenance)
Cost of ownership (catch all category): relates costs to each area and attribute.
The highest cost is the loss of lifetime of a system because of delay in implementation
Quality measure software--feature of characteristic use to ensure the quality of a system or
    component (definition off one of the slides)
Measuring mean time to failure in something that doesn't degrade over time is simply measuring your
    testing methods
Correctness is something that can't be measured in an unbounded network because there are no
    original specifications and can't see the final design (there isn't one and you'd have a visibility
     problem anyway)
Lots of earlier stages where you can make mistakes that will affect later stages
Most qualities are harder to measure in network environment because the traditional ground rules
    don't apply
Example: consistency in a database vs. a distributed database
    Easy to keep consistency in a solitary database
    Very difficult or impossible to maintain consistency in a distributed database; This is because
        communications have delay and can't propagate changes immediately