Tietojärjestelmät ja Systeemisuunnittelu 2/2001 Tietojärjestelmät ja Systeemisuunnittelu 010557001 Luennoitsija: Tapio Lammi e-mail: tapi@iki.fi 1
Unified Modelling Language 1 / 2
UML:n tarjoamat työkalut Käyttötapauskaavio Luokkakaavio Oliokaavio Sekvenssikaavio Vuorovaikutuskaavio Tilakaavio Aktiviteettikaavio Komponenttikaavio Ajonaikaiskaavio
Käyttötapauskaaviot Tarjoaa työkalut, joilla kuvataan järjestelmään liittyvät ulkoiset toimijat ja tavat, joilla nämä järjestelmää käyttävät. Mahdollistaa ulkoisten rajapintojen löytämisen ja dokumentoinnin
Käyttötapauskaaviot - peruskomponentit 1 Toimija Käyttäjä (rooli) Ulkoinen järjestelmä jokin järjestelmän osa Käyttötapaus Suoritettava operaatio Ulkopuolelta tuleva heräte
Käyttötapauskaaviot - peruskomponentit 2 Yksisuuntainen yhteys Kuvaa herätteen suunnan Yhdistää herätteen tekijän operaatioon Riippuvuus Kuvaa riippuvuuden kahden käyttötapauksen välillä Esittää myös riippuvuuden suunnan
Käyttötapauskaaviot - peruskomponentit 3 Yleistys Kuvaa yleistyssuhteen kahden käyttötapauksen välillä Mahdollistaa samankaltaisten käyttötapausten mallintamisen perimishierarkiaan
Käyttötapausten dokumentointi ID <selväkielinen yksikäsitteinen tunniste> Kuvaus <kuvaus käyttötapauksen toiminnasta> Syötteet <tiedot, jotka järjestelmä tarvitsee voidakseen suorittaa operaation> Palaute <toiminteen suorittamisesta käyttäjälle tuleva palaute> Laajentaa <mahdolliset extends-suhteiden tunnisteet> Hyödyntää <mahdolliset uses-suhteiden tunnisteet> Lisätietoja <mahdolliset muut huomioitavat asiat>
Mitä käyttötapauksista saadaan? Rajapintaluokat järjestelmän ulkoisille rajapinnoille Kuvaus yksittäisten operaatioiden saamista syötteistä ja vaadituista tulosteista Riippuvuudet eri rajapintojen välille Mahdollisuus hyödyntää perintää rajapintojen suunnittelussa rakennettavan mallin yksinkertaistamiseksi
Yksinkertainen esimerkki Kaksi henkilöä, mies ja nainen, tekevät kotona erilaisia töitä Mies hakee tv:n mainostauolla itselleen voileipää sekä keittää kahvia Nainen laittaa ruokaa sekä saattaa keittää kahvia
Yksinkertainen esimerkki (jatkoa)
Yksinkertainen esimerkki (jatkoa)
Käyttötapauskaavio - Esimerkki Vaatimuslauseet Tilausten käsittelijän tulee voida luoda tilaus, selata tehtyjä tilauksia, sekä tehdä lähetys tilauksiin liittyen. Jotta tilausta voidaan käsitellä, tulee asiakkaan tietojen löytyä järjestelmästä Tilaus voidaan toimittaa joko kokonaan kerralla tai useampana osatoimituksena Asiakashallinnan tulee voida laskuttaa asiakasta kokonaan toimitetuista tilauksista
Käyttötapauskaavio - Esimerkki (jatkoa)
Käyttötapauskaavio - Esimerkki (jatkoa)
Käyttötapauskaavio - Esimerkki (Mitä saatiin) Operaatiot Tilauksen luonti Tilauksen Seuranta Tilauksen lähetys Osalähetys Laskutus Asiakashaku Tilauksen haku Parametrit kullekin operaatiolle Käyttäjät Tilausten käsittelijä Asiakashallinta Tilauksen lähetys Laskutus Tilauksen seuranta Tilauksen luonti Lähtökohta testauksen suunnittelulle
Käyttötapauskaavio testauksen työkaluna Kun käyttötapauskaavio on tehty: Luodaan tapahtumaketjut kullekin käyttötapaukselle (näin löydetään järjestelmän osat, joihin ko. käyttötapauksella on vaikutusta) Tehdään testitapaukset kunkin käyttötapauksen testaamiseksi Jos tarpeellista, tehdään skripteistä simulaatio, joka simuloi käyttäjien toimintaa Suoritetaan testisarjat aina kun käyttötapaukseen liittyvissä järjestelmän osissa tapahtuu muutos
Käyttötapauskaavion läpikäynti Kun järjestelmä on suunniteltu ja suunnitelmaa lähdetään käymään läpi: Tunnistetaan järjestelmän käyttäjät Tunnistetaan käyttäjän tekemien operaatioiden vaikutus järjestelmään, sen tilaan tai ympäristöön, sekä järjestelmän käyttäjälle antama vaste Käydään läpi sekvenssikaaviot ja varmistetaan toiminnallisuus Kirjataan sekvenssit ja niiden riippuvuus käyttötapauksista
Vihjeitä käyttötapauskaavion suunnitteluun Hyvin suunniteltu käyttötapauskaavio Kuvaa järjestelmän staattista rakennetta Kuvaa ainoastaan ne käyttäjät ja käyttötapaukset, jotka ovat välttämättömiä toiminnan ymmärtämisen kannalta Kuvaa toiminnat yhtenäisellä yksityiskohtien tasolla Sisältää riittävän informaation järjestelmän toiminnan ymmärtämiseksi
Luokkakaavio Tarjoaa työkalut järjestelmän staattisen rakenteen kuvaamiselle Kuvaa järjestelmästä: Loogiset kokonaisuudet Mahdolliset operaatiot Eri kokonaisuuksien tietosisällöt Eri kokonaisuuksien väliset suhteet toisiinsa nähden
Luokkakaavio - peruskomponentit Perusabstraktio Luokka sisältää operaatiot ja ominaisuudet
Luokkien väliset suhteet - Assosiaatio Kuvaa yhteyden kahden luokan välillä Dokumentoi luokkien välisen riippuvuuden roolin Kuvaa assosiaatioiden määrän
Luokkien väliset suhteet - Koosterakenne Luokkien muodostuminen muista luokista Erikoistapaus assosiaatiosta Dokumentoi myös koosterakenteiden määrän
Luokkien väliset suhteet - Periytyminen Kuvaa rakenteen jossa luokan ominaisuudet siirtyvät myös aliluokalle Yhdestä luokasta pystytään perimään useita luokkia Yksi luokka voi periä ominaisuutensa useilta luokilta
Rajapintaluokat Rajapintaluokalla kuvataan moduulin tai luokan ulospäin tarjoama rajapinta Rakenne yleensä jaetaan ennen toteutusta rajapinta- ja toteutusluokkiin.
Luokkakaavio - esimerkki
Luokkakaavio - Jatkoa Käyttötapauskaavioesimerkille
Relaatiomallin kuvaus luokkakaaviolla Määrittele luokat, joihin kuuluvien olioiden tila on pysyvä Tee luokkakaavio ja merkitse luokat pysyviksi (ominaisuus löytyy yleensä suunnittelutyökalusta) Määrittele luokkien data-alkiot (attribuutit) ja kiinnitä erityisesti huomiota luokkien välisten suhteiden mallintamiseen Poista mallista mahdollisesti relaatiomallin kannalta mahdottomat suhteet (n-n yhteydet, syklisyydet luokkien välisissä suhteissa jne.) Suunnittele varsinaisen toimintoketjuihin liittyvä logiikka kerrokseksi pysyvien olioiden päälle
Esimerkki - Oliomallista relaatiomalliin Opiskelija Etunimi Sukunimi Opiskelijanumero Sotu Opintosuoritus KurssiNumero OpiskelijaNumero Arvosana Kurssi KurssiNimi KurssiNumero Pitäjä Opintoviikkoja
Vihjeitä luokkakaavion rakentamiseen Hyvin rakennettu luokkamalli Kuvaa järjestelmän staattisen rakenteen Sisältää ainoastaan välttämättömät elementit järjestelmän rakenteen ymmärtämiseksi Kuvaa yksityiskohdat yhtenäisellä abstraktiotasolla menemättä liiallisiin yksityiskohtaisuuksiin Sisältää riittävästi informaatiota koko järjestelmän rakenteen kuvaamiseksi
Piirto- ja nimeämisteknisiä vihjeitä Nimeä luokkakaaviot kuvaavilla nimillä Suunnittele kaavio siten, että minimoit risteävien viivojen määrän Jaottele loogisesti yhteen kuuluvat luokat myös kaaviossa lähekkäin Käytä värejä ja sivuhuomautuksia korostamaan tärkeitä kohtia kaaviossa Älä sotke samaan luokkakaavioon liian monentyyppisiä suhteita luokkien välille