Abstract: To give a consistent and more valuable feature on models, we propose that model-driven processes should be able to reuse the expert knowledge generally expressed in terms of patterns. We focus our study on a detailed design review activity, which precedes a coding stage in an object-oriented language. We make the hypothesis that design models lack in good object design practices. As we do not find any model inspection tool that urges the use of patterns in the most automatic possible way, we present here the concept of an âalternative modelâ and its usage within our design review. An âalternative modelâ is a model which solves the same problem as the pattern, but with a more complex or different structure than the pattern. Each pattern has many âalternative modelsâ. Structural characterization permits us to detect model fragments substitutable with a pattern. Criteria of object-oriented architecture and software engineering quality permit us to construct a knowledge base dedicated to bad design practices and to explain why the substitution makes the design more attractive.
Abstract: In this paper, we propose to take directly into account the knowledge of experts during a design review activity. Such activity requires an ability to analyze and to transform models, in particular to inject design patterns. Our approach consists in identifying model fragments which can be replaced by design patterns. We name these fragments âalternative modelsâ because they solve the same problem as the pattern, but with a more complex or different structure than the pattern. In order to classify and to explain the design defects of this alternative models base, we propose the concept of strong point. A strong point is a key design feature which permits the pattern to resolve a problem most efficiently.
Abstract: In this paper, we suggest to directly take into account the know-how of experts during activities of a process development. Such a work imposes to be able to analyze and to transform models, in particular in order to inject design patterns. Our approach considers models produced by the process as potential alternative models which can be replaced by design patterns. We introduce the definition of remarkable features associated to each alternative model for a design pattern which summarizes its characteristics such as association, features, generalization⦠This approach has been validated on GOF structural design patterns using an OCL backtrack algorithm which automatically identifies classes may be able to play roles defined in the pattern.
Abstract: To give a consistent and more valuable feature on models, we propose that model-driven processes should be able to reuse the expert knowledge generally expressed in terms of patterns. We focus our study on a detailed design review activity, which precedes a coding stage in an object-oriented language. We make the hypothesis that design models lack in good object design practices. As we do not find any model inspection tool that urges the use of patterns in the most automatic possible way, we present here the concept of an âalternative modelâ and its usage within our design review. An âalternative modelâ is a model which solves the same problem as the pattern, but with a more complex or different structure than the pattern. Each pattern has many âalternative modelsâ. Structural characterization permits us to detect model fragments substitutable with a pattern. Criteria of object-oriented architecture and software engineering quality permit us to construct a knowledge base dedicated to design practices and to explain why the substitution makes the design more attractive.
Abstract: Detection, Explanations, and Refactoring of design defects: the spoiled patterns.
Models driven engineering considers models first class entities for the software development. The models driven processes must be able to take into account the know-how of experts, generally expressed in terms of analysis, architectural of design patterns. To choose the right pattern and to ensure its correct integration within a model constitute curbs with the systematic use of the good design practices. In order to reduce these tasks, we propose an approach based on the automatic inspection of models. In the same manner that there are code review activities aiming at checking the absence of bad coding practices in a program, we have tooled a design review activity identifying, explaining and correcting the bad design practices in a model.
A spoiled pattern is comparable with a design pattern, its instantiations solving the same types of problems, but with a different and certainly improvable architecture. Experiments were carried out in order to collect spoiled patterns, allowing us to propose a catalog of bad practices, complementary to the GoF catalog. The detection of the instantiations of spoiled patterns in a UML model is related with a wide graph homomorphism. Graphs UML having typed vertexes, detection is based on local and global structural properties allowing the solving of this NP-Complete problem by successive filtering. Thus, this algorithm is able to detect all the possible instantiations of a spoiled pattern, by managing moreover prohibited and optional edges. The model fragment semantics is given by its intent which is validated by the designer. The intent of the detected fragments and the benefit of a replacement by the adequate pattern are deduced by requests on an ontology conceived for this purpose. The transformation of the fragments into instantiations of design pattern is carried out thanks to model refactoring automatically deduced from the structural differences between a spoiled pattern and an design pattern.