– Ohjelmistojen mallintaminen, mallintaminen ja UML

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Koostumussuhde Jukka Juslin © Jukka Juslin.
Ohjelmiston tekninen suunnittelu
@ Leena Lahtinen Helia TIETO JA TIETOKONEOHJELMA  TIETOKONEOHJELMA KÄSITTELEE TIETOJA  TIETOJA VOIDAAN KÄSITELLÄ OHJELMASSA VAIN SALLITUILLA.
Tietojärjestelmät 2.
Luokkakaaviot Luokkakaaviot Tekninen suunnittelu.
Tietojärjestelmät ja Systeemisuunnittelu
Mallintarkistus ja sen soveltaminen PLC toimilohko-ohjelmien verifioinnissa AS Automaatio- ja systeemitekniikan projektityöt – loppuesitys Markus.
Tietokannan suunnittelu
Tapahtumasekvenssit = Käyttötapausten realisointi
5 Toimintojen ja tietojen kuvaus
Tekninen suunnit-telu
Olio-mallinnus Tietojärjestelmien suunnittelu KYAMK, Liiketalous, Kouvola Jarkko Ansamäki, 2002.
BPMN ja hiukan prosessien määrittelystä
Päivi Ovaska Tutkijaopettaja LTY/Tite
Tietojärjestelmän suunnittelu
– Ohjelmistojen mallintaminen, kesä 2009
2/2001 Tietojärjestelmät ja Systeemisuunnittelu Luennoitsija: Tapio Lammi
Tietojärjestelmät ja Systeemisuunnittelu
Oliomallittaminen ja UML
SE-02 Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin.
Olioperustainen ohjelmistoprosessi
3. Spesifikaatioiden laatiminen
TIETO JA TIETOKONEOHJELMA TIETOKONEOHJELMA KÄSITTELEE TIETOJA TIETOJA VOIDAAN KÄSITELLÄ OHJELMASSA VAIN SALLITUILLA MENETELMILLÄ.
Oliosuunnittelu.
© Jukka Harju, Jukka Juslin
Käyttöönottokaavio – Deployment diagram Sami Stenius.
Esitutkimus (tarvekartoitus)
Johdanto Teppo Räisänen, Principal Lecturer Oulu University of Applied Sciences, School of Business and Information Management
Koostekaavio – Composite Structure Diagram Kinnula – Kellolampi - Lehtosaari.
– Ohjelmistojen mallintaminen, mallintaminen ja UML.
Mallinnustavat.
Osaamisen ja sivistyksen parhaaksi Valintaperusteiden mallintaminen
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
Komponenttikaavio Lehtonen Iiro, Janne Liikka
Component diagram– Komponenttikaavio J. Pätsi & H. Malmihuhta
Pakkanen * * * Komponenttipohjaisen sovellustuotannon menetelmäpilotti PlugIT-seminaari Annamari Riekkinen ja Kirsi Karvinen FixIT-DoIT / HIS-tutkimusyksikkö.
– Ohjelmistojen mallintaminen Unified Modeling Language (UML)
8. Periytyminen Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö.
Liiketoimintaprosessit ja MS Visio 2010
Ohjelmistotekniikka - Määrittely (Analysis) Kevät 2003 Hanna-Kaisa Lammi LTY/Tite.
Miika Kuusinen LTY/Tietoliikenteen laitos 2003
Tietojärjestelmät ja Systeemisuunnittelu
Avoimen tuotteen hallintamalli Tuotteenhallinnan työpaja
HEIDI, PÄIVI JA ANU Vammaisasioiden oppimis- verkoston koordinaattorit Mikä Innokylä on? Juha Koivisto.
Kurssin aihepiiri: ohjelmistotuotannon alkeita ● [wikipedia]: – Ohjelmistotuotanto on yhteisnimitys niille työnteon ja työnjohdon menetelmille, joita käytetään,
UML-luokkakaavio ● Luokkakaavio (class diagram) kuvaa järjestelmän luokkarakennetta ● Mitä luokkia on olemassa ● Minkälaisia luokat ovat ● Luokkien suhteet.
Laatutyö ja KA Toiminnan kuvaaminen JY:n KA-tiimi
Koulutuksen ja opetuksen järjestämisen prosessit
Prosesseista palveluihin
Liiketoimintaprosessit ja MS Visio 2013
Case: Kansallinen tulorekisteri
Yhteisten tietomäärityksien mallintaminen
OWL2-profiilit Antti Hietasaari.
Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4
OHJELMOINTITAITO ICT02D 12 Leena Lahtinen Helia
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
8. Periytyminen.
Vaatimukset ja käyttötapaukset
Liiketoimintaprosessit ja MS Visio 2010
Mallintamisen metamalli ja notaatiot
Yhteiskehittäminen Innokylässä
Arvioinnista arkipäivää
Ohjelmistotekniikan menetelmät, sekvenssikaaviot
– Ohjelmistojen mallintaminen Unified Modeling Language (UML)
CLT132 Tehtävät (viikko 2).
Vaatimukset ja käyttötapaukset
2. Olio-ohjelmoinnin perusteita
1. Olio-ohjelmointi.
Esityksen transkriptio:

582104 – Ohjelmistojen mallintaminen, mallintaminen ja UML

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

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

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)

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

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

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

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

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ä

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

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

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]; }

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

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

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

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

UML:n kaaviotyypit

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

Käsin piirretty luonnosmainen kaavio

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