Ohjelmistotuotanto - Suunnittelu

Slides:



Advertisements
Samankaltaiset esitykset
Juha Kauppinen Consulting oy Työntekijäkysely Tietoja
Advertisements

Opiskelijat työmarkkinoilla vuonna 2011 Ympäristöasiantuntijoiden Keskusliitto Lokakuu 2011 Real Stats Oy.
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Pääkaupunkiseudun 8. luokkien palvelukyky Espoo, Tapiolan koulu Joulukuu 2013.
Hampuri, Saksa Löytää suunta, joka mahdollistaa Lions Clubs Internationalin saavuttavan sen täyden potentiaalin kansainvälisenä.
Suunnitelma ohjelmiston testaukseen
Toimittaja – Sovellusarkkitehtuuritas on pilkkominen Kalle Launiala, ProtonIT Oy
UML-notaatio staattinen ja dynaaminen mallintaminen
Tietokannan suunnittelu
Tekninen suunnit-telu
Olio-mallinnus Tietojärjestelmien suunnittelu KYAMK, Liiketalous, Kouvola Jarkko Ansamäki, 2002.
Ohjelmiston elinkaarimallit
13. Pakkaukset.
Ohjelmistotekniikka: Ohjelmiston mallintaminen, osa I
Perusopetuksen huoltajat 2014 Generated on :04.
Ohjelmiston toteutus (teknisestä näkökulmasta)
Päivi Ovaska Tutkijaopettaja LTY/Tite
Tietojärjestelmän suunnittelu
Ohjaustarvearvio ja ohjaustarve kartta/ Ryhmänohjaajan näkökulma
Performance testing of TETRA 1. SISÄLTÖ  TETRA standardointi  ICT- yrityksen toteutus  Testaus- prosessi  Motivaatio testaukseen  Vaiheet/ osa-prosessit.
OHJELMOINTITAITO ICT02D 12 ECTS. OPINTOJAKSON TOTEUTUS  KESTO: –  PÄIVÄOPISKELIJAT: – KAKSI LUOKAA (SUOMI) –YKSI LUOKKA (ENGLANTI)
Korkeakoulujen ja opetusministeriön yhteinen tietohallintohanke, jota CSC koordinoi RAkenteellisen KEhittämisen Tukena TIetohallinto RAKETTI-XDW Käsitemäärittely,
T Projektikatselmus Ampel 3. Toteutusvaihe
T Projektikatselmus GenCode PS iteraatio
Ohjelmistotekniikka Specifikaatiot: Määrittely, suunnittelu, työkalut ja standardit . Kevät 2002 Päivi Ovaska LTKK/Tite.
1 Senioreiden säästäminen ja maksutavat 2014 SENIOREIDEN SÄÄSTÄMINEN JA MAKSUTAVAT
Jatkuva Integraatio ohjelmistokehityksessä
Oliomallittaminen ja UML
I.R.O. Research Oy vee 10/2000 Mediakäyttö Käyttää vähintään kerran viikossa Tytöt ja pojat *) Kirjat (esim. romaanit, lasten- ja nuortenkirjat)
Elinkeinopoliittinen mittaristo 2014
SE-02 Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin.
Olioperustainen ohjelmistoprosessi
3. Spesifikaatioiden laatiminen
Ohjelmistotekniikka - Tenttiin valmistautumisesta Kevät 2003 Hanna-Kaisa Lammi LTY/Tite.
Rakenteen ja ilmeen määrittelystä konseptissa. Konseptisuunnittelu Konseptisuunnitelman sisällöstä Konseptisuunnitelmassa kuvaillaan Projektin tausta.
1 Raha-asioiden suunnitteleminen ja nykyinen rahatilanne Senioritutkimus 2011.
Seinäjoki kisa A Tuomari: Tytti Lintenhofer ALO 12kyl, 4pys Kyl:
Maatalous, maaseutuyrittäminen rahavirrat 2008 ja 2007 Pohjois-Savo Jari Kauhanen MTK- Pohjois-Savo.
Johdatus ohjelmointiin Ohjelmistosuunnittelu Jaana Holvikivi.
Ohjelmistojen suunnittelumenetelmät ja –työkalut
Selainkäyttöliittymän tuotantoprosessi Klikkaamalla pääotsikoista tietosi karttuu. Sininen mökki toimii paluupainikkeena. Selainkäyttöliittymän tuotantoprosessi.
UKJ ja ulkoiset järjestelmät AAPA ja FUCIO –yhteistyöpalaveri Ari Ahlqvist.
Ohjelmistotekniikka ja projektinhallinta, 4 op
JHS:N SUOSITUKSET VAATIMUSMÄÄRITTELYLLE SEPPO RÄSÄNEN SAVONIA-AMMATTIKORKEAKOULU TERVEYSALA, KUOPIO Ohjelmistotekniikka ja projektinhallinta,
Esitutkimus (tarvekartoitus)
Ohjelmistotuotanto.
T Loppudemo Kaffetauko eAuction
Johdanto Teppo Räisänen, Principal Lecturer Oulu University of Applied Sciences, School of Business and Information Management
Uudelleenkäyttö. Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim.
OHJELMOINTITAITO ICT02D 12 ECTS. OPINTOJAKSON TOTEUTUS  KESTO: –  AVOIMEN OPISKELIJAT: – YKSI LUOKA (SUOMI) – LUOKKA ICT02O-1.
Heuristinen arviointi Käyttöliittymäseminaari Jere Salonen.
Mi Menetelmä tosiaikaiseen sivustomuokkaukseen Sulake Dynamoid | Strictly confidential – legally protected and privileged information Ilari Tuominen Software.
– Ohjelmistojen mallintaminen, mallintaminen ja UML.
Neuron Jyväskylän yliopisto Tietotekniikan sovellusprojekti Kevät 2004.
Suomen Lääkäriliitto | Finnish Medical AssociationLääkärit Suomessa | Physicians in Finland Tilastotietoja lääkäreistä ja terveydenhuollosta 2014 Statistics.
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
Component diagram– Komponenttikaavio J. Pätsi & H. Malmihuhta
Tilastollisesti merkitsevä nousu Tilastollisesti merkitsevä lasku Edelliseen aineistoon KMT 2005 verrattuna* KMT Kevät06 puolivuosiaineisto KMT SYKSY05/KEVÄT06.
Käyttöönottokaavio– Deployment diagram Vesa Jokikokko Tarmo Kemi TIK9SNA.
Ohjelmistotekniikka kevät 2003 CASE-välineet. Ohjelmistotekniikka kevät 2003 Mitä ovat CASE-välineet? Computer Aided Software Engineering Tietokoneavusteinen.
Ohjelmistotekniikka - Määrittely (Analysis) Kevät 2003 Hanna-Kaisa Lammi LTY/Tite.
Ohjelmistotuotanto - Suunnittelu Kevät 2005 Jani Vaara LTY/Tite.
2/2001 Tietojärjestelmät ja Systeemisuunnittelu Luennoitsija: Tapio Lammi
Ohjelmiston suunnitteluperiaatteita Kevät 2002 Päivi Ovaska LTKK/Tite.
Tietojärjestelmät ja Systeemisuunnittelu
2/2001 Tietojärjestelmät ja Systeemisuunnittelu Luennoitsija: Tapio Lammi
Ohjelmistotekniikka Vaatimustenhallinta Kevät 2002 Päivi Ovaska LTKK/Tite.
Kansallinen palveluväylä PERTIVA-kokous
Sosiaali- ja terveydenhuollon organisaatio- ja palvelutiedon hallinta
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Esityksen transkriptio:

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

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

Sekvenssikaavio (sequence diagram)

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

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

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

Muita tapoja: perinteinen vuokaavio

Muita tapoja: Nassi-Schneidermann

Komponenttikaavio GUI Auton- VuokrausToiminta Vuokraus Tietokanta- liittymä KohdeKanta

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

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

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

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

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

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.

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

Suunnitteluprosessi

Moduuli

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!

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

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

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

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

Esimerkki hierarkisesta osittamisesta

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

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

Esimerkki työasemasovelluksen abstrahoinnista

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

Esimerkki käyttöjärjestelmän toteutusfilosofioista

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ä

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)

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

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

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 ...

Tapahtuma- sekvenssikaavio sanaston muodostamisesta

Esimerkkiohjelman luokkakaavio

Esimerkkiohjelman rajapintamäärittely

Esimerkkiohjelman modulien näkyvyys

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

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

Uudelleen- käyttö tuotanto- prosessissa

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