Detecting, Tracing, and Monitoring Architectural Tactics in Code
Abstract
Software architectures are often constructed through a series of design decisions. In particular, architectural tactics are selected to satisfy specific quality concerns such as reliability, performance, and security. However, the knowledge of these tactical decisions is often lost, resulting in a gradual degradation of architectural quality as developers modify the code without fully understanding the underlying architectural decisions. In this paper we present a machine learning approach for discovering and visualizing architectural tactics in code, mapping these code segments to tactic traceability patterns, and monitoring sensitive areas of the code for modification events in order to provide users with up-to-date information about underlying architectural concerns. Our approach utilizes a customized classifier which is trained using code extracted from fifty performance-centric and safety-critical open source software systems. Its performance is compared against seven off-the-shelf classifiers. In a controlled experiment all classifiers performed well; however our tactic detector outperformed the other classifiers when used within the larger context of the Hadoop Distributed File System. We further demonstrate the viability of our approach for using the automatically detected tactics to generate viable and informative messages in a simulation of maintenance events mined from Hadoop's change management system.
Integrity signals
Registry
Cites
Statistics
Claims the paper makes
Claims other papers make about this one
Each is checked against this paper’s own text: does it say what the citing paper says it does?
Architecture monitoring aims to quantify health status of software systems continuously and evaluate whether symptoms of architecture problems crept into a system.
“Architecture monitoring aims to quantify the health status of software systems in a continuous way, and evaluate whether the symptoms of architecture problems crept into a system [65].”
From Software Architecture in Practice: Challenges and Opportunities (2023) · cites this paper as [65]
Cites
(1992) · Cited by 23,431 · see citing works
(1994) · Cited by 21,711 · see citing works
Breiman, L. (1996) · Machine Learning · doi:10.1007/bf00058655 · Cited by 16,325 · see citing works
Baeza-Yates, R. A., & Ribeiro-Neto, B. A. (1999) · Cited by 11,498 · see citing works
Experiments with a new boosting algorithm
Freund, Y., & Schapire, R. E. (1996) · Cited by 8,189 · see citing works
Text categorization with Support Vector Machines: Learning with many relevant features
Joachims, T. (1998) · Lecture notes in computer science · doi:10.1007/bfb0026683 · Cited by 8,134 · see citing works
Software Architecture in Practice
Bass, L., Clements, P., & Kazman, R. (1997) · Cited by 5,033 · see citing works
Foundations for the study of software architecture
Perry, D. E., & Wolf, A. L. (1992) · ACM SIGSOFT Software Engineering Notes · doi:10.1145/141874.141884 · Cited by 2,023 · see citing works
Recovering traceability links between code and documentation
Antoniol, G., Canfora, G., Casazza, G., Lucia, A. D., & Merlo, E. (2002) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2002.1041053 · Cited by 969 · see citing works
Large-Scale Bayesian Logistic Regression for Text Categorization
Genkin, A., Lewis, D. D., & Madigan, D. (2007) · Technometrics · doi:10.1198/004017007000000245 · Cited by 812 · see citing works
Parnas, D. L. (1994) · doi:10.5555/257734.257788 · Cited by 658 · see citing works
Software Architecture as a Set of Architectural Design Decisions
Jansen, A., & Bosch, J. (2006) · Working IEEE/IFIP Conference on Software Architecture (WICSA) · doi:10.1109/wicsa.2005.61 · Cited by 628 · see citing works
Text Classification using String Kernels
Lodhi, H. M., Shawe-Taylor, J. S., Cristianini, N., & Watkins, C. J. C. H. (2000) · Explore Bristol Research · Cited by 571 · see citing works
Bunch: a clustering tool for the recovery and maintenance of software system structures
Mancoridis, S., Mitchell, B. S., Chen, Y., et al. (1999) · doi:10.1109/icsm.1999.792498 · Cited by 510 · see citing works
Advancing candidate link generation for requirements tracing: the study of methods
Hayes, J. H., Dekhtyar, A., & Sundaram, S. K. (2006) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2006.3 · Cited by 482 · see citing works
Aldrich, J., Chambers, C., & Notkin, D. S. (2002) · Proceedings/Proceedings - International Conference on Software Engineering · doi:10.1145/581339.581365 · Cited by 449 · see citing works
Software reflexion models: bridging the gap between design and implementation
Murphy, G. C., Notkin, D. S., & Sullivan, K. (2001) · IEEE Transactions on Software Engineering · doi:10.1109/32.917525 · Cited by 400 · see citing works
Parnas, D. L. (2002) · doi:10.1109/icse.1994.296790 · Cited by 369 · see citing works
Software Architecture Reconstruction: A Process-Oriented Taxonomy
Ducasse, S., & Pollet, D. (2009) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2009.19 · Cited by 360 · see citing works
Hierarchical Clustering for Software Architecture Recovery
Maqbool, O., & Babri, H. (2007) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2007.70732 · Cited by 350 · see citing works
Design rationale systems: understanding the issues
Lee, J. (1997) · IEEE Expert · doi:10.1109/64.592267 · Cited by 345 · see citing works
Software traceability with topic modeling
Asuncion, H. U., Asuncion, A., & Taylor, R. N. (2010) · doi:10.1145/1806799.1806817 · Cited by 328 · see citing works
Automated classification of non-functional requirements
Cleland‐Huang, J., Settimi, R., Zou, X., et al. (2007) · Requirements Engineering · doi:10.1007/s00766-007-0045-1 · Cited by 294 · see citing works
Self-citationA rationale-based architecture model for design traceability and reasoning
Tang, A., Jin, Y., & Han, J. (2006) · Journal of Systems and Software · doi:10.1016/j.jss.2006.08.040 · Cited by 255 · see citing works
Playing Detective: Reconstructing Software Architecture from Available Evidence
Kazman, R., & Carrière, S. J. (1999) · Automated Software Engineering · doi:10.1023/a:1008781513258 · Cited by 226 · see citing works
Best Practices for Automated Traceability
Cleland‐Huang, J., Berenbach, B., Clark, S., Settimi, R., & Romanova, E. (2007) · Computer · doi:10.1109/mc.2007.195 · Cited by 208 · see citing works
Self-citationA survey of software aging and rejuvenation studies
Cotroneo, D., Natella, R., Pietrantuono, R., et al. (2014) · ACM Journal on Emerging Technologies in Computing Systems · doi:10.1145/2539117 · Cited by 199 · see citing works
A machine learning approach for tracing regulatory codes to product specific requirements
Cleland‐Huang, J., Czauderna, A., Gibiec, M., & Emenecker, J. (2010) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1145/1806799.1806825 · Cited by 189 · see citing works
Self-citationUtilizing supporting evidence to improve dynamic requirements traceability
Cleland‐Huang, J., Settimi, R., Duan, C., & Zou, X. (2005) · IEEE International Requirements Engineering Conference (RE) · doi:10.1109/re.2005.78 · Cited by 164 · see citing works
Self-citationPatterns for Fault Tolerant Software
Hanmer, R. S. (2007) · Cited by 163 · see citing works
The Decision View's Role in Software Architecture Practice
Kruchten, P. B., Capilla, R., & Dueñas, J. C. (2009) · IEEE Software · doi:10.1109/ms.2009.52 · Cited by 151 · see citing works
A web-based tool for managing architectural design decisions
Capilla, R., Nava, F., Pérez, S. R., et al. (2006) · ACM SIGSOFT Software Engineering Notes · doi:10.1145/1163514.1178644 · Cited by 143 · see citing works
ArchJava: connecting software architecture to implementation
Aldrich, J., Chambers, C., & Notkin, D. S. (2003) · Proceedings/Proceedings - International Conference on Software Engineering · doi:10.1109/icse.2002.1007967 · Cited by 141 · see citing works
Deriving Architectural Tactics: A Step Toward Methodical Architectural Design
Bachmann, F., Bass, L., & Klein, M. (2003) · doi:10.21236/ada413701 · Cited by 123 · see citing works
Essential software architecture
(2012) · Choice Reviews Online · doi:10.5860/choice.49-2715 · Cited by 122 · see citing works
A Software Architecture Reconstruction Method
Guo, G. Y., Atlee, J. M., & Kazman, R. (1999) · IFIP advances in information and communication technology · doi:10.1007/978-0-387-35563-4_2 · Cited by 118 · see citing works
Documenting after the fact: Recovering architectural design decisions
Jansen, A. G. J., Bosch, J., & Avgeriou, P. (2007) · Journal of Systems and Software · doi:10.1016/j.jss.2007.08.025 · Cited by 106 · see citing works
Runtime recovery and manipulation of software architecture of component-based systems
Huang, G., Mei, H., & Yang, F. (2006) · Automated Software Engineering · doi:10.1007/s10515-006-7738-4 · Cited by 102 · see citing works
Object-oriented design patterns recovery
Antoniol, G., Casazza, G., Penta, M. D., et al. (2001) · Journal of Systems and Software · doi:10.1016/s0164-1212(01)00061-9 · Cited by 95 · see citing works
Concept location using formal concept analysis and information retrieval
Poshyvanyk, D., Gethers, M., & Marcus, A. (2012) · ACM Transactions on Software Engineering and Methodology · doi:10.1145/2377656.2377660 · Cited by 90 · see citing works
Towards mining replacement queries for hard-to-retrieve traces
Gibiec, M., Czauderna, A., & Cleland‐Huang, J. (2010) · IEEE/ACM International Conference on Automated Software Engineering (ASE) · doi:10.1145/1858996.1859046 · Cited by 76 · see citing works
Self-citationSoftware Engineering Using RATionale
Burge, J. E., & Brown, D. C. (2007) · Journal of Systems and Software · doi:10.1016/j.jss.2007.05.004 · Cited by 76 · see citing works
A tactic-centric approach for automating traceability of quality concerns
Mirakhorli, M., Shin, Y., Cleland‐Huang, J., et al. (2012) · Proceedings/Proceedings - International Conference on Software Engineering · doi:10.1109/icse.2012.6227153 · Cited by 72 · see citing works
Self-citationFormalizing refactorings with graph transformations
Mens, T., Eetvelde, N. V., Demeyer, S., & Janssens, D. (2005) · Journal of Software Maintenance and Evolution Research and Practice · doi:10.1002/smr.v17:4 · Cited by 68 · see citing works
Evaluation of Accuracy in Design Pattern Occurrence Detection
Pettersson, N. H., Löwe, W., & Nivre, J. (2010) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2009.92 · Cited by 68 · see citing works
A tactic-centric approach for automating traceability of quality concerns
Mirakhorli, M., Shin, Y., Cleland‐Huang, J., et al. (2012) · doi:10.5555/2337223.2337298 · Cited by 67 · see citing works
Self-citationSoftware architecture recovery based on pattern matching
Sartipi, K. (2004) · International Conference on Software Maintenance · doi:10.1109/icsm.2003.1235434 · Cited by 62 · see citing works
Leveraging design rules to improve software architecture recovery
Cai, Y., Wang, H., Wong, S., et al. (2013) · International ACM SIGSOFT Conference on Quality of Software Architectures (QoSA) · doi:10.1145/2465478.2465480 · Cited by 54 · see citing works
Supporting event based traceability through high-level recognition of change events
Cleland‐Huang, J., Chang, C. K., & Ge, Y. (2003) · IEEE Annual International Computer Software and Applications Conference (COMPSAC) · doi:10.1109/cmpsac.2002.1045069 · Cited by 47 · see citing works
Self-citationThe value of design rationale information
Falessi, D., Briand, L., Cantone, G., et al. (2013) · ACM Transactions on Software Engineering and Methodology · doi:10.1145/2491509.2491515 · Cited by 45 · see citing works
Evolutionary and collaborative software architecture recovery with Softwarenaut
Lungu, M. F., Lanza, M., & Nierstrasz, O. (2012) · Science of Computer Programming · doi:10.1016/j.scico.2012.04.007 · Cited by 41 · see citing works
Koschke, R. (2009) · Lecture notes in computer science · doi:10.1007/978-3-540-95888-8_6 · Cited by 39 · see citing works
Using Design Pattern Clues to Improve the Precision of Design Pattern Detection Tools.
Fontana, F. A., Zanoni, M., & Maggioni, S. (2011) · The Journal of Object Technology · doi:10.5381/jot.2011.10.1.a4 · Cited by 37 · see citing works
A Principled Way to Use Frameworks in Architecture Design
Cervantes, H., Velasco-Elizondo, P., & Kazman, R. (2012) · IEEE Software · doi:10.1109/ms.2012.175 · Cited by 32 · see citing works
Mirakhorli, M. T., & Cleland‐Huang, J. (2011) · IEEE International Conference on Software Maintenance (ICSM) · doi:10.1109/icsm.2011.6080779 · Cited by 30 · see citing works
Self-citationTracing architectural concerns in high assurance systems (NIER track)
Mirakhorli, M. T., & Cleland‐Huang, J. (2011) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1145/1985793.1985942 · Cited by 26 · see citing works
Self-citationArchie: a tool for detecting, monitoring, and preserving architecturally significant code
Mirakhorli, M., Fakhry, A., Grechko, A., et al. (2014) · ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE) · doi:10.1145/2635868.2661671 · Cited by 25 · see citing works
Self-citationZheng, Y., & Taylor, R. N. (2012) · Proceedings/Proceedings - International Conference on Software Engineering · doi:10.1109/icse.2012.6227154 · Cited by 21 · see citing works
Primary flight computers for the Boeing 777
Aplin, J. D. (1997) · Microprocessors and Microsystems · doi:10.1016/s0141-9331(97)01112-5 · Cited by 20 · see citing works
Using variability modeling principles to capture architectural knowledge
Sinnema, M., van der Ven, J. S., & Deelstra, S. (2006) · ACM SIGSOFT Software Engineering Notes · doi:10.1145/1163514.1178645 · Cited by 15 · see citing works
Orion GN&C Architecture for Increased Spacecraft Automation and Autonomy Capabilities
Hart, J., King, E., Miotto, P., et al. (2008) · AIAA Guidance, Navigation, and Control Conference and Exhibit · doi:10.2514/6.2008-7291 · Cited by 14 · see citing works
Using code analysis tools for architectural conformance checking
Eyck, J. V., Boucké, N., Helleboogh, A., & Holvoet, T. (2011) · Sharing and Reusing Architectural Knowledge · doi:10.1145/1988676.1988687 · Cited by 13 · see citing works
Evaluation of design pattern recovery tools
Rasool, G., Maeder, P., & Philippow, I. (2011) · Procedia Computer Science · doi:10.1016/j.procs.2010.12.134 · Cited by 11 · see citing works
Dragomir, A., Harun, M. F., & Lichter, H. (2014) · doi:10.1145/2578128.2578235 · Cited by 7 · see citing works
Flagged first, then by citations
Cited by
Sorted by citations
A survey on dataset quality in machine learning
Gong, Y., Liu, G., Xue, Y., Li, R., & Meng, L. (2023) · Information and Software Technology · doi:10.1016/j.infsof.2023.107268 · Cited by 354 · see citing works
Software Architecture in Practice: Challenges and Opportunities
Wan, Z., Zhang, Y., Xia, X., Jiang, Y., & Lo, D. (2023) · Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering · doi:10.1145/3611643.3616367 · Cited by 30 · see citing works
“Architecture monitoring aims to quantify the health status of software systems in a continuous way, and evaluate whether the symptoms of architecture problems crept into a system [63].”
Background
- Authors
- Mirakhorli, M., & Cleland-Huang, J.
- Affiliations
- Rochester Institute of Technology (US)
- ORCID
- Mirakhorli, Mehdi
- Venue
- IEEE Transactions on Software Engineering
- Published
- 2016-03-01
- Volume
- 42
- Issue
- 3
- Pages
- 205-220
- ISSN
- 0098-5589 (ISSN-L)
- 1939-3520
- OpenAlex
- W2296164881
- Cited by
- 85
- References
- 64
- Citations by year
- 2026: 3 · 2025: 3 · 2024: 4 · 2023: 11 · 2022: 8 · 2021: 12 · 2020: 9 · 2019: 8 · 2018: 12 · 2017: 8 · 2016: 6 · 2015: 1
- FWCI
- 24.27
- Type
- journal article
- Language
- en
- Open access
- closed
- Locations
- IEEE Transactions on Software Engineering (publishedVersion)
- Funders
- US National Science Foundation (CCF-0810924)
- Research Experience for Undergraduates (CCF 1341072)
- Topics
- Physical Sciences › Computer Science › Information Systems › Software Engineering Research
- Physical Sciences › Computer Science › Artificial Intelligence › Advanced Software Engineering Methodologies
- Physical Sciences › Computer Science › Computer Networks and Communications › Software System Performance and Reliability
- Keywords
- architectural tactics, software architecture, code classification, architectural quality, software maintenance, change management, HDFS, safety-critical software
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review