skip to main content
10.1145/2000259.2000265acmconferencesArticle/Chapter ViewAbstractPublication PagescomparchConference Proceedingsconference-collections
research-article

Combining clustering and pattern detection for the reengineering of component-based software systems

Published: 20 June 2011 Publication History

Abstract

During the software lifecycle, software systems have to be continuously maintained to counteract architectural deterioration and retain their software quality. In order to maintain a software it has to be understood first which can be supported by (semi-)automatic reverse engineering approaches. Reverse engineering is the analysis of software for the purpose of recovering its design documentation, e.g., in form of the conceptual architecture. Today, the most prevalent reverse engineering approaches are (1) the clustering based approach which groups the elements of a given software system based on metric values in order to provide an overview of the system and (2) the pattern-based approach which tries to detect pre-defined patterns in the software which can give insight about the original developers' intentions. In this paper, we present an approach towards combining these techniques: we show how the detection and removal of certain bad smells in a software system can improve the results of a clustering-based analysis. We propose to integrate this combination of reverse engineering approaches into a reengineering process for component-based software systems.

References

[1]
F. Arcelli Fontana and M. Zanoni. A tool for design pattern detection and software architecture reconstruction. Information Sciences, 181(7):1306--1324, 2011.
[2]
T. Arendt, S. Kranz, F. Mantz, N. Regnat, and G. Taentzer. Towards Syntactical Model Quality Assurance in Industrial Software Development: Process Definition and Tool Support. In Proceedings of the Software Engineering 2011. Springer, 2011. to appear.
[3]
H. A. Basit and S. Jarzabek. Detecting higher-level similarity patterns in programs. SIGSOFT Software Engineering Notes, 30(5):156--165, September 2005.
[4]
M. Bauer and M. Trifu. Architecture-Aware Adaptive Clustering of OO Systems. In Proceedings of the 8th European Conference on Software Maintenance and Reengineering, pages 3--14, March 2004.
[5]
S. Becker, M. Hauck, M. Trifu, K. Krogmann, and J. Kofron. Reverse Engineering Component Models for Quality Predictions. In Proceedings of the 14th European Conference on Software Maintenance and Reengineering, pages 199--202. IEEE Computer Society, 2010.
[6]
W. J. Brown, R. C. Malveau, H. W. McCormick, and T. J. Mombray. Anti Patterns: Refactoring Software, Architectures, and Projects in Crisis. John Wiley and Sons, Inc., 1998.
[7]
E. J. Chikofsky and J. H. Cross, II. Reverse Engineering and Design Recovery: A Taxonomy. IEEE Software, 7(1):13--17, January 1990.
[8]
L. Chouambe, B. Klatt, and K. Krogmann. Reverse Engineering Software-Models of Component-Based Systems. In Proceedings of the 12th European Conference on Software Maintenance and Reengineering (CSMR 2008), pages 93--102, Athens, Greece, 2008. IEEE Computer Society.
[9]
S. Demeyer, S. Ducasse, and O. Nierstrasz. Object-Oriented Reengineering Patterns. Square Bracket Associates, Switzerland, June 2008.
[10]
J. Dong, Y. Zhao, and T. Peng. A Review of Design Pattern Mining Techniques. International Journal of Software Engineering and Knowledge Engineering (IJSEKE), 19(6):823--855, 2009.
[11]
S. Ducasse and D. Pollet. Software Architecture Reconstruction: A Process-Oriented Taxonomy. IEEE Transactions on Software Engineering, 35(4):573--591, 2009.
[12]
M. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, Boston, MA, USA, 1999.
[13]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.
[14]
S. Herold, H. Klus, Y. Welsch, C. Deiters, A. Rausch, R. Reussner, K. Krogmann, H. Koziolek, R. Mirandola, B. Hummel, M. Meisinger, and C. Pfaller. CoCoME - The Common Component Modeling Example. In The Common Component Modeling Example, volume 5153 of Lecture Notes in Computer Science, pages 16--53. Springer Berlin / Heidelberg, 2008.
[15]
R. K. Keller, R. Schauer, S. Robitaille, and P. Pagé. Pattern-Based Reverse-Engineering of Design Components. In Proc. of the 21st International Conference on Software Engineering, pages 226--235. IEEE Computer Society Press, May 1999.
[16]
R. Koschke. Atomic Architectural Component Recovery for Program Understanding and Evolution. In Proceedings of the International Conference on Software Maintenance, pages 478--481. IEEE, 2002.
[17]
K. Krogmann. Reconstruction of Software Component Architectures and Behaviour Models using Static and Dynamic Analysis. PhD thesis, Karlsruhe Institute of Technology (KIT), Karlsruhe, Germany, 2010. to appear.
[18]
R. Martin. OO Design Quality Metrics - An Analysis of Dependencies. In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), 1994.
[19]
N. Moha, Y.-G. Guéhéneuc, L. Duchien, and A.-F. Le Meur. DECOR: A Method for the Specification and Detection of Code and Design Smells. IEEE Transactions on Software Engineering, 36:20--36, 2010.
[20]
M. J. Munro. Product metrics for automatic identification of "bad smell" design problems in Java source-code. In 11th IEEE International Symposium on Software Metrics, pages 9 pp. --9, Sept. 2005.
[21]
H. A. Müller, M. A. Orgun, S. R. Tilley, and J. S. Uhl. A reverse-engineering approach to subsystem structure identification. Journal of Software Maintenance: Research and Practice, 5(4):181--204, 1993.
[22]
J. Niere, W. Schäfer, J. Wadsack, L. Wendehals, and J. Welsh. Towards Pattern-Based Design Recovery. In Proc. of the $24^th$ International Conference on Software Engineering, pages 338--348. ACM Press, 2002.
[23]
D. L. Parnas. Software Aging. In Proceedings of the 16th International Conference on Software Engineering, pages 279--287, Los Alamitos, CA, USA, 1994. IEEE Computer Society Press.
[24]
A. Rausch, R. Reussner, R. Mirandola, and F. Plašil, editors. The Common Component Modeling Example - Comparing Software Component Models. Number 5153 in Lecture Notes in Computer Science. Springer, 2008.
[25]
M. Salehie, S. Li, and L. Tahvildari. A Metric-Based Heuristic Framework to Detect Object-Oriented Design Flaws. In Proceedings of the 14th IEEE International Conference on Program Comprehension (ICPC 2006), pages 159--168. IEEE Computer Society, 2006.
[26]
K. Sartipi. Software Architecture Recovery based on Pattern Matching. In Proceedings of the International Conference on Software Maintenance, pages 293--296. IEEE Computer Society, 2003.
[27]
I. Sommerville. Software Engineering. Addison Wesley, 4th edition, May 1992.
[28]
C. Szyperski. Component Software: Beyond Object-Oriented Programming. Addison-Wesley, 1998.
[29]
R. N. Taylor, N. Medvidovic, and E. Dashofy. Software Architecture: Foundations, Theory, and Practice. Wiley, Feb. 2009.
[30]
O. Travkin, M. von Detten, and S. Becker. Towards the Combination of Clustering-based and Pattern-based Reverse Engineering Approaches. In Proceedings of the 3rd Workshop of the GI Working Group L2S2 - Design for Future 2011, Feb. 2011. to appear.
[31]
A. Trifu, O. Seng, and T. Genssler. Automated Design Flaw Correction in Object-Oriented Systems. In Proceedings of the 8th Euromicro Working Conference on Software Maintenance and Reengineering (CSMR 2004), pages 174--183. IEEE Computer Society, 2004.
[32]
A. Umar and A. Zordan. Reengineering for service oriented architectures: A strategic decision model for integration versus migration. Journal of Systems and Software, 82:448--462, March 2009.
[33]
M. von Detten, M. Meyer, and D. Travkin. Reclipse - A Reverse Engineering Tool Suite. Technical Report tr-ri-10-312, Software Engineering Group, Heinz Nixdorf Institute, University of Paderborn, Mar. 2010.
[34]
M. von Detten, M. Meyer, and D. Travkin. Reverse Engineering with the Reclipse Tool Suite. In Proceedings of the 32nd International Conference on Software Engineering (ICSE '10), pages 299--300. ACM Press, 2010.
[35]
M. von Detten and D. Travkin. An Evaluation of the Reclipse Tool Suite based on the Static Analysis of JHotDraw. Technical Report tr-ri-10-322, Software Engineering Group, Heinz Nixdorf Institute, University of Paderborn, Oct. 2010.

Cited By

View all
  • (2022)A Feature-Based Method for Detecting Design Patterns in Source CodeSymmetry10.3390/sym1407149114:7(1491)Online publication date: 21-Jul-2022
  • (2022)Using multi‐pattern clustering methods to improve software maintenance qualityIET Software10.1049/sfw2.1207517:1(1-22)Online publication date: 3-Nov-2022
  • (2022)Probabilistic detection of GoF design patternsThe Journal of Supercomputing10.1007/s11227-022-04718-779:2(1654-1682)Online publication date: 1-Aug-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
QoSA-ISARCS '11: Proceedings of the joint ACM SIGSOFT conference -- QoSA and ACM SIGSOFT symposium -- ISARCS on Quality of software architectures -- QoSA and architecting critical systems -- ISARCS
June 2011
206 pages
ISBN:9781450307246
DOI:10.1145/2000259
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: 20 June 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. bad smell detection
  2. clustering
  3. metrics
  4. reengineering
  5. software architecture

Qualifiers

  • Research-article

Conference

Comparch '11
Sponsor:

Acceptance Rates

Overall Acceptance Rate 46 of 131 submissions, 35%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)10
  • Downloads (Last 6 weeks)0
