Ohjelmistotekniikan menetelmät, mallintaminen ja UML

Samankaltaiset tiedostot
Ohjelmistotekniikan menetelmät, UML

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen, mallintaminen ja UML

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

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

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistotekniikan menetelmät, kevät 2008

Ohjelmistojen mallintaminen kertausta Harri Laine 1

UML:n yleiskatsaus. UML:n osat:

Ohjelmistojen mallintaminen, sekvenssikaaviot

Unified Modeling Language

Mallinnus UML-yleiskatsaus

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Ohjelmistojen mallintaminen

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

UML - unified modeling language

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli Harri Laine 1

Yhteenveto. Menettelytavat

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

UML-kielen formalisointi Object-Z:lla

Ohjelmistojen mallintaminen. Luento 3, 9.11.

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Olioiden yhteistyön mallintaminen

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistojen mallintaminen, kertausta

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

UML- mallinnus: Tilakaavio

Ohjelmistotuotanto, s

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

2. Olio-ohjelmoinnin perusteita 2.1

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

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

5. Järjestelmämallit. Mallinnus

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

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

Ohjelmistojen suunnittelu

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistotekniikan menetelmät, koe

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

UML-MALLINNUS MICROSOFT VISIOLLA JOUNI HUOTARI

Ohjelmistotekniikan menetelmät

Ohjelmistotekniikan menetelmät

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

Analyysi on tulkkaamista

2. Olio-ohjelmoinnin perusteita 2.1

Lähestymistavat - toiminnallinen

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

TIE = JOTU. VH5 - MagicDraw

Luento 3 Tietokannan tietosisällön suunnittelu

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

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

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

Luokka- ja oliokaaviot

käyttötapaukset mod. testaus

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

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

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

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Kurssin aihepiiri: ohjelmistotuotannon alkeita

UML -mallinnus TILAKAAVIO

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Tietojärjestelmän osat

VH5, JOTU, MagicDraw:n käyttö

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

Luokkakaavion laatiminen

UML Luokkakaavio 14:41

Dynaaminen analyysi II

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

UML OHJELMISTOPROSESSIEN TUKENA

Ohjelmistojen mallintaminen. Matti Luukkainen

UML työvälineenä ja tutkimuskohteena

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

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

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

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

Määrittelyvaihe. Projektinhallinta

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

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Vaatimusten keräys ja hallinta

UML -mallinnus Viestiyhteyskaavio EERO NOUSIAINEN

UML - unified modeling language - use cases

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

Ohjelmistotuotanto, s /3/2003

Käyttötapausten mallintaminen

Luokkamalli LUOKKAKAAVIO. Tämän osan sisältö. Luokkamalli. Luokka ja olio. Luokkakaavio (class diagram)

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

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

Ohjelmistojen mallintaminen, käyttötapauksiin perustuva vaatimusmäärittely

Transkriptio:

582101 - Ohjelmistotekniikan menetelmät, mallintaminen ja UML 1

Mallintaminen ja UML (Ch 2.) Ohjelmistojen mallintamisesta ja kuvaamisesta Strukturoitu mallinnus Tietovuo- ja ER-kaaviot Oliomallinnus ja UML Luokkakaaviot Käyttötapauskaaviot Sekvenssikaaviot 2

Mallintamisesta ja kuvaamisesta Ohjelmistotuotannossa on kyse mallintamisesta Toisaalta ohjelmiston käsittelemää liiketoimintaa Toisaalta ohjelmiston sisäistä rakennetta Näiden tulisi vastata toisiaan Tietojärjestelmän kehittäminen on yhteistyötä Ohjelmiston kehittäjien ja muiden sidosryhmien ymmärrettävä toisiaan Projektiin tulevan uuden henkilön pystyttävä muodostamaan yleiskuva järjestelmästä Tämän vuoksi muodostamme järjestelmän mallin ja siihen perustuvia kuvauksia eri tarpeisiin 3

Mallinnuskielet Mallintamiseen tarvitaan kieli Voidaan käyttää luonnollista kieltä (suomea) Suosittua on käyttää visuaalista kieltä (UML) Vaatimusmäärittely- ja suunnitteluvaiheessa Kaavio itsessään on vain harvoin riittävä, lisäksi tarvitaan sanallista selostusta 4

Formaalit menetelmät Formaalit menetelmät (Z, B method, Alloy) Perustuvat matematiikkaan, logiikkaan Ideana mahdollistaa automaattinen päättely, mallin ominaisuuksien todistaminen Käytössä joillakin erityisalueilla, kuten protokollien tai mikropiirien suunnitteleminen Suosiota vähentää tarvittavan koulutuksen määrä Myös itse ohjelma on malli, jota voidaan lisäksi koneellisesti suorittaa 5

Luonnollisen kielen käyttäminen mallinnuksessa Esimerkki: sanaston (glossary) laatiminen Kielenkäytössä esiintyy synonyymejä ja homonyymejä Synonyymi kaksi eri sanaa tarkoittavat samaa Homonyymi kaksi samaa sanaa erilaisin tarkoituksin Kohdealueen asiantuntija pystyy helposti ymmärtämään asiayhteydestä tarkoitetun asian Tietojärjestelmän toteuttaja on vain harvoin kohdealueen asiantuntija 6

Sanaston laatiminen Luettelo organisaation toiminnan kannalta keskeisistä käsitteistä ja niiden määritelmistä Voidaan esittää vaihtelevin abstraktiotasoin Koko organisaatiolle Kullekin osa-alueelle erikseen tarkemmin Auttaa muiden mallien laatimisessa Luokkamallin olioluokkien löytäminen Olennaista käsitteistön selkeys ja ristiriidattomuus 7

Esimerkki sanastosta Term ad advertisement ad instance Definition and Explanations A unique piece of creative that may be broadcast, screened, published or otherwise exposed any number of times. Each ad exposure by a media outlet is known in the AEM system as an ad instance. advertisement A particular occurrence of an ad, i.e. each incidence of an ad broadcast, screening or publication. product A merchandise or service that may be advertised. Products may be categorized (i.e. a product can belong to a category of products). Categories are classifications of products as envisaged by AEM. The AEM system supports a hierarchical grouping of categories with an unlimited number of levels in the hierarchy. Products may only be categorized at the lowest level of the category hierarchy. [Kurssikirja, s. 206-207] 8

Abstraktiotasot ja näkökulmat Ohjelmistot muodostuvat ajan myötä laajoiksi, sisältävät runsaasti yksityiskohtia Yksityiskohdat ovat tärkeitä, mutta häiritsevät kokonaisuuden hahmottamista Kehittäjillä ja muilla sidosryhmillä erilaisia tarpeita eri tilanteissa ja ohjelmistoprosessin eri vaiheissa 9

Abstraktiotasot ja näkökulmat Tarvitaan kuvauksia eri abstraktiotasoilla järjestelmän rajaus " järjestelmän yleisarkkitehtuuri " osajärjestelmien yksityiskohtaiset kuvaukset " ohjelmakoodi.. ja eri näkökulmista Kruchtenin 4+1-malli jakaa näkökulmiin Looginen näkökulma Prosessinäkökulma Toteutusnäkymä Fyysinen näkymä.. Jotka yhdessä muodostavat käyttötapaukset 10

Strukturoitu mallinnus Strukturoidun mallinnuksen taustalla on strukturoitu (eli rakenteinen) ohjelmointi Rakenteisessa ohjelmoinnissa silmukat ja if-lauseet toteutetaan kielen antamina kontrollirakenteina Go to-komentoa ei suvaita [E. Dijkstra (March 1968). Go To Statement Considered Harmful. Comm. of the ACM 11 (3): 147 148] Ohjelma jaetaan top-down menetelmällä osiin Ilmentää monoliittista, proseduraalista perusluonnetta Keskeiset visuaaliset kuvaustekniikat Tietovuokaaviot (data flow diagram, DFD) Käsitekaaviot (entity-relationship diagram, ER) Rakennekaaviot (structure chart) 11

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

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ä 13

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 14

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

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); 16

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ä 17

UML:n kaaviotyypit [Wikipedia] 18

OmniGraffle-työkalun kategoria UML Use Case 19

OmniGraffle-työkalun kategoria UML General 20

OmniGraffle-työkalun kategoria UML Sequence 21

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 22

Esimerkki: Ostoskori 23

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ä 24

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 25

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 26

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 27

Käyttötapausesimerkki: ostoskori 28

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) 29

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

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) 31