Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Tässä esityksessä on piilotettu osa dioista

Samankaltaiset esitykset


Esitys aiheesta: "Tässä esityksessä on piilotettu osa dioista"— Esityksen transkriptio:

1 Tässä esityksessä on piilotettu osa dioista
Mallinnus ja UML mallinnus dokumentoi vaatimukset&toiveet ja suunnitelmat (määrittelykuvasto, suunnittelukuv.) UML-kaaviot visualisoivat dokumentoinnin, jolloin todellisuus havainnollistuu ja strukturointu helpottavat kommunikointia yhteisen ymmärryksen löytämiseksi eri mallit tarkastelevat eri näkökulmista järjestelmää

2 Tarinasta tietojärjestelmäksi
Selvitetään asiakkaan ongelma Tuotetaan käyttötapauksia Tuotetaan liiketoiminnan prosessikaaviot (aktiviteettikaavio) Iteroidaan ja protoillaan Toiminnallinen määrittely, esim. Product Backlogiin Tuotetaan (sovellusalueen) luokkakaavioita Määritellään arkkitehtuuri (Sprint Backlog) Rajapinnat (luokkakaaviot ja sekvenssikaaviot) Koodataan ja testataan Iteratiivinen prosessi voisi olla 1. Mallinnuskierros -> ohjelmiston toteutusta (v. 0.1) Käyttötapaukset (Use Case Diagram) Luokkakaaviot (Class Diagram) Yhteistoimintakaaviot (Collaboration Diagram) 2. Mallinnuskierros -> ohjelmiston toteutusta (v. 0.2) Tilakaaviot (State Chart Diagram) Sekvenssikaaviot (Message Sequence Diagram) 3. Mallinnuskierros -> ohjelmiston toteutusta (v. 0.3) 4. Mallinnuskierros -> ohjelmiston toteutusta (v. 0.4) Komponenttikaaviot (Component Diagram) Sijoittelukaaviot (Deployment Diagram)

3 Vaihejakomalli (ns. vesiputous)
(Ns. vesiputousmalli) Määrittely ja kuvaus toiminnan kuvaus tietosisältö rajapinnat(käyttäjät) vaatimukset toiminnalle Arkkitehtuuri infrastruktuuri tietovarastot Tietoliikenne suojaukset, varmistukset Tekninen suunnittelu määrittelyn tarkennus ohjelmiston suunnittelu Tekninen toteutus ohjelmointi dokumentointi Testaus

