TIE-20200 Ohjelmistojen suunnittelu



Samankaltaiset tiedostot
TIE Ohjelmistojen suunnittelu

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

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

Muutamia peruskäsitteitä

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

Uudelleenkäytön jako kahteen

SUBSTANTIIVIT 1/6. juttu. joukkue. vaali. kaupunki. syy. alku. kokous. asukas. tapaus. kysymys. lapsi. kauppa. pankki. miljoona. keskiviikko.

Ohjelmistojen mallintaminen. Luento 11, 7.12.

UML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Ohjelmistojen mallintaminen, mallintaminen ja UML

3. Käsiteanalyysi ja käsitekaavio

TIE Ohjelmistojen suunnittelu

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

19/20: Ikkuna olio-ohjelmoinnin maailmaan

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

TIE Ohjelmistojen suunnittelu

Ohjelmistojen mallintaminen, kertausta

Suunnitteluvaihe prosessissa

Ohjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia

13/20: Kierrätys kannattaa koodaamisessakin

OHJ-2710 Peliohjelmointi. Syksy 2012 Timo Kellomäki

Visual Case 2. Miika Kasnio (C9767)

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

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Pelivaihtoehtoja. Enemmän vaihtelua peliin saa käyttämällä erikoislaattoja. Jännittävimmillään Alfapet on, kun miinusruudut ovat mukana pelissä!

TIE Ohjelmistojen suunnittelu

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

ProPilkki 2. yhteistyössä tapahtumassa Virtuaalinen pilkkiviikko järjestäjänä Suomen Vapaa-ajankalastajien Keskusjärjestö ry

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori

TIE Ohjelmistojen suunnittelu. Luento 2: protot sun muut

Kahoot - kyselytyökalu

TIE Ohjelmistojen suunnittelu. Luento 2: protot sun muut

Ylläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

TIE Ohjelmistojen suunnittelu. Luento 8..9: moniperintä

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications

Osoitin ja viittaus C++:ssa

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

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

EeNet käyttäjähallinta ohjeet

Board Game Lab. 7 Pelimekaniikat ja -systeemit. Materiaalit CC-BY 4.0 Mikko Lampi

Kurssin sisältö. Kurssilla vähemmän. Johdatus ohjelmistotekniikkaan. Mitä on ohjelmistotekniikka? Miten ohjelmistoja suunnitellaan ja toteutetaan?

Tietopaketti ja ohjeistus joukkueelle sekä vanhemmille ( syntyneet)

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Kooste kotitehtävien vastauksista. Kotitehtävä 6 - Ylläpito- ja kehittämismalli

Ohjelmistotekniikan menetelmät, kesä 2008

Suvi Remes Miika Alonen Petri Mustajoki Totti Tuhkanen

Antitammirobotti. Antti Meriläinen Martin Pärtel 29. toukokuuta 2009

Nollasummapelit ja bayesilaiset pelit

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin

C++-harjoitustyön raportti: Musta maija

Tarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen

Ylläpito. Ylläpidon lajeja

Valmistelut: Aseta kartiot numerojärjestykseen pienimmästä suurimpaan (alkeisopiskelu) tai sekalaiseen järjestykseen (pidemmälle edenneet oppilaat).

PELIAIKASEURANTAOHJELMAN KÄYTTÖOHJE

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

Pätevyyttä haettava oikeustulkkirekisterilautakunnalta. Edellytyksenä (lakiesityksestä lainaus):

Kuvio 1 Tasapaino (Equilibrium) on suljettujen ja avointen tietorakenteiden dynaaminen suhde

TURVALLISUUDEN HUOMIOMINEN OHJELMISTON HANKINTAKETJUSSA

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa:

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

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Opiskelija osaa määritellä ohjelmiston tiedot ja toiminnot, suunnitella ohjelmiston rakenteen ja laatia ohjelmiston teknisen spesifikaation.

Ohjelmistojen mallintaminen, kesä 2010

Sudenkuoppia, yllätyksiä, pään vaivaa

UML ja luokkien väliset suhteet

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintaminen. Luento 4,

Harjoitussuunnitelma viikko 17 Kärkipotku I

Seniori-taulusto Kuvat Avainsanat

Kertaus: yleistys-erikoistus ja perintä

Banana Split -peli. Toinen kierros Hyvin todennäköisesti ryhmien yhteenlaskettu rahasumma on suurempi kuin 30 senttiä. Ryhmien

Harjoitussuunnitelma viikko 18 Kärkipotku II

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

17/20: Keittokirja IV

Board Game Lab. 4 Teema. Materiaalit CC-BY 4.0 Mikko Lampi

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaihe 3. Antti Jääskeläinen Matti Vuori

TIE Ohjelmistojen suunnittelu

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

ADE Oy Hämeen valtatie TURKU. Tuotekonfigurointi. ADE Oy Ly Tunnus:

Ohjelmien automaattisen verifioinnin reunamailla

Ohjelmistojen suunnittelu

Älysopimusten kehittäminen. Sopimus suuntautunut ohjelmointi

Onnistut yrittämässäsi, mutta jokin täysin epäolennainen. vikaan.

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

ALHAMBRA. Muuri Seralji Puutarha Holvikäytävä Paviljonki Asuinrakennus Torni Rakennuksen nimi Hinta

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Tietopaketti ja ohjeistus joukkueelle sekä vanhemmille ( syntyneiden lajiryhmä)

Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

Kansallinen digitaalinen kirjasto Käyttöliittymä Finna Aki Lassila / Kehittämispäällikkö / Kirjastoverkkopalvelut

Liigan taulut ja attribuutit

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

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

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Tietotekniikan koulutusohjelman suuntautumisvaihtoehdot

Sisällysluettelo ESIPUHE... 4 ALKUSANAT E-KIRJA VERSIOON... 5 SISÄLLYSLUETTELO JOHDANTO TILASTOLLISEEN PÄÄTTELYYN TODENNÄKÖISYYS...

Transkriptio:

TIE-20200 Ohjelmistojen suunnittelu Luento 6: suunnittelua Samuel Lahtinen TIE-20200 Samuel Lahtinen 1

Ajankohtaista Harjoitustyö Protosessioita tällä viikolla

Ohjelmassa tänään Ohjelmistojen suunnittelujuttuja Hitunen UML-asioita

Ohjelmistojen suunnittelusta Mitkä asiat vaikuttavat ohjelmistojen suunnitteluun? Tekijät, osaaminen Toteutusympäristö Valittu ekosysteemi Avoimen lähdekoodin käyttö/avoimen lähdekoodin tuottaminen Työkalut, Kieli/paradigma Aikataulut, kulttuuri, taustat, koulutus, henkilökohtaiset mieltymykset jne.

Korkean tason suunnittelu Mikälainen korkeamman tason rakenne ohjelmalle tulee? Tehdäänkö jonkun olemassaolevan ympäristön päälle, käyttöjärjestelmät jne. Laitteistoläheisyys yms. minkälaisia abstraktioita käytetään? Tulevatko valmiina vai pitääkö toteuttaa MVC/jne., kerroksittainen rakenne, viestien lähettelyä jne. valinta ohjaa varsinaista ohjelman jatkosuunnittelua Usein suunnittelu tehdään useassa vaiheessa, korkean tason rakenne ja siihen liittyvät päätökset ja varsinainen toteutusläheisempi suunnittelu, rajapintojen suunnittelu, lopulta toteuttaminen Eri vaiheet tuottavat eri tason kuvauksia järjestelmästä ja eri tason dokumentaatiota

Yleistä suunnittelusta Dokumentoi myös miksi joku tekniikka, lähestymistapa jne. on valittu! Miksi käytetään vaikkapa tiettyä versiota, tiettyä tietokantaa, jossain on jonkinlainen tarkkailijaratkaisu jne.

Oliosuunnittelu Oliosuunnittelu, olio-pohjainen lähestymistapa Olio-ohjelmointi ja olio-jotain sanoina poissa muodista, eivät tihku tällä hetkellä erotiikkaa sun muuta Ei kuitenkaan kuollut ja kuopattu, vaan osa hyvää ohjelmistojen toteutuksen perustaa Hyvä väline abstraktioiden toteuttamisessa

Oliosuunnittelu Tavoitteena löytää oliot ja niiden vastuualueet, mitä joku olio tekee, tarjoaa muille olioille, mitä yhteyksiä sillä on muualle? Suunnitteluvaiheessa tarkat tietotyypit jne. eivät ole olennaisia

Mallintaminen olioilla TIE-20200 Samuel Lahtinen

Oliosuunnittelun vaiheita 1. Tunnistetaan/löydetään järjestelmän komponentit Substantiivien etsiminen (tarjoaa lähtökohdan) Määrittelystä Järjestelmän aihepiiristä 2. Määrittellään komponenttien vastuut (~verbit abstraktissa spesifikaatiossa) 3. Määritellään komponenttien väliset riippuvuudet, vastuiden kautta (mitä tarvitaan, että voidaan tarjota vastuiden mukainen toiminta) 4. Määritellään komponenttien todelliset rajapinnat toteutus, testaus

