190 likes | 283 Views
Symptomatic Analysis for Software Maintenance. A technology designed for SERC. Symptomatic Analysis for Software Maintenance. GOAL.
E N D
Symptomatic Analysis for Software Maintenance A technology designed for SERC
Symptomatic Analysis for Software Maintenance GOAL Development of a diagnostic and prognostic system for software that collects data from various types of sources and applies special analytical techniques to analyze the data in real-time to diagnose problems, discern impending faults, and identify maintenance procedures.
Most Complex Living Organism Maintenance (heath management): checkups and diagnosing illness
Most Complex Product Built by Humans Maintenance: (no health management) fixes and updates
Today’s Software Maintenance Realities • Cost of maintenance is very high. • A system not designed for maintenance cannot have maintainability retrofitted later. • Many different opinions of maintainability. • Each organization develops their own definition and concentrates on efforts to develop mature production processes. • Process maturity is not enough to guarantee the quality of a specific software product. • Process evaluation should always be accompanied by product evaluation. • PRODUCT CERTIFICATION IS ALMOST NON-EXISTENT !
What can be observed (learned) from health maintenance? • Continuous • Relies on a large number of facts obtained • Reaches an accurate conclusion depending on the timing and the sequence of the symptoms • Case history remains an important tool to determine the nature of an illness
Future with Symptomatic Analysis for Software Maintenance • A holistic infrastructure approach ( similar to Health Management) • Continuously measures and evaluates software products through intelligent, automated diagnostic and prognostic programs • Provides feedback to process and product improvement by imparting practitioners with an understanding of the condition of their software today and an assurance of its operational state tomorrow.
The Foundations for the Symptomatic Analysis Process Based on the design metrics research of 18+ years through the SERC • Design metric analysis • Module Signatures • Time-slices • Clones • Error (change) analysis
The design metrics have been computed on • Raytheon defense systems • CSC’s STANFINS project • systems from the US Army Research Lab • Magnavox’s AFATDS project • Harris’ ROCC project • three Northrop Grumman projects • PBX system from Telcordia Technologies • telecommunications systems from Motorola Results: The design metrics typically identify 90% of the fault-prone modules.
Algorithmic classification • No incomplete or inconsistent data • A single metric can provide • insight into product or process. • However, in isolation • this is seldom useful. • Tougher questions usually • need more information. Module Signature
Module Signatures Example (De, Di, V(G), LOC) Then the module signature is a 4-tuple, perhaps (1,1,0,1) or equivalently, 13, since 11012 = 1310
Module Signatures • 2 studies • 98.5% accuracy in identifying change-prone modules • False negative were only at ½ percent! • Classes with “more” changes have more “1s” in the signature • Signatures have the potential to predict thelikely number of changes for a given module
Time (Phase) Based Analysis • Time-slice transformations on design metrics • Before & After
Clone Research • Clone evolution is a novel field • Current approaches are limited to detecting only small specialized set of patterns in a clone’s evolution and generally lack scalability • Empirical research suggests that some clones require higher attention than others • Our newest discoveries
Examples of Merging and Extracting Data Module Signature Module Name Time Signature Clone COs 1011001 Module-1 .0.0.9.9.9 NO 4 Module-2 .0.0.0.64.64 NO 1 Module-3 .0.0.0.89.d NO 3 Module Signature Module Name Time Signature Clone COs 0110000 Module-4 .0.0.44.44.44 yes 2022 3 Module-5 .0.0.0.50.50 yes 2022 1
Potential Benefits A holistic infrastructure approach, as applied through the framework, will allow intelligent, automated diagnostic and prognostic programs to provide practitioners with an understanding of the condition of their software today and an assurance of its operational state tomorrow.