Mallinnustavat.

Slides:



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

Koostumussuhde Jukka Juslin © Jukka Juslin.
Ohjelmiston tekninen suunnittelu
16. Javan omat luokat.
Luokkakaaviot Luokkakaaviot Tekninen suunnittelu.
Tietojärjestelmät ja Systeemisuunnittelu
Tietokanta.
2. Olio-ohjelmoinnin perusteita
Tietokannan suunnittelu
Olio-ohjelmointi. Mitä olio-ohjelmointi on ?  Pyritään mallintamaan jotain reaalimaailman kohdetta tietokoneohjelman avulla  Olio on luokan ilmentymä.
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.
BPMN ja hiukan prosessien määrittelystä
Päivi Ovaska Tutkijaopettaja LTY/Tite
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
OHJELMOINTITAITO ICT02D 12 ECTS. OPINTOJAKSON TOTEUTUS  KESTO: –  PÄIVÄOPISKELIJAT: – KAKSI LUOKAA (SUOMI) –YKSI LUOKKA (ENGLANTI)
Tietojärjestelmät ja Systeemisuunnittelu
Oliomallittaminen ja UML
UML-luokkakaaviot.
9. Periytyminen Javassa.
3. Spesifikaatioiden laatiminen
TIETO JA TIETOKONEOHJELMA TIETOKONEOHJELMA KÄSITTELEE TIETOJA TIETOJA VOIDAAN KÄSITELLÄ OHJELMASSA VAIN SALLITUILLA MENETELMILLÄ.
© Lammi-Niskala-Kossarev ADT:n toteutus Imperatiivinen paradigma Imperatiivinen paradigma toimenpiteet aktiivisia, tiedot passiivisia toimenpiteet.
© Jukka Harju, Jukka Juslin
1 Kertaus koetta varten oleellisista asioista Jukka Juslin.
Miika Nurminen, Kerho -alusta() : void +lue_tiedostosta(tied : String) : String +talleta() : String +kerhon_nimi(): String +jasenia() : int +poista(nro:
Metodit – Arvotyyppi Ellei metodi palauta arvoa, sen arvotyyppi on void Tällöin ”return;”-lauseke ei ole metodissa pakollinen, vaikka sen käyttö on sallittua.
Muunnos luokkakaaviosta relaatiokaavioon
5. Kapselointi Yleistä Kapseloinnilla (encapsulation) tarkoitetaan luokan tietojen ja toimintojen pakkaamista yhdeksi suojatuksi kokonaisuudeksi.
10. Abstrakti luokka Johdanto Abstrakti luokka (abstract class) poikkeaa konkreettisesta luokasta (ei-abstrakti luokka) siten, että siitä ei.
Hyvä ohjelmointitapa (osa 2) Yleistä Lisää hyviä ohjelmointikäytäntöjä: − Jaa pitkä koodi osiin. − Käytä attribuutteja säästeliäästi.
17. Kooste Kooste Kooste (aggregation) on luokkien A ja B välinen suhde, joka tarkoittaa “A on B:n osa” tai “A kuuluu B:hen”. − Koostesuhteessa.
OHJELMOINTITAITO ICT02D 12 ECTS. OPINTOJAKSON TOTEUTUS  KESTO: –  AVOIMEN OPISKELIJAT: – YKSI LUOKA (SUOMI) – LUOKKA ICT02O-1.
– Ohjelmistojen mallintaminen, mallintaminen ja UML.
Toteutus. Ohjelmointikielen valinta Käytetään samaa kuin muutkin Työkalujen laatu Usein asiakas määrää Yleensä valittu jo ennen toteutusta Osaaminen vs.
Systeemityö 2 Oliokaavio Teppo Räisänen, Principal Lecturer
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
Oliot ja luokat Oliot ja luokat Oliot (object) ja luokat (class) ovat keskeisiä olio- ohjelmoinnin käsitteitä. Olio-ohjelmointi on ohjelmointiparadigma,
Kantaluokan määrittely tMyn1 Kantaluokan määrittely Perinnän käyttöön liittyvät varatut sanat private, protected, public, final ja abstract. Ne tarkoittavat.
1 © Jukka Juslin Luokat, attribuutit ja metodit Yleistietoa: seuraavalla koulutusviikolla tarkempi käsittely.
– Ohjelmistojen mallintaminen Unified Modeling Language (UML)
8. Periytyminen Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö.
Kertausta: Ohjelmistotuotantoprosessin vaiheet ● Vaatimusanalyysi- ja määrittely – Mitä halutaan? ● Suunnittelu – Miten tehdään? ● Toteutus – Ohjelmointi.
UML-luokkakaavio ● Luokkakaavio (class diagram) kuvaa järjestelmän luokkarakennetta ● Mitä luokkia on olemassa ● Minkälaisia luokat ovat ● Luokkien suhteet.
16. Javan omat luokat Sisällys Johdanto. Object -luokka: − toString -, equals -, clone - ja getClass -metodit. Comparable -rajapinta: − compareTo.
17. Kooste.
5. Kapselointi.
11. Rajapinnat.
1. Olio-ohjelmointi.
– Ohjelmistojen mallintaminen, mallintaminen ja UML
7. Hyvä ohjelmointitapa..
UML-mallinnus osana tietotuotemäärittelyä
Kantaluokan määrittely
3. Luokat, oliot ja metodit Java-kielessä (Lausekielinen ohjelmointi I ja II –kursseilla opitun kertausta.)
Kantaluokan määrittely
Toisto Toistolausekkeet for, while(ehto){…} ja do {…} while(ehto)
Tuotteen nimi.
8. Periytyminen.
16. Javan omat luokat.
7. Hyvä ohjelmointitapa..
Ohjelmistotekniikan menetelmät, sekvenssikaaviot
– Ohjelmistojen mallintaminen Unified Modeling Language (UML)
OHJELMOINTITAITO ICT02D 12 ECTS.
OHJELMOINTITAITO ICT02D 12 ECTS.
3. Attribuutit.
12. Monimuotoisuus.
4. Luokan testaus ja käyttö olion kautta
2. Olio-ohjelmoinnin perusteita
1. Olio-ohjelmointi.
OHJELMOINTITAITO ICT02D 12 ECTS.
Esityksen transkriptio:

Mallinnustavat

Kuinka formaaleja menetelmät ovat? Informaalit Esim. seinätaulutekniikka Puoliformaalit Ylesti käytetyt SA, OMT, UML Formaalit Työläitä Kommunikointi vaikeaa

Oliolähestymistavan etuja Tuottavuuden parantuminen Selkeys, esitystavan luonnollisuus -> kommunikaatio Ylläpidon helpottuminen Kapselointi Uudelleenkäytettävyyden helpottuminen Komponenttipohjaisuus Vaatii lisätyötä!

Oliolähestymistavan keskeiset periaatteet Abstrahointi Voidaan käsitellä ilman yksityiskohtia Kapselointi vähentää riippuvuutta parantaa ylläpidettävyyttä ja uudelleenkäyttöä Tiedon ja käyttäytymisen yhdistäminen Reaalimaailman mallintaminen Perintä Monimuotoisuus, polymorfismi

UML yleisesti Visuaalinen -> parantaa kommunikointia Tavoitteena yksiselitteiset ja kattavat määrittelyt Riippumattomuus ohjelmointikielestä Dokumentointiin – tukee koko prosessia

Luokan perusominaisuudet 1. Nimi Eläin Nimi Sukupuoli liiku() syö() 2. Attribuutti 3. Operaatio (metodi) 4. Vastuu (kuvataan vapaamuotoisena tekstinä)

Edistyksellinen luokka Abstraktin luokan nimi kursivoitu Eläin nimi sukupuoli + setNimi(nimi: String) # liiku() - syö() Paikallinen attribuutti alleviivattu Julkinen (public, +) Suojattu (protected, #) Yksityinen (private, -) Miksi attribuutille ie ole protected-vaihtoehtoa?? Nimeämiskäytäntö!

Hyvän luokan ominaisuudet Täsmällinen abstraktio, hyvin nimetty Suppeat ja hyvin määritellyt vastuut (”delegointi” laajoissa luokissa) Ymmärrettävä, yksinkertainen, laajennettavissa Vain tärkeät ominaisuudet vs. yleiskäyttöisyys

Luokkakaavio Yritys Osasto nimi: String Toimisto osoite: String 1 * 1..* 1..* Osasto nimi: String Toimisto osoite: String puhelinnro: String sijainti 0..1 * * 1 * työntekijä 1..* 1 johtaja Yhteystiedot id osoite puhelinnro Henkilö nimi: String ikä: Integer setNimi() getTunnus() Työntekijä asema: String id: Integer getYhteystiedot()

Hyvin määritellyn luokkakaavion ominaisuudet Keskittyy kuvaamaan yhden aspektin Sisältää ymmärtämisen kannalta vain oleelliset piirteet Pysytään asianmukaisella abstraktiotasolla vs. ei liian minimalistinen Kuvaava nimi Risteävien viivojen määrä minimoitu Loogisesti toisiin liittyvät luokat lähekkäin

Perintä Eläin saika: Time kuole() Nisäkäs nimi: String ääntele() Kala kutupaikka: String ui() Koira rotu: String kuolaa() Hevonen nimi: String ravaa() Hauki pituus: Integer getPituus() Hai vaarallinen: boolean syö()

Tietokantakaavio Koulu nimi: String osoite: Integer Puhelinnro: String Osasto nimi: String osoite: Integer Puhelinnro: String omistaa 0..1 1 1..* 1..* 1..* 1..* työskentelee * 1..* 1..* 0..1 Opiskelija nimi: String ID: Integer sotu: String Kurssi nimi: String ID: Integer ov: Integer Opettaja nimi: String osallistuu opettaa * * * 1..*

Käyttötapauskaavio (kauppa) Rekiste-röidy Lisää tuote Myyjä Kirjaudu sisään Myyjä Selaa tuotteita Vastaa kysymykseen Tuki Tilaa

Sekvenssikaavio (tapahtumakaavio) Tilaus KL l: Lomake tilaa(……: String) luoUusi() tkk: TKKäsittelijä teeTilaus(t: tilaus) onnistuminen: boolean palaute onnistumisesta

Formaalit menetelmät VDM ja Z Vaatii matemaattisen tarkkaa määrittelyä Perustuu esi- ja jälkiehtoihin Ohjelman suoritus Vaati- mukset esi- ehdot jälki- ehdot