Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2851613.2851787acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article
Public Access

Architectural clones: toward tactical code reuse

Published: 04 April 2016 Publication History

Abstract

Architectural tactics are the building blocks of software architecture. They describe solutions for addressing specific quality concerns, and are prevalent across many software systems. Once a decision is made to utilize a tactic, the developer must generate a concrete plan for implementing the tactic in the code. Unfortunately, this is a non-trivial task for even experienced developers. Developers often resort to using search engines, crowd-sourcing websites, or discussion forums to find sample code snippets. A robust Tactic Search Engine can replace this manual, internet-based search process and help developers to reuse proper architectural knowledge and accurately implement tactics and patterns from a wide range of open source systems. In this paper we analyze several implementations of architectural tactics in the open source community and identify the foundation for building a practical Tactic Search Engine. We also introduce the concept of tactical-clones which may be used as the basic element of a tactic search engine.

References

[1]
L. Bass, P. Clements, and R. Kazman. Software Architecture in Practice. Addison-Wesley, 3rd edition, 2012.
[2]
F. Deissenboeck, B. Hummel, and E. Juergens. Code clone detection in practice. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2, ICSE '10, pages 499--500, New York, NY, USA, 2010.
[3]
P. Devanbu, S. Karstu, W. Melo, and W. Thomas. Analytical and empirical evaluation of software reuse metrics. In Software Engineering, 1996., Proceedings of the 18th International Conference on, pages 189--199, Mar 1996.
[4]
E. Duala-Ekoko and M. P. Robillard. Clone region descriptors: Representing and tracking duplication in source code. ACM Trans. Softw. Eng. Methodol., 20(1):3:1--3:31, July 2010.
[5]
L. Heinemann, F. Deissenboeck, M. Gleirscher, B. Hummel, and M. Irlbeck. On the extent and nature of software reuse in open source java projects. In Proceedings of the 12th International Conference on Top Productivity Through Software Reuse, ICSR'11, pages 207--222, Berlin, Heidelberg, 2011. Springer-Verlag.
[6]
M. Hitz and B. Montazeri. Chidamber and kemerer's metrics suite: a measurement theory perspective. Software Engineering, IEEE Transactions on, 22(4):267--271, Apr 1996.
[7]
E. Juergens, F. Deissenboeck, B. Hummel, and S. Wagner. Do code clones matter? In Proceedings of the 31st International Conference on Software Engineering, pages 485--495. IEEE Computer Society, 2009.
[8]
D. E. Krutz. Concolic Code Clone Detection. PhD thesis, Nova Southeastern University, 2012.
[9]
D. E. Krutz, S. A. Malachowsky, and E. Shihab. Examining the effectiveness of using concolic analysis to detect code clones. In Proceedings of the 30th Annual ACM Symposium on Applied Computing, SAC '15, pages 1610--1615, New York, NY, USA, 2015. ACM.
[10]
D. E. Krutz and E. Shihab. Cccd: Concolic code clone detection. In Reverse Engineering (WCRE), 2013 20th Working Conference on, 2013.
[11]
Y. Malheiros, A. Moraes, C. Trindade, and S. Meira. A source code recommender system to support newcomers. In Computer Software and Applications Conference (COMPSAC), 2012 IEEE 36th Annual, pages 19--24, July 2012.
[12]
C. McMillan, N. Hariri, D. Poshyvanyk, J. Cleland-Huang, and B. Mobasher. Recommending source code for use in rapid software prototypes. In 34th International Conference on Software Engineering, ICSE 2012, June 2-9, 2012, Zurich, Switzerland, pages 848--858, 2012.
[13]
M. Mirakhorli. Preserving the quality of architectural decisions in source code, PhD Dissertation, DePaul University Library, 2014.
[14]
M. Mirakhorli and J. Cleland-Huang. Modifications, tweaks, and bug fixes in architectural tactics. In Proceedings of the 12th Working Conference on Mining Software Repositories, MSR '15, pages 377--380, Piscataway, NJ, USA, 2015. IEEE Press.
[15]
M. Mirakhorli, A. Fakhry, A. Grechko, M. Wieloch, and J. Cleland-Huang. Archie: A tool for detecting, monitoring, and preserving architecturally significant code. In ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE 2014), 2014.
[16]
M. Mirakhorli, P. Mäder, and J. Cleland-Huang. Variability points and design pattern usage in architectural tactics. In Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, FSE '12, pages 52:1--52:11. ACM, 2012.
[17]
M. Mirakhorli, Y. Shin, J. Cleland-Huang, and M. Cinar. A tactic centric approach for automating traceability of quality concerns. In International Conference on Software Engineering, ICSE (1), 2012.
[18]
A. Mockus. Large-scale code reuse in open source software. In Emerging Trends in FLOSS Research and Development, 2007. FLOSS'07. First International Workshop on, pages 7--7. IEEE, 2007.
[19]
M. Mondal, C. K. Roy, and K. A. Schneider. An empirical study on clone stability. SIGAPP Appl. Comput. Rev., 12(3):20--36, Sept. 2012.
[20]
C. K. Roy and J. R. Cordy. An empirical study of function clones in open source software. In Reverse Engineering, 2008. WCRE'08. 15th Working Conference on, pages 81--90. IEEE, 2008.
[21]
C. K. Roy and J. R. Cordy. Nicad: Accurate detection of near-miss intentional clones using flexible pretty-printing and code normalization. In Proceedings of the 2008 The 16th IEEE International Conference on Program Comprehension, pages 172--181, 2008.
[22]
R. Shukla and A. K. Misra. Estimating software maintenance effort: a neural network approach. In Proceedings of the 1st India software engineering conference, ISEC '08, pages 107--112, New York, NY, USA, 2008. ACM.
[23]
M. Uddin, C. Roy, and K. Schneider. Simcad: An extensible and faster clone detection tool for large scale software systems. In Program Comprehension (ICPC), 2013 IEEE 21st International Conference on, pages 236--238, May 2013.
[24]
J. van Gurp, S. Brinkkemper, and J. Bosch. Design preservation over subsequent releases of a software product: a case study of baan erp: Practice articles. J. Softw. Maint. Evol., 17:277--306, July 2005.

Cited By

View all
  • (2023)Architectural tactics in software architectureJournal of Systems and Software10.1016/j.jss.2022.111558197:COnline publication date: 13-Feb-2023
  • (2020)How to build a vulnerability benchmark to overcome cyber security attacksIET Information Security10.1049/iet-ifs.2018.564714:1(60-71)Online publication date: Jan-2020
  • (2019)VCIPR: Vulnerable Code is Identifiable When a Patch is Released (Hacker's Perspective)2019 12th IEEE Conference on Software Testing, Validation and Verification (ICST)10.1109/ICST.2019.00049(402-413)Online publication date: Apr-2019
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SAC '16: Proceedings of the 31st Annual ACM Symposium on Applied Computing
April 2016
2360 pages
ISBN:9781450337397
DOI:10.1145/2851613
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: 04 April 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. code reuse
  2. software architecture
  3. tactical code clone

Qualifiers

  • Research-article

Funding Sources

Conference

SAC 2016
Sponsor:
SAC 2016: Symposium on Applied Computing
April 4 - 8, 2016
Pisa, Italy

Acceptance Rates

SAC '16 Paper Acceptance Rate 252 of 1,047 submissions, 24%;
Overall Acceptance Rate 1,650 of 6,669 submissions, 25%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)28
  • Downloads (Last 6 weeks)3
Reflects downloads up to 17 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Architectural tactics in software architectureJournal of Systems and Software10.1016/j.jss.2022.111558197:COnline publication date: 13-Feb-2023
  • (2020)How to build a vulnerability benchmark to overcome cyber security attacksIET Information Security10.1049/iet-ifs.2018.564714:1(60-71)Online publication date: Jan-2020
  • (2019)VCIPR: Vulnerable Code is Identifiable When a Patch is Released (Hacker's Perspective)2019 12th IEEE Conference on Software Testing, Validation and Verification (ICST)10.1109/ICST.2019.00049(402-413)Online publication date: Apr-2019
  • (2019)IBFET: Index‐based features extraction technique for scalable code clone detection at file level granularitySoftware: Practice and Experience10.1002/spe.275950:1(22-46)Online publication date: 22-Oct-2019

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media