1 Yleistä ohjelmistosuunnittelusta RASE 8.5.2006.

Slides:



Advertisements
Samankaltaiset esitykset
Tilahallintajärjestelmä Mikä? Miksi? Miten? Janne Koskenniemi, pääsihteeri.
Advertisements

Ohjelmistokehitys Viikko 2 Mika Salo Pekka Valtonen Asmo Voutilainen
Ohjelmistotuotanto Johdanto
NAO/Maija-Leena Haapa-alho
Yhteistyössä Tietohallinto liikunnassa ja urheilussa
Bensan hinta Hyvää päivää, Olen kuullut ennustettavan, että bensan hinta saattaa syksyyn mennessä nousta litralta jopa € 1,90 :een.
Suunnitelma ohjelmiston testaukseen
Finanssialan Keskusliitto
Tietokanta.
Pyry Heinonen.  Nykyisen Internet-pohjaisen painotuotetilausjärjestelmän korvaaminen uudella versiolla  Esitellään nykyinen järjestelmä ja mahdollinen.
Ohjaaja: Ville Hentilä, Elisa Oyj Valvoja: Prof. Jukka Manner
M U U T O S T E N V A L M I S T E L U K e h i t t ä j ä n K a r t t a k i r j a Kehitysprojektien kriittiset menestystekijät.
Kysymykset eivät ole kovin vaikeita, joten älä huijaa!.
Ohjelmistokehittäminen. Luku 1 – Mitä on ohjelmistokehittäminen?
Tekninen suunnit-telu
KULUTTAJANA VAIKUTAT LÄHELLE JA KAUAS TÄMÄN AINEISTON TUOTTAMISEEN ON KÄYTETTY MAA- JA METSÄTALOUSMINISTERIÖN TUKEA Kuva: Ruokatieto / Jussi Ulkuniemi.
Sulautettu tietokone. Miten tähän on tultu? • ”varsinaisen” tietokoneen historiassa – Tavoitteena on ollut laskutoimitukset – Toimistosovellukset, merkkien.
Korkeakoulujen opetuksen ja oppimisen digitaalisen tuen hankkeet.
Projektikatselmus Publicum Teknillinen korkeakoulu Publicum-ryhmä.
Fisma ry:n kehittämän projektin estimointi- ja mittauskonseptin instituionalisointi käytännön ohjelmistoprojektien johtamiseen Minigradu esitys
Jatkuva Integraatio ohjelmistokehityksessä
Tutkimusosasto Mitä ja miksi? Tutkimuksen tavoitteena on selvittää, millaisia kokemuksia nuorilla on täystyöllisyysmallista ja työvoimatalossa työskentelystä.
3. Spesifikaatioiden laatiminen
1. Ohjelmistotekniikka - Software Engineering
Ohjelmistotekniikka - Tenttiin valmistautumisesta Kevät 2003 Hanna-Kaisa Lammi LTY/Tite.
13. Hyvä ohjelmointitapa (osa 1)
Ohjelmistotuotanto kevä 2010 Juho Hirvonen Mikko Nieminen Tuomas Saarela.
Maailman johtavana metsäklusterina vuoteen 2030 Suomen metsäklusterin tutkimusstrategia.
Finnish Support Center FSC Oy tietojärjestelmien asiantuntija.
(mukaellen Haikala & Mikkonen 2011, 29)
Selainkäyttöliittymän tuotantoprosessi Klikkaamalla pääotsikoista tietosi karttuu. Sininen mökki toimii paluupainikkeena. Selainkäyttöliittymän tuotantoprosessi.
Projektikatselmus Publicum Teknillinen korkeakoulu Publicum-ryhmä.
Ohjelmistotekniikka ja projektinhallinta, 4 op
Onnistunut IT-projekti - Haaveesta totta? Tiken näkemys
Esitutkimus (tarvekartoitus)
Heikki Salokanto Valvoja: prof. Jukka Manner Ohjaaja: DI Pekka Pajuoja, TEKES Sovelluskehitysympäristön virtualisoinnin tuomat edut ja haitat.
HAJAUTTAMISEN IDEAA SEPPO RÄSÄNEN SAVONIA-AMMATTIKORKEAKOULU TERVEYSALA, KUOPIO Ohjelmistotekniikka ja projektinhallinta, 4 op.
Tukiasemaohjaimen ohjelmiston muutostoimitusten automatisoitu testaustyöympäristö Mikko Harila Työn valvoja:Professori Sven-Gustav Häggman Työn.
Ohjelmistotuotanto.
C 1. Testaus on ”sarja toimintoja” Itse asiassa, testaus on vuorovaikutusta, jota rytmittää ohjelmiston arviointi. Vaikka on hyödyllistä tunnistaa sarja.
© Conformiq Software Ltd. | The Future of Software Testing Kuormitustestaus.
1 Hajautetut tietojärjestelmät RASE  Miksi? Järjestelmän osista saadaan selkeitä kokonaisuuksia Kokonaisuuksia voidaan käyttää eri järjestelmissä.
YLEISTÄ OHJELMISTOTUOTANNOSTA SEPPO RÄSÄNEN SAVONIA-AMMATTIKORKEAKOULU TERVEYSALA, KUOPIO Ohjelmistotekniikka ja projektinhallinta, 4 op.
Suupohjan palveluhakemisto (yritys- ja yhdistysrekisteri)
Tietojärjestelmäprojektin onnistuminen
Testaus Testaus Testauksella pyritään löytämään virheitä, jotka sitten korjataan. Yksittäinen testi on yleensä ohjelman suoritus (tietyillä.
Verkko-opetuksen laatukäsikirja Kristiina Karjalainen, Ulla Ritvanen Erika Löfström Laadun teoriasta käytäntöön työpajat
T Henkilökohtainen SE harjoitus
SHAMAN-projekti Projektiryhmä Ohjaajat Tilaaja Marko Andersson
SHAMAN-projekti Projektiryhmä Ohjaajat Tilaaja Marko Andersson
SUUPOHJAN PALVELUPORTIT. Suupohjan palveluportit Suupohjan palveluportit-hankkeen tavoitteena on asumis- ja hoivapalvelujen sekä seudun yhdistysten verkkopalvelujen.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
Ohjelmistotekniikka kevät 2003 CASE-välineet. Ohjelmistotekniikka kevät 2003 Mitä ovat CASE-välineet? Computer Aided Software Engineering Tietokoneavusteinen.
1 Ohjelmistotuotanto Johdanto Kevät 2004 Hanna-Kaisa Lammi LTY/Tite.
Ohjelmistotekniikka johdanto Kevät 2002 Päivi Ovaska LTKK/Tite.
Kesätyöntekijöiden kommentteja Opasnetistä ja ydinvoimatyöstä: ”Kun tulin kesätöihin minulla oli vain jokin suuntaa antava aavistus siitä mitä meinattiin.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
Avoimen tuotteen hallintamalli Tuotteenhallinnan työpaja
Ohjelmistotekniikka (Ohjelmistotuotanto) Software Engineering.
THL-raportoinnin määrittely – yhteenveto
Yrityksen projektisuunnitelma
Infra-alan ammattikorkeakouluopetuksesta
Onnistuneen tietovarastoprojektin edellytykset
Työkaluja tehtävien tueksi
Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4
Ohjelmistotekniikan menetelmät, Johdatus ohjelmistotuotantoon
14. Hyvä ohjelmointitapa.
Tietojärjestelmät KEHITTÄMINEN JOHTO KIRJANPITO TILAUSTEN KÄSITTELY
EDGE
Ohjelmistotekniikan menetelmät, Johdatus ohjelmistotuotantoon
Esityksen transkriptio:

1 Yleistä ohjelmistosuunnittelusta RASE

2 Yleistä ohjelmistotuotannosta  ATK osaksi jokapäiväistä toimintaa ja 1970-luvuilla  Ohjelmistotekniikkaa hyödynnetään päivittäin  pankkiautomaatit  puhelimet  kaukosäätimet  potilashallintojärjestelmät  toimistosovellukset  Jne..

3  Software Engineering  = ohjelmistotekniikka tai ohjelmistotuotanto  tarkoittaa ohjelmistotyötä, jonka tuloksena syntyvät järjestelmät täyttävät käyttäjiensä kohtuulliset toiveet ja odotukset, valmistuvat määritellyn aikataulun ja arvioitujen kustannusten puitteissa Yleistä ohjelmistotuotannosta

4  Ohjelmistotekniikalla ei ole mitään tiettyä sovellusaluetta  varus- ja työkaluohjelmistot  Esim. tekstinkäsittely, kääntäjät, käyttöjärjestelmät  teknis-tieteellinen laskenta  Esim. luonnonilmiöiden mallinnus  tietämyspohjaiset järjestelmät  Esim. lainsäädäntöä toteuttavat sovellusalueet, asiantuntijajärjestelmät, sairaalajärjestelmät Sovellusalueet

5  kaupallishallinnolliset ohjelmistot  Esim. palkanlaskenta, varastonvalvonta  prosessinohjaus- ja prosessiautomaatiojärjestelmät  Esim. paperikoneen ohjaus, matkapuhelinverkon hallintajärjestelmä  sulautetut järjestelmät  Esim. television, videon, matkapuhelimen ja pesukoneen toimintaa ohjaavat ohjelmistot  reaaliaikajärjestelmät (reaktiiviset järjestelmät)  Esim. kaukosäätimet, auton vakionopeuden säädin, graafinen käyttöliittymä  verkko-opetus  Esim. verkko-oppimisalusta  Monet järjestelmät ovat edellisten kombinaatioita Sovellusalueet

6  Ohjelmiston koko ja käsiteltävän tiedon määrä  koko voidaan ilmoittaa tavuina, koodiriveinä, toimintojen lukumääränä, näyttöjen määränä tai tietokannan koolla/monimutkaisuudella  ohjelmistojen koot voivat vaihdella muutamasta sadasta koodirivistä kymmeniin miljooniin riveihin  Vasteaika- ja reaaliaikaisuus  vasteaika kuvaa järjestelmän nopeutta vastata tiettyihin ulkoisiin tapahtumiin  termiä reaaliaikaisuus käytetään kuvaamaan vasteajan vaatimuksia  eräajo-ohjelmistoissa ei yleensä vasteaikavaatimuksia  prosessinohjausjärjestelmissä kovat vasteaikavaatimukset (kovuus ei tarkoita välttämättä lyhyttä vasteaikaa…) Ohjelmistojen luonne

7  Luotettavuus  tarkoitetaan suojautumista ohjelmiston virheitä ja laitteiston ja ympäristön häiriöitä vastaan  ohjelmistojen virheitä vastaan voidaan suojautua ohjelmoimalla ylimääräisiä tarkistuksia  laitteistojen ongelmia vastaan voidaan suojautua monistamalla laitteiston osia tai ohjelmoimalla laitteistoon toipumismenettelyjä  Hajautus  nykyajan järjestelmät tyypillisesti hajautettuja  myös sulautetut järjestelmät ja prosessinohjausjärjestelmät voivat olla hajautettuja Ohjelmistojen luonne

8  Tuotteistusaste  räätälöidyt ohjelmistot tehdään tietyn asiakkaan tarpeisiin ja tietylle toimialalle  räätälöinti voidaan toteuttaa täysin uudesta sovelluksesta tai muokataan käytössä olevaa sovellusta  tuotekehitysprojekti tähtää tuotteeseen, joka soveltuu monille asiakkaille  monet ohjelmistot näiden kahden tapauksen väliltä Ohjelmistojen luonne

9  Ohjelmistotuotannon historia on lyhyt  teollisia tuotteita tuotettu vasta muutamia vuosikymmeniä  Tietotekniikan nopea kehitys mahdollistanut tuotteiden koon kaksinkertaistumisen muutaman vuoden välein  Nykyiset isot järjestelmät / ohjelmistot ovat monimutkaisimpia insinöörityön näytteitä ihmiskunnan historiassa  kymmenien tuhansien koodirivien määrä yleistä, suurimmat kymmeniä miljoonia rivejä…  Ohjelmistotuotteet ovat monimutkaisia  tavallisessa salapoliisiromaanissa noin lausetta  miljoonan rivin ohjelmisto vastaisi 100-osaista salapoliisiromaanisarjaa, jossa henkilöt, johtolangat, murhaajat ja kaikki pienimmätkin asiat ovat ristiriidattomia  Ohjelmistotuotannossa valmiiden tuotteiden muokkaaminen on yleistä  2/3 alan työstä on vanhojen ohjelmien korjaamista, muuttamista ja jatkokehittelyä Ohjelmistotuotannon ongelmia

10  Mikään ohjelmisto ei ole virheetön  Yritysten kannalta ongelmia aiheuttavat korkeat kustannukset ja myttyyn menneet hankkeet  Suomessakin on yrityksiä ajautunut konkurssiin ohjelmistotekniikan vuoksi  Työmäärät ja aikataulut arvioidaan yleensä väärin  tutkimuksen mukaan yli puolet ohjelmistoprojekteista myöhästyy ja ylittää kustannuksensa  Miksi kustannuksen ja työmäärät arvioidaan väärin? Ohjelmistotuotannon ongelmia

11  Yritysten kannalta ongelmia aiheuttavat korkeat kustannukset ja myttyyn menneet hankkeet  Suomessakin on yrityksiä ajautunut konkurssiin ohjelmistotekniikan vuoksi  Työmäärät ja aikataulut arvioidaan yleensä väärin  tutkimuksen mukaan yli puolet ohjelmistoprojekteista myöhästyy ja ylittää kustannuksensa  Miksi kustannukset ja työmäärät arvioidaan väärin?  jos samassa yrityksessä tehty aikaisemmin saman alan vastaavanlainen projekti, niin onnistumisen mahdollisuudet paranevat  ei ole laskentatietoa tarjolla ja yleensä vanhoja projekteja ei voida suoraan verrata uuteen  saadaanko osaavimmat ja kokeneimmat resurssit projektiin. Ihmisten tuottavuus saattaa vaihdella huomattavasti  todellinen työmäärä = arvioitu työmäärä * PII * 30% (alan humoristista kansanperinnettä, joka ei kyllä ole kaukana totuudesta…) Ohjelmistotuotannon ongelmia

12 Frederik Brooks ”There is no silver bullet”:  Monimutkaisuus  ongelmat monimutkaisia->ohjelmistot monimutkaisia  hyvälläkään ohjelmistosuunnittelulla monimutkaisuutta ei saada pois, mutta huonolla pystytään helposti lisäämään  monimutkaisuuden minimointi ja rajapintojen määrän minimointi, selkeys ja yksinkertaisuus ohjelmistosuunnittelun keskeisiä periaatteita  Näkymättömyys  keskeneräisen projektin valmiusastetta erittäin vaikea arvioida  projekti voi olla edellä aikataulua, vaikka yli puolet ajasta jo käytetty ja koodausta ei ole edes aloitettu. Toinen projekti taas saattaa olla myöhässä, vaikka puolet ajasta vielä käyttämättä ja ollaan jo testaus-vaiheessa  projektin vaiheistaminen ja välietapit projektipäällikön työkalut  mitä pienempiin osiin tehtävät voidaan jakaa sitä helpompaa on projektin etenemisen seuranta Ohjelmistotekniikan kehitys

13  Muunnettavuus  yleensä jo projektin aikana ohjelmistoon tehdään jatkuvasti muutoksia ja ylläpitovaiheessa tahti kiihtyy  jos kehitetään rinnan laitteistoa ja ohjelmistoa ja laitteistossa huomataan testeissä vikaa, niin yleensä ohjelmistoa muutetaan.  toimintaympäristön muutokset, ohjelmiston virheet ja muuttuvat vaatimukset kasaavat ohjelmistolle muutospaineita koko sen elinkaaren ajan  huolellinen määrittely ja suunnittelu vähentävät muutostarpeita, mutta eivät kokonaan poista niitä  ohjelmistojen ylläpidettävyys on erittäin tärkeä ominaisuus  Ainutkertaisuus  projektit yleensä ainutlaatuisia, kerran toteutettavia. Ei suoraan hyödynnettävää aikaisempaa kokemusta ja karttuvaa tietotaitoa ei voida välttämättä suoraan hyödyntää tulevissakaan projekteissa  seurausta alan nopeasta kehityksestä ja nuoruudesta. Uutta teknologiaa virtaa alalle jatkuvasti ja tämän seurauksena uusia sovellusalueita  millainen olisi rakennustyömaa, jos se tehtäisiin kuten ohjelmistoprojektit? Ohjelmistotekniikan kehitys

14  Skaalautumattomuus  se mikä toimii pienessä projektissa ei välttämättä toimi ollenkaan isossa projektissa  pienessä projektissa ei välttämättä tehdä kunnon suunnitelmia, kaikki tuntevat suurin piirtein koko ohjelmiston, dokumentaatiota ei välttämättä tehdä jne. Yksittäinen uroteko saattaa pelastaa uppoavissa olevan projektin  suuri projekti vaatii hyvän projektinohjauksen, dokumentaation. Suurta projektia ei yksittäinen uroteko pysty pelastamaan. Auttaako resurssien lisääminen?  Epäjatkuvuus  perinteisen tekniikan kohdalla yleensä näin ei käy. Yhden pultin irtoaminen pilvenpiirtäjän katolta ei luhista taloa  ohjelmistoissa oleva virhe aiheuttaa yleensä epäjatkuvuuskohdan. Ohjelma kaatuu  yhdenkin bitin virhe saattaa aiheuttaa miljoonien eurojen vahingot  testaamalla ei millään saada kaikkia epäjatkuvuuskohtia kiinni. Erikoistilanteita on niin paljon Ohjelmistotekniikan kehitys