Unified Modeling Language

Unified Modeling Language (UML) är ett objektorienterat generellt språk för modellering av alla typer av system. Språket används främst inom programvarukonstruktion men är även användbart inom andra områden som exempelvis modellering av affärsprocesser med mera. Genom att skapa en modell av systemet som skall konstrueras blir det enklare att förstå och bygga det.

Historik 
UML tog form i oktober 1994 då Grady Booch från Rational Software, James Rumbaugh från General Electric och Ivar Jacobson från Objectory gick samman och började samarbeta för att renodla metodiker till något de kallade "Unified Method".  Dessa tre hade tidigare framfört sina egna designmetodiker, men gick alltså samman och skapade UML, som snabbt blev en Object Management Group-standard.

Metodik 
UML ger systemutvecklare, programvarukonstruktörer, testingenjörer och kunder en visuell representation av det system som skall utvecklas. UML är vanligt vid objektorienterad programmering, och flera utvecklingsverktyg kan generera källkodsstubbar och/eller körbar kod direkt ur UML-modellen.

Notation och diagramtyper 
UML definierar notation/diagram för modeller användbara för kravmodellering, analys, design och implementation av IT/datasystem:
 Användningsfallsmodeller, som visar användare av systemet (så kallade aktörer) och funktionalitet i form av användningsfall.
 Klassmodeller som presenterar begrepp (klasser) och deras inbördes relationer. Klasser kapslar in attribut (datavärden) och tillhandahåller metoder som kan anropas. Klasser kan grupperas i paket för att öka översiktligheten.
 Interaktionsdiagram som visar hur objekt, som är förekomster av klasser, samverkar dynamiskt. Detta visas med hjälp av sekvensdiagram (som har svenskt ursprung inom Ericsson-sfären) eller kommunikationsdiagram. Ett kommunikationsdiagram kan användas för att visa hur man implementerar ett användningsfall. Kommunikationsdiagram hette i tidigare versioner av UML (tom 1.5) samarbetsdiagram.
 Tillståndsdiagram som visar hur en tillståndsmaskin arbetar, dvs vilka tillstånd och tillståndsövergångar som är tillåtna.
 Aktivitetsdiagram som kan visa flöden av aktiviteter, till exempel hur en verksamhets- eller tillverkningsprocess utförs. Aktivitetsdiagram är en kraftfull mekanism för att komplettera användningsfallsbeskrivningar.
 Deployment diagram som visar vilka noder som finns i systemet eller i ett nätverk av system och vilka komponenter som finns allokerade till varje nod. Diagrammet visar även vilka noder som samarbetar och vilka protokoll som används.

Vidareutveckling 
UML ägs och vidareutvecklas av mjukvaruindustrin tillsammans i OMG, Object Management Group; användning av standarden är gratis även för leverantörer av UML-baserade programvaruutvecklingsverktyg.
UML 2.0 är en utökad version som lanserades stegvis mellan 2003 och 2005. För första gången sedan 1997 (då UML 1.0 blev en OMG-standard) har modellspråkets s.k. metamodell utökats (i standardiserar-kretsar kallas den infrastruktur) som beskriver korrekt UML i UML själv. Den här gången var det över 50 företag världen över som samarbetat i uppdateringen av standarden, där ett skånskt företag haft en samordnande roll. I och med version 2.0 innehåller UML det som behövs för att i framtiden programmera i diagram i stället för programrader, en övergång som för merparten av industrin förväntas ta ungefär lika många år som när kompilatorer för programspråk som var inspirerade av engelska ersatte assembler.
Nya diagramtyper:
 Composite Structure för detaljerad bild av en kodkomponents gränssnitt utåt respektive dess inre hierarkiska struktur.
 Interaction Overview ett aktivitetsdiagram där varje steg (action) är ett sekvensdiagram.
 Timing detaljerade tidskrav i grafisk form, sätter gränser för hur lång tid olika interaktioner i ett sekvensdiagram respektive tillstånd i ett tillståndsdiagram får pågå. Ursprung inom hårdvara.
 Communication f.d. Collaboration. På väg att trängas ut av sekvensdiagram, som blivit kraftigt utökade i UML 2.0.
 Package ger en bild av systemets arkitektur på en övergripande nivå (hade använts informellt i UML 1.x). Användbara både i kombination med klasser och utan.
 Object exemplifierar möjliga instanser givet ett klassdiagram (hade använts informellt i UML 1.x). Användbara i enstaka fall, till exempel där ett klassdiagram ensamt kan förleda läsaren att tro att det handlar om rekursion utan att så är fallet.

Efter OMG:s samgående med BPMI lär nyheter gälla dels affärsprocessmodellering, dels affärsregler (som OMG:s intressegrupp Business Rules redan tidigare försökt få mer grafiska/diagrambaserade).

Se även 
 XMI

Källor

Externa länkar 
 UML
 UML Zone

Standarder och konventioner