UML ( Engelsk Unified Modeling Language - et unified modeling language) er et grafisk beskrivelsessprog til objektmodellering inden for softwareudvikling , til modellering af forretningsprocesser , systemdesign og visning af organisationsstrukturer .
UML er et generelt sprog, det er en åben standard , der bruger grafisk notation til at skabe en abstrakt model af et system kaldet en UML-model . UML blev skabt til at definere, visualisere, designe og dokumentere, dybest set, softwaresystemer . UML er ikke et programmeringssprog , men kodegenerering er mulig baseret på UML-modeller .
UML giver også softwareudviklere mulighed for at blive enige om grafisk notation for at repræsentere almindelige begreber (såsom klasse , komponent , generalisering , aggregering og adfærd ) og at fokusere mere på design og arkitektur .
Forudsætningerne for fremkomsten af UML -modelleringssproget blev identificeret i forbindelse med den hurtige udvikling i anden halvdel af det 20. århundrede af objektorienterede programmeringssprog ( Simula 67 , Smalltalk , Objective C , C++ , etc.) . På grund af den løbende komplikation af de skabte softwareprodukter er der behov for at tage højde for flere og flere nye funktioner i sprog og udviklingsværktøjer i analysen, formuleringen af krav og i processen med at designe softwareapplikationer. For eksempel voksede antallet af objektorienterede værktøjer i løbet af en kort periode fra 1989 til 1994 fra et dusin til mere end halvtreds. Men mange udviklere fandt det svært at vælge et modelleringssprog, der fuldt ud ville opfylde alle deres behov. Som et resultat er der opstået en ny generation af udviklingsmetoder, blandt hvilke Booch-metoden , skabt af Jacobson Object-Oriented Software Engineering ( OOSE ) og udviklet af Rambaud Object Modeling Technique ( OMT ), har vundet særlig popularitet. Ud over dem var der andre færdiggjorte teknologier, såsom Fusion , Shlaer-Mellor og Coad-Yourdon , dog havde de alle ikke kun fordele, men også betydelige ulemper [1] .
I 1994 gik Grady Booch og James Rumbaugh , der arbejdede for Rational Software , sammen om at skabe et nyt objektorienteret modelleringssprog. De tog modelleringsmetoderne fra Object-Modeling Technique og Booch som grundlag for sproget . OMT var fokuseret på analyse, mens Booch var fokuseret på at designe softwaresystemer. I oktober 1995 blev en foreløbig version 0.8 af Unified Method frigivet . I efteråret 1995 sluttede Ivar Jakobson , forfatteren til Object-Oriented Software Engineering - OOSE, sig til Rational . OOSE leverede fremragende muligheder for at specificere forretningsprocesser og analysere krav gennem use cases . OOSE er også blevet integreret i den forenede metode.
På dette stadium overgik hovedrollen i organiseringen af UML-udviklingsprocessen til OMG- konsortiet (Object Management Group) . Designteamet hos OMG, som også omfattede Butch, Rambeau og Jacobson ("de tre amigos"), udgav UML version 0.9 og 0.91 specifikationer i juni og oktober 1996 .
Version | Overtagelsesdato |
---|---|
1.1 | november 1997 [2] |
1.3 | marts 2000 [3] |
1.4 | september 2001 [4] |
1.4.2 | juli 2004 [3] |
1.5 | marts 2003 [5] |
2.0 | juli 2005 [6] |
2.1 | formelt ikke accepteret [3] |
2.1.1 | august 2007 [7] |
2.1.2 | november 2007 [8] |
2.2 | februar 2009 [9] |
2.3 | maj 2010 [10] |
2.4 beta 2 | marts 2011 [11] |
2.5 | juni 2015 [12] |
2.5.1 | december 2017 [13] |
I kølvandet på den stigende interesse for UML har virksomheder som Digital Equipment Corporation , Hewlett-Packard , i-Logix, IntelliCorp, IBM , ICON Computing, MCI Systemhouse, Microsoft , Oracle Corporation , Rational Software sluttet sig til udviklingen af nye versioner af sprog i UML Partners -konsortiet , Texas Instruments og Unisys . Samarbejdet resulterede i UML 1.0-specifikationen, udgivet i januar 1997 . Den blev fulgt i november samme år af version 1.1, som indeholdt notationsforbedringer samt nogle semantiske udvidelser.
Efterfølgende udgivelser af UML har inkluderet version 1.3, 1.4 og 1.5, udgivet i henholdsvis juni 1999 , september 2001 og marts 2003 .
UML 1.4.2 er blevet vedtaget som den internationale standard ISO / IEC 19501:2005 [12] .
Den formelle specifikation for UML 2.0 blev offentliggjort i august 2005. Sprogets semantik er blevet væsentligt forfinet og udvidet for at understøtte Model Driven Development- MDD-metoden . Den seneste version af UML 2.5 blev offentliggjort i juni 2015.
UML 2.4.1 er blevet vedtaget som den internationale standard ISO / IEC 19505-1, 19505-2 [12] .
Følgende typer diagrammer bruges i UML (for at eliminere tvetydighed er notationen på engelsk også angivet):
Strukturdiagrammer:
Adfærdsdiagrammer:
|
Strukturelle diagrammer:
Adfærdsdiagrammer:
|
Strukturen af UML 2.3-diagrammer kan repræsenteres i et UML-klassediagram:
Klassediagram (Klassediagram) - et statisk strukturdiagram, der beskriver systemets struktur, der viser systemets klasser, deres attributter, metoder og afhængigheder mellem klasser.
Der er forskellige synspunkter på konstruktionen af klassediagrammer, afhængigt af formålet med deres anvendelse:
Komponentdiagram (Komponentdiagram) - et statisk strukturdiagram, viser opdelingen af et softwaresystem i strukturelle komponenter og relationer (afhængigheder) mellem komponenter . Fysiske komponenter kan være filer, biblioteker, moduler, eksekverbare filer, pakker osv.
Sammensat strukturdiagram ( Composite structure diagram) - et statisk strukturdiagram, der demonstrerer den interne struktur af klasser og, hvis det er muligt, samspillet mellem elementer (dele) af klassens interne struktur.
En underart af sammensatte strukturdiagrammer er samarbejdsdiagrammer (Collaboration diagram, introduceret i UML 2.0), som viser klassernes roller og interaktioner inden for et samarbejde. Samarbejde er praktisk ved modellering af designmønstre .
Sammensatte strukturdiagrammer kan bruges sammen med klassediagrammer.
Implementeringsdiagram ( implementeringsdiagram ) - bruges til at modellere arbejdsknudepunkter (hardware, engelsk node ) og artefakter , der er installeret på dem. UML 2 implementerede artefakter på noder , mens UML 1 implementerede komponenter på noder. En manifestationsafhængighed etableres mellem et artefakt og det logiske element (komponent), som det implementerer.
Objektdiagram - viser et helt eller delvist snapshot af det simulerede system på et givet tidspunkt. Objektdiagrammet viser klasseforekomster (objekter) af systemet med de aktuelle værdier af deres attributter og links mellem objekter.
Pakkediagram (Pakkediagram) - et strukturdiagram, hvis hovedindhold er pakker og forholdet mellem dem. Der er ingen streng adskillelse mellem forskellige strukturelle diagrammer, så dette navn tilbydes kun for nemheds skyld og har ingen semantisk betydning (pakker og pakkediagrammer kan forekomme på andre strukturelle diagrammer). Pakkediagrammer tjener først og fremmest til at organisere elementer i grupper efter en eller anden egenskab for at forenkle strukturen og organiseringen af arbejdet med systemmodellen.
Aktivitetsdiagram - et diagram , der viser nedbrydningen af en aktivitet i dens bestanddele. En aktivitet er en specifikation af eksekverbar adfærd i form af en koordineret sekventiel og parallel udførelse af underordnede elementer — indlejrede aktiviteter og separate handlinger ( engelsk handling ), indbyrdes forbundet af flows, der går fra udgangene fra en node til input fra en anden.
Aktivitetsdiagrammer bruges til modellering af forretningsprocesser, teknologiske processer, seriel og parallel computing.
En analog af aktivitetsdiagrammer er algoritmeskemaer i henhold til GOST 19.701-90 og drageskemaer .
Automatdiagram (State machine diagram, finite state machine diagram , state diagram ) - et diagram, der viser en finite state maskine med simple tilstande , overgange og sammensatte tilstande.
En tilstandsmaskine er en specifikation af sekvensen af tilstande, som et objekt eller interaktion passerer igennem som reaktion på begivenhederne i dets liv, såvel som objektets reaktion på disse begivenheder. En tilstandsmaskine er knyttet til et kildeelement ( klasse , samarbejde eller metode) og tjener til at definere adfærden af dens instanser.
En analog af automatdiagrammer (tilstandsdiagrammer) er dragediagrammer .
Et use case diagram eller et use case diagram (Use case diagram) er et diagram, der viser de relationer, der eksisterer mellem aktører og use cases .
Hovedformålet er at levere et enkelt værktøj, der giver kunden, slutbrugeren og udvikleren mulighed for at diskutere systemets funktionalitet og adfærd sammen.
Kommunikations- og sekvensdiagrammer er transitive , de udtrykker interaktion, men de viser det på forskellige måder og kan med en tilstrækkelig grad af nøjagtighed konverteres fra den ene til den anden.
Kommunikationsdiagram (Kommunikationsdiagram, i UML 1.x - samarbejdsdiagram , samarbejdsdiagram ) - et diagram , der afbilder interaktioner mellem dele af en sammensat struktur eller samarbejdsroller. I modsætning til sekvensdiagrammet angiver kommunikationsdiagrammet eksplicit forholdet mellem elementer (objekter), og bruger ikke tid som en separat dimension (kaldende sekvensnumre bruges).
Sekvensdiagram - et diagram , der viser interaktionerne mellem objekter, ordnet efter tidspunktet for deres manifestation. Det skildrer især de objekter, der deltager i interaktionen, og rækkefølgen af beskeder, som de udveksler.
Samarbejdsdiagram - Denne type diagram giver dig mulighed for at beskrive interaktionerne mellem objekter, abstrahere fra rækkefølgen af meddelelser, der sendes. Denne type diagram afspejler i en kompakt form alle de modtagne og transmitterede meddelelser fra et bestemt objekt og typerne af disse meddelelser.
Fordi sekvens- og samarbejdsdiagrammer er forskellige visninger af de samme processer, giver Rational Rose dig mulighed for at oprette samarbejdsdiagrammer fra sekvensdiagrammer og omvendt, og synkroniserer også automatisk disse diagrammer.
Et interaktionsoversigtsdiagram er en type aktivitetsdiagram, der inkluderer sekvensdiagramfragmenter og kontrolflowkonstruktioner.
Denne type diagram inkluderer Sekvensdiagram (diagrammer over sekvenser af handlinger) og Samarbejdsdiagram (samarbejdsdiagrammer). Disse diagrammer giver dig mulighed for at overveje interaktionen mellem objekter i systemet, der oprettes, fra forskellige synsvinkler.
Timingdiagram - en alternativ repræsentation af sekvensdiagrammet, der eksplicit viser tilstandsændringerne på livslinjen med en given tidsskala. Kan være nyttig i realtidsapplikationer.
På trods af at UML er en ret udbredt og brugt standard, bliver den ofte kritiseret på grund af følgende mangler:
Unified Modeling Language | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||
| |||||||||||
|
Softwareudvikling | |
---|---|
Behandle | |
Koncepter på højt niveau | |
Vejbeskrivelse |
|
Udviklingsmetoder _ | |
Modeller | |
Bemærkelsesværdige tal |
|
ISO standarder | |
---|---|
| |
1 til 9999 |
|
10000 til 19999 |
|
20000+ | |
Se også: Liste over artikler, hvis titler begynder med "ISO" |