420 likes | 577 Views
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
E N D
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 Management sciences ...
Määrittely Suunnittelu& toteutus Asiakasvaatimuksista tuotteeseen asiakasvaatimukset ohjelmistovaatimukset
Asiantuntemuksen alueet Johtamis- taidot Esiintymis- ja Neuvottelutaidot, Ryhmätyötaidot Erityisalueen tekninen osaaminen Yleinen tekninen osaaminen Sovellusalueen asiantuntemus Prosessi- osaaminen
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
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
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”
Vesiputousmalli (Linear model, Waterfall model) käyttökelpoinen, kun vaatimukset on hyvin tiedossa
Kun vaatimuksia halutaan tarkentaa, eikä tiedetä mitä halutaan Vesiputousmalli nopeaan, komponenttipohjaiseen kehi- tykseen
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
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
Tukitoiminnot • Laadunvarmistus • Dokumentointi • Tuotteenhallinta • Vaatimustenhallinta...
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
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
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.
Ohjelmistoprojekti • Esitutkimusprojekti • Määrittelyprojekti • Toteutusprojekti • Käyttöönottoprojekti • Koulutusprojekti • Nyrkkisääntö: projekti ei saisi kestää yli vuotta
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
Arvoketju (esimerkki) [Boehm 1987]
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ä
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
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