Ohjelmistotekniikan menetelmät, UML

Samankaltaiset tiedostot
Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

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

UML:n yleiskatsaus. UML:n osat:

Unified Modeling Language

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

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Mallinnus UML-yleiskatsaus

Ohjelmistojen mallintaminen, sekvenssikaaviot

UML - unified modeling language

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

Ohjelmistotekniikan menetelmät, kevät 2008

UML-kielen formalisointi Object-Z:lla

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

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

Olioiden yhteistyön mallintaminen

Ohjelmistojen mallintaminen, kesä 2010

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

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli Harri Laine 1

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistojen mallintaminen

Luokka- ja oliokaaviot

UML- mallinnus: Tilakaavio

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

UML-MALLINNUS MICROSOFT VISIOLLA JOUNI HUOTARI

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

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

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

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

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

käyttötapaukset mod. testaus

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

Ohjelmistotekniikan menetelmät

Ohjelmistojen mallintaminen, kertausta

2. Olio-ohjelmoinnin perusteita 2.1

Ohjelmistotekniikan menetelmät

TIE = JOTU. VH5 - MagicDraw

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

VH5, JOTU, MagicDraw:n käyttö

Ohjelmistojen mallintaminen. Luento 3, 9.11.

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Ohjelmistojen vaatimusmäärittely Helsingin yliopisto, TKTL, s2013. Harri Laine 1. Tietovuokaaviot (data flow diagrams)

Yhteenveto. Menettelytavat

Analyysi on tulkkaamista

Ohjelmistotuotanto, s

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

Johdatus sovellussuunnitteluun, s2001, osa 3 Helsingin yliopisto / TKTL. Harri Laine / Inkeri Verkamo 1. Järjestelmän palvelujen määrittely

Johdatus sovellussuunnitteluun, s2000, osa3 Helsingin yliopisto;/tktl. Harri Laine 1. Järjestelmän palvelujen määrittely

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

UML - unified modeling language - use cases

2. Olio-ohjelmoinnin perusteita 2.1

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

Dynaaminen analyysi II

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

UML -mallinnus TILAKAAVIO

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

UML Luokkakaavio 14:41

Ohjelmistotekniikan menetelmät, koe

Ohjelmistotuotanto, s /3/2003

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

5. Järjestelmämallit. Mallinnus

UML-kaaviot. Jouni Kylä-Nikkilä

Toiminnot eli käyttäytyminen. Tieto eli rakenteelliset ominaisuudet

MagicDraw-pikaohje (VH5)

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Kaaviotekniikoista (erityisesti UML)

UML OHJELMISTOPROSESSIEN TUKENA

Johdatus sovellussuunnitteluun, s99, osa5 Helsingin yliopisto;/tktl DO NOT PRINT THIS DOCUMENT. Harri Laine 1. Olioiden yhteistoiminta

Ohjelmistotuotanto, s

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

Käyttötapaukset. Käyttötapaukset. Käyttötapaukset. Käyttötapaukset. Käyttötapaukset. Käyttötapaukset

Ohjelmistotekniikka: Luento 4 Jouni Lappalainen

Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen

Ohjelmistotekniikka: Luento 5

Lähestymistavat - toiminnallinen

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VIII Suunnittelumallit Observer ja State

UML työvälineenä ja tutkimuskohteena

Ohjelmistojen mallintaminen. Luento 6,

Sisällys. 19. Unified Modeling Language (UML) Johdanto. Johdanto. Johdanto. Luokkakaavio:

Johdatus sovellussuunnitteluun

Johdatus sovellussuunnitteluun, s2000, osa4 Helsingin yliopisto;/tktl. Harri Laine 1. Luokka- ja oliokaaviot. Luokka- ja oliokaaviot

Luokkakaavion laatiminen

Olioiden yhteistoiminta

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Kurssin aihepiiri: ohjelmistotuotannon alkeita

AVOIMEN LÄHDEKOODIN UML-MALLINNUSVÄLINEIDEN VERTAILU PIENTEN OHJELMISTOPROJEKTIEN TARPEISIIN

Johdatus sovellussuunnitteluun, s99, osa5 Helsingin yliopisto;/tktl DO NOT PRINT THIS DOCUMENT. Harri Laine 1. Olioiden yhteistoiminta

Määrittelyvaihe. Projektinhallinta

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Transkriptio:

582101 - Ohjelmistotekniikan menetelmät, UML 1

Sisältö DFD- ja sidosryhmäkaavioiden kertaus Oliomallinnus UML:än kaaviotyypit 2

Tietovuokaaviot Data flow diagrams, DFD Historiallisesti käytetyin kuvaustekniikka Järjestelmän toiminnallinen ositus Epäyhteensopivuus oliomallinnuksen kanssa aiheuttanut suosion hiipumisen 3

