Ohjelmistojen mallintaminen, kertausta

Samankaltaiset tiedostot
Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistotekniikan menetelmät, kevät 2008

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Ohjelmistotekniikan menetelmät, UML

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

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

Ohjelmistojen mallintaminen, mallintaminen ja UML

Analyysi on tulkkaamista

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

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

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

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

Ohjelmistotekniikan menetelmät, arkkitehtuuria ja rajapintoja

Ohjelmistotekniikan menetelmät, koe

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

Ohjelmistojen mallintaminen, sekvenssikaaviot

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Kertaus: yleistys-erikoistus ja perintä

1. Tarkastellaan seuraavaa kaaviota

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Luokka- ja oliokaaviot

Ohjelmistojen mallintaminen. Luento 4,

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Olioiden yhteistyön mallintaminen

Ohjelmistojen mallintaminen luokkamallin laatiminen

Määrittelyvaihe. Projektinhallinta

Luokkakohtaiset eli stattiset metodit ja attribuutit

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

UML- mallinnus: Tilakaavio

Kurssin aihepiiri: ohjelmistotuotannon alkeita

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

Ohjelmistojen mallintaminen. Luento 3, 9.11.

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

UML:n yleiskatsaus. UML:n osat:

Ohjelmistotekniikan menetelmät

Ohjelmistotekniikan menetelmät

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

UML-kielen formalisointi Object-Z:lla

Harjoitustehtävät ja ratkaisut viikolle 48

TIE Ohjelmistojen suunnittelu

Ohjelmistojen suunnittelu

Luokkakaavion laatiminen

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta

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

Olioperustaisuus (object oriented)

5. Järjestelmämallit. Mallinnus

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

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

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

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

Ohjelmistojen mallintaminen. Matti Luukkainen

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

Ohjelmistojen mallintaminen

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

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmistojen mallintaminen luokkamallin laatiminen

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

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

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Johdatus sovellussuunnitteluun, s2000, osa4 Helsingin yliopisto;/tktl. Harri Laine 1. Luokka- ja oliokaaviot. Luokka- ja oliokaaviot

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

Ohjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia

Johdatus sovellussuunnitteluun, s2001, osa 4a Helsingin yliopisto / TKTL Harri Laine / Inkeri Verkamo 1. Luokka- ja oliokaaviot

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

Ohjelmistojen mallintaminen, syksy 2011, laskuharjoitus 2

2. Olio-ohjelmoinnin perusteita 2.1

Ohjelmistojen mallintaminen. Luento 6,

3. Käsiteanalyysi ja käsitekaavio

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

SUOMEN PÖYTÄTENNISLIITTO MIESTEN RANKINGJÄRJESTELMÄN PERUSTEET

UML Luokkakaavio 14:41

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

Hakemistojen sisällöt säilötään linkitetyille listalle.

Lomalista-sovelluksen määrittely

käyttötapaukset mod. testaus

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

RANTALENTISSÄÄNNÖT 2016 Rantalentisturnaus Paukarlahden kyläyhdistys RY

Kertausta: Olioperustainen ohjelmistokehitys

UML ja luokkien väliset suhteet

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Ohjelmistoarkkitehtuurit. Syksy 2010

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

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

Transkriptio:

582104 Ohjelmistojen mallintaminen, kertausta 1

Kertausluennon asiat Kysymyksiä? Kurssin keskeisin asiasisältö Koetehtävät tehtävätyypit esimerkkitehtäviä ja -ratkaisuja ja vielä kysymyksiä? 2

Kysymyksiä Onko jokin jäänyt epäselväksi? epäselvyyksiä harjoitustehtävissä painovirheitä luentokalvoissa mitkä UML-kaaviot pitää osata ja kuinka tarkasti 3

Kurssin keskeisin sisältö 1/6 Tietojärjestelmä, ohjelmisto, ohjelma Ohjelmisto- vs. perinteinen teollinen tuotanto ohjelmistot laajoja, monimutkaisia, abstrakteja muutakin kuin ohjelmointia, erityisesti mallintamista perinnejärjestelmät vs. oliojärjestelmät Ohjelmiston elinkaari eri vaiheet ja niille tyypilliset näkökulmat, menetelmät, kaaviot, dokumentit työkalut ja niiden keskeiset toiminnot elinkaarimallit (prosessimallit) iterointi & inkrementaalisuus 4

Kurssin keskeisin sisältö 2/6 Mallintamisesta miksi mallinnetaan? mallinnuskielet: minkälaisia, miksi erilaisia? abstraktiotasot vs. näkökulmat vaiheittainen olioperustainen mallintaminen Strukturoitu mallinnus vs. olioperustaisuus erot ja yhtäläisyydet keskeiset kaaviotyypit ja mihin niitä käytetään 5

