Informationsarkitektens bokhylla – del 5: En kort guide till standardspråket för objektmodellering

Martin Fowler och hans bok UML Distilled third edition

Som informationsarkitekt är det bra att kunna UML. Dels för att det är ett vanligt modelleringsspråk i våra organisationer men också för att det med sina tretton olika diagramtyper ger mig en bredare verktygslåda. Jag vill rekommendera den första boken om UML som kom ut, efter att språket togs fram för ett kvartssekel sedan.

/Peter Tallungs, IRM 2023-05-17

Om UML

UML står för Unified Modeling Language, ett visuellt standardspråk för objektorienterad programvarudesign som togs fram under senare halvan av 90-talet. Tidigare hade man ritat på många olika sätt vilket uppfattades som förvirrande. OMG (Object Management Group) ratificerade UML som branschstandard för it-branschen sommaren 1997.

UML var tänkt att täcka alla behov av ett visuellt språk inom branschen och omfattar för detta tretton olika typer av diagram med sina respektive symboler.

Den bästa boken om UML

Den första boken om UML, utöver själva standardspecifikationen, var Martin Fowlers UML Distilled – A Brief guide to the Standard Object Modeling Language.

Fowlers bok finns nu i sin tredje version och är fortfarande den bästa, eller till och med den enda riktigt bra boken om UML. I varje fall enligt mig och många andra.

Boken är tunn, endast 175 sidor, men täcker ändå det mesta du behöver veta om UMLs olika diagramtyper. Och mer därtill! För Fowler lyckas också få med ett kapitel om modern systemutvecklingsprocess. Jag minns att det var där jag för första gången mötte termen ”Refactoring” som jag redan tyckte jag tillämpade men jag inte visste hade ett namn.

Bokens innehåll

Boken har 18 kapitel, vilka jag beskriver nedan.

Chapter 1: Introduction (18 sidor)

Vad UML är, hur man kan använda UML, hur UML togs fram, samt några råd om hur man kan lära sig modelleringsspråket.

Chapter 2: Development Process (15 sidor)

Kort introduktion till modern systemutvecklingsprocess. Texten redogör för motsatspar som iterativ process och vattenfallsprocess, samt prediktiv och adaptiv planering. Begrepp som agil process och modellmönster introduceras. Även kravanalys, programvarudesign och dokumentation nämns.

Chapter 3: Class Diagrams – The Essentials (17 sidor)

Klassdiagram, som är det vanligast förekommande UML-diagrammet, introduceras. Klassdiagram är en direkt motsvarighet till de ER-diagram vi informationsmodellerare är vana med. Den ruta som kallas entitet i ett ER-diagram kallas klass i UML, vilket torde vara ett naturligt begrepp även för informationsmodellerare om man tänker på att rutan faktiskt representerar en klass av företeelser.

För dig som informationsmodellerar:

Klassdiagram går utmärkt att använda och används ofta för att rita informationsmodeller. I artikeln ”Vilken notation är bäst?” har jag jämfört olika notationer för informationsmodeller, och UMLs klassmodell blev en av vinnarna.
I artikeln ”Saker jag stjäl från UML” tar jag upp några symboler från UMLs klassdiagram som jag tycker är värdefulla även om man inte använder UML i övrigt.

Chapter 4: Sequence Diagrams (11 sidor)

Sekvensdiagram, som är en av de två typer av interaktionsdiagram som finns med i UML introduceras. (Den andra typen är Kommunikationsdiagram). Sekvensdiagram visar hur olika parter (objekt, komponenter eller vilka företeelser som helst egentligen) interagerar inom ett scenario genom att skicka meddelanden till varandra. Diagrammet visar exempel på sekvensen av meddelanden fram och tillbaka, men inte beteendet mer än så.

För dig som informationsmodellerar:

Ibland har jag modellerat innehållet i olika meddelanden i anrop och svar av tjänster mellan organisationer eller organisationsdelar. Då har jag också varit tvungen att definiera vilka olika anrops- och svarsmeddelanden som behövs. Jag har då använt sekvensdiagram för att beskriva detta.

Chapter 5: Class Diagrams: Advanced Concepts (21 sidor)

Beskriver bland annat olika typer av relationer mellan klasser som aggregat (ofylld romb) och komposition (fylld romb), klassificerade associationer, generalisering, associationsklasser och uppräkningar.

För dig som informationsmodellerar:

Saker som komposition, generalisering och uppräkningar är i högsta tillämpligt för informationsmodeller. De andra konstruktionerna mindre så.

Chapter 6: Object Diagrams (2 sidor)

Objektdiagram visar exempel på specifika förekomster av klasser, det som kallas ”objekt” i UML. Inom informationsmodellering kan det heta instansdiagram. Jag säger ofta förekomstdiagram, men det är nog en term jag hittat på själv.

För dig som informationsmodellerar:

Det är en mycket användbar form av diagram som borde användas mer av informationsmodellerare, och som då borde ses som en ses som en integrerad del av en informationsmodell. Läs mer i artikeln ”Modellera strukturer med instansdiagram”.

Chapter 7: Package Diagrams (7 sidor)

Paketdiagram kan användas för att strukturera ett större system med hundratals klasser i paket.