Reflects downloads up to 16 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2022)A Feature-Based Method for Detecting Design Patterns in Source CodeSymmetry10.3390/sym1407149114:7(1491)Online publication date: 21-Jul-2022
  • (2022)Using multi‐pattern clustering methods to improve software maintenance qualityIET Software10.1049/sfw2.1207517:1(1-22)Online publication date: 3-Nov-2022
  • (2022)Probabilistic detection of GoF design patternsThe Journal of Supercomputing10.1007/s11227-022-04718-779:2(1654-1682)Online publication date: 1-Aug-2022
  • (2022)Detection and Recognition of Software Design Patterns Based on Machine Learning Techniques: A Big Step Towards Software Design Re-usabilityEngineering Software for Modern Challenges10.1007/978-3-031-19968-4_1(3-15)Online publication date: 16-Nov-2022
  • (2021)Classifying Model-View-Controller Software Applications Using Self-Organizing MapsIEEE Access10.1109/ACCESS.2021.30663489(45201-45229)Online publication date: 2021
  • (2021)A new method for detecting various variants of GoF design patterns using conceptual signaturesSoftware Quality Journal10.1007/s11219-021-09576-930:3(651-686)Online publication date: 29-Nov-2021
  • (2021)A generic approach to detect design patterns in model transformations using a string-matching algorithmSoftware and Systems Modeling10.1007/s10270-021-00936-421:3(1241-1269)Online publication date: 15-Nov-2021
  • (2021)Detector-based component model abstraction for microservice-based systemsComputing10.1007/s00607-021-01002-zOnline publication date: 28-Aug-2021
  • (2020)Design pattern detection approaches: a systematic review of the literatureArtificial Intelligence Review10.1007/s10462-020-09834-5Online publication date: 20-Apr-2020
  • (2019)A Model Based Approach for Android Design Patterns Detection2019 3rd International Symposium on Multidisciplinary Studies and Innovative Technologies (ISMSIT)10.1109/ISMSIT.2019.8932921(1-10)Online publication date: Oct-2019
  • Show More Cited By

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