Luokkakaavioista Dependency/riippuvuus: heikoin suhde (esim. A käyttää B:tä jossakin jäsenfunktiossaan) Kooste(aggregation): Esimerkiksi joukkue koostuu pelaajista (tietty minimi- ja maksimimäärä, pelaaja voi vaihtaa joukkueesta toiseen. Muodoste (composition): rakennus-kerros, jäsenoliot (esim. henkilö ja syntymäaika) Koosteet, muodosteet, assosiaatiot voivat olla yksisuuntaisia tai kaksisuuntaisia.

Assosiaatiot ja nuolet 12

Lukumääräsuhteet Assosiaatiolla, koosteilla, muodostumisilla lukumääräsuhteet Kiinteä lukumääräsuhde kertoo vakiona pysyvästä suhteesta (esim. shakkilaudan ruudut, pelaajien määrä shakissa) Vaihtelevat lukumääräsuhteet, vaihteluväli esim. joukkueella pitää olla 11-20 pelaajaa. Pelaaja voi olla joko ilman joukkuetta tai kuulua yhteen joukkueeseen. Assosiaatioilla voi olla nimi Assosiaation päähän voi liittyä roolinimi

Mitä vikaa esimerkkikuvassa? TIE-20200 Samuel Lahtinen http://www.jot.fm/issues/issue_2004_11/column5/

tapahtumasekvenssikaaviot TIE-20200 Samuel Lahtinen

Esimerkki: Tehtävänänne on suunnitella alla kuvattu seikkailupeli käyttäen oliosuunnittelun jaloja periaatteita. Alla firmanne pomon yksityiskohtainen kuvaus pelin rakenteesta: Peli ois niinku seikkailupeli, jossa näkyis yläviistosta ku dynaaminen duo Batman ja Robin menee Kotham-sitissä. Ne niinku menis siellä kaupungissa taloihin joissa olisi sitten erilaisia huoneita ja käytäviä. Pelissä vois valita ohjaako Robinia vai Pätmäniä. Niillä sankareilla vois olla kaikkee siistiä lepakkokamaa: ajoneuvoja kuten lepakkoauto ja varusteita kuten lepakkokalsarit ja lepakkobumerangi. Sitten ois tietysti pahiksia kuten Jokeri, Hjallis ja niitten kätyrit. Pahiksillakin vois olla aseita. Aseilla voi joko kumauttaa tai tai sit tehdä pitkän matkan hyökkäyksiä. Otuksilla ja sankareilla olis näkökenttä, jonka sisällä ne reagois asioihin/jonka sisällä olevat jutut näkyis ruudulla. Batman ja Robin, Dynaaminen duo Pahiksia

Varsinainen tehtävä Kepap-keisari Pelin tavoitteena on rakentaa menestyvä pikaruokaimperiumi, joka nousee kaupungin kauneimmaksi ja komeimmaksi pitsa-kebab-ravintolaksi. Peliä voi pelata joko yksinpelinä, tekoälypelaajaa vastaan kisaten tai toista ihmispelaajaa vastaan. Pelimaailmana toimii kaupunkisimulaatio. Virtuaalisen kaupungin erilaisia rakennuksia ja paikkoja kansoittavat autenttisesti käyttäytyvät virtuaali-ihmiset. Kebab-ravintolat kisaavat hinnan ja tunnettavuuden avulla asiakkaista. Tunnettavuusarvo koskee koko ravintolaketjua, eli saman pelaajan kaikkia ravintoloita. Tätä voi kasvataa erilaisten markkinointitempausten avulla. Pelaaja voi ostaa uusia ravintoloita, hankkia raaka-aineita ravintolan tuottoksiin, palkata työntekijöitä, kiertää veroja, mainostaa eri tavoin yms. Erilaisia ruutuja: ravintolat, puistot, kaupat, asuinrakennukset jne. Niissä erilaista toiminnallisuutta sen mukaan onko asukas ruudussa, poistumassa siitä tai tulossa ruutuun. (Esimerkki: Asukkaat: erilaisia asukkaita, jotka tekevät pyrkivät tekemään eri asioita. (duunareita, bilettäjiä, verotarkastajia, terveystarkastajia, koodareita jne.) Esim. duunari, pyrkii tekemään käymään viikot töissä, lounaalla parhaassa työpaikan läheltä löytyvässä ruokapaikassa ja viikonloppuna anniskeluravintolassa ja sen jälkeen kebabilla. Suunnittele pelin korkean tason rakenne ja mieti, miten toteuttaisit erilaisten ruutujen, asukkaiden jne. toiminnan.

Ohjeistus Hae ensin järjestelmän oliot Mieti tämän jälkeen olioille vastuualueita Karsi pois olioista ne, joille ei tule varsinaista toiminnallisuutta, jätä ne abstraktioiksi (ovat myös hyödyllisiä) Tarviiko kyseinen oli jotain muita olioita toiminnoissan/vastuissaan? Jos tarvii, dokumentoi vaaditut yhteydet & miksi. Jos tarvittavaa palvelua ei ole, lisää sellainen tai luo tarvittaessa uusia olioitakin. Konkretisointi

Yhteenveto Opittiin keinoja suunnittelun alkuvaiheeseen TIE-20200 Samuel Lahtinen 19