Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

2.6 Modulaarisuus Modulaarisuus tarkoittaa algoritmien suunnittelussa

Samankaltaiset esitykset


Esitys aiheesta: "2.6 Modulaarisuus Modulaarisuus tarkoittaa algoritmien suunnittelussa"— Esityksen transkriptio:

1 2.6 Modulaarisuus Modulaarisuus tarkoittaa algoritmien suunnittelussa
sitä, että algoritmi jaetaan pieniksi hyvin määritellyiksi paloiksi eli moduuleiksi. Tässä jakamisessa voidaan käyttää asteittaisen tarkentamisen menetelmää. Modulaarisuus-käsitteen ymmärtäminen on osa suunnittelumenetelmän ymmärtämistä, eikä siten välttämättä liity mihinkään ohjelmointikieleen.

2 2.6.1. Abstraktiot Uusia asiakokonaisuus:  puutteellinen
käsitteellinen malli Luotu malli = abstraktio Mallin tuottaminen = abstrahointi Abstraktio on siis tarkasteltavan asian yksin- kertainen ja (usein) epätarkka malli. Abtraktion tulee kuitenkin olla riittävä, mutta ei välttämättä täydellinen kuvaus tarkasteltavan asian tai ilmiön rakenteesta, ominaisuuksista ja käyttäytymisestä.

3 Abstraktiot … Abstraktiivinen ajattelu = kyky nähdä metsä puilta.

4 2.6.1. Abstraktiot … Abstraktiotaso: mitkä kohteen yksityiskohdat ja
ominaisuudet on piilotettu mallin sisälle ja mitkä näkyvät ulospäin. Abstraktioon tehdään liittymiä, joiden kautta ulkomaailman kanssa "kommunikoidaan". Ulkoisen maailman kannalta abstraktio = sille määritellyt liittymät.

5 Abstraktioita tietojen- käsittelytieteessä: Koneabstraktio
Abstraktiot … Abstraktioita tietojen- käsittelytieteessä: Koneabstraktio Kontrolliabstraktio Tietoabstraktio.

6 Koneabstraktio (suoritusmalli)
kuvaa koneen loogista toimintaa luo pohjan ohjelmointikielen käskyjen ja laskun tilan määrittelylle laskun tila mahdollistaa koneen tarkastelun käsitteellisessä mielessä.

7 Kontrolliabstraktio yleisiä ohjelmointikielistä riippumattomia rakenteita, mm. peräkkäisyys, valinta ja toisto.

8 2.6.1 Abstraktiot … Tietoabstraktio
kuvaa tiedon rakenteen ja sen operaatiot mahdollistaa näiden esittämisen ohjelmointikielen keinoin kapseloi tiedon rakenteen ja operaatiot siten, että ulkomaailma pääsee käsiksi abstraktioon vain operaatioiden kautta

9 2.6.2 Moduulit Eri ohjelmointikielissä moduulista käytetään nimitystä
proseduuri (procedure) rutiini (routine) alirutiini (subr.) funktio (function) aliohjelma (subprogram) Moduulin käyttöä sanotaan moduulin kutsuksi (call).

10 moduulit… moduulit tulisi suunnitella niin, että ne olisivat mahdollisimman riippumattomia toisistaan algoritmin pitäisi olla myös ihmiselle ymmärrettävä  voidaan vakuuttautua algoritmin virheettömyydestä ja algoritmia voidaan myöhemmin muuttaa modulaarisuus mahdollistaa ristiriitaisten tavoitteiden saavuttamisen: sellaisen kuvaustavan, joka olisi sekä robotin/tietokoneen että ihmisen helposti ymmärrettävissä

11 moduulit …. Moduulien rajauksessa huomioonotettavia seikkoja:
tehtäväkokonaisuus: yksi osatehtävä / moduuli luonnollisuus sopiva abstraktiotaso: alimoduulit keskenään suunnilleen samalla abstraktiotasolla

