Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

– Ohjelmistojen mallintaminen, mallintaminen ja UML

Samankaltaiset esitykset


Esitys aiheesta: "– Ohjelmistojen mallintaminen, mallintaminen ja UML"— Esityksen transkriptio:

1 582104 – Ohjelmistojen mallintaminen, mallintaminen ja UML

2 Mallintaminen ja UML Ohjelmistojen mallintamisesta ja kuvaamisesta
Oliomallinnus ja UML Käyttötapauskaaviot Luokkakaaviot Sekvenssikaaviot

3 Yleisesti mallintamisesta
Perinteiset insinöörialat perustuvat malleihin Siltaa rakentaessa tarkat lujuuslaskelmat (=malli) Näihin perustuen tehdään piirustukset, eli malli siitä miten silta pitää toteuttaa (=edellistä hieman tarkempi malli) Malli on abstrakti kuvaus mielenkiinnon alla olevasta kohteesta pyrkii kuvaamaan vaan olennaisen käyttötarkoitusta varten liian tarkat tai liian ylimalkaiset mallit epäoptimaalisia Mitä on olennaista, riippuu mallin käyttötarkoituksesta Esim. Metron linjakartta on hyvä malli julkisen liikenteen käyttäjälle Autoilija taas tarvitsee tarkemman mallin eli kartan Pelkkä maantiekartta riittää tarkasteltaessa esim. miten päästään Helsingistä Rovaniemelle Helsingin keskustassa taas tarvitaan tarkempi kartta

4 Mallit ja abstraktiot Malli: abstraktio jostain kohteesta
Abstrahointi: asian ilmaiseminen tavalla, joka tuo esiin tietystä näkökulmasta katsottuna oleellisen ja kätkee tarpeettomat yksityiskohdat abstraktio on abstrahoinnin tulos, siis tietystä näkökulmasta katsottuna oleellisia asioita sisältävä kuvaus kohteesta Ohjelmiston malli: abstraktio ohjelmistosta (näkemys, kuvaus)

5 Eri abstraktiotason mallit
Hyvin abstrakti kuvaus talosta: 78m2, 2h + keittiö + sauna Hieman konkreettisempi kuvaus:

6 Tarkentuva malli, näkökulman valinta
Talon sähkösuunnitelma:

7 Ohjelmistojen mallintamisesta ja kuvaamisesta
Ohjelmistotuotannossa on kyse mallintamisesta Toisaalta ohjelmiston käsittelemää liiketoimintaa Toisaalta ohjelmiston sisäistä rakennetta Näiden tulisi vastata toisiaan Tietojärjestelmän kehittäminen on yhteistyötä Ohjelmiston kehittäjien ja muiden sidosryhmien ymmärrettävä toisiaan Projektiin tulevan uuden henkilön pystyttävä muodostamaan yleiskuva järjestelmästä Tämän vuoksi muodostamme järjestelmän mallin ja siihen perustuvia kuvauksia eri tarpeisiin

8 Ohjelmistojen mallintaminen
Vaatimusmäärittelyssä mallinnetaan mitä järjestelmän toiminnallisuudelta halutaan Suunnittelussa mallinnetaan Järjestelmän arkkitehtuuri eli jakautuminen tarkempiin komponentteihin Yksittäisten komponenttien suunnitelma Toteuttaja käyttää näitä malleja ja luo konkreettisen tuotteen Vaatimuksien mallit yleensä korkeammalla abstraktiotasolla kuin suunnitelman mallit Vaatimus ei puhu ohjelman sisäisestä rakenteesta toisin kuin suunnitelma

9 Mallinnuskielet Mallintamiseen tarvitaan kieli
Voidaan käyttää luonnollista kieltä (suomea) Suosittua on käyttää visuaalista kieltä (UML) Vaatimusmäärittely- ja suunnitteluvaiheessa Kaavio itsessään on vain harvoin riittävä, lisäksi tarvitaan sanallista selostusta Joskus (harvoin) voidaan käyttää formaalisti määriteltyjä kieliä

10 Formaalit menetelmät Formaalit menetelmät (Z, B method, Alloy)
Perustuvat matematiikkaan, logiikkaan Ideana mahdollistaa automaattinen päättely, mallin ominaisuuksien todistaminen Käytössä joillakin erityisalueilla, kuten protokollien tai mikropiirien suunnitteleminen Suosiota vähentää tarvittavan koulutuksen määrä Myös itse ohjelma on malli, jota voidaan lisäksi koneellisesti suorittaa

