Pattern-Driven Architectural Partitioning: Balancing Functional and Non-functional Requirements

One of the vexing challenges of software architecture is the problem of satisfying the functional specifications of the system to be created while at the same time meeting its non-functional needs. In this work we focus on the early stages of the software architecture process, when initial high-level system partitioning is being performed. Specifically, we study the problem of system partitioning with respect to both functional requirements and quality attributes. Architecture patterns are particularly well-suited to simultaneously addressing functional requirements and quality attributes. They support architects in considering both, understanding the impact of decisions on other attributes, and making tradeoffs among them. Existing architectural design methods accommodate pattern use, but do not exploit it in detail. We propose a pattern-based approach that leverages the benefits of patterns, and fits well with existing methods.

[1]  Siegfried Snyder,et al.  Foundations for the Study of Architecture , 1974 .

[2]  Uwe Zdun,et al.  Architectural Patterns Revisited - A Pattern Language , 2005, EuroPLoP.

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

[4]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[5]  Robert L. Nord,et al.  Applied Software Architecture , 1999, Addison Wesley object technology series.

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

[7]  Pierre America,et al.  Multi-view Variation Modeling for Scenario Analysis , 2003, PFE.

[8]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture , 1996 .

[9]  Robert L. Nord,et al.  Generalizing a Model of Software Architecture Design from Five Industrial Approaches , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[10]  Mordechai Ben-Menachem,et al.  Writing effective use cases , 2001, SOEN.

[11]  Philippe Kruchten The Rational Unified Process - An Introduction, 3rd Edition , 2004, Addison Wesley object technology series.

[12]  Greg Utas Robust Communications Software: Extreme Availability, Reliability and Scalability for Carrier-Grade Systems , 2005 .

[13]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture Volume 1: A System of Patterns , 1996 .

[14]  Leonard J. Bass,et al.  Designing software architectures to achieve quality attribute requirements , 2005, IEE Proc. Softw..

[15]  Philippe Kruchten,et al.  The Rational Unified Process: An Introduction , 1998 .

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