Software architecture-based analysis and testing: a look into achievements and future challenges

The term software architecture (SA) has been introduced to denote the high level structure of a software system. SA has been proposed as a means for managing complexity and improving reuse, by supporting the decomposition of a system into its high level components and their interconnections. SA became prevalent in the beginning of the ’90s when its main role was to describe the system structure (by identifying architectural components and connectors) and the required system behavior. Over the years, the SA scope has evolved, and today it also captures the architecturally-relevant decisions behind design [50] taken by a variety of stakeholders to satisfy their own specific concerns, and codified into different views and viewpoints [46]. Nowadays, the relevance of SA in both academic and industrial worlds is unquestionable, and SAs are used for documenting and communicating design decisions and architectural solutions [24], for driving analysis techniques [57,62,63,79], for code generation purposes in model-driven engineering [3,37], for product line engineering [15], for risks and cost estimation [36,67], and further on. SAs have also been advocated since the 1990s as a means for improving the dependability of complex software systems. In this light, different methods have been

[1]  Xudong He A Framework for Ensuring System Dependability from Design to Implementation , 2005, MSVVEIS.

[2]  Holger Giese,et al.  The fujaba real-time tool suite: model-driven development of safety-critical, real-time systems , 2005, ICSE.

[3]  Rob Pooley,et al.  CPASA: Continuous Performance Assessment of Software Architecture , 2010, 2010 17th IEEE International Conference and Workshops on Engineering of Computer Based Systems.

[4]  Paola Inverardi,et al.  Integration Architecture Synthesis for Taming Uncertainty in the Digital Space , 2012, Monterey Workshop.

[5]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[6]  Eila Niemelä,et al.  A Survey on Software Architecture Analysis Methods , 2002, IEEE Trans. Software Eng..

[7]  Henry Muccini,et al.  Software architecture-based regression testing , 2006, J. Syst. Softw..

[8]  Bradley R. Schmerl,et al.  Improving system dependability by enforcing architectural intent , 2005, ACM SIGSOFT Softw. Eng. Notes.

[9]  Carl E. Landwehr,et al.  Basic concepts and taxonomy of dependable and secure computing , 2004, IEEE Transactions on Dependable and Secure Computing.

[10]  Cecília M. F. Rubira,et al.  Architecting Fault Tolerance with Exception Handling: Verification and Validation , 2009, Journal of Computer Science and Technology.

[11]  Henry Muccini,et al.  Architecting Fault Tolerant Systems , 2007, 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA'07).

[12]  Alexander L. Wolf,et al.  Software testing at the architectural level , 1996, ISAW '96.

[13]  John A. van der Poll,et al.  Proceedings of the 5th International Workshop on Modelling, Simulation, Verification and Validation of Enterprise Information Systems - MSVVEIS 2007; In Conjunction with ICEIS 2007 , 2007 .

[14]  Paola Inverardi,et al.  Architecture-based software testing , 1996, ISAW '96.

[15]  Philippe Kruchten,et al.  An Ontology of Architectural Design Decisions in Software-Intensive Systems , 2004 .

[16]  Paola Inverardi,et al.  An approach to performance evaluation of software architectures , 1998, WOSP '98.

[17]  Mary Jean Harrold Architecture-Based Regression Testing of Evolving Systems , 1998 .

[18]  Vahid Rafe,et al.  Modeling Fault Tolerant Services in Service-Oriented Architecture , 2009, 2009 Third IEEE International Symposium on Theoretical Aspects of Software Engineering.

[19]  Cecilia Mascolo,et al.  Using a coordination language to specify and analyze systems containing mobile components , 2000, TSEM.

[20]  A. Prasad Sistla,et al.  Incremental Verification of Architecture Specification Language for Real-Time Systems , 1998, Int. J. Softw. Eng. Knowl. Eng..

[21]  Cecília M. F. Rubira,et al.  Development of Fault-Tolerant Software Systems Based on Architectural Abstractions , 2008, ECSA.

[22]  Xin Wang,et al.  Deriving Software Performance Models from Architectural Patterns by Graph Transformations , 1998, TAGT.

[23]  Henry Muccini,et al.  An approach to integration testing based on architectural descriptions , 1997, Proceedings. Third IEEE International Conference on Engineering of Complex Computer Systems (Cat. No.97TB100168).

[24]  Wouter Joosen,et al.  Reusable Formal Models for Secure Software Architectures , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

[25]  Ling Yuan,et al.  Generic Fault Tolerant Software Architecture Reasoning and Customization , 2006, IEEE Transactions on Reliability.

[26]  Model George Fairbanks Just Enough Architecture , 2010 .

[27]  Hans van Vliet,et al.  Architecting as a Risk- and Cost Management Discipline , 2011, 2011 Ninth Working IEEE/IFIP Conference on Software Architecture.

[28]  Henry Muccini,et al.  CHARMY: A Framework for Designing and Verifying Architectural Specifications , 2009, IEEE Transactions on Software Engineering.

[29]  Henry Muccini,et al.  Deriving test plans from architectural descriptions , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[30]  Nenad Medvidovic,et al.  A Bayesian Model for Predicting Reliability of Software Systems at the Architectural Level , 2007, QoSA.

[31]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[32]  Nicola Dragoni,et al.  An object based algebra for specifying a fault tolerant software architecture , 2005, J. Log. Algebraic Methods Program..

[33]  Andrea Polini,et al.  Enhancing Service Federation Trustworthiness through Online Testing , 2012, Computer.

[34]  Flávio Oquendo,et al.  ArchWare: Architecting Evolvable Software , 2004, EWSA.

