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.
| Jag vill visa… | Välj | Typ |
|---|---|---|
| Stegen och besluten i en algoritm | Flödesschema | — |
| Ett arbetsflöde med flera ansvariga eller parallella steg | Aktivitetsdiagram | UML, beteende |
| Vilka lägen ett objekt kan vara i och vad som byter läge | Tillståndsdiagram | UML, beteende |
| Vem som anropar vem, i vilken ordning | Sekvensdiagram | UML, interaktion |
| Vad användare ska kunna göra med systemet | Use case-diagram | UML, beteende |
| Klasser, fält, metoder och relationer | UML-klassdiagram | UML, struktur |
| Tabeller och relationer i en databas | ER-diagram | Datamodell |
| Hur systemet är uppdelat i delar — från helhet till komponent | Arkitekturdiagram | C4, block, komponent, paket, driftsättning |
| Servrar, nät, brandväggar och moln | Nätverksdiagram | Infrastruktur |
| Vart data tar vägen genom systemet | Dataflödesdiagram | DFD |
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 ut | Beteendediagram — hur det beter sig |
|---|---|
| Klassdiagram, paketdiagram, komponentdiagram, driftsättningsdiagram, objektdiagram | Aktivitetsdiagram, 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
- Ett diagram — en fråga. Försöker du visa allt i samma bild visar du ingenting.
- Rita för läsaren. En utvecklare behöver metodnamn; en kund behöver inte det.
- Skissa först, snygga till sen. Papper och penna är det snabbaste diagramverktyget som finns.
Sidor i detta avsnitt
| Sida | Innehåll |
|---|---|
| Flödesscheman | Rita logiken innan du kodar — beslut, loopar, pseudokod |
| UML-klassdiagram | Visualisera klasser, fält, metoder och relationer |
| Sekvensdiagram | Anrop och svar mellan objekt, i tidsordning |
| Aktivitetsdiagram | Arbetsflöden med simbanor och parallella steg |
| Tillståndsdiagram | Lägen och övergångar — t.ex. en orders livscykel |
| Use case-diagram | Aktörer och vad de vill göra med systemet |
| ER-diagram | Databasens entiteter, nycklar och kardinalitet |
| Arkitekturdiagram | Block, C4, komponenter, paket och driftsättning |
| Nätverksdiagram | Klienter, servrar, nätverk och moln |
| Dataflödesdiagram | Hur data flödar mellan processer och lager |