UML

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 5. syyskuuta 2018 tarkistetusta versiosta . tarkastukset vaativat 24 muokkausta .

UML ( englanniksi  Unified Modeling Language  - yhtenäinen mallinnuskieli) on graafinen kuvauskieli ohjelmistokehityksen alan objektimallinnukseen , liiketoimintaprosessien mallintamiseen , järjestelmäsuunnitteluun ja organisaatiorakenteiden esittämiseen .

UML on yleinen kieli, se on avoin standardi , joka käyttää graafista merkintää luodakseen abstraktin mallin järjestelmästä, jota kutsutaan UML-malliksi . UML luotiin määrittelemään, visualisoimaan, suunnittelemaan ja dokumentoimaan pohjimmiltaan ohjelmistojärjestelmiä . UML ei ole ohjelmointikieli , mutta koodin luominen on mahdollista UML-mallien perusteella .

Käyttö

UML:n avulla ohjelmistokehittäjät voivat myös sopia graafisesta merkinnästä yleisten käsitteiden (kuten luokka , komponentti , yleistys , yhdistäminen  ja käyttäytyminen ) esittämiseksi ja keskittyä enemmän suunnitteluun ja arkkitehtuuriin . 

Historia

UML -mallinnuskielen syntymisen edellytykset tunnistettiin 1900-luvun jälkipuoliskolla tapahtuneen olio-ohjelmointikielten nopean kehityksen yhteydessä ( Simula 67 , Smalltalk , Objective C , C++ jne.) . Luotujen ohjelmistotuotteiden jatkuvasta monimutkaisuudesta johtuen on tarpeen ottaa huomioon yhä enemmän kielten ja kehitystyökalujen uudet ominaisuudet analysoinnissa, vaatimusten muotoilussa ja ohjelmistosovellusten suunnittelussa. Esimerkiksi lyhyessä ajassa 1989-1994 oliotyökalujen määrä kasvoi kymmenestä yli viiteenkymmeneen. Monien kehittäjien oli kuitenkin vaikea valita mallinnuskieltä, joka vastaisi täysin heidän tarpeitaan. Tämän seurauksena on syntynyt uuden sukupolven kehitysmenetelmiä, joista Jacobson Object-Oriented Software Engineeringin ( OOSE ) kehittämä ja Rambaud Object Modeling Techniquen ( OMT ) kehittämä Booch -menetelmä on saavuttanut erityisen suosion. Niiden lisäksi oli muita valmiita teknologioita, kuten Fusion , Shlaer-Mellor ja Coad-Yourdon , mutta niissä kaikissa oli paitsi etuja myös merkittäviä haittoja [1] .

Ennen UML 1.x

Vuonna 1994 Rational Softwaressa työskentelevät Grady Booch ja James Rumbaugh yhdistivät voimansa luodakseen uuden oliomallinnuskielen. He ottivat kielen perustaksi Object-Modeling Techniquen ja Boochin mallinnusmenetelmät. OMT keskittyi analysointiin, kun taas Booch keskittyi ohjelmistojärjestelmien suunnitteluun. Lokakuussa 1995 Unified Methodista julkaistiin alustava versio 0.8 . Syksyllä 1995 Object-Oriented Software Engineering - OOSE:n kirjoittaja Ivar Jakobson liittyi Rationaliin . OOSE tarjosi erinomaiset mahdollisuudet liiketoimintaprosessien määrittelyyn ja vaatimusten analysoimiseen käyttötapausten kautta . OOSE on myös integroitu yhtenäiseen menetelmään.  

Tässä vaiheessa päärooli UML-kehitysprosessin organisoinnissa siirtyi OMG (Object Management Group) -konsortiolle . OMG:n suunnittelutiimi, johon kuuluivat myös Butch, Rambeau ja Jacobson ("kolme amigoa"), julkaisi UML-versiot 0.9 ja 0.91 spesifikaatiot kesä- ja lokakuussa 1996 .

UML 1.x

