Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Ohjelmiston toteutus (teknisestä näkökulmasta)

Samankaltaiset esitykset


Esitys aiheesta: "Ohjelmiston toteutus (teknisestä näkökulmasta)"— Esityksen transkriptio:

1 Ohjelmiston toteutus (teknisestä näkökulmasta)
Määrittely asiakkaan näkökulma Toteutus Arkkitehtuurisuunnittelu Ohjelmisto jaetaan moduuleiksi ja moduulien väliset rajapinnat määritellään Moduulien sisäinen toteutus suunnitellaan Huonot ratkaisut kostautuvat Hyvässä arkkitehtuurissa huono moduuli on helppo korvata paremmalla 16. Ohjelmiston suunnitteluperiaatteita

2 16. Ohjelmiston suunnitteluperiaatteita
Spagetista olioihin Rakenteinen ohjelmointi (1970-luvulla9 Aliohjelmarakenne Globaalit tietorakenteet Kontrollirakenteet, ei hyppykäskyjä Selkeä rakenne; ylläpidettävyys huono (globaalit tietorakenteet) Ositus ongelmallista 1970-luvun lopulla modulaarisuuteen alettiin kiinnittää entistä enemmän huomiota; rakenteisuutta alettiin perustaa entistä enemmän tietorakenteisiin eikä niinkään toimintoihin 16. Ohjelmiston suunnitteluperiaatteita

3 Oliopohjainen rakenne
Tietorakenteet koteloidaan moduulien sisään ja tietorakenteen käyttäjälle tarjotaan funktiorajapinta, jonka avulla niitä voidaan käsitellä Ei globaaleja muuttujia Moduulilla on sisäinen tila, joka ei muutu muutoin kuin moduulin rajapinnoissa olevia funktioita kutsumalla Soveltuu hyvin suuriin ohjelmistoprojekteihin; toteutus ja testaus toisista riippumatonta, ylläpidettävyys ja uudelleenkäyttö helpompaa Moduuli voi käyttää hyväkseen muiden moduulien palveluita; monimutkaiset osajärjestelmät; skaalautuvuus Strukturoidun ohjelmoinnin periaatteita voidaan käyttää hyväksi moduulien sisäisessä toteutuksessa 16. Ohjelmiston suunnitteluperiaatteita

4 Suunnittelun tavoitteet
Asiakkaan kokema laatu Kustannukset Tuotteen laatu Tuotteen valmistuminen aikataulun mukaisesti Perusta laatutavoitteiden toteutumiselle luodaan määrittelyvaiheessa; myös suunnittelu ja toteutusvaiheissa niihin voidaan vaikuttaa Tehokkuus, luotettavuus, käytettävyys, uudelleenkäyttö, uudelleenkäytettävyys, ylläpidettävyys, siirrettävyys, toteutettavuus, ymmärrettävyys, muunneltavuus 16. Ohjelmiston suunnitteluperiaatteita

5 Suunnittelun yleisiä periaatteita
Suunnittelu ei ole pelkästään tekninen ongelma Koon kasvaessa yhä enemmän oppimis- ja kommunikointiprosessi suoraviivaisuus ja yksinkertaisuus osittaminen ja lokaalisuus abstraktioiden hyödyntäminen yhdenmukainen toteutusfilosofia 16. Ohjelmiston suunnitteluperiaatteita

6 16. Ohjelmiston suunnitteluperiaatteita

7 Moduulien toteuttaminen
Ohjelman abstraktiot toteutetaan ohjelmamoduuleina Yksi ohjelmamoduuli kuvaa yleensä yhden abstraktioin Moduulin rajapinta on sopimus moduulin käyttäjän ja sen toteuttajan välillä Sopimuksessa määritellään Palvelut Moduulin tekemät oletukset ympäristöstään ja käyttäjän toiminnasta Moduulin toteutuksen asettamat rajoitukset Moduulin toiminta poikkeustilanteissa 16. Ohjelmiston suunnitteluperiaatteita

8 16. Ohjelmiston suunnitteluperiaatteita
Moduulien rajapinnat Moduulin rajapinta on sopimus moduulin käyttäjän ja sen toteuttajan välillä Sopimuksessa määritellään Palvelut Moduulin tekemät oletukset ympäristöstään ja käyttäjän toiminnasta Moduulin toteutuksen asettamat rajoitukset Moduulin toiminta poikkeustilanteissa Moduulien sisäinen kiinteys (cohesion) Looginen yhteenkuuluvuus Moduulien väliset kytkennät (coupling) Moduulien väliset riippuvuudet 16. Ohjelmiston suunnitteluperiaatteita

9 Suunnittelun eteneminen
Suunnitteluun liittyviä tehtäviä Mietitään ratkaisun yleiset periaatteet (toteutusfilosofia) Suunnitellaan moduulirakenne Määritellään moduulien sisältö Suunnitellaan moduulien rajapinnat Määritellään moduulien näkyvyys Testataan ratkaisut tutkimalla esimerkiksi sekvenssejä Suunnitellaan moduulien sisäinen toteutus Varmistetaan kriittisimpien toteutusratkaisujen toimivuus esim. prototyypillä Suunnitellaan dokumentointi Tehtäviä on tehtävä iteroiden ja rinnakkain; testaus ainakin aiheuttaa iterointia 16. Ohjelmiston suunnitteluperiaatteita

10 Uudelleenkäytettävyys ja uudelleenkäyttö
60-80% kaikesta tehtävästä ohjelmistosta on tehty jo aiemmin (?) Uudelleenkäytettävät ohjelmistokomponentit Yleiskäyttöiset: käyttöliittymien rakenteluun tarkoitetut kirjastot, matematiikkakirjastot, tietorakennekirjastot Sovelluskohtaiset: oma käyttöliittymäkirjasto, tulostus Komponentin muokkaaminen (tuotteenhallinta??!!) Oliokielissä hallittu muokkaaminen: periyttäminen Ongelmia: monimutkaisuus, komponenttikirjaston työmäärä, dokumentoinnin puute, … Ongelmia: esim. Ariane 5 Uudelleenkäyttö vaatii erikoispanostusta ja erikoisosaamista, se ei ole itsestäänselvyys eikä sivutuote! 16. Ohjelmiston suunnitteluperiaatteita

11 16. Ohjelmiston suunnitteluperiaatteita

12 16. Ohjelmiston suunnitteluperiaatteita
Oliokeskeisyys OOP, Object Oriented Programming (olio-ohjelmointi) OOA, Object Oriented Analysis (oliomäärittely) OOD, Object Oriented Designing (oliosuunnittelu) Olio Tieto on kapseloitu, koteloitu moduulien sisään Rajapintaan määritellään tietoja käsittelevien funktioiden joukko Oliokielissä olio toteutetaan luokkana Oliota kutsutaan oliokielissä myös ilmentymäksi Tietoja käsittelevä funktio = metodi, palvelu 16. Ohjelmiston suunnitteluperiaatteita

13 16. Ohjelmiston suunnitteluperiaatteita
Olio-ohjelmointi Periytyminen aliluokka perii yliluokkansa attribuutit ja metodit Aliluokalle voidaan määritellä lisää attribuutteja tai metodeja Perittyjä metodeja voidaan määritellä uudelleen = polymorfismi Abstrakti luokka Toimivat vain yliluokkina Ensimäinen oliokieli Simula Oliopohjaisia: Ada, Modula-2 Puhtaita oliokieliä: Smalltalk, Eiffel, Java (?) Hybridikieliä: C++, Object Pascal 16. Ohjelmiston suunnitteluperiaatteita

14 16. Ohjelmiston suunnitteluperiaatteita
Oliomäärittely Tavoitteena löytää kohdealueen olioluokat, niiden attribuutit ja operaatiot sekä luokkien väliset suhteet Käytetään pohjana käyttötapausmallia tai muuta toimintaa kuvaavaa dokumentaatiota Kuvataan luokkakaaviona Luokat Luokkien yhteydet (assosiaatio, periytyminen, kooste) Suunnitteluvaiheessa luokkakaaviota täydennetään toteutukseen liittyvillä luokilla (esim. käyttöliittymäluokat, tietokantaluokat) sekä yhteyksien toteutuksella 16. Ohjelmiston suunnitteluperiaatteita

15 16. Ohjelmiston suunnitteluperiaatteita
OMT++ 16. Ohjelmiston suunnitteluperiaatteita

16 16. Ohjelmiston suunnitteluperiaatteita


Lataa ppt "Ohjelmiston toteutus (teknisestä näkökulmasta)"

Samankaltaiset esitykset


Iklan oleh Google