Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Samankaltaiset tiedostot
Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Johdatus sovellussuunnitteluun, s 2001, osa 4b Helsingin yliopisto / TKTL Harri Laine / Inkeri Verkamo 1. Luokkakaavion tarkoitus

Johdatus sovellussuunnitteluun, s2000, osa5 Helsingin yliopisto;/tktl. Harri Laine 1. Luokkakaavion tarkoitus. Luokkakaavion tarkoitus

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 ER-mallin peruskäsitteet.

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Luokkakaavion laatiminen

Ohjelmistojen mallintaminen luokkamallin laatiminen

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

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

Olioiden yhteistoiminta

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistojen mallintaminen luokkamallin laatiminen

Ohjelmistotekniikan menetelmät, kevät 2008

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

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistojen mallintaminen, kesä 2009

Luokkakohtaiset eli stattiset metodit ja attribuutit

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

Johdanto. Olio (Object) Luokka (Class) Olion kuvaaminen

UML - unified modeling language

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Ohjelmistotekniikan menetelmät, UML

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli Harri Laine 1

UML - unified modeling language - use cases

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Ohjelmistojen mallintaminen, mallintaminen ja UML

3. Käsiteanalyysi ja käsitekaavio

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

Ohjelmistotekniikan menetelmät

Luokka- ja oliokaaviot

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

Ohjelmistotekniikan menetelmät

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

Nimi: Henkilötunnus: {id} {+id}

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

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

5. Järjestelmämallit. Mallinnus

Ohjelmistojen mallintaminen, kertausta

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

Ohjelmistotekniikan menetelmät, koe

UML:n yleiskatsaus. UML:n osat:

UML- mallinnus: Tilakaavio

Olioperustaisuus (object oriented)

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Analyysi on tulkkaamista

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

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

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Liiketoimintaprosessin kuvaus (esim. osapuolten välisenä yhteistyökaaviona) Sidosryhmäkaavio. karkea keskeistä tietosisältöä kuvaava luokkakaavio

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta

Ohjelmistojen mallintaminen, mallintaminen ja UML

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

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

Yhteistoimintakaavio (Esimerkki)

Ohjelmistojen mallintaminen

1. Tarkastellaan seuraavaa kaaviota

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

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

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

Luento 3 Tietokannan tietosisällön suunnittelu

HELIA 1 (17) Outi Virkki Tiedonhallinta

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

Ohjelmistotuotanto, s /3/2003

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

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

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

UML-kielen formalisointi Object-Z:lla

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

T Ohjelmistojen määrittely- ja suunnittelumenetelmät Harjoitustyöraportti TNT - Tarkistetaan Ne Tentit Analyysimalli

Unified Modeling Language

Ohjelmistojen mallintaminen. Luento 3, 9.11.

GroupDesk Toiminnallinen määrittely

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

Palvelusuuntautunut ohjelmistotuotanto Laskuharjoitus 1: Ryhmätöiden alustaminen Toni Ruokolainen,

Ohjelmistotuotanto, s

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

Käyttötapausten mallintaminen

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

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

Ohjelmistojen mallintaminen. Luento 6,

Tietokantasovellusten harjoitustyö

Tietokantojen suunnittelu, relaatiokantojen perusteita

Vaatimusmääritelystä UML:n avulla

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

Siltatiedon tarkkuustason määrittäminen Taitorakennerekisterissä. Maria Vinter

Johdatus sovellussuunnitteluun

Olioiden yhteistyön mallintaminen

käyttötapaukset mod. testaus

Ohjelmistotuotanto, s

JHS 179 ICT-palvelujen kehittäminen: Kokonaisarkkitehtuurin kehittäminen Liite 2 Arkkitehtuurikehyksen kuvaus

Transkriptio:

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa 14.11.2008 Harri Laine 1

Oliot ohjelmiston mallinnuksessa käyttötapaus käyttää Käyttämämme oliokeskeinen perusmalli ohjelmistojen toiminnasta: Käyttötapaukset hoidetaan olioiden palveluita hyödyntämällä 14.11.2008 Harri Laine 2

