Software Engineering and Architecture > JBI > FWN > RUG

Pattern-based Architecture Design and Evaluation

General Introduction

Architectural patterns are widely accepted as recurring solutions that solve problems at the architectural design level, and provide a common vocabulary in order to facilitate communication. Architectural patterns also provide the means to reason about the quality attributes of a software system and help to document the design decisions taken by the architect. A pattern language incorporates patterns from a particular domain and combines them to form a web of related patterns. It describes a whole system of patterns including relationships and dependencies. Patterns from a pattern language can be applied on after another to form a whole.

Regrettably, describing, finding, and applying architectural patterns in practice remains largely ad-hoc and idiosyncratic. One main reason behind these problems is that each pattern offers a whole solution space comprised of infinite solution variants of the same pattern, which are difficult to express in a systematic way. Our ongoing research project is aimed at devising an approach that provides solutions to these problems by letting an architect systematically express patterns in system design.

Patterns concern some of the most important architectural decisions, are easy to use, and provide a rich set of information about rationale, consequences, and related decisions; knowledge that must be documented. Documenting Architectural Knowledge (AK) based on patterns fits within the “natural” course of architecting, without introducing extra efforts for the software architects and developers. Patterns are thus an inexpensive way of documenting some of the most significant AK entities. We conduct research regarding the systematic reuse of documented, generic Architectural Knowledge in form of patterns and pattern languages in architectural documentations.

Architectural patterns also provide means to balance the quality attributes of the system to be built. However, major architectural decisions have consequences that affect the quality attributes. Software architecture patterns are a powerful tool in architecture design and evaluation, but their impact and use has not been systematically researched. We continue to analyze the impact of architecture patterns on quality attributes. We have investigated the interaction of architecture patterns and quality attribute tactics used to improve software reliability. We have designed and validated a method for reviewing architectures based on architecture patterns. We are creating a general model of the interaction of patterns, quality attributes, and quality attribute tactics. This includes a notation to annotate architecture diagrams with information about how tactics are to be implemented. This will help architects produce strong architectures, review them effectively, and understand the architecture of existing systems.

Research Projects

  • The Pattern Handbook: The goal of 'Pattern Hand Book' project is to provide support for the systematic modeling of architectural patterns in system design. This includes equipping the designer with better pattern modeling resources to apply patterns in system design, help to reason about quality attributes of the system, architectural documentation, traceability of architectural decisions, and model checking, etc.

Tools and Demos

Master Projects

Bachelor Projects

Pattern-based Architecture Design and Evaluation' Recent Publications

(For more publications go to Pattern-based Architecture Design and Evaluation' publications page.)

Matthias Galster and Paris Avgeriou (2011) Empirically-grounded Reference Architectures: A Proposal. In Proceedings of the 7th Internationale Conference on the Quality of Software Architectures (QoSA). Springer LNCS, xxx–xxx, 2011.   bib
S. Mahdavi-Hezavehi, Uwe van Heesch, and Paris Avgeriou (2011) A Pattern Language for Architecture Patterns and Software Technologies Introducing Technology Pattern Languages. In Proceedings of the 16th European Conference on Pattern Languages of Programs (EuroPLoP). Conference Proceedings, xxx–xxx, 2011.   bib
Klaas-Jan Stol, Paris Avgeriou, and Muhammad Ali Babar (2011) Design and Evaluation of a Process for Identifying Architecture Patterns in Open Source Software. In Proceedings of the 5th European Conference on Software Architecture (ECSA). Springer LNCS, pages 147–163, 2011.   doi
bib
Neil B. Harrison and Paris Avgeriou (2011) Using Pattern-Based Architecture Reviews to Detect Quality Attribute Issues – an Exploratory Study. Transactions on Pattern Languages of Programming, 2011.   bib
Neil B. Harrison and Paris Avgeriou (2011) Pattern-Based Architecture Reviews. IEEE Software, 2011.   doi
bib