The architectural template method: templating architectural knowledge to efficiently conduct quality‐of‐service analyses

Software architects plan the realization of software systems by assessing design decisions on the basis of architectural models. Using these models as input, architectural analyses assess the impact of architects' decisions on quality‐of‐service properties. While the creation of suitable architectural models requires software architects to apply complex architectural knowledge, for example, in the form of established architectural styles and patterns, current architectural analyses lack support for directly reusing such knowledge. This lack points to an unused potential to make the work of software architects more effective and efficient.

[1]  H. D. Rombach,et al.  The Goal Question Metric Approach , 1994 .

[2]  Lisa Ruffolo,et al.  Computer Literacy BASICS: A Comprehensive Guide to IC3 , 2009 .

[3]  Previous version: , 2004 .

[4]  Frank Buschmann,et al.  Pattern-Oriented Software Architecture, a Pattern Language for Distributed Computing , 2007 .

[5]  Robert A. Riemenschneider,et al.  Introduction to SADL 1.0: A Language for Specifying Software Architecture Hierarchies , 1997 .

[6]  Murali Sitaraman,et al.  Foundations of component-based systems , 2000 .

[7]  Uwe Zdun,et al.  Using Patterns to Capture Architectural Decisions , 2007, IEEE Software.

[8]  David Garlan,et al.  Exploiting style in architectural design environments , 1994, SIGSOFT '94.

[9]  Steffen Becker,et al.  Performance and reliability prediction for evolving service-oriented software systems , 2013, Empirical Software Engineering.

[10]  Heiko Koziolek The SPOSAD Architectural Style for Multi-tenant Software Applications , 2011, 2011 Ninth Working IEEE/IFIP Conference on Software Architecture.

[11]  Sebastian Lehrig,et al.  Architectural Templates: Engineering Scalable SaaS Applications Based on Architectural Styles , 2013, MoDELS.

[12]  John C. Grundy,et al.  A visual language for design pattern modelling and instantiation , 2001, Proceedings IEEE Symposia on Human-Centric Computing Languages and Environments (Cat. No.01TH8587).

[13]  Anneke Kleppe,et al.  Software Language Engineering: Creating Domain-Specific Languages Using Metamodels , 2008 .

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

[15]  Sebastian Lehrig,et al.  Systematically Deriving Quality Metrics for Cloud Computing Systems , 2015, ICPE.

[16]  Sebastian Lehrig,et al.  Using Performance Models for Planning the Redeployment to Infrastructure-as-a-Service Environments: A Case Study , 2016, 2016 12th International ACM SIGSOFT Conference on Quality of Software Architectures (QoSA).

[17]  Robert J. Allen A formal approach to software architecture , 1997 .

[18]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[19]  Falko Bause,et al.  Stochastic Petri Nets: An Introduction to the Theory , 2012, PERV.

[20]  Paul Clements,et al.  Software Architecture in Practice: Addison-Wesley , 1998 .

[21]  Sebastian Lehrig,et al.  Approaching the Cloud: Using Palladio for Scalability, Elasticity, and Efficiency Analyses , 2014, SoSP.

[22]  David Garlan,et al.  A Formal Approach to Software Architectures , 1992, IFIP Congress.

[23]  Robert B. France,et al.  A role-based metamodeling approach to specifying design patterns , 2003, Proceedings 27th Annual International Computer Software and Applications Conference. COMPAC 2003.

[24]  Egon Berghout,et al.  The Goal/Question/Metric method: a practical guide for quality improvement of software development , 1999 .

[25]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

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

[27]  Christoph Rathfelder,et al.  Modelling Event-Based Interactions in Component-Based Architectures for Quantitative System Evaluation , 2013 .

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

[29]  Heiko Koziolek,et al.  Parameter dependencies for reusable performance specifications of software components , 2010 .

[30]  Joost-Pieter Katoen,et al.  Process algebra for performance evaluation , 2002, Theor. Comput. Sci..

[31]  Sebastian Lehrig,et al.  Scalability, elasticity, and efficiency in cloud computing: A systematic literature review of definitions and metrics , 2015, 2015 11th International ACM SIGSOFT Conference on Quality of Software Architectures (QoSA).

[32]  Steffen Becker,et al.  The Palladio component model for model-driven performance prediction , 2009, J. Syst. Softw..

[33]  Barton P. Miller,et al.  Summary of the sigmetrics symposium on parallel and distributed processing , 1999, PERV.

[34]  Salah Sadou,et al.  Preserving architectural decisions through architectural patterns , 2014, Automated Software Engineering.

