10 likes | 117 Views
Case Study 2 large industrial-scale models were provided by Siemens Transportation Model A was a UML design model, Model B was a UML model reverse engineered from source code DesignAdvisor was run on each model, and the following errors were found:. DesignAdvisor
E N D
Case Study • 2 large industrial-scale models were provided by Siemens Transportation • Model A was a UML design model, Model B was a UML model reverse engineered from source code • DesignAdvisor was run on each model, and the following errors were found: • DesignAdvisor • Analysis tool developed by Siemens Corporate Research • Algorithmically checks UML class diagrams for design errors and reports violations • Metrics Analysis • Analyzing the quantity of various artifacts and relationships in a model to find potential problems • Motivation • Developing large systems is complicated • Errors in design propagate to later phases of software production, increasing cost CTrain in this diagram shows concrete inheritance, one of the errors found by DesignAdvisor • Problems with Current Industry Practice • Design documents are very large, infrequently submitted for formal review • Designers need a quick way to check their designs for errors and potential signs of failure • Coupling Metrics • Classes associated or dependent on too many other classes are too highly coupled to other classes • High coupling between objects in a UML model could indicate a class is sending a high number of messages, and is thus more likely to be flawed • Solution Overview • An automated means of checking designs for common errors would aid in reducing errors in industrial software • Since UML is the de facto standard in industrial design modeling, UML diagrams are examined • Complexity Metrics • A class with too many public operations or attributes may be too complex • Such a class may be a candidate for division into multiple classes • Analysis of Models • Upon grouping errors, many errors were shown to be obviously spurious • Other errors (Circular Associations, Name Collisions) seemed likely to cause problems • Errors were grouped into 3 severity levels (severe, moderate, and low) based on this analysis • Automated Model Analysis • Automates checks of UML Design models/diagrams • Examines artifacts in a model, checks for violations of rules (example: a class with the same name as a previously examined class violates the ‘name collision’ rule) • Design Errors • Violations of good UML design practice, such as circular association constructs and parent classes having knowledge of child methods must be reported DesignAdvisor Rules Example DesignAdvisor Output DesignAdvisor Usage Metrics-Based Analysis of UML Designs Department of Computer Science & Engineering Ryan Stephenson Advisor: Prof. Betty H.C. Cheng Software Engineering and Network Systems (SENS) Laboratory Automated analysis of object-oriented design models can provide insight into the quality of a given software design. By using software metrics to identify coupling and complexity in UML models, developers can more readily identify flaws in those models. Acknowledgements: This work has been supported in part by the following grants: Siemens Corporate Research, NSFEIA-0000433, CDA-9700732, CCR-9901017, EIA-0130724, Department of the Navy, and Office of Naval Research under Grant No. N00014-01-1-0744, and in cooperation with Siemens Automotive and Detroit Diesel Corporation. May, 2004 ENS