Kurssin keskeisin sisältö 3/6 Sidosryhmäkaavio mitä kuvaa & mihin käytetään? kaavioelementit Käyttötapaukset mitä kuvaa? mihin käytetään (elinkaaren eri vaiheissa)? tekstikuvauksen tyypilliset osat UML:n käyttötapauskaavio kaavioelementit käyttötapausten väliset suhteet 6

Kurssin keskeisin sisältö 4/6 Sanastot erilaiset sanastot sanaston laatiminen sanaston käyttö Luokkamalli UML-luokkakaavio kaavioelementit & niiden variaatiot ja määreet luokat ja oliot (eli luokkien ilmentymät) eri abstraktiotasojen kaaviot luokkamallin laatiminen ja tarkentaminen luokkamalli vs. käyttötapaukset 7

Kurssin keskeisin sisältö 5/6 Ohjelmistoarkkitehtuuri ja sen suunnittelu arkkitehtuurin tehtävä (mitä tarkoittaa tuettavuus?) kerrosarkkitehtuuri järjestelmän jaottelun perusmallina jaottelun kuvaaminen UML-pakkauksilla Riippuvuudet riippuvuusmekanismit, riippuvuudet eri abstraktiotasoilla riippuvuussyklit ja niiden poistaminen tapahtumankäsittely Arkkitehtuurimallit: MVC 8

Kurssin keskeisin sisältö 6/6 Tarkan tason luokkasuunnittelu siirtyminen määrittelystä suunnitteluun operaatioiden sijoittelu luokkiin & suunnittelutason luokat suunnittelumallit Sekvenssikaavio mitä kuvaa & mihin käytetään? kaavioelementit Toteutus UML-kaavioista Java-toteutukseen 9

Koetehtävät: tehtävätyypit Esseekysymykset, lyhyet määrittelytehtävät, väittämät Kaavion (tai mallin) laatiminen sidosryhmäkaavio tekstikuvauksesta käyttötapaukset ja kt-kaavio tekstikuvauksesta luokkakaavio tekstikuvauksesta, sanastosta tai käyttötapausten läpiviemiseksi sekvenssikaavio koodista tai tietyn käyttötapauksen läpivientiä kuvaamaan Kaavion ymmärtäminen väitteiden yhdenmukaisuus luokkakaavion kanssa kaavion muokkaaminen, jotta sillä voidaan ilmaista tietty tilanne ilmentymätason kaavion laatiminen luokkakaavion pohjalta riippuvuuksien ja muiden arkkitehtonisten ominaisuuksien merkitseminen luokkakaavioon tai tunnistaminen luokkakaaviosta 10

Esimerkkejä: esseet ja määrittelyt 1/2 Nimeä tietojärjestelmän elinkaaren päävaiheet. Mikä on sidosryhmäkaavio ja mihin sitä käytetään? 11

Esimerkkejä: esseet ja määrittelyt: 2/2 Mikä on perinnejärjestelmä? Mitkä ovat perinnejärjestelmän tyypilliset piirteet? Miten järjestelmästä tulee perinnejärjestelmä? Mitä ovat käyttötapaukset ja mihin niitä käytetään? Selosta keskeisimmät käyttötapauksen tekstikuvauksen osat. Yhteys, kooste ja kompositio ovat kaikki UMLluokkamalliin liittyviä käsitteitä. Selosta, mitä ne tarkoittavat, mihin niitä käytetään ja miten ne liittyvät toisiinsa. 12

Esimerkkejä: kaavion laatiminen 1/4 Olet suunnittelemassa tietokonepeliversiota eräästä itämaisesta taistelulajista. Peli koostuu otteluista, joissa taistellaan yksi pari kerrallaan. Peli sisältää joukon tietokoneen ohjaamia ottelijoita, joiden lisäksi käyttäjät voivat luoda omia nimettyjä ottelijoitaan. Ottelija osaa tiettyjä lajille ominaisia liikesarjoja, joita käytetään taisteltaessa muita ottelijoita vastaan. Ottelijan hallitsemat liikesarjat määräytyvät ottelijan keräämän pistemäärän perusteella; kunkin liikesarjan osaaminen edellyttää tiettyä määrää pisteitä. (Ottelija voi kartuttaa pistesaldoaan ottelusta ja turnauksesta toiseen.) Liikesarjat ovat joko hyökkäyksiä tai torjuntoja. Tietyn hyökkäyksen voi torjua vain tietyllä torjunnalla; sama torjunta voi kuitenkin purra useaan eri hyökkäykseen. Onnistuneesta hyökkäyksestä saa tietyn määrän pisteitä. Pelin voittaa ottelussa enemmän pisteitä kerännyt pelaaja. Tasatilanteessa voittaja arvotaan. Kunkin ottelun voittaja riistää puolet voittamansa ottelijan pisteistä itselleen. 13

