Abstract
Complex and ephemeral software requirements, short time-to-market plans and fast changing information technologies have a deep impact on the design of software architectures, especially in Agile/DevOps projects where micro-services are integrated rapidly and incrementally. In this context, the ability to analyze new software requirements and understand very quickly and effectively their impact on the software architecture design becomes quite crucial. In this work we propose a novel and flexible approach for applying machine learning techniques to assist and speed-up the continuous development process, specifically within the mission-critical domain, where requirements are quite difficult to manage. More specifically, we introduce an Intelligent Software Assistant, designed as an open and plug-in based architecture powered by Machine Learning techniques and present a possible instantiation of this architecture in order to prove the viability of our solution.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
P. Avesani, C. Bazzanella, A. Perini, A. Susi, Facing scalability issues in requirements prioritization with machine learning techniques, in 13th IEEE International Conference on Requirements Engineering (RE’05) (2005), pp. 297–305
F. Bachmann, L. Bass, M. Klein, Preliminary design of ArchE: a software architecture design assistant CMU/SEI Technical Report 21 (2003)
G. Boetticher, Using machine learning to predict project effort: empirical case studies in data-starved domains, in 1st International Workshop on Model-Based Requirements Engineering (2001)
J. Bosch, Software architecture: the next step, in European Workshop on Software Architecture (2004)
W. Buntine, Learning classification trees. Stat. Comput. 2(2), 63–73 (1992)
P. Ciancarini, A. Messina, F. Poggi, D. Russo, Agile knowledge engineering for mission critical software requirements, in Synergies Between Knowledge Engineering and Software Engineering (Springer, 2018), pp. 151–171
P. Ciancarini, F. Poggi, D. Russo, Big data quality: a roadmap for open data, in Proceedings of the 2nd IEEE International Conference on Big Data Service (BigDataService ’16) (2016), pp. 210–215
P. Ciancarini, D. Russo, A. Sillitti, G. Succi, A guided tour of the legal implications of software cloning, in 38th International Conference on Software Engineering (ICSE ’16) (2016), pp. 563–572
P. Ciancarini, D. Russo, A. Sillitti, G. Succi, Reverse engineering: a legal perspective, in 31st Annual ACM Symposium on Applied Computing (SAC ’16) (2016), pp. 1498–1503
X. Cui, Y. Sun, H. Mei, Towards automated solution synthesis and rationale capture in decision-centric architecture design, in 7th IEEE/IFIP Working conference on software architecture (WICSA’08) (2008), pp. 221–230
H. Erdogmus, Architecture meets agility. IEEE Softw. 26(5), 2–4 (2009)
B. Fitzgerald, K.-J. Stol, Continuous software engineering: a roadmap and agenda. J. Syst. Softw. 123, 176–189 (2017)
S. Gazzerro, R. Marsura, A. Messina, S. Rizzo, Capturing user needs for agile software development, in 4th International Conference in Software Engineering for Defence Applications (2016), pp. 307–319
C. Giraud–Carrier, A note on the utility of incremental learning. AI Commun. 13(4), 215–223 (2000)
G. Hohpe, I. Ozkaya, U. Zdun, O. Zimmermann, The software architect role in the digital age. IEEE Softw. 33(6), 30–39 (2016)
V. Lomonaco, D. Maltoni, Comparing incremental learning strategies for convolutional neural networks, in IAPR Workshop on Artificial Neural Networks in Pattern Recognition (2016), pp. 175–184
V. Lomonaco, D. Maltoni, CORe50: a new dataset and benchmark for continuous object recognition (2017), http://arXiv.org/abs/1705.03550
C. Mair et al., An investigation of machine learning based prediction systems. J. Syst. Softw. 53(1), 23–29 (2000)
I. Malavolta, H. Muccini, P. Pelliccione, D. Tamburri, Providing architectural languages and tools interoperability through model transformation technologies. IEEE Trans. Softw. Eng. 36(1), 119–140 (2010)
A. Martini, J. Bosch, A multiple case study of continuous architecting in large agile companies: current gaps and the CAFFEA framework, in 13th IEEE/IFIP Working conference on software architecture (WICSA’16) (2016), pp. 1–10
A. Messina, F. Fiore, M. Ruggiero, P. Ciancarini, D. Russo, A new agile paradigm for mission critical software development. J. Def. Softw. Eng. (CrossTalk) 29(6), 25–30 (2016)
R. Nelson, S. Winter, An Evolutionary Theory of Economic Change (Harvard University Press, 1982)
A. Perini, A. Susi, P. Avesani, A machine learning approach to software requirements prioritization. IEEE Trans. Softw. Eng. 39(4), 445–461 (2013)
D. Russo, Benefits of open source software in defense environments, in 4th International Conference in Software Engineering for Defence Applications (SEDA ’15) (2016), pp. 123–131
D. Russo, P. Ciancarini, T. Falasconi, M. Tomasi, Software quality concerns in the Italian bank sector: the emergence of a meta-quality dimension, in 39th International Conference on Software Engineering (ICSE ’17) (2017), pp. 63–72
D. Russo, P. Ciancarini, A proposal for an antifragile software manifesto. Proc. Comput. Sci. 83(1), 982–987 (2016)
D. Russo, P. Ciancarini, Towards antifragile software architectures. Proc. Comput. Sci. 109, 929–934 (2017)
E.S. Yu, Towards modelling and reasoning support for early-phase requirements engineering, in 3rd IEEE International Symposium on Requirements Engineering (WICSA’16) (IEEE), pp. 226–235
D. Zhang, J.P. Tsai, Machine learning and software engineering. Softw. Qual. J. 11(2), 87–119 (2003)
Acknowledgements
The Authors wish to thank the Consorzio Interuniversitario Nazionale per l’Informatica (CINI) and the Italian National Research Council (ISTC–CNR) for the partial financial support.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG
About this paper
Cite this paper
Russo, D., Lomonaco, V., Ciancarini, P. (2018). A Machine Learning Approach for Continuous Development. In: Ciancarini, P., Litvinov, S., Messina, A., Sillitti, A., Succi, G. (eds) Proceedings of 5th International Conference in Software Engineering for Defence Applications. SEDA 2016. Advances in Intelligent Systems and Computing, vol 717. Springer, Cham. https://doi.org/10.1007/978-3-319-70578-1_11
Download citation
DOI: https://doi.org/10.1007/978-3-319-70578-1_11
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-70577-4
Online ISBN: 978-3-319-70578-1
eBook Packages: EngineeringEngineering (R0)