Versio Hyväksymispäivä
1.1 marraskuuta 1997 [2]
1.3 maaliskuu 2000 [3]
1.4 Syyskuu 2001 [4]
1.4.2 Heinäkuu 2004 [3]
1.5 Maaliskuu 2003 [5]
2.0 Heinäkuu 2005 [6]
2.1 ei virallisesti hyväksytty [3]
2.1.1 elokuu 2007 [7]
2.1.2 marraskuuta 2007 [8]
2.2 Helmikuu 2009 [9]
2.3 toukokuu 2010 [10]
2.4 beta 2 Maaliskuu 2011 [11]
2.5 Kesäkuu 2015 [12]
2.5.1 Joulukuu 2017 [13]

UML:ää kohtaan kasvavan kiinnostuksen seurauksena yritykset, kuten Digital Equipment Corporation , Hewlett-Packard , i-Logix, IntelliCorp, IBM , ICON Computing, MCI Systemhouse, Microsoft , Oracle Corporation , Rational Software ovat liittyneet uusien versioiden kehittämiseen kieli UML Partners - konsortiossa , Texas Instrumentsissa ja Unisysissa . Yhteistyö johti UML 1.0 -spesifikaatioon, joka julkaistiin tammikuussa 1997 . Sitä seurasi saman vuoden marraskuussa versio 1.1, joka sisälsi notaatioparannuksia sekä joitain semanttisia laajennuksia.

UML:n myöhemmät julkaisut ovat sisältäneet versiot 1.3, 1.4 ja 1.5, jotka on julkaistu kesäkuussa 1999 , syyskuussa 2001 ja maaliskuussa 2003 .

UML 1.4.2 on hyväksytty kansainväliseksi standardiksi ISO / IEC 19501:2005 [12] .

UML 2.x

UML 2.0:n virallinen eritelmä julkaistiin elokuussa 2005. Kielen semantiikkaa on merkittävästi jalostettu ja laajennettu tukemaan Model Driven Development - MDD - metodologiaa . UML 2.5:n uusin versio julkaistiin kesäkuussa 2015.

UML 2.4.1 on hyväksytty kansainväliseksi standardiksi ISO / IEC 19505-1, 19505-2 [12] .

Kaaviot

UML:ssa käytetään seuraavan tyyppisiä kaavioita (epäselvyyden poistamiseksi on myös englanninkielinen merkintä):

Rakennekaaviot:

Käyttäytymiskaaviot:

Rakennekaaviot:

Käyttäytymiskaaviot:

UML 2.3 -kaavioiden rakenne voidaan esittää UML-luokkakaaviossa:

Luokkakaavio

Luokkakaavio (Class diagram) - staattinen rakennekaavio, joka kuvaa järjestelmän rakennetta ja näyttää järjestelmän luokat, niiden attribuutit, menetelmät ja luokkien väliset riippuvuudet.

Luokkakaavioiden rakentamiseen on erilaisia ​​näkemyksiä riippuen niiden käyttötarkoituksesta:

Komponenttikaavio

Komponenttikaavio (Component diagram ) - staattinen rakennekaavio, näyttää ohjelmistojärjestelmän jakautumisen rakennekomponentteihin ja komponenttien välisiin suhteisiin (riippuvuuksiin). Fyysiset komponentit voivat olla tiedostoja, kirjastoja, moduuleja, suoritettavia tiedostoja, paketteja jne.

Komposiitti/komposiittirakennekaavio

Yhdistelmärakennekaavio ( Komposiittirakennekaavio ) - staattinen rakennekaavio, joka havainnollistaa luokkien sisäistä rakennetta ja, mikäli mahdollista, luokan sisäisen rakenteen elementtien (osien) vuorovaikutusta.

Yhdistelmärakennekaavioiden alalaji ovat yhteistyökaaviot (Yhteistyökaavio, otettu käyttöön UML 2.0:ssa), jotka osoittavat luokkien roolit ja vuorovaikutukset yhteistyön sisällä. Yhteistyöt ovat käteviä suunnittelumalleja mallinnettaessa .

Yhdistelmärakennekaavioita voidaan käyttää yhdessä luokkakaavioiden kanssa.

Käyttöönottokaavio

Käyttöönottokaavio ( deployment diagram) - käytetään mallintamaan toimivia solmuja (laitteisto, englantilainen  solmu ) janiihin asennettuja artefakteja . UML 2 otti artefakteja käyttöön solmuissa , kun taas  UML 1 otti komponentteja käyttöön solmuissa. Artefaktin ja sen toteuttaman loogisen elementin (komponentin) välille muodostetaan ilmentymisriippuvuus.

