1 / 41

Ohjelmistotuotannon osa-alueet

Ohjelmistotuotannon osa-alueet. Kevät 2002 Päivi Ovaska LTKK/Tite. Requirements. Products. Ohjelmistotuotannon eri tasot. SWE-Process. Technologies Java Wintel Corba C++. Methods&tools OOE UML Purify Rose. Sciences Formal methods DB theory Cognitive psychology

damita
Download Presentation

Ohjelmistotuotannon osa-alueet

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ohjelmistotuotannon osa-alueet Kevät 2002 Päivi Ovaska LTKK/Tite

  2. Requirements Products Ohjelmistotuotannon eri tasot SWE-Process Technologies Java Wintel Corba C++ ... Methods&tools OOE UML Purify Rose ... Sciences Formal methods DB theory Cognitive psychology Management sciences ...

  3. Määrittely Suunnittelu& toteutus Asiakasvaatimuksista tuotteeseen asiakasvaatimukset ohjelmistovaatimukset

  4. Asiakas- ja tuotekehitysprosessit

  5. Asiakas- ja tuotekehitysprosessit

  6. Asiantuntemuksen alueet Johtamis- taidot Esiintymis- ja Neuvottelutaidot, Ryhmätyötaidot Erityisalueen tekninen osaaminen Yleinen tekninen osaaminen Sovellusalueen asiantuntemus Prosessi- osaaminen

  7. Ohjelmiston elinkaari(life cycle) • Ajanjakso ohjelman kehitystyöstä sen käytöstä poistamiseen. • Malleja • Vesiputous • RAD • Evo-mallit • Protoilu • Sulautetun järjestelmän kehitys • Järjestelmätoimitus

  8. Ohjelmiston elinkaari Asetetaan yleiset järjestelmätason vaatimukset, asiakasvaatimukset Miksi ohjelmisto tulisi tehdä? Esitutkimus Analysoidaan asiakasvaatimuksia, johde- taan ohjelmistovaatimukset Toiminnallinen määrittely Mitä tehdään? Vaatimusmäärittely, requirement analysis, requirement specification, system analysis Määärittely Arkkitehtuurisuunnittelu Moduulisuunnittelu Miten tehdään? Suunnittelu Toteutus Moduulitestaus Integrointitestaus Järjestelmätestaus Tavoitteena löytää virheitä Testaus Ongelmien ratkomista, virheiden korjaamista, ohjelmien muuttamista, uusien piirteiden lisäämistä Ylläpito

  9. Vaatimukset (Requirements) ”asiakkaan on tuotettava mahdollisimman virheettömiä dokumentteja” ”haluamme järjestelmään tuen oikein- kirjoitukselle” ”järjestelmässä on oltava tuki oikeinkirjoitukselle” ”tarkasta oikeinkirjoitus jokaisen kirjoitetun sanan jälkeen”

  10. Vesiputousmalli (Linear model, Waterfall model) käyttökelpoinen, kun vaatimukset on hyvin tiedossa

  11. Kun vaatimuksia halutaan tarkentaa, eikä tiedetä mitä halutaan Vesiputousmalli nopeaan, komponenttipohjaiseen kehi- tykseen

  12. year year year Evo-malli (Evolutionary Model) ... Specification Specification Specification Design Design Design Realization Realization Realization Testing Testing Testing Version 1 Version 2 Version 3 • Unknown/changing/misunderstood requirements • Managing of risks

  13. Evolutionary incremental model 2 weeks 2 weeks 2 weeks 2 weeks specify design implement test Most important use cases: #1, 3 Version 0.1 The next UC’s: #2, 4, 5 specify design implement test Version 0.5 The rest of the UC’s specify design implement test Version 1.0

  14. RUP (Rational Unified Process) -iteraatiot

  15. RUP Iteraatio

  16. RUP vaiheiden limittyminen

  17. Protoilu

  18. Sulautettu järjestelmä

  19. Tukitoiminnot • Laadunvarmistus • Dokumentointi • Tuotteenhallinta • Vaatimustenhallinta...

  20. Mitä on ohjelmiston laatu? • Ohjelmistotuotteen kykyä täyttää käyttäjänsä kohtuulliset toiveet ja odotukset • Laatu subjektiivinen, käyttäjästä ja käyttöympäristöstä riippuva käsite • Toiminnan laatu, tuotteen laatu • Toiminnan hyvä laatu tarkoittaa lopputuotteen laatuun positiivisesti vaikuttavia toimintatapoja

  21. Yrityksen laatujärjestelmä • Tuotteen tekemiseksi käytettävä yrityksen toimintapa • Tavoitteena taata, että tuotantoprosessi tuottaa suunniteltua laatutasoa vastaavia tuotteita aikataulun ja budjetin mukaisesti • Kuvaus yrityksen laatukäsikirjassa • Laatusertifikaatti todiste siitä, että yritys toimii laatujärjestelmänsä mukaisesti, mutta se ei todista laatujärjestelmän erinomaisuutta

  22. Laadunvarmistus • Mitä kauemmin virheet ovat järjestelmässä, sen kalliimmaksi ne tulevat. • Terveydenhoito: toimintatavat, jotka vähentävät virheitä. • Sairaanhoito: virheiden seulominen mahdollisimman aikaisessa vaiheessa: tarkastukset.

  23. Tarkastukset ja katselmukset (esimerkki)

  24. Dokumentointi

  25. Tuotteenhallinta

  26. Vaatimustenhallinta

  27. Ohjelmistoprojekti • Esitutkimusprojekti • Määrittelyprojekti • Toteutusprojekti • Käyttöönottoprojekti • Koulutusprojekti • Nyrkkisääntö: projekti ei saisi kestää yli vuotta

  28. Toimitusprojekti

  29. Ohjelmistoprojektin ongelmia epärealistiset aikataulut ja budjetit sovellusalueen huono tuntemus vaatimusten muuttuminen projektin aikana tekniikan huono tuntemus henkilöstöongelmat asiakas ei tiedä mitä haluaa työmääräarviot pettävät, budjetit ylittyvät

  30. Elinkaarikustannukset

  31. Arvoketju (esimerkki) [Boehm 1987]

  32. Onko rationaalinen tuotantoprosessi mahdollinen? • Parnas&Clemens: • Ohjelmistolle asetettavat vaatimukset eivät juuri koskaan ole täysin tunnettuja alkuvaiheessa • Vaikka vaatimukset tunnettaisiinkin, monet toteutukseen liittyvät seikat selviävät vasta projektin aikana • Vaikka kaikki tosiseikat olisivatkin tiedossa jo alussa, on tosiseikkoja niin paljon, ettei ihminen pysty käsittelemään niitä virheettömästi • Vaikka tosiseikat pystyisikin käsittelemään virheettömästi, ne voivat muuttua ulkoisista syistä

  33. Onko rationaalinen tuotantoprosessi mahdollinen? • Ihminen takertuu aikaisemmin oppimiinsa ratkaisuihin, jolloin rationaalisesti perusteltavissa oleva ratkaisu jää huomaamatta • Aikaisemmin kirjoitettujen ohjelmien uudelleenkäyttö johtaa myös usein omituisiin ratkaisuihin

  34. Kannattaako siis edes yrittää? • Kannattaa, koska prosessit • antavat ohjeita mitä missäkin vaiheessa pitäisi tehdä • helpottavat siirtymistä projektista toiseen, jos ne muistuttavat toisiaan • projektinhallinta helpottuu • ulkopuolisen arvioijan helpompi arvioida projektin tilannetta • mahdollistavat mittatietojen keräämisen ja toiminnan kehittämisen tähän perustuen • Programming-in-large vs. programming-in-small

More Related