Lataa esitys
Esittely latautuu. Ole hyvä ja odota
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
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.