university of groningen managing technical debt in ... · [s4] r. bavani, distributed agile, agile...

35
University of Groningen Managing technical debt in software architecture Li, Zengyang IMPORTANT NOTE: You are advised to consult the publisher's version (publisher's PDF) if you wish to cite from it. Please check the document version below. Document Version Publisher's PDF, also known as Version of record Publication date: 2015 Link to publication in University of Groningen/UMCG research database Citation for published version (APA): Li, Z. (2015). Managing technical debt in software architecture. [Groningen]. Copyright Other than for strictly personal use, it is not permitted to download or to forward/distribute the text or part of it without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license (like Creative Commons). Take-down policy If you believe that this document breaches copyright please contact us providing details, and we will remove access to the work immediately and investigate your claim. Downloaded from the University of Groningen/UMCG research database (Pure): http://www.rug.nl/research/portal. For technical reasons the number of authors shown on this cover page is limited to 10 maximum. Download date: 21-05-2020

Upload: others

Post on 20-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

University of Groningen

Managing technical debt in software architectureLi, Zengyang

IMPORTANT NOTE: You are advised to consult the publisher's version (publisher's PDF) if you wish to cite fromit. Please check the document version below.

Document VersionPublisher's PDF, also known as Version of record

Publication date:2015

Link to publication in University of Groningen/UMCG research database

Citation for published version (APA):Li, Z. (2015). Managing technical debt in software architecture. [Groningen].

CopyrightOther than for strictly personal use, it is not permitted to download or to forward/distribute the text or part of it without the consent of theauthor(s) and/or copyright holder(s), unless the work is under an open content license (like Creative Commons).

Take-down policyIf you believe that this document breaches copyright please contact us providing details, and we will remove access to the work immediatelyand investigate your claim.

Downloaded from the University of Groningen/UMCG research database (Pure): http://www.rug.nl/research/portal. For technical reasons thenumber of authors shown on this cover page is limited to 10 maximum.

Download date: 21-05-2020

Page 2: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix A Appendix to Chapter 2

A.1. Selected studies [S1] E. Allman, Managing technical debt - Shortcuts that save money and time today can cost you down the road, Communications of the ACM, 55 (5) (2012) 50-55. [S2] E. Alzaghoul, R. Bahsoon, CloudMTD: Using real options to manage technical debt in cloud-based service selection, in: Proceedings of the 4th International Workshop on Managing Technical Debt (MTD'13), IEEE, San Francisco, CA, USA, 2013, pp. 55-62. [S3] B. Barton, C. Sterling, Manage project portfolios more effectively by including software debt in the decision process, Cutter IT Journal, 23 (10) (2010) 19-24. [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo, R.L. Nord, I. Ozkaya, A study of enabling factors for rapid fielding: combined practices to balance speed and stability, in: Proceedings of the 2013 International Conference on Software Engineering (ICSE'13), IEEE, San Francisco, CA, USA, 2013, pp. 982-991. [S6] S. Black, P.P. Boca, J.P. Bowen, J. Gorman, M. Hinchey, Formal Versus Agile: Survival of the Fittest, Computer, 42 (9) (2009) 37-45. [S7] J. Bohnet, J. Döllner, Monitoring code quality and development activity by software maps, in: Proceedings of the 2nd International Workshop on Managing Technical Debt (MTD'11), ACM, Waikiki, Honolulu, HI, USA, 2011, pp. 9-16. [S8] J. Brondum, L. Zhu, Visualising architectural dependencies, in: Proceedings of the 3rd International Workshop on Managing Technical Debt (MTD'12), IEEE, Zurich, Switzerland, 2012, pp. 7-14. [S9] N. Brown, Y. Cai, Y. Guo, R. Kazman, M. Kim, P. Kruchten, E. Lim, A. MacCormack, R. Nord, I. Ozkaya, R. Sangwan, C. Seaman, K. Sullivan, N. Zazworka, Managing technical debt in software-reliant systems, in: Proceedings of the FSE/SDP workshop on Future of software engineering research (FoSER'10), ACM, Santa Fe, New Mexico, USA, 2010, pp. 47-52. [S10] F. Buschmann, To Pay or Not to Pay Technical Debt, IEEE Software, 28 (6) (2011) 29-31. [S11] S. Chin, E. Huddleston, W. Bodwell, I. Gat, The economics of technical debt, Cutter IT Journal, 23 (10) (2010) 11-15. [S12] Z. Codabux, B. Williams, Managing technical debt: An industrial case study, in: Proceedings of the 4th International Workshop on Managing Technical Debt (MTD'13),, IEEE, San Francisco, CA, USA, 2013, pp. 8-15. [S13] P. Conroy, Technical Debt: Where Are the Shareholders' Interests?, IEEE Software, 29 (6) (2012) 88-88. [S14] T. Coq, J.P. Rosen, The SQALE quality and analysis models for assessing the quality of Ada source code, in: Proceedings of the16th Ada-Europe International

Page 3: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix A

202

Conference on Reliable Software Technologies (Ada-Europe'11), Springer Berlin Heidelberg, Edinburgh, UK, 2011, pp. 61-74. [S15] W. Cunningham, The WyCash portfolio management system, in: Proceedings of the 7th Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'92), ACM, Vancouver, British Columbia, Canada, 1992, pp. 29-30. [S16] B. Curtis, J. Sappidi, A. Szynkarski, Estimating the Principal of an Application's Technical Debt, IEEE Software, 29 (6) (2012) 34-42. [S17] B. Curtis, J. Sappidi, A. Szynkarski, Estimating the size, cost, and types of Technical Debt, in: Proceedings of the 3rd International Workshop on Managing Technical Debt (MTD'12), IEEE, Zurich, Switzerland, 2012, pp. 49-53. [S18] J.D. Davis, T.J. Andersen, Surviving the Economic Downturn, in: Proceedings of the 12th AGILE Conference (AGILE'09), IEEE, Chicago, IL, USA, 2009, pp. 245-250. [S19] N. Davis, Driving Quality Improvement and Reducing Technical Debt with the Definition of Done, in: Proceedings of the 16th AGILE Conference (AGILE'13), IEEE, Nashville, TN, USA, 2013, pp. 164-168. [S20] J. de Groot, A. Nugroho, T. Back, J. Visser, What is the value of your software?, in: Proceedings of the 3rd International Workshop on Managing Technical Debt (MTD'12), IEEE, Zurich, Switzerland, 2012, pp. 37-44. [S21] C. Ebert, A useful metaphor for risk - poorly practiced, IEEE Software, 29 (6) (2012) 53-55. [S22] R.J. Eisenberg, A threshold based approach to technical debt, SIGSOFT Software Engineering Notes, 37 (2) (2012) 1-6. [S23] N.A. Ernst, On the role of requirements in understanding and managing technical debt, in: Proceedings of the 3rd International Workshop on Managing Technical Debt (MTD'12), IEEE, Zurich, Switzerland, 2012, pp. 61-64. [S24] D. Falessi, M.A. Shaw, F. Shull, K. Mullen, M.S. Keymind, Practical considerations, challenges, and requirements of tool-support for managing technical debt, in: Proceedings of the 4th International Workshop on Managing Technical Debt (MTD'13), IEEE, San Francisco, CA, USA, 2013, pp. 16-19. [S25] F.A. Fontana, V. Ferme, S. Spinelli, Investigating the impact of code smells debt on quality code evaluation, in: Proceedings of the 3rd International Workshop on Managing Technical Debt (MTD'12), IEEE, Zurich, Switzerland, 2012, pp. 15-22. [S26] I. Gat, Revolution in Software: Using Technical Debt Techniques to Govern the Software Development Process, Agile Product & Project Management, 11 (4) (2010) 1-13. [S27] I. Gat, Technical Debt Assessment: A Case of Simultaneous Improvement at Three Levels, Agile Product & Project Management, 11 (10) (2010) 1-4. [S28] I. Gat, Technical debt as a meaningful metaphor for code quality, IEEE Software, 29 (6) (2012) 52-54. [S29] I. Gat, J.D. Heintz, From assessment to reduction: how cutter consortium helps rein in millions of dollars in technical debt, in: Proceedings of the 2nd International Workshop on Managing Technical Debt (MTD'11), ACM, Waikiki, Honolulu, HI, USA, 2011, pp. 24-26. [S30] J.M. Golden, Transformation patterns for curing the human causes of technical debt, Cutter IT Journal, 23 (10) (2010) 30-35.

Page 4: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix to Chapter 2

203

[S31] R. Gomes, C. Siebra, G. Tonin, A. Cavalcanti, F.Q.B.d. Silva, A.L.M. Santos, R. Marques, An extraction method to collect data on defects and effort evolution in a constantly modified system, in: Proceedings of the 2nd International Workshop on Managing Technical Debt (MTD'11), ACM, Waikiki, Honolulu, HI, USA, 2011, pp. 27-30. [S32] D.R. Greening, Release Duration and Enterprise Agility, in: Proceedings of the 46th Hawaii International Conference on System Sciences (HICSS'13), IEEE, Wailea, HI, USA, 2013, pp. 4835-4841. [S33] I. Griffith, C. Izurieta, Design Pattern Decay: An Extended Taxonomy and Empirical Study of Grime and its Impact on Design Pattern Evolution, in: Proceedings of Empirical Software Engineering International Week, ACM, Baltimore, Maryland, USA, 2013. [S34] Y. Guo, C. Seaman, A portfolio approach to technical debt management, in: Proceedings of the 2nd International Workshop on Managing Technical Debt (MTD'11), ACM, Waikiki, Honolulu, HI, USA, 2011, pp. 31-34. [S35] Y. Guo, C. Seaman, R. Gomes, A. Cavalcanti, G. Tonin, F.Q.B. Da Silva, A.L.M. Santos, C. Siebra, Tracking technical debt - An exploratory case study, in: Proceedings of the 27th IEEE International Conference on Software Maintenance (ICSM'11), IEEE, Williamsburg, VI, USA, 2011, pp. 528-531. [S36] Y. Guo, C. Seaman, N. Zazworka, F. Shull, Domain-specific tailoring of code smells: an empirical study, in: Proceedings of the 32nd International Conference on Software Engineering (ICSE'10), ACM, Cape Town, South Africa, 2010, pp. 167-170. [S37] J. Heidenberg, I. Porres, Metrics Functions for Kanban Guards, in: Proceedings of the 17th IEEE International Conference and Workshops on Engineering of Computer Based Systems (ECBS'10),, IEEE, Oxford, England, UK, 2010, pp. 306-310. [S38] J. Heintz, Modernizing the delorean system: Comparing actual and predicted results of a technical debt reduction project, Cutter IT Journal, 23 (10) (2010) 7-10. [S39] J. Holvitie, V. Leppanen, DebtFlag: Technical debt management with a development environment integrated tool, in: Proceedings of the 4th International Workshop on Managing Technical Debt (MTD'13), IEEE, San Francisco, CA, USA, 2013, pp. 20-27. [S40] C. Izurieta, I. Griffith, D. Reimanis, R. Luhr, On the Uncertainty of Technical Debt Measurements, in: Proceedings of the 4th International Conference on Information Science and Applications (ICISA'13), IEEE, Suwon, South Korea, 2013, pp. 1-4. [S41] C. Izurieta, A. Vetrò, N. Zazworka, Y. Cai, C. Seaman, F. Shull, Organizing the technical debt landscape, in: Proceedings of the 3rd International Workshop on Managing Technical Debt (MTD'12), IEEE, Zurich, Switzerland, 2012, pp. 23-26. [S42] M. Kaiser, G. Royse, Selling the Investment to Pay Down Technical Debt: The Code Christmas Tree, in: Proceedings of the 14th AGILE Conference (AGILE'11), IEEE, Salt Lake City, UT, USA, 2011, pp. 175-180. [S43] M. Karlesky, W. Bereza, G. Williams, M. Fletcher, Mocking the Embedded World: Test-Driven Development, Continuous Integration, and Design Patterns, in: Proceedings of Embedded Systems Conference Silicon Valley, San Jose, CA, USA, 2007.

Page 5: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix A

204

[S44] T. Klinger, P. Tarr, P. Wagstrom, C. Williams, An enterprise perspective on technical debt, in: Proceedings of the 2nd International Workshop on Managing Technical Debt (MTD'11), ACM, Waikiki, Honolulu, HI, USA, 2011, pp. 35-38. [S45] S. Koolmanojwong, J.A. Lane, Enablers and Inhibitors of Expediting Systems Engineering, Procedia Computer Science, 16 (2013) 483-491. [S46] V. Krishna, A. Basu, Minimizing Technical Debt: Developer's viewpoint, in: Proceedings of the International Conference on Software Engineering and Mobile Application Modelling and Development (ICSEMA'12), IET, Chennai, India, 2012, pp. 1-5. [S47] P. Kruchten, R.L. Nord, I. Ozkaya, Technical Debt: From Metaphor to Theory and Practice, IEEE Software, 29 (6) (2012) 18-21. [S48] P. Kruchten, R.L. Nord, I. Ozkaya, D. Falessi, Technical debt: towards a crisper definition report on the 4th international workshop on managing technical debt, SIGSOFT Software Engineering Notes, 38 (5) (2013) 51-54. [S49] O. Ktata, G. Lévesque, Designing and implementing a measurement program for Scrum teams: what do agile developers really need and want?, in: Proceedings of the 3rd C* Conference on Computer Science and Software Engineering (C3S2E'10), ACM, Montreal, Quebec, Canada, 2010, pp. 101-107. [S50] J.-L. Letouzey, The SQALE method for evaluating Technical Debt, in: Proceedings of the 3rd International Workshop on Managing Technical Debt (MTD'12), IEEE, Zurich, Switzerland, 2012, pp. 31-36. [S51] J.-L. Letouzey, M. Ilkiewicz, Managing Technical Debt with the SQALE Method, IEEE Software, 29 (6) (2012) 44-51. [S52] E. Lim, N. Taksande, C. Seaman, A Balancing Act: What Software Practitioners Have to Say about Technical Debt, IEEE Software, 29 (6) (2012) 22-27. [S53] M. Lindgren, R. Land, C. Norstrom, A. Wall, Key Aspects of Software Release Planning in Industry, in: Proceedings of the 19th Australian Conference on Software Engineering (ASWEC'08), IEEE, Perth, Australia, 2008, pp. 320-329. [S54] M. Lindgren, A. Wall, R. Land, C. Norstrom, A Method for Balancing Short- and Long-Term Investments: Quality vs. Features, in: Proceedings of the 34th Euromicro Conference Software Engineering and Advanced Applications (SEAA'08), IEEE, Parma, Italy, 2008, pp. 175-182. [S55] R. Marinescu, Assessing technical debt by identifying design flaws in software systems, IBM Journal of Research and Development, 56 (5) (2012) 9:1-9:13. [S56] J.D. McGregor, J.Y. Monteith, Z. Jie, Technical debt aggregation in ecosystems, in: Proceedings of the 3rd International Workshop on Managing Technical Debt (MTD'12), IEEE, Zurich, Switzerland, 2012, pp. 27-30. [S57] R. Mo, J. Garcia, Y. Cai, N. Medvidovic, Mapping architectural decay instances to dependency models, in: Proceedings of the 4th International Workshop on Managing Technical Debt (MTD'13), IEEE, San Francisco, CA, USA, 2013, pp. 39-46. [S58] J.Y. Monteith, J.D. McGregor, Exploring software supply chains from a technical debt perspective, in: Proceedings of the 4th International Workshop on Managing Technical Debt (MTD'13), IEEE, San Francisco, CA, USA, 2013, pp. 32-38. [S59] J.D. Morgenthaler, M. Gridnev, R. Sauciuc, S. Bhansali, Searching for build debt: Experiences managing technical debt at Google, in: Proceedings of the 3rd

Page 6: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix to Chapter 2

205

International Workshop on Managing Technical Debt (MTD'12), IEEE, Zurich, Switzerland, 2012, pp. 1-6. [S60] C.J. Neill, P.A. Laplante, Paying Down Design Debt with Strategic Refactoring, Computer, 39 (12) (2006) 131-134. [S61] R.L. Nord, I. Ozkaya, P. Kruchten, M. Gonzalez-Rojas, In search of a metric for managing architectural technical debt, in: Proceedings of the 10th Working IEEE/IFIP Conference on Software Architecture (WICSA'12), IEEE, Helsinki, Finland, 2012. [S62] A. Nugroho, J. Visser, T. Kuipers, An empirical model of technical debt and interest, in: Proceedings of the 2nd International Workshop on Managing Technical Debt (MTD'11), ACM, Waikiki, Honolulu, HI, USA, 2011, pp. 1-8. [S63] D. O'Connor, Technical debt in semiconductor equipment: it's time to pay it down, Solid State Technology, 53 (7) (2010) 34-35. [S64] K. Power, Understanding the impact of technical debt on the capacity and velocity of teams and organizations: Viewing team and organization capacity as a portfolio of real options, in: Proceedings of the 4th International Workshop on Managing Technical Debt (MTD'13), IEEE, San Francisco, CA, USA, 2013, pp. 28-31. [S65] K. Pugh, The risks of acceptance test debt, Cutter IT Journal, 23 (10) (2010) 25-29. [S66] N. Ramasubbu, C.F. Kemerer, Towards a model for optimizing technical debt in software products, in: Proceedings of the 4th International Workshop on Managing Technical Debt (MTD'13), IEEE, San Francisco, CA, USA, 2013, pp. 51-54. [S67] D. Rooney, Technical debt: Challenging the metaphor, Cutter IT Journal, 23 (10) (2010) 16-18. [S68] Y. Rubin, S. Kallner, N. Guy, G. Shachor, Restraining Technical Debt when Developing Large-Scale Ajax Applications, in: The First International Conference on Building and Exploring Web Based Environments (WEB'13) 2013, pp. 13-18. [S69] P. Santos, A. Varella, C. Dantas, D. Borges, Visualizing and Managing Technical Debt in Agile Development: An Experience Report, in: H. Baumeister, B. Weber (Eds.) Proceedings of the 14th International Conference on Agile Software Development (XP'13), Springer Berlin Heidelberg, Vienna, Austra, 2013, pp. 121-134. [S70] K. Schmid, A formal approach to technical debt decision making, in: Proceedings of the 9th international ACM Sigsoft conference on Quality of Software Architectures (QoSA'13), ACM, Vancouver, British Columbia, Canada, 2013, pp. 153-162. [S71] K. Schmid, On the limits of the technical debt metaphor some guidance on going beyond, in: Proceedings of the 4th International Workshop on Managing Technical Debt (MTD'13), IEEE, San Francisco, CA, USA, 2013, pp. 63-66. [S72] C. Seaman, Y. Guo, Measuring and Monitoring Technical Debt, in: M. Zelkowitz (Ed.) Advances in Computers, Elsevier, 2011, pp. 25-45. [S73] C. Seaman, Y. Guo, C. Izurieta, Y. Cai, N. Zazworka, F. Shull, A. Vetrò, Using technical debt data in decision making: Potential decision approaches, in: Proceedings of the 3rd International Workshop on Managing Technical Debt (MTD'12), IEEE, Zurich, Switzerland, 2012, pp. 45-48. [S74] A.C. Shafer, Infrastructure debt: Revisiting the foundation, Cutter IT Journal, 23 (10) (2010) 36-41.

Page 7: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix A

206

[S75] S. Shah, M. Torchiano, A. Vetro, M. Morisio, Exploratory testing as a source of testing technical debt, IT Professional, PP (99) (2013) 1-1. [S76] F. Shull, Perfectionists in a World of Finite Resources, IEEE Software, 28 (2) (2011) 4-6. [S77] F. Shull, D. Falessi, C. Seaman, M. Diep, L. Layman, Technical Debt: Showing the Way for Better Transfer of Empirical Results, in: J. Münch, K. Schmid (Eds.) Perspectives on the Future of Software Engineering, Springer Berlin Heidelberg, Beilin, Germany, 2013, pp. 179-190. [S78] C.A. Siebra, G.S. Tonin, F.Q.B. da Silva, R.G. Oliveira, L.C. Antonio, R.C.G. Miranda, A.L.M. Santos, Managing technical debt in practice: An industrial report, in: Proceedings of the 6th ACM-IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM'12), ACM, Lund, Scania, Sweden, 2012, pp. 247-250. [S79] R. Smith, Computer system design, Journal of GXP Compliance, 13 (2009) 44-48. [S80] W. Snipes, B. Robinson, Y. Guo, C. Seaman, Defining the decision factors for managing defects: A technical debt perspective, in: Proceedings of the 3rd International Workshop on Managing Technical Debt (MTD'12), IEEE, Zurich, Switzerland, 2012, pp. 54-60. [S81] R.O. Spinola, N. Zazworka, Vetro, x, A., C. Seaman, F. Shull, Investigating technical debt folklore: Shedding some light on technical debt opinion, in: Proceedings of the 4th International Workshop on Managing Technical Debt (MTD'13), IEEE, San Francisco, CA, USA, 2013, pp. 1-7. [S82] C. Sterling, Technical debt, in: Managing Software Debt - Building for Inevitable Change, Addison-Wesley Professional, Boston, USA, 2010, pp. 15-30. [S83] M.G. Stochel, M.R. Wawrowski, M. Rabiej, Value-Based Technical Debt Model and Its Application, in: Proceedings of the 7th International Conference on Software Engineering Advances (ICSEA'12), Xpert Publishing Services, Lisbon, Portugal, 2012, pp. 205-212. [S84] S. Stolberg, Enabling Agile Testing through Continuous Integration, in: Proceedingd of the 12th Agile Conference (AGILE'09), IEEE, Hannover, Germany, 2009, pp. 369-374. [S85] T. Theodoropoulos, M. Hofberg, D. Kern, Technical debt from the stakeholder perspective, in: Proceedings of the 2nd International Workshop on Managing Technical Debt (MTD'11), ACM, Waikiki, Honolulu, HI, USA, 2011, pp. 43-46. [S86] C. Verhoef, How to implement the future?, in: Proceedings of the 26th Euromicro Conference (EURMIC'00), IEEE, Maastricht, The Netherlands, 2000, pp. 32-47 vol.31. [S87] A. Vetro, Using automatic static analysis to identify technical debt, in: Proceedings of the 34th International Conference on Software Engineering (ICSE'12), IEEE, Zurich, Switzerland, 2012, pp. 1613-1615. [S88] P. Wang, J. Yang, L. Tan, R. Kroeger, J.D. Morgenthaler, Generating precise dependencies for large software, in: Proceedings of the 4th International Workshop on Managing Technical Debt (MTD'13), IEEE, San Francisco, CA, USA, 2013, pp. 47-50.

Page 8: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix to Chapter 2

207

[S89] K. Wiklund, S. Eldh, D. Sundmark, K. Lundqvist, Technical Debt in Test Automation, in: Proceedings of the 5th IEEE International Conference on Software Testing, Verification and Validation (ICST'12), IEEE, Montreal, QC, Canada, 2012, pp. 887-892. [S90] J. Xuan, Y. Hu, H. Jiang, Debt-prone bugs: technical debt in software maintenance, International Journal of Advancements in Computing Technology 2012a, 4 (19) (2012) 453-461. [S91] N. Zazworka, C. Seaman, F. Shull, Prioritizing design debt investment opportunities, in: Proceedings of the 2nd International Workshop on Managing Technical Debt (MTD'11), ACM, Waikiki, Honolulu, HI, USA, 2011, pp. 39-42. [S92] N. Zazworka, M.A. Shaw, F. Shull, C. Seaman, Investigating the impact of design debt on software quality, in: Proceedings of the 2nd International Workshop on Managing Technical Debt (MTD'11), ACM, Waikiki, Honolulu, HI, USA, 2011, pp. 17-23. [S93] N. Zazworka, R.O. Spinola, A. Vetro', F. Shull, C. Seaman, A case study on effectively identifying technical debt, in: Proceedings of the 17th International Conference on Evaluation and Assessment in Software Engineering (EASE'13), ACM, Porto de Galinhas, Brazil, 2013, pp. 42-47. [S94] N. Zazworka, A. Vetro’, C. Izurieta, S. Wong, Y. Cai, C. Seaman, F. Shull, Comparing four approaches for technical debt identification, Software Quality Journal, (2013) 1-24.

Page 9: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix A

208

A.2. Distribution of selected studies over publication sources

# Publication source Type No. %

1 Managing Technical Debt Workshop Workshop 31 33

2 IEEE Software Journal 10 11

3 Cutter IT Journal Journal 7 7

4 Agile Conference Conference 4 4

5 International Conference on Software Engineering Conference 3 3

6 Computer Journal 2 2

7 SIGSOFT Software Engineering Notes Journal 2 2

8 Agile Product & Project Management Journal 2 2

9 International Symposium on Empirical Software Engineering and Measurement Conference 1 1

10 Ada-Europe Conference 1 1

11 Advances in Computers Book chapter 1 1

12 Australian Software Engineering Conference Conference 1 1

13 C* Conference on Computer Science & Software Engineering Conference 1 1

14 Communications of the ACM Journal 1 1

15 Embedded Systems Conference Silicon Valley Conference 1 1

16 Euromicro Conference Conference 1 1

17 Euromicro Conference on Software Engineering and Advanced Applications Conference 1 1

18 FSE/SDP workshop on Future of Software Engineering Research Workshop 1 1

19 Hawaii International Conference on System Sciences Conference 1 1

20 IBM Journal of Research and Development Journal 1 1

21 IEEE International Conference and Workshops on Engineering of Computer Based Systems

Conference 1 1

22 International Conference on Software Maintenance Conference 1 1

23 International Conference on Software Testing, Verification and Validation Conference 1 1

24 International ACM Sigsoft Conference on the Quality of Software Architectures Conference 1 1

25 Agile Processes in Software Engineering and Extreme Programming Conference 1 1

26 International Conference on Building and Exploring Web Based Environments Conference 1 1

27 International Conference on Evaluation and Assessment in Software Engineering Conference 1 1

28 International Conference on Information Science and Applications Conference 1 1

29 International Conference on Software Engineering Advances Conference 1 1

30 International Conference on Software Engineering and Mobile Application Modelling and Development

Conference 1 1

31 International Doctoral Symposium on Empirical Software Engineering Conference 1 1

32 International Journal of Advancements in Computing Technology Journal 1 1

33 IT Professional Journal 1 1

34 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture

Conference 1 1

35 Journal of GXP Compliance Journal 1 1

36 Managing Software Debt - Building for Inevitable Change Book chapter 1 1

37 Object oriented programming systems, languages, and applications Conference 1 1

38 Perspectives on the Future of Software Engineering Book chapter 1 1

39 Procedia Computer Science Journal 1 1

40 Software Quality Journal Journal 1 1

41 Solid State Technology Journal 1 1

Total 94 100

Page 10: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix to Chapter 2

209

A.3. Quality assessment results of the selected primary studies

Study Q1 Q2 Q3 Q4 Q5 Sum Study Q1 Q2 Q3 Q4 Q5 Sum

S1 0.00 1.00 1.00 1.00 0.00 3.00 S48 0.40 1.00 1.00 1.00 0.00 3.40

S2 0.20 1.00 1.00 1.00 0.00 3.20 S49 0.00 1.00 1.00 1.00 0.00 3.00

S3 0.00 1.00 1.00 1.00 0.00 3.00 S50 0.00 1.00 1.00 1.00 0.50 3.50

S4 0.40 1.00 0.00 1.00 0.00 2.40 S51 0.20 1.00 1.00 1.00 0.00 3.20

S5 0.80 1.00 1.00 0.50 0.00 3.30 S52 0.80 1.00 1.00 0.00 1.00 3.80

S6 0.40 1.00 0.00 0.00 0.00 1.40 S53 0.80 1.00 1.00 0.00 0.00 2.80

S7 0.80 1.00 0.00 1.00 0.00 2.80 S54 0.80 1.00 0.00 0.00 0.00 1.80

S8 0.60 1.00 1.00 1.00 0.00 3.60 S55 0.80 1.00 1.00 1.00 1.00 4.80

S9 0.40 1.00 1.00 1.00 0.00 3.40 S56 0.00 1.00 1.00 1.00 0.00 3.00

S10 0.00 1.00 1.00 0.00 0.00 2.00 S57 0.20 1.00 1.00 1.00 0.00 3.20

S11 0.00 1.00 1.00 0.00 0.00 2.00 S58 0.60 1.00 0.50 1.00 0.00 3.10

S12 0.80 1.00 1.00 1.00 1.00 4.80 S59 1.00 1.00 1.00 1.00 0.00 4.00

S13 0.00 1.00 0.00 0.00 0.00 1.00 S60 0.60 1.00 1.00 1.00 0.00 3.60

S14 0.20 1.00 0.00 1.00 0.00 2.20 S61 0.20 1.00 1.00 1.00 1.00 4.20

S15 1.00 1.00 1.00 1.00 0.00 4.00 S62 0.80 1.00 1.00 1.00 1.00 4.80

S16 0.80 1.00 1.00 1.00 0.00 3.80 S63 0.00 1.00 0.00 1.00 0.00 2.00

S17 0.80 1.00 1.00 1.00 0.00 3.80 S64 0.20 1.00 0.50 0.00 0.00 1.70

S18 1.00 1.00 0.00 0.50 0.00 2.50 S65 0.00 1.00 1.00 1.00 0.00 3.00

S19 1.00 1.00 0.50 1.00 0.50 4.00 S66 0.00 1.00 1.00 0.50 0.00 2.50

S20 0.80 1.00 1.00 0.00 1.00 3.80 S67 0.00 1.00 1.00 1.00 0.00 3.00

S21 0.00 1.00 1.00 0.00 0.00 2.00 S68 0.60 1.00 1.00 1.00 0.00 3.60

S22 0.20 1.00 1.00 1.00 0.50 3.70 S69 0.80 1.00 1.00 1.00 0.00 3.80

S23 0.00 1.00 1.00 1.00 1.00 4.00 S70 0.20 1.00 0.50 1.00 0.00 2.70

S24 0.40 1.00 1.00 1.00 0.00 3.40 S71 0.00 1.00 0.50 0.50 0.00 2.00

S25 0.60 1.00 0.00 1.00 0.00 2.60 S72 0.20 1.00 1.00 1.00 0.00 3.20

S26 0.20 1.00 0.50 1.00 0.00 2.70 S73 0.00 1.00 1.00 0.00 0.00 2.00

S27 0.80 1.00 0.50 1.00 0.00 3.30 S74 0.00 1.00 1.00 1.00 0.00 3.00

S28 0.00 1.00 0.00 0.00 0.00 1.00 S75 0.00 1.00 1.00 1.00 0.00 3.00

S29 0.80 1.00 0.00 1.00 0.00 2.80 S76 0.00 1.00 1.00 1.00 0.00 3.00

S30 1.00 1.00 0.00 0.00 0.00 2.00 S77 0.00 1.00 1.00 1.00 0.00 3.00

S31 0.80 1.00 0.50 1.00 0.00 3.30 S78 1.00 1.00 1.00 1.00 0.00 4.00

S32 0.00 1.00 1.00 1.00 0.00 3.00 S79 0.20 1.00 0.00 0.00 0.00 1.20

S33 0.00 1.00 1.00 1.00 1.00 4.00 S80 0.80 1.00 0.00 1.00 1.00 3.80

S34 0.00 1.00 1.00 1.00 0.50 3.50 S81 0.60 1.00 1.00 0.00 1.00 3.60

S35 0.80 1.00 1.00 1.00 1.00 4.80 S82 0.00 1.00 1.00 1.00 0.00 3.00

S36 0.80 1.00 1.00 1.00 1.00 4.80 S83 0.20 1.00 1.00 1.00 0.00 3.20

S37 0.00 1.00 1.00 1.00 0.00 3.00 S84 1.00 1.00 1.00 1.00 0.00 4.00

S38 0.80 1.00 0.50 1.00 0.00 3.30 S85 0.00 1.00 1.00 1.00 0.00 3.00

S39 0.00 1.00 0.50 1.00 1.00 3.50 S86 0.00 1.00 0.00 1.00 0.00 2.00

S40 0.00 1.00 1.00 0.00 0.00 2.00 S87 0.60 1.00 1.00 1.00 0.00 3.60

S41 0.00 1.00 0.00 1.00 0.00 2.00 S88 0.60 1.00 0.00 1.00 0.00 2.60

S42 0.80 1.00 1.00 1.00 0.50 4.30 S89 0.80 1.00 1.00 1.00 0.00 3.80

S43 0.20 1.00 1.00 1.00 0.00 3.20 S90 0.60 1.00 1.00 1.00 1.00 4.60

S44 0.40 1.00 1.00 1.00 0.00 3.40 S91 0.20 1.00 1.00 1.00 0.00 3.20

S45 0.00 1.00 1.00 0.00 0.00 2.00 S92 0.80 1.00 1.00 1.00 1.00 4.80

S46 1.00 1.00 1.00 1.00 0.00 4.00 S93 0.80 1.00 1.00 1.00 1.00 4.80

S47 0.40 1.00 1.00 0.00 0.00 2.40 S94 0.60 1.00 1.00 1.00 1.00 4.60

Q1 Q2 Q3 Q4 Q5 Sum

Mean score 0.40 1.00 0.77 0.79 0.21 3.17

The study quality assessment questions are as follows:

Q1: How much evidence supports the claims related to TD in the study?

Q2: Is there a clear statement of the aims of the research?

Q3: Is there a clear statement of the definition of TD?

Q4: Is there a clear statement of which types of TD the paper focuses on?

Q5: Are the limitations of the study discussed explicitly?

Page 11: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,
Page 12: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix B Appendix to Chapter 6

B.1. ATD concerns We came up with the concerns on ATD according to two sources: (1) concerns

adapted or derived from the concerns on TD in general (TD concerns) collected during our mapping study on TD, i.e., the work reported in Chapter 2; (2) concerns derived from the five main ATD management (ATDM) activities in the ATDM process proposed in Chapter 4 (ATDM activities). From the first source (mapping study), we extracted TD concerns from the primary studies through: (1) the problems addressed by the primary studies; and (2) the problems expected to be solved in future work of the primary studies. We subsequently derived ATD concerns from the identified TD concerns, based on the following criteria: (1) if a TD concern is directly related to the architecture (i.e., not the system details), then the concern is considered as an ATD concern; OR (2) if a TD concern is not about architecture but makes sense to ATD stakeholders, then this concern is regarded as an ATD concern.

Table B.1. ATD Concerns and their sources

Description of source Derived concerns

Concern source

How can I efficiently measure how much debt I already have? (Eisenberg, 2012) How large is my technical debt? (Nugroho, Visser, and Kuipers, 2011)

C2 TD concern

How much interest am I paying on the debt? (Nugroho, Visser, and Kuipers, 2011)

C5 TD concern

What is the consequence of holding onto a debt for future maintenance? (Nugroho, Visser, and Kuipers, 2011)

C19, C20 TD concern

Is the debt growing, and how fast? (Nugroho, Visser, and Kuipers, 2011)

C16, C17 TD concern

Technical debt can be considered as a particular type of risk in software maintenance and the problem of managing technical debt boils down to managing risk and making informed decisions on what tasks can be delayed and when they need to be paid back. (Guo and Seaman, 2011)

C6, C15

TD concern

The analysis and measurement of TD-Principal can guide critical management decisions about how to allocate resources for reducing business risk and IT cost. (Curtis, Sappidi, and Szynkarski, 2012b)

C4, C6 TD concern

A technical debt “SWAT” team, led by one of the company’s most senior architects, tasked with learning how to reduce the technical debt and then rolling that knowledge out to the rest of the development staff, should be established. (Gat and Heintz, 2011)

C13 TD concern

Which delayed (maintenance) tasks [a type of TD] need to be accomplished, and when. (Seaman and Guo, 2011)

C6, C15 TD concern

The proposed approach to technical debt management centers around a “technical debt list.” The list contains technical debt “items,” each of which represents a task that was left undone, but

C1 TD concern

Page 13: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix B

212

that runs a risk of causing future problems if not completed. (Seaman and Guo, 2011)

Overall, it is important for a project team to understand (1) where TD exists in a system so that it can be tagged for eventual removal, (2) the cost of removing TD (i.e., Principal) and (3) the consequences of not removing TD (i.e., Interest). (Falessi et al., 2013)

C4, C5, C10

TD concern

The person who takes on technical debt is not necessarily the one who has to pay it off. (Allman, 2012)

C8

Is technical debt increasing or decreasing for a system or for a component? (Seaman and Guo, 2011)

C18 TD concern

How much debt is “too much” (i.e. high interest) versus manageable (i.e., low interest)? (Eisenberg, 2012)

C21 TD concern

Developers tend to vote for investments into internal quality but managers often tend to question these investments’ values and, therefore, tend to decline to approve them. (Bohnet and Döllner, 2011)

C7 TD concern

Our questions focus on how technical debt is propagated along those dependencies and how technical debt accumulates at various points in the chain. (McGregor, Monteith, and Jie, 2012)

C20 TD concern

It enables taking into account not only the sunk cost of development but also the cost yet to be paid to reduce the amount of technical debt. (Gat, 2012)

C4 TD concern

Practices related to identification provide the developer ways to identify Technical Debt in the code whereas classification helps to categorize them in order to understand the reason. (Krishna and Basu, 2012)

C11 TD concern

After acquiring the source implementation components for technical debt, the DebtFlag mechanism completes the projection by propagating technical debt through dependencies while following a possible rule set. (Holvitie and Leppӓnen, 2013)

C10, C20 TD concern

ATD identification detects ATD items during or after the architecting process. An ATD item is incurred by an architecture decision; thus, one can investigate an architecture decision and its rationale to identify an ATD item by considering whether the maintainability or evolvability of the software architecture is compromised. (See Section 3.4.1)

C1, C7, C11, C12

ATDM activity

ATD measurement analyzes the cost and benefit associated with an ATD item and estimates them, including the prediction of change scenarios influencing this ATD item for interest measurement. (See Section 3.4.1)

C2, C3, C4, C5

ATDM activity

ATD prioritization sorts all the identified ATD items in a software system using a number of criteria. The aim of this activity is to identify which ATD items should be resolved first and which can be resolved later depending on the system’s business goals and preferences. (See Section 3.4.1)

C6 ATDM activity

ATD monitoring watches the changes of the costs and benefits of unresolved ATD items over time. (See Section 3.4.1)

C9, C14, C16, C17, C18, C19, C21

ATDM activity

ATD repayment concerns making new or changing existing architecture decisions in order to eliminate or mitigate the negative influences of an ATD item. (See Section 3.4.1)

C13, C15, ATDM activity

Page 14: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix to Chapter 6

213

From the second source (ATDM activities presented in Section 3.4.1), we derived ATD concerns based on the concrete tasks performed in each ATDM activity and the intents of the tasks. For instance, in the ATDM activity ATD measurement, the involved tasks are to estimate the benefit, interest, and cost of each ATD item, thus, we got the ATD concerns on the quantities of these properties of ATD items. As a result, we derived the ATD concerns C2, C3, C4, and C5. All the resulting ATD concerns and their detailed sources are shown in Table B.1.

B.2. Viewpoint definitions and correspondence rules In this section, we first propose a shared metamodel of the six ATD viewpoints,

then give each ATD viewpoint a detailed definition that can act as guidelines to generate ATD views governed by the ATD viewpoint, and finally define the correspondence rules for the ATD viewpoints.

Architecture

decision0..* pertains to

1

ATD item

0..*

Benefit

1

1

repa

ys

justifies

raises

0..*

0..*

Cost1

1

has

ATD rationale

1..*

1has

Compromised

quality attribute

1..*

System concern

consid

ers

consid

ers

ha

s

0..*

1

1..*

1..*

1 1

Stakeholder

1..*

1..*

pe

rform

s

Status

0..*has

Action

0..*

1..*

concerns

1..*

0..*

Iteration

endpoint

Iteration

has

has

1

1

0..*

is changed in

Component

influences

1..*

1..*

1..*

relates to

0..*

1..*

1

1

decides

Intentionality

1

has

0..*

previous version

incurs

0..*

1..*

Principal InterestScenario

interest

1

1

1

1

has hasChange

scenario

1..*

1

impacts

1

Probability

1 1..*

1

1

1

1has

has

comprises

Figure B.1. Metamodel of the ATD viewpoints

B.2.1 Metamodel of ATD viewpoints To facilitate the generation of ATD views that are governed by the proposed ATD

viewpoints, we constructed a common metamodel that integrates all the elements of the ATD viewpoints. The metamodel also serves to maintain traceability and consistency between different ATD views. Figure B.1 shows the metamodel of the

Page 15: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix B

214

ATD viewpoints. The elements in the dark part of Figure B.1 are concepts adopted from ISO/IEC/IEEE 42010 (ISO/IEC/IEEE, 2011). An architecture decision can incur ATD item(s), which is adopted from Table 3.1 and shown in detail in Table 6.4. An ATD item relates to one or more components, which are influenced by one or more architecture decisions. One or more architecture decisions can be made to repay ATD item(s). An ATD item has a specific status. An ATD item has some cost to the future maintenance and evolution of a software system, which is the reason why the ATD item should be managed. The cost of an ATD item has a principal and interest. The interest of an ATD item is comprised of one or more scenario interests, each corresponding to a change scenario impacted by the ATD item. A change scenario has an associated probability, indicating the possibility that the change scenario will happen. An ATD item has some benefit(s) which is the reason why the ATD item is incurred. An ATD item has a compromised quality attribute, i.e., one of the six QAs mentioned in Table 6.4. An ATD item can raise new system concern(s) when the ATD item has significant impact on the system under consideration. For instance, if the ATD item is possible to negatively influence over certain functionality of the system, a new system concern is raised to eliminate or mitigate the negative influence. An ATD rationale, which considers the benefit and cost of the corresponding ATD item, tells why the ATD item is incurred. A stakeholder performs an action on an ATD item, for which the status of the ATD item is changed. An ATD item corresponds to an intentionality, indicating that it was incurred intentionally or unintentionally. An ATD item may be changed in an iteration that has one iteration endpoint.

B.2.2 ATD Decision viewpoint The ATD Decision viewpoint shows the relationships between ATD items and

architecture decisions of a software system. A view conforming to the ATD Decision viewpoint shows all ATD items, which were incurred from the beginning of the ATDM process till the current iteration in a software system, and their relationships with related architecture decisions.

B.2.2.1 Model kind

The metamodel of the ATD Decision viewpoint is shown in Figure B.2. This metamodel documents the model kind, which describes the conceptual elements for architectural models that conform to the ATD Decision viewpoint. The notation of UML class diagrams is used to describe this metamodel.

Architecture

decisionATD item

0..*

repays

1incurs

0..* 1..*

Figure B.2. Metamodel of ATD Decision viewpoint

Page 16: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix to Chapter 6

215

The constraints listed below apply to the elements within this model kind:

Every ATD item has a unique ID and name.

Every architecture decision has a unique ID and name.

An ATD item is incurred by one architecture decision.

An ATD item is repaid by one or more architecture decisions.

An architecture decision can incur or repay zero or more ATD items.

B.2.3 ATD-related Component viewpoint The ATD-related Component viewpoint shows the components that are related to

ATD items. The number of the related components to a specific ATD item may vary in different versions over time, but, in a view conforming to the ATD-related Component viewpoint, it only shows the ATD items and their related components in the latest versions.

B.2.3.1 Model kind

The metamodel of the ATD-related Component viewpoint is shown in Figure B.3. This metamodel documents the model kind, which describes the conceptual elements for architectural models that conform to the ATD-related Component viewpoint. The notation of UML class diagrams is used to describe this metamodel.

The constraints listed below apply to the elements within this model kind:

Every ATD item has a unique ID and name.

Every component has a unique ID and name.

An ATD item relates to one or more components.

A component is related to zero or more ATD items.

Architecture

decision

ATD item

0..*

repa

ys

Component

influences

1..*

1..*

0..* 1..*

relates to

incurs

0..*

1..*1

Figure B.3. Metamodel of ATD-related Component viewpoint

B.2.4 ATD Distribution viewpoint The ATD Distribution viewpoint shows the costs and benefits of all ATD items in

two neighboring iterations.

Page 17: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix B

216

B.2.4.1 Model kind

The metamodel of the ATD Distribution viewpoint is shown in Figure B.4. This metamodel documents the model kind, which presents the conceptual elements for architectural models that conform to the ATD Distribution viewpoint. The notation of UML class diagrams is used to describe this metamodel. An iteration endpoint has a date and a type that can be chosen from the following:

Milestone: “A version of the architecture that has reached a stable state (or an intermediate stable state) (van Heesch, Avgeriou, and Hilliard, 2012a).”

Release: “A version of the architecture that is delivered to a customer of made available to the public for use (van Heesch, Avgeriou, and Hilliard, 2012a).”

The constraints listed below apply to the elements within this model kind:

Every ATD item has a unique ID and name.

Every iteration has exactly one endpoint with a unique name.

An ATD item has one or more benefits. A benefit can be technical benefit (e.g., quality attribute benefit) or non-technical benefit (e.g., business benefit). Only the measurable benefit is shown in the ATD Distribution viewpoint.

An ATD item has one cost. The cost is the sum of principal and interest of the ATD item.

An ATD item (its benefit and cost) can change in one or more iterations.

In each iteration, zero or more ATD items (their costs and benefits) change.

Cost1 1

hasBenefit

1..*1

Iteration

endpointIteration

has 11

0..*

is changed in

1..*

hasATD item

Figure B.4. Metamodel of ATD Distribution viewpoint

B.2.5 ATD Stakeholder Involvement viewpoint The ATD Stakeholder Involvement viewpoint shows the responsibilities of

relevant stakeholders in the ATDM process. A view conforming to the ATD Stakeholder Involvement viewpoint presents the activities performed by the involved stakeholders on ATD items in the current iteration and their statuses.

B.2.5.1 Model kind

The metamodel of the ATD Stakeholder Involvement viewpoint is shown in Figure B.5. This metamodel documents the model kind, which describes the conceptual elements for architectural models that conform to the ATD Stakeholder

Page 18: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix to Chapter 6

217

Involvement viewpoint. The notation of UML class diagrams is used to describe this metamodel.

A Stakeholder conducts an Action on an ATD item in a specific development iteration, the Status of this ATD item changes accordingly. A stakeholder can be any of the defined stakeholders in Section 6.3.1. We defined the following types of actions in the ATDM process according to the main ATDM activities that are defined in Section 3.4.1:

Identify: stakeholders find out the location of the ATD item.

Measure: stakeholders estimate the benefit and cost of the ATD item.

Re-measure: stakeholders estimate the benefit and cost of an ATD item that was measured in previous iterations.

Prioritize: stakeholders assign a priority to be resolved to the ATD item based on available information related to this ATD item, such as interest.

Repay: stakeholders resolve the ATD item by making new or modifying existing architecture decisions.

Accordingly, the status of an ATD item can be Identified, Measured, Re-measured, Prioritized, and Resolved.

pe

rform

s

0..* 1

has

Action

0..*

1..*concerns

1..*

0..*Iteration

endpoint

Iteration

has

1

1

0..*

is changed in

1..*

1

1

decides

StakeholderStatusATD item

Figure B.5. Metamodel of ATD Stakeholder Involvement viewpoint

The constraints listed below apply to the elements within this model kind:

Every ATD item has a unique ID and name.

Every iteration has an iteration endpoint with a unique name.

All ATD items that changed in one iteration are shown.

Every stakeholder shown performed at least one action.

Every stakeholder has a unique name and at least one role.

Every action points to an ATD item or an iteration endpoint. If the target is an iteration endpoint, the corresponding action is performed for all ATD items changed in that iteration.

B.2.6 ATD Chronological viewpoint The ATD Chronological viewpoint shows how the ATD items in a software system

evolved over time and how they were managed in the ATDM process.

Page 19: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix B

218

B.2.6.1 Model kind

The metamodel of the ATD Chronological viewpoint is shown in Figure B.6. This metamodel documents the model kind, which describes the conceptual elements for architectural models that conform to the ATD Chronological viewpoint. Again, the notation of UML class diagrams is used to describe this metamodel.

ATD item

Stakeholder

performs

Status

0..*

1

has

Action

0..*

1..*

concerns

1..*

0..*

Iteration

endpoint

Iteration

has

1

1

0..*

is changed in

1..*

Cost Benefit

1

1 1

1..*

has has

Figure B.6. Metamodel of ATD Chronological viewpoint

The constraints listed below apply to the elements within this mode kind:

Every ATD item has a unique ID and name.

Every ATD item has exactly one status at a time.

Every iteration has exactly one endpoint with a unique name.

Every ATD item shown is changed in one or more iterations.

Only an ATD item with the status ‘measured’ shows its benefit and cost.

Only an ATD item with the status ‘re-measured’ shows its benefit delta and cost delta compared with the previously measured benefit and cost, respectively.

B.2.7 ATD Detail viewpoint The ATD Detail viewpoint provides a comprehensive textual description of each

ATD item documented in a software project. A view conforming to the ATD Detail viewpoint is comprised of multiple models, each used to describe a single ATD item.

B.2.7.1 Model kind

The metamodel for the ATD Detail viewpoint is identical to the common metamodel for all the ATD viewpoint as shown in Figure B.1.

Page 20: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix to Chapter 6

219

B.2.8 Correspondences between viewpoints We have proposed six ATD viewpoints to document ATD. We use multiple views

governed by these ATD viewpoints to document the ATD of a software system. Each ATD view is comprised of one or more models. Because the same subject is represented in multiple models, there is a risk of inconsistency between different models. Therefore, there is a need to establish rules to express and maintain the consistency of cross-model relationships between ATD description elements. Cross-model relations can be expressed by correspondences, which are introduced in ISO/IEC/IEEE 42010 (ISO/IEC/IEEE, 2011) to express relations between architecture description elements. This international standard further introduces correspondence rules to govern correspondences.

We define a set of correspondence rules in the following to keep the consistency between ATD views:

An ATD Decision model must contain all ATD items that have ever appeared in the ATD Detail views.

An ATD-related Component model must exist for every iteration shown in the ATD Chronological model. Every ATD-related Component model contain the ATD items which latest versions are in the status of ‘identified’, ‘measured’, ‘re-measured’, and ‘prioritized’.

An ATD Distribution model must exist for every iteration shown in the ATD Chronological model. Every ATD Distribution model must contain the existing ATD items that are not in the status of ‘resolved’ in the earlier iteration, and the newly identified ATD items in the later iteration.

An ATD Stakeholder Involvement model must exist for every iteration shown in the ATD Chronological model. Every stakeholder involvement model must contain the involved stakeholders and their actions in the versions of ATD items belonging to the respective iteration.

An ATD Chronological model must contains all ATD items that have ever appeared in the ATD Detail views.

The status of an ATD item in the ATD Detail model must correspond to the status of the latest occurrence of the ATD item in the ATD Chronological model.

The history of an ATD item represented in the ATD Detail model must contain all actions that are performed by the related stakeholders on that ATD item shown in all ATD Stakeholder Involvement models.

Page 21: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,
Page 22: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix C Appendix to Chapter 7

C.1 Selected Studies [S1] I. Ivkovic, K. Kontogiannis, A framework for software architecture refactoring using model transformations and semantic annotations, in: Proceedings of the 10th European Conference on Software Maintenance and Reengineering (CSMR'06), Bari, Italy, 2006, pp. 135-144. [S2] M.C. Carignano, S. Gonnet, H. Leone, A model to represent architectural design rationale, in: Proceedings of the 8th Joint Working IEEE/IFIP Conference on Software Architecture and the 3rd European Conference on Software Architecture (WICSA/ECSA'09), Cambridge, UK, 2009, pp. 301-304. [S3] A. Tang, Y. Jin, J. Han, A rationale-based architecture model for design traceability and reasoning, Journal of Systems and Software, 80 (6) (2007) 918-934. [S4] Y. Choi, H. Choi, M. Oh, An architectural design decision-centric approach to architectural evolution, in: Proceedings of the 11th international conference on Advanced Communication Technology (ICACT'09), IEEE Press, Gangwon-Do, South Korea, 2009, pp. 417-422. [S5] A. Erfanian, F.S. Aliee, An ontology-driven software architecture evaluation method, in: Proceedings of the 3rd international workshop on Sharing and reusing architectural knowledge (SHARK'08), ACM, Leipzig, Germany, 2008, pp. 79-86. [S6] O. Zimmermann, Architectural Decisions as Reusable Design Assets, IEEE Software, 28 (1) (2011) 64-69. [S7] D. Dhungana, R. Rabiser, P. Grunbaclier, H. Prahofer, C. Federspiel, K. Lehner, Architectural Knowledge in Product Line Engineering: An Industrial Case Study, in: Proceedings of the 32nd EUROMICRO Conference on Software Engineering and Advanced Applications (SEAA'06), Cavtat/Dubrovnik, Croatia, 2006, pp. 186-197. [S8] C. Xiaofeng, S. Yanchun, X. Sai, M. Hong, Architecture Design for the Large-Scale Software-Intensive Systems: A Decision-Oriented Approach and the Experience, in: Proceedings of 14th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS'09), Potsdam, Germany, 2009, pp. 30-39. [S9] A. Tang, J. Han, Architecture Rationalization: A Methodology for Architecture Verifiability, Traceability and Completeness, in: Proceedings of the 12th IEEE International Conference and Workshops on Engineering of Computer-Based Systems (ECBS'05), IEEE Computer Society, Greenbelt, MD, USA, 2005, pp. 135-144. [S10] A. Vasconcelos, C. Werner, Architecture Recovery and Evaluation Aiming at Program Understanding and Reuse, in: S. Overhage, C. Szyperski, R. Reussner, J. Stafford (Eds.) Proceedings of the 3rd international conference on Quality of software architectures (QoSA'07), Springer Berlin / Heidelberg, Medford, MA, USA, 2007, pp. 72-89. [S11] M.A. Babar, R. Capilla, Capturing and Using Quality Attributes Knowledge in Software Architecture Evaluation Process, in: Proceedings of the 1st International

Page 23: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix C

222

Workshop on Managing Requirements Knowledge (MARK'08), IEEE Computer Society, Barcelona, Spain, 2008, pp. 53-62. [S12] P. Liang, A. Jansen, P. Avgeriou, Collaborative Software Architecting Through Knowledge Sharing, in: I. Mistrík, A. van der Hoek, J. Grundy, J. Whitehead (Eds.) Collaborative Software Engineering, Springer Berlin Heidelberg, 2010, pp. 343-367. [S13] D. Dhungana, R. Rabiser, P. Grunbacher, Decision-Oriented Modeling of Product Line Architectures, in: Proceedings of the 6th Working IEEE/IFIP Conference on Software Architecture (WICSA'07), Mumbai, Maharashtra, India, 2007, pp. 22-22. [S14] F. Bachmann, L. Bass, M. Klein, C. Shelton, Designing software architectures to achieve quality attribute requirements, IEE Proceedings - Software, 152 (4) (2005) 153-165. [S15] A. Jansen, J. Bosch, P. Avgeriou, Documenting after the fact: Recovering architectural design decisions, Journal of Systems and Software, 81 (4) (2008) 536-557. [S16] I. Ivkovic, M. Godfrey, Enhancing Domain-Specific Software Architecture Recovery, in: Proceedings of the 11th IEEE International Workshop on Program Comprehension (IWPC'03), IEEE Computer Society, Portland, Oregon, USA, 2003, pp. 266-273. [S17] A. Jansen, P. Avgeriou, J.S.v.d. Ven, Enriching software architecture documentation, Journal of System and Software, 82 (8) (2009) 1232-1248. [S18] J. Noppen, D. Tamzalit, ETAK: tailoring architectural evolution by (re-)using architectural knowledge, in: Proceedings of the 5th Workshop on Sharing and Reusing Architectural Knowledge (SHARK'10), ACM, Cape Town, South Africa, 2010, pp. 21-28. [S19] A. Jansen, J. Bosch, Evaluation of Tool Support for Architectural Evolution, in: Proceedings of the 19th IEEE international conference on Automated Software Engineering (ASE'04), IEEE Computer Society, Linz, Austria, 2004, pp. 375-378. [S20] O.L. Goaer, D. Tamzalit, M.C. Oussalah, A.-D. Seriai, Evolution styles to the rescue of architectural evolution knowledge, in: Proceedings of the 3rd international workshop on Sharing and reusing architectural Knowledge (SHARK'08), ACM, Leipzig, Germany, 2008, pp. 31-36. [S21] C.A. Mattmann, D. Woollard, N. Medvidovic, Exploiting connector knowledge to efficiently disseminate highly voluminous data sets, in: Proceedings of the 3rd international workshop on Sharing and reusing architectural Knowledge (SHARK'08), ACM, Leipzig, Germany, 2008, pp. 37-40. [S22] S. Trujillo, M. Azanza, O. Diaz, R. Capilla, Exploring Extensibility of Architectural Design Decisions, in: Proceedings of the 2nd Workshop on SHAring and Reusing architectural Knowledge (SHARK'07), IEEE Computer Society, Minneapolis, MN, USA, 2007, pp. 1-10. [S23] C. Sylvain, Extraction of Component-Based Architecture from Object-Oriented Systems, in: S. Abdelhak, O. Mourad, T. Dalila (Eds.) Proceedings of the 7th Working IEEE/IFIP Conference on Software Architecture (WICSA'08) Vancouver, BC, Canada, 2008, pp. 285-288. [S24] J. Garzás, M. Piattini, Improving Object-Oriented Micro Architectural Design Through Knowledge Systematization, in: J. Akoka, S. Liddle, I.-Y. Song, M. Bertolotto,

Page 24: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix to Chapter 7

223

I. Comyn-Wattiau, W.-J. van den Heuvel, M. Kolp, J. Trujillo, C. Kop, H. Mayr (Eds.) Perspectives in Conceptual Modeling, Springer Berlin / Heidelberg, 2005, pp. 444-453. [S25] M. Shahin, P. Liang, M.R. Khayyambashi, Improving understandability of architecture design through visualization of architectural design decision, in: Proceedings of the 5th Workshop on Sharing and Reusing Architectural Knowledge (SHARK'10), ACM, Cape Town, South Africa, 2010, pp. 88-95. [S26] R. Weinreich, G. Buchgeher, Integrating requirements and design decisions in architecture representation, in: Proceedings of the 4th European Conference on Software Architecture (ECSA'10), Springer-Verlag, Copenhagen, Denmark, 2010, pp. 86-101. [S27] E. Ovaska, A. Evesti, K. Henttonen, M. Palviainen, P. Aho, Knowledge based quality-driven architecture design and evaluation, Information and Software Technology, 52 (6) (2010) 577-601. [S28] M. Ramachandran, D. Mangano, Knowledge based reasoning for software architectural design strategies, SIGSOFT Software Engineering Notes, 29 (3) (2004) 1-4. [S29] S. Khajenoori, L. Prem, K. Stevens, B.S. Keng, N. Kameli, Knowledge centered assessment pattern: an effective tool for assessing safety concerns in software architecture, Journal of System and Software, 73 (2) (2004) 313-322. [S30] M. Kevin L., G. Hassan, Knowledge-based automation of a design method for concurrent systems, IEEE Transactions on Software Engineering, 28 (3) (2002) 228-255. [S31] W. Wu, T. Kelly, Managing Architectural Design Decisions for Safety-Critical Software Systems, in: C. Hofmeister, I. Crnkovic, R. Reussner (Eds.) Quality of Software Architectures, Springer Berlin / Heidelberg, 2006, pp. 59-77. [S32] A. Tang, H. van Vliet, Modeling constraints improves software architecture design reasoning, in: Proceedings of the 8th Joint Working IEEE/IFIP Conference on Software Architecture and the 3rd European Conference on Software Architecture (WICSA/ECSA'09), IEEE, Cambridge, UK, 2009, pp. 253-256. [S33] A. SMEDA, M. OUSSALAH, T. KHAMMACI, My Architecture: A Knowledge Representation Meta-model for Software Architecture, International Journal of Software Engineering and Knowledge Engineering, 18 (7) (2008) 877-894. [S34] A.W. Kiwelekar, R.K. Joshi, Ontological analysis for generating baseline architectural descriptions, in: Proceedings of the 4th European conference on Software architecture (ECSA'10), Springer-Verlag, Copenhagen, Denmark, 2010, pp. 417-424. [S35] C. Pahl, Ontology-Based Composition and Transformation for Model-Driven Service Architecture, in: A. Rensink, J. Warmer (Eds.) Model Driven Architecture – Foundations and Applications, Springer Berlin / Heidelberg, 2006, pp. 198-212. [S36] Z. Yonggang, R. Witte, J. Rilling, V. Haarslev, Ontology-based Program Comprehension Tool Supporting Website Architectural Evolution, in: Proceedings of the 8th IEEE International Symposium on Web Site Evolution (WSE'06), Philadelphia, Pennsylvania, USA, 2006, pp. 41-49. [S37] I. Lera, C. Juiz, R. Puigjaner, C. Kurz, G. Haring, J. Zottl, Performance assessment on ambient intelligent applications through ontologies, in: Proceedings

Page 25: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix C

224

of the 5th international workshop on Software and performance (WOSP'05), ACM, Palma, Illes Balears, Spain, 2005, pp. 205-216. [S38] J.W. Keung, T. Nguyen, Quantitative Analysis for Non-linear System Performance Data Using Case-Based Reasoning, in: Proceedings of the 17th Asia Pacific Software Engineering Conference (APSEC'10), IEEE Computer Society, Sydney, Australia, 2010, pp. 346-355. [S39] R. Roeller, P. Lago, H.v. Vliet, Recovering architectural assumptions, Journal of System and Software 79 (4) (2006) 552-573. [S40] P. Rossel, D. Perovich, M. Bastarrica, Reuse of Architectural Knowledge in SPL Development, in: S. Edwards, G. Kulczycki (Eds.) Formal Foundations of Reuse and Domain Engineering, Springer Berlin / Heidelberg, 2009, pp. 191-200. [S41] G. Vazquez, J. Andres Diaz Pace, M. Campo, Reusing design experiences to materialize software architectures into object-oriented designs, Information Sciences, (0) (2010). [S42] A. Jansen, T. Vries, P. Avgeriou, M. Veelen, Sharing the Architectural Knowledge of Quantitative Analysis, in: Proceedings of the 4th International Conference on Quality of Software Architectures (QoSA'08), Springer-Verlag, Karlsruhe, Germany, 2008, pp. 220-234. [S43] A. Jansen, J. Bosch, Software Architecture as a Set of Architectural Design Decisions, in: Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05), IEEE Computer Society, Pittsburgh, Pennsylvania, USA, 2005, pp. 109-120. [S44] A. Tang, J. Han, R. Vasa, Software Architecture Design Reasoning: A Case for Improved Methodology Support, IEEE Software, 26 (2) (2009) 43-49. [S45] C.D. Rosso, A. Maccari, Assessing the Architectonics of Large, Software-Intensive Systems Using a Knowledge-Based Approach, in: Proceedings of the 6th Working IEEE/IFIP Conference on Software Architecture (WICSA'07), IEEE Computer Society, Mumbai, Maharashtra, India, 2007, pp. 2. [S46] I. Pashov, M. Riebisch, I. Philippow, Supporting Architectural Restructuring by Analyzing Feature Models, in: Proceedings of the 18th Euromicro Working Conference on Software Maintenance and Reengineering (CSMR'04), IEEE Computer Society, Tampere, Finland, 2004, pp. 25-36. [S47] M. Ali-Babar, The application of knowledge-sharing workspace paradigm for software architecture processes, in: Proceedings of the 3rd international workshop on Sharing and reusing architectural knowledge (SHARK'08), ACM, Leipzig, Germany, 2008, pp. 45-48. [S48] E. Niemela, J. Kalaoja, P. Lago, Toward an Architectural Knowledge Base for Wireless Service Engineering, IEEE Transactions on Software Engineering, 31 (5) (2005) 361-379. [S49] C. Xiaofeng, S. Yanchun, M. Hong, Towards Automated Solution Synthesis and Rationale Capture in Decision-Centric Architecture Design, in: Proceedings of the 7th Working IEEE/IFIP Conference on Software Architecture (WICSA'08) Vancouver, BC, Canada, 2008, pp. 221-230.

Page 26: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Appendix to Chapter 7

225

[S50] L. Zhu, A. Aurum, I. Gorton, R. Jeffery, Tradeoff and Sensitivity Analysis in Software Architecture Evaluation Using Analytic Hierarchy Process, Software Quality Control, 13 (4) (2005) 357-375. [S51] V.-P. Eloranta, K. Koskimies, Using domain knowledge to boost software architecture evaluation, in: Proceedings of the 4th European conference on Software architecture (ECSA'10), Springer-Verlag, Copenhagen, Denmark, 2010, pp. 319-326. [S52] A. Akerman, J. Tyree, Using ontology to support development of software architectures, IBM Systems Journal, 45 (4) (2006) 813-825. [S53] W. Wang, J.E. Burge, Using rationale to support pattern-based architectural design, in: Proceedings of the 5th Workshop on Sharing and Reusing Architectural Knowledge (SHARK'10), ACM, Cape Town, South Africa, 2010, pp. 1-8. [S54] L. Bratthall, E. Johansson, B. Regnell, Is a Design Rationale Vital when Predicting Change Impact? A Controlled Experiment on Software Architecture Evolution, in: Proceedings of the 2nd International Conference on Product Focused Software Process Improvement (PROFES'00), Springer-Verlag, Oulu, Finland, 2000, pp. 126-139. [S55] M.J. Gerken, Specification of Software Architecture, International Journal of Software Engineering and Knowledge Engineering, 10 (1) (2000) 69-95.

Page 27: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,
Page 28: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Bibliography

Abdeen, H., Ducasse, S., & Sahraoui, H. (2011). Modularization Metrics: Assessing Package Organization in Legacy Large Object-Oriented Software. Proceedings of the 2011 18th Working Conference on Reverse Engineering (WCRE'11), IEEE Computer Society, pp. 394-398.

Alavi, M., & Leidner, D. E. (2001). Review: Knowledge Management and Knowledge Management Systems: Conceptual Foundations and Research Issues. MIS Quarterly, 25(1), pp. 107-136.

Ali, M. S., Ali Babar, M., Chen, L., & Stol, K.-J. (2010). A systematic review of comparative evidence of aspect-oriented programming. Information and Software Technology, 52(9), pp. 871-887.

Allman, E. (2012). Managing technical debt - Shortcuts that save money and time today can cost you down the road. Communications of the ACM, 55(5), pp. 50-55.

Alves, V., Niu, N., Alves, C., & Valença, G. (2010). Requirements engineering for software product lines: A systematic literature review. Information and Software Technology, 52(8), pp. 806-820.

Aoyama, M. (2002). Metrics and analysis of software architecture evolution with discontinuity. Proceedings of the 5th International Workshop on Principles of Software Evolution (IWPSE'02), ACM, pp. 103-107.

Barton, B., & Sterling, C. (2010). Manage project portfolios more effectively by including software debt in the decision process. Cutter IT Journal, 23(10), pp. 19-24.

Basili, V. R. (1992). Software modeling and measurement: the Goal/Question/Metric paradigm, University of Maryland at College Park, pp. 1-24.

Bengtsson, P., Lassing, N., Bosch, J., & van Vliet, H. (2004). Architecture-level modifiability analysis (ALMA). Journal of Systems and Software, 69(1-2), pp. 129-147.

Birkeland, J. (2010). From a Timebox Tangle to a More Flexible Flow. Proceedings of the 12th International Conference on Agile Software Development (XP '11), Springer Berlin Heidelberg, pp. 325-334.

Bjørnson, F. O., & Dingsøyr, T. (2008). Knowledge management in software engineering: A systematic review of studied concepts, findings and research methods used. Information and Software Technology, 50(11), pp. 1055-1068.

Boehm, B. (2006). Value-Based Software Engineering: Overview and Agenda. In S. Biffl, A. Aurum, B. Boehm, H. Erdogmus & P. Grünbacher (Eds.), Value-Based Software Engineering. Berlin Heidelberg: Springer, pp. 3-14.

Bohnet, J., & Döllner, J. (2011). Monitoring code quality and development activity by software maps. Proceedings of the 2nd International Workshop on Managing Technical Debt (MTD'11), ACM, pp. 9-16.

Bosch, J. (2004). Software Architecture: The Next Step. Proceedings of the 1st European Workshop on Software Architecture (EWSA'04), Springer Berlin Heidelberg, pp. 194-199.

Page 29: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Bibliography

228

Brondum, J., & Zhu, L. (2012). Visualising architectural dependencies. Proceedings of the 3rd International Workshop on Managing Technical Debt (MTD'12), IEEE, pp. 7-14.

Brown, N., Cai, Y., Guo, Y., Kazman, R., Kim, M., Kruchten, P., . . . Zazworka, N. (2010). Managing technical debt in software-reliant systems. Proceedings of the FSE/SDP workshop on Future of software engineering research (FoSER'10), ACM, pp. 47-52.

Budgen, D., Turner, M., Brereton, P., & Kitchenham, B. (2008). Using mapping studies in software engineering. Proceedings of PPIG 2008pp. 195-204.

Buschmann, F. (2011). To Pay or Not to Pay Technical Debt. IEEE Software, 28(6), pp. 29-31.

Chen, L., Ali Babar, M., & Zhang, H. (2010). Towards an Evidence-Based Understanding of Electronic Data Sources. Proceedings of the 14th International Conference on Evaluation and Assessment in Software Engineering (EASE'10), ACM, pp. 1-4.

Clements, P., & Shaw, M. (2009). "The Golden Age of Software Architecture" Revisited. IEEE Software, 26(4), pp. 70-72.

Cunningham, W. (1992). The WyCash portfolio management system. Proceedings of the 7th Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'92), ACM, pp. 29-30.

Curtis, B., Sappidi, J., & Szynkarski, A. (2012a). Estimating the Principal of an Application's Technical Debt. IEEE Software, 29(6), pp. 34-42.

Curtis, B., Sappidi, J., & Szynkarski, A. (2012b). Estimating the size, cost, and types of Technical Debt. Proceedings of the 3rd International Workshop on Managing Technical Debt (MTD'12), IEEE, pp. 49-53.

Dybå, T., & Dingsøyr, T. (2008). Empirical studies of agile software development: A systematic review. Information and Software Technology, 50(9-10), pp. 833-859.

Easterbrook, S., Singer, J., Storey, M.-A., & Damian, D. (2008). Selecting Empirical Methods for Software Engineering Research. In F. Shull, J. Singer & D. I. K. Sjøberg (Eds.), Guide to Advanced Empirical Software Engineering: Springer London, pp. 285-311.

Eisenberg, R. J. (2012). A threshold based approach to technical debt. SIGSOFT Software Engineering Notes, 37(2), pp. 1-6.

Engström, E., & Runeson, P. (2011). Software product line testing – A systematic mapping study. Information and Software Technology, 53(1), pp. 2-13.

Ernst, N. A. (2012). On the role of requirements in understanding and managing technical debt. Proceedings of the 3rd International Workshop on Managing Technical Debt (MTD'12), IEEE, pp. 61-64.

Falessi, D., Shaw, M. A., Shull, F., Mullen, K., & Keymind, M. S. (2013). Practical considerations, challenges, and requirements of tool-support for managing technical debt. Proceedings of the 4th International Workshop on Managing Technical Debt (MTD'13), IEEE, pp. 16-19.

Farenhorst, R., Izaks, R., Lago, P., & Vliet, H. v. (2008). A Just-In-Time Architectural Knowledge Sharing Portal. Proceedings of the 7th Working IEEE/IFIP Conference on Software Architecture (WICSA'08), IEEE Computer Society, pp. 125-134.

Page 30: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Bibliography

229

Farenhorst, R., Lago, P., & van Vliet, H. (2007). Effective Tool Support for Architectural Knowledge Sharing. In F. Oquendo (Ed.), Software Architecture: Springer Berlin Heidelberg, Vol. 4758, pp. 123-138.

Farenhorst, R., & Vliet, H. v. (2009). Understanding how to support architects in sharing knowledge. Proceedings of the 4th Workshop on Sharing and Reusing Architectural Knowledge (SHARK'09), IEEE Computer Society, pp. 17-24.

Field, A. (2013). Discovering Statistics using IBM SPSS Statistics (Fourth ed.): SAGE Publications Ltd.

Fowler, M. (2009). Technical Debt Quadrant. Retrieved on Feburary 20, 2015, from http://martinfowler.com/bliki/TechnicalDebtQuadrant.html

Fowler, M., Beck, K., Brant, J., Opdyke, W., & Roberts, D. (1999). Refactoring: Improving the Design of Existing Code Berkeley, CA, USA: Addison-Wesley Professional.

Galster, M., Weyns, D., Tofan, D., Michalik, B., & Avgeriou, P. (2014). Variability in Software Systems -- A Systematic Literature Review. IEEE Transactions on Software Engineering, 40(3), pp. 282-306.

Gat, I. (2012). Technical debt as a meaningful metaphor for code quality. IEEE Software, 29(6), pp. 52-54.

Gat, I., & Heintz, J. D. (2011). From assessment to reduction: how Cutter Consortium helps rein in millions of dollars in technical debt. Proceedings of the 2nd International Workshop on Managing Technical Debt (MTD'11), ACM, pp. 24-26.

Glaser, B. G., & Strauss, A. L. (1967). The discovery of grounded theory: Strategies for qualitative research. New York: Aldine Publishing.

Guo, Y., & Seaman, C. (2011). A portfolio approach to technical debt management. Proceedings of the 2nd International Workshop on Managing Technical Debt (MTD'11), ACM, pp. 31-34.

Henttonen, K., & Matinlassi, M. (2009). Open source based tools for sharing and reuse of software architectural knowledge. Proceedings of the 8th Joint Working IEEE/IFIP Conference on Software Architecture and the 3rd European Conference on Software Architecture (WICSA/ECSA'09), IEEE, pp. 41-50.

Hevner, A. R., March, S. T., Park, J., & Ram, S. (2004). Design Science in Information Systems Research. MIS Quarterly, 28(1), pp. 75-105.

Hofmeister, C., Kruchten, P., Nord, R. L., Obbink, H., Ran, A., & America, P. (2007). A general model of software architecture design derived from five industrial approaches. Journal of Systems and Software, 80(1), pp. 106-126.

Holvitie, J., & Leppӓnen, V. (2013). DebtFlag: Technical debt management with a development environment integrated tool. Proceedings of the 4th International Workshop on Managing Technical Debt (MTD'13), IEEE, pp. 20-27.

Hudlicka, E. (1996). Requirements elicitation with indirect knowledge elicitation techniques: comparison of three methods. Proceedings of the 2nd International Conference on Requirements Engineering (ICRE'96), IEEE, pp. 4-11.

IEEE. (2000). IEEE Recommended Practice for Architectural Description of Software-Intensive Systems. IEEE Std 1471-2000, pp. i-23.

Page 31: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Bibliography

230

IEEE. (2010). IEEE Standard for Information Technology--System and Software Life Cycle Processes--Reuse Processes. IEEE Std 1517-2010 (Revision of IEEE Std 1517-1999), pp. 1-51.

Ikujiro Nonaka, & Takeuchi, H. (1995). The Knowledge-creating company: how Japanese companies create the dynamics of innovation. USA Oxford University Press.

ISO. (2006). International Standard - ISO/IEC 14764 IEEE Std 14764-2006 Software Engineering - Software Life Cycle Processes - Maintenance. ISO/IEC 14764:2006 (E) IEEE Std 14764-2006 Revision of IEEE Std 1219-1998), pp. 1-46.

ISO/IEC. (2001). Software engineering - Product quality - Part 1: Quality model: ISO.

ISO/IEC. (2011). Systems and software engineering — Systems and software Quality Requirements and Evaluation (SQuaRE) — System and software quality models ISO/IEC 25010:2011 (pp. 1-34).

ISO/IEC/IEEE. (2011). Systems and software engineering — Architecture description. ISO/IEC/IEEE 42010:2011(E) (Revision of ISO/IEC 42010:2007 and IEEE Std 1471-2000), pp. 1-46.

Izurieta, C., Vetrò, A., Zazworka, N., Cai, Y., Seaman, C., & Shull, F. (2012). Organizing the technical debt landscape. Proceedings of the 3rd International Workshop on Managing Technical Debt (MTD'12), IEEE, pp. 23-26.

Jansen, A., & Bosch, J. (2005). Software Architecture as a Set of Architectural Design Decisions. Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05), IEEE, pp. 109-120.

Kazman, R., Asundi, J., & Klein, M. (2001). Quantifying the costs and benefits of architectural decisions. Proceedings of the 23rd International Conference on Software Engineering (ICSE '01), IEEE Computer Society, pp. 297-306.

Kitchenham, B., & Charters, S. (2007). Guidelines for performing Systematic Literature Reviews in Software Engineering, Version 2.3. EBSE Technical Report EBSE-2007-01: Keele University and Durham University.

Kitchenham, B. A., Mendes, E., & Travassos, G. H. (2007). Cross versus Within-Company Cost Estimation Studies: A Systematic Review. IEEE Transactions on Software Engineering, 33(5), pp. 316-329.

Kiwelekar, A. W., & Joshi, R. K. (2010). Ontological analysis for generating baseline architectural descriptions. Proceedings of the 4th European conference on Software architecture (ECSA'10), Springer-Verlag, pp. 417-424.

Krishna, V., & Basu, A. (2012). Minimizing Technical Debt: Developer's viewpoint. Proceedings of the International Conference on Software Engineering and Mobile Application Modelling and Development (ICSEMA'12), IET, pp. 1-5.

Kruchten, P. (2004). An Ontology of Architectural Design Decisions in Software Intensive Systems. Proceedings of the 2nd Groningen Workshop Software Variability, pp. 54-61.

Kruchten, P., Lago, P., & van Vliet, H. (2006). Building Up and Reasoning About Architectural Knowledge. In C. Hofmeister, I. Crnkovic & R. Reussner (Eds.), Quality of Software Architectures: Springer Berlin Heidelberg, Vol. 4214, pp. 43-58.

Kruchten, P., Nord, R. L., & Ozkaya, I. (2012). Technical Debt: From Metaphor to Theory and Practice. IEEE Software, 29(6), pp. 18-21.

Page 32: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Bibliography

231

Kruchten, P., Nord, R. L., & Ozkaya, I. (2013). 4th International workshop on managing technical debt (MTD 2013). Proceedings of the 35th International Conference on Software Engineering (ICSE'13), , IEEE, pp. 1535-1536.

Kruchten, P., Nord, R. L., Ozkaya, I., & Falessi, D. (2013). Technical debt: towards a crisper definition report on the 4th international workshop on managing technical debt. SIGSOFT Software Engineering Notes, 38(5), pp. 51-54.

Kruchten, P., Obbink, H., & Stafford, J. (2006). The Past, Present, and Future for Software Architecture. IEEE Software, 23(2), pp. 22-30.

Lago, P., & Avgeriou, P. (2006). First workshop on sharing and reusing architectural knowledge. SIGSOFT Software Engineering Notes, 31(5), pp. 32-36.

Letouzey, J.-L., & Ilkiewicz, M. (2012). Managing Technical Debt with the SQALE Method. IEEE Software, 29(6), pp. 44-51.

Li, Z., Avgeriou, P., & Liang, P. (2015). A systematic mapping study on technical debt and its management. Journal of Systems and Software, 101(3), pp. 193-220.

Li, Z., Liang, P., & Avgeriou, P. (2013). Application of knowledge-based approaches in software architecture: A systematic mapping study. Information and Software Technology, 55(5), pp. 777-794.

Li, Z., Liang, P., & Avgeriou, P. (2014). Architectural debt management in value-oriented architecting. In I. Mistrik, R. Bahsoon, R. Kazman & Y. Zhang (Eds.), Economics-Driven Software Architecture: Elsevier, pp. 183-204.

Li, Z., Liang, P., & Avgeriou, P. (2015a). Architectural technical debt identification based on architecture decisions and change scenarios. Proceedings of the 12th Working IEEE/IFIP Conference on Software Architecture (WICSA'15), IEEE, pp. 65-74.

Li, Z., Liang, P., & Avgeriou, P. (2015b). Architecture viewpoints for documenting architectural technical debt. In I. Mistrik (Ed.), Software Quality Assurance in Large Scale and Complex Software-intensive Systems: Elsevier. Accepted.

Li, Z., Liang, P., Avgeriou, P., Guelfi, N., & Ampatzoglou, A. (2014). An Empirical Investigation of Modularity Metrics for Indicating Architectural Technical Debt. Proceedings of the 10th International Conference on the Quality of Software Architectures (QoSA'14), ACM, pp. 119-128.

Liang, P., & Avgeriou, P. (2009). Tools and Technologies for Architecture Knowledge Management. In M. Ali Babar, T. Dingsøyr, P. Lago & H. Vliet (Eds.), Software Architecture Knowledge Management: Springer Berlin Heidelberg, pp. 91-111.

Liang, P., Jansen, A., & Avgeriou, P. (2008). Selecting a High-Quality Central Model for Sharing Architectural Knowledge. Proceedings of the 8th International Conference on Quality Software (QSIC '08), IEEE, pp. 357-365.

Liang, P., Jansen, A., Avgeriou, P., Tang, A., & Xu, L. (2011). Advanced quality prediction model for software architectural knowledge sharing. Journal of System and Software, 84(5), pp. 786-802.

Lim, E., Taksande, N., & Seaman, C. (2012). A Balancing Act: What Software Practitioners Have to Say about Technical Debt. IEEE Software, 29(6), pp. 22-27.

March, S. T., & Smith, G. F. (1995). Design and natural science research on information technology. Decision support systems, 15(4), pp. 251-266.

Page 33: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Bibliography

232

Marinescu, R. (2012). Assessing technical debt by identifying design flaws in software systems. IBM Journal of Research and Development, 56(5), pp. 9:1-9:13.

Martin, A., Biddle, R., & Noble, J. (2009). XP Customer Practices: A Grounded Theory. Proceedings of the 12 AGILE Conference (AGILE '09), IEEE, pp. 33-40.

Martínez-Fernández, S., Ayala, C., & Franch, X. (2012). A reuse-based economic model for software reference architectures. Barcelora, Spain: Departament d'Enginyeria de Serveis i Sistemes d'Informació, Universitat Politècnica de Catalunya.

McConnell, S. (2008). Managing Technical Debt (pp. 1-14): Construx.

McGregor, J. D., Monteith, J. Y., & Jie, Z. (2012). Technical debt aggregation in ecosystems. Proceedings of the 3rd International Workshop on Managing Technical Debt (MTD'12), IEEE, pp. 27-30.

Merali, Y., & Davies, J. (2001). Knowledge capture and utilization in virtual communities. Proceedings of the 1st international conference on Knowledge capture (K-CAP'01), ACM, pp. 92-99.

Microsoft. (2002). Understanding and Using Assemblies and Namespaces in .NET. Retrieved on February 28, 2015, from http://msdn.microsoft.com/en-us/library/ms973231.aspx

Newman, M. E. (2003). The structure and function of complex networks. SIAM review, 45(2), pp. 167-256.

Nord, R. L., Ozkaya, I., Kruchten, P., & Gonzalez-Rojas, M. (2012). In search of a metric for managing architectural technical debt. Proceedings of the 10th Working IEEE/IFIP Conference on Software Architecture (WICSA'12), IEEE, pp. 91-100.

Nugroho, A., Visser, J., & Kuipers, T. (2011). An empirical model of technical debt and interest. Proceedings of the 2nd International Workshop on Managing Technical Debt (MTD'11), ACM, pp. 1-8.

Ong, K. W., & Tang, M. Y. (2007). Knowledge management approach in mobile software system testing. Proceedings of the 2007 IEEE International Conference on Industrial Engineering and Engineering Management (IEEM'07), IEEE, pp. 2120-2123.

Ovaska, E., Evesti, A., Henttonen, K., Palviainen, M., & Aho, P. (2010). Knowledge based quality-driven architecture design and evaluation. Information and Software Technology, 52(6), pp. 577-601.

Ozkaya, I., Kruchten, P., Nord, R., & Brown, N. (2011a). Second international workshop on managing technical debt (MTD 2011). Proceedings of the 33rd International Conference on Software Engineering (ICSE '11), ACM, pp. 1212-1213.

Ozkaya, I., Kruchten, P., Nord, R. L., & Brown, N. (2011b). Managing technical debt in software development: report on the 2nd international workshop on managing technical debt, held at ICSE 2011. SIGSOFT Software Engineering Notes, 36(5), pp. 33-35.

Petersen, K., Feldt, R., Mujtaba, S., & Mattsson, M. (2008). Systematic Mapping Studies in Software engineering. Proceedings of the 12th International Conference on Evaluation and Assessment in Software Engineering (EASE '08), ACM, pp.

Riva, C. (2000). Reverse Architecting: An Industrial Experience Report. Proceedings of the 7th Working Conference on Reverse Engineering (WCRE'00), IEEE Computer Society, pp. 42-50.

Page 34: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Bibliography

233

Rooney, D. (2010). Technical debt: Challenging the metaphor. Cutter IT Journal, 23(10), pp. 16-18.

Runeson, P., & Höst, M. (2009). Guidelines for conducting and reporting case study research in software engineering. Empirical Software Engineering, 14(2), pp. 131-164.

Rus, I., & Lindvall, M. (2002). Knowledge management in software engineering. IEEE Software, 19(3), pp. 26-38.

Seaman, C., & Guo, Y. (2011). Measuring and Monitoring Technical Debt. In M. Zelkowitz (Ed.), Advances in Computers: Elsevier, Vol. 82, pp. 25-45.

Seaman, C. B. (1999). Qualitative methods in empirical studies of software engineering. IEEE Transactions on Software Engineering, 25(4), pp. 557-572.

Seddon, P. B., & Scheepers, R. (2012). Towards the improved treatment of generalization of knowledge claims in IS research: drawing general conclusions from samples. European Journal of Information Systems, 21(1), pp. 6-21.

Sethi, K., Cai, Y., Wong, S., Garcia, A., & Sant'Anna, C. (2009). From retrospect to prospect: Assessing modularity and stability from software architecture. Proceedings of the Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture (WICSA/ECSA '09), IEEE, pp. 269-272.

Shahin, M., Liang, P., & Babar, M. A. (2014). A systematic review of software architecture visualization techniques. Journal of Systems and Software, 94(8), pp. 161-185.

Shahin, M., Liang, P., & Khayyambashi, M. R. (2009). Architectural design decision: Existing models and tools. Proceedings of the Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture (WICSA/ECSA'09), IEEE, pp. 293-296.

Shaw, M. (2002). What makes good research in software engineering? International Journal on Software Tools for Technology Transfer, 4(1), pp. 1-7.

Shaw, M., & Clements, P. (2006). The golden age of software architecture. IEEE Software, 23(2), pp. 31-39.

Sutherland, J., Schoonheim, G., & Rijk, M. (2009). Fully Distributed Scrum: Replicating Local Productivity and Quality with Offshore Teams. Proceedings of the 42nd Hawaii International Conference on System Sciences (HICSS '09), IEEE, pp. 1-8.

Tang, A., Avgeriou, P., Jansen, A., Capilla, R., & Ali Babar, M. (2010). A comparative study of architecture knowledge management tools. Journal of Systems and Software, 83(3), pp. 352-370.

Tang, A., Han, J., & Vasa, R. (2009). Software Architecture Design Reasoning: A Case for Improved Methodology Support. IEEE Software, 26(2), pp. 43-49.

Tom, E., Aurum, A., & Vidgen, R. (2012). A Consolidated Understanding of Technical Debt. Proceedings of the 20th European Conference on Information S ystems (ECIS'12), AIS Electronic Library, pp. 1-13.

Tom, E., Aurum, A., & Vidgen, R. (2013). An exploration of technical debt. Journal of Systems and Software, 86(6), pp. 1498-1516.

Uy, E., & Ioannou, N. (2008). Growing and Sustaining an Offshore Scrum Engagement. Proceedings of the 11th AGILE Conference (AGILE '08), IEEE, pp. 345-350.

Page 35: University of Groningen Managing technical debt in ... · [S4] R. Bavani, Distributed Agile, Agile Testing, and Technical Debt, IEEE Software, 29 (6) (2012) 28-33. [S5] S. Bellomo,

Bibliography

234

van Heesch, U., Avgeriou, P., & Hilliard, R. (2012a). A documentation framework for architecture decisions. Journal of Systems and Software, 85(4), pp. 795-820.

van Heesch, U., Avgeriou, P., & Hilliard, R. (2012b). Forces on Architecture Decisions - A Viewpoint. Proceedings of the Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture (WICSA/ECSA '12) IEEE, pp. 101-110.

van Heesch, U., Eloranta, V., Avgeriou, P., Koskimies, K., & Harrison, N. (2013). DCAR - Decision-Centric Architecture Reviews. IEEE Software, 31(1), pp. 69-76.

Wang, P., Yang, J., Tan, L., Kroeger, R., & Morgenthaler, J. D. (2013). Generating precise dependencies for large software. Proceedings of the 4th International Workshop on Managing Technical Debt (MTD'13), IEEE, pp. 47-50.

Wieringa, R. (2009). Design science as nested problem solving. Proceedings of the 4th International Conference on Design Science Research in Information Systems and Technology, ACM, pp. 1-12.

Wohlin, C. (2014). Guidelines for Snowballing in Systematic Literature Studies and a Replication in Software Engineering. Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering (EASE'14), ACM, pp. 38:1-10.

Wong, S., Cai, Y., Kim, M., & Dalton, M. (2011). Detecting software modularity violations. Proceedings of the 33rd International Conference onSoftware Engineering (ICSE '11),, IEEE, pp. 411-420.

Yin, R. K. (2014). Case study research: Design and methods: Sage publications.

Zazworka, N., Spinola, R. O., Vetro', A., Shull, F., & Seaman, C. (2013a). A case study on effectively identifying technical debt. Proceedings of the 17th International Conference on Evaluation and Assessment in Software Engineering (EASE'13), ACM, pp. 42-47.

Zazworka, N., Vetro’, A., Izurieta, C., Wong, S., Cai, Y., Seaman, C., & Shull, F. (2013b). Comparing four approaches for technical debt identification. Software Quality Journal, pp. 1-24.