Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Samankaltaiset tiedostot
Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

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

Ohjelmistojen mallintaminen luokkamallin laatiminen

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

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

Ohjelmistojen mallintaminen luokkamallin laatiminen

Luokkakaavion laatiminen

Luokkakohtaiset eli stattiset metodit ja attribuutit

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistotekniikan menetelmät, kevät 2008

Ohjelmistojen mallintaminen, kesä 2009

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

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

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

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Ohjelmistotekniikan menetelmät, koe

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Olioiden yhteistoiminta

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

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

UML- mallinnus: Tilakaavio

Ohjelmistojen mallintaminen, kertausta

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

1. Tarkastellaan seuraavaa kaaviota

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

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

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

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

Ohjelmistotekniikan menetelmät, UML

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

Ohjelmistojen mallintaminen. Luento 6,

3. Käsiteanalyysi ja käsitekaavio

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

SÄILYTETTÄVIEN TIETOJEN MÄÄRITYS LUOKKAMALLI

Yhteistoimintakaavio (Esimerkki)

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

Määrittelyvaihe. Projektinhallinta

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

Ohjelmistojen mallintaminen, mallintaminen ja UML

Lomalista-sovelluksen määrittely

käyttötapaukset mod. testaus

Ohjelmistojen mallintaminen. Luento 3,

Ohjelmistojen mallintaminen, mallintaminen ja UML

Johdatus sovellussuunnitteluun

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta

5. Järjestelmämallit. Mallinnus

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

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

HELIA 1 (17) Outi Virkki Tiedonhallinta

Tietokannan suunnittelu

Javan perusteita. Janne Käki

Hyvin määritelty on puoliksi tehty kuinka vältetään turha tekeminen jo alussa

UML - unified modeling language

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Harjoitustehtävät ja ratkaisut viikolle 48

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

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

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

Analyysi on tulkkaamista

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta

Käyttötapausanalyysi ja testaus tsoft

Luokka- ja oliokaaviot

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

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

Oppijan verkkopalvelun käyttöohjeiden laatiminen

Ohjelmistojen mallintaminen. Luento 10, 3.12.

opiskelun suunnittelujärjestelmä, kurki ja ilmo käyttävät kaikki samaa tietokantaa, ja uusi järjestelmä tulee osaksi tätä.

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Toiminnalliset alueet ja palveluverkon muutokset

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton

Johdatus sovellussuunnitteluun

TOIMINNALLINEN MÄÄRITTELY MS

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

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

UML-kielen formalisointi Object-Z:lla

Dynaaminen analyysi II

Ohjelmistojen mallintaminen. Luento 3, 9.11.

UML - unified modeling language - use cases

Ohjelmistotekniikan menetelmät

Ohjelmistojen mallintaminen, oliosuunnittelua ja suunnittelumalleja

Ohjelmistotekniikan menetelmät

Haaga-Helia / TIKO-05 1 (12) Tietokannan suunnittelu ja Toteutus Outi Virkki

KANTA-TULEVAISUUS- SKENAARIOTYÖN TILANNEKATSAUS Riikka Vuokko, STM

1. Toimivan IT-ympäristön rakentaminen

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

ICT-palvelujen kehittäminen - suositussarja Suvi Pietikäinen Netum Oy

HAAGA-HELIA Käyttötapaukset 1 Tietojenkäsittely Tietosysteemin määritys. Käyttötapaukset

Yhteiskehittämistä kilpailutuksissa: toimintamalleilla vauhtia alustojen ja apien käyttöön

Osaamiskartta pikaopas

Oppijan palvelukokonaisuus. Tietomallinnuksen laaja katselmointi

Transkriptio:

582101 - Ohjelmistotekniikan menetelmät, luokkamallin laatiminen 1

Lähestymistapoja Kokonaisvaltainen lähestymistapa (top-down) etsitään kerralla koko kohdealuetta kuvaavaa mallia hankalaa, jos kohdealue on laaja ensin karkea yleiskuva, sitten lisää yksityiskohtia JA/TAI Osista kokonaisuuteen (bottom-up) jaetaan kokonaisuus osiin ja tehdään osakohtaisia malleja, jotka sitten yhdistetään kokonaismalliksi osa voisi olla esimerkiksi käyttötapaus yksityiskohdista yleiskuvaan 2