Chapter 8: Deployment Diagrams (2 sidor)

Deployment-diagram visar den fysiska layouten av ett informationssystem, vilken programvara som körs på vilken hårdvara.

Chapter 9: Use Cases (7 sidor)

Användningsfallsmodellering (Use Case Modelling) är en välkänd metod för kravanalys. Användningsfall sticker ut på flera sätt i UML. För det första är det en i huvudsak textuell beskrivningsform. Det finns visserligen användningsfallsdiagram, men de spelar en underordnad roll gentemot den strukturerade texten i en användningsfallsbeskrivning. För det andra är användningsfallsmodellering en hel metod, till skillnad från de andra sakerna i UML som bara är beskrivningsformer. För det tredje är användningsfall nog den del av UML som är mest känd utanför UML i övrigt och som på många sätt står på egna ben.

Användningsfallsmodellering är en metod som har varit mycket spridd men som har kommit i skymundan på senare år, måhända orättvist. Jag tycker att den bästa boken om användningsfall är Writing Effective Use Cases av Alistair Cockburn. Kanske den enda bra boken i ämnet, i alla fall enligt mig.

Chapter 10: State Machine Diagrams (9 sidor)

Tillståndsdiagram, eller State charts, har länge haft en användning bland ingenjörer för mer tekniska tillämpningar. Jag vill se tillståndsdiagram som integrerade delar av en informationsmodell. Det finns gott om litteratur om tillståndsdiagram, fast de exempel som används nästan alltid handlar om tekniska tillämpningar. Min erfarenhet är att tillståndsdiagram är mycket användbart även för verksamhetsmodellering. Då för att analysera och beskriva verksamhetsregler som omfattar tillstånd, tillståndsövergångar, händelser och händelseorsaker för verksamhetsobjekt som kunder, produkter, avtal med mera.

För dig som informationsmodellerar:

Detta är en form av diagram som borde användas mer av informationsmodellerare och som då borde ses som en ses som en integrerad del av en informationsmodell. Se artikeln ”Modellera livscykler med tillståndsdiagram”.

Chapter 11: Activity Diagrams (13 sidor)

Aktivitetsdiagram används för att beskriva procedurell logik, verksamhetsprocesser och arbetsflöden. De är således analoga med flödesscheman och processmodeller.

Chapter 12: Communication Diagrams (4 sidor)

(Communication diagrams kallades i tidiga versioner av UML för “Collaboration Diagrams”)

Kommunikationsdiagram, en av de två typer av interaktionsdiagram som finns med i UML introduceras. (Den andra typen är Sekvensdiagram). Kommunikationsdiagram visar i likhet med sekvensdiagram hur olika parter (objekt, komponenter eller vilka parter som helst egentligen) interagerar inom ett scenario genom att skicka meddelanden till varandra. Skillnaden mot sekvensdiagram är att sekvensen i tid inte framhävs på samma sätt.

Chapter 13: Composite Struktures (4 sidor)

Komposita strukturer är ett senare tillägg till UML för att visa hur en klass i sig kan vara uppdelad i flera interna klasser.

Chapter 14: Component Diagrams (4 sidor)

Komponentdiagram visar komponenterna i ett system. En komponent är en del av ett system som kan införskaffas och uppgraderas självständigt.

Chapter 15: Collaborations (4 sidor)

Detta kapitel beskriver inte en särskild diagramtyp i UML utan visar hur man i UML kan visa hur olika delar av ett system samarbetar i ett scenario.

Chapter 16: Interaction Overview Diagrams (2 sidor)

Interaktionsöversikter innebär att man när så behövs för samman aktivitets- och sekvensdiagram i ett och samma diagram.

Chapter 17: Timing Diagrams (2 sidor)

Tidsdiagram visar tillstånd och tillståndsförändringar för en eller flera objekt utefter en tidslinje med tider angivna. Användbart för hårdvarukonstruktion.

Chapter 18: Changes between UML Versions (9 sidor)

UML har kommit i flera versioner. Fowler har gjort en förteckning över skillnaderna för den som är intresserad.

Varför ska man läsa boken?

De olika UML-notationerna, i synnerhet klassmodeller, förekommer ofta i våra organisationer, särskilt för programkod, men ofta även för informationsmodeller. Det är viktigt att man som informationsmodellerare kan förstå de olika notationerna som används.

Jag tycker att det också ger en möjlighet att bredda sin verktygslåda för att informationsmodellerna ska kunna representera viktiga begrepp och aspekter av den information som behöver hanteras. Saker som man annars saknar verktyg för. I synnerhet gäller det objektdiagram och tillståndsdiagram.

Vad tänker du om det jag skriver?

Välkommen att maila mig på peter.tallungs(at)irm.se eller kommentera artikelns post på IRM:s linkedin.

Vill du prenumerera på denna artikelserie? Det innebär att du får ett nyhetsbrev, samtidigt som vi publicerar en ny artikel i ämnet informationsarkitektur, med länk till den senaste artikeln. Skriv ett mail till info@irm.se med namn och e-postadress. Skriv IA-artikelserie i ämnesraden.

Peter Tallungs

23.05.17