Diagram

Bra programmerare planerar innan de kodar. Diagram hjälper dig att tänka igenom ett problem, kommunicera lösningar till andra och dokumentera hur ett system är uppbyggt.

Ett diagram är inte ett konstverk — det är ett verktyg för att tänka och prata. Ett suddigt diagram på en whiteboard som får teamet att förstå varandra är värt mer än ett perfekt diagram som ingen tittar på.

Vilket diagram ska jag välja?

Börja med frågan: vad vill jag visa? Nästan alla diagram i programmering svarar på en av fyra frågor.

Beslutsträd för att välja diagram: logik och flöde, samarbete över tid, struktur, eller system och data, med föreslagna diagramtyper under varje gren Vad vill jag visa? Logik och stegsteg och beslut Samarbetevem anropar vem? Strukturvad finns? System och datavar körs det? Flödesschema Aktivitetsdiagram Tillståndsdiagram Sekvensdiagram Use case-diagram Klassdiagram ER-diagram Paketdiagram Arkitektur (C4) Nätverksdiagram Dataflödesdiagram Driftsättning Ritar du för en kund eller ett team snarare än för kod? Se projektmetodik-boken.
Jag vill visa…VäljTyp
Stegen och besluten i en algoritmFlödesschema—
Ett arbetsflöde med flera ansvariga eller parallella stegAktivitetsdiagramUML, beteende
Vilka lägen ett objekt kan vara i och vad som byter lägeTillståndsdiagramUML, beteende
Vem som anropar vem, i vilken ordningSekvensdiagramUML, interaktion
Vad användare ska kunna göra med systemetUse case-diagramUML, beteende
Klasser, fält, metoder och relationerUML-klassdiagramUML, struktur
Tabeller och relationer i en databasER-diagramDatamodell
Hur systemet är uppdelat i delar — från helhet till komponentArkitekturdiagramC4, block, komponent, paket, driftsättning
Servrar, nät, brandväggar och molnNätverksdiagramInfrastruktur
Vart data tar vägen genom systemetDataflödesdiagramDFD

UML — en familj, inte ett diagram

Många av diagrammen här är UML (Unified Modeling Language), en standard med 14 diagramtyper. Ingen ritar alla. De delas in i två grupper:

Strukturdiagram — hur det ser utBeteendediagram — hur det beter sig
Klassdiagram, paketdiagram, komponentdiagram, driftsättningsdiagram, objektdiagramAktivitetsdiagram, tillståndsdiagram, use case-diagram, sekvensdiagram (och övriga interaktionsdiagram)

I praktiken räcker klass-, sekvens-, aktivitets-, tillstånds- och use case-diagram långt.

Tre tumregler

  1. Ett diagram — en fråga. Försöker du visa allt i samma bild visar du ingenting.
  2. Rita för läsaren. En utvecklare behöver metodnamn; en kund behöver inte det.
  3. Skissa först, snygga till sen. Papper och penna är det snabbaste diagramverktyget som finns.

Sidor i detta avsnitt

SidaInnehåll
FlödesschemanRita logiken innan du kodar — beslut, loopar, pseudokod
UML-klassdiagramVisualisera klasser, fält, metoder och relationer
SekvensdiagramAnrop och svar mellan objekt, i tidsordning
AktivitetsdiagramArbetsflöden med simbanor och parallella steg
TillståndsdiagramLägen och övergångar — t.ex. en orders livscykel
Use case-diagramAktörer och vad de vill göra med systemet
ER-diagramDatabasens entiteter, nycklar och kardinalitet
ArkitekturdiagramBlock, C4, komponenter, paket och driftsättning
NätverksdiagramKlienter, servrar, nätverk och moln
DataflödesdiagramHur data flödar mellan processer och lager