Sonntag, 6. Januar 2013

Startpunkt.

Ein Inventar von über 300 Prinzipien der Softwaretechnik wurde bis heute erstellt. In diesem Blog möchte ich einen Beitrag leisten, diese Prinzipien zu sichten, zu ordnen und zu katalogisieren. An dieser Stelle folgt eine grobe Agenda.


(1) Was ist ein Prinzip?

Vieles nennt sich Prinzip und ist es doch nicht. Ist das Liskov'sche Substitutionsprinzip ein Prinzip der Softwaretechnik? Oder doch nur eine Einschränkung der objektorientierten Programmierung?

Anderes heißt nicht Prinzip und könnte dennoch eines sein. Ist "Teile und herrsche" ein Prinzip? Möchten wir es als Prinzip der Zerlegung bezeichnen?

Prinzipien werden uns in verschiedenen Größenordnungen begegnen: Ratschläge und Tipps, Best Practices, Richtlinien und Regeln, Konzepte und Gesetze, Standards, Entwicklungsphilosophien. Es wird ein Teil der Aufgabe sein zu ermitteln, was es wert ist, "Prinzip" genannt zu werden.

(2) Wozu überhaupt Prinzipien?

Prinzipien sind der intellektuelle Raum, in dem wir täglich über Software diskutieren. Wir argumentieren mit Prinzipien, wenn wir Lösungen vorschlagen. Wir wünschen uns eine nachvollziehbare, möglichst lückenlose Argumentkette, wenn wir für Ideen eintreten. Und doch ist der Raum der Prinzipien weitgehend unerforscht. Wer mit welchem Prinzip argumentiert ergibt sich oft aus den persönlichen Erfahrungen. Wenn Softwaretechnik ingenieursmäßiger und wissenschaftlicher werden möchte, braucht sie einen erforschten Prinzipienraum. Es wird Teil der Aufgabe sein, die Bedeutung der Prinzipien im Kontext der Softwaretechnik zu bestimmen und ihnen einen Platz zuzuweisen.

(3) Wie sind die Prinzipien geordnet?

Prinzipien sind nicht autonom, sie stehen in Beziehung zueinander. Ein Prinzip kann von einem anderen abgeleitet sein. Prinzipien können ähnlich oder eng verwandt sein. Es wird Teil der Aufgabe sein, Struktur in die Prinzipien zu bringen.

(4) Katalogisierung der Prinzipien

Wir kennen Kataloge von Entwurfsmustern. Es existieren Standards für Qualitätsmerkmale. Nichts dergleichen finden wir für Prinzipien. Wie könnte ein Katalogeintrag für ein Prinzip aussehen? Vielleicht so?

Name, Kurzform


Synonyme


Beschreibung


Beispiel


Historie


Art des Prinzips


Grad der formalen Spezifikation


Benefits


Drawbacks


Übergeordnete Prinzipien


Abgleitete Prinzipien



(5) Beziehung zu Qualitätsmerkmalen

Prinzipien scheinen ganz wesentlich der Verbesserung von Software-Qualität zu dienen. Welches Prinzip dient welchen Qualitätsmerkmalen? Umgekehrt: Ist es möglich, von einer priorisierten Liste gegebener Merkmale aus, die für ein Projekt relevantesten Prinzipien zu benennen?