Oliosuunnittelu.

Slides:



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

Ohjelmiston tekninen suunnittelu
Testaus ja testausympäristöt
1 Heli Lepomäki Yritysten ja muiden organisaatioiden käyttöön sähköinen työpöytä on jo leviämässä, koska niiden toiminta ja asiakaspalvelu.
Osaamisen ja sivistyksen parhaaksi Oppijan verkkopalveluiden hyväksymistestauksen raportointiohje Testitapauksen raportointi Havainnon raportointi.
Suunnitelma ohjelmiston testaukseen
Tietojärjestelmät ja Systeemisuunnittelu
Tietokanta.
Käytettävyystestaus GenMetrics projektissa Jonas Alam
Nämä kalvot on lisensoitu Creative Commons Attribution-ShareAlike 1
Tietokannan suunnittelu
Nämä kalvot on lisensoitu Creative Commons Attribution-ShareAlike 1
Osaamisen ja sivistyksen parhaaksi Oppijan verkkopalveluiden hyväksymistestauksen testausohjeet Yleisohjeet testaukseen Havaintoraportin täyttäminen.
Olio-ohjelmointi. Mitä olio-ohjelmointi on ?  Pyritään mallintamaan jotain reaalimaailman kohdetta tietokoneohjelman avulla  Olio on luokan ilmentymä.
Tekninen suunnit-telu
1. Olio-ohjelmointi.
Tilasiirtymäkaavio ja eri mallien yhteensovittaminen
Perintä. Yleistä Olio-ohjelmoinnin menetelmä muodostaa uusia luokkia aiemmin määriteltyjen luokkien avulla Luokka saa automaattisesti käyttöönsä kaikki.
Antti-Jussi Lakanen Nuorten peliohjelmointi 2009 / Jyväskylän yliopisto.
Tietojärjestelmän suunnittelu
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.
Testaus Tiptopissa draft Mats Lindstedt, Mika Rintala.
Oliomallittaminen ja UML
(Joskus puhutaan myös komponenttitestauksesta.) Pienin kokonaisuus, joka on järkevä testata erikseen. ● Perinteisesti yksittäinen aliohjelma. ● Olio-ohjelmien.
© Jukka Harju, Jukka Juslin Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 9 Poikkeuskäsittely.
SE-02 Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin.
3. Spesifikaatioiden laatiminen
2. Vuokaaviot.
© Jukka Harju, Jukka Juslin
Johdatus ohjelmointiin Ohjelmistosuunnittelu Jaana Holvikivi.
Luokan määrittely class-määreellä tMyn1 Luokan määrittely class-määreellä Luokan määrittely tarkoittaa luokan tietojäsenten esittelyä ja jäsenfunktioiden.
Osaamisen ja sivistyksen parhaaksi Oppijan verkkopalveluiden hyväksymistestitapausten kuvausohje.
Tietokoneohjelman suoritus opintojakso Olioajattelu ja –ohjelmointi, osa I Hans Nieminen Syksy 2013.
Ohjelmistojen suunnittelumenetelmät ja –työkalut
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op ALU.
− työkalu toiminnan suunnittelun ja suunnitelman arvioinnin tueksi
Selainkäyttöliittymän tuotantoprosessi Klikkaamalla pääotsikoista tietosi karttuu. Sininen mökki toimii paluupainikkeena. Selainkäyttöliittymän tuotantoprosessi.
Ohjelmistotekniikka ja projektinhallinta, 4 op
Onnistunut IT-projekti - Haaveesta totta? Tiken näkemys
Esitutkimus (tarvekartoitus)
Heikki Salokanto Valvoja: prof. Jukka Manner Ohjaaja: DI Pekka Pajuoja, TEKES Sovelluskehitysympäristön virtualisoinnin tuomat edut ja haitat.
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
Systeemityö 2 Vesiputousmalli Teppo Räisänen, Principal Lecturer
C 1. Testaus on ”sarja toimintoja” Itse asiassa, testaus on vuorovaikutusta, jota rytmittää ohjelmiston arviointi. Vaikka on hyödyllistä tunnistaa sarja.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
© Jukka Juslin1 Tiedostot Tuloksellinen Java-ohjelmointi.
Uudelleenkäyttö. Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim.
Testaus Testaus Testauksella pyritään löytämään virheitä, jotka sitten korjataan. Yksittäinen testi on yleensä ohjelman suoritus (tietyillä.
Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
T Henkilökohtainen SE harjoitus
Digitarina Multimedia oppimisprojektina 2012 Vaka.
11. Relaatiotietokannan suunnittelualgoritmit ja lisäriippuvuudet Tällä kurssilla käsitellään kirjan luvusta 11 ainoastaan algoritmi 11.1 häviöttömän liitoksen.
Komponenttikaavio Lehtonen Iiro, Janne Liikka
Component diagram– Komponenttikaavio J. Pätsi & H. Malmihuhta
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
1 © Jukka Juslin Luokat, attribuutit ja metodit Yleistietoa: seuraavalla koulutusviikolla tarkempi käsittely.
8. Periytyminen Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö.
Miika Kuusinen LTY/Tietoliikenteen laitos 2003
UML-luokkakaavio ● Luokkakaavio (class diagram) kuvaa järjestelmän luokkarakennetta ● Mitä luokkia on olemassa ● Minkälaisia luokat ovat ● Luokkien suhteet.
Missä kaupunki X? Esimerkki PaikkaOpin käytöstä opetuksessa tehtävän idea: luokanopettaja Minna Glogan toteutus: koordinaattori Virpi Hirvensalo.
Yksikkötestaus ● Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin.
18. Testaus.
Missä kaupunki X? Esimerkki PaikkaOpin käytöstä opetuksessa
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
8. Periytyminen.
Vaatimusmäärittely kehitysprosessissa
2. Olio-ohjelmoinnin perusteita
1. Olio-ohjelmointi.
Esityksen transkriptio:

Oliosuunnittelu

Nämä kalvot on lisensoitu Creative Commons Attribution-ShareAlike 1 Nämä kalvot on lisensoitu Creative Commons Attribution-ShareAlike 1.0 -lisenssillä. © Jukka Harju, 2014

Sisällys Ohjelmistosuunnittelusta Tarvittavien luokkien tunnistaminen Metodien suunnittelu

Ohjelmistosuunnittelu Ohjelmistosuunnittelussa käytetään useita eri prosessimalleja, joista eräs on Scrum‏ Käytettävästä mallista riippumatta ohjelmistoprosessi sisältää lähes aina seuraavat osat: Vaatimusmäärittely Toiminnallinen määrittely Tekninen suunnittelu Toteutus Testaus Tuotantoonsiirto Ylläpito

Vaatimusmäärittely Vaatimusmäärittelyssä kuvataan ohjelmistolle asetettavat vaatimukset eli kuinka ohjelmiston tulee toimia. Vaatimusmäärittely on korkean tason kuvaus, jota tarkennetaan alemman tason kuvauksissa (mm. toiminnallinen määrittelykuvaus ja suunnittelukuvaus). Esimerkki suorituskykyyn liittyvästä vaatimuksesta palvelinpohjaiselle usean yhtäaikaisen pelaajan pelille: Järjestelmän tulee pystyä palvelemaan vähintään 1000 yhtäaikaista käyttäjää alle 0,5 sekunnin vasteajoilla.

Toiminnallinen määrittely Toiminnallisessa määrittelyssä kuvataan kaikki järjestelmän toteuttamat toiminnot ja liitännät järjestelmän ulkopuolelle. Toiminnallisen määrittelyn tuloksena syntyy määrittelydokumentti, joka kuvaa mitä järjestelmällä voi tehdä ja miten käyttäjä voi järjestelmää käyttää. Toiminnallinen määrittely ei ota kantaa siihen miten toiminnot tulee toteuttaa. Määrittelyn tulisi olla niin kattava, että seuraavissa vaiheissa ei ole enää epäselvää miten ohjelman tulee toimia eri tilanteissa. Tähän ei kuitenkaan käytännössä koskaan päästä. Toiminnallisessa määrittelyssä voidaan kuvata esimerkiksi pelin eri näkymät ja näkymissä olevat komponentit. Määrittelydokumentin tulee sisältää tällöin sekä sanalliset että graafiset kuvaukset ko näytöistä.

Tekninen suunnittelu Teknisen suunnittelu tarkoituksena on kuvata ohjelmiston tekninen arkkitehtuuri. Suunnittelussa kuvataan kuinka ohjelma suorittaa toiminnallisessa määrittelyssä kuvatut toiminnot. Suunnittelukuvauksesta ilmenee kuinka ongelma voidaan jakaa pienempiin, hallittavan kokoisiin osiin ja mitä kukin osa tekee. Olio-orientoinut suunnittelukuvaus kertoo mitä luokkia ja olioita tarvitaan ja mitkä ovat niiden keskinäiset suhteet. Sisältää mm. käytettyjen ohjelmistokomponenttien (luokkien) kuvaukset, niiden keskinäisten riippuvuuksien kuvaukset, tietovaraston kuvauksen jne. Kuvaus koostuu eri tasoista, esim. ohjelmataso, luokkataso, metoditaso.

Toteutus Toteutuksessa toteutetaan suunnittelukuvauksen mukainen lähdekoodi. Aloittelevat ohjelmoijat luulevat usein, että toteutus on ohjelmistoprosessin ydin, mutta itse asiassa sen tulisi olla vähiten luovuutta vaativa kohta. Lähes kaikki tärkeät päätökset tehdään jo vaatimusmäärittelyn ja suunnittelun aikana. Toteutuksen tulisi keskittyä ohjelmoinnin yksityiskohtiin, tyyliin ja dokumentointiin. Tuloksena on suoritettava ohjelmisto, joka yleensä kuitenkin sisältää suhteellisen paljon toiminnallisia virheitä.

Testaus Testauksessa yritetään varmistaa, että ohjelma täyttää sille asetetut vaatimukset. Testauksessa yritetään löytää virheitä. Koko ohjelma tulee aina testata huolella. Testaus ei todista ohjelman toimivan oikein vaan todistetuksi tulee ainoastaan se, että ohjelma sisältää virheitä. Virheitä löytyy toteutuksen huolellisuudesta riippumatta lähes kaikista ohjelmistoista. Debuggaus on löydettyjen virheiden alkuperän etsimistä ja virheiden korjaamista.

Tuotantoonsiirto Tuotantoonsiirrossa testattu ja toimivaksi todettu ohjelmisto asennetaan toimintaan tuotantoympäristöön. Tuotantoonsiirtoon liittyy usein mm. laitteiston asennus ja valmistelu ja tietoliikenneyhteyksien valmistelu.

Ylläpito Ylläpito sisältää toimenpiteet, joita ohjelmistolle tarvitsee tuotantoonsiirron jälkeen tehdä, jotta asiakas olisi tyytyväinen ohjelmistoon. Laadukkaastakin ohjelmistosta löytyy useimmiten tuotantoonsiirron jälkeenkin pieniä virheitä, jotka tulee korjata. Käyttäjille tulee uusia tarpeita, joten ohjelmistoon on lisättävä uusia ominaisuuksia.

Sisällys Ohjelmistosuunnittelusta Tarvittavien luokkien tunnistaminen

Tarvittavien luokkien tunnistaminen Oliosuunnittelun tärkein tehtävä on määritellä ohjelmistossa tarvittavat luokat ja oliot sekä niiden väliset yhteydet. Luokat voivat olla käytetyn ohjelmointikielen valmisluokkia, vapaasti saatavia kolmansien osapuolien valmisluokkia (ns. 3rd party -luokkia), omia aiemmin tehtyjä luokkia tai täysin uusia. Eräs tapa tunnistaa mahdollisesti tarvittavat luokat on pelin suunnitteludokumentaation apuna käyttäminen. Oliot esiintyvät dokumentaatiossa useimmiten substantiiveina ja metodit verbeinä.

Tarvittavien luokkien tunnistaminen Osa dokumentista: Pelaajan tulee voida vaihtaa kahden jalokiven paikat. Pelikenttä voi sisältää maksimissaan 100 jalokiveä. Kaikki pelaajien suorittamat toiminnot tallennetaan sopivaa web-palvelua käyttäen. Kaikista substantiiveista ei kuitenkaan tule luokkaa / oliota lopullisessa ratkaisussa!

Tarvittavien luokkien tunnistaminen Luokka edustaa joukkoa samankaltaisia olioita. Luokat tulisi nimetä yksikkömuodossa olevilla substantiiveilla: Pelaaja Jalokivi Pelikentta.

Tarvittavien luokkien tunnistaminen Joskus on vaikea päättää tarvitaanko asian esittämiseen erillinen luokka. Esimerkiksi pelaajan taso ja pistemäärä voidaan esittää useampana erillisenä attribuuttina tai yhtenä Luokitus-tyyppisenä attribuuttina. Pääsääntönä on välttää kovin monimutkaisten luokkien tekemistä. Tällaiset luokat tulee pilkkoa useampaan pienempään luokkaan.

Tarvittavien luokkien tunnistaminen Luokissa halutaan esittää tarvittava määrä yksityiskohtia. Esimerkiksi jokaista kulkuneuvoa kuvaamaan ei välttämättä tarvita omaa luokkaa, vaan voidaan käyttää yleisempää Kulkuneuvo-luokkaa tarvittavin attribuutein. Tällöin Kulkuneuvo-luokan attribuuttina voi olla nimi, joka kertoo mikä laite on kyseessä. Esimerkiksi luokkien Auto, Moottoripyora ja Polkupyora sijaan saattaisi riittää luokka Kulkuneuvo, jolla voisi olla vaikkapa attribuutit nimi, nopeus ja kiihtyvyys.

Tarvittavien metodien tunnistaminen Jokainen ohjelmassa suoritettava toiminto täytyy toteuttaa jonkin luokan metodina. Metodit nimetään käyttäen verbejä, esimerkiksi vaihdaPaikat, kiihdyta. Suunnittelun alkuvaiheessa riittää tunnistaa kunkin luokan tärkeimmät tehtävät.