Praktisches & Grundsätzliches zur Informatik


Top Down Design per Specification Card

Die beste Möglichkeit, Software top down zu entwerfen und gut wartbar zu dokumentieren, ist ein an Karteikarten erinnernder Ansatz: Specification and Collaboration Cards (SCC).

Man geht da vor wie folgt:

  • Grundregel ist: Jedes Konzept – und sei es eine ganze Applikation – wird zunächst so beschrieben, dass dieses Beschreibung auf etwa einer Seite Platz hat (diese Seite ist das, was ich als "Kartei­karte" bezeichne).
  • Teil dieser Beschreibung ist eine Zerlegung in Subkonzepte, die man dann wieder auf eben dieselbe Weise beschreibt.
  • Vorteil dieses Verfahrens: Es zwingt zur Abstraktion, denn da die Beschreibung zunächst nur etwa eine Seite Text umfassen darf, wird man gezwungen, sich auf das Wesentliche zu konzentrieren und geeignete Subkonzepte zu definieren, die dann hin zu allen anderen notwendigen Details führen.
  • Weiterer Vorteil: Es bleibt dem Leser überlassen, wie weit er in Details einsteigen möchte.
  • Und noch ein Vorteil: Man kann solches Design – da es sich auf hierarchisch zueinander angeordnete Specification Cards verteilt – leicht in HTML präsentieren und, wenn geeeignete Regeln zur Notation von Namen eingehalten werden, sogar automatisch über Links verknüpfen und auf formale Voll­ständigkeit hin prüfen (mehr dazu hier).
  • Jede Karte kann, wo hilfreich, durch Bilder illustriert sein (hin und wieder sogar durch ein UML Diagramm).
  • Nicht zuletzt ist derart aufgeschriebenes Design extrem änderungsfreundlich (also gut wartbar).
  • Zu Projektanfang, wo noch wenig Details erarbeitet sind, werden derart gegliederte Entwurfspapiere sogar von Personen gerne gelesen, denen Entwurfspapiere sonst zu technisch erscheinen (das, so habe ich gemerkt, ist ein großer Vorteil).
  • Als Collaboration Card bezeichnet man eine Karte, deren Gegenstand die Interaktion von System­komponenten, von User und System, oder von Menschen ist, die in bestimmten Rollen arbeiten (ein Beispiel findet sich hier).

Wie schon gesagt: Diese Technik zwingt zur Abstraktion und garantiert gute Wartbarkeit sämtlicher Kon­zeptdokumentation. Ich habe sie seit 1997 mit weit mehr Erfolg eingesetzt als die sonst übliche aufsatz­artige Aufschreibung von Design (aufsatzartig gegebenes Design ist alles andere als gut wartbar).

Note: Das Akronym SCC scheint kaum bekannt, aber einen Spezialfall dieser Technik – sog. Class Responsibility Cards – wurde erstmals beschrieben durch Ivar Jacobson in seinem sehr lesenswerten Buch "Object Oriented Software Engineering: A Use Case Driven Approach" (1992).

Wissenswertes zu "SCC, Software Entwurf, Top Down Design per Specification Cards" zusammengestellt durch Gebhard Greiter.
tags: seiteDesignSpecificationVorteil: Design1gegreit Specification1gegreit Vorteil1gegreit