4 Unified Modeling Language (UML)
”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin, visualisointiin, rakentamiseen ja dokumentointiin tarkoitettu kieli.” [UML Specification 2003] kaavioiden piirtostandardi yhdistelmä 40 viime vuoden aikana kehitetyistä notaatioista standardisoi piirtotapaa, vaikka ei ole kovin tarkka Sisältää kymmenkunta kaaviotyyppiä eri vaiheita (vrt. vesiputous) varten eri mallit osoitteessa tarkat kuvaukset ja standartointi Linkkejä mallinnusohjelmiin, ks. muistiinpanot Mallinnusohjelmia on runsaasti tarjolla Rational Rose ( System Architect ( Visual UML ( Poseidon ( Prosa ( Jotkin piirto-ohjelmat tukevat UML-notaatiota Tässä opintojaksossa käytetään MS-Visio –nimistä ohjelmaa

5 UML-kaaviotyypit

6 UML-kaavioiden hierarkia
UML-kaaviot rakennekaavio aktiviteettikaavio käyttäytymiskaavio luokkakaavio komponenttikaavio oliokaavio käyttötapauskaavio sijoittelukaavio vuorovaikutuskaavio .. koostekaavio pakkauskaavio sekvenssikaavio ajoituskaavio kommunikaatiokaavio kokoava vuorovaikutuskaavio tilakaavio UML-kaavioiden hierarkia Luokkakaavio: järjestelmän tietosisältö ja käytettävissä olevien luokkien tarjoamat palvelut : määrittelytaso, suunnittelutaso Oliokaavio: järjestelmän tietosisältö : määrittelytaso, suunnittelutaso Komponenttikaavio: toteutuskaavio eli mistä komponenteista ohjelmisto koostuu Sijoittelukaavio: toteutuskaavio eli mihin komponentit sijoitettu suoritusaikana? Käyttötapauskaavio: mitä järjestelmällä tehdään, kirjoitettu kuvaus tärkeää: määrittelytaso, voidaan kuvata eri tasoilla Sekvenssikaavio: vuorovaikutuskaavio palvelun toteuttaminen aikajärjestyksessä Kommunikointikaavio: vuorovaikutuskaavio palvelujen toteuttaminen olioiden välillä

7 UML-kieli UML kaavioita (diagram) käytetään mm. seuraavasti Use Case
Käyttötapauskaavio: kuvaa ulkoiset toimijat ja heidän yhteydet sovelluksen käyttötapauksiin. Korkean tason toiminnallisuuden kuvaus eri näkökulmista. Kuvaa järjestelmän tarjoamia palveluita käyttäjän kannalta Sequence Viestiyhteyskaavio: kuvaa olioiden välistä dynaamista viestinvälitystä (=mitä viestejä olioiden välillä on, kun toteutetaan eri toimintoja). Dynaaminen, järjestelmän käyttäytymisen kuvaus toimintojen näkökulmasta- Class Luokkakaavio: kuvaa järjestelmän luokkarakenteen ja luokkien väliset yhteydet (luokka=järjestelmän käsittelemä asia). Staattinen, järjestelmän rakenteen kuvaus, kertoo tietosisällöstä. State Tilakaavio: täydentää luokan kuvausta, kuvaa luokan kaikki mahdolliset tilat, joihin luokan ilmentymä (=olio) joutuu sekä kuvaa tilasiirtymän (=mikä aiheuttaa olion siirtymisen tilasta toiseen) Activity Toimintokaavio: kuvaa tapahtumien kulun aikajärjestyksessä, käytetään operaatioon liittyvien tapahtumien kuvaamisessa (vastaavanlainen kuin uimaratamallin kaavio), vrt. Liiketoiminnan prosessikaaviot Collaboration Yhteistyökaavio: kuvaa luokkien välistä yhteistyötä, viestien välitystä (kuvaa samaa asiaa kuin viestiyhteyskaavio) Package Pakkauskaavio voi sisältää lähes mitä elementtejä tahansa. Pakkauksissa voi esimerkiksi olla Java-luokkia. Pakkausten välille syntyy riippuvuuksia/yleistyksiä jne. Pakkausten avulla helpompi hahmottaa kokonaisuuksia ja eri elementtien välisiä riippuvuuksia (katkoviiva, nuoli riippuvuuteen). Lähde: Vaatimusmäärittelyt: käyttötapauskaaviot, hyvin yksinkertaiset luokkakaaviot (käsitteellinen malli), sekvenssikaaviot Arkkitehtuurisuunnittelu: komponentit, kehysarkkitehtuuri…luokkakaavio Oliosuunnittelu: luokkakaaviona attribuutit, metodit, assosiaatiot ja periytyminen

8 Käyttötapauskaavio (use case diagram)
Käyttötapaus (ellipsi) looginen, tavoitteellinen tehtäväkokonaisuus Se on usein järjestelmälle asetettava toiminnallinen vaatimus Toimija (actor) (tikkuukko/laatikko) on rooli (ihminen tai toinen ulkoinen järjestelmä), joka on jotenkin vuorovaikutuksessa järjestelmään. Käyttötapauksilla Periytymissuhde: tarkennussuhde kolmio perittävään Laajennussuhde: riippuvuussuhdenuoli laajennuksesta yleisempään <<extended>> Käyttötapauskaavio kertoo, mitä järjestelmä tekee tai mitä sillä voi tehdä. Käyttötapauskaavion elementit ovat: Toimija, joka käynnistää käyttötapauksen Käyttötapauksen tekstikuvaus • Sisältää tyypillisesti ainakin – Käyttötapaukseen liittyvät käyttäjät – Käyttötapauksen kulku askelittain • Usein myös: – Annettavat syötteet ja saatavat tulosteet / tulokset – Säännöt, vaatimukset, määrät – Suhteet muihin tapauksiin, erikois- ja poikkeustilanteet periytymissuhde

9 Käyttötapauskartta kuvaus yleisesti järjestelmän käytöstä
Yksi käyttötapaus korostettu

10 Esimerkki käyttötapauskartasta

11 Luokkakaavio Ohjelmointikielen luokat Tietokannan taulut
Sivuston rakenne nimi attribuutit prosessit (metodit) vastuut Kirjautuminen Kayttajatunnus: Teksti #Salasana:Anum{8..15} -Istunto;Double Kirjaudu_sisaan() Kirjaudu_ulos Tunnistaa kirjautumistilansa Keltainen kooste ja assosiaatio: Hyväkuntoisesta puusta voidaan tehdä yhdestä ääretön määrä tukkeja, kuitenkin, jos ei puuta ei tukkeja. Puuluokan oliolla mänty on jokin assosiaatio luokkaan puu (yllätysyllätys) Näkyvyyden tasot esim. attribuuteille ja metodeille merkitään -yksityinen, #suojattu, +julkinen ja ~paketissa näkyvä Kirahvileijona kuvana() Osoite[3] osoitteessa on 3 dimensiota (siis taulu) Huom. Toimijakin voi olla luokka, jos sille halutaan ominaisuuksia jne. Esim. Nordea voisi olla pankki-toimijaluokan instanssi

12 Luokkakaavion yleistys

13 Pakkaus (Package) Tarkastussumma Käyttöliittymä
Paketti käyttöliittymä riippuu paketista tarkastussummasta Tarkastussummapaketissa (Pakkaus 2) voisi olla esim. Luokat MD5 ja SHA1 ja Käyttöliittymäpaketissa (Pakkaus 1) luokat ikkuna. Ikkunan ulkonäkö riippuu tarkistussumman tuloksesta- Pakkaus-elementtiä käytetään ryhmittelyyn Kommentti on erittäin tärkeä, koskee koko kaaviota

14 Kommentti Tarkastussummapaketissa (Pakkaus 2) voisi olla esim. Luokat MD5 ja SHA1 ja Käyttöliittymäpaketissa (Pakkaus 1) luokat ikkuna. Ikkunan ulkonäkö riippuu tarkistussumman tuloksesta- Pakkaus-elementtiä käytetään ryhmittelyyn Kommentti on erittäin tärkeä, koskee koko kaaviota koskee koko kaavioryhmään tai voidaan kohdistaa yhteysviivalla määrättyyn kaavioon

15 Tilakaavio luokan tila tilojen väliset siirtymät [väärin] [oikein]
kirjautunut ulkona [väärin] [oikein] luokan tila tilojen väliset siirtymät tilanmuutosmalli (state change model) • Järjestelmän tilan mahdolliset muutokset – Aktiviteettikaavio (activity diagram) • Kontrollin kulku prosessissa tai olion operaatiossa • Sisältää ehtoja ja haaraumia – Tilakaavio (statechart diagram) • Olion tilamuutokset esitetään tilakoneena • Tapahtumat (event) laukaisevat tilasiirtymiä (state transition) ja • Tuottavat toimintoja (actions)

16 Sekvenssikaavio

17 Sekvenssi- eli vuorovaikutuskaavio
ModelViewControl SOA Lisäksi se paras tapa kirjoittaa sovellusten Service Oriented Architecture, jossa voit kirjoittaa / kiteyttää yrityksesi sääntöjä erillinen web-palvelu kuin Data-Access Layer, jossa palvelu on vain kyse Model / Data liittyviä juttuja . Also, it s the best way of writing applications in a service oriented architecture, where you write/encapsulate your business rules in a separate web-service than the Data-Access Layer, where the service is only dealing with Model/Data related stuff.

18 Suhdenuolet änne kaikkea kivaa...

19 Suhdenuolet 2

20 riippuva <<stereotyyppi>> itsenäinen Suhteet Opiskelija PC käyttää +käyttäjä +väline  Viivat Dokumentoivassa mallentamisessa voidaan käyttää melko suppeaa viivavalikoimaa. Tällöin riippuvuudet selitetään <<lisätekstein>> ja kommentein. Nuoli on suunnattu viiva Assosiaatioviiva: Yhtenäinen, nuoli osoittaa (navikoitavan)suunnan Omistaja->auto, omistaja omistaa auton Riippuvuus: Katkoviivallinen, nuoli osoittaa laajentajan (<<extend>>)/sisältyvän/sen,josta riippuvainen jne… Esim. nimetty olio T1259:Tilaus -----<<instance of>> -- Tilaus-luokka Tarkennussuhde (katkoviivalla): Se, jota tarkennetaan on kolmion päässä Mm. periytyminen on täysviivalla, jossa kolmio yliluokkaan päin) Riippuvuus on suhde kahden elementin välillä. Katkoviivallinen nuoli, joka osoittaa itsenäiseen elementtiin. Stereotyypillä kerrotaan tarkemmin, minkälaisesta riippuvuudesta kysymys. Ostoskorilla on riippuvuussuhde Tuotteeseen, sillä kun koriin lisätään tuote, tuote välitetään parametrina. Jos itsenäisessä==riippumattomassa==nuolenpuoleinen tapahtuu muutos, vaikuttaa se riippuvaan elementtiin. Tarkennussuhde on suhde kahdella eri abstraktitason välillä (elementit ”samoja”, mutta taso eri. Se, jota tarkennetaan on kolmion päässä, esim. luokka A tarkentaa <<interface>>-elementin B, kun luokasta A lähtee katkonuoli kohti B:tä. <<Stereotyypit>> kutsusuhde: esim. <<call>> <<use>> <<create>> <<destroy>> olion tyyppi: esim. <<interface>> <<subsystem>> <<utility>> =pakkaus <<process>>=aktiivinen olio <<thread>> <<persistent>> =pysyvä olio DB:ssa Stereotyypit; aktori Boundary: objekteja, joitlla aktorit(esim. käyttäjä) kommunikoivat järjestelmän kanssa=UI Control: business-objekteja tai web-palveluja, jotka mm. suodattavat näytettävän datan, businesslogiikka?=BL Entity: dataa, jota Boundary-objektit hyödyntävät=DB

21 Suhdeviivojen muita lisätunnisteita
Muut lisämerkit <<stereotyyppi>> riippuvuusviivalle Verbi assosiaatioviivalle +Rooli assosiaatioviivalle Kerrannaisuus n 0..* assosiaatiolle Salmiakki kertoo vahvan tai normaalin koosteen assosiaatiolle Vahvassa (musta salmiakki) kokonaisuuden hävitessä osat ovat elinkelvottomia Normaalissa osat pystyvät jatkamaan elämäänsä ”kokonaisuuden” hajotessa (Jaetussa koosteessa salmiakkipään kerrannaisuus >1) Riippuvuus on suhde kahden elementin välillä. Katkoviivallinen nuoli, joka osoittaa itsenäiseen elementtiin. Stereotyypillä kerrotaan tarkemmin, minkälaisesta riippuvuudesta kysymys. Ostoskorilla on riippuvuussuhde Tuotteeseen, sillä kun koriin lisätään tuote, tuote välitetään parametrina. Tarkennussuhde on suhde kahdella eri abstraktitason välillä Se, jota tarkennetaan on kolmion päässä <<Stereotyypit>> kutsusuhde: esim. <<call>> <<use>> <<create>> <<destroy>> olion tyyppi: esim. <<interface>> <<subsystem>> <<utility>> =pakkaus <<process>>=aktiivinen olio <<thread>> <<persistent>> =pysyvä olio DB:ssa Stereotyypit; aktori Boundary: objekteja, joitlla aktorit(esim. käyttäjä) kommunikoivat järjestelmän kanssa=UI Control: business-objekteja tai web-palveluja, jotka mm. suodattavat näytettävän datan, businesslogiikka?=BL Entity: dataa, jota Boundary-objektit hyödyntävät=DB riippuva <<stereotyyppi>> itsenäinen

22 Lisää esimerkkejä Assosiaatioluokka (Ilmoittautumisjono)

23 Lisää notaatioita Johdettu assosiaatio kertoo, että voitto saadaan myyntihinta-valmistuskustannukset Rajoitettu attribuutti, raja-arvot aaltosulkuihin Kolmoisassosisaatio

24 Sekvenssikaavio Kutsuja-olio kutsuu Kutsuttava-olion
metodia nimeltä metodiKutsu() • Paksunnettu pystypalkki kuvaa aktivaatiota • Horisonaaliset viivat kuvaavat viestien kulkua Keskeisin tekniikka käyttäytymisen mallintamiseen suunnittelutasolla UML:ssä • Visualisoi olioiden välisen viestinvälityksen – Viesti (message) kuvataan nuolena oliosta toiseen – Kaaviossa aika kulkee ylhäältä alas, viestit merkitään aikajärjestykseen – Viesti aktivoi metodin (eli palvelun tai operaation) suorituksen vastaanottavassa oliossa – Aktivaatio (activation) kuvataan suorakaiteena olion elämänviivassa (lifeline)

25 UML general xxx xxx xxx xxx <<tarkennussuhde>>
riippuvuusuhde Stereotyypillä voidaan määrittää uusia elementtejä, haluttuun kuvioon liitetään stereotyypin nimi väkästen sisään <<xxxx>> <<Stereotyypit>> kutsusuhde: esim. <<call>> <<use>> <<create>> <<destroy>> olion tyyppi: esim. <<interface>> <<subsystem>> <<utility>> =pakkaus <<process>>=aktiivinen olio <<thread>> <<persistent>> =pysyvä olio DB:ssa Stereotyypit; aktori Boundary: objekteja, joitlla aktorit(esim. käyttäjä) kommunikoivat järjestelmän kanssa=UI Control: business-objekteja tai web-palveluja, jotka mm. suodattavat näytettävän datan, businesslogiikka?=BL Entity: dataa, jota Boundary-objektit hyödyntävät=DB

26 Ei UML: Yhteyskaavio=sidosryhmäkaavio
Järjestelmän suhde sidosryhmään prosessisymboli ulkoisen tahon symboli tietovuosymboli

27 Pizzan tilaus ja toimitus

28 Arkkitehtuuri Aktorit keskustelevat vain Boundaryn (UI.n) kanssa
Pelisäännöt Aktorit keskustelevat vain Boundaryn (UI.n) kanssa UI kommunikoi aktorien ja BL:n kanssa DB puhuu vain Controlin (BL:n) kanssa BL puhuu UI:n ja Entityn (DB:n) kanssa

29 Esimerkki. Sisäänkirjautuminen
Käyttötapauskaavio Prototyyppi X Sekvenssikaavio Luokkakaavio On suhde

30 EntityBoundaryControl DB-UI-BL
ModelViewControl EntityBoundaryControl DB-UI-BL Olio on kokonaisuus (entity), Samanrakenteiset oliot kuuluvat samaan luokkaan (class) Olio on luokan ilmentymä (instance)


Lataa ppt "Tässä esityksessä on piilotettu osa dioista"

Samankaltaiset esitykset


Iklan oleh Google