|
Unified Modelling Language (UML) er en standard i regi af brancheorganisationen Object Management Group, som specificerer semantik og notation for et objektorienteret modelleringssprog. Formålet med standardiseringen er at lave et umiddelbart anvendeligt, visuelt objektorienteret modelleringssprog med en formel basis og med indbyggede udvidelsesmuligheder, som kan være fundament for udvikling af objektorienterede systemudviklingsværktøjer, der dermed lettere kan udvikles, anvendes, kombineres og integereres. Implementering af UML understøttes desuden af Meta Object Facility (MOF) standarden.
Standardiseringen sker som en reaktion mod fragmenteringen indenfor objektorienterede systemudviklingsmetodologier, -metoder og -værktøjer, som omfatter ensartede men alligevel mere eller mindre forskellige og løst formulerede objektorienterede koncepter og modelleringssprog. Det standardiserede modelleringssprog er lavet med udgangspunkt i tre af de førende, mest udbredte objektorienterede systemudviklingsmetodologiers modelleringssprog af Booch, Rumbaugh og Jacobson.
UML standarden omfatter en række pakker der hver især specificerer forskellige objektorienterede koncepter. De primære pakker specificerer en basis objektmodel med centrale objektorienterede koncepter som objekter, klasser, nedarvning og specialisering samt basis data typer for attributter. Derudover specificerer sekundære pakker en række forskellige objektorienterede koncepter som for eksempel Use Case og State Machine. For at UML også skal kunne rumme ikke-standardiserede koncepter (selvudviklede eller fra andre systemudviklingsmetodologier) angiver en primær Extension pakke desuden udvidelsesmuligheder af modelleringssproget i form af pseudo klasser og attributter, som kan bruges til at definere nye modelelementer.
UML bærer præg af at være lavet med udgangspunkt i bestemte objektorienterede systemudviklingsmetodologier og programmeringssprog i form af de valgte modelelementer. Andre modellerings- og implementeringsalternativer som for eksempel data-flow diagrammer og ikke-"message passing" baserede programmeringssprog er udelukkede eller henvist til modellering som pseudo klasser og attributter uden egentlig egen semantik og notation, og hvis understøttelse i standard systemudviklingsværktøjer er meget begrænset. De understøttes eventuelt kun som rene diagrammeringselementer uden betydning ved for eksempel diagramvalidering og programkodegenerering. Mere omfattende understøttelse af udvidelser med egen semantik og notation ér dog identificeret som en mangel og bliver eventuelt medtaget i en senere version af UML.
Selvom UML er forsøgt begrænset til de centrale koncepter, er standarden dog rimeligt omfattende og kompleks, og gennemlæsning af specifikationerne efterlader ikke umiddelbart læseren med et klart indtryk af modellering med UML. UML specifikationerne er dog heller ikke rettet mod "almindelige" brugere, men omfanget og kompleksiteten af disse indikerer dog alligevel, hvor meget den "almindelige" bruger bevidst eller ubevidst skal kunne håndtere i forbindelse med UML modellering.
Med en formel modelleringssprog standard er der mange fordele for systemudvikling i form af fælles sprog og værktøjer som fundament for metodologier og metoder, men der er en risiko for at standardiseringen bremser for videre udvikling i det omfang at standarden ikke er "rigtig" og tilstrækkelig. Forhåbentligt vil UML kunne videreudvikles i takt med nye idéer, og idéen om et standardiseret fundament er dog i hvert fald interessant, og alternativet med mange forskellige, uforenelige metodologier, metoder, modelleringssprog og værktøjer er ikke attraktivt.
|