Objektikaavio

Objektikaavio - näyttää täydellisen tai osittaisen tilannekuvan simuloidusta järjestelmästä tietyllä hetkellä. Kohdekaavio näyttää järjestelmän luokkaesiintymät (objektit) niiden attribuuttien nykyiset arvot ja objektien väliset linkit.

Pakkauskaavio

Pakettikaavio (Package diagram ) - rakennekaavio, jonka pääsisältönä ovat paketit ja niiden väliset suhteet. Eri rakennekaavioiden välillä ei ole tiukkaa erottelua, joten tämä nimi on vain mukavuussyistä, eikä sillä ole semanttista merkitystä (paketit ja pakettikaaviot voivat esiintyä muissa rakennekaavioissa). Pakettikaaviot palvelevat ennen kaikkea elementtien järjestämistä ryhmiin jonkin attribuutin mukaan yksinkertaistamaan järjestelmämallin kanssa tehtävän työn rakennetta ja organisointia.

Toimintakaavio

Aktiivisuuskaavio - kaavio , joka näyttää jonkin toiminnan hajoamisen sen osiin. Toiminto on suoritettavan  käyttäytymisen määrittely alisteisten elementtien koordinoidun peräkkäisen ja rinnakkaisen suorituksen muodossa - sisäkkäiset toiminnot ja erilliset toiminnot ( englanniksi action ), jotka on yhdistetty toisiinsa viroilla, jotka kulkevat yhden solmun lähdöistä toisen tuloihin.  

Aktiivisuuskaavioita käytetään liiketoimintaprosessien, teknisten prosessien, sarja- ja rinnakkaislaskennan mallintamiseen.

Toimintakaavioiden analogit ovat GOST 19.701-90 mukaiset algoritmikaaviot ja lohikäärmekaaviot .

Automaattikaavio

Automaattikaavio ( Tilakonekaavio, äärellisen tilan konekaavio , tilakaavio ) - kaavio, joka esittää äärellisen tilan koneen yksinkertaisilla tiloilla , siirtymillä ja yhdistelmätiloilla.

Tilakone onmääritys tilojen sarjasta, jonka läpi objekti tai  vuorovaikutus kulkee vastauksena elämänsä tapahtumiin, samoin kuin kohteen reaktio näihin tapahtumiin. Tilakone on liitetty lähdeelementtiin ( luokka , yhteistyö tai menetelmä) ja sen avulla määritellään esiintymistensä käyttäytyminen.

Automaattikaavioiden (tilakaavioiden) analogit ovat lohikäärmekaaviot .

Käyttötapauskaavio (Use Case Diagram)

Käyttötapauskaavio tai käyttötapauskaavio (Use case diagram) on kaavio, joka näyttää toimijoiden ja käyttötapausten väliset suhteet .

Päätavoitteena on tarjota yksi työkalu, jonka avulla asiakas, loppukäyttäjä ja kehittäjä voivat keskustella yhdessä järjestelmän toimivuudesta ja käyttäytymisestä.

Viestintä- ja sekvenssikaaviot

Viestintä- ja sekvenssikaaviot ovat transitiivisia , ne ilmaisevat vuorovaikutusta, mutta ne osoittavat sen eri tavoin ja riittävällä tarkkuudella muunnettavissa yhdestä toiseen.

Viestintäkaavio (Communication diagram , in UML 1.x - yhteistyökaavio , yhteistyökaavio ) - kaavio, joka kuvaa yhdistelmärakenteen osien tai yhteistyöroolien välistä vuorovaikutusta. Toisin kuin järjestyskaavio, viestintäkaavio osoittaa selvästi elementtien (objektien) välisen suhteen, eikä käytä aikaa erillisenä ulottuvuutena (käytetään kutsuvia järjestysnumeroita).

Sekvenssikaavio - kaavio , joka näyttää objektien vuorovaikutuksen niiden ilmenemisajankohdan mukaan. Erityisesti se kuvaa vuorovaikutukseen osallistuvia objekteja ja niiden vaihtamien viestien sarjaa.

