|
|
Revolutive IT |
Software Complexity M any customers often say that their applications are hard to maintain, difficult to understand, complex and use many ways to describe the fact that they would like to develop or have to maintain an application that is simpler than that they have. Such thing is not trivial because it asks us to give a clear definition of what is a good vs bad application, what is a maintainable vs. less maintainable application and other things like that. Thus why not introduce the concept of quality in the application. We don't speak here about the quality inside the development process which is more the field of the SAI-CMM process, but about the quality of the content, i.e. the program itself. Measurement is important because it gives a way of continuousely evaluating the state of a program by doing at fixed schedule the assessment of the contained modules. This gives the opportunity to evaluate efforts needed for maintenance, enhancement, future decisions about what to do with the application portfolio. Another important reason to do such evaluation is a business one. IT measurement is not a technical affair. It is critical for organizations to do as an integral part of their business existence and strategy. In fact, everybody knows that we can manage only what we can measure. This simple sentence should be enough to start an IT assessement based on objective set of measures. Of course measurement for measurement is not enough. The measurement must be part of the
entire business strategy. This means that each industry should start a measurement program
and develop a model to develop such program. Many efforts have been made to give a defininition of a given program's complexity. Some authors have tried to define metrics in order to measure the complexity. Many methods exist for evaluating the complexity and the health state of programs. Hereafter we give many metrics with the name of their respective authors. We truly thank them to continue research on the subject as we know that it is crucial for any business to know how good are their applications. A tlantis Technologies can help you in IT measurement as we specialize in this area. We provide our customers with tailorable solutions and services for complexity measurement and interpretation, software quality assessment and other related tasks. Measuring must be done by experts with clear objective in mind. Read this article about IT measurement and its importance McCabe Metrics Cyclomatic Complexity Metric (v(G)) It is also the most widely used memeber of a class of static software metrics. Cyclomatic complexity may be considered broad measure of soundness and confidence for a program. Introduced in 1976 by Thomas McCabe, it measures the number of linearly-independant paths through a program module. This measure provides a single ordinal number that can be compared to the complexity of other programs. Cyclomatic complexity is often referred to simply as program complexity, or as McCabe's complexity. It is often used in concert with other software metrics. As one of the more widely-accepted software metrics, it is intended to be independant of language and language format. Cyclomatic complexity can be applied in several areas, including: Actual Complexity Metric (ac) Module Design Complexity Metric (iv(G)) Essential Complexity Metric (ev(G)) Pathological Complexity Metric (pv(G)) Design Complexity Metric (S0) Integration Complexity Metric (S1) Object Integration Complexity Metric (OS1) Global Data Complexity Metric (gdv(G)) McCabe Date-Related Software Metrics Date Complexity Metric (DV) Tested Date Complexity Metric (TDV ) Date Reference Metric (DR ) Tested Date Reference Metric (TDR ) Maintenance Severity Metric (maint_severity) Date Reference Severity Metric (DR_severity) Date Complexity Severity Metric (DV_severity ) Global Date Severity Metric (gdv_severity) McCabe Object-Oriented Software Metrics ENCAPSULATION Percent Public Data (PCTPUB) Access to Public Data (PUBDATA) POLYMORPHISM Percent of Unoverloaded Calls (PCTCALL) Number of Roots (ROOTCNT) Fan-in (FANIN) QUALITY Maximum v(G) (MAXV) Maximum ev(G) (MAXEV) Hierarchy Quality(QUAL) Other Object-Oriented Software Metrics Depth (DEPTH) Lack of Cohesion of Methods (LOCM) Number of Children (NOC) Response For a Class (RFC) Weighted Methods Per Class (WMC) Halstead Software Metrics Gives the primary measure of Algorithm complexity, measured by counting operators and operands Program Length Program Volume Program Level and Program Difficulty Intelligent Content Programming Effort Error Estimate Programming Time Line Count Software Metrics Lines of Code Lines of Comment Lines of Mixed Code and Comments Lines Left Blank Henry and Kafura metrics Coupling between modules (parameters, global variables, calls). Bowles metrics Module and system complexity; coupling via parameters and global variables. Troy and Zweben metrics Modularity or coupling; complexity of structure (maximum depth of structure chart); calls-to and called-by. Ligier metrics Modularity of the structure chart. The top 10 mistakes in IT Measurements Betting the measurement program on a single metric Trying to find a single metric that solves all the problems and has no evil The quest for an industry standard set of measures Not linking measures to behaviors Assuming that one set of measures will be good for "All Time" Measuring the wrong IT output Measuring in business terms, but the wrong business terms Failure to quantify in business terms; failure to plan for benefits Neglecting the full range of IT related outcomes Lack of commitment; treating measurement as a non-value added add-on Our solutions are the most efficient, flexible, quality-based and cheaper of the market, due to our fully innovative and customer-driven approach. Discover them and compare them to the solutions provided you by our competitors. |
Copyright © 2002 Atlantis Technologies. All rights reserved. |