[35]  C. Murray Woodside,et al.  Analyzing the effectiveness of fault-management architectures in layered distributed systems , 2004, Perform. Evaluation.

[36]  Henry Muccini,et al.  Using software architecture for code testing , 2004, IEEE Transactions on Software Engineering.

[37]  P. Walley Measures of Uncertainty in Expert Systems , 1996, Artificial Intelligence.

[38]  Dorina C. Petriu,et al.  The Future of Software Performance Engineering , 2007, Future of Software Engineering (FOSE '07).

[39]  Rogério de Lemos Analysing failure behaviours in component interaction , 2004, J. Syst. Softw..

[40]  David Garlan,et al.  Software engineering in an uncertain world , 2010, FoSER '10.

[41]  Xin Wang,et al.  From UML Descriptions of High-Level Software Architectures to LQN Performance Models , 1999, AGTIVE.

[42]  Paola Inverardi,et al.  Model-based performance prediction in software development: a survey , 2004, IEEE Transactions on Software Engineering.

[43]  David Garlan,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004 .

[44]  Prasanta K. Bose,et al.  Automated translation of UML models of architectures for verification and simulation using SPIN , 1999, 14th IEEE International Conference on Automated Software Engineering.

[45]  Jeffrey J. P. Tsai,et al.  Incremental verification of architecture specification language for real-time systems , 1997, Proceedings Third International Workshop on Object-Oriented Real-Time Dependable Systems.

[46]  Dorina C. Petriu,et al.  Architecture-Based Performance Analysis Applied to a Telecommunication System , 2000, IEEE Trans. Software Eng..

[47]  Vojislav B. Misic,et al.  Extending the ATAM Architecture Evaluation to Product Line Architectures , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[48]  Dimitra Giannakopoulou,et al.  Analysis of Software Architectures , 1999 .

[49]  Sam Malek,et al.  GuideArch: Guiding the exploration of architectural solution space under uncertainty , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[50]  David S. Rosenblum Challenges in Exploiting Architectural Models for Software Testing , 1998 .

[51]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[52]  Paola Inverardi,et al.  On relating functional specifications to architectural specifications: A case study , 2006, Sci. Comput. Program..

[53]  Henry Muccini,et al.  What Industry Needs from Architectural Languages: A Survey , 2013, IEEE Transactions on Software Engineering.

[54]  Gary McGraw,et al.  Software Security: Building Security In , 2006, 2006 17th International Symposium on Software Reliability Engineering.

[55]  David Garlan,et al.  Documenting software architectures: views and beyond , 2002, 25th International Conference on Software Engineering, 2003. Proceedings..

[56]  A. Jefferson Offutt,et al.  Deriving tests from software architectures , 2001, Proceedings 12th International Symposium on Software Reliability Engineering.

[57]  Everton Cavalcante,et al.  Describing Cloud Applications Architectures , 2013, ECSA.

[58]  István Majzik,et al.  Design and analysis of fault tolerant architectures by model weaving , 2005, Ninth IEEE International Symposium on High-Assurance Systems Engineering (HASE'05).

[59]  Connie U. Smith,et al.  Performance evaluation of software architectures , 1998, WOSP '98.

[60]  Cecília M. F. Rubira,et al.  On applying coordinated atomic actions and dependable software architectures for developing complex systems , 2001, Fourth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISORC 2001.

[61]  Cecília M. F. Rubira,et al.  A Method for Modeling and Testing Exceptions in Component-Based Software Development , 2005, LADC.

[62]  Gang Huang,et al.  Selecting Fault Tolerant Styles for Third-Party Components with Model Checking Support , 2009, CBSE.

[63]  Heiko Koziolek,et al.  Performance evaluation of component-based software systems: A survey , 2010, Perform. Evaluation.

[64]  Connie U. Smith,et al.  PASASM: a method for the performance assessment of software architectures , 2002, WOSP '02.

[65]  Eila Niemelä,et al.  Survey of reliability and availability prediction methods from the viewpoint of software architecture , 2007, Software & Systems Modeling.

[66]  Michael Luck,et al.  Transparent Fault Tolerance for Web Services Based Architectures , 2002, Euro-Par.

[67]  M. Hirsch,et al.  The Fujaba real-time tool suites: model-driven development of safety-critical, real-time systems , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[68]  Bixin Li,et al.  A classification and comparison of model checking software architecture techniques , 2010, J. Syst. Softw..

[69]  Nenad Medvidovic,et al.  Early prediction of software component reliability , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[70]  Katerina Goseva-Popstojanova,et al.  Architecture-based approach to reliability assessment of software systems , 2001, Perform. Evaluation.

[71]  Liming Zhu,et al.  An Architectural Approach for Cost Effective Trustworthy Systems , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

[72]  Cecília M. F. Rubira,et al.  A Dependable Architecture for COTS-Based Software Systems Using Protective Wrappers , 2003, WADS.

[73]  Heiko Koziolek,et al.  Architecture-Based Reliability Prediction with the Palladio Component Model , 2012, IEEE Transactions on Software Engineering.

[74]  Jeff Magee,et al.  Self-Managed Systems: an Architectural Challenge , 2007, Future of Software Engineering (FOSE '07).

[75]  Eoin Woods Industrial Architectural Assessment Using TARA , 2011, 2011 Ninth Working IEEE/IFIP Conference on Software Architecture.

[76]  Henry Muccini,et al.  An explorative journey from architectural tests definition downto code tests execution , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[77]  Mary Jean Harrold,et al.  Testing: a roadmap , 2000, ICSE '00.