010758000 Ohjelmistotekniikka - Yrityksen l aatujärjestelmät ja mittarit
010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta
description
Transcript of 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta
![Page 1: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/1.jpg)
1
010758000 Ohjelmistotekniikka010758000 Ohjelmistotekniikka- -
Yleiskuva Yleiskuva ohjelmistotuotannostaohjelmistotuotannosta
Kevät 2003Hanna-Kaisa LammiLTKK/Tite
.
![Page 2: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/2.jpg)
2
SisältöSisältö
Ohjelmiston elinkaariOhjelmistokehityksen vaihejakomallejaOhjelmistokehityksen tukitoimintojaOhjelmiston elinkaarikustannuksista
![Page 3: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/3.jpg)
3
Ohjelmistotuotannon osa-alueitaOhjelmistotuotannon osa-alueitaLiiketoiminta, johtaminen
Laatujärjestelmä
Hankkeiden hallinta (tuotteen tasolla)
Projektinhallinta
Projektinhallinta
Projektinhallinta
tuotteenhallinta
laadunvarmistus
dokumentointi
määrit- tely
käyt- töönotto, ylläpito
testausohjel- mointi
suun- nittelu
vaatimustenhallinta...
Haikala, Märijärvi: Ohjelmistotuotanto, 2000.
![Page 4: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/4.jpg)
4
TermejäTermejä
Ohjelmiston elinkaari (life cycle) on aika, joka kuluu ohjelmiston kehittämisen aloittamisesta sen poistamiseen käytöstä
Vaihejakomallilla (process model) tarkoitetaan tapaa, jolla ohjelmiston kehitystyö tai koko elinkaari jaetaan vaiheisiin
Ohjelmisto vai tuote?
![Page 5: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/5.jpg)
5
Ohjelmiston elinkaariOhjelmiston elinkaari
Tuote versio 1 Tuote versio 2 Tuote versio N…
Tuotteen / ohjelmiston ylläpito
Tuotteen / ohjelmiston kehitys
TUOTTEEN / OHJELMISTON ELINKAARI
![Page 6: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/6.jpg)
6
Ohjelmistokehityksen vaiheetOhjelmistokehityksen vaiheet
Esitutkimus
Käyttöönottoja ylläpito
Määrittely
Suunnittelu
Integrointi jatestaus
Toteutus
Asetetaan asiakasvaatimukset: mitä asiakas haluaa?Miksi ohjelmisto tulisi tehdä?
Analysoidaan asiakasvaatimukset: mitä voidaan toteuttaa?Johdetaan ohjelmistovaatimukset: mitä projektissa tehdään?
Suunnitellaan, kuinka määrittelyssä kuvatut vaatimukset toteutetaan. (Arkkitehtuurisuunnittelu, modulisuunnittelu)
Toteutetaan suunniteltu.
Integrointi: yhdistetään toteutetut osat niin, että niistä saadaan yksi toimiva kokonaisuus.Testaus: etsitään ohjelmiston virheitä ja korjataan ne.
Käyttöönotto: toimitaan ohjelmisto asiakkaalleYlläpito: ratkotaan asiakkaan ongelmia, korjataan virheitä,muutetaan tarvittaessa ohjelmistoa uusia vaatimuksia vastaavaksi.
![Page 7: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/7.jpg)
7
Vaatimusten kertyminenVaatimusten kertyminen
Esitutkimus: asiakasvaatimukset
Järjestelmä- suunnittelu:
järjestelmävaatimukset
Ohjelmiston määrittely: ohjelmisto- vaatimukset
Laitteiston määrittely: laitteistovaatimukset
![Page 8: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/8.jpg)
8
Vaatimuksesta tuotteeksiVaatimuksesta tuotteeksi
Määrittely
Suunnittelu&toteutus
ohjelmistovaatimukset
asiakasvaatimukset
![Page 9: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/9.jpg)
9
Projektin eteneminenProjektin eteneminen
Projektissa toteutetaan vain juuri se, mitä asiakas halusi. Asiakas ei maksa ylimääräisistä ominaisuuksista!
Projektissa noudatetaan niin hyvää laatua, kuin asiakas halusi. Asiakas ei maksa ylihyvästä laadusta! Toisaalta jokainen projektissa työskentelevä on velvollinen tekemään niin hyvää työtä kuin aikataulun ja budjetin rajoissa on suinkin mahdollista.
![Page 10: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/10.jpg)
10
VaihejakomallejaVaihejakomalleja
vesiputousmalli (waterfall model)evoluutiomalli (evolutionary models)protoilumallit (prototyping models)spiraalimalli (spiral model)
Näistä kolme viimeistä mallia ovat iteratiivisia.
![Page 11: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/11.jpg)
11
Esimerkki vesiputousmallistaEsimerkki vesiputousmallista
Esitutkimus
Käyttöönottoja ylläpito
Määrittely
Suunnittelu
Integrointi jatestaus
Toteutus
Käytetään nopeassa komponenttipohjaisessa kehityksessä, jossavaatimukset ovat alussahyvin selvillä.
![Page 12: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/12.jpg)
12
Käytetään, kun heti alussa ei tarkasti tiedetä mitä halutaan.Vaatimukset tarkentuvat joka kierroksella: riski pienenee.
![Page 13: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/13.jpg)
13
Esimerkki evoluutiomallistaEsimerkki evoluutiomallista
Määrittely
Suunnittelu
Toteutus
Testaus
Määrittely
Suunnittelu
Toteutus
Testaus
Määrittely
Suunnittelu
Toteutus
Testaus
...
Versio 1 Versio 2 Versio 3
Haikala, Märijärvi: Ohjelmistotuotanto, 2000.
![Page 14: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/14.jpg)
14
![Page 15: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/15.jpg)
15
Esimerkki spiraalimallistaEsimerkki spiraalimallista
Tuotekonseptin-kehitysprojekti
Uuden tuotteenkehitysprojekti
Tuotteen kehitys-projekti
Tuotteen ylläpito-projekti
= Projektin aloituspiste
![Page 16: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/16.jpg)
16
RUP RUP (Rational Unified Process) (Rational Unified Process) esimerkkinä esimerkkinä EVO- ja spiraalimalleistaEVO- ja spiraalimalleista
Inception Elaboration Construction Transition
- Tuotteen ominaisuudet- Alustavat mallit- Alustava tuotearkkitehtuuri- Tarvittaessa proto- Riskit- Alustava projektisuunnitelma- Onnistumiskriteerit
- Täydennetyt mallit- Toteutettu toimiva perusarkkitehtuuri- Arkkitehtuurikuvaus- Riskit- Seuraavan vaiheen projektisuunnitelma- Onnistumiskriteerit- Alustava käyttöohje
- Lähes täydelliset mallit- Beta-versio- Arkkitehtuurikuvaus- Seuraavan vaiheen projektisuunnitelma- Onnistumiskriteerit- Käyttöohje
- Installointivalmis ohjelmisto- Byrokratiadokumentit- Täydelliset mallit- Arkkitehtuurikuvaus- Käsikirjat- WWW-palvelut yms.
Iter. Iter.Iter. Iter. Iter.Iter.Iter.Iter. Iter.Iter.
Iter. Iter.Iter.
Haikala, Märijärvi: Ohjelmistotuotanto, 2000. Alkuperäinen lähde: Jacobson et al. 1998
![Page 17: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/17.jpg)
17
RUP-iteraation vaiheetRUP-iteraation vaiheet
Iteration
Requirements Analysis DesignImplemen-
tationTest
![Page 18: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/18.jpg)
18
Työmäärien jakautuminen RUP-Työmäärien jakautuminen RUP-prosessissaprosessissa
Inception Elaboration Construction Transition
Requirements
Analysis
Design
Implementation
Test
iter. 1 iter. 2 ... ... ... .... .... .... ...
Haikala, Märijärvi: Ohjelmistotuotanto, 2000. Alkuperäinen lähde: Jacobson et al. 1998
![Page 19: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/19.jpg)
19
Esimerkkejä protoilumallistaEsimerkkejä protoilumallista
nopea suunnittelu
proto-tyypinteko
asiakkaanarvio prototyypistä
proto-tyypinkehittä-minen
tuote
vaatimustenmäärittely
alku
loppu
nopea suunnittelu
proto-tyypinteko
asiakkaanarvio prototyypistä
proto-tyypinkehittä-minen
tuote
vaatimustenmäärittely
alku
loppu
Määrittely
Suunnittelu
Toteutus
Testaus
Määrittely
Suunnittelu
Toteutus
Testaus
Prototyyppi Tuote v. 1.0
Protoiluprojekti Tuoteprojekti
Haikala, Märijärvi: Ohjelmistotuotanto, 2000.
![Page 20: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/20.jpg)
20
Muita prosessimalleja Muita prosessimalleja
Prosessimalleja on lukuisia muitakin, esim:– Component Assemble Model: kun käytetään
paljon jo valmiita komponentteja– Concurrent Process Model: projektin eri osia
tehdään rinnakkain toisistaan erillään– Formal Methods: matemaattisia ohjelmistoja
rakennettaessa– Cleanroom software engineering: pyritään
löytämään ohjelmistovirheet ennen testausta
![Page 21: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/21.jpg)
21
Esimerkki sulautettujen Esimerkki sulautettujen järjestelmien kehittämismallistajärjestelmien kehittämismallista
Järjestelmäsuunnittelun ohjaus ja koordinointi
Järjestelmän kenttätestaus,
asiakkaan hyväksyminen
ja arviointi
Järjestelmän integrointi-
testaus
Ohjelmiston moduuli-
suunnittelu
Laitteiston yksityis-
kohtainen suunnittelu
Laitteiston alustava
suunnittelu
Ohjelmiston määrittely
Laitteiston rakentaminen,
testaus ja integrointi
Ohjelmointi, testaus,
integrointi
Ohjelmiston arkkitehtuuri-
suunnittelu
Järjestelmän suunnittelu
Laitteiston määrittely
Järjestelmän määrittely
Järjestelmän toiminnalliset vaatimukset
![Page 22: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/22.jpg)
22
Prosessimallin soveltaminenProsessimallin soveltaminen
Prosessimallia tulee aina soveltaa juuri kyseiseen projektiin sopivalla tavalla!
Soveltamistapa riippuu projektin koosta ja sen erityispiirteistä.
Maalaisjärjen käyttö on erittäin suotavaa ellei jopa pakollista!
![Page 23: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/23.jpg)
23
Asiakas- ja tuotekehitys-Asiakas- ja tuotekehitys-prosessien suhdeprosessien suhde
Ohjelmistotuotantoprosessi
Asiakkaan prosessit
- tuoteideat- markkinatutkimukset ja kilpailija-analyysit- myynti ja markkinointi- tuotteen/ohjelmiston testaaminen ja koulutus- …
Toiminta on siis koko ajan rinnakkaista ja molempien tahojen tulisi koko ajan saada tietoa toistensa edistymisestä.
![Page 24: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/24.jpg)
24
Tarvittavat tukitoiminnotTarvittavat tukitoiminnot
LaadunvarmistusDokumentointiTuotteenhallintaVaatimustenhallinta…
![Page 25: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/25.jpg)
25
Mitä on laatu?Mitä on laatu?
Ohjelmistotuotteen kykyä täyttää käyttäjänsä kohtuulliset toiveet ja odotukset
Laatu on subjektiivinen, käyttäjästä ja käyttöympäristöstä riippuva käsite
Toiminnan laatu ja tuotteen laatu on erotettava toisistaan
Toiminnan hyvä laatu tarkoittaa lopputuotteen laatuun positiivisesti vaikuttavia toimintatapoja
![Page 26: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/26.jpg)
26
Yrityksen laatujärjestelmäYrityksen laatujärjestelmä
Laatujärjestelmä kertoo tavan, kuinka yrityksessä tehdään ohjelmistoja ja tuotteita
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
![Page 27: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/27.jpg)
27
LaadunvarmistustoimintaLaadunvarmistustoiminta
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.
![Page 28: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/28.jpg)
28
Muutoksen hintaMuutoksen hinta
1x
1,5-
6 X
60-
100X
Määrittely Kehitys Ylläpito
Muutoksen tekeminen eli esim. havaitunvirheen korjaaminen on sitä kalliimpaamitä myöhemmin muutos tehdään. Siksivirheiden löytämiseen pitäisi panostaakaikissa projektin vaiheissa!
![Page 29: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/29.jpg)
29
Tarkastukset ja katselmoinnit, Tarkastukset ja katselmoinnit, esimerkkiesimerkki
Haikala, Märijärvi: Ohjelmistotuotanto, 2000.
![Page 30: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/30.jpg)
30
Dokumentointi, esimerkkiDokumentointi, esimerkkiEsitutkimus Suunnittelu
Toteutus
Testaus
Määrittely
Alustava sopimus,alustava projektisuunnitelma,alustava toiminnallinen määrittely,alustava toteutussuunnittelu,alustava testaussuunnittelu,alustava tuotteenhallintasuunnitelma,alustava laatusuunnitelma,dokumentointisuunnitelma.
Tarkennettu sopimus, tarkennettu projektisuunnitelma,toiminnallinen määrittely,alustava tekninen määrittely,tarkennettu testaussuunnitelma (järjestelmä- ja hyväksymistestaus)tarkennettu tuotteenhallintasuunnitelma,tarkennettu laatusuunnitelma,alustava käyttöohje.
Tekninen määrittely,integrointitestaussuunnitelma,tarkennettu käyttöohje,alustava ylläpito-ohje,alustava operointi/huolto-ohje,alustava asennusohje.
Moduulisuunnitelmat,moduulitestaussuunnitelmat,moduulitestauspöytäkirjat,koodimoduulit,integrointitestaussuunnitelma,integrointitestauspöytäkirjat,integroitu ohjelmisto,tarkennettu ylläpito-ohje,tarkennettu operointi/huolto-ohje,tarkennettu asennusohje.
Järjestelmätestauspöytäkirjat,hyväksymistestauspöytäkirjat,paketointi-ohje,koulutusmateriaali,tuotedokumenttien viimeistellyt versiot
Haikala, Märijärvi: Ohjelmistotuotanto, 2000.
![Page 31: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/31.jpg)
31
TuotteenhallintaTuotteenhallintaTuotteenhallinta
Komponentit - Versiointi: mitä versioita on olemassa, miten vanhoihin versioihin päästään käsiksi... - Identifiointi: mikä komponentti tämä on, mitä ominaisuuksia sillä on, ... - Tuottaminen: millä työkalulla ja miten komponentti tuotetaan (esimerkiksi kääntäjän versio ja käännöskomento). - Muutosten hallinta: miten estetään samanaikainen muutosten teko komponenttiin, mitä muutoksia on tehty ...
Konfiguraatiot - Versiointi: mitä versioita on olemassa, miten vanhoihin versioihin päästään käsiksi (esimerkiksi tuottamalla ne uudelleen)... - Identifiointi: mikä konfiguraatio tämä on, mitä komponentteja ja komponenttien versioita on asiakkaan x järjestelmän tietyssä versiossa. - Tuottaminen: miten asiakkaan x konfiguraatio a.b.c saadaan rakennettua. - Muutosten hallinta: mihin komponentteihin ja niiden versioihin ehdotettu muutos vaikuttaa, mihin konfiguraatioihin muutos vaikuttaa ....
Toimintatavat - Vastuut ja toimintavaltuudet. - Miten vaihetuotteet siirtyvät vaiheesta toiseen. - Miten uudet versiot hyväksytään ja julkistetaan. - Miten muutosesitykset ja virheraportit tehdään ja käsitellään. - Miten arkistointi ja varmistuskopiointi hoidetaan. - ...
Haikala, Märijärvi: Ohjelmistotuotanto, 2000.
![Page 32: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/32.jpg)
32
Vaatimusten hallintaVaatimusten hallinta
moduuli a
moduuli e
moduuli f
moduuli d
moduuli c
moduuli b
Toiminto 2
Kelpuutetut
Alustavat asiakasvaatimukset
Toiminto 1
Myöhempään versioon
Hylätty
Analysoidut vaatimukset
1
5
2
4
3 678 Toiminto 3
2
2
5
1
Ohjelmisto- vaatimukset: Järjestelmän toiminnallinenmäärittely
Järjestelmäntekninen määrittely
Toteutettujärjestelmä
Vaatimustenhallinta: kartoitus, analysointi, jäljitettävyys, muutokset
Vaatimukset Hallitut muutokset
5
52
5
15
2
1
2 5
11
1 2
5
52
5
15
2
1
2 5
11
1 2
1 2
25
1
2
5
1
2
2
52
5
55
52
2
1
1
1
52
2
2
ominaisuus 2
ominaisuus 1
![Page 33: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/33.jpg)
33
Mitä siis asiantuntijan pitäisi Mitä siis asiantuntijan pitäisi osata?osata?
Yleinentekninen
osaaminen
Johtamis-taidot
Esiintymis- ja Neuvottelutaidot,Ryhmätyötaidot
Prosessi-osaaminen
Sovellusalueenasiantuntemus
Erityisalueen tekninen
osaaminen
![Page 34: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/34.jpg)
34
Tuotteen elinkaarikustannuksetTuotteen elinkaarikustannukset
![Page 35: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/35.jpg)
35
Arvoketju, esimerkkiArvoketju, esimerkki
![Page 36: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/36.jpg)
36
OhjelmistoprojektiOhjelmistoprojekti
EsitutkimusprojektiMäärittelyprojektiToteutusprojektiKäyttöönottoprojektiKoulutusprojektiNyrkkisääntö: projekti ei saisi kestää yli
vuotta
![Page 37: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/37.jpg)
37
ToimitusprojektiToimitusprojekti
Ylläpito
Käyttöön- otto-
projekti
Koulutus- projekti
asiakas
EsitutkimusTarjous- pyyntö
Alustava määrittely
Alustava määrittely- dokumentti
Tarjous
Esisopimus Projekti- suunnittelu
Sopimus
Projekti- suun- nitelma
Toteutus- projekti
Järjestelmä & dokumentit
asiakas
asiakas
Jälkiarviointi
Markki- nointi
![Page 38: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/38.jpg)
38
Ohjelmistoprojektin ongelmiaOhjelmistoprojektin ongelmia
epärealistiset aikataulut ja budjetit
vaatimusten muuttuminen projektin aikana
henkilöstöongelmat
sovellusalueen huono tuntemus
tekniikan huono tuntemus
työmääräarviot pettävät,
budjetit ylittyvät
asiakas ei tiedä mitä haluaa
![Page 39: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/39.jpg)
39
Onko järkevä tuotantoprosessi Onko järkevä tuotantoprosessi edes mahdollinen?edes 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ä
![Page 40: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/40.jpg)
40
Onko järkevä tuotantoprosessi Onko järkevä tuotantoprosessi mahdollinen?mahdollinen?
Ihminen takertuu aikaisemmin oppimiinsa ratkaisuihin, jolloin rationaalisesti perusteltavissa oleva ratkaisu jää huomaamatta
Aikaisemmin kirjoitettujen ohjelmien uudelleenkäyttö johtaa myös usein omituisiin ratkaisuihin
![Page 41: 010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta](https://reader036.fdocuments.net/reader036/viewer/2022081516/56814767550346895db4a59c/html5/thumbnails/41.jpg)
41
Kannattaako siis edes yrittää?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
eli suurissa projekteissa enemmän systemaattisuutta kuin pienissä