Yhteistyökaavio  - Tämän tyyppisen kaavion avulla voit kuvata objektien vuorovaikutusta irtautua viestin välitysjaksosta. Tämän tyyppinen kaavio heijastaa kompaktissa muodossa kaikki tietyn objektin vastaanotetut ja lähetetyt viestit ja näiden viestien tyypit.

Koska sekvenssi- ja yhteistyökaaviot ovat eri näkymiä samoista prosesseista, Rational Rose antaa sinun luoda yhteistyökaavioita sekvenssikaavioista ja päinvastoin, ja myös synkronoi nämä kaaviot automaattisesti.

Vuorovaikutuksen yleiskuvaus

Vuorovaikutuksen yleiskuvauskaavio  on eräänlainen toimintakaavio, joka sisältää sekvenssikaavion fragmentteja ja ohjausvirtausrakenteita.

Tämän tyyppiset kaaviot sisältävät sekvenssikaavion (toimintojaksojen kaaviot) ja yhteistyökaaviot (yhteistyökaaviot). Näiden kaavioiden avulla voit tarkastella objektien vuorovaikutusta luotavassa järjestelmässä eri näkökulmista.

Synkronointikaavio

Ajoituskaavio - vaihtoehtoinen esitys sekvenssikaaviosta, joka näyttää eksplisiittisesti tilan muutokset elinlinjalla tietyllä aikaskaalalla. Voi olla hyödyllistä reaaliaikaisissa sovelluksissa.

UML:n edut

Kritiikki

Huolimatta siitä, että UML on melko laajalle levinnyt ja käytetty standardi, sitä kritisoidaan usein seuraavista puutteista:

Katso myös

Muistiinpanot

  1. G. Butch, D. Rambeau, I. Jacobson. UML:n lyhyt historia // Kieli UML. Käyttöopas = Unified Modeling Language User's Guide. - 2. - M. : DMK Press, 2006. - S. 14. - 496 s. — ISBN 5-94074-334-X .
  2. UML-määritysversio 1.1 (OMG-dokumenttimainos/97-08-11) Arkistoitu 18. marraskuuta 2018 Wayback Machinessa 
  3. 1 2 3 OMG UML:n virallisesti julkaistut versiot arkistoitu 31. heinäkuuta 2010 Wayback Machinessa 
  4. UML-versioon 1.4 liittyvät asiakirjat arkistoitu 10. toukokuuta 2011 Wayback Machinessa 
  5. UML-versioon 1.5 liittyvät asiakirjat arkistoitu 10. toukokuuta 2011 Wayback Machinessa 
  6. UML-versioon 2.0 liittyvät asiakirjat arkistoitu 9. tammikuuta 2010 Wayback Machinessa 
  7. UML-versioon 2.1.1 liittyvät asiakirjat arkistoitu 7. toukokuuta 2011 Wayback Machinessa 
  8. UML-versioon 2.1.2 liittyvät asiakirjat arkistoitu 6. kesäkuuta 2011 Wayback Machinessa 
  9. UML-versioon 2.2 liittyvät asiakirjat arkistoitu 17. huhtikuuta 2021 Wayback Machinessa 
  10. UML-versioon 2.3 liittyvät asiakirjat arkistoitu 7. kesäkuuta 2011 Wayback Machinessa 
  11. UML-versioon 2.4 liittyvät asiakirjat - Beta 2 arkistoitu 9. kesäkuuta 2011 Wayback Machinessa 
  12. 123 UML . _ _ Haettu 26. kesäkuuta 2010. Arkistoitu alkuperäisestä 31. heinäkuuta 2010.
  13. Tietoja Unified Modeling Language Specification -versiosta 2.5.1 . www.omg.org. Haettu 10. syyskuuta 2019. Arkistoitu alkuperäisestä 3. heinäkuuta 2019.
  14. http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=130 Arkistoitu 7. joulukuuta 2008 Wayback Machine ACM :ssä
  15. Slashdot | Koodi on suunnittelua . Haettu 21. toukokuuta 2022. Arkistoitu alkuperäisestä 22. huhtikuuta 2009.
  16. Code as Design: Three Essays by Jack W. Reeves by Jack W. Reeves - kehittäjä.*, Developer Dot Star . Haettu 13. helmikuuta 2007. Arkistoitu alkuperäisestä 13. helmikuuta 2007.

Kirjallisuus

Linkit