Yhteys- eli sidosryhmäkaavio Rajaa järjestelmän suhteessa toimintaympäristöön Kaavioelementit Yksi koko järjestelmää kuvaava prosessisymboli Joukko ulkoisia tahoja (edustavat mm. järjestelmän sidosryhmiä ja muita, ulkoisia tietojärjestelmiä) Joukko tietovuosymboleita em. välillä 4

Olioperustaisuus Olio toimii mallinnuksen perusyksikkönä eri abstraktiotasoilla Järjestelmän rajaus, suunnittelu, ohjelmointi, suoritus.. Järjestelmä koostuu joukosta olioita (object), jotka yhdessä tuottavat järjestelmän palvelut Olio on kokonaisuus (entity), joka suorittaa omaan tietosisältöönsä perustuvia palveluita Olio kapseloi omat tietonsa tarjoamiensa palveluiden kautta käytettäviksi Oliolla on identiteetti (identity), joka pysyy vaikka olion tila (state) tai käyttäytyminen (behavior) muuttuisivat 5

Luokka Samanrakenteiset oliot kuuluvat samaan luokkaan (class) Eli ovat ko. luokan ilmentymiä (instance) Pitäisikö määritellä luokat kirahvi ja leijona? 6

Luokka ja olio public class Eläin { int eläinnumero; String laji; Color väri; float paino; } public Eläin(int numero, String laji, Color väri, float paino) {. } public float getpaino() { } Eläin leoleijona = new Eläin(.); Eläin kirakirahvi = new Eläin(..); leoleijona.syö(kirakirahvi); 7

Unified Modeling Language (UML) ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin, visualisointiin, rakentamiseen ja dokumentointiin tarkoitettu kieli. [UML Specification 2003] Alun perin yhdistelmä vanhemmista oliotekniikoista OMT (Rumbaugh) + Booch + OOSE (Jacobson) Kehitetty Rational Softwaren toimesta vuodesta 1996 lähtien Nykyisin teollisuusstandardi Useiden CASE-välineiden valinta Sisältää kymmenkunta kaaviotyyppiä 8

UML:n kaaviotyypit [Wikipedia] 9

OmniGraffle-työkalun kategoria UML Use Case 10

OmniGraffle-työkalun kategoria UML General 11

OmniGraffle-työkalun kategoria UML Sequence 12

UML:n malli- ja kaaviotyypit: rakennemalli Ohjelman staattinen rakenne Kaaviotyypit: Luokkakaavio ja oliokaavio Järjestelmän tietosisältö ja käytettävissä olevat luokkien tarjoamat palvelut Käytössä määrittely- ja suunnittelutasolla Toteutuskaaviot eli komponentti- ja sijoittelukaavio (component diagram, deployment diagram) Ohjelmiston koostuminen komponenteista ja niiden suoritusaikainen sijoittuminen 13

Esimerkki: Ostoskori 14

UML:n malli- ja kaaviotyypit: käyttäytymismalli Järjestelmän palvelut ja niiden toteuttaminen Kaaviotyypit: Käyttötapauskaavio (use case diagram) Mitä järjestelmällä tehdään Tekstuaaliset kuvaukset olennaisia Vuorovaikutuskaaviot eli sekvenssi- (sequence) ja kommunikointikaavio (communication diagram Palveluiden toteuttaminen olioiden välisenä yhteistyönä Sekvenssikaavio korostaa palveluiden käyttämistä aikajärjestyksessä Kommunikointikaavio korostaa olioiden kytkentöjä 15

Käyttötapaukset Keskeisin tekniikka järjestelmän ulkoisesti havaittavien ominaisuuksien ja käyttäytymisen mallintamiseen määrittelytasolla UML:ssä UML määrittelee käyttötapauskaavion, mutta kaaviotekniikkaa olennaisempaa on kunkin käyttötapauksen tekstuaalinen kuvaus Käyttötapauksia voi kuvata eri tarkkuustasolla, mutta ne eivät muodosta varsinaista hierarkkista rakennetta 16

Käyttötapaus ja käyttäjä Käyttötapaus (use case) Looginen tavoitteellinen tehtäväkokonaisuus, jolla on lähtökohta ja lopputulos Usein järjestelmälle asetettava toiminnallinen vaatimus Käyttäjä (actor) Rooli, jota järjestelmään liittyvä taho esittää Usein ihminen, mutta voi olla myös ulkoinen järjestelmä Toimii vuorovaikutteisesti järjestelmän kanssa 17

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 18

Käyttötapausesimerkki: ostoskori 19

UML: vuorovaikutuskaaviot: sekvenssikaavio 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) 20

Tärkeimmät sekvenssikaavion elementit Kutsuja-olio kutsuu Kutsuttava-olion metodia nimeltä metodikutsu() Paksunnettu pystypalkki kuvaa aktivaatiota Horisonaaliset viivat kuvaavat viestien kulkua 21

UML: malli- ja kaaviotyypit: 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) 22