2 Stimmen

Welche wesentlichen Design-Artefakte produzieren Sie?

Welche wesentlichen Design-Artefakte erstellen Sie im Laufe Ihres Softwareentwicklungszyklus? Was macht sie für Ihre Praxis so wichtig?

Das Projekt, an dem ich gerade arbeite, ist seit über 8 Jahren in Produktion. Diese Webanwendung wurde in dieser Zeit aktiv verbessert und gepflegt. Während wir über CMMI-basierte Richtlinien und Prozesse verfügen und Teile unserer Praxis gut definiert sind, wurde die Entwurfsphase weitgehend vernachlässigt. Kennt jemand bewährte Verfahren?

6voto

Jason Bunting Punkte 56534
Funktionierender Code... und Whiteboard-Zeichnungen.

P

6voto

Ubiguchi Punkte 3056

Da ich in der Vergangenheit an vielen Wasserfallprojekten und in letzter Zeit an vielen Ad-hoc- und agilen Projekten gearbeitet habe, gibt es eine Reihe von Design-Artefakten, die ich gerne erstelle, obwohl ich nicht oft genug betonen kann, dass dies wirklich von den Details des Projekts abhängt (Methodik/Teamstruktur/Zeitskala/Werkzeuge usw.).

Für eine allgemeine, serverbasierte "Unternehmensanwendung" würde ich mir ein Minimum in dieser Richtung wünschen:

  • Ein detailliertes Dokument zum funktionalen Entwurf (auch Spezifikation genannt). Im Allgemeinen etwas nach dem Muster von Joel s'. WhatsTimeIsIt-Beispielspezifikation Allerdings wahrscheinlich mit einigen UML-Use-Case-Diagrammen.
  • Ein Dokument für den technischen Entwurf von Software. Nicht unbedingt detailliert für eine 100%ige Systemabdeckung, aber detailliert in allen Schlüsselbereichen und mit allen Designentscheidungen. Da ich ein kleiner UML-Freak bin, wäre es schön, viele Bilder in Form von Paketdiagrammen, Komponentendiagrammen, Klassendiagrammen für die wichtigsten Funktionen und wahrscheinlich auch einige Sequenzdiagramme zu sehen.
  • Ein Dokument zur Planung der Infrastruktur. Wahrscheinlich mit einem UML-Bereitstellungsdiagramm für die konzeptionelle Entwicklung und vielleicht einem Netzwerkdiagramm für etwas Physisches.

Wenn ich von einem Dokument spreche, kann jedes der oben genannten Dokumente in mehrere Dokumente aufgeteilt oder vielleicht in einem Wiki oder einem anderen Tool gespeichert werden.

Was ihre Nützlichkeit angeht, so war es immer meine Philosophie, dass ein Entwicklungsteam in der Lage sein sollte, eine Anwendung an ein Supportteam zu übergeben, ohne seine Telefonnummern weitergeben zu müssen. Wenn aus den Design-Artefakten nicht klar hervorgeht, was die Anwendung tut, wie sie es tut und wo sie es tut, dann wissen Sie, dass das Support-Team der Anwendung die gleiche Sorgfalt und Aufmerksamkeit schenken wird wie einem tollwütigen Hund.

Ich sollte erwähnen, dass ich nicht die Praxis rechtfertige, Software von einem Entwicklerteam an ein Supportteam zu übergeben, sobald sie fertig ist. fertig Ich will damit nur sagen, dass es möglich sein sollte, wenn die Unternehmensleitung dies wünscht.

1voto

Eric Z Beard Punkte 36325

Die Entwürfe ändern sich während der Entwicklung und danach so stark, dass die meisten meiner sorgfältig erstellten Dokumente in der Versionsverwaltung verrotten und eher hinderlich als hilfreich sind, sobald der Code in Produktion ist. Ich betrachte Designdokumente als notwendig für eine gute Kommunikation und zur Klärung Ihrer Gedanken während der Entwicklung, aber danach ist es eine Herkulesaufgabe, sie richtig zu pflegen.

Ich mache Fotos von Whiteboards und speichere die JPEGs in der Versionsverwaltung. Das sind einige meiner besten Design-Dokumente!

1voto

Leigh Caldwell Punkte 9608

In unserem Modell (das ziemlich spezifisch für Geschäftsprozessanwendungen ist) umfassen die Design-Artefakte:

  • ein Domänen-Datenmodell, mit Kommentaren zu jeder Entität und jedem Attribut
  • eine Eigenschaftsdatei, in der alle Änderungs- und Erstellungsauslöser für jede Entität, berechnete Attribute, Validierer und andere Geschäftslogik aufgeführt sind
  • eine Reihe von Bildschirmdefinitionen (View-Modell)

Aber zählen diese wirklich als Design-Artefakte? Unser Rahmen ist so gestaltet, dass diese Definitionen verwendet werden, um den eigentlichen Code des Systems zu generieren, also gehen sie vielleicht über das Design hinaus.

Aber die Tatsache, dass sie eine doppelte Funktion haben, ist sehr wirkungsvoll, da sie per Definition immer auf dem neuesten Stand und mit dem Code synchronisiert sind.

1voto

Matt Dillard Punkte 14449

Dies ist kein Entwurfsdokument im eigentlichen Sinne, sondern unser Einheitstests dienen dem doppelten Zweck, zu "beschreiben", wie der von ihnen getestete Code funktionieren soll. Das Schöne daran ist, dass sie nie veraltet sein da unsere Unit-Tests bestehen müssen, damit unser Build erfolgreich ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X