yleist ohjelmistosuunnittelusta n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Yleistä ohjelmistosuunnittelusta PowerPoint Presentation
Download Presentation
Yleistä ohjelmistosuunnittelusta

Loading in 2 Seconds...

play fullscreen
1 / 14

Yleistä ohjelmistosuunnittelusta - PowerPoint PPT Presentation


  • 81 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Yleistä ohjelmistosuunnittelusta' - lilia


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
yleist ohjelmistotuotannosta
Yleistä ohjelmistotuotannosta
  • ATK osaksi jokapäiväistä toimintaa 1960- ja 1970-luvuilla
  • Ohjelmistotekniikkaa hyödynnetään päivittäin
    • pankkiautomaatit
    • puhelimet
    • kaukosäätimet
    • potilashallintojärjestelmät
    • toimistosovellukset
    • Jne..
slide3

Yleistä ohjelmistotuotannosta

  • 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
sovellusalueet
Sovellusalueet
  • 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
sovellusalueet1
Sovellusalueet
  • 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
ohjelmistojen luonne
Ohjelmistojen luonne
  • 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 luonne1
Ohjelmistojen luonne
  • 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 luonne2
Ohjelmistojen luonne
  • 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ä
ohjelmistotuotannon ongelmia
Ohjelmistotuotannon ongelmia
  • 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 10 000 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 ongelmia1
Ohjelmistotuotannon ongelmia
  • 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 ongelmia2
Ohjelmistotuotannon ongelmia
  • 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…)
ohjelmistotekniikan kehitys
Ohjelmistotekniikan kehitys

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 kehitys1
Ohjelmistotekniikan kehitys
  • 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 kehitys2
Ohjelmistotekniikan kehitys
  • 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