![]() |
|||
| HSG |
|
Im Speziellen das Allgemeine sehen, um das Verallgemeinerte auf viele Spezialfälle anwenden zu können.
Beispiele: Prozeduren statt Code-Wiederholung, Design-Muster (z.B. Automaten), ...
Gliederung von Objekten (oder allgemeiner Moduln) in einer Rangordnung.
So wird (bei uns) das Fachkonzept häufig durch ein "Steuerobjekt" vertreten, das wiederum Hilfsobjekte ("Wasserträger", für speziell umrissene Aufgaben zuständig) benutzt, die nach außen unsichtbar sind.
Allgemeine Problemlösetaktik: Ein komplexes Ganzes wird in überschaubare Teile zerlegt.
Diese Teile sollen dabei autonom sein und mit einer präzise beschriebenen Schnittstelle (Summe der öffentlichen Methoden) versehen werden. So können einzelne Methoden ausgetauscht werden, ohne im übrigen System Veränderungen vorzunehmen. Für die Zerlegung in Module bestehen Schemata wie EVA (Eingabe-Verarbeitung-Ausgabe) oder MVC(Model-View-Controller) im Großen bzw. Objekte im Kleinen.
Um Seiteneffekte unmöglich zu machen und um die Austauschbarkeit sicherzustellen, halten Module ihre innere Struktur so weit es geht geheim. Eine Kommunikation ist nur über die Schnittstelle möglich. Die innere Struktur eines Moduls oder Objekts kann ohne Probleme verändert/verbessert werden
Zusammengehörendes soll auch zusammen modelliert, dokumentiert bzw. kodiert werden.
Es wird empfohlen, nicht mehr als eine Seite Quelltext für ein Modul zu verwenden.
Beispiel für extreme Lokalität: Eine Laufvariable soll direkt vor der for-Schleife, wo sie benötigt wird, deklariert werden (in Pascal i.A. unmöglich). Ein Datentyp soll direkt dort deklariert werden, wo er gebraucht wird. Der gelegentlich zu lesende Tipp, Klassen jeweils in eigenen Units zu speichern, verstößt gegen dieses Prinzip: Zusammengehörendes muss mühsam zusammengesucht werden. Andererseits wird in Delphi nur so das Geheimnisprinzip durchgehalten. Delphi-Units bilden einen Sichtbarkeitsbereich unabhängig von der Direktive private.
Bei der Problemlösung ist strikt eine einfache Lösung anzustreben. Die Techniker sagen: "Keep it simple, stupid!" (KISS)
In allen Schritten der Software-Entwicklung ist eine weitgehende Standardisierung einzuhalten. Dies beginnt mit einer schematischen Dokumentation (bei uns: Dokumentationsvorlage), der Verwendung von Standards zur grafischen Modellbeschreibung (UML), der Verwendung bewährter Design- (Design-Pattern) und Implementierungs-Muster bis hin zu einer Kodierung, die strikt vereinbarte Regel (Coding Guide, bei uns: "so wie im Handbuch bzw. in der Delphi-Hilfe") einhält. Nur so ist im Team (bzw. für den Autor selbst nach einiger Zeit) eine reibungsfreie Verständigung möglich.
Was sich bewährt hat, wird solange beibehalten, bis etwas "Besseres an die Stelle des Guten" tritt.
Prinzipien sind Grundsätze, keine Dogmen. Oft widersprechen sich Einzelprinzipien, dann muss man abwägen.