UML

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 5. september 2018; checks kræver 24 redigeringer .

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 .

Brug

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 design og arkitektur . 

Historie

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] .

Før UML 1.x

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 .

UML 1.x

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] .

UML 2.x

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] .

Diagrammer

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 (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 (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/sammensat strukturdiagram

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 ( 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

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 (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

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

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 .

Use Case Diagram (Use Case Diagram)

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

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.

Interaktionsoversigtsdiagram

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.

Synkroniseringsdiagram

Timingdiagram - en alternativ repræsentation af sekvensdiagrammet, der eksplicit viser tilstandsændringerne på livslinjen med en given tidsskala. Kan være nyttig i realtidsapplikationer.

Fordele ved UML

Kritik

På trods af at UML er en ret udbredt og brugt standard, bliver den ofte kritiseret på grund af følgende mangler:

Se også

Noter

  1. G. Butch, D. Rambeau, I. Jacobson. Kort historie om UML // Sprog UML. User's Guide = The Unified Modeling Language User's Guide. - 2. - M. : DMK Press, 2006. - S. 14. - 496 s. — ISBN 5-94074-334-X .
  2. UML-specifikation version 1.1 (OMG-dokument ad/97-08-11) Arkiveret 18. november 2018 på Wayback Machine 
  3. 1 2 3 OMG formelt frigivne versioner af UML Arkiveret 31. juli 2010 på Wayback Machine 
  4. Dokumenter forbundet med UML version 1.4 Arkiveret 10. maj 2011 på Wayback Machine 
  5. Dokumenter forbundet med UML version 1.5 Arkiveret 10. maj 2011 på Wayback Machine 
  6. Dokumenter forbundet med UML version 2.0 Arkiveret 9. januar 2010 på Wayback Machine 
  7. Dokumenter forbundet med UML version 2.1.1 Arkiveret 7. maj 2011 på Wayback Machine 
  8. Dokumenter forbundet med UML version 2.1.2 Arkiveret 6. juni 2011 på Wayback Machine 
  9. Dokumenter tilknyttet UML version 2.2 Arkiveret 17. april 2021 på Wayback Machine 
  10. Dokumenter forbundet med UML version 2.3 Arkiveret 7. juni 2011 på Wayback Machine 
  11. Dokumenter forbundet med UML Version 2.4 - Beta 2 Arkiveret 9. juni 2011 på Wayback Machine 
  12. 123 UML . _ _ Hentet 26. juni 2010. Arkiveret fra originalen 31. juli 2010.
  13. Om Unified Modeling Language Specification version 2.5.1 . www.omg.org. Hentet 10. september 2019. Arkiveret fra originalen 3. juli 2019.
  14. http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=130 Arkiveret 7. december 2008 på Wayback Machine ACM
  15. Slashdot | Koden er designet . Hentet 21. maj 2022. Arkiveret fra originalen 22. april 2009.
  16. Code as Design: Three Essays af Jack W. Reeves af Jack W. Reeves - udvikler.*, Udvikler Dot Star . Hentet 13. februar 2007. Arkiveret fra originalen 13. februar 2007.

Litteratur

Links