12 moduulit… Modulaarisuuden etuja: selkeys luotettavuus
entistä helpompi ylläpito yleiskäyttöisyys eli kierrätys

13 Moduulien yleiskäyttöisyydestä
Siirrettävyys: moduulia voidaan käyttää aina silloin kun sama osatehtävä esiintyy algoritmissa. Korvattavuus: moduuli voidaan helposti korvata toisella, esimerkiksi entistä tehokkaammalla moduulilla

14 2.6.3 Parametrit Parametrisointi lisää moduulin yleiskäyttöi-
syyttä. Parametrien kautta moduulille annetaan syöttötietoja ja joskus välitetään ulos myös käsittelyn tuloksia. Vaikea asia ymmärtää, mutta loppujen lopuksi helpottaa (myös) ohjelmoijan työtä.

15 Parametrit… Esimerkkejä parametrien käytöstä: parametrit n, x ja y:
Moduuli ’pane n lusikallista x-jauhetta astiaan y’. Ota x-jauhepurkki esiin. REPEAT n TIMES pane lusikallinen x-jauhetta astiaan y. Pane x-jauhepurkki pois.

16 Parametrit... Esimerkkejä parametrien käytöstä:
Moduuli ’pane lusikallinen x-jauhetta astiaan y’. Ota lusikkaan x-jauhetta. Kaada lusikassa oleva jauhe astiaan y.

17 Parametrit... Esimerkkimoduulin käyttötilanteita:
’Pane kolme lusikallista kaakaojauhetta astiaan kuppi’ ’Pane kaksi lusikallista kahvijauhetta astiaan kuppi’ ’Pane kymmenen lusikallista tapettiliisteri-jauhetta astiaan vesiämpäri’

18 Parametrit... Moduulin määrittelyssä esiintyviä
parametreja sanotaan muodollisiksi parametreiksi. Ne ovat muuttujia ja saavat alkuarvonsa moduulia käytettäessä eli kutsuttaessa.

19 Moduulien yleiskäyttöisyydestä…
Moduulin kutsua suoritettaessa (siis käytettäessä moduulia) kutsussa olevia parametreja sanotaan todellisiksi.

20 Yleiskäyttöinen moduuli on kuin musta laatikko:
syöttö-tiedot tulokset moduuli Moduuli

21 Yleiskäyttöinen moduuli on kuin musta laatikko:
Esimerkki: moduuli nimetoikein korjaa kirjoitusvirheitä (isot/pienet kirj.,) parametrina nimilista MATTI PekkA lIISA maIJa PaiVi Matti Pekka Liisa Maija Päivi nimetoikein

22 2.6.4 Proseduurit ja funktiot
Yleisessä tapauksessa moduulissa on m syöttö- ja n tulosparametria: syöttö-parametreja m kpl tulos-parametreja n kpl Moduuli x

23 Proseduurit ja funktiot...
Moduuleja on kahdenlaisia: proseduurit funktiot Kun tulosparametreja ei ole (n=0), kyseessä on proseduuri (-tyyppinen moduuli). Kun tulosparametreja on yksi (n=1), kyseessä on funktio(-tyyppinen moduuli). Moduuli x

24 Funktio Funktiomoduuli vastaa matemaattista
funktiota. Esimerkiksi funktio f(x)=3x-1 palauttaa eri x:n (syöttöparametri) arvoilla aina yhden tuloksen (tulos- parametrin). Esim. f(0) = -1, f(10)=29 jne. Moduuli x

25 Funktio Funktiotyyppinen moduuli onkin kehitetty
lähinnä matemaattisia sovelluksia varten. Funktiomoduulia käytetään lausekkeen osana, esim. sqrt-funktio laskee neliöjuuren: esim m:=12-sqrt(5) Moduuli x syöttöparametri funktion kutsu

26 Funktio Sqrt on siis moduuli. Se on abstraktio
neliöjuuren ottamisesta. sqrt juurrettava neliöjuuri Moduuli x

