Montag, 7. Januar 2013

Wie erkenne ich ein Prinzip der Softwaretechnik?

Prinzipien der Softwaretechnik kommen in verschiedenen Größenordnungen daher. Unverbindlicher Tipp oder unumstößliches Gesetz, persönliche Erfahrung oder jahrzehntelange Essenz des Softwareschaffens - all dies firmiert als Prinzip.

Die wenigen Forscher, die das Thema der "Software Engineering Principles" untersuchen, schränken sich längst ein: Sie sprechen von "Fundamental Software Engineering Principles". [Séguin et al 2010] extrahieren in ihrer ausgezeichneten Arbeit aus anfänglich 313 Prinzipien, zusammengetragen aus Forschungsarbeiten seit 1970, ganze 24 fundamentale Prinzipien.

Überlegen wir zuerst, was ein Prinzip der Softwaretechnik ausmacht und wie es sich gegen andere Konzepte abgrenzt.

A. Positive Indizien:
  • Ein Prinzip zielt darauf hin, angewendet zu werden (es ist kein reines Konzept).
  • Die Anwendung eines Prinzips führt zu strukturell anderen Lösungen als seine Missachtung.
  • Die Anwendung eines Prinzips dient einer oder mehreren Qualitätseigenschaften.
  • Ein Prinzip ist überprüfbar und hat sich nach Möglichkeit bereits häufig bewährt.
  • Ein Prinzip hat seine Grundlage in der Nichttrivialität der Softwaretechnik.
    B. Abgrenzung:
    • Ein Prinzip ist unabhängig von konkreten Technologien und Systemen.
    • Ein Prinzip ist kein Qualitätsmerkmal, Entwurfsmuster oder Standard.
    • Ein Prinzip ist keine Entwicklungsphilosophie und kein Programmierparadigma.
    • Ein Prinzip ist keine Tätigkeit.
    Verstöße gegen diese Eigenschaften deuten darauf hin, dass kein Prinzip vorliegt. Je häufiger anwendbar ein Prinzip ist, je nachvollziehbarer es zu strukturell anderen Lösungen führt, je deutlicher es Qualitätseigenschaften verbessert, und je besser es im Umgang mit der Nichttrivialität der Softwaretechnik unterstützt, desto bedeutsamer erscheint ein Prinzip.

    Dieser Blog wird mehr als 24 Prinzipien behandeln. 

    Quellen:

    [Séguin 2010] - Software Engineering Principles - A Survey and an AnalysisNormand Séguin, Alain Abran, and Robert Dupuis. C3S2E, page 59-65. ACM, (2010)
    [Bourque et al 1997] - Fundamental Principles of Software Engineering, P. Bourque, R. Dupuis (1997)