[35]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[36]  Douglas C. Schmidt,et al.  Pattern Oriented Software Architecture: On Patterns and Pattern Languages (Wiley Software Patterns Series) , 2007 .

[37]  Johan Tordsson,et al.  The CACTOS Vision of Context-Aware Cloud Topology Optimization and Simulation , 2014, 2014 IEEE 6th International Conference on Cloud Computing Technology and Science.

[38]  Lucia Happe Configurable Software Performance Completions through Higher-Order Model Transformations , 2011 .

[39]  Rick Kazman,et al.  Evaluating Software Architectures: Methods and Case Studies , 2001 .

[40]  Ian Sommerville,et al.  QoSOnt: a QoS ontology for service-centric systems , 2005, 31st EUROMICRO Conference on Software Engineering and Advanced Applications.

[41]  Frank Leymann,et al.  Cloud Computing Patterns: Fundamentals to Design, Build, and Manage Cloud Applications , 2014 .

[42]  Pearl Brereton,et al.  Performing systematic literature reviews in software engineering , 2006, ICSE.

[43]  Sebastian Lehrig,et al.  CloudScale: scalability management for cloud systems , 2013, ICPE '13.

[44]  Sebastian Lehrig The Architectural Template Method : Design-Time Engineering of SaaS Applications , 2014 .

[45]  Jens Happe,et al.  Predicting software performance in symmetric multi-core and multiprocessor environments , 2009 .

[46]  Angelika Foerster Stochastic Petri Nets An Introduction To The Theory , 2016 .

[47]  Philippe Kruchten,et al.  Building Up and Reasoning About Architectural Knowledge , 2006, QoSA.

[48]  Gilles Vanwormhoudt,et al.  Aspectual templates in UML , 2017, Software & Systems Modeling.

[49]  Uwe Fink,et al.  Performance Solutions A Practical Guide To Creating Responsive Scalable Software , 2016 .

[50]  Steffen Becker Coupled model transformations , 2008, WOSP '08.

[51]  J. Evans Straightforward Statistics for the Behavioral Sciences , 1995 .

[52]  Kishor S. Trivedi Probability and Statistics with Reliability, Queuing, and Computer Science Applications , 1984 .

[53]  Max Jacobson,et al.  A Pattern Language: Towns, Buildings, Construction , 1981 .

[54]  Steffen Becker,et al.  Coupled model transformations for QoS enabled component-based software design , 2010 .

[55]  C. Murray Woodside,et al.  Performance-related completions for software specifications , 2002, ICSE '02.

[56]  Sebastian Lehrig,et al.  Analyzing Cost-Efficiency of Cloud Computing Applications with SimuLizar? , 2015, Softwaretechnik-Trends.

[57]  Heiko Koziolek,et al.  PerOpteryx: automated application of tactics in multi-objective software architecture optimization , 2011, QoSA-ISARCS '11.

[58]  Vincenzo Grassi,et al.  A performance-based methodology to early evaluate the effectiveness of mobile software architectures , 2002, J. Log. Algebraic Methods Program..

[59]  Sam Malek,et al.  SASSY: A Framework for Self-Architecting Service-Oriented Systems , 2011, IEEE Software.

[60]  Dorina C. Petriu,et al.  Exploring SOA Pattern Performance using Coupled Transformations and Performance Models , 2015, SEKE.

[61]  Richard N. Taylor Software architecture: many faces, many places, yet a central discipline , 2009, ESEC/FSE '09.

[62]  D. Fensel,et al.  Architecture of the World Wide Web , Volume One , 2004 .

[63]  Ian Sommerville,et al.  QoSOnt: a QoS ontology for service-centric systems , 2005 .

[64]  Edward D. Lazowska,et al.  Quantitative system performance - computer system analysis using queueing network models , 1983, Int. CMG Conference.

[65]  C LuckhamDavid,et al.  Specification and Analysis of System Architecture Using Rapide , 1995 .

[66]  Sebastian Lehrig,et al.  CloudStore - towards scalability, elasticity, and efficiency benchmarking and analysis in Cloud computing , 2018, Future Gener. Comput. Syst..

[67]  Piet Demeester,et al.  Automatic inclusion of middleware performance attributes into architectural UML software models , 2005, IEEE Transactions on Software Engineering.

[68]  Sebastian Lehrig,et al.  Applying Architectural Templates for Design-Time Scalability and Elasticity Analyses of SaaS Applications , 2014, HotTopiCS '14.

[69]  David Garlan,et al.  Software architecture: a travelogue , 2014, FOSE.

[70]  Frank Leymann,et al.  Cloud Computing Patterns , 2014, Springer Vienna.