[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/2896982.2896991acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Model level design pattern instance detection using answer set programming

Published: 14 May 2016 Publication History

Abstract

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.

References

[1]
G. Antoniol, R. Fiutem, and L. Cristoforetti. Design pattern recovery in object-oriented software. In International Workshop on Program Comprehension, pages 153--160. IEEE, 1998.
[2]
I. Bayley and H. Zhu. Formalising design patterns in predicate logic. In International Conference on Software Engineering and Formal Methods, pages 25--36. IEEE, 2007.
[3]
I. Bayley and H. Zhu. Formal specification of the variants and behavioural features of design patterns. Journal of Systems and Software, 83(2):209--221, 2010.
[4]
F. Bergenti and A. Poggi. IDEA: A design assistant based on automatic design pattern detection. In International conference on Software Engineering and Knowledge Engineering, pages 336--343, 2000.
[5]
M. Birkner. Objected-oriented design pattern detection using static and dynamic analysis in Java software. Master's thesis, University of Applied Sciences Bonn-Rhein-Sieg, 2007.
[6]
W. H. Brown, R. C. Malveau, and T. J. Mowbray. AntiPatterns: refactoring software, architectures, and projects in crisis. Wiley, 1998.
[7]
W. Clocksin and C. S. Mellish. Programming in PROLOG. Springer Science & Business Media, 2003.
[8]
W. Crawford and J. Kaplan. J2EE design patterns. O'Reilly Media, Inc., 2003.
[9]
A. De Lucia, V. Deufemia, C. Gravino, and M. Risi. Improving behavioral design pattern detection through model checking. In European Conference on Software Maintenance and Reengineering (CSMR), pages 176--185. IEEE, 2010.
[10]
J. Dong, D. S. Lad, and Y. Zhao. Dp-miner: Design pattern discovery using matrix. In International Conference and Workshops on the Engineering of Computer-Based Systems, pages 371--380. IEEE, 2007.
[11]
R. B. France, D.-K. Kim, S. Ghosh, and E. Song. A UML-based pattern specification technique. Transactions on Software Engineering, 30(3):193--206, 2004.
[12]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design patterns: elements of reusable object-oriented software. Pearson Education, 1994.
[13]
M. Gebser, R. Kaminski, B. Kaufmann, and T. Schaub. Answer set solving in practice. Synthesis Lectures on Artificial Intelligence and Machine Learning, 6(3):1--238, 2012.
[14]
M. Gelfond and V. Lifschitz. The stable model semantics for logic programming. In ICLP/SLP, volume 88, pages 1070--1080, 1988.
[15]
M. Gelfond and V. Lifschitz. Classical negation in logic programs and disjunctive databases. New generation computing, 9(3-4):365--385, 1991.
[16]
N. B. Harrison and P. Avgeriou. Leveraging architecture patterns to satisfy quality attributes. In Software Architecture, pages 263--270. Springer, 2007.
[17]
D. Heuzeroth, T. Holl, G. Högström, and W. Löwe. Automatic design pattern detection. In International Workshop on Program Comprehension, pages 94--103. IEEE, 2003.
[18]
D. Heuzeroth and W. Loöwe. Understanding architecture through structure and behavior visualization. In Software Visualization, pages 243--286. Springer, 2003.
[19]
J. Hutchinson, J. Whittle, M. Rouncefield, and S. Kristoffersen. Empirical assessment of MDE in industry. In International Conference on Software Engineering, pages 471--480. ACM, 2011.
[20]
C. Krämer and L. Prechelt. Design recovery by automated search for structural design patterns in object-oriented software. In Working Conference on Reverse Engineering, pages 208--215. IEEE, 1996.
[21]
M. Lee, H. Kim, J. Kim, and J. Lee. StarUML 5.0 developer guide. The Open Source UML/MDA Platform, 2005.
[22]
N. Leone, G. Pfeifer, W. Faber, T. Eiter, G. Gottlob, S. Perri, and F. Scarcello. The DLV system for knowledge representation and reasoning. Transactions on Computational Logic, 7(3):499--562, 2006.
[23]
V. Lifschitz. What is answer set programming?. In AAAI, volume 8, pages 1594--1597, 2008.
[24]
J. W. Lloyd. Foundations of logic programming. Springer Science & Business Media, 2012.
[25]
T. Mikkonen. Formalizing design patterns. In International conference on Software engineering, pages 115--124. IEEE Computer Society, 1998.
[26]
P. Mohagheghi and J. Aagedal. Evaluating quality in model-driven engineering. In International Workshop on Modeling in Software Engineering, page 6 pp., 2007.
[27]
T. Punter, J. Voeten, and J. Huang. Quality of model driven engineering. Model-Driven Software Development: Integrating Quality Assurance, 2009.
[28]
C. V. Ramamoorthy and S.-b. F. Ho. Testing large software with automated software evaluation systems. In ACM SIGPLAN Notices, volume 10, pages 382--394. ACM, 1975.
[29]
S. Sauvage. Design patterns for multiagent systems design. In MICAI: Advances in Artificial Intelligence, pages 352--361. 2004.
[30]
D. C. Schmidt. Guest editor's introduction: Model-driven engineering. Computer, 39(2):0025--31, 2006.
[31]
D. C. Schmidt, M. Stal, H. Rohnert, and F. Buschmann. Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects, volume 2. John Wiley & Sons, 2013.
[32]
L. Shan and H. Zhu. A formal descriptive semantics of UML. In Formal Methods and Software Engineering, pages 375--396. Springer, 2008.
[33]
M. Stephan. Model clone detector evaluation using mutation analysis. In International Conference on Software Maintenance and Evolution, pages 633--638. IEEE, 2014.
[34]
M. Stephan. A Mutation Analysis Based Model Clone Detector Evaluation Framework. PhD thesis, Queen's University, August 2014. http://qspace.library.queensu.ca/handle/1974/12376.
[35]
M. Stephan and J. R. Cordy. Identification of Simulink Model Antipattern Instances using Model Clone Detection. In International Conference on Model Driven Engineering Languages and Systems, pages 276--285, 2015.
[36]
M. Stephan and J. R. Cordy. Identifying instances of model design patterns and antipatterns using model clone detection. In International Workshop on Modelling in Software Engineering, pages 48--53, 2015.
[37]
P. Tonella and G. Antoniol. Object oriented design pattern inference. In International Conference on Software Maintenance, pages 230--238. IEEE, 1999.
[38]
N. Tsantalis, A. Chatzigeorgiou, G. Stephanides, and S. T. Halkidis. Design pattern detection using similarity scoring. Transactions on Software Engineering, 32(11):896--909, 2006.
[39]
E. Van Emden and L. Moonen. Java quality assurance by detecting code smells. In Working Conference on Reverse Engineering, pages 97--106, 2002.
[40]
A. I. Verkamo, J. Gustafsson, L. Nenonen, and J. Paakki. Design patterns in performance prediction. In Workshop on Software and Performance, volume 2000, pages 143--144, 2000.
[41]
C. Weidenbach, D. Dimova, A. Fietzke, R. Kumar, M. Suda, and P. Wischnewski. SPASS version 3.5. In International Conference on Automated Deduction, pages 140--145. Springer, 2009.
[42]
L. Wendehals. Improving design pattern instance recognition by dynamic analysis. In Workshop on Dynamic Analysis, pages 29--32, 2003.
[43]
H. Zhu, I. Bayley, L. Shan, and R. Amphlett. Tool support for design pattern recognition at model level. In International Computer Software and Applications Conference, volume 1, pages 228--233. IEEE, 2009.

Cited By

View all
  • (2025)Context Is All You Need: A Hybrid Attention-Based Method for Detecting Code Design PatternsIEEE Access10.1109/ACCESS.2025.352584913(9689-9707)Online publication date: 2025
  • (2022)Research on Design Pattern Detection Method Based on UML Model with Extended Image Information and Deep LearningApplied Sciences10.3390/app1217871812:17(8718)Online publication date: 30-Aug-2022
  • (2020)Design pattern detection approaches: a systematic review of the literatureArtificial Intelligence Review10.1007/s10462-020-09834-5Online publication date: 20-Apr-2020
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
MiSE '16: Proceedings of the 8th International Workshop on Modeling in Software Engineering
May 2016
93 pages
ISBN:9781450341646
DOI:10.1145/2896982
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 May 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. answer set programming
  2. antipatterns
  3. design patterns
  4. model evaluation
  5. model patterns
  6. model quality

Qualifiers

  • Research-article

Conference

ICSE '16
Sponsor:

Acceptance Rates

Overall Acceptance Rate 13 of 30 submissions, 43%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 24 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2025)Context Is All You Need: A Hybrid Attention-Based Method for Detecting Code Design PatternsIEEE Access10.1109/ACCESS.2025.352584913(9689-9707)Online publication date: 2025
  • (2022)Research on Design Pattern Detection Method Based on UML Model with Extended Image Information and Deep LearningApplied Sciences10.3390/app1217871812:17(8718)Online publication date: 30-Aug-2022
  • (2020)Design pattern detection approaches: a systematic review of the literatureArtificial Intelligence Review10.1007/s10462-020-09834-5Online publication date: 20-Apr-2020
  • (2016)Model-Driven Evaluation of Software Architecture Quality Using Model Clone Detection2016 IEEE International Conference on Software Quality, Reliability and Security (QRS)10.1109/QRS.2016.21(92-99)Online publication date: Aug-2016

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media