Towards Antifragile Software Architectures

Abstract: Antifragility is a rising issue in Software Engineering. Due to pervasiveness of software in a growing number of mission critical applications, traditional resilience and recovery systems may not be sufficient. Software has taken over many functionalities which are of vital interest in today and future world. We relay a lot on software applications which may be faulty and cause immense damages. To cope with this scenario, claiming to develop better software is not enough, since unexpected events a.k.a. Black Swans, may disrupt and overcome our system. The purpose of this paper is to propose a new architectural design that responds to the need to build antifragile systems for contemporary complex scenarios. We suggest a system which enhances its strength through experience and errors. It is a self adaptive system architecture improving when facing errors. The most relevant aspect of this approach is that architectures are not only resilient, they extract the intrinsic value of faults. This paper suggests that a fine grained architecture is the key issue to build antifragile systems.

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

[2]  Ariel Tseitlin,et al.  The antifragile organization , 2013, CACM.

[3]  Vincenzo De Florio On resilient behaviors in computational systems and environments , 2015, Journal of Reliable Intelligent Environments.

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

[5]  Marco Vieira,et al.  Benchmarking the resilience of self-adaptive software systems: perspectives and challenges , 2011, SEAMS '11.

[6]  J. D. Day,et al.  A principle for resilient sharing of distributed resources , 1976, ICSE '76.

[7]  Maurice Schellekens Car hacking: Navigating the regulatory landscape , 2016, Comput. Law Secur. Rev..

[8]  Paolo Ciancarini,et al.  Agile for Millennials: A Comparative Study , 2017, 2017 IEEE/ACM 1st International Workshop on Software Engineering Curricula for Millennials (SECM).

[9]  Fabrizio Montesi,et al.  Microservices: Yesterday, Today, and Tomorrow , 2017, Present and Ulterior Software Engineering.

[10]  Martin Monperrus,et al.  Principles of Antifragile Software , 2014, Programming.

[11]  C. Douglas Locke,et al.  Software architecture for hard real-time applications: Cyclic executives vs. fixed priority executives , 1992, Real-Time Systems.

[12]  Ravishankar K. Iyer,et al.  Chameleon: A Software Infrastructure for Adaptive Fault Tolerance , 1999, IEEE Trans. Parallel Distributed Syst..

[13]  Paolo Ciancarini,et al.  Learning Agile Software Development in High School: An Investigation , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C).

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

[15]  Kennie H. Jones International Workshop : From Dependable to Resilient , from Resilient to Antifragile Ambients and Systems ( ANTIFRAGILE 2014 ) Engineering Antifragile Systems : A Change In Design Philosophy , 2014 .

[16]  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).

[17]  Stefan Tilkov The Modern Cloud-Based Platform , 2015, IEEE Softw..

[18]  Dave Astels,et al.  Test Driven Development: A Practical Guide , 2003 .

[19]  Vincenzo De Florio,et al.  The algorithm of pipelined gossiping , 2006, J. Syst. Archit..

[20]  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).

[21]  Claire Le Goues,et al.  GenProg: A Generic Method for Automatic Software Repair , 2012, IEEE Transactions on Software Engineering.

[22]  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).