A Machine Learning Approach for Continuous Development

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.

[1]  Keith Phalp,et al.  An investigation of machine learning based prediction systems , 2000, J. Syst. Softw..

[2]  Jan Bosch,et al.  Software Architecture: The Next Step , 2004, EWSA.

[3]  Anna Perini,et al.  A Machine Learning Approach to Software Requirements Prioritization , 2013, IEEE Transactions on Software Engineering.

[4]  Henry Muccini,et al.  Providing Architectural Languages and Tools Interoperability through Model Transformation Technologies , 2010, IEEE Transactions on Software Engineering.

[5]  Alberto Sillitti,et al.  A Guided Tour of the Legal Implications of Software Cloning , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C).

[6]  Paolo Ciancarini,et al.  A new agile paradigm for mission-critical software development , 2016 .

[7]  Paolo Ciancarini,et al.  Software Quality Concerns in the Italian Bank Sector: The Emergence of a Meta-Quality Dimension , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering: Software Engineering in Practice Track (ICSE-SEIP).

[8]  Davide Maltoni,et al.  CORe50: a New Dataset and Benchmark for Continuous Object Recognition , 2017, CoRL.

[9]  Davide Maltoni,et al.  Comparing Incremental Learning Strategies for Convolutional Neural Networks , 2016, ANNPR.

[10]  Jeffrey J. P. Tsai,et al.  Machine Learning and Software Engineering , 2004, Software Quality Journal.

[11]  Olaf Zimmermann,et al.  The Software Architect's Role in the Digital Age , 2016, IEEE Softw..

[12]  Anna Perini,et al.  Facing scalability issues in requirements prioritization with machine learning techniques , 2005, 13th IEEE International Conference on Requirements Engineering (RE'05).

[13]  Paolo Ciancarini,et al.  Towards Antifragile Software Architectures , 2017, ANT/SEIT.

[14]  Klaas-Jan Stol,et al.  Continuous software engineering: A roadmap and agenda , 2017, J. Syst. Softw..

[15]  Gary D. Boetticher,et al.  Using Machine Learning to Predict Project Effort: Empirical Case Studies in Data-Starved Domains , 2001 .

[16]  Jan Bosch,et al.  A Multiple Case Study of Continuous Architecting in Large Agile Companies: Current Gaps and the CAFFEA Framework , 2016, 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA).

[17]  Wray L. Buntine,et al.  Learning classification trees , 1992 .

[18]  Hong Mei,et al.  Towards Automated Solution Synthesis and Rationale Capture in Decision-Centric Architecture Design , 2008, Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008).

[19]  Alberto Sillitti,et al.  Reverse engineering: a European IPR perspective , 2016, SAC.

[20]  Angelo Messina,et al.  Capturing User Needs for Agile Software Development , 2016 .

[21]  Daniel Russo Benefits of Open Source Software in Defense Environments , 2016 .

[22]  Christophe G. Giraud-Carrier,et al.  A Note on the Utility of Incremental Learning , 2000, AI Commun..

[23]  Paolo Ciancarini,et al.  A Proposal for an Antifragile Software Manifesto , 2016, ANT/SEIT.

[24]  Felix Bachmann,et al.  Preliminary Design of ArchE: A Software Architecture Design Assistant , 2003 .

[25]  S. Winter,et al.  An evolutionary theory of economic change , 1983 .

[26]  Hakan Erdogmus,et al.  Architecture Meets Agility , 2009, IEEE Softw..

[27]  Eric S. K. Yu,et al.  Towards modelling and reasoning support for early-phase requirements engineering , 1997, Proceedings of ISRE '97: 3rd IEEE International Symposium on Requirements Engineering.

[28]  Paolo Ciancarini,et al.  Big Data Quality: A Roadmap for Open Data , 2016, 2016 IEEE Second International Conference on Big Data Computing Service and Applications (BigDataService).