Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Ohjelmistotuotanto - Suunnittelu

Samankaltaiset esitykset


Esitys aiheesta: "Ohjelmistotuotanto - Suunnittelu"— Esityksen transkriptio:

1 010758002 Ohjelmistotuotanto - Suunnittelu
Kevät 2004 Hanna-Kaisa Lammi LTY/Tite

2 Sisältö UML: jatkoa Ohjelmistojen suunnittelusta
Ohjelmistojen suunnitteluperiaatteita Arkkitehtuurisuunnittelusta Ohjelmistojen toteutusfilosofiasta Suunnittelun dokumentoinnista Uudelleenkäytöstä

3 Sekvenssikaavio (sequence diagram)

4 Sekvenssikaavio, esimerkki 2
UI : KohdeHallinto auto: HenkilöAuto parkki: ParkkiAlue palauta(auto, parkki) palauta() varastoi(auto)

5 Yhteistyökaavio (collaboration diagram)
1.1: palauta() auto: Henkilöauto : KohdeHallinto 1: palauta(auto,parkki) parkki: ParkkiAlue 1.2: varastoi(auto) UI

6 Tilakaavio Auto-olion käyttäytyminen: Käytettävissä Käytössä Huollossa
palauta/ lopeta ajan lasku Käytettävissä Käytössä otaKäyttöön/ aloita ajan lasku valmis huolla Huollossa Varattu do/huoltoilmoitus varaa

7 Muita tapoja: perinteinen vuokaavio

8 Muita tapoja: Nassi-Schneidermann

9 Komponenttikaavio GUI Auton- VuokrausToiminta Vuokraus Tietokanta-
liittymä KohdeKanta

10 Sijoittelukaavio Asiakaspiste: Asiakas Ajoneuvorekisteri: Palvelin
: XTietokanta- liittymä : XTietokanta : GUI : Auton- Vuokraus <<IP>> Kohde- Kanta

11 Ryhmittely: pakkaukset
Kohteet Tuki Kohde KohdeHallinto Varasto palauta varaa otaKäyttöön hallinnoi palauta(Kohde, Varasto) varaa(Kohde) otaKäyttöön(Kohde) * HenkilöAuto ParkkiAlue rekisterinumero huolla(int km) palauta

12 Yleistä suunnittelusta
Tarkoituksena muuntaa asiakkaan tarpeiden mukaan tehty määrittely tekniselle kielelle – järjestelmän toteutuksen kuvaukseksi Vastaa kysymykseen: miten järjestelmä toteutetaan? Jaetaan kahteen osaan: arkkitehtuurisuunnittelu ja moduulisuunnittelu

13 Suunnittelu ohjelmistokehityksessä
Esitutkimus Asetetaan asiakasvaatimukset: mitä asiakas haluaa? Miksi ohjelmisto tulisi tehdä? Määrittely Analysoidaan asiakasvaatimukset: mitä voidaan toteuttaa? Johdetaan ohjelmistovaatimukset: mitä projektissa tehdään? Suunnittelu Suunnitellaan, kuinka määrittelyssä kuvatut vaatimukset toteutetaan. (Arkkitehtuurisuunnittelu, moduulisuunnittelu) Toteutus Toteutetaan suunniteltu. Integrointi: yhdistetään toteutetut osat niin, että niistä saadaan yksi toimiva kokonaisuus. Testaus: etsitään ohjelmiston virheitä ja korjataan ne. Integrointi ja testaus Käyttöönotto: toimitaan ohjelmisto asiakkaalle Ylläpito: ratkotaan asiakkaan ongelmia, korjataan virheitä, muutetaan tarvittaessa ohjelmistoa uusia vaatimuksia vastaavaksi. Käyttöönotto ja ylläpito

14 Ohjelmistojen suunnitteluperiaatteita
Suunnittelun tavoitteita: selkeys ja ymmärrettävyys tehokkuus luotettavuus ylläpidettävyys uudelleenkäytettävyys ja siirrettävyys Ratkaisut tavoitteiden saavuttamiseksi: paikallisuus hierarkkisuus modulaarisuus rajapintojen tiiviys tiedon kätkeminen

15 Arkkitehtuurisuunnittelu
Arkkitehtuurisuunnittelussa kiinnitetään järjestelmän arkkitehtuuriin kuuluvat valinnat järjestelmän kerrokset jako alijärjestelmiksi, komponenteiksi korkean tason suunnittelumallit arkkitehtuurityylit (asiakas-palvelin jne.) ohjelmistojen sijoittelu laitteistoihin prosessit ja niiden kommunikointi tiedon talletusratkaisut tietoturva jne.

16 Miksi suunnittelu on vaikeaa?
Suunnittelun ratkaisut ja tietotekniikka muuttuvat nopeasti mitä opetan tänään on 3 vuoden päästä vanhaa tietokoneiden kapasiteetti laajenee kovaa vauhtia

17 Suunnitteluprosessi

18 Moduuli

19 Suunnittelun tavoitteet
Keskeisin laatutavoite: asiakkaan kokema laatu Suunnitteluratkaisulla saadaan vaikutettavissa olevia laadun osatekijöitä mm. tehokkuus, luotettavuus, käytettävyys, uudelleenkäyttö, ylläpidettävyys, siirrettävyys,toteutettavuus Ristiriidat laatutavoitteiden ja niiden saavuttamiseen vaikuttavien osatekijöiden välillä ovat jokapäiväisiä painotukset vaikuttavat suunnitteluratkaisujen valintaan, eli esim. jos asiakas haluaa halpaa ja nopeaa, valitaan tekniikka, joka sen voisi mahdollistaa!

20 Periaatteista ja toteutusvälineistä laatuun
laadun osatekijöitä tehokkuus virheettömyys luotettavuus käytettävyys ylläpidettavyys siirrettävyys uudelleenkäytettävyys ymmärrettävyys muunnettavuus toteutettavuus testattavuus yleisiä periaatteita yksinkertaisuus ja suoraviivaisuus osittaminen ja lokaalisuus abstraktioiden hyödyntäminen toteutusfilosofia(t) asiakkaan kokema laatu oikea tuote oikeaan aikaan oikeaan hintaan toteutusvälineitä moduulirakenne abstraktit tietotyypit luokat

21 Suunnittelun yleisiä periaatteita
yksinkertaisuus ja suoraviivaisuus osittaminen ja lokaalisuus abstraktioiden hyödyntäminen yhdenmukainen toteutusfilosofia eli arkkitehtuurityyli

22 Yksinkertaisuus ja suoraviivaisuus
KISS: On kaksi tapaa rakentaa ohjelmistoja Suunnitteluratkaisut ovat niin suoraviivaisia ja ymmärrettäviä, että virheettömyys on ilmeistä Suunnitteluratkaisut ovat niin mutkikkaita, että virheet eivät ole ilmeisiä Kolme hyvää periaatetta: KISS: Keep It Simple, Stupid Design for errors Design for change Ja erityisesti reaaliaikajärjestelmissä Design for testing Ja ehkä se kaikkein tärkein periaate: Say it once and only once

23 Osittaminen rakenteellisen monimutkaisuuden hallinta
osittaminen rinnakkaisiin osiin moduulit toteuttavat osan kokonaisuudesta hierarkkinen osittaminen alemman tason moduulit ”palvelevat” ylemmän tason moduuleita

24 Esimerkki hierarkisesta osittamisesta

25 Lokaalisuus Osittamisen suunnittelua siten, että suunnittelu-päätökset kapseloidaan mahdollisimman hyvin osien sisään Edut: muutosten tekeminen helpottuu ohjelmiston yksittäisten osien toteutus ja testaus erikseen mahdollistaa osan irrottamisen kokonaisuudesta ja uudelleenkäytön toisessa yhteydessä Moduulin sisäisen toteutuksen lokalisointi

26 Abstraktioiden hyödyntäminen
malli, joka kuvaa esittämästään asiasta oleellisen Epäoleellinen voidaan jättää pois ja tarpeettomat yksityiskohdat koteloidaan (encapsulate) abstraktion sisälle Informaation kätkeminen (information hiding) Abstraktiosta näkyy käyttäjälle rajapinta (interface), sen sisään koteloitu toteutus on abstraktion käyttäjälle tuntematon Käyttötarkoituksina korkeamman tason abstraktion luominen alemman tason abstraktiosta, erilaisuuden kätkeminen, suunnitteluratkaisun piilottaminen

27 Esimerkki työasemasovelluksen abstrahoinnista

28 Toteutusfilosofia (arkkitehtuurityyli)
Yhdenmukaiset toteutusperiaatteet, joilla järjestelmän piirteet toteutetaan Toteutusfilosofia kiteyttää periaatteet ja rakenteet, joiden ajatellaan pysyvän muuttumattomana Antaa kehittäjälle mallin siitä, miten uusi ominaisuus toteutetaan järjestelmään Antaa ylläpitäjälle tietoa, minkä tapaista ratkaisua on etsittävä ja mihin muutokset on kohdistettava Antaa yleisen mallin, jonka mukaan järjestelmän avainabstraktioita yhdistellään

29 Esimerkki käyttöjärjestelmän toteutusfilosofioista

30 Moduulien toteuttaminen
Yksi moduuli kuvaa yhden abstraktion tai koostuu joukosta yhteenkuuluvia aliohjelmia Useimmiten moduulijako vastaa ohjelman jakoa tiedostoiksi Moduulien kuvauksessa rajapinnan kuvaus erotettava sisäisestä toteutuksesta kieleen liittyvä esitystapa sopimus toteutuskäytännöstä

31 Rajapintojen suunnittelu ja dokumentointi
rajapinta: sopimus toteuttajan ja käyttäjän välillä modulien sisäinen kiinteys mahdollisimman suuri  helpottaa ylläpitoa loogisesti yhteenkuuluvat asiat samassa modulissa modulien väliset kytkennät mahdollisimman pieniä  helpottaa ylläpitoa modulien väliset riippuvuudet rajapintojen kapeus ja löyhyys (välitetään vain ne tiedot, jotka on tarpeen)

32 Suunnittelun eteneminen
Tehtäviä: Mietitään ratkaisun yleiset periaatteet (toteutusfilosofia, arkkitehtuurityyli) Suunnitellaan modulirakenne Määritellään, mitä tietoa modulit sisältävät Suunnitellaan modulien rajapinnat Määritellään modulien näkyvyys: mitä muita moduleja moduli tarvitsee toiminnassaan Testataan ratkaisua tutkimalla millaisia kutsusekvenssejä ohjelmat toiminnot aiheuttavat modulien sisällä (esim. SA menetelmän tapahtumalistana, UML käyttötapauksina) Suunnitellaan modulien sisäinen toteutus Varmistetaan kriittisimpien toteutusratkaisujen toimivuus esimerkiksi prototyypillä Suunnittelun dokumentointi Iteroiden ja rinnakkain

33 Teknisen määrittelyn sisältörunko
Lähde: standardista IEEE1016 vapaasti mukailtu

34 Suunnitteluesimerkki
Ohjelmisto muodostaa tekstitiedostosta hakusanaston Hakusanasto sisältää dokumentissa esiintyneet sanat aakkosjärjestyksessä Jokaisesta sanasta tulostetaan sen esiintymisrivit tiedostossa Hakusanasto on muotoa: akku 4 akussa 5,10 alku 1,7 ...

35 Tapahtuma- sekvenssikaavio sanaston muodostamisesta

36 Esimerkkiohjelman luokkakaavio

37 Esimerkkiohjelman rajapintamäärittely

38 Esimerkkiohjelman modulien näkyvyys

39 CASE-välineet edustavälineet (upper-CASE, front-end)
määrittely ja suunnitteluvaiheiden apuvälineet taustavälineet(lower-CASE, back-end) toteutusvaiheen apuvälineet, esim. kääntäjät, sovelluskehittimet IPSE (Integrated Project Support Environment) kaikki ohjelmistoprojektiin liittyvät työkalut integroitu yhtenäiseksi työvälineeksi

40 Uudelleenkäytettävyys ja uudelleenkäyttö
60 – 80% kaikesta tehtävästä ohjelmistosta on tehty jo aikaisemmin, osa siitä jopa samassa organisaatiossa yleiskäyttöiset komponentit käyttöliittymäkirjastot, matematiikkakirjastot, tietorakennekirjastot sovellusaluekohtaiset komponentit esim. televerkon hallintaan liittyvät sovelluskohtaiset komponentti sovelluksen oma käyttöliittymäkirjasto sovelluskehykset (frameworks) joukko toisiinsa liittyviä komponentteja

41 Uudelleen- käyttö tuotanto- prosessissa

42 Uudelleenkäytön ongelmia
Komponenttikirjaston luomisen ja ylläpitämisen vaatima työmäärä Komponenttien etsiminen Dokumentoinnin puutteellisuus Haluttomuus käyttää muiden tekemiä komponentteja Uudelleenkäytettävät komponentit eivät synnyt projektityön sivutuotteina, vaan ne vaativat erityispanostusta ja myös erityisosaamista


Lataa ppt "Ohjelmistotuotanto - Suunnittelu"

Samankaltaiset esitykset


Iklan oleh Google