27 Proseduuri Proseduurin tuottamat tulokset välittyvät
yleensä takaisin syöttöparametrien kautta tai ns. sivuvaikutuksina. Tyypillinen sivuvaikutus on proseduurin tekemä tulostustoimenpide. Moduuli x

28 Funktion määrittely Yleinen muoto:
MODULE mod. nimi (mp1,…, mpN) RETURNS palautusarvo moduulin runko ENDMODULE mp1,…, mpN ovat muodolliset parametrit otsikko moduulin käskyt Moduuli x

29 Funktion määrittely Yleinen muoto:
MODULE moduulin nimi (mp1,…, mpN) RETURNS palautusarvo moduulin runko ENDMODULE Funktiomoduulin rungossa on oltava ns. RETURN-lause. Se palauttaa funktion tuloksen ja on muotoa: RETURN lauseke otsikko moduulin käskyt Moduuli x

30 Proseduurin määrittely
Yleinen muoto: MODULE moduulin nimi (mp1,…, mpN) moduulin runko ENDMODULE mp1,…, mpN ovat muodolliset parametrit otsikko moduulin käskyt Moduuli x

31 Ohjelman rakenteesta Ohjelma muodostuu yhdestä tai
useammasta moduulista. Autonominen modulaarisuus: moduulit voivat viitata toisiinsa vapaasti. Hierarkkinen modulaarisuus: moduulit tietynlaisessa hierarkiassa toisiinsa nähden. Moduuli x

32 Esimerkkimoduuleja n! Kertomamoduuli:
MODULE kertoma(n) RETURNS n-kertoma k:=1 WHILE n > 1 DO k:=k*n n:=n-1 ENDWHILE RETURN k ENDMODULE Moduuli x Return lopettaa moduulin suorituksen ja palauttaa lopputuloksen

33 Esimerkkimoduuleja... Kertomamoduulin kutsuja: x:=kertoma(0)
tulosta (kertoma(0)) tulosta(x*kertoma(4)+kertoma(kertoma(2))) käskyä suoritettaessa käydään toteutta-massa kertoma-moduuli, syöttöparametrin arvona on 0. tulosta-moduulin syöttöparametrina on 0! käskyä suoritettaessa käydään toteuttamassa kertoma-moduuli kolme kertaa, syöttöparametreina arvot 4, 2! ja 2 (=2!).

34 Esimerkkimoduuleja... Kertoma-moduuli Kertoma 6 720 Kertoma 4 24
Moduuli x Kertoma 2 2

35 Kilpikonnagrafiikkaa
neliö kolmio

36 2.6.5 Yhteenveto Moduulit soveltuvat luonnollisella tavalla asteittain tarkentuvaan menetelmään Moduuli on suuremman algoritmin komponentti. Komponentteihin jako yksinkertaistaa ja nopeuttaa ohjelmien suunnitteluprosessia Moduulit selkeyttävät algoritmeja ja helpottavat niiden ymmärtämistä. Algoritmien muuntelu helpottuu.

37 2.6.5 Yhteenveto … Moduulien oikeellisuuden tarkastelu helpottuu, koska algoritmia voidaan tarkastella ja testata paloittain. Kun algoritmin osaksi liitetään valmis moduuli, riittää kun tiedetään mitä moduuli tekee, ei tarvitse tietää sitä miten se ratkaisun tekee. Ulkoinen kuvaus riittää ! MODULE neliö (sivu)

38 2.6.5 Yhteenveto … Kerran suunniteltua moduulia voidaan käyttää hyväksi missä tahansa algoritmissa, jossa vastaava (osa)tehtävä esiintyy  uusiokäyttöä. Moduulit voidaan koota kirjastoiksi


Lataa ppt "2.6 Modulaarisuus Modulaarisuus tarkoittaa algoritmien suunnittelussa"

Samankaltaiset esitykset


Iklan oleh Google