– Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

Koostumussuhde Jukka Juslin © Jukka Juslin.
Ohjelmiston tekninen suunnittelu
Tietojärjestelmät 2.
Ohjelmistotuotanto - Mallinnus
UML-notaatio staattinen ja dynaaminen mallintaminen
Luokkakaaviot Luokkakaaviot Tekninen suunnittelu.
Ict1td002: Ohjelmointitaito Kertaus Osio 2 - luokat - ilmentymät - viittaus- ja arvomuuttuja - ilmentymien taulukointi HAAGA-HELIA IltaTiko.
Tietojärjestelmät ja Systeemisuunnittelu
UML RASE
2. Olio-ohjelmoinnin perusteita
Tapahtumasekvenssit = Käyttötapausten realisointi
Olio-ohjelmointi. Mitä olio-ohjelmointi on ?  Pyritään mallintamaan jotain reaalimaailman kohdetta tietokoneohjelman avulla  Olio on luokan ilmentymä.
Tekninen suunnit-telu
BPMN ja hiukan prosessien määrittelystä
II Kehittämismenetelmistä
Päivi Ovaska Tutkijaopettaja LTY/Tite
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
2/2001 Tietojärjestelmät ja Systeemisuunnittelu Luennoitsija: Tapio Lammi
Tietojärjestelmät ja Systeemisuunnittelu
Oliomallittaminen ja UML
SE-02 Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin.
Olioperustainen ohjelmistoprosessi
© Jukka Harju, Jukka Juslin
Johdatus ohjelmointiin Ohjelmistosuunnittelu Jaana Holvikivi.
Ohjelmistotekniikka ja projektinhallinta, 4 op
Käyttötapauskaavio ja käyttötapaukset
Esitutkimus (tarvekartoitus)
Systeemityö 2 Käyttötapauskaavio Teppo Räisänen, Principal Lecturer
5. Kapselointi Yleistä Kapseloinnilla (encapsulation) tarkoitetaan luokan tietojen ja toimintojen pakkaamista yhdeksi suojatuksi kokonaisuudeksi.
10. Abstrakti luokka Johdanto Abstrakti luokka (abstract class) poikkeaa konkreettisesta luokasta (ei-abstrakti luokka) siten, että siitä ei.
Johdanto Teppo Räisänen, Principal Lecturer Oulu University of Applied Sciences, School of Business and Information Management
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Systeemityö 2 Toimintokaavio – Activity diagram
Tässä esityksessä on piilotettu osa dioista
Koostekaavio – Composite Structure Diagram Kinnula – Kellolampi - Lehtosaari.
– Ohjelmistojen mallintaminen, mallintaminen ja UML.
Systeemityö 2 Kokoava vuorovaikutuskaavio – Interaction
Mallinnustavat.
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
Oliot ja luokat Oliot ja luokat Oliot (object) ja luokat (class) ovat keskeisiä olio- ohjelmoinnin käsitteitä. Olio-ohjelmointi on ohjelmointiparadigma,
Component diagram– Komponenttikaavio J. Pätsi & H. Malmihuhta
Sequence Diagram Jani Keskitapio, Annika Alakastari, Heng Qing Zhu TIK9SNA.
– Ohjelmistojen mallintaminen Unified Modeling Language (UML)
8. Periytyminen Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö.
Vaatimukset ja käyttötapaukset
Ohjelmistojen mallintaminen, sekvenssikaaviot
Koostekaavio– composite structure diagram Mikko Näpänkangas.
Liiketoimintaprosessit ja MS Visio 2010
Olio-ohjelmoinnin perusteet luento 7
Ohjelmistotekniikka - Määrittely (Analysis) Kevät 2003 Hanna-Kaisa Lammi LTY/Tite.
Päivi Ovaska Tutkijaopettaja LTY/Tite
Tietojärjestelmät ja Systeemisuunnittelu
Usein aliohjelman kutsun tulos ei riipu pelkästään eksplisiittisistä syötteistä vaan myös moduulin tai olion tilasta (state). ● Tila määräytyy yleensä.
UML-luokkakaavio ● Luokkakaavio (class diagram) kuvaa järjestelmän luokkarakennetta ● Mitä luokkia on olemassa ● Minkälaisia luokat ovat ● Luokkien suhteet.
Liiketoimintaprosessit ja MS Visio 2013
5. Kapselointi.
– Ohjelmistojen mallintaminen, mallintaminen ja UML
3. Luokat, oliot ja metodit Java-kielessä (Lausekielinen ohjelmointi I ja II –kursseilla opitun kertausta.)
Sekvenssikaavio– Sequence diagram Lassi Kemppainen
8. Periytyminen.
Vaatimukset ja käyttötapaukset
Liiketoimintaprosessit ja MS Visio 2010
Mallintamisen metamalli ja notaatiot
Ohjelmistotekniikan menetelmät, sekvenssikaaviot
UML-notaatio staattinen ja dynaaminen mallintaminen
Vaatimukset ja käyttötapaukset
4. Luokan testaus ja käyttö olion kautta
2. Olio-ohjelmoinnin perusteita
Esityksen transkriptio:

582104 – Ohjelmistojen mallintaminen Unified Modeling Language (UML)

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

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

Luokka ja olio Eläin leoLeijona = new Eläin(….); 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);

Unified Modeling Language (UML) ”… ohjelmistojen, liiketoiminnan ja muiden järjestelmien määrittelemiseen, 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 (=13) kaaviotyyppiä

UML:n kaaviotyypit [Wikipedia]

OmniGraffle-työkalun kategoria UML Use Case

OmniGraffle-työkalun kategoria UML General

OmniGraffle-työkalun kategoria UML Sequence

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

Luokkakaavioesimerkki: Ostoskori

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ä

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

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

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

Käyttötapausesimerkki: ostoskori

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)

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

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)

Tilakaavio lyhyesti Yksittäisten olioiden käyttäytymistapa voi olla erilainen eri tilanteissa Kirjastoesimerkissä luokan Kirja oliot käyttäytyvät eri tavalla ollessaan lainassa kuin ollessaan hyllyssä Olion käyttäytyminen siis riippuu sen tilasta Kun kirja on lainassa, ei sille voi suorittaa operaatiota lainaa Kun kirja palautetaan, vaihtuu sen tila jälleen sellaiseksi, että uusi lainaus on mahdollista

Aktiviteettikaavio lyhyesti Tilakaaviot kuvaavat lähinnä yksittäisen olion toimintaa Aktiviteettikaavioilla on mahdollisuus kuvata suurempaa toiminnallista kokonaisuutta, esim. Kokonaista liiketoimintaprosessia Tiedon ja työn kulkua järjestelmässä monen toimijan kannalta Käyttötapauksen etenemislogiikkaa Aktiviteettikaavioissa kuvataan sarja toimintoja ja niiden suoritusjärjestys

Esimerkki tilauksen vastaanottamisen mallintamisesta aktiviteettikaaviona

Millä kaaviot kannattaa piirtää? Kaikkea ei tarvitse eikä kannata tunkea samaan kuvaan Kukin malli valitsee tietyn näkökulman Kynä ja paperia tai valkotaulu Paperi talteen tai roskiin Tarvittaessa skannaus tai digikuva Tarjolla paljon (=liikaa?) ilmaisia työkaluja MS Paint, Dia, Umbrello, Xfig, OmniGraffle, Office.. Paljon maksullisia vaihtoehtoja, esim. MS Visio Visio löytyy laitoksen ohjelmistojakelusta: ks. www.cs.helsinki.fi/compfac/ohjeet/msdnaa Tämän kurssin tarpeisiin kynä ja paperia riittää enemmän kuin hyvin