Muster

Die Softwareentwicklung ist ein von Innovation getriebenes Umfeld wie wenige andere. Umso überraschende ist für viele, wie häufig sich bereits bekannte Fragestellungen in dieser Fachrichtung wiederholen.

Muster (patterns) beschreiben ein bekanntes Problem, eine Standardlösung dafür sowie deren Vor- und Nachteile. Die meisten Muster fallen in den Bereich objektorientierte Analye und Entwurf (OOA/OOE), daher die verbreitete, eigentlich spezialisierte Bezeichnung Entwurfsmuster (design patterns). Die bekanntesten Muster werden häufig in die drei Kategorien

  • Erzeugung (creational)
  • Verhalten (behavioral)
  • Struktur (structural)

unterteilt. Diese ursprünglichen Muster (besonders bekannt ist die Publikation der Gang of Four, GoF) wurden später um weitere ergänzt, zB Muster für die Abbildung von objektorientierten Modellen auf relationale Datenbanken (object-relational mapping, ORM).

Antimuster (antipatterns) wenden das Konzept der Muster auf Vorgehensweisen an, die allgemein als problematisch anerkannt sind. Meist unterscheidet man die folgenden Kategorien:

  • Organisation und Projektmanagement
  • Architektur und Design
  • Programmierung (auch als code smells bezeichnet)

Der Begriff code smell wird nicht einheitlich verwendet. Häufig sind diese auch einfach Indizien für eine suboptimale Programmierung und erreichen nicht den Aufbau oder die Aussagekraft eines Antimusters.