Esimerkkejä: kaavion laatiminen 2/4 Kullakin ottelijalla on nimi ja tietty graafinen hahmo, jonka voi valita joukosta eri vaihtoehtoja. (Hahmoilla on yksikäsitteiset numerot.) Kuhunkin liikesarjaan liittyy nimi ja tietty joukko asentoja, jotka peräkkäin esitettynä muodostavat koko liikesarjan. (Asennoilla on yksikäsitteiset numerot.) Järjestelmässä on esitetty omana kuvanaan kukin hahmo kaikissa mahdollisissa asennoissa. (Kuvaan liittyy kuvatiedoston nimi.) Sama asento voi esiintyä useassa eri liikesarjassa ja samassa liikesarjassa useampaan kertaan. Tietyn ottelijan suorittama liikesarja animoidaan esittämällä peräkkäin ottelijan hahmoon liittyvät kuvat kyseisen liikesarjan asennoissa. Peliä pelataan turnausmuotoisesti ottelu kerrallaan. Turnaus aloitetaan valitsemalla turnauksen osallistujamäärä (jokin kahden potenssi) sekä ilmoittamalla halutut ihmispelaajien ohjaamat ottelijat turnaukseen. Jäljelle jääviin osallistujapaikkoihin arvotaan tietokoneen ohjaamia ottelijoita. Tämän jälkeen arvotaan ottelukaavio, joka koostuu joukosta kahden ottelijan välisiä otteluita. Ottelun voittaja pääsee aina turnauksessa jatkoon. 14

Esimerkkejä: kaavion laatiminen 3/4 Peruspotku Ottelu 7 (loppuottelu): Ottelun 5 voittaja vs. ottelun 6 voittaja Ottelu 5: Ottelun 1 voittaja vs. ottelun 2 voittaja Ottelu 6: Ottelun 3 voittaja vs. ottelun 4 voittaja hahmo 1 asennoss a 12 hahmo 1 asennoss a 13 hahmo 1 asennossa 14 hahmo1 asennossa 13 hahmo 1 asennossa 12 Ottelu 1: Leena vs. Nina Ottelu 2: Pekka vs. Simo Ottelu3: Pirkka vs. Pirjo Ottelu 4: Otto vs. Saara Laadi attribuuttitason UML-luokkakaavio kuvaamaan pelin tietosisältöä. Merkitse kaavioon yhteyksien osallistumisrajoitteet. Muista myös kooste- ja kompositioyhteyksien käyttö. Kaaviossa ei tarvitse esittää operaatioita eikä yhteyksien navigointisuuntia. Mieti tarkkaan, milloin aliluokitus on todella tarpeen. Vältä toistamasta mitään tietoa, joka on johdettavissa muista tiedoista. 15

Esimerkkejä: kaavion laatiminen 4/4 Hyökkäys pistearvo 1 Torjunta Liikesarja nimi 1 kyky {ordered} Asento numero 1 Kuva tiedosto Suoritus Ottelija 1 Hahmo ottelija nimi pistemäärä ihmispelaaja 0..2? 1 voittaja numero 1 {2 n } Ottelu voitettu ottelu 0..1 seur. ottelu 0..2 ed. ottelu Turnaus 16

Esimerkkejä: kaavion ymmärtäminen 1/2 Mitkä seuraavista väitteistä ovat alla annetun elokuvia ja näyttelijöitä kuvaavan luokkakaavion mukaisia ja mitkä eivät? Perustele vastauksesi sopivilla ilmentymätason kaavioilla. (Väite on kaavion mukainen, jos se ei ole ristiriidassa kaavion kanssa tai jos väitteessä esitetty tilanne on esitettävissä kaavion mukaisella tietosisällöllä.) Marlon Brando markkinoi elokuvaa Kummisetä antamalla kaksi haastattelua ja Al Pacino luennoimalla Keuruun elokuvakerhon kesäjuhlilla. Elokuvatähti Tyrkyllä ei ole roolisuoritusta missään elokuvassa. Jokaisessa elokuvassa on oltava vähintään yksi tähti. Marlon Brando markkinoi Aki Puhvelimäen elokuvaa Maali kuivuu, vaikka hänellä ei ole siinä roolia. Rauli Raikas näyttelee elokuvan Ensirakastajan paluu kaikki roolit. 17

Esimerkkejä: kaavion ymmärtäminen 2/2 Elokuva nimi: String ohjaaja: String ensi-ilta: Date tyylilaji: String Rooli 1.. roolinimi: 1 String kuvaus: String Näyttelijä nimi: String ikä: int Markkinointitehtävä kuvaus: String 1.. 1 Elokuvatähti 18

Kysymyksiä? Kiitos ja onnea kokeeseen! 19