Der Architekturentwurf ist ein Sammelbegriff für Dokumentation, mit der wir

  • Randbedingungen für das Projekt,
  • Qualitätsmerkmale des Produktes,
  • nicht-funktionale Aspekte,
  • technische Entscheidungen und
  • technische Konzepte

beschreiben.

Ein ganz wichtiges Ziel des Architekturentwurfes ist die Darstellung und Kommunikation des Architekturstils, der dem Produkt zugrunde liegt. Der Architekturstil ergibt sich aus den technischen Entscheidungen. Wiederkehrende Lösungen für gleichartige Probleme oder besonders komplexe oder kritische Zusammenhänge zwischen Komponenten des Systems erfordern technische Konzepte.


Wikipedia: Architekturmuster

Im Bereich der Softwareentwicklung sind Architekturmuster (auch Architekturstil) in den Arten von Mustern auf oberster Ebene einzuordnen. Im Gegensatz zu Idiomen oder Entwurfsmustern bestimmen sie nicht ein konkretes (meist kleines oder lokales) Teilproblem, sondern die grundlegende Organisation und Interaktion zwischen den Komponenten einer Anwendung Architekturmuster lassen sich in verschiedene Kategorien einteilen.


Wikipedia: Pipes und Filter

Pipes und Filter (auch Datenfluss-System) ist ein Architekturmuster aus dem Bereich der Softwareentwicklung. Es beschreibt die Struktur für Systeme, die Datenströme verarbeiten. [..] Eine Pipe stellt eine Verbindung zwischen den einzelnen Verarbeitungsschritten dar. Der Name lässt sich durch den englischen Begriff für Rohrleitungen (englisch: pipes) herleiten. Ein Filter ist ein Verarbeitungsschritt. Jeder Filter hat eine Dateneingabe und eine Datenausgabe. In jedem Verarbeitungsschritt werden die einkommenden Daten umgewandelt. Bei der Umwandlung können den Daten Teile entnommen, hinzugefügt oder auch vollständig ersetzt werden. Die Art der Umwandlung wird durch den Filter bestimmt.


Wikipedia: Schichtenarchitektur

Die Schichtenarchitektur (auch Schichtenmodell oder Schichtenmuster) ist ein häufig angewandtes Strukturierungsprinzip für die Architektur von Softwaresystemen. Dabei werden einzelne Aspekte des Softwaresystems konzeptionell einer Schicht (engl. tier oder layer) zugeordnet. Die erlaubten Abhängigkeitsbeziehungen zwischen den Aspekten werden bei einer Schichtenarchitektur dahingehend eingeschränkt, dass Aspekte einer „höheren“ Schicht nur solche „tieferer“ Schichten verwenden dürfen. Ein System mit Schichtenarchitektur bezeichnet man auch als mehrschichtig.


Wikipedia: Service-orientierte Architektur

Serviceorientierte Architektur (kurz SOA), auch dienstorientierte Architektur, ist ein Architekturmuster der Informationstechnik aus dem Bereich der verteilten Systeme, um Dienste von IT-Systemen zu strukturieren und zu nutzen. [..] Vereinfacht kann SOA als Methode bzw. Paradigma angesehen werden, die vorhandenen EDV-Komponenten wie Datenbanken, Server und Websites in Dienste zu kapseln und dann so zu koordinieren („Orchestrierung“), dass ihre Leistungen zu höheren Diensten zusammengefasst und anderen Organisationsabteilungen oder Kunden zur Verfügung gestellt werden können.


SWEBOK: Architectural Styles

An architectural style is “a specialization of element and relation types, together with a set of constraints on how they can be used”. An architectural style can thus be seen as providing the software’s high-level organization. Various authors have identified a number of major architectural styles:

  • General structures (for example, layers, pipes and filters, blackboard)
  • Distributed systems (for example, client-server, three-tiers, broker)
  • Interactive systems (for example, Model-View-Controller, Presentation-Abstraction-Control)
  • Adaptable systems (for example, microkernel, reflection)
  • Others (for example, batch, interpreters, process control, rule-based).

SWEBOK: Design Patterns

Succinctly described, a pattern is “a common solution to a common problem in a given context”. While architectural styles can be viewed as patterns describing the high-level organization of software, other design patterns can be used to describe details at a lower level. These lower level design patterns include the following:

  • Creational patterns (for example, builder, factory, prototype, singleton)
  • Structural patterns (for example, adapter, bridge, composite, decorator, façade, flyweight, proxy)
  • Behavioral patterns (for example, command, interpreter, iterator, mediator, memento, observer, state, strategy, template, visitor).

SWEBOK: Design Decisions

Architectural design is a creative process. During the design process, software designers have to make a number of fundamental decisions that profoundly affect the software and the development process. It is useful to think of the architectural design process from a decision-making perspective rather than from an activity perspective. Often, the impact on quality attributes and tradeoffs among competing quality attributes are the basis for design decisions.