There are three classes of entities in software
Within each class of entity, we distinguish between (see Table 3.1)
- Processes are collections of software-related activities.
- Products are any artifact, deliverables or documnets that result from a process activity.
- Resources are entities required by a process activity.
Internal process attributes that can be measured directly are:
- Internal attributes of an entity are those that can be measured in terms of the entity itself, i.e., separate from its behaviour (eg. LOC).
- External attributes of an entity are those that can be mesured only with respect to how the entity relates to its environment, i.e., by observing its behaviour in its environment (eg. running time of a program on a particular machine). External attributes are often measured in terms of internal attributes.
There are many external product attributes like usabiltity, reliability, efficiency, testability, reusability, portability, interoperability, understandability just to mention some.
- the duration of a process or one of its activities;
- the effort associated with the process or one of its activities;
- the number of incidents of a specified type arising during the process or one of its activities.
Some internal product attributes like size, effort, and cost are easier to measure. Others are more difficult like code complexity. Further attributes are functionality, modularity, reuse, redundancy, structuredness, module coupling and cohesiveness.