Abstract-A hurdle in the growth of model driven software engineering is our ability to evaluate the quality of models automatically. One perspective is that software quality is a function of the existence, or lack thereof, of good and bad properties, also known as patterns and antipatterns, respectively. In this paper, we introduce the notion of using model clone detection to detect model pattern and antipattern instances by looking for models that are cross clones of pattern models. By detecting patterns at the model level, analysis is accomplished earlier in the engineering process, can be applied to primarily modelbased projects, and remains at the same level of abstraction that engineers are used to. We outline the process of using model clone detection for this purpose, including representing the patterns and detection of instances. We present some Simulink examples of pattern representations and discuss future work and research in the area.
I. INTRODUCTIONModel-driven Engineering (MDE) is a relatively new approach to software development that entails higher-level abstractions, or models, being used as the primary artifacts in system development and management. This includes incorporating modeling in all four phases of Software Engineering: requirements, design, implementation, and testing. By utilizing artifacts at an abstraction level closer to the problem space and hiding lower-level details, MDE can yield higher quality systems, facilitate better communication among stakeholders, and make project teams adaptable and flexible. MDE has seen significant levels of adoption in many different domains, including aviation, automotive, aerospace, and other highreliability embedded systems applications.While MDE use is growing, and engineers and customers are starting to experience the benefits of using model-based techniques [1], there are still many obstacles to overcome. One example is model quality evaluation, that is, the ability to assess quality of the models and artifacts of interest across the MDE life cycle [2], [3]. When it comes to more traditional software engineering processes, such as those that center around third generation programming languages, quality assurance is a well-researched and established area. In contrast, much less is understood about quality assurance for models in the MDE context. Improving our knowledge and making it easier to reason about model quality is a necessary step in continuing the growth of MDE.One approach to assessing software quality involves detecting the existence of design patterns [4] and antipatterns [5] in