UML-diagrammer: Kjennetegn, diagram og typer

โšก Smart oppsummering

UML-diagrammer gir et standardisert visuelt sprรฅk for modellering av programvaresystemer, helping Utviklingsteam dokumenterer objektorienterte design, kommuniserer komplekse arkitekturbeslutninger tydelig og samkjรธrer alle prosjektets interessenter fรธr implementeringen starter.

  • ๐Ÿ“ Kjernedefinisjon: Unified Modeling Language er en ISO-anerkjent standard som bruker billeddiagrammer for รฅ representere objektorienterte design, strukturer og atferd i programvaresystemer.
  • ๐Ÿ›๏ธ To kategorier: UML-diagrammer er delt inn i strukturdiagrammer (statisk visning av komponenter) og atferdsdiagrammer (dynamisk visning av interaksjoner og arbeidsflyter).
  • ๐Ÿ—‚๏ธ Strukturdiagrammer: Klasse-, objekt-, pakke-, komponent- og distribusjonsdiagrammer representerer den statiske arkitekturen og forholdene mellom systemelementer.
  • โšก Atferdsdiagrammer: Aktivitets-, brukstilfelle- og tilstandsmaskindiagrammer fanger opp systemflyter, brukerinteraksjoner og tilstandsoverganger over tid.
  • ๐Ÿ› ๏ธ Verktรธy og AI: Verktรธy som StarUML, Visio og Lucidchart generere UML-diagrammer visuelt; AI-drevne verktรธy kan nรฅ generere nรธyaktige diagrammer automatisk fra beskrivelser i ren tekst eller kildekode.
  • ๐Ÿ“… Versjonshistorikk: UML har utviklet seg fra versjon 1.1 (1997) til 2.5.1 (2017), med hver utgivelse som legger til diagramtyper, forbedrer semantikken og forenkler spesifikasjonen.

UML-diagrammer

Programvaresystemer blir raskt komplekse, og team som ikke klarer รฅ visualisere arkitektur sliter med รฅ kommunisere designbeslutninger. UML gir en delt visuell notasjon fรธr kode skrives.

Hvorfor bruke UML? Komplett historie

1990-tallet var รฆraen for utvikling av objektorienterte sprรฅk som f.eks C++. Disse objektorienterte sprรฅkene ble brukt til รฅ lage komplekse, men overbevisende systemer.

Ettersom systemene som ble utviklet var kompliserte รฅ forstรฅ, fรธrte det til design- og analyseproblemene som ble mรธtt etter utrullingen av systemet. Det var vanskelig รฅ forklare systemet for andre.

Sรฅ snart UML ble introdusert, ble det gjort mange spillendrende eksperimenter og tilnรฆrminger for รฅ forenkle slike vanskelige oppgaver med รฅ analysere systemet.

UML er et objektorientert enhetlig modelleringssprรฅk. Den ble oppfunnet av briljante programvareingeniรธrer Grady Booch, Ivar Jacobson og James Rumbaugh fra Rational software i lรธpet av 1994 og 1995. Den var under utvikling frem til 1996.

Hver av UML-oppfinnerne, nemlig Grady Booch, Ivar Jacobson og James Rumbaugh, hadde en fantastisk idรฉ for รฅ designe et sprรฅk som vil redusere kompleksiteten.

  • Boochs metode var veldig fleksibel รฅ jobbe med under design og konstruksjon av objekter.
  • Jacobsons metode ga en fin mรฅte รฅ omgรฅ use-cases. Den har ogsรฅ en kraftig tilnรฆrming for design pรฅ hรธyt nivรฅ.
  • Rumbaughs metode viste seg รฅ vรฆre svรฆrt nyttig under hรฅndtering av sensitive systemer.

Later pรฅ ble atferdsmodeller og statsoversikter introdusert i UML som ble oppfunnet av David Harel.

UML ble anerkjent som en standard av Object Management Group (OMG) i 1997. Object Management Group er ansvarlig for รฅ administrere UML helt siden den ble tatt i bruk som standard.

I 2005 godkjente International Organization for Standardization UML som en ISO-standard. Den brukes i ulike bransjer for รฅ lage objektorienterte modeller.

Den siste UML-versjonen er 2.5.1 som ble utgitt i desember 2017.

UML-versjoner

Dato Versjon Om oss
november 1997 1.1 UML ble adoptert av Object Management Group. Dette var den fรธrste versjonen av UML.
mars 2000 1.3 En mindre oppgradering ble gjort til den eksisterende modellen med bemerkelsesverdige endringer i semantikk, notasjoner, og metamodeller av UML.
september 2001 1.4 Dette var perioden for den store oppdateringen til UML. Den skalerte UML ved รฅ tilby forskjellige utvidelser. Synlighet, artefakter, stereotyper ble introdusert i diagrammer.
mars 2003 1.5 Funksjoner som prosedyrer, dataflytmekanisme ble lagt til UML.
januar 2005 1.4.2 UML ble akseptert som standard av ISO.
august 2005 2.0 Nye diagrammer som objekt, pakke, timing, interaksjon ble lagt til UML. Nye funksjoner ble lagt til aktivitets- og sekvensdiagrammene. Samarbeidsdiagram ble omdรธpt til kommunikasjonsdiagram. Flere funksjoner og endringer ble introdusert i de eksisterende diagrammene.
april 2006 2.1 Det ble gjort rettelser til UML 2.0.
februar 2007 2.1.1 Upgrades ble introdusert i UML 2.1.
november 2007 2.1.2 UML 2.1.1 ble omdefinert.
februar 2009 2.2 UML 2.1.2-feil ble fikset.
kan 2010 2.3 UML 2.2 ble revidert, og det ble gjort mindre endringer i komponentdiagrammene.
august 2011 2.4.1 Det ble gjort endringer i klasser, pakker og stereotypier. UML 2.3 ble revidert med forbedringsfunksjoner.
juni 2015 2.5 UML 2.4.1 ble revidert med mindre endringer. UML ble gjort enklere enn det var fรธr. Rask funksjonalitet og generering av mer effektive modeller ble introdusert. Utdaterte funksjoner ble eliminert. Modeller og maler ble eliminert som hjelpekonstruksjoner.

Kjennetegn ved UML

  1. Det er et generalisert modelleringssprรฅk.
  2. Det er forskjellig fra programmeringssprรฅk som f.eks Python, C, C++Osv
  3. Det er et billedsprรฅk som kan brukes til รฅ generere kraftige modelleringselementer.
  4. Det er relatert til objektorientert design og analyse.
  5. Den har ubegrensede applikasjoner selv utenfor programvareindustrien. Den kan brukes til รฅ visualisere arbeidsflyten til en fabrikk.

Konseptuell modell

Fรธr man begynner med UML-konseptet, mรฅ man forstรฅ det grunnleggende i den konseptuelle modellen.

En konseptuell modell er bygd opp av ulike konsepter som henger sammen. Det hjelper oss รฅ forstรฅ

  • Hva er gjenstandene?
  • Hvordan foregรฅr interaksjon for รฅ utfรธre en prosess?

Det kreves en konseptuell modell i UML. Du mรฅ forstรฅ enhetene og relasjonene mellom dem fรธr du faktisk modellerer systemet.

Fรธlgende objektorienterte konsepter kreves for รฅ begynne med UML:

  • ObjektDet er en virkelighetsnรฆr enhet. Det finnes flere objekter tilgjengelig i et enkelt system. Det er en grunnleggende byggestein i UML.
  • KlasseEn klasse er ikke annet enn en beholder der objekter og deres relasjoner vedlikeholdes.
  • Abstracsjon: Det er en mekanisme for รฅ representere en enhet uten รฅ vise implementeringsdetaljene. Den brukes til รฅ visualisere oppfรธrselen til et objekt.
  • Arv: Det er en mekanisme for รฅ utvide en eksisterende klasse for รฅ lage en ny klasse.
  • polymorfisme: Det er en mekanisme for รฅ representere et objekt som har flere former som brukes til forskjellige formรฅl.
  • innkapsling: Det er en metode for รฅ binde objektet og dataene sammen som en enkelt enhet. Det sikrer tett kobling mellom objektet og dataene.

Ovenfor kalles ogsรฅ grunnleggende byggeklosser av en UML.

Hva er UML-diagram?

UML-diagrammer er resultatet av Unified Modeling Language. Det er en billedlig representasjon av klasser, objekter og relasjoner mellom dem. UML-diagram er en modell som beskriver en del av et system. Den brukes til รฅ definere funksjonaliteten eller designen til et system. Et diagram mรฅ vรฆre klart og konsist slik at seeren lett forstรฅr det.

UML-diagrammer er delt inn i tre forskjellige kategorier som,

  • Strukturskjema
  • Atferdsdiagram
  • Interaksjonsdiagram

Strukturdiagrammer i UML

Strukturelle diagrammer brukes til รฅ representere en statisk visning av et system. Det representerer en del av et system som utgjรธr strukturen til et system. Et strukturdiagram viser ulike objekter i systemet.

Fรธlgende er de forskjellige strukturelle diagrammene i UML:

  • Klassediagram
  • Objektdiagram
  • Pakkediagram
  • Komponentdiagram
  • Implementeringsdiagram

Atferdsdiagrammer i UML

Ethvert system i den virkelige verden kan representeres i enten en statisk form eller en dynamisk form. Et system sies รฅ vรฆre komplett hvis det kommer til uttrykk pรฅ bรฅde statiske og dynamiske mรฅter. Atferdsdiagrammet representerer funksjonen til et system.

UML-diagrammer som omhandler den statiske delen av et system kalles strukturelle diagrammer. UML-diagrammer som omhandler de bevegelige eller dynamiske delene av systemet kalles atferdsdiagrammer.

Fรธlgende er de forskjellige atferdsdiagrammene i UML:

  • Aktivitetsdiagram
  • Bruk case-diagram
  • Statens maskindiagram

Interaksjonsdiagrammer i UML

Interaksjonsdiagram er ikke annet enn en undergruppe av atferdsdiagrammer. Den brukes til รฅ visualisere flyten mellom ulike use case-elementer i et system. Interaksjonsdiagrammer brukes til รฅ vise en interaksjon mellom to enheter og hvordan data flyter i dem.

Fรธlgende er de ulike interaksjonsdiagrammene i UML:

  • Tidsdiagram
  • Sekvensdiagram
  • Samarbeidsdiagram

Den detaljerte forklaringen av diagrammene ovenfor er forklart i ytterligere opplรฆringsprogrammer.

Strukturelle vs. atferdsmessige UML-diagrammer

Tabellen nedenfor kontrasterer de to UML-diagramkategoriene for รฅ hjelpe team med รฅ velge riktig type.

Egenskap Strukturdiagrammer Atferdsdiagrammer
Se Statisk Dynamisk
Fokus Komponenter og deres forhold Systemhandlinger og interaksjoner
Eksempler Klasse, objekt, pakke, komponent, distribusjon Aktivitet, brukstilfelle, tilstandsmaskin
Primรฆr bruk Archistruktur og databasedesign Arbeidsflyt, brukerreiser, tilstandsoverganger
Opprettet da Definere systemstruktur pรฅ forhรฅnd Modellering av kjรธretidsatferd og forretningslogikk

UML-verktรธy

Det er mange verktรธy tilgjengelig pรฅ markedet for รฅ generere UML-diagrammer. Noen er skrivebordsbaserte, mens andre kan brukes online. Fรธlgende er en kuratert liste over verktรธy som kan brukes til รฅ lage UML-modeller:

Vi skal bruke StarUML et program for รฅ generere UML-diagrammer.

Installasjonstrinn: ร…pne lenken: http://staruml.io/download

I henhold til din PC-spesifikasjoner. Last ned hvilken som helst versjon av applikasjonen. Her skal vi velge Windows-alternativet.

StarUML Installasjon

Nรฅr applikasjonen er nedlastet, installerer du den med alle standardinnstillingene. Etter installasjonen starter du StarUML applikasjonen pรฅ PC-en din.

Du vil se fรธlgende vindu,

StarUML Installasjon

Du kan nรฅ begynne รฅ lage UML-diagrammer.

Spรธrsmรฅl og svar

๐Ÿ“Š UML 2.x definerer 14 offisielle diagramtyper fordelt pรฅ to hovedgrupper: 7 strukturdiagrammer (klasse, objekt, komponent, distribusjon, pakke, sammensatt struktur, profil) og 7 atferdsdiagrammer (brukstilfelle, aktivitet, tilstandsmaskin, sekvens, kommunikasjon, timing, interaksjonsoversikt).

๐Ÿ—„๏ธ UML-diagrammer modellerer objektorienterte programvaresystemer og dekker bรฅde struktur og oppfรธrsel. Entitets-relasjonsdiagrammer (ER) fokuserer utelukkende pรฅ databaseskjemaer og relasjonene mellom dataenheter. UML-klassediagrammer kan representere databasetabeller, men har ytterligere objektorientert semantikk som ER-diagrammer mangler.

๐Ÿข Ja. UML er fortsatt mye brukt i bedriftsarkitektur, innebygde systemer og regulerte bransjer som finans og helsevesen. Agile team bruker ofte lettere delsett โ€“ klasse- og sekvensdiagrammer oftest โ€“ mens fullverdige UML-pakker fortsatt er vanlige i storskala systemdesign og offentlige prosjekter.

๐Ÿค– Ja. AI-modeller som ChatGPT og GitHub Copilot kan generere PlantUML eller Mermaid-syntaks fra klartekstbeskrivelser eller kildekode. Verktรธy som Lucidchart og Visio bygger nรฅ inn AI-assistenter som utarbeider klasse-, sekvens- og brukstilfellediagrammer fra ledetekster i naturlig sprรฅk pรฅ sekunder.

๐Ÿ› ๏ธ Ledende AI-drevne UML-verktรธy inkluderer Lucidcharts AI-diagramgenerator, Microsoft Visio Copilot, Eraser.io og Draw.io med ChatGPT-pluginer. PlantUML kombinert med enhver stor sprรฅkmodell lar utviklere skrive diagrammer som kode, mens GitLab og GitHub Copilot kan reverskonstruere klassediagrammer fra eksisterende repositorier.

โญ Klassediagrammer og sekvensdiagrammer er de mest brukte. Klassediagrammer modellerer den statiske strukturen og kodearkitekturen, mens sekvensdiagrammer fanger opp hvordan objekter samhandler over tid, noe som gjรธr begge populรฆre for designdokumentasjon i agile og enterprise-team.

๐Ÿ” Et klassediagram definerer blรฅkopien โ€“ klasser, attributter, metoder og relasjoner โ€“ til et system. Et objektdiagram viser et รธyeblikksbilde av faktiske forekomster av disse klassene pรฅ et bestemt tidspunkt, med reelle verdier, som illustrerer hvordan strukturen ser ut under kjรธring.

๐ŸŽ“ Nei. UML er en visuell modelleringsnotasjon, ikke et programmeringssprรฅk, sรฅ nybegynnere kan lรฆre det uten kodeferdigheter. Det er nok รฅ forstรฅ grunnleggende objektorienterte konsepter som objekter, klasser og relasjoner for รฅ begynne รฅ lage enkle UML-diagrammer.

Oppsummer dette innlegget med: