Design Rule Spaces: A New Model for Representing and Analyzing Software Architecture
Abstract
In this paper, we propose an architecture model called Design Rule Space (DRSpace). We model the architecture of a software system as multiple overlapping DRSpaces, reflecting the fact that any complex software system must contain multiple aspects, features, patterns, etc. We show that this model provides new ways to analyze software quality. In particular, we introduce an Architecture Root detection algorithm that captures DRSpaces containing large numbers of a project's bug-prone files, which are called Architecture Roots (ArchRoots). After investigating ArchRoots calculated from 15 open source projects, the following observations become clear: from 35 to 91 percent of a project's most bug-prone files can be captured by just 5 ArchRoots, meaning that bug-prone files are likely to be architecturally connected. Furthermore, these ArchRoots tend to live in the system for significant periods of time, serving as the major source of bug-proneness and high maintainability costs. Moreover, each ArchRoot reveals multiple architectural flaws that propagate bugs among files and this will incur high maintenance costs over time. The implication of our study is that the quality, in terms of bug-proneness, of a large, complex software project cannot be fundamentally improved without first fixing its architectural flaws.
Integrity signals
Registry
Cites
Statistics
Claims the paper makes
Cites
Software Architecture in Practice
Bass, L., Clements, P., & Kazman, R. (1997) · Cited by 5,033 · see citing works
Self-citationDesign Rules: The Power of Modularity
Baldwin, C. Y., & Clark, K. B. (2000) · doi:10.7551/mitpress/2366.001.0001 · Cited by 3,504 · see citing works
The 4+1 View Model of architecture
Kruchten, P. B. (1995) · IEEE Software · doi:10.1109/52.469759 · Cited by 2,165 · see citing works
Agile Software Development, Principles, Patterns, and Practices
Martin, R. (2002) · Cited by 1,466 · see citing works
Lessmann, S., Baesens, B., Mues, C., & Pietsch, S. (2008) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2008.35 · Cited by 1,231 · see citing works
A critique of software defect prediction models
Fenton, N., & Neil, M. (1999) · IEEE Transactions on Software Engineering · doi:10.1109/32.815326 · Cited by 1,040 · see citing works
Introduction to Modern Information Retrieval
Chowdhury, G. G. (2004) · Cited by 922 · see citing works
Abstractions for software architecture and tools to support them
Shaw, M., DeLine, R. A., Klein, D., et al. (1995) · IEEE Transactions on Software Engineering · doi:10.1109/32.385970 · Cited by 814 · see citing works
Śliwerski, J., Zimmermann, T., & Zeller, A. (2005) · ACM SIGSOFT Software Engineering Notes · doi:10.1145/1082983.1083147 · Cited by 808 · see citing works
Mining metrics to predict component failures
Nagappan, N., Ball, T., & Zeller, A. (2006) · Proceedings/Proceedings - International Conference on Software Engineering · doi:10.1145/1134285.1134349 · Cited by 785 · see citing works
Use of relative code churn measures to predict system defect density
Nagappan, N., & Ball, T. (2005) · Proceedings of the 27th international conference on Software engineering - ICSE '05 · doi:10.1145/1062455.1062514 · Cited by 775 · see citing works
Predicting fault incidence using software change history
Graves, T., Karr, A. F., Marron, J. S., & Siy, H. P. (2000) · IEEE Transactions on Software Engineering · doi:10.1109/32.859533 · Cited by 753 · see citing works
A systematic mapping study on technical debt and its management
Li, Z., Avgeriou, P., & Liang, P. (2014) · Journal of Systems and Software · doi:10.1016/j.jss.2014.12.027 · Cited by 746 · see citing works
The WyCash portfolio management system
Cunningham, W. (1992) · Addendum to the proceedings on Object-oriented programming systems, languages, and applications (Addendum) - OOPSLA '92 · doi:10.1145/157709.157715 · Cited by 742 · see citing works
Technical Debt: From Metaphor to Theory and Practice
Kruchten, P., Nord, R. L., & Ozkaya, I. (2012) · IEEE Software · doi:10.1109/ms.2012.167 · Cited by 735 · see citing works
On the relative value of cross-company and within-company data for defect prediction
Turhan, B., Menzies, T., Bener, A., et al. (2009) · Empirical Software Engineering · doi:10.1007/s10664-008-9103-7 · Cited by 731 · see citing works
Predicting the location and number of faults in large software systems
Ostrand, T. J., Weyuker, E. J., & Bell, R. M. (2005) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2005.49 · Cited by 723 · see citing works
Moser, R., Pedrycz, W., & Succi, G. (2008) · Proceedings/Proceedings - International Conference on Software Engineering · doi:10.1145/1368088.1368114 · Cited by 707 · see citing works
Cross-project defect prediction: a large scale experiment on data vs. domain vs. process
Zimmermann, T., Nagappan, N., Gall, H. C., Giger, E., & Murphy, B. (2009) · Zurich Open Repository and Archive (University of Zurich) · doi:10.5167/uzh-25785 · Cited by 696 · see citing works
Evaluating defect prediction approaches: a benchmark and an extensive comparison
D’Ambros, M., Lanza, M., & Robbes, R. (2011) · Empirical Software Engineering · doi:10.1007/s10664-011-9173-9 · Cited by 628 · see citing works
An Empirical Comparison of Model Validation Techniques for Defect Prediction Models
Tantithamthavorn, C., McIntosh, S., Hassan, A. E., & Matsumoto, K. (2017) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2016.2584050 · Cited by 574 · see citing works
Using Class Imbalance Learning for Software Defect Prediction
Wang, S., & Yao, X. (2013) · IEEE Transactions on Reliability · doi:10.1109/tr.2013.2259203 · Cited by 568 · see citing works
Towards identifying software project clusters with regard to defect prediction
Jureczko, M., & Madeyski, L. (2010) · doi:10.1145/1868328.1868342 · Cited by 555 · 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
Predicting Faults from Cached History
Kim, S., Zimmermann, T., Whitehead, E. J., & Zeller, A. (2007) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1109/icse.2007.66 · Cited by 503 · see citing works
SAAM: a method for analyzing the properties of software architectures
Kazman, R., Bass, L., Abowd, G. D., & Webb, M. (1994) · doi:10.5555/257734.257746 · Cited by 486 · see citing works
Self-citationTransfer learning for cross-company software defect prediction
Ma, Y., Luo, G., Zeng, X. Q., & Chen, A. (2011) · Information and Software Technology · doi:10.1016/j.infsof.2011.09.007 · Cited by 477 · see citing works
Defect prediction from static code features: current results, limitations, new approaches
Menzies, T., Milton, Z., Turhan, B., Čukić, B., Jiang, Y., & Bener, A. (2010) · Automated Software Engineering · doi:10.1007/s10515-010-0069-5 · Cited by 462 · 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
Detection of logical coupling based on product release history
Gall, H. C., Hajek, K., & Jazayeri, M. (2002) · International Conference on Software Maintenance · doi:10.1109/icsm.1998.738508 · Cited by 448 · see citing works
An exploration of technical debt
Tom, E., Aurum, A., & Vidgen, R. (2013) · Journal of Systems and Software · doi:10.1016/j.jss.2012.12.052 · Cited by 438 · see citing works
Managing technical debt in software-reliant systems
Brown, N., Cai, Y., Guo, Y., Kazman, R., Kim, M., Kruchten, P., Lim, E., MacCormack, A., Nord, R., Ozkaya, I., et al. (2010) · Proceedings of the FSE/SDP workshop on Future of software engineering research · doi:10.1145/1882362.1882373 · Cited by 432 · see citing works
Self-citationSoftware Module Clustering as a Multi-Objective Search Problem
Praditwong, K., Harman, M., & Yao, X. (2010) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2010.26 · Cited by 396 · see citing works
Śliwerski, J., Zimmermann, T., & Zeller, A. (2005) · doi:10.1145/1083142.1083147 · Cited by 394 · see citing works
Introduction to Modern Information Retrieval
(2011) · Library Management · doi:10.1108/01435121111132365 · Cited by 376 · see citing works
Is it a bug or an enhancement?
Antoniol, G., Ayari, K., Penta, M. D., Khomh, F., & Guéhéneuc, Y. (2008) · IEEE International Conference on Collaborative Advances in Software and Computing (CASCON) · doi:10.1145/1463788.1463819 · Cited by 367 · see citing works
Predicting fault-prone software modules in telephone switches
Ohlsson, N., & Alberg, H. (1996) · IEEE Transactions on Software Engineering · doi:10.1109/32.553637 · Cited by 346 · see citing works
Dealing with noise in defect prediction
Kim, S., Zhang, H., Wu, R., & Gong, L. (2011) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1145/1985793.1985859 · Cited by 340 · see citing works
Bird, C., Nagappan, N., Murphy, T. B., Gall, H. C., & Dévanbu, P. (2011) · ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE) · doi:10.1145/2025113.2025119 · Cited by 339 · see citing works
Reverse engineering feature models
She, S., Lotufo, R., Berger, T., et al. (2011) · Proceedings/Proceedings - International Conference on Software Engineering · doi:10.1145/1985793.1985856 · Cited by 304 · see citing works
It's not a bug, it's a feature: How misclassification impacts bug prediction
Herzig, K., Just, S., & Zeller, A. (2013) · Proceedings/Proceedings - International Conference on Software Engineering · doi:10.1109/icse.2013.6606585 · Cited by 292 · see citing works
A survey of architecture description languages
Clements, P. (1996) · doi:10.5555/857204.858261 · Cited by 284 · see citing works
Choosing software metrics for defect prediction: an investigation on feature selection techniques
Gao, K., Khoshgoftaar, T. M., Wang, H., & Seliya, N. (2011) · Software Practice and Experience · doi:10.1002/spe.1043 · Cited by 281 · see citing works
Ostrand, T. J., Weyuker, E. J., & Bell, R. M. (2004) · ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA) · doi:10.1145/1007512.1007524 · Cited by 271 · see citing works
Local versus Global Lessons for Defect Prediction and Effort Estimation
Menzies, T., Butcher, A., Cok, D. R., et al. (2013) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2012.83 · Cited by 262 · see citing works
Measure it? Manage it? Ignore it? software practitioners and technical debt
Ernst, N. A., Bellomo, S., Ozkaya, I., Nord, R. L., & Gorton, I. (2015) · Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering · doi:10.1145/2786805.2786848 · Cited by 260 · see citing works
ACCD: an algorithm for comprehension-driven clustering
Tzerpos, V., & Holt, R. C. (2002) · Proceedings - Working Conference on Reverse Engineering · doi:10.1109/wcre.2000.891477 · Cited by 259 · see citing works
Recalling the "imprecision" of cross-project defect prediction
Rahman, F., Posnett, D., & Dévanbu, P. (2012) · doi:10.1145/2393596.2393669 · Cited by 248 · see citing works
SAAM: a method for analyzing the properties of software architectures
Kazman, R., Bass, L., Abowd, G. D., et al. (2002) · doi:10.1109/icse.1994.296768 · Cited by 245 · see citing works
Self-citationBaldwin, C. Y. (2006) · International Conference on Aspect-Oriented Software Development (AOSD) · doi:10.1145/1119655.1119657 · Cited by 232 · 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
Self-citationMeasuring and Monitoring Technical Debt
Seaman, C. B., & Guo, Y. (2011) · Advances in computers · doi:10.1016/b978-0-12-385512-1.00002-5 · Cited by 218 · see citing works
Modechart: a specification language for real-time systems
Jahanian, F., & Mok, A. K. (1994) · IEEE Transactions on Software Engineering · doi:10.1109/32.368134 · Cited by 213 · see citing works
A Balancing Act: What Software Practitioners Have to Say about Technical Debt
Lim, E., Taksande, N., & Seaman, C. B. (2012) · IEEE Software · doi:10.1109/ms.2012.130 · Cited by 204 · see citing works
Jing, X., Wu, F., Dong, X., et al. (2016) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2016.2597849 · Cited by 198 · see citing works
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bug-Introducing Changes
da Costa, D. A., McIntosh, S., Shang, W., Kulesza, U., Coelho, R. D. S., & Hassan, A. E. (2016) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2016.2616306 · Cited by 197 · see citing works
Mining succinct and high-coverage API usage patterns from source code
Wang, J., Dang, Y., Zhang, H., et al. (2013) · Working Conference on Mining Software Repositories (MSR) · doi:10.1109/msr.2013.6624045 · Cited by 193 · see citing works
Revisiting the evaluation of defect prediction models
Mende, T., & Koschke, R. (2009) · doi:10.1145/1540438.1540448 · Cited by 181 · see citing works
A case study in root cause defect analysis
Leszak, M., Perry, D. E., & Stoll, D. (2000) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1145/337180.337232 · Cited by 181 · see citing works
Experience with performing architecture tradeoff analysis
Kazman, R., Barbacci, M. R., Klein, M., et al. (1999) · Proceedings/Proceedings - International Conference on Software Engineering · doi:10.1145/302405.302452 · Cited by 178 · see citing works
Self-citationA comparative analysis of software architecture recovery techniques
Garcia, J., Ivkovic, I., & Medvidović, N. (2013) · IEEE/ACM International Conference on Automated Software Engineering (ASE) · doi:10.1109/ase.2013.6693106 · Cited by 175 · see citing works
In Search of a Metric for Managing Architectural Technical Debt
Nord, R. L., Özkaya, İ., Kruchten, P. B., & Gonzalez-Rojas, M. (2012) · Working IEEE/IFIP Conference on Software Architecture (WICSA) · doi:10.1109/wicsa-ecsa.212.17 · Cited by 169 · see citing works
Building Defect Prediction Models in Practice
Koru, A. G., & Liu, H. (2005) · IEEE Software · doi:10.1109/ms.2005.149 · Cited by 169 · see citing works
Using technical debt data in decision making: Potential decision approaches
Seaman, C. B., Guo, Y., Zazworka, N., et al. (2012) · doi:10.1109/mtd.2012.6225999 · Cited by 166 · see citing works
A survey of architecture description languages
Clements, P. (2002) · doi:10.1109/iwssd.1996.501143 · Cited by 163 · see citing works
Assessing technical debt by identifying design flaws in software systems
Marinescu, R. (2012) · IBM Journal of Research and Development · doi:10.1147/jrd.2012.2204512 · Cited by 162 · see citing works
An empirical model of technical debt and interest
Nugroho, A., Visser, J., & Kuipers, T. (2011) · doi:10.1145/1985362.1985364 · Cited by 157 · see citing works
Towards an Ontology of Terms on Technical Debt
Alves, N. S. R., Ribeiro, L. F., Caires, V., Mendes, T. S., & Spinola, R. O. (2014) · IEEE/ACM International Conference on Technical Debt (TechDebt) · doi:10.1109/mtd.2014.9 · Cited by 153 · see citing works
Empirical Assessment of Machine Learning based Software Defect Prediction Techniques
Challagulla, V. U. B., Bastani, F., Yen, I., et al. (2006) · IEEE International Workshop on Object-Oriented Real-Time Dependable Systems (WORDS) · doi:10.1109/words.2005.32 · Cited by 153 · 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
A portfolio approach to technical debt management
Guo, Y., & Seaman, C. B. (2011) · doi:10.1145/1985362.1985370 · Cited by 136 · see citing works
Mining Software Repair Models for Reasoning on the Search Space of Automated Program Fixing
Martínez, M., & Monperrus, M. (2013) · Cited by 134 · see citing works
A case study on effectively identifying technical debt
Zazworka, N., Spinola, R. O., Vetrò, A., et al. (2013) · International Conference on Evaluation and Assessment in Software Engineering (EASE) · doi:10.1145/2460999.2461005 · Cited by 133 · see citing works
Comparing four approaches for technical debt identification
Zazworka, N., Vetrò, A., Izurieta, C. I., et al. (2013) · Software Quality Journal · doi:10.1007/s11219-013-9200-8 · Cited by 130 · see citing works
The CODE 2.0 graphical parallel programming language
Newton, P., & Browne, J. C. (1992) · ACM International Conference on Supercomputing (ICS) · doi:10.1145/143369.143405 · Cited by 126 · see citing works
Detecting software modularity violations
Wong, S., Cai, Y., Kim, M., et al. (2011) · Proceedings/Proceedings - International Conference on Software Engineering · doi:10.1145/1985793.1985850 · Cited by 126 · see citing works
Self-citationMining software repair models for reasoning on the search space of automated program fixing
Martínez, M., & Monperrus, M. (2013) · Empirical Software Engineering · doi:10.1007/s10664-013-9282-8 · Cited by 125 · see citing works
Architecture Reviews: Practice and Experience
Maranzano, J. F., Rozsypal, S. A., Zimmerman, G. H., et al. (2005) · IEEE Software · doi:10.1109/ms.2005.28 · Cited by 123 · see citing works
Improving software modularization via automated analysis of latent topics and dependencies
Bavota, G., Gethers, M., Oliveto, R., Poshyvanyk, D., & Lucia, A. D. (2014) · ACM Transactions on Software Engineering and Methodology · doi:10.1145/2559935 · Cited by 117 · see citing works
Managing Technical Debt with the SQALE Method
Letouzey, J.-L., & Ilkiewicz, M. (2012) · IEEE Software · doi:10.1109/ms.2012.129 · Cited by 114 · see citing works
Hotspot Patterns: The Formal Definition and Automatic Detection of Architecture Smells
Mo, R., Cai, Y., Kazman, R., et al. (2015) · Working IEEE/IFIP Conference on Software Architecture (WICSA) · doi:10.1109/wicsa.2015.12 · Cited by 111 · see citing works
Self-citationIdentifying and quantifying architectural debt
Xiao, L., Cai, Y., Kazman, R., et al. (2016) · Proceedings/Proceedings - International Conference on Software Engineering · doi:10.1145/2884781.2884822 · Cited by 107 · see citing works
Self-citationInvestigating the use of lexical information for software system clustering
Corazza, A., Martino, S. D., Maggio, V., et al. (2011) · Proceedings of the ... European Conference on Software Maintenance and Reengineering/Proceedings of the European Conference on Software Maintenance and Reengineering · doi:10.1109/csmr.2011.8 · Cited by 97 · see citing works
Formal Modeling and Analysis of Software Architecture: Components, Connectors, and Events
Garlan, D. (2003) · Lecture notes in computer science · doi:10.1007/978-3-540-39800-4_1 · Cited by 92 · see citing works
Zhang, F., Hassan, A. E., McIntosh, S., et al. (2016) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2016.2599161 · Cited by 83 · see citing works
Estimating the size, cost, and types of Technical Debt
Curtis, B., Sappidi, J., & Szynkarski, A. (2012) · doi:10.1109/mtd.2012.6226000 · Cited by 79 · see citing works
Design Rule Hierarchies and Parallelism in Software Development Tasks
Wong, S., Cai, Y., Valetto, G., et al. (2009) · IEEE/ACM International Conference on Automated Software Engineering (ASE) · doi:10.1109/ase.2009.53 · Cited by 74 · see citing works
Self-citationObtaining ground-truth software architectures
Garcia, J., Krka, I., Mattmann, C. A., et al. (2013) · Proceedings/Proceedings - International Conference on Software Engineering · doi:10.1109/icse.2013.6606639 · Cited by 72 · see citing works
Reverse Engineering Architectural Feature Models
Acher, M., Cleve, A., Collet, P., et al. (2011) · Lecture notes in computer science · doi:10.1007/978-3-642-23798-0_25 · Cited by 64 · see citing works
Allen, R. J., & Garlan, D. (1994) · doi:10.1145/185084.185101 · Cited by 57 · 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
Self-citationHotspot Patterns: The Formal Definition and Automatic Detection of Architecture Smells
Mo, R., Cai, Y., Kazman, R., et al. (2015) · doi:10.21236/ada621415 · Cited by 53 · see citing works
Self-citationBruch, M., Schäfer, T., & Mezini, M. (2006) · doi:10.1145/1188835.1188847 · Cited by 52 · see citing works
Feature-gathering dependency-based software clustering using Dedication and Modularity
KOBAYASHI, K. P., Kamimura, M., Kato, K., et al. (2012) · Proceedings/Proceedings - Conference on Software Maintenance · doi:10.1109/icsm.2012.6405308 · Cited by 45 · see citing works
Efficient implementation of adaptive software
Palsberg, J., Xiao, C., & Lieberherr, K. J. (1995) · ACM Transactions on Programming Languages and Systems · doi:10.1145/201059.201066 · Cited by 45 · see citing works
Technical Debt: Showing the Way for Better Transfer of Empirical Results
Shull, F. J., Falessi, D., Seaman, C. B., Diep, M. M., & Layman, L. M. (2013) · Springer eBooks · doi:10.1007/978-3-642-37395-4_12 · Cited by 45 · see citing works
Recovering software product line architecture of a family of object-oriented product variants
Shatnawi, A., Seriai, A.-D., & Sahraoui, H. A. (2016) · Journal of Systems and Software · doi:10.1016/j.jss.2016.07.039 · Cited by 45 · see citing works
A Case Study in Locating the Architectural Roots of Technical Debt
Kazman, R., Cai, Y., Mo, R., et al. (2015) · doi:10.21236/ada614220 · Cited by 44 · see citing works
Self-citationObtaining ground-truth software architectures
Garcia, J., Krka, I., Mattmann, C. A., et al. (2013) · doi:10.5555/2486788.2486911 · Cited by 42 · see citing works
Quality-Centric Approach for Software Component Identification from Object-Oriented Code
Kebir, S., Seriai, A.-D., Chardigny, S., et al. (2012) · doi:10.1109/wicsa-ecsa.212.26 · Cited by 41 · see citing works
Improved Similarity Measures for Software Clustering
Naseem, R., Maqbool, O., & Muhammad, S. (2011) · Proceedings of the ... European Conference on Software Maintenance and Reengineering/Proceedings of the European Conference on Software Maintenance and Reengineering · doi:10.1109/csmr.2011.9 · Cited by 41 · see citing works
Reconstructing Architectural Views from Legacy Systems
Boussaidi, G. E., Belle, A. B., Vaucher, S., et al. (2012) · Proceedings - Working Conference on Reverse Engineering · doi:10.1109/wcre.2012.44 · Cited by 41 · see citing works
Measuring architecture quality by structure plus history analysis
Schwanke, R. W., Xiao, L., & Cai, Y. (2013) · Proceedings/Proceedings - International Conference on Software Engineering · doi:10.1109/icse.2013.6606638 · Cited by 37 · see citing works
Self-citationTowards an Architecture-Centric Approach to Security Analysis
Feng, Q., Kazman, R., Cai, Y., et al. (2016) · Working IEEE/IFIP Conference on Software Architecture (WICSA) · doi:10.1109/wicsa.2016.41 · Cited by 36 · see citing works
Self-citationPart II: specifying components in RESOLVE
Edwards, S. H., Heym, W. D., Long, T. J., et al. (1994) · ACM SIGSOFT Software Engineering Notes · doi:10.1145/190679.190682 · Cited by 34 · see citing works
Software Clustering: Unifying Syntactic and Semantic Features
Misra, J., Annervaz, K. M., Kaulgud, V., et al. (2012) · Proceedings - Working Conference on Reverse Engineering · doi:10.1109/wcre.2012.21 · Cited by 31 · see citing works
Kazman, R., Goldenson, D., Monarch, I., Nichols, W., & Valetto, G. (2016) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2015.2465387 · Cited by 31 · see citing works
Self-citationTechnical debt at the crossroads of research and practice
Falessi, D., Kruchten, P. B., Nord, R. L., & Özkaya, İ. (2014) · ACM SIGSOFT Software Engineering Notes · doi:10.1145/2579281.2579311 · Cited by 22 · see citing works
Extracting and Facilitating Architecture in Service-Oriented Software Systems
Weinreich, R., Miesbauer, C., Buchgeher, G., et al. (2012) · doi:10.1109/wicsa-ecsa.212.16 · Cited by 22 · see citing works
Object Oriented Software Clustering Based on Community Structure
Erdemir, U., Tekin, U., & Buzluca, F. (2011) · Proceedings - Asia Pacific Software Engineering Conference/Proceedings · doi:10.1109/apsec.2011.33 · Cited by 20 · see citing works
Kebir, S., Seriai, A.-D., Chaoui, A., et al. (2012) · doi:10.1145/2347583.2347584 · Cited by 20 · see citing works
Analyzing Program Dependencies in Java EE Applications
Shatnawi, A., Mili, H., Boussaidi, G. E., et al. (2017) · IEEE/ACM International Conference on Mining Software Repositories (MSR) · doi:10.1109/msr.2017.6 · Cited by 19 · see citing works
Overview of Teknowledge's domain-specific software architecture program
Terry, A., Hayes-Roth, F. A., Erman, L. D., et al. (1994) · ACM SIGSOFT Software Engineering Notes · doi:10.1145/190679.190686 · Cited by 17 · see citing works
Materializing Architecture Recovered from Object-Oriented Source Code in Component-Based Languages
Alshara, Z., Seriai, A.-D., Tibermacine, C., et al. (2016) · Lecture notes in computer science · doi:10.1007/978-3-319-48992-6_23 · Cited by 16 · see citing works
Defining Architectural Viewpoints for Quality Concerns
Teki̇nerdoğan, B., & Sözer, H. (2011) · Lecture notes in computer science · doi:10.1007/978-3-642-23798-0_3 · Cited by 14 · see citing works
Reengineering component-based software systems with Archimetrix
von Detten, M., Platenius, M. C., & Becker, S. (2013) · Software & Systems Modeling · doi:10.1007/s10270-013-0341-9 · Cited by 14 · see citing works
A Framework for Obtaining the Ground-Truth in Architectural Recovery
Garcia, J., Krka, I., Medvidović, N., et al. (2012) · doi:10.1109/wicsa-ecsa.212.48 · Cited by 14 · see citing works
Peters, L. J. (2014) · doi:10.1109/mtd.2014.7 · Cited by 14 · see citing works
An Aspect-Based Feature Model for Architecting Component Product Lines
Tizzei, L. P., Rubira, C. M. F., & Lee, J. (2012) · Euromicro Conference on Software Engineering and Advanced Applications (SEAA) · doi:10.1109/seaa.2012.64 · Cited by 13 · see citing works
On the Relation of Refactoring and Software Defects
Ratzinger, J., Sigmund, T., & Gall, H. C. (2008) · Cited by 12 · see citing works
Seaman, C. B., Nord, R. L., Kruchten, P. B., & Özkaya, İ. (2015) · ACM SIGSOFT Software Engineering Notes · doi:10.1145/2735399.2735419 · Cited by 11 · see citing works
A learning algorithm for change impact prediction
Musco, V., Carette, A., Monperrus, M., et al. (2016) · doi:10.1145/2896995.2896996 · Cited by 8 · see citing works
Ripple: a test-aware architecture modeling framework
Xiao, L., & Yu, T. (2017) · doi:10.5555/3101282.3101286 · Cited by 2 · see citing works
Self-citationRipple: A Test-Aware Architecture Modeling Framework
Xiao, L., & Yu, T. (2017) · doi:10.1109/ecase.2017.2 · Cited by 2 · see citing works
Self-citation
Flagged first, then by citations
Cited by
Sorted by citations
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
“Previous studies have put effort into developing methods and tools for architecture representation and documentation [15, 38], analysis and evaluation [41, 73], recovery and optimization [2, 30, 54], as well as knowledge management and decision making [16, 100] to support software architecture…”
Method
- Authors
- Cai, Y., Xiao, L., Kazman, R., Mo, R., & Feng, Q.
- Affiliations
- Drexel University (US)
- Stevens Institute of Technology (US)
- University of Hawaiʻi at Mānoa (US)
- Venue
- IEEE Transactions on Software Engineering
- Published
- 2019-07-01
- Volume
- 45
- Issue
- 7
- Pages
- 657-682
- ISSN
- 0098-5589 (ISSN-L)
- 1939-3520
- 2326-3881
- OpenAlex
- W2792459140
- Cited by
- 39
- References
- 124
- Citations by year
- 2026: 1 · 2025: 4 · 2024: 2 · 2023: 9 · 2022: 3 · 2021: 6 · 2020: 9 · 2019: 4 · 2018: 1
- FWCI
- 8.06
- Type
- journal article
- Language
- en
- Open access
- closed
- Licence
- Locations
- IEEE Transactions on Software Engineering (publishedVersion)
- Funders
- Division of Computing and Communication Foundations (1514315)
- 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
- software architecture modeling, software quality, bug propagation, open source projects, software architecture evaluation
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