Toiminnot eli käyttäytyminen Tieto eli rakenteelliset ominaisuudet Olio (ks. määritelmä): rajattavissa ja yksilöitävissä oleva asia tai käsite, joka on merkityksellinen käsillä olevan tarkastelun kannalta ja joka kattaa sekä rakenteen(tilan) että käyttäytymisen. tiedot toiminnot tiedot toiminnot 1
MVC-malli: ohjelmiston suunnittelukehys Model: mallinnettavan todellisuuden kuvaus Liiketoimintaluokat vastaavat merkityksellisesta tiedosta View: käyttäjän näkymä mallista Käyttöliittymäluokat vastaavat syötteistä ja tulosteista Controller: toiminnan ohjaus Ohjainluokat vastaavat liiketoimintalogiikasta ~ viestien välittämistä Menetelmä? Coding standards Model Library management Process Project management Method Techniques Deliverables Tools Roles Life-cycle Guidelines 2
UML käyttötapaus- ja arkkitehtuurilähtöinen iteratiivinen ja inkrementaalinen Prosessimalli: tehtäväkokonaisuudet vaiheet iteraatiot Tulokset: käyttötapausmalli, analyysimalli, UML- OMT ja OMT++ yhteiset piirteet? erot? 3
Esimerkkitehtävä käyttötapausmalli: Tehtävänäsi on suunnitella tietojärjestelmä poliisin yksilölle esitetyn kohdealueen kuvauksen mukaisesti: Yksikössä on koulutukseltaan kahdenlaisia poliiseja: konstaapelit ja rikostutkijat. Poliisit tunnistetaan heidän virkamerkkinsä numeron mukaan ja lisäksi järjestelmään on kirjattu heidän sosiaaliturvatunnuksensa (SOTU), nimi sekä numero kotipuhelimeen. Rikostutkija toimii tutkimusten ajan esimiehenä konstaapeleille. Poliisit tutkivat rikoksia, jotka on ryhmitelty henkirikoksiin, petoksiin jne. Rikoksista rekisteröidään myös tapahtuma- ja ratkaisupäivämäärä sekä tutkimuksen tila - joko ratkaistu tai toistaiseksi ratkaisematon. Rikokseen liittyy epäiltyjä, joiden tiedoista poliisi kirjaa järjestelmään SOTUn ja nimen lisäksi tärkeimmät yhteystiedot mahdollisten yhteydenottojen ja tarkkailun varalta. Tutkimusten ratkettua rikollisten tiedot (samat kuin epäillyillä) lisätään järjestelmään poliisin toimesta. Rikolliselle luodaan samalla rikosrekisteri, jos tätä ei vielä entuudestaan ole. Rikosrekisteri sisältää järjestelmään jo aiemmin kirjattuja rikoksia, joten rekisterin tehtävänä onkin yhdistää rikolliset rikoksiin. Järjestelmän tulee sisältää seuraavat toiminnot: rikosten kirjaaminen ja niiden tilan muuttaminen, epäiltyjen ja rikollisten tietojen kirjaaminen sekä rikoksen lisääminen rikosrekisteriin. Käyttötapaukset notaatio: Poliisin tietojärjestelmä Kirjaa sakko Tulostin Kirjaa rikos Poliisi Luo rikosrekisteri <<extend>> Kirjaa rikollinen Muuta rikoksen tila <<include>> 4
Käyttötapaus Ehdot Aktori(t) Heräte Kuvaus 1.. 2.. 3. 4 5... -Vuorovaikutus järjestelmän kanssa -eli syötteet ja tulosteet Poikkeukset Jälkitilanne Esimerkkitehtävä luokkakaavio: Tehtävänäsi on suunnitella tietojärjestelmä poliisin yksilölle esitetyn kohdealueen kuvauksen mukaisesti: Yksikössä on koulutukseltaan kahdenlaisia poliiseja: konstaapelit ja rikostutkijat. Poliisit tunnistetaan heidän virkamerkkinsä numeron mukaan ja lisäksi järjestelmään on kirjattu heidän sosiaaliturvatunnuksensa (SOTU), nimi sekä numero kotipuhelimeen. Rikostutkija toimii tutkimusten ajan esimiehenä konstaapeleille. Poliisit tutkivat rikoksia, jotka on ryhmitelty henkirikoksiin, petoksiin jne. Rikoksista rekisteröidään myös tapahtuma- ja ratkaisupäivämäärä sekä tutkimuksen tila - joko ratkaistu tai toistaiseksi ratkaisematon. Rikokseen liittyy epäiltyjä, joiden tiedoista poliisi kirjaa järjestelmään SOTUn ja nimen lisäksi tärkeimmät yhteystiedot mahdollisten yhteydenottojen ja tarkkailun varalta. Tutkimusten ratkettua rikollisten tiedot (samat kuin epäillyillä) lisätään järjestelmään poliisin toimesta. Rikolliselle luodaan samalla rikosrekisteri, jos tätä ei vielä entuudestaan ole. Rikosrekisteri sisältää järjestelmään jo aiemmin kirjattuja rikoksia, joten rekisterin tehtävänä onkin yhdistää rikolliset rikoksiin. Järjestelmän tulee sisältää seuraavat toiminnot: rikosten kirjaaminen ja niiden tilan muuttaminen, epäiltyjen ja rikollisten tietojen kirjaaminen sekä rikoksen lisääminen rikosrekisteriin. 5
6
Esimerkkitehtävä sekvenssikaavio: Laadi UML-notaation mukainen sekvenssikaavio, joka esittää tuotantolinjaan kuuluvan pulttikoneen käyttötapauksen "kiinnitä runko" alla annetun kuvauksen mukaisesti. Pulttikoneen toiminnan suorittamiseksi siihen kuuluu ohjelmisto, joka sisältää olioluokat anturi, ohjain, pulttikone ja laturi. Liukuhihna antaa pulttikoneeseen kuuluvaan anturiin herätteen rungon ollessa oikealla kohdalla. Tämän jälkeen anturi siirtää ohjausvastuun toiminnan suorittamisesta ohjaimelle. Ohjain siirtää pulttikonetta ennalta määriteltyyn koordinaattipisteeseen 200 ja käskyttää laturia lataamaan pulttikoneeseen tarvittavat pultit syöttökoneen avulla. Jos laturissa ei ole tarvittavaa määrää pultteja, ohjain käskyttää laturia täydentämään laturin syöttökoneen ja lataamaan pulttikoneeseen tarvittavat lisäpultit. Kun pulttikone on ladattu ohjain siirtää sen koordinaattipisteeseen 100 ja käskee pulttikonetta kiinnittämään ensimmäisen pultin. Tämän jälkeen pulttikone siirtyy viisi senttimetriä oikealle ja kiinnittää seuraavan pultin. Pulttikoneen siirtämistä ja pulttaamista suoritetaan kunnes pulttikoneesssa ei ole enää pultteja ladattuna. Tämä palauttaa tiedon ohjaimelle kiinnittämisen loppumisesta, josta lähetetään edelleen tieto anturille. Anturi ilmoittaa liukuhihnalle toiminnan suorittamisesta ja runko siirretään tuotantolinjalle eteenpäin. Esimerkkitehtävä tilakaavio: Hissiin toimintaan voidaan kohdistaa kahdenlaisia herätteitä: tilauksia ja valintoja. Tilaukset tapahtuvat hissin ulkopuolelta tilaat hissin esimerkiksi kerrokseen, jossa sijaitset. Valintoja toisaalta tehdään hissin sisältä. Kun olet hississä, valitset hissin painikkeista sen kerroksen numeron mihin haluat hissin liikkuvan. Täten voit ohjata hissin toimintaa seuraavilla tavoilla. 1) Jos teet tilauksen samasta kerroksesta missä hissi jo on paikalla, hissin tarvitsee vain avata ovensa. 2) Jos taas hissi on tilauksen saapuessa eri kerroksessa kuin tilaaja, lähtee hissi liikkeelle. 3) Hississä tehdessäsi valinnan, joka ei ole sama kerros kuin nykyinen, lähtee hissi liikkeelle. Hissi reagoi liikkeessä seuraavaksi saapuvan kerroksen lähestymiseen. Jos lähestyvästä kerroksesta on tullut tilaus tai on määrätty valinta lähestyvään kerrokseen, hissi pysähtyy kerroksen kohdalle. Pysähdyttyään kerrokseen hissi aina avaa ovensa ja määräajan kuluttua hissi sulkee ovensa. Ovien sulkemisen jälkeen tarkastetaan onko tilauksia tai valintoja tehty (ts. vielä jäljellä juuri toteutetun lisäksi). Jos tilauksia tai valintoja on tehty lähtee hissi liikkeelle. 7
Arkkitehtuureista.. Looginen arkkitehtuuri: -Mitä toimintoja järjestelmä tarjoaa? -Mitä luokkia (tai muita elementtejä) on olemassa ja mitkä ovat näiden väliset yhteydet, ja miten yhteydet vaikuttavat luokkien toimintaan? -Miten luokat ja niiden oliot toimivat yhdessä toteuttaakseen järjestelmän toiminnallisuuden? -Mitkä ovat järjestelmän toimintojen aikarajat? -Mikä on sopiva suunnitelma, jotta järjestelmän kehittäjät voivat seurata toteuttaakseen ja kehittääkseen tätä arkkitehtuuria? UML: -kuvataan käyttötapaus-, luokka-, tila-, ja yhteistoimintakaavioilla. Arkkitehtuureista.. Fyysinen arkkitehtuuri: -Missä ohjelmissa ja prosesseissa luokat ja oliot fyysisesti sijaitsevat? -Missä laitteissa (päätelaitteet, työasemat, palvelimet,..) ohjelmat ja prosessit toimivat? -Mitä laitteita järjestelmässä on ja kuinka ne ovat yhteydessä toisiinsa? -Mitkä ovat eri kooditiedostojen väliset riippuvuussuhteet? Jos tiettyä tiedostoa muutetaan, mitkä muut tiedostot on käännettävä uudelleen? UML: -kuvataan komponentti- ja sijoituskaavioilla (jolle synonyymi käyttööotto-) 8
Arkkitehtuureista.. Rajapinta: -kokoelma operaatioita (niiden kutsumuotoja) -määrittelevät luokan tai komponentin tarjoamat palvelut rajapinta lupaa palvelua, luokka/komponentti toteuttaa näyttö.java laskupalvelu lasku.java laskupalvelu tuotalasku() 9