Model level design pattern instance detection using answer set programming
Gaurab Luitel, Matthew Stephan, Daniela Inclezan · 2016
Software engineering is becoming increasingly model-centric. Engineers are using models more within projects and their models are growing in complexity. A challenge facing the modeling community is evaluation of these models. One technique for software evaluation is detecting instances of established "good" or "bad" solutions in a system, often termed design patterns or antipatterns, respectively. Most approaches require implemented code for detection. However, this precludes early-stage analysis, and the evaluation of purely or mostly model-centric systems. In this position paper, we introduce a detection technique that uses answer set programming to find occurrences of patterns within sets of structural and behavioral models. We represent the patterns as rules and the structural and behavioral system models as facts, requiring both model types since some patterns specify both. We provide an overview of our proposed approach, contrast existing work, and present discussion points on its impact on model evaluation and anticipated challenges.