11 Ohjelma itsessään on malli
Tietojenkäsittelytehtävän suorituksen malli ohjelmointikielen käsittein esitettynä Suoritettava malli: ohjelman sisältää kaiken suorituksen kannalta tarpeellisen tiedon Ohjelmakoodiin (=mallin esitys) voi sisältyä myös suorituksen kannalta tarpeetonta informaatiota, kommentteja Kuvaavat (mallintavat) ohjelmaa tai sen suoritusta Ollakseen hyödyllisiä tulisi olla korkeammalla abstraktiotasolla kuin ohjelmakoodi

12 Kommentit ohjelmakoodissa
Esim. i=1; // i saa arvon 1 hyödytön kommentti, sama abstraktiotaso Parempi: // muunnetaan eurohinnat dollareiksi for (int i=0; i<euros.length; i++) { dollars[i] = ExchangeRate*euros[i]; }

13 Kommenttien käyttäminen mallintamiseen
Ohjelmakommenttien tarjoamat abstraktiot ohjelmasta eivät perustu mihinkään yhtenäiseen käsitteistöön, vaan ovat ohjelmoijan vapaasti muodostettavissa eritasoisia taso ei mitenkään näy esitetään luonnollisella kielellä, dokumentointijärjestelmä (esim. JavaDoc) voi asettaa jotain syntaktisia ehtoja

14 Ohjelman annotaatiot Ohjelman annotaatiot ovat kommenttien kaltaisia, mutta formaalimmin määriteltyjä Esim @Identity int id; Määrittelee, että kenttä id toimii olion identiteettinä Identiteetin käsite puolestaan määritellään annotaatiota hyödyntävässä paikassa Annotaatiot toimivat usein samalla tai samankaltaisella abstraktion tasolla

15 Oliomallinnus Suosituimmaksi tavaksi ohjelmistojen mallintamiseen on noussut oliomallinnus Perustuu oletukseen, jonka mukaan minkä tahansa järjestelmän katsotaan voivan muodostua olioista, jotka yhteistyössä toimien ja toistensa palveluja hyödyntäen tuottavat järjestelmän tuottamat palvelut Eli järjestelmä tarjoaa joukon palveluja Nämä palvelut toteuttavat asiakkaan vaatimukset Järjestelmä rakentuu oliosta, jotka toteuttavat järjestelmän palvelut Oliot ovat itsessään osajärjestelmiä, jotka tarjoavat palveluja toisille olioille ja käyttävät toisten olioiden palveluja

16 Unified Modeling Language eli UML
Oliomallinnusta varten kehitetty standardoitu kuvaustekniikka Taustalla joukko 90-luvun alussa kehitettyjä kuvaustekniikoita, nykyinen versio 2.2 Vanhojen standardien mukaisia kaavioita näkyy yhä UML:ssä nykyään 13 esityyppistä kaaviota Eri näkökulmille omat kaavionsa UML standardi ei määrittele miten ja missä tilanteissa kaavioita tulisi käyttää Tätä varten olemassa useita oliomenetelmiä Menetelmät antavat ohjeistoa UML:n soveltamiselle määrittelyssä ja suunnittelussa

17 UML:n kaaviotyypit

18 UML:n käyttötapoja UML-standardi määrittelee kaavioiden syntaksin eli oikeaoppisen piirtotavan suhteellisen tarkasti Eri versioiden välillä pieniä muutoksia Jotkut suosivat UML:n käyttöä tarkasti syntaksia noudattaen Kaaviot piirretään tällöin usein tietokoneavusteisella suunnitteluvälineellä On myös UML:n luonnosmaisemman käytön puolestapuhujia Kuvia piirretään usein valkotaululle tai paperille ns. ketterä mallinnus Kaaviot ennenkaikkia kommunikoinnin apuväline Tärkeimmät kuvat ehkä siirretään sähköiseen muotoon Digikuva tai uudelleenpiirto editorilla

19 Käsin piirretty luonnosmainen kaavio

20 Kurssin sisältö Käyttötapausmalli: UML:n käyttötapauskaaviot
Käyttäjien vaatimusten dokumentointi Luokkamalli: UML:n luokkakaaviot Tapa määritellä oliota ja olioiden välisiä suhteita Olioiden yhteistoiminnan kuvaaminen UML:n sekvenssikaaviot ja kommunikaatiokaaviot UML:n soveltaminen ohjelmiston kehittämisessä Vaatimusmäärittely, arkkitehtuurisuunnittelu, oliosuunnittelu, toteutus Miten UML liittyy kaikkeen tähän? UML:n tila- ja aktiviteettikaaviot Hieman vähemmän käytettyjä mutta joskus hyödyllisiä kaavioita


Lataa ppt "– Ohjelmistojen mallintaminen, mallintaminen ja UML"

Samankaltaiset esitykset


Iklan oleh Google