Luokkamallin laatimisen yleisohje Laadi kohdealueen perussanasto Muodosta alustava luokkakaavio Tunnista luokkien ilmentymien väliset yhteydet Täsmennä mallia määrittelemällä attribuutit Määrittele yhteyksien moniarvoisuusmääreet Liitä luokkiin operaatiot ja lisää tarvittaessa uusia luokkia käyttötapausten perusteella Varmista käyttötapausten ja luokkamallin yhteensopivuus 3

Perussanaston laatiminen (harjoitus 1) Etsi kohdealueen potentiaaliset luokat ja oliot esim. keskeiset toimijat, toiminnan kohteet, ilmiöt, tapahtumat, materiaalit, tuotteet, käsitteet, termit, Lähtökohtana esim. vapaamuotoinen tekstikuvaus Kerää luokkaehdokkaat perussanastoksi luokkaehdokkaat tekstissä usein subjekteja tai objekteja verbit voivat ilmaista yhteyksiä, samoin genetiivit 4

Turhien ehdokkaiden karsiminen perussanastosta Luokka oleellinen mallinnettavan ilmiön kannalta? Luokalla (useita) ilmentymiä? Ilmentymillä järjestelmän kannalta välttämätöntä tietosisältöä (yleensä oltava useita attribuutteja)? Poista synonyymit Karsiminen tyypillisesti iteratiivista 5

Yhteyksien tunnistaminen Etsi yhteyksiä sanastosta (ja muista kuvauksista) Käy läpi verbit ja genetiivit sekä muut ilmaukset, jotka kuvaavat kytkentää Onko yhteys oleellinen tarkasteltavan ilmiön kannalta? Onko se rakenteellinen? (vallitseva asiaintila) Esitä kukin asia vain kertaalleen Karsi tai merkitse johdettavissa olevat yhteydet Älä piilota yhteyksiä attribuuteiksi! Työntekijä osastonnimi Osasto nimi Työntekijä osasto nimi Osasto 6

Attribuuttien tunnistaminen Attribuutteja saattaa löytyä sanastosta 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! 7

Moniarvoisuusmääreet Moniarvoisuusmääreiden eli osallistumisrajoitteiden avulla ilmaistaan rakenteellisia sääntöjä Säännöt eivät välttämättä tule esiin sanastossa, vaan edellyttävät tarkempaa kohdealueen analysointia 8

Käyttötapausten rooli operaatioiden ja luokkien tunnistamisessa Käydään läpi kukin käyttötapaus ja sen määrittelemät toiminnalliset vaatimukset esimerkiksi taulukkomuodossa (ks. Maciaszek & Liong, Ch. 11.1, s. 332-339) Määritellään yksi (tai useampi) pääluokka, joka vastaa toiminnallisuuden toteuttamisesta Määritellään yksi tai useampia operaatioita, jotka vastaavat toiminnallisuuden toteuttamisesta Määritellään tarvittaessa apuluokkia, joita pääluokka käyttää hyväksi 9

Käyttötapausten ja luokkamallin yhteensopivuus Käyttötapausmallin ja tietosisältömallin yhteensopivuuden varmistamiseksi voidaan käyttää riippuvuusmatriisia luokat ja yhteydet vs. käyttötapaukset alkiona riippuvuustieto: luo, muuttaa, poistaa, käyttää matriisit voidaan esittää myös attribuuttitasolla, jolloin kuvataan kunkin attribuutin käsittely (tällä tasolla matriisit on kuitenkin syytä pilkkoa luokkakohtaisiksi) 10

Riippuvuusmatriisi 11

Riippuvuusmatriisin käyttö 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 poistetaan ilmentymiä Jos ilmentymän tietosisältö ei ole muuttumaton, pitää löytyä käyttötapaus, jolla tietosisältöä voidaan muuttaa Jos osapuoli voidaan irrottaa yhteydestä, täytyy tähän tarkoitukseen löytyä käyttötapaus Lisäksi: jokaisen käyttötapauksen täytyy jollain tavoin liittyä sisältöluokkiin 12