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 .
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 .
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] .
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 .
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.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] .
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 (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 (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.
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 ( 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 - 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.
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.
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 ( 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 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 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 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.
Ajoituskaavio - vaihtoehtoinen esitys sekvenssikaaviosta, joka näyttää eksplisiittisesti tilan muutokset elinlinjalla tietyllä aikaskaalalla. Voi olla hyödyllistä reaaliaikaisissa sovelluksissa.
Huolimatta siitä, että UML on melko laajalle levinnyt ja käytetty standardi, sitä kritisoidaan usein seuraavista puutteista:
Yhtenäinen mallinnuskieli | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||
| |||||||||||
|
Ohjelmistokehitys | |
---|---|
Prosessi | |
Korkean tason käsitteet | |
Ohjeet |
|
Kehittämismenetelmät _ | |
Mallit |
|
Merkittäviä lukuja |
|
ISO- standardit | |
---|---|
| |
1-9999 _ _ |
|
10 000 - 19999 |
|
20 000+ | |
Katso myös: Luettelo artikkeleista, joiden otsikot alkavat sanalla "ISO" |