Abstract
The need to explicitly document design decisions has been emphasized both in research and in industry. To address design concerns, software architects and developers implicitly capture design decisions in tools such as issue management systems. These design decisions are not explicitly labeled and are not integrated with the architecture knowledge management tools. Automatically extracting design decisions will aid architectural knowledge management tools to learn from the past decisions and to guide architects while making decisions in similar context. In this paper, we propose a two-phase supervised machine learning based approach to first, automatically detect design decisions from issues and second, to automatically classify the identified design decisions into different decision categories. We have manually analyzed and labeled more than 1,500 issues from two large open source repositories and have used this dataset for generating the machine learning models. We have made the dataset publicly available that will serve as a starting point for researchers to further reference and investigate the design decision detection and classification problem. Our evaluation shows that by using linear support vector machines, we can detect design decisions with 91.29% accuracy and classify them with an accuracy of 82.79%. This provides a quantitative basis for learning from past design decisions to support stakeholders in making better and informed design decisions.
Keywords
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
https://issues.apache.org/jira/browse/SPARK – last accessed on 25.01.2017.
- 8.
https://issues.apache.org/jira/browse/HADOOP – last accessed on 25.01.2017.
- 9.
- 10.
- 11.
- 12.
Given that there are multiple labels, in multi-class classification, a document can be assigned to one and only one label. Whereas, in multi-label classification, a document can be assigned to any number of labels.
References
Ambler, S.: Agile Modeling: Effective Practices for Extreme Programming and the Unified Process. Wiley, New York (2002)
Antoniol, G., Ayari, K., Di Penta, M., Khomh, F., Guéhéneuc, Y.G.: Is it a bug or an enhancement?: a text-based approach to classify change requests. In: Proceedings of the 2008 Conference of the Center for Advanced Studies on Collaborative Research: Meeting of Minds, p. 23. ACM (2008)
Babar, M.A., Gorton, I.: A tool for managing software architecture knowledge. In: Second Workshop on Sharing and Reusing Architectural Knowledge-Architecture, Rationale, and Design Intent, SHARK/ADI 2007: ICSE Workshops 2007, p. 11. IEEE (2007)
Bhat, M., Shumaiev, K., Biesdorf, A., Hohenstein, U., Hassel, M., Matthes, F.: Meta-model based framework for architectural knowledge management. In: Proccedings of the 10th ECSA Workshops, p. 12. ACM (2016)
Bosch, J.: Software architecture: the next step. In: Oquendo, F., Warboys, B.C., Morrison, R. (eds.) EWSA 2004. LNCS, vol. 3047, pp. 194–199. Springer, Heidelberg (2004). doi:10.1007/978-3-540-24769-2_14
Buchgeher, G., Weinreich, R.: Automatic tracing of decisions to architecture and implementation. In: 2011 9th Working IEEE/IFIP Conference on Software Architecture (WICSA), pp. 46–55. IEEE (2011)
Capilla, R., Jansen, A., Tang, A., Avgeriou, P., Babar, M.A.: 10 years of software architecture knowledge management: practice and future. J. Syst. Softw. 116, 191–205 (2016)
Capilla, R., Nava, F., Carrillo, C.: Effort estimation in capturing architectural knowledge. In: Proceedings of 23rd IEEE/ACM International Conference on Automated Software Engineering, pp. 208–217. IEEE Computer Society (2008)
Chang, C.C., Lin, C.J.: LIBSVM: a library for support vector machines. ACM Trans. Intell. Syst. Technol. (TIST) 2(3), 27 (2011)
Dagenais, B., Robillard, M.P.: Creating and evolving developer documentation: understanding the decisions of open source contributors. In: Proceedings of 18th ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 127–136. ACM (2010)
Fernández, R., Frampton, M., Ehlen, P., Purver, M., Peters, S.: Modelling and detecting decisions in multi-party dialogue. In: Proceedings of 9th SIGdial Workshop on Discourse and Dialogue, pp. 156–163. Association for Computational Linguistics (2008)
Goth, G.: Agile tool market growing with the philosophy. IEEE Softw. 26(2), 88–91 (2009)
Hsueh, P.-Y., Moore, J.D.: Automatic decision detection in meeting speech. In: Popescu-Belis, A., Renals, S., Bourlard, H. (eds.) MLMI 2007. LNCS, vol. 4892, pp. 168–179. Springer, Heidelberg (2008). doi:10.1007/978-3-540-78155-4_15
Jansen, A.: Architectural design decisions. Ph.D. thesis, August 2008
Jansen, A., Bosch, J.: Software architecture as a set of architectural design decisions. In: 5th Working IEEE/IFIP Conference on Software Architecture, WICSA 2005, pp. 109–120. IEEE (2005)
Kazman, R., Goldenson, D., Monarch, I., Nichols, W., Valetto, G.: Evaluating the effects of architectural documentation: a case study of a large scale open source project. IEEE Trans. Softw. Eng. 42(3), 220–260 (2016)
Kruchten, P.: An ontology of architectural design decisions in software intensive systems. In: 2nd Groningen Workshop on Software Variability, pp. 54–61. Citeseer (2004)
Kruchten, P., Capilla, R., Dueñas, J.C.: The decision view’s role in software architecture practice. IEEE Softw. 26(2), 36–42 (2009)
Lee, J.: Design rationale systems: understanding the issues. IEEE Expert 12(3), 78–85 (1997)
Lee, L., Kruchten, P.: Capturing software architectural design decisions. In: Canadian Conference on Electrical and Computer Engineering, CCECE 2007, pp. 686–689. IEEE (2007)
Lytra, I., Tran, H., Zdun, U.: Supporting consistency between architectural design decisions and component models through reusable architectural knowledge transformations. In: Drira, K. (ed.) ECSA 2013. LNCS, vol. 7957, pp. 224–239. Springer, Heidelberg (2013). doi:10.1007/978-3-642-39031-9_20
Manning, C.D., Schütze, H., et al.: Foundations of Statistical Natural Language Processing, vol. 999. MIT Press, Cambridge (1999)
Manteuffel, C., Tofan, D., Koziolek, H., Goldschmidt, T., Avgeriou, P.: Industrial implementation of a documentation framework for architectural decisions. In: 2014 IEEE/IFIP Conference on Software Architecture (WICSA), pp. 225–234. IEEE (2014)
Meng, X., Bradley, J., Yavuz, B., Sparks, E., Venkataraman, S., Liu, D., Freeman, J., Tsai, D., Amde, M., Owen, S., et al.: MLlib: machine learning in apache spark. J. Mach. Learn. Res. 17(34), 1–7 (2016)
Miesbauer, C., Weinreich, R.: Classification of design decisions – an expert survey in practice. In: Drira, K. (ed.) ECSA 2013. LNCS, vol. 7957, pp. 130–145. Springer, Heidelberg (2013). doi:10.1007/978-3-642-39031-9_12
Porter, M.F.: An algorithm for suffix stripping. Program 14(3), 130–137 (1980)
Refaeilzadeh, P., Tang, L., Liu, H.: Cross-validation. In: Liu, L., Özsu, T. (eds.) Encyclopedia of Database Systems, pp. 532–538. Springer, Heidelberg (2009). doi:10.1007/978-0-387-39940-9_565
Rijsbergen, C.J.V.: Information Retrieval, 2nd edn. Butterworth-Heinemann, Newton (1979)
Stettina, C.J., Heijstek, W.: Necessary and neglected?: an empirical study of internal documentation in agile software development teams. In: Proceedings of 29th ACM International Conference on Design of Communication, pp. 159–166. ACM (2011)
Sutherland, J., Viktorov, A., Blount, J., Puntikov, N.: Distributed scrum: agile project management with outsourced development teams. In: 40th Annual Hawaii International Conference on System Sciences, HICSS 2007, p. 274a. IEEE (2007)
Tang, A., Babar, M.A., Gorton, I., Han, J.: A survey of architecture design rationale. J. Syst. Softw. 79(12), 1792–1804 (2006)
Tyree, J., Akerman, A.: Architecture decisions: demystifying architecture. IEEE Softw. 22(2), 19–27 (2005)
van der Ven, J.S., Bosch, J.: Architecture decisions: who, how and when. In: Babar, M.A., Brown, A., Mistrik, I. (eds.) Agile Software Architecture, pp. 113–136. Morgan Kaufmann, Boston (2013)
van der Ven, J.S., Bosch, J.: Making the right decision: supporting architects with design decision data. In: Drira, K. (ed.) ECSA 2013. LNCS, vol. 7957, pp. 176–183. Springer, Heidelberg (2013). doi:10.1007/978-3-642-39031-9_15
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this paper
Cite this paper
Bhat, M., Shumaiev, K., Biesdorf, A., Hohenstein, U., Matthes, F. (2017). Automatic Extraction of Design Decisions from Issue Management Systems: A Machine Learning Based Approach. In: Lopes, A., de Lemos, R. (eds) Software Architecture. ECSA 2017. Lecture Notes in Computer Science(), vol 10475. Springer, Cham. https://doi.org/10.1007/978-3-319-65831-5_10
Download citation
DOI: https://doi.org/10.1007/978-3-319-65831-5_10
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-65830-8
Online ISBN: 978-3-319-65831-5
eBook Packages: Computer ScienceComputer Science (R0)