Useita mallitasoja Yrityksen liiketoiminta Kohdealueen liiketoiminta Ohjelmistoarkkitehtuuri Liiketoimintataso ohjelmistotekninen taso Ohjelmistototeutus Kullakin tasolla asioita voidaan mallintaa eri näkökulmista -> useita malleja 14.11.2008 Harri Laine 3

Luokkakaaviot ja mallitasot Luokkakaaviot kuvaavat oliota ja niiden välisiä yhteyksiä ja riippuvuuksia Kaavioita voi käyttää usealla tasolla eri käyttötarkoituksiin UML:ssä on mahdollista määritellä käyttötarkoituskohtaisia profiileja kaavioista Profiilissa kaaviosta voidaan määritellä erikoistapaus, jossa perusmallin käsite, esimerkiksi luokka, voidaan korvata usealla täsmällisemmällä käsitteellä ja näille voidaan määritellä jopa omat graafiset esitystavat (tällaisista pienistä täsmennyksistä huolimatta kyseessä on kuitenkin pohjimmiltaan luokkakaavio) 14.11.2008 Harri Laine 4

Luokkakaaviot ja mallitasot Erikoisluokkakaavio Luokkakaavio Profiili voi määritellä useita erikoistapauksia sekä luokkakaavioista, että myös muista myöhemmin käsiteltävistä tekniikoista 14.11.2008 Harri Laine 5

Luokkakaaviot ja mallitasot Maciaszek & Liong luvussa 6 esiintyvät kaaviotekniikat ovat 'liiketoiminta'-profiilissa määriteltyjä erikoistapauksia business use case model use case model business class diagram class diagram 14.11.2008 Harri Laine 6

Luokkakaaviot ja mallitasot Esimerkki: business use case model (kuvaa liiketoimintaprosesseja) 14.11.2008 Harri Laine 7

Luokkakaaviot ja mallitasot Esimerkki: business class diagram (kuvaa liiketoiminnan keskeisiä tekijöitä) 14.11.2008 Harri Laine 8

Luokkakaavion mahdollisuudet Olio 1 tietää Olio 3 Palvelu b Palvelu a Luokkakaavio ei kuvaa yhteistyötä Oheisesta mallista voidaan kuvata vain osa.. Olio 2 Palvelu d Käyttää apuna Olio 4 Palvelu c 14.11.2008 Harri Laine 9

Luokkakaavion mahdollisuudet Palvelu a Olio 1 tietää Olio 3 Palvelu b Luokkakaavio ei kuvaa yhteistyötä Oheisesta mallista voidaan kuvata vain rakenne Olio 2 Palvelu d Olio 4 Palvelu c 14.11.2008 Harri Laine 10

Luokkakaavio liiketoiminnan kuvaamisessa Liiketoimintaa kuvaavien mallien tarkoituksena on määritellä ohjelmiston tehtävää. Mitä tietoa ohjelmisto käsittelee ja mihin tietoja käytetään Unified process menetelmässä liiketoimintaa voidaan mallintaa kahdella tasolla yleiskuvatasolla (Business object model) liiketoimintaprosessit ja liiketoiminnan keskeiset osapuolet kohdealuetasolla (Domain object model) tehtävät ja niihin liiketoiminnan kannalta liittyvät kohteet 14.11.2008 Harri Laine 11

Luokkakaavio liiketoiminnan kuvaamisessa Tarkastellaan tarkemmin kohdealuetason liiketoimintamalleja (domain use case model ja domain object model) Malleilla kuvataan liiketoimintaa, mutta niillä on jo selkeä kytkentä haluttuihin ohjelmistopalveluihin Käyttötapausmalli tällä tasolla vastaa kurssilla jo aiemmin käsiteltyä: käyttötapauksina määritellään liiketoimintaan liittyviä tehtäviä, joita ohjelmiston on tarkoitus avustaa Luokkakaavion tarkoituksena on kuvata liiketoiminnan kannalta oleellisia kohteita (liiketoimintaolioita), joihin liittyvää tietoa järjestelmässä käsitellään muodostavat perustan ohjelmiston tietokannalle 14.11.2008 Harri Laine 12

Luokkakaavion laatiminen Kokonaisvaltainen lähestymistapa etsitään kerralla koko kohdealuetta kuvaavaa mallia hankalaa, jos kohdealue on laaja ensin karkea yleiskuva, sitten lisää yksityiskohtia JA/TAI Osista kokonaisuuteen jaetaan kokonaisuus osiin ja tehdään osakohtaisia malleja, jotka sitten yhdistetään kokonaismalliksi osa voisi olla esimerkiksi käyttötapaus yksityiskohdista yleiskuvaan 14.11.2008 Harri Laine 13

Luokkakaavion laatiminen Kartoita luokkaehdokkaita. Karsi ehdokkaita. Tunnista olioiden väliset yhteydet. Täsmennä luokkakuvauksia määrittelemällä attribuutit. Määrittele yhteyksiin liittyvät kytkentärajoitteet. (liiketoimintaolioille ei yleensä määritellä palveluita) 14.11.2008 Harri Laine 14

Ehdokkaiden kartoitus Laadi luettelo (sanasto) tarkasteltavan ilmiön kannalta keskeisistä kohteista tai ilmiöistä, jotka voisivat tulla kyseeseen luokkina tai olioina: toimintaan osallistujat toiminnan kohteet toimintaan liittyvät tapahtumat materiaalit tuotteet ja välituotteet toiminnalle edellytyksiä luovat asiat 14.11.2008 Harri Laine 15

Ehdokkaiden kartoitus Kartoituksen pohjana voi käyttää vapaa-muotoista tekstikuvausta tarkasteltavasta ilmiöstä. Käyttötapauslähtöisessä mallinnuksessa osana tekstiä olisi käyttötapauksen sisällön kuvaus. Kuvauksesta alleviivataan luokkaehdokkaita ja kerätään ne luetteloon Luokkaehdokkaat esiintyvät kuvauksessa usein subjekteina tai objekteina Verbit voivat ilmaista yhteyksiä, samoin genetiivit Alustavaa karsintaa voi tehdä sen perusteella, onko asia lainkaan oleellinen mallinnettavan ilmiön kannalta. 14.11.2008 Harri Laine 16

Ehdokkaiden kartoitus Löydetyt ehdokkaat käydään läpi ja arvioidaan, voisiko ehdokas tulla kyseeseen luokkana. Liittyykö luokan ilmentymiin tietosisältöä, joka on välttämätöntä järjestelmän kannalta (yleensä on oltava useita attribuutteja)? Tarvitaanko tietoa ilmentymien olemassaolosta? Onko asia riittävän tärkeä kohdealueen kannalta? Karsitaan synonyymit. Karsintaa ja ehdokkaiden kartoitusta voidaan joutua tekemään iteratiivisesti. Ensimmäinen karsintakierros ei välttämättä tuota lopullista tulosta. 14.11.2008 Harri Laine 17

Tunnista yhteydet Yhteyksiä (ilmentymien välillä) voi etsiä vapaamuotoisesta kuvauksesta: verbit genetiivit muut ilmaukset, jotka kuvaavat kytkentää Yhteyksienkin suhteen tulisi miettiä onko yhteys oleellinen tarkasteltavan ilmiön kannalta? onko se rakenteellinen? (vallitseva asiaintila) Asia pitäisi esittää vain kertaalleen: johdettavissa olevat yhteydet? karsitaan tai merkitään Älä piilota yhteyksiä attribuuteiksi! 14.11.2008 Harri Laine 18

Määrittele attribuutit Attribuutteja saattaa löytyä vapaamuotoisesta kuvauksesta. Yleensä niiden löytäminen edellyttää lisäselvityksiä kohdealueesta, esimerkiksi toiminnan osapuolten haastatteluja. Attribuuttien kohdalla pitäisi myös selvittää, mihin niitä tarvitaan. Ja uudelleen: Älä piilota yhteyksiä attribuutteihin! 14.11.2008 Harri Laine 19

Määrittele kytkentärajoitteet Kytkentärajoitteiden avulla ilmaistaan rakenteellisia sääntöjä. Säännöt eivät välttämättä tule esiin vapaamuotoisessa kuvauksessa, vaan edellyttävät tarkempaa kohdealueen analysointia. 14.11.2008 Harri Laine 20

Luokkakaavion laatiminen Siirry Puutarhatonttu esimerkkiin 14.11.2008 Harri Laine 21

Käyttötapauslähtöinen mallin laadinta Lähtökohta: mitä liiketoimintaolioita käyttötapaukseen liittyy? Jokaisen käyttötapauksen perusteella laaditaankäyttötapauskohtainen näkymä Näkymät yhdistetään kokonaismalliksi (Katso materiaalin Kampaamo-esimerkki - ei käsitelty luennolla) 14.11.2008 Harri Laine 22

Käyttötapauslähtöinen mallin laadinta KT-1 KT-i KT-n Näkymä-1 Näkymä-i Näkymä-n integrointi Koottu malli 14.11.2008 Harri Laine 23

Riippuvuusmatriisit Käyttötapauksittain sisältömallia muodostettaessa saadaan ainakin periaatteessa malliin mukaan kaikki käyttötapauksen tarvitsemat tiedot. Käyttötapausmallin ja tietosisältömallin yhteensopivuuden varmistamiseksi voidaan käyttää riippuvuusmatriisia. 14.11.2008 Harri Laine 24

Riippuvuusmatriisit Riippuvuusmatriiseja: Luokat ja yhteydet / käyttötapaukset Matriisin alkiona riippuvuustieto: luo, muuttaa, poistaa, käyttää ilmentymiä Matriisit voidaan esittää myös attribuuttitasolla, jolloin näkyisi attribuuttien käsittely. Tällöin matriisit on kuitenkin syytä pilkkoa luokkakohtaisiksi. 14.11.2008 Harri Laine 25

Riippuvuusmatriisit Käyttötapaukset Uusi artikkeli Uusi artikkeliversio Tiedustelu artikkelin tilasta Lausunnonantajan valinta Lausunnon saapuminen Muistutus lausunnosta Puuttumaan jäänyt lausunto Olioluokat Article L M K K K K K K M M M M M M M K K K K K Article version L L K M K K K M M M M M K Person X X X K K K K K K K K X K Reference K L M M M M K Journal L K K K K= Käyttää, L = Luo, M= Muuttaa, P= Poistaa, X=Luo tai muuttaa Valituksen käsittely Julkaisupäätöksen kirjaus Palautus korjattavaksi Julkaistavaksi hyväksymine Hylkääminen Viimeistellyn saapuminen Oikovedoksen lähettäminen Korjausten vastaanotto Eripainosten tilaus Henkilötietojen rekisteröinti Sisällysluettelo Vuosikertatiedot www-sivut Raportit 14.11.2008 Harri Laine 26

Riippuvuusmatriisit Jokaiselle luokalle ja yhteydelle täytyisi löytyä käyttötapaus, jolla voidaan luoda luokan ilmentymiä ja kytkeä olioita ko. yhteyteen. Jokaiselle luokalle ja yhteydelle täytyisi löytyä käyttötapaus, joka hyödyntää luokan tietoja ja yhteyksiä. Jos ilmentymät eivät ole ikuisia, pitää löytyä käyttötapaus, jolla hävitetään ilmentymiä. 14.11.2008 Harri Laine 27

Riippuvuusmatriisit Jos ilmentymän tietosisältö ei ole muuttumaton, pitää löytyä käyttötapaus, jolla tietosisältöä voidaan muuttaa. Jos osapuoli voidaan irroittaa yhteydestä, täytyy tähän tarkoitukseen löytyä käyttötapaus. Toisaalta jokaisen käyttötapauksen täytyy jollain tavoin liittyä sisältöluokkiin. 14.11.2008 Harri Laine 28