Ohjelmistojen mallintaminen, mallintaminen ja UML

Samankaltaiset tiedostot
Ohjelmistojen mallintaminen

Ohjelmistojen mallintaminen, mallintaminen ja UML

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Ohjelmistojen mallintaminen. Matti Luukkainen

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistotekniikan menetelmät, UML

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistotekniikan menetelmät, kevät 2008

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Ohjelmistojen suunnittelu

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

TIE Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

Hieman lisää malleista ja niiden hyödyntämisestä

UML-kielen formalisointi Object-Z:lla

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintaminen

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

Ohjelmistojen mallintaminen, kertausta

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistotekniikan menetelmät, koe

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistojen mallintaminen, mallinnustekniikat käytännössä

Ohjelmistojen mallintaminen, sekvenssikaaviot

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

UML- mallinnus: Tilakaavio

Analyysi on tulkkaamista

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

UML Luokkakaavio 14:41

Ohjelmistojen mallintaminen

Olioiden yhteistyön mallintaminen

Suunnitteluvaihe prosessissa

Vaatimusten hallinta ja vaatimusmäärittely

Unified Modeling Language

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

Luokka- ja oliokaaviot

Ohjelmistojen mallintaminen

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Prosessien ja toiminnan kuvaamisen kehittämiskohteet, tasot, näkökulmat ja esimerkit

Ohjelmistotuotanto, kuvaustekniikat Syksy Kuvaustekniikat. Miksi kuvaustekniikoita? Abstraktiotasot. Abstrahointi UML

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä

Ohjelmiston vaatimusmäärittely. tietoteknisen järjestelmän osat

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Mallinnus. 5. Järjestelmämallit. Abstraktiot. Mallinnuksen etuja. Arkkitehtuurimalli. Yhteysmallit. Ohjelmistotuotanto, järjestelmämallit Kevät 2005

Määrittelyvaihe. Projektinhallinta

Paikkatiedon mallinnus Dokumentoinnin ymmärtäminen. Lassi Lehto

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

käyttötapaukset mod. testaus

5. Järjestelmämallit. Mallinnus

Johdantoluento. Ohjelmien ylläpito

Kertaus: yleistys-erikoistus ja perintä

Tietokannan suunnittelu

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Ohjelmistojen mallintaminen

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

The OWL-S are not what they seem

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu

Mallinnus UML-yleiskatsaus

Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita.

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Oleelliset vaikeudet OT:ssa 1/2

Olioperustaisuus (object oriented)

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustaisuus (object oriented)

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustainen ohjelmistokehitys

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

Tietokantojen suunnittelu, relaatiokantojen perusteita

UML metamallina. Seminaariesitelmä Minna Majuri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.

Ohjelmistoarkkitehtuurit. Kevät

Kansallinen ASPAtietojärjestelmä

UML:n yleiskatsaus. UML:n osat:

Vaatimusten keräys ja hallinta

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

sovellussuunnitteluun

TIE = JOTU. VH5 - MagicDraw

Luokkakaavion laatiminen

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Ohjelmien automaattisen verifioinnin reunamailla

Koulutuksen suhdannevaihtelut. Zeppeliinistä suihkukoneaikaan

UML -mallinnus Viestiyhteyskaavio EERO NOUSIAINEN

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Tiedonsiirto- ja rajapintastandardit

Ohjelmistojen mallintaminen. Luento 3, 9.11.

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

Enterprise SOA. Nyt. Systeemi-integraattorin näkökulma

Johdatus sovellussuunnitteluun, s99, osa1 Helsingin yliopisto;/tktl Harri Laine 1. Johdatus sovellussuunnitteluun

Johdatus sovellussuunnitteluun. Johdatus sovellussuunnitteluun

Johdatus sovellussuunnitteluun, s99, osa1 Helsingin yliopisto;/tktl Harri Laine 1

Ohjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia

ADM Arkkitehtuuritason automaatio #tdarc

Transkriptio:

582104 Ohjelmistojen mallintaminen, mallintaminen ja UML 1

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

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 3

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) 4

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

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

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 7

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 8

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ä 9

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 10

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 11

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

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 13

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 14

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 15

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 16

UML:n kaaviotyypit 17

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 18

Käsin piirretty luonnosmainen kaavio 19

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 20