Make your own free website on

Homework 6

Software Metrics


Software metrics are the means by which software engineers measure and predict aspects of those processes, resources, and products that are relevant to the software engineering activitity. Metrics serve as the compass that guides the discipline in the search for efficient and effective solutions to complex problems. Future progress in the discipline will be closely tied to the ability of these netrics to provide accurate and timely information to those software engineers navigating the problem-solving problems.

Reference: Encyclopedia of Software Engineering, Volume 1, Volume 2 by John J. Marciniak

The five attributes of a complex system takes the form of a hierarchy, whereby a complex system is composed of interrelated subsytems that have in turn their own subsystem, so on, until some lowest level of elementary components is reached.

  1. Frequently, complexity takes the form of a hierarchy, whereby a complex system is composed of interrelated subsystems that have in turn their own subsystem, and so on, until some lowest level of elementary components is reached.
  2. The choice of what components in a system are primitive is relatively arbritary and is largely up to the discretion of the observer of the system.
  3. Intracomponent linkages are generally stronger than intercomponent linkages. This fact has the effect of separating the high-frequency dynamics of the components - involving the internal structure of the components - from the low-frequency dynamics - involving interaction among components.
  4. Hierarchy systems are usually composed of only a few different kinds of subsystems in various combinations and arrangements.
  5. A complex system that works is invariably found to have evolved from a simple system that worked ...A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over, beginning with a working simple system.


Object Oriented Metrics (OO Metrics)

... the use of the object model leads us to construct systems that embody the five attributes of well-structured complex systems ... there are five other practical benefits to be derived from the application of the object model.

  1. the use of the object model helps us to exploit the expressive power of all object-based and object-oriented programming languages.
  2. the use of the object model encourages the reuse not only of software of entire designs.
  3. the use of the object model produces systems that are built upon stable intermediate froms, and thus are more resilient to change.
  4. the object model reduces the risk of developing complex systems, primarily because intergration is spread out across the life cycle rather than occurring as one big bang event.
  5. the object model appeals to the working of human cognition."

Code Metrics

The most basic metric is the number of lines code(LOC), in a program. Basili and Hutchens (1983) suggest that this is a baseline metric to which all the other code metrics must be compared. Early work by Elshoff demonstrated that program size as measured by lines of code can be used to predict other properties such as reliability and so forth (Elshoff, 1978). Although there are various definitions of LOC, the most common statae that it is any line of program text not a comment or blank line, regardless of how manu statements are present in that line(Conte, 1986).

Reference: Encyclopedia of Software Engineering, Volume 1, Volume 2 by John J. Marciniak

Two Software Metrics to compare

  1. Hatteras Software - Object Oriented Metrics
  2. Object Technlogy International Inc., ENVY/QA - Code metrics

Hatteras Software

Hatteras Software is well known for software metrics. The OOMetric is a family of Hattera products that provide comprehensive support for managing your projects and improving your OO designs.

Hatteras Software Metrics Home Page




OOMetric/Project is the companion product to OOMetric/Developer, geared towards the manager or team leader of an OO project who will need to collect data, and present the results of the team's effort. OOMetric/Project uses the analysis results (or snapshots) from OOMetric/Developer and gathers project statistics from them. It also presents the design and quality metrics using more sophisticated reports and graphs.



The key to software development productivity is the primary basis for the interest in object technology. So, how do you achieve it? By using inheritance, encapsulation, and the other foundation concepts of OO and software engineering well. For many projects, that's easier said than done. Now, you've got real help! OOMetric/Developer allows you to analyze your OO designs and get detailed, specific advice of what needs fixing and how to fix it.

OOMetricPak/ VisualAge

The VisualAgeTM MetricPak defines OO metrics geared especially to your development of VisualAge applications. The MetricPak works with (link) OOMetric/Developer for VisualAge and (link) OOMetric/Project. Now, you've got real help! Add VisualAge-specific metrics to your OOMetric/Developer, including:

The metrics included in this MetricPak are

Connections per(non) visual part

Connections per visual part

Parts with default names and connections

Connections from DB results to GUI parts

Setter accessing methods that do not signal dependents

Nonvisual parts added directly

  • The number of nonvisual or Smalltalk parts added through the "Add part" menu option.
  • Public Interfaces

  • The number of attributes, events, actions, and promoted part features that are defined on the part's public interface for clients' use.




    ENVY/QA is a complete suite of quality assurance tools designed for software professionals. All of the quality management tools required to significantly improve software quality are provided in ENVY/QA.


    ENVY/QA provides quality assurance tools necessary for consistency in quality production software with fewer defect counts.



    ENVY/Developer is a collaborative component development systems for Smalltalk developers. ENVY/Developer supports concurrent development, shared repositories.ENVY/Developer makes enterprise-wide reusable component repositories a reality. It is the only tool that truly enables development and management of reusable components. It has all the team programming, version control and configuration management features required for corporate Smalltalk development. Over the past six years, Fortune 500 companies have made it the standard for large-scale Smalltalk projects. , version control, configuration management, and distributed development process for small to very large teamsProducts



    The introduction of ENVY/Developer solved many version control and configuration management problems associated with LAN-based software development teams. ENVY/Replicator enhances ENVY/Developer to greatly improve scalability and provide facilities for the management of software components across multiple development teams.


    ENVY/Replicator is an administrative option supporting project teams using multiple source code repositories. Scalability for large organizations is enhanced through components made available to multiple development groups regardless of repository configuration or geographic location. Components are made available throughout a given development universe with a managed catalog system maintained at each server location.

    Evaluation of Usefulness

    Hatteras Software Object Oriented Metrics

    Setting goals

    The OOMetric/Developer is the base of the OOMetric products. This is the workhorse of that actually performs the analysis and creates the persistent result, called snapshot files. These snapshots files work across platforms, languages and OOMetric products. The languages that can be used here are VisualAge Team, IBM Smalltalk Team, VisualWorks/ENVY, Java and soon in C++.

    Measuring Progress

    The OOMetric/Project will collect data and present the team's effort. It uses the analysis results( or snapshots) from the OOMetric/ Developer and gathers statistic from them.

    Evaluating whether the goal have been met

    From the statistic gathered, the design and quality metrics is presented using more sophitiscated reports and graphs.

    ENVY/QA Code Metrics

    Setting goals

    Here, Code Metrics in ENVY/QA tool gathers 38 important static metrics on methods, classes, applications and configuration maps. Report sections may be customized and saved for subsequent runs and thresholds can be defined for each metric. Users can view all results or focus on methods outside of the thresholds. Thus, it makes all the goals that is to be achieve easier to maintain and update.

    Code Critic Browser

    Measuring Progress

    In order to measure the progress, the metrics have a Code Coverage tool that allows the user to "watch" a set of applications. The user interacts with the application through a user interface test plan or through the execution of automated test suites. As the application's methods are executed, the Code Coverage tool tracks the unexecuted methods to identify untested areas of the system.

    Code Coverage Browser


    Code Coverage Report


    Evaluating whether the goals have been met

    With the same tool in the Code Coverage, the metric can review the progress to check if the goal have been by using the Code Coverage Report.