Variability points and design pattern usage in architectural tactics

Architectural tactics are important building blocks of software architecture. Tactics come in many shapes and sizes, describe solutions for addressing specific quality concerns, and are prevalent across high-performance fault-tolerant systems. Once a decision is made to utilize a tactic, the developer must generate a concrete plan for realizing the tactic in the design and code. Unfortunately, the variability points found in individual tactics can make this a challenging task. To address this knowledge gap, we conducted a study to investigate how design patterns were used to implement various tactics. Data mining techniques were used to identify potential pattern instances within tactic implementations. Our manual analysis of the retrieved data identified a distinct set of variability points for each tactic, as well as corresponding design patterns used to address them. From these observations we construct tactic-level decision trees depicting variability points of a tactic and generate a reference model which provides implementation guidance.

[1]  James M. Bieman,et al.  How Software Designs Decay: A Pilot Study of Pattern Evolution , 2007, First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007).

[2]  Ghulam Rasool,et al.  Flexible design pattern detection based on feature types , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[3]  Jan Bosch,et al.  Managing Variability in Software Product Lines , 2000 .

[4]  Paul Clements,et al.  Attribute-Driven Design (ADD), Version 2.0 , 2006 .

[5]  B. J. Ferro Castro,et al.  Pattern-Oriented Software Architecture: A System of Patterns , 2009 .

[6]  Tom Mens,et al.  Design preservation over subsequent releases of a software product: a case study of Baan ERP: Practice Articles , 2005 .

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

[8]  Kenneth P. Birman,et al.  Security Options for Distributed Settings , 2012 .

[9]  B. F. Castro Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael. Pattern-oriented software architecture: a system of patterns, John Wiley & Sons Ltd, 1996 , 1997 .

[10]  Roger Champagne,et al.  Towards Automation of Performance Architectural Tactics Application , 2011, 2011 Ninth Working IEEE/IFIP Conference on Software Architecture.

[11]  Rick Kazman,et al.  Realizing and Refining Architectural Tactics: Availability , 2009 .

[12]  Yann-Gaël Guéhéneuc,et al.  A Simple Recommender System for Design Patterns , 2007 .

[13]  Jane Cleland-Huang,et al.  A tactic-centric approach for automating traceability of quality concerns , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[14]  Jane Cleland-Huang,et al.  Automated classification of non-functional requirements , 2007, Requirements Engineering.

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

[16]  Jane Cleland-Huang,et al.  Tracing architectural concerns in high assurance systems: (NIER track) , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[17]  Robert Hanmer,et al.  Patterns for Fault Tolerant Software , 2007 .

[18]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[19]  Cyril S. Ku,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[20]  Joshua Kerievsky,et al.  Refactoring to Patterns , 2004, XP/Agile Universe.

[21]  Jane Cleland-Huang,et al.  The Detection and Classification of Non-Functional Requirements with Application to Early Aspects , 2006, 14th IEEE International Requirements Engineering Conference (RE'06).

[22]  Audris Mockus,et al.  Does Code Decay? Assessing the Evidence from Change Management Data , 2001, IEEE Trans. Software Eng..

[23]  Felix Bachmann,et al.  Deriving Architectural Tactics: A Step Toward Methodical Architectural Design , 2003 .

[24]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[25]  H. van Vliet,et al.  Top-down composition of software architectures , 2002, Proceedings Ninth Annual IEEE International Conference and Workshop on the Engineering of Computer-Based Systems.

[26]  Philipp Bachmann,et al.  Deferred cancellation: a behavioral pattern , 2008 .

[27]  Jan Bosch,et al.  On the notion of variability in software product lines , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[28]  Harold Ossher,et al.  Subject-oriented programming: a critique of pure objects , 1993, OOPSLA '93.