582104 – ohjelmistojen mallintaminen unified modeling ...€¦ · unified modeling language (uml)...

21
1 582104 – Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Upload: others

Post on 15-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 582104 – Ohjelmistojen mallintaminen Unified Modeling ...€¦ · Unified Modeling Language (UML) • ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin,

1

582104 – Ohjelmistojen mallintaminen

Unified Modeling Language (UML)

Page 2: 582104 – Ohjelmistojen mallintaminen Unified Modeling ...€¦ · Unified Modeling Language (UML) • ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin,

Tietovuokaaviot

• Data flow diagrams, DFD

• Historiallisesti käytetyin

kuvaustekniikka

• Järjestelmän toiminnallinen

ositus

• Epäyhteensopivuus

oliomallinnuksen kanssa

aiheuttanut suosion

hiipumisen

2

Page 3: 582104 – Ohjelmistojen mallintaminen Unified Modeling ...€¦ · Unified Modeling Language (UML) • ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin,

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ä

3

Page 4: 582104 – Ohjelmistojen mallintaminen Unified Modeling ...€¦ · Unified Modeling Language (UML) • ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin,

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

4

Page 5: 582104 – Ohjelmistojen mallintaminen Unified Modeling ...€¦ · Unified Modeling Language (UML) • ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin,

Luokka

• Samanrakenteiset oliot kuuluvat samaan luokkaan

(class)

• Eli ovat ko. luokan ilmentymiä (instance)

5

• Pitäisikö määritellä luokat kirahvi ja leijona ?

Page 6: 582104 – Ohjelmistojen mallintaminen Unified Modeling ...€¦ · Unified Modeling Language (UML) • ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin,

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() { … }

}

6

Eläin leoLeijona = new Eläin(….);

Eläin kiraKirahvi = new Eläin(…..);

leoLeijona.syö(kiraKirahvi);

Page 7: 582104 – Ohjelmistojen mallintaminen Unified Modeling ...€¦ · Unified Modeling Language (UML) • ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin,

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ä

7

Page 8: 582104 – Ohjelmistojen mallintaminen Unified Modeling ...€¦ · Unified Modeling Language (UML) • ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin,

UML:n kaaviotyypit

8

[Wikipedia]

Page 9: 582104 – Ohjelmistojen mallintaminen Unified Modeling ...€¦ · Unified Modeling Language (UML) • ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin,

OmniGraffle-työkalun kategoria UML Use Case

9

Page 10: 582104 – Ohjelmistojen mallintaminen Unified Modeling ...€¦ · Unified Modeling Language (UML) • ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin,

OmniGraffle-työkalun kategoria UML General

10

Page 11: 582104 – Ohjelmistojen mallintaminen Unified Modeling ...€¦ · Unified Modeling Language (UML) • ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin,

OmniGraffle-työkalun kategoria

UML Sequence

11

Page 12: 582104 – Ohjelmistojen mallintaminen Unified Modeling ...€¦ · Unified Modeling Language (UML) • ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin,

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

12

Page 13: 582104 – Ohjelmistojen mallintaminen Unified Modeling ...€¦ · Unified Modeling Language (UML) • ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin,

Esimerkki: Ostoskori

13

Page 14: 582104 – Ohjelmistojen mallintaminen Unified Modeling ...€¦ · Unified Modeling Language (UML) • ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin,

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ä

14

Page 15: 582104 – Ohjelmistojen mallintaminen Unified Modeling ...€¦ · Unified Modeling Language (UML) • ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin,

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

15

Page 16: 582104 – Ohjelmistojen mallintaminen Unified Modeling ...€¦ · Unified Modeling Language (UML) • ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin,

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

16

Page 17: 582104 – Ohjelmistojen mallintaminen Unified Modeling ...€¦ · Unified Modeling Language (UML) • ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin,

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

17

Page 18: 582104 – Ohjelmistojen mallintaminen Unified Modeling ...€¦ · Unified Modeling Language (UML) • ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin,

Käyttötapausesimerkki: ostoskori

18

Page 19: 582104 – Ohjelmistojen mallintaminen Unified Modeling ...€¦ · Unified Modeling Language (UML) • ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin,

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)

19

Page 20: 582104 – Ohjelmistojen mallintaminen Unified Modeling ...€¦ · Unified Modeling Language (UML) • ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin,

Tärkeimmät sekvenssikaavion elementit

• Kutsuja-olio kutsuu

Kutsuttava-olion

metodia nimeltä metodiKutsu()

• Paksunnettu

pystypalkki kuvaa

aktivaatiota

• Horisonaaliset viivat

kuvaavat viestien

kulkua

20

Page 21: 582104 – Ohjelmistojen mallintaminen Unified Modeling ...€¦ · Unified Modeling Language (UML) • ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien spesifiointiin,

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)

21