Kaaviotekniikoista (erityisesti UML) (ajan riittäessä pikkasen projekteista)

Samankaltaiset tiedostot
Kaaviotekniikoista (erityisesti UML)

Kaaviotekniikoista (erityisesti UML)

Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss , )

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Ohjelmistotekniikan menetelmät, UML

Ohjelmistojen kehittämisessä tarvitaan kaaviotekniikoita

Vaatimusmäärittelyistä

Vaatimusmäärittelyistä

TIE = JOTU. VH5 - MagicDraw

UML:n yleiskatsaus. UML:n osat:

käyttötapaukset mod. testaus

Mallinnus UML-yleiskatsaus

MagicDraw-pikaohje (VH5)

Unified Modeling Language

VH5, JOTU, MagicDraw:n käyttö

UML- mallinnus: Tilakaavio

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

Ohjelmistojen mallintaminen, mallintaminen ja UML

UML - unified modeling language

Visual Case 2. Miika Kasnio (C9767)

UML-kielen formalisointi Object-Z:lla

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistotekniikan menetelmät, kesä 2008

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

Ohjelmistojen mallintaminen kertausta Harri Laine 1

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

UML-mallinnus ja prosessien kuvaaminen Microsoft Visiolla (versio 2003 professional) Jouni Huotari

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

Olioperustaisuus (object oriented)

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

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Ohjelmistotekniikan menetelmät, kevät 2008

Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia.

Analyysi on tulkkaamista

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

Määrittelyvaihe. Projektinhallinta

Ohjelmistoarkkitehtuurit. Kevät

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

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

GroupDesk Toiminnallinen määrittely

TOIMINNALLINEN MÄÄRITTELY MS

UML-MALLINNUS MICROSOFT VISIOLLA JOUNI HUOTARI

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

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

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

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

Tietojärjestelmän osat

Ohjelmistoarkkitehtuurit. Syksy 2010

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

HELIA 1 (20) Outi Virkki Tiedonhallinta

Ohjelmistojen mallintaminen, sekvenssikaaviot

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

3a. Projektin hallinta (lisäys lukuun 3)

Lomalista-sovelluksen määrittely

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Määrittely- ja suunnittelumenetelmät

UML -mallinnus TILAKAAVIO

OHJ-7400 Graafisen käyttöliittymän ohjelmointi, Harjoitustyö

Luokka- ja oliokaaviot

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Luento 3 Tietokannan tietosisällön suunnittelu

UML työvälineenä ja tutkimuskohteena

UML-kuvauskielten käyttö ohjelmistojen vaatimusmäärittelyissä

Ohjelmistojen suunnittelu

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistojen mallintaminen

OHJ-3010 Ohjelmistotuotannon perusteet, kesä 2012

Projektityö

Yhteenveto. Menettelytavat

T Ohjelmistojen määrittely- ja suunnittelumenetelmät

IIO30100 TIETOKANTOJEN SUUNNITTELU (6 OP)

UML-MALLINNUSKIELI JA SEN HYÖDYNTÄMINEN OHJELMISTOKEHITYKSESSÄ

Kurssin aihepiiri: ohjelmistotuotannon alkeita

UML OHJELMISTOPROSESSIEN TUKENA

Ohjelmistojen mallintaminen, kertausta

T Käyttäjäkeskeisen tuotekehityksen harjoitustyö kevät 2005

Vaatimusmääritelystä UML:n avulla

Ohjelmistojen mallintaminen. Luento 11, 7.12.

5. Järjestelmämallit. Mallinnus

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

Suunnitteluvaihe prosessissa

Vaatimusten keräys ja hallinta

Olioiden yhteistyön mallintaminen

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

IIO30100 Tietokantojen suunnittelu (6 op)

Ohjelmistoarkkitehtuurit. Syksy 2008

Suoritusten seuranta ja opiskelijan edistyminen

Transkriptio:

Kaaviotekniikoista (erityisesti UML) (ajan riittäessä pikkasen projekteista) Kari Systä 05.10.2015 9/30/2013 Jotu2013/KSY 1

Ajankohtaista kurssista Keskiviikon viimeinen viikkoharjoitus saatetaan lopettaa (paikalla oli vain 2) Välipalautus 16.10 Muista päivittää asiakasvaatimuksen sen mukaan mitä sovitte asiakastapaamisissa Muistakaa asentaa MagicDraw viikkoharjoituksia varten Torstaina 8.10 ei ole 16-18 harjoituksia (käykää jossakin muussa ryhmässä) 9/30/2013 Jotu2013/KSY 2

Välipalautuksessa dokumenttiin Lyhyt kuvaus toteutettavasta järjestelmästä Mikä on järjestelmän tarkoitus Ketkä ovat järjestelmän oletettuja käyttäjiä Millaisessa laite- ja ohjelmistoympäristössä järjestelmä toimii... Yleiskuvaus järjestelmän tarjoamista toiminnoista Esim. toimintolista näkymittäin Kuvaus eri näkymille yhteisistä osista Navigaatiokartta eri näkymien välillä miten eri näkymät liittyvät toisiinsa ja miten niiden välillä liikutaan. 9/30/2013 Jotu2013/KSY 3

Kaaviotekniikoista Mahdollistavat todellisuuden havainnollistamisen ja yksinkertaistamisen Sallivat eri abstraktiotasot, laajuudet ja näkökulmat Auttavat ymmärtämään sovellusaluetta Ohjaavat kysymään oikeita kysymyksiä Helpottavat kommunikointia koskien järjestelmää ja sovellusaluetta Dokumentoivat asioita 9/30/2013 Jotu2013/KSY 4

Historiaa UML = Unified Modeling Language Yhdistelmä viimeisten 30-40 vuoden aikana kehitetyistä notaatioista (ER, SA/RT, SDL,..) Standardoi piirtotavan UML ei ole menetelmä, vaan kaavioidenpiirtostandardi Päätekijät (the "three amigos"): Grady Booch, Jim Rumbaugh and Ivar Jacobson (www.rational.com) OMG:n standardoima 1997 version 1.1 1998-2003 Fix releases 1.2-1.5 2.8.2003: kokonaan uusittu versio 2.0 uusin versio (2.3.) keväällä 2010 Laaja standardi, käytännön kannalta erot 1.1-version ja 2.0 version välillä ovat melko vähäisiä Tosiasiallinen standardi työkaluissa, kirjallisuudessa, teollisuudessa Tällä kurssilla pikku detaljeille ei ole merkitystä 9/30/2013 Jotu2013/KSY 5

Käyttötapauskaavio Kaaviotyypit (UML 1.x) Luokkakaavio Tap.sekv.kaavio Yhteistyökaavio Use Use case case diagram Class/Package/Object diagrams Sequence diagram Collaboration diagram Driver driver Handle tree Tree 1..* Log Driver pine:tree :Log Cut <<create>> calcullate 1. Cut 2. Feed :Log 2.1. setmeasures Cut log pine: Tree :Tree Feed setmeasures pine:tree 1.2. calculate 1.1. <<create>> popularity: 3, complexity: 1 Aktiviteettikaavio Activity diagram popularity: 3, complexity: 3 Tilakaavio State machine diagram (State chart) popularity: 3, complexity: 1 Komponenttikaavio Component diagram popularity: 2, complexity: 1 Sijoittelukaavio Deployment diagram H Catch hold of tree H Saw idle H.U.I. Production <<Laptop>> H.U.I. H.U.I. Fall the tree Cut / ^Start chain CutOK / ^StopChain Production <<CAN>> Production Feed&saw Select tree variety H H Saw operational Production Tree Log <<processor>> Main Unit popularity: 2, complexity: 3 popularity: 2, complexity: 3 popularity: 2, complexity: 2 popularity: 1, complexity: 2 9/30/2013 Jotu2013/KSY 6

UML 2.0 kaaviotyypit Diagram Structure diagram Behavior Diagram Class Diagram Component Diagram Object Diagram Activity Diagram Use Case Diagram State Machine Diagram Interaction Diagram Composite Structure Diagram Deployment Diagram Package Diagram Sequence Diagram Collaboration Diagram Interaction Overview Diagram Timing Diagram 9/30/2013 Jotu2013/KSY 7

Jotu oliot, ohjarkki - teht. Esimerkki tyypillisestä käytöstä Selvitellään asiakkaan ongelmaa (asiakasvaatimuksia) Tuotetaan sovellusalueen luokkakaavioita (analysis level, problem level, problem domain) Käytetään käyttötapauksia selvittelemään kuvausta asiakasvaatimuksista järjestelmävaatimuksiksi. Iteroidaan, protoillaan... Tuotetaan toiminnallinen määrittely, joka dokumentoi asiakasvaatimukset, järjestelmävaatimukset ja käyttötapaukset. Määritellään arkkitehtuuri (alijärjestelmät) ja tärkeimmät rajapinnat (luokkakaaviot, tapahtumasekvenssikaaviot) Määritellään alijärjestelmät (luokkatasolle) ja luokkien rajapinnat (luokka- ja tapahtumasekvenssikaaviot) Huom. Kaavioilla ei juurikaan päästä käsiksi ei-toiminnallisiin 9/30/2013 Jotu2013/KSY 8

Eri käyttöjä käyttöä Ongelman ja ympäristön kuvaaminen Toteutettavan järjestelmän kuvaaminen Toteutetun järjestelmän dokumentointi 9/30/2013 Jotu2013/KSY 9

Kaavioiden käyttötavoista Kaavioita voidaan käyttää (mm.) esitutkimuksessa, määrittelyssä ja suunnittelussa. Esitutkimus ja määrittely: sovellusalueen käsitteet (domain object model), järjestelmän rajaus, analysis object model, järjestelmän tietosisällön määrittely (käsitekaavio, conceptual model), usein myös tietokannan rakenne. Suunnittelu: ohjelman rakenne (design object model), tietokannan rakenne (esimerkiksi relaatiokannan graafinen esitys). Kaavio dokumentoi "sanaston", jolla asioista voi keskustella. Kaavio kertoo, millaiset tilanteet ovat mahdollisia. Kaavio ohjaa kysymään oikeita kysymyksiä. Voidaan käyttää (rajoitetusti) koodin generointiin (luokkamäärittelyt, tietokannan luonti). Voidaan käyttää takaisinmallinnukseen (reverse engineering). 9/30/2013 Jotu2013/KSY 10

Työkaluista Jos et osaa paperilla ja kynällä ei välineestä ole apua. Välineet voidaan karkeasti jakaa case-välineisiin ja piirtoohjelmiin, CASE-välineet Hinta yleensä korkea (2-20k euroa). Perustuvat tietokantaan, johon talletetaan kaikki malliin liittyvät tiedot, kaaviot ovat vain näkymiä tietokantaan. Ymmärtävät kaavioiden semantiikkaa ainakin jossain määrin. Tukevat dokumentointia. Tukevat ryhmätyötä. Jotkut lupaavat automaattista koodin generointia Demot ja pienet ohjelmaesimerkit antavat usein liian ruusuisen kuvan. Oppimiskynnys korkeahko. 9/30/2013 Jotu2013/KSY 11

Piirto-ohjelmat (esim. MS Visio) Hinta muutamia satoja eroja. Ainakin Visiossa melko hyvä UML-tuki, lähestyy CASEvälineen ominaisuuksia. Hyvä valinta, jos ei tarvitse CASE-välineen tietokannan tuomia lisäetuja. Ilmaisiakin ohjelmiakin löytyy verkosta, mm: YED: https://www.yworks.com/en/products/yfiles/yed/ ArgoUML: http://arguuml.tigris.org Verkkopalvelut: https://creately.com https://www.gliffy.com/ Tällä kurssilla saa piirtää millä haluaa, saatavissa MagicDraw, MagicDraw:n käyttöä harjoitellaan harjoituksissa 9/30/2013 Jotu2013/KSY 12

Kurssilla vaadittavat kaaviot Käyttötapauskaaviot Käsitekaaviot Navigaatiokartat (Tilakaaviot) (Sekvenssikaaviot) (Vuokaaviot) 9/30/2013 Jotu2013/KSY 13

Oleelliset 1 kaaviot: Käyttötapauskaaviot Kuvaa mitä järjestelmällä tehdään ja kuka sen tekee Ei kuvaa miten se tapahtuu, Ei määrittele käyttöliittymää Ohjaaja Dipparekisteri Lisää uusi opiskelija Etsi ehdot täyttävät opiskelijat Lisää uusi kenttä Tee palaverimuistio Laitoksen johtaja Lisää/poista ohjaaja Kirjoita lausunto 1 Tällä kurssilla Tarkastele tilastoja 9/30/2013 Jotu2013/KSY 14

Oleelliset kaaviot: käsitekaaviot Kuvaa mitä järjestelmän tiedon ja tietojen väliset suhteet Usein myös kunkin tiedon ominaisuudet Tarvittaessa myös operaatiot Opiskelija Osallistuu 0..* 0..* Toteutuskerta 1..* 1 Suoritus Opintojakso 9/30/2013 Jotu2013/KSY 15

Jatketaan viime kerran esimerkkiä (saa selvää vain animointien kanssa) Opintokokonaisuus Opiskelija Ilmoittautuu 1 Osallistuu 0-* 1-* Oppimistapahtuma Luento 1..* 1-* Toteutuskerta Opintojakso 1-* 0-* 0-* 0-* Esitieto -> Luennoija Viikkoharjoitus Harjoitustyö 0-* Assistentti 9/30/2013 Jotu2013/KSY 16

Lopputulos Opintokokonaisuus Opiskelija Ilmoittautuu 1 Osallistuu 0-* 1-* Oppimistapahtuma Luento Toteutuskerta 1-* 0-* Luennoija 1-* 1..* Opintojakso 0-* 0-* Esitieto -> Viikkoharjoitus Harjoitustyö 0-* Assistentti 9/30/2013 Jotu2013/KSY 17

Jatkoa Opiskelija - Nimi - Opnum - Osoite? Osallistuu 0..* 0..* Toteutuskerta - ilmoittautuneet - Lisää ilmoittaut. - Kirjaa suoritus 1..* 1 Suoritus Opintojakso - Opintopistemäärä - Oppimistavoitteet Opintojakso 9/30/2013 Jotu2013/KSY 18

Mitäs siellä virallisissa spekseissä oli? 9/30/2013 Jotu2013/KSY 19

Lisää 9/30/2013 Jotu2013/KSY 20

9/30/2013 Jotu2013/KSY 21

Navigaatiokartta (mietitään vaikka piirto-ohjelmaa) Ensimmäinen askel kohti toteutusta ok Alku Kirjautuminen Pääikkuna Virhe uusi Avaa tiedosto peruuta Työskentely Valitse Tiedoston valinta 9/30/2013 Jotu2013/KSY 22

Navigaatiokaatiokartta Ensimmäinen askel kohti toteutusta Alku Kirjautuminen ok Pääikkuna Virhe uusi avaa peruuta Työskentely Valitse Tiedoston valinta 9/30/2013 Jotu2013/KSY 23

Tähän lisää navigaatiokaavioista 9/30/2013 Jotu2013/KSY 24

Tilakaaviot Käytetään esimerkiksi elektromekaanisten laitteiden toiminnan mallintamiseen perinteinen oliomallintamiseen ja olioiden elinkaarien selvittelyyn algoritmien ja liiketoimintasääntöjen kuvaamiseen liiketoimintaprosessien selvittelyyn. 9/30/2013 Jotu2013/KSY 25

Tilakaaviot Kello on 1415 Luento käynnissä Tauko 9/30/2013 Jotu2013/KSY 26

Notaatiosta (jos kaikkea UML:n yksityiskohtia noudatetaan) Tilan nimi entry/action exit/action do/action eventname/action eventname/defer Case-työkalut käyttää eventname(par)[guard]/action tila 9/30/2013 Jotu2013/KSY 27

Yksinkertainen esimerkki Soitin Alusta pause/keskeytä soitto Auki play/luukku kiinni, aloita soitto stop tai levy loppu/avaa luukku Soita play/jatka soittoa Virtakatkaisin Jotu2013/KSY 28 9/30/2013

Hierarkkiset tilat Soitin Alusta Soita Auki play stop play Pause Virtakatkaisin Jotu2013/KSY 29 9/30/2013

Rinnakkaiset tilat Soitin Herätys Alusta Päälläi Soita Auki play stop play Pause Päälläi Virtakatkaisin Jotu2013/KSY 30 9/30/2013

SEKVENSSIKAAVIOT Jotu2013/KSY 31 9/30/2013

Esimerkki kurssilta Jotu2013/KSY 32 9/30/2013

Kirjasta Jotu2013/KSY 33 9/30/2013

Esimerkki tapahtumasekvenssistä Aihetta pohdiskellaan työpaikalla proffan kanssa Dippatyötä tehdään, palavereita ohjaajien kanssa : opiskelija : ohjaava professori aiheanomus : ohjaaja työpaikalla allekirjoitettu aiheanomus aihe OK valmis työ valmis työ Tiedekunta Molemmat ohjaajat tekevät lausunnon lausunto lausunto Osastoneuvoston kokous hyväksyy työn hyväksyminen, arvosana 9/30/2013 Jotu2013/KSY elämänlanka 34

VUOKAAVIOT (FLOWCHARTS) Jotu2013/KSY 35 9/30/2013

Vuokaaviot Ovat lähes kuin koodia Varsinkin ennen käytettiin ohjelmoinnin opetuksessa Voidaan myös käyttää erilaisten toimintalogiikoiden esittämiseen Jotu2013/KSY 36 9/30/2013

Muistatteko tämän? Lisää testi OK Aja testi EI Lisää koodi Aja testi EI OK Jotu2013/KSY 37 9/30/2013

EI Onko se rikki? KYLLÄ Älä koske Tyhmä! KYLLÄ Koskitko? EI EI Piilota Tietääkö joku? KYLLÄ Voi sinua KYLLÄ Syytetäänkö sinua EI Voitko syyttää muita? KYLLÄ EI Syytä muita! 9/30/2013 Kaikki ok Jotu2013/KSY 38

Yhteenvetoa kaavioista Auttavat keskustelussa ja hahmottelussa Dokumentoivat ja helpottavat muistamista Tietyt standardi -konventiot on hyvä tietää Värit yms ei kuulu standardinotatioon, mutta niitä voi halutessaan käyttää mutta järkevästi Komponenttien sijainnilla on merkitystä muistamisen kannalta Jotu2013/KSY 39 9/30/2013

Lisää materiaalia täältä http://www.ibm.com/developerworks/rational/library/769.html Käsitekaaviot: http://www.ibm.com/developerworks/rational/library/content/rati onaledge/sep04/bell/ Sekvenssikaaviot: http://www.ibm.com/developerworks/rational/library/3101.html Jotu2013/KSY 40 9/30/2013