PC-METRIC: The Measurement Solution for Software Craftsmen

Programming in the 1990's is more complicated than ever before. Projects are getting bigger, lasting longer, costing more, and becoming more difficult to manage. For today's software development, yesterday's methods just aren't adequate. This is why software measurement is becoming so important at leading edge software development companies.

Managers can use software measurement to get a handle on the product their programmers are creating. Using well accepted measurement techniques they can identify the most complicated parts of the software, and allocate programming, testing and maintenance resources accordingly. Developers can use measurement to help minimize the complexity of their code earlier in the programming process, yielding more maintainable and less error-prone software. Test engineers and QA personnel can use software measurement to manage code reviews, inspections and testing. Software measurement is an indispensable aid whenever decisions have to be made.

PC-METRIC is a state-of-the-art software measurement tool which performs a variety of static measurements upon a program's source code. PC-METRIC's features do not stop there however. As most software measurement professionals know, the real work starts after the metrics are collected. PC-METRIC supports this task by providing an integrated analysis system that offers a variety of pre-defined reports, graphics and a custom report writing feature.

PC-METRIC: Less Complex Code. PC-METRIC is the software measurement tool for today's serious software developer. Studies have shown that overly complex code is often less reliable and more difficult to maintain. PC-METRIC assesses the complexity of each function or procedure in an application using a set of industry standard measurement techniques.

PC-METRIC:Better Walkthroughs and Code Inspections. The effectiveness of walkthroughs, code inspections and similar techniques to identify programming and design errors early in the software lifecycle is well known. However, the process of reading code is time-consuming. So much so, that participants in a scheduled walkthrough or inspection often only have a chance to read a small portion of the code being discussed. It goes without saying that the process will be more effective if the code that is read is the most complex and therefore the most error-prone.

PC-METRIC can contribute to more effective walkthroughs and code inspections by helping identify the most complex code. Reviewers can then concentrate their available time on software which is overly complex. By making use of PC-METRIC's unique query and report writing facilities, functions and procedures which exceed specified levels of complexity can easily be identified. For instance, all functions or procedures which exceed a certain complexity threshold for one or more metrics can be identified. Special attention can then be given to these functions and procedures during walkthroughs and code inspections.

Many installations also have adopted metric thresholds which are checked as part of the code inspection process. This ensures that overly complex code will not find its way into the subsequent testing and maintenance phases.

PC-METRIC: More Effective and Efficient Testing. Because complex software tends to be more error-prone, it makes sense to concentrate limited testing resources on the most complex parts of the software. PC-METRIC can help make more efficient use of testing resources by identifying the most complex parts of the software. Since less testing effort can be devoted to those modules with a lower probability of having errors, more effort can be spent testing parts of the software which are more likely to actually contain errors. More testing resources allocated to error-prone code makes metric-based testing more effective. Fewer resources allocated to code unlikely to have errors allows more efficient use of testing resources.

PC-METRIC: More Maintainable Software. Software that is developed with an eye towards reducing complexity will usually be much easier to maintain during the years after delivery. This translates directly into lower costs of operation and support. Likewise, if the complexity of maintenance modifications can be controlled, the result can be software with a longer lifetime.

PC-METRIC can help identify software which may be too complex to easily maintain. Such software can then be rewritten or heavily documented to aid maintainability.

PC-METRIC: Maintaining Maintainability. A great deal of software dies before its time simply due to entropy, the gradual degradation of the code's structure as corrections and enhancements are made. PC-METRIC can help ensure software will stay maintainable even after numerous modifications. The complexity of a piece of software can be compared before and after a change is made. Changes which increase the complexity above a certain threshold may warrant special attention to verify that a better approach to the change is not available.

PC-METRIC Features A Variety of Metrics. PC-METRIC provides a carefully selected set of complexity measures to choose from, including:

Each measure is computed for all functions and/or procedures as well as for the system as a whole. Measures are displayed in a convenient tabular format in the complexity report, and functions and/or procedures which exceed pre-defined complexity standards are listed in an exception report.

Information Delivery With PC-METRIC. Besides the tabular complexity report and the exception report, PC-METRIC information can be provided in a number of different ways. The same information can be stored in a delimited file for importing to third-party spreadsheets such as Excel, 1-2-3, or Quattro. Serious users can also make use of PC-METRIC's query and report-writing facilities which provides over fifty different predefined reports, including a variety of graphical presentations. The custom report-writer facility allows users to create their own metrics using calculated fields. The graphics include histograms, piecharts, scattergrams and Kiviat Diagrams.

The Kiviat Diagram provides a way to graphically represent several disparate metrics at one time. The outer circle typically represents a threshold of acceptable complexity. PC-METRIC also allows users to specify the relative importance of each metric, and then to compute an "area score" from the area enclosed by the resulting polygon.

In addition to these reports and options, the C++ version of PC-METRIC adds a class report listing each class, its baseclass(es), the number and type of members in each class, the number of inline and virtual functions in each class, and the number of friend functions and classes associated with it. This information is summarized in the summary class report and classes that exceed user-defined thresholds for these properties are flagged in the exception report.

PC-METRIC as a Comprehension Tool. In addition to PC-METRIC's role as a measurement tool, it also can be used as a tool to help programmers understand new or old code systems. PC-METRIC provides a handy variable cross-reference feature that lists the lines on which each variable is used in each function or procedure. In addition, one of PC-METRIC's interactive queries displays the calling structure of the system at user selectable levels of detail.

The C++ version of PC-METRIC also provides a class hierarchy table listing all base classes and their derived classes to allow the user to easily identify which classes are derived from which other classes.

The Ada version of PC-METRIC additionally provides a report that lists each interface procedure and the language in which it is written, and a report that lists each generic name, the number of times it is instantiated, and the names of the routines by which it is instantiated.

User Configurable. Every development environment is different. Standards and measures appropriate for one installation may not be appropriate for yours. Because of this, PC-METRIC is easily configured by the user. Complexity standards, counting rules, file locations and compiler variations can all be easily set by the user in a personal configuration file.

Ease of Use. PC-METRIC users appreciate its ease of use. Often, measurement can be done from within the standard integrated programming environment so measuring complexity becomes as natural as using a spell checker in a word processor. PC-METRIC may also be run in interactive and batch modes, allowing the user to select the interaction style most natural to their task.

Speed!. PC-METRIC is fast. It can analyze over 50,000 lines of C++ code in under 5 minutes on a typical workstation. This means that software measurement can be an unobtrusive part of your development process. In fact, many of our users have added an automatic invocation of PC-METRIC as part of their makefiles!

What Others Say About Our Complexity Analysis Tools. Don't just take our word for it! Here's what some of the most respected journalists in the software industry have to say about SET Laboratories software solutions for measurement and analysis:

The first time you use it, PC-METRIC will impress you with how much support it offers for its modest price ..., Paul Oman, IEEE Software.

SET Laboratories has produced a tool that ... produces output programmers can actually appreciate ..., Larry O'Brien, Computer Language Magazine.

From [the analysis], we were able to streamline several procedures and replace a whole section of redundant code with a much faster and cleaner fragment ..., Tim Parker, Unique Magazine.

If programming is an art, PC-METRIC is a state-of-the- art critic ..., Tom Swan, PC-World.

The Software Metric Tutorial is excellent and very clearly written ..., Giovanni Perrone, PC-Week.

... the different metrics agreed with my intuitive sense ..., Daniel McAuliffe, IEEE Computer Magazine.

... an efficient program measurement tool that would be indispensable ..., Larry Versaw, C Users Journal.

... I was amazed at the accuracy of the estimates ..., Tim Parker, Computer Language Magazine.

... the results correlated with the known quality of all three subsystems ..., Dave Baker, System Builder Magazine.

... the anomalous routines were indeed the most complex ..., Paul Wexler, Software Maintenance News.

PC-METRIC Support. SET Laboratories is serious about customer satisfaction. Free technical support is provided by either phone, FAX or e-mail. Our responses are prompt and informative.

PC-METRIC Includes: