UML-kaaviot: ominaisuudet, kaavio ja tyypit

โšก ร„lykรคs yhteenveto

UML-kaaviot tarjoavat standardoidun visuaalisen kielen ohjelmistojรคrjestelmien mallintamiseenping Kehitystiimit dokumentoivat oliopohjaiset suunnittelut, kommunikoivat monimutkaiset arkkitehtuuripรครคtรถkset selkeรคsti ja yhdistรคvรคt kaikki projektin sidosryhmรคt ennen toteutuksen alkua.

  • ๐Ÿ“ Ydinmรครคritelmรค: Unified Modeling Language on ISO-standardin mukainen standardi, joka kรคyttรครค kuvadiagrammeja ohjelmistojรคrjestelmien oliopohjaisten suunnittelujen, rakenteiden ja kรคyttรคytymisen esittรคmiseen.
  • ๐Ÿ›๏ธ Kaksi luokkaa: UML-kaaviot jaetaan rakennekaavioihin (komponenttien staattinen nรคkymรค) ja kรคyttรคytymiskaavioihin (vuorovaikutusten ja tyรถnkulkujen dynaaminen nรคkymรค).
  • ๐Ÿ—‚๏ธ Rakennekaaviot: Luokka-, objekti-, paketti-, komponentti- ja kรคyttรถรถnottokaaviot edustavat staattista arkkitehtuuria ja jรคrjestelmรคelementtien vรคlisiรค suhteita.
  • โšก Kรคyttรคytymiskaaviot: Aktiviteetti-, kรคyttรถtapaus- ja tilakonekaaviot tallentavat jรคrjestelmรคn virtauksia, kรคyttรคjien vuorovaikutuksia ja tilasiirtymiรค ajan kuluessa.
  • ๐Ÿ› ๏ธ Tyรถkalut ja tekoรคly: Tyรถkalut, kuten StarUML, Visio ja Lucidchart luoda UML-kaavioita visuaalisesti; tekoรคlyllรค toimivat tyรถkalut voivat nyt luoda tarkkoja kaavioita selkokielisistรค kuvauksista tai lรคhdekoodista automaattisesti.
  • ๐Ÿ“… Versiohistoria: UML on kehittynyt versiosta 1.1 (1997) versioon 2.5.1 (2017), ja jokaiseen julkaisuun on lisรคtty kaaviotyyppejรค, parannettu semantiikkaa ja yksinkertaistettu spesifikaatiota.

UML-kaaviot

Ohjelmistojรคrjestelmรคt monimutkaistuvat nopeasti, ja tiimeillรค, jotka eivรคt pysty visualisoimaan arkkitehtuuria, on vaikeuksia viestiรค suunnittelupรครคtรถksistรค. UML tarjoaa jaetun visuaalisen merkinnรคn ennen koodin kirjoittamista.

Miksi kรคyttรครค UML:รครค? Tรคydellinen historia

1990-luku oli oliokielten, kuten esim C++. Nรคitรค oliokieliรค kรคytettiin monimutkaisten mutta houkuttelevien jรคrjestelmien luomiseen.

Koska kehitetyt jรคrjestelmรคt olivat monimutkaisia โ€‹โ€‹ymmรคrtรครค, se johti suunnittelu- ja analyysiongelmiin, joita kohdattiin jรคrjestelmรคn kรคyttรถรถnoton jรคlkeen. Jรคrjestelmรครค oli vaikea selittรครค muille.

Heti kun UML otettiin kรคyttรถรถn, tehtiin monia peliรค muuttavia kokeita ja lรคhestymistapoja, joilla yksinkertaistettiin vaikeita jรคrjestelmรคn analysointitehtรคviรค.

UML on oliosuuntautunut yhtenรคinen mallinnuskieli. Sen keksivรคt nerokkaat ohjelmistoinsinรถรถrit Grady Booch, Ivar Jacobson ja James Rumbaugh Rational-ohjelmistosta vuosina 1994 ja 1995. Sitรค kehitettiin vuoteen 1996 asti.

Jokaisella UML:n keksijรคllรค, nimittรคin Grady Boochilla, Ivar Jacobsonilla ja James Rumbaughilla, oli loistava idea suunnitella kieli, joka vรคhentรคisi monimutkaisuutta.

  • Boochin menetelmรค oli erittรคin joustava tyรถskenneltรคvรค kohteiden suunnittelun ja rakentamisen aikana.
  • Jacobsonin menetelmรค tarjosi loistavan tavan kiertรครค kรคyttรถtapauksia. Siinรค on myรถs tehokas lรคhestymistapa korkean tason suunnitteluun.
  • Rumbaughin menetelmรค osoittautui erittรคin hyรถdylliseksi herkkiรค jรคrjestelmiรค kรคsiteltรคessรค.

Later David Harelin keksimรคssรค UML:ssรค otettiin kรคyttรถรถn kรคyttรคytymismalleja ja tilakaavioita.

Object Management Group (OMG) tunnusti UML:n standardiksi vuonna 1997. Object Management Group on vastuussa UML:n hallinnasta siitรค lรคhtien, kun se otettiin kรคyttรถรถn standardina.

Vuonna 2005 International Organization for Standardization hyvรคksyi UML:n ISO-standardiksi. Sitรค kรคytetรครคn eri toimialoilla oliomallien luomiseen.

Uusin UML-versio on 2.5.1, joka julkaistiin joulukuussa 2017.

UML-versiot

Pรคivรคmรครคrรค Versio Meistรค
marraskuu 1997 1.1 UML on otettu kรคyttรถรถn Object Management Groupissa. Tรคmรค oli UML:n ensimmรคinen versio.
maaliskuu 2000 1.3 Nykyiseen malliin tehtiin pieni pรคivitys huomattavin semantiikan muutoksilla, luokituksetja UML:n metamallit.
syyskuu 2001 1.4 Tรคmรค oli UML:n suuren pรคivityksen aikaa. Se skaalasi UML:รครค tarjoamalla erilaisia โ€‹โ€‹laajennuksia. Nรคkyvyys, artefakti, stereotypiat esiteltiin kaavioissa.
maaliskuu 2003 1.5 UML:รครคn lisรคttiin ominaisuuksia, kuten menettelyt, tiedonkulkumekanismi.
tammikuu 2005 1.4.2 ISO hyvรคksyi UML:n standardiksi.
elokuu 2005 2.0 UML:รครคn lisรคttiin uusia kaavioita, kuten objekti, paketti, ajoitus, vuorovaikutus. Toiminta- ja jรคrjestyskaavioihin lisรคttiin uusia ominaisuuksia. Yhteistyรถkaavio nimettiin uudelleen viestintรคkaavioksi. Olemassa oleviin kaavioihin lisรคttiin useita ominaisuuksia ja muutoksia.
huhtikuu 2006 2.1 UML 2.0:aan tehtiin korjauksia.
helmikuu 2007 2.1.1 Upgrades otettiin kรคyttรถรถn UML 2.1:ssรค.
marraskuu 2007 2.1.2 UML 2.1.1 mรครคriteltiin uudelleen.
helmikuu 2009 2.2 UML 2.1.2 -virheet korjattiin.
voi 2010 2.3 UML 2.2 uudistettiin ja komponenttikaavioihin tehtiin pieniรค muutoksia.
elokuu 2011 2.4.1 Luokkiin, pakkauksiin ja stereotypioihin tehtiin muutoksia. UML 2.3 pรคivitettiin parannusominaisuuksilla.
kesรคkuu 2015 2.5 UML 2.4.1 -versiota uudistettiin pienin muutoksin. UML:stรค tehtiin aiempaa yksinkertaisempi. Kรคyttรถ nopeutui ja mahdollisti tehokkaampien mallien luomisen. Vanhentuneita ominaisuuksia poistettiin. Mallit ja pohjat apurakenteina poistettiin.

UML:n ominaisuudet

  1. Se on yleistetty mallinnuskieli.
  2. Se eroaa ohjelmistojen ohjelmointikielistรค, kuten Python, C, C++, Jne
  3. Se on kuvakieli, jota voidaan kรคyttรครค tehokkaiden mallinnuselementtien luomiseen.
  4. Se liittyy oliosuunnitteluun ja analysointiin.
  5. Sillรค on rajattomasti sovelluksia myรถs ohjelmistoteollisuuden ulkopuolella. Sitรค voidaan kรคyttรครค visualisoimaan tehtaan tyรถnkulkua.

Havainnemalli

Ennen kuin aloitat UML-konseptin, on ymmรคrrettรคvรค kรคsitemallin perusteet.

Kรคsitteellinen malli koostuu erilaisista kรคsitteistรค, jotka liittyvรคt toisiinsa. Se auttaa meitรค ymmรคrtรคmรครคn

  • Mitkรค ovat esineet?
  • Miten vuorovaikutus tapahtuu prosessin toteuttamiseksi?

UML:ssรค vaaditaan kรคsitteellinen malli. Sinun on ymmรคrrettรคvรค entiteetit ja niiden vรคliset suhteet ennen jรคrjestelmรคn mallintamista.

Seuraavat oliopohjaiset kรคsitteet vaaditaan aloittamaan UML:llรค:

  • objektiSe on reaalimaailman yksikkรถ. Yhdessรค jรคrjestelmรคssรค on useita objekteja. Se on UML:n perusrakenneosa.
  • luokkaLuokka ei ole muuta kuin sรคiliรถ, jossa yllรคpidetรครคn olioita ja niiden vรคlisiรค suhteita.
  • AbstracTUKSEN: Se on mekanismi, joka edustaa kokonaisuutta nรคyttรคmรคttรค toteutustietoja. Sitรค kรคytetรครคn visualisoimaan esineen kรคyttรคytymistรค.
  • Perintรถ: Se on mekanismi olemassa olevan luokan laajentamiseksi uuden luokan luomiseksi.
  • polymorfismi: Se on mekanismi, jolla esitetรครคn objektia, jolla on useita muotoja, joita kรคytetรครคn eri tarkoituksiin.
  • kapselointi: Se on tapa sitoa objekti ja tiedot yhdeksi yksikรถksi. Se varmistaa tiukan yhteyden kohteen ja tiedon vรคlillรค.

Yllรค olevia kutsutaan myรถs nimellรค perusrakennuspalikoita UML:stรค.

Mikรค on UML-kaavio?

UML-kaaviot ovat Unified Modeling Language -kielen tulos. Se on kuvallinen esitys luokista, objekteista ja niiden vรคlisistรค suhteista. UML-kaavio on malli, joka kuvaa jรคrjestelmรคn osaa. Sitรค kรคytetรครคn jรคrjestelmรคn toiminnallisuuden tai suunnittelun mรครคrittelemiseen. Kaavion tulee olla selkeรค ja ytimekรคs, jotta katsoja ymmรคrtรครค sen helposti.

UML-kaaviot on jaettu kolmeen eri luokkaan, kuten

  • Rakennekaavio
  • Kรคyttรคytymiskaavio
  • Vuorovaikutuskaavio

Rakennekaaviot UML:ssรค

Rakennekaavioita kรคytetรครคn esittรคmรครคn staattista nรคkymรครค jรคrjestelmรคstรค. Se edustaa jรคrjestelmรคn osaa, joka muodostaa jรคrjestelmรคn rakenteen. Rakennekaavio nรคyttรครค erilaisia โ€‹โ€‹jรคrjestelmรคn kohteita.

Seuraavat ovat erilaiset UML:n rakennekaaviot:

  • Luokkakaavio
  • Objektikaavio
  • Pakkauskaavio
  • Komponenttikaavio
  • Kรคyttรถรถnottokaavio

Kรคyttรคytymiskaaviot UML:ssรค

Mikรค tahansa reaalimaailman jรคrjestelmรค voidaan esittรครค joko staattisessa tai dynaamisessa muodossa. Jรคrjestelmรคn sanotaan olevan tรคydellinen, jos se ilmaistaan โ€‹โ€‹sekรค staattisella ettรค dynaamisella tavalla. Kรคyttรคytymiskaavio kuvaa jรคrjestelmรคn toimintaa.

UML-kaavioita, jotka kรคsittelevรคt jรคrjestelmรคn staattista osaa, kutsutaan rakennekaavioiksi. UML-kaavioita, jotka kรคsittelevรคt jรคrjestelmรคn liikkuvia tai dynaamisia osia, kutsutaan kรคyttรคytymiskaavioiksi.

Seuraavat ovat erilaiset UML:n kรคyttรคytymiskaaviot:

  • Toimintakaavio
  • Kรคyttรถtapauskaavio
  • Tilan konekaavio

Vuorovaikutuskaaviot UML:ssรค

Vuorovaikutuskaavio on vain osa kรคyttรคytymiskaavioita. Sitรค kรคytetรครคn visualisoimaan kulkua jรคrjestelmรคn eri kรคyttรถtapauselementtien vรคlillรค. Vuorovaikutuskaavioita kรคytetรครคn nรคyttรคmรครคn kahden entiteetin vรคlinen vuorovaikutus ja kuinka data virtaa niiden sisรคllรค.

Seuraavat ovat erilaiset vuorovaikutuskaaviot UML:ssรค:

  • Ajoituskaavio
  • Jรคrjestyskaavio
  • Yhteistyรถkaavio

Yllรค olevien kaavioiden yksityiskohtainen selitys selitetรครคn muissa opetusohjelmissa.

Rakenteelliset vs. kรคyttรคytymiseen perustuvat UML-kaaviot

Alla oleva taulukko vertailee kahta UML-kaavioluokkaa auttaakseen tiimejรค valitsemaan oikean tyypin.

Ominaisuus Rakennekaaviot Kรคyttรคytymiskaaviot
Nรคytรค Staattinen Dynaaminen
Focus Komponentit ja niiden vรคliset suhteet Jรคrjestelmรคn toiminnot ja vuorovaikutukset
Esimerkit Luokka, Objekti, Paketti, Komponentti, Kรคyttรถรถnotto Aktiviteetti, Kรคyttรถtapaus, Tilakone
Ensisijainen kรคyttรถ Archiarkkitehtuuri ja tietokantasuunnittelu Tyรถnkulku, kรคyttรคjรคpolut, tilasiirtymรคt
Luotu milloin Jรคrjestelmรคn rakenteen mรครคrittely etukรคteen Ajonaikaisen kรคyttรคytymisen ja liiketoimintalogiikan mallintaminen

UML-tyรถkalut

Markkinoilla on monia tyรถkaluja UML-kaavioiden luomiseen. Jotkut ovat tyรถpรถytรคpohjaisia, kun taas toisia voidaan kรคyttรครค verkossa. Seuraavassa on kuratoitu luettelo tyรถkaluista, joita voidaan kรคyttรครค UML-mallien luomiseen:

Aiomme kรคyttรครค StarUML sovellus UML-kaavioiden luomiseen.

Asennusvaiheet: Avaa linkki: http://staruml.io/download

PC:si teknisten tietojen mukaan. Lataa mikรค tahansa sovelluksen versio. Tรครคllรค aiomme valita Windows-vaihtoehdon.

StarUML Asennus

Kun sovellus on ladattu, asenna se kaikilla oletusasetuksilla. Asennuksen jรคlkeen kรคynnistรค StarUML sovellus tietokoneellasi.

Nรคet seuraavan ikkunan,

StarUML Asennus

Nyt voit aloittaa UML-kaavioiden luomisen.

UKK

๐Ÿ“Š UML 2.x mรครคrittelee 14 virallista kaaviotyyppiรค, jotka on jaettu kahteen pรครคryhmรครคn: 7 rakennekaaviota (luokka-, objekti-, komponentti-, kรคyttรถรถnotto-, paketti-, komposiittirakenne-, profiilikaavio) ja 7 kรคyttรคytymiskaaviota (kรคyttรถtapaus-, aktiviteetti-, tilakone-, sekvenssi-, kommunikaatio-, ajoitus- ja vuorovaikutuskaavioiden yleiskatsaus).

๐Ÿ—„๏ธ UML-kaaviot mallintavat oliopohjaisia โ€‹โ€‹ohjelmistojรคrjestelmiรค ja kattavat sekรค rakenteen ettรค kรคyttรคytymisen. Entiteetti-relaatiokaaviot (ER) keskittyvรคt yksinomaan tietokantakaavioihin ja datayksikรถiden vรคlisiin suhteisiin. UML-luokkakaaviot voivat esittรครค tietokantataulukoita, mutta niissรค on lisรคsemantiikkaa, jota ER-kaavioista puuttuu.

๐Ÿข Kyllรค. UML:รครค kรคytetรครคn edelleen laajalti yritysarkkitehtuurissa, sulautetuissa jรคrjestelmissรค ja sรครคnnellyillรค toimialoilla, kuten rahoitus- ja terveydenhuoltoalalla. Ketterรคt tiimit kรคyttรคvรคt usein kevyempiรค osajoukkoja โ€“ useimmiten luokka- ja sekvenssikaavioita โ€“ kun taas tรคydelliset UML-paketit ovat edelleen yleisiรค laaja-alaisessa jรคrjestelmรคsuunnittelussa ja julkishallinnon projekteissa.

๐Ÿค– Kyllรค. Tekoรคlymallit, kuten ChatGPT ja GitHub Copilot, voivat luoda PlantUML tai Mermaid-syntaksi selkokielisistรค kuvauksista tai lรคhdekoodista. Tyรถkaluja, kuten Lucidchart ja Visioon on nyt upotettu tekoรคlyavustajia, jotka luovat luokka-, sekvenssi- ja kรคyttรถtapauskaavioita luonnollisen kielen kehotteista sekunneissa.

๐Ÿ› ๏ธ Johtavia tekoรคlypohjaisia โ€‹โ€‹UML-tyรถkaluja ovat mm. Lucidcharttekoรคlykaaviogeneraattori, Microsoft Visio Copilot, Eraser.io ja Draw.io ChatGPT-laajennuksilla. PlantUML Yhdessรค minkรค tahansa suuren kielimallin kanssa kehittรคjรคt voivat kirjoittaa kaavioita koodina, kun taas GitLab ja GitHub Copilot voivat selvittรครค luokkakaavioiden alkuperรครค olemassa olevista tietovarastoista.

โญ Luokkakaaviot ja sekvenssikaaviot ovat yleisimmin kรคytettyjรค. Luokkakaaviot mallintavat staattista rakennetta ja koodiarkkitehtuuria, kun taas sekvenssikaaviot kuvaavat objektien vuorovaikutusta ajan kuluessa, mikรค tekee molemmista suosittuja suunnitteludokumentaatiossa ketterissรค ja yritystiimeissรค.

๐Ÿ” Luokkakaavio mรครคrittelee jรคrjestelmรคn suunnitelman โ€“ luokat, attribuutit, metodit ja suhteet. Objektikaavio nรคyttรครค tilannekuvan kyseisten luokkien todellisista instansseista tietyllรค hetkellรค todellisine arvoineen, mikรค havainnollistaa, miltรค rakenne nรคyttรครค ajonaikana.

๐ŸŽ“ Ei. UML on visuaalisen mallinnuksen merkintรคtapa, ei ohjelmointikieli, joten aloittelijat voivat oppia sen ilman koodaustaitoja. Oliopohjaisten peruskรคsitteiden, kuten objektien, luokkien ja suhteiden, ymmรคrtรคminen riittรครค yksinkertaisten UML-kaavioiden luomisen aloittamiseen.

Tiivistรค tรคmรค viesti seuraavasti: