2005 · 31 citations · 13 references
Software MaintenanceEngineeringSoftware SystemsVerificationSoftware EngineeringObject OrientationSoftware AnalysisFormal VerificationAutomated Software EngineeringSystems EngineeringSoftware AspectThreshold ValuesMetrics-based RulesObject-oriented DesignSoftware QualitySoftware MeasurementDesignProper Threshold ValuesObject-oriented Software SystemsComputer ScienceDesign FlawsStatic Program AnalysisSoftware DesignProgram AnalysisSoftware TestingSoftware MetricFormal MethodsSystem SoftwareAutomatic Detection
In order to increase the maintainability and the flexibility of a software, its design and implementation quality must be properly assessed. For this purpose a large number of metrics and several higher-level mechanisms based on metrics are defined in literature. But the accuracy of these quantification means is heavily dependent on the proper selection of threshold values, which is oftentimes totally empirical and unreliable. In this paper we present a novel method for establishing proper threshold values for metrics-based rules used to detect design flaws in object-oriented systems. The method, metaphorically called "tuning machine", is based on inferring the threshold values based on a set of reference examples, manually classified in "flawed" respectively "healthy" design entities (e.g., classes, methods). More precisely, the "tuning machine" searches based on a genetic algorithm, for those thresholds, which maximize the number of correctly, classified entities. The paper also defines a repeat-able process for collecting examples, and discusses the encouraging and intriguing results while applying the approach on two concrete metrics-based rules that quantify two well-known design flaws i.e., "God Class" and "Data Class".
13
Artificial intelligence: a modern approach
Choice Reviews Online · 1995 · 22.2K citations · Full text
Artificial intelligence: A modern approach
Nils J. Nilsson · Artificial Intelligence · 1996 · 10.7K citations
Artificial Intelligence, Engineering, Applied Intelligent System +4
Refactoring improving the design of existing code
Mauricio A. Saca · 2017 · 2.1K citations
Software Maintenance, Software Development Practice, Engineering +17