Supported by AITO. These pages are currently maintained by Alex Potanin |
|
Automated Detection and Correction of Design Defects
4, rue Alfred Kastler - La Chantrerie - 44 307 Nantes cedex - France tel: 33 2 51 85 82 30 fax: 33 2 51 85 82 49 guehene@emn.fr Keywords:analysis/design meta architectures metrics patterns explanation-based constraint programming software re-engineering
Abstract:Developing code free of defects - that is, code of quality - is a major concern for the object-oriented software community. We classify design defects as those within classes (intra-class), those among classes (inter-classes), or those of semantic nature (behavioural). Then, we introduce guidelines to automate the detection and correction of inter-class design defects. First, we note that design patterns and inter-class design defects relate to one another because they depend on the software architecture. Second, we assume that design patterns embody good architectural solutions and that groups of entities with organisations similar but not equal to design patterns represent inter-class design defects. Third, we assume that the transformation of such groups of entities, such that their organisations comply exactly with the design patterns, corresponds to the correction of inter-class design defects. Then, we use a meta-model to describe the design patterns: their entities an! d ! ! the relationships among those entities. We exploit these descriptions to infer a set of detection rules and a set of transformation rules. These sets extend the descriptions of the design patterns. A constraints solver with explanations uses these extended descriptions to recognise groups of entities with organisations similar to the described design patterns. The constraints solver associate explanations with each group of entities found. The explanations govern a transformation engine that changes the source code corresponding to the groups of entities such that their organisations comply with the associated design patterns. We apply these guidelines on examples based on different patterns using PTIDEJ. PTIDEJ is a prototype tool that integrates the complete guidelines.
NO HTML3 JAVA
Last modified on Mon Aug 15 14:59:24 2005 |