010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta

Post on 14-Jan-2016

54 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

010758000 Ohjelmistotekniikka - Yleiskuva ohjelmistotuotannosta. Kevät 2003 Hanna-Kaisa Lammi LTKK/Tite. Sisältö. Ohjelmiston elinkaari Ohjelmistokehityksen vaihejakomalleja Ohjelmistokehityksen tukitoimintoja Ohjelmiston elinkaarikustannuksista. Ohjelmistotuotannon osa-alueita. - PowerPoint PPT Presentation

Transcript

1

010758000 Ohjelmistotekniikka010758000 Ohjelmistotekniikka- -

Yleiskuva Yleiskuva ohjelmistotuotannostaohjelmistotuotannosta

Kevät 2003Hanna-Kaisa LammiLTKK/Tite

.

2

SisältöSisältö

Ohjelmiston elinkaariOhjelmistokehityksen vaihejakomallejaOhjelmistokehityksen tukitoimintojaOhjelmiston elinkaarikustannuksista

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.

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?

5

Ohjelmiston elinkaariOhjelmiston elinkaari

Tuote versio 1 Tuote versio 2 Tuote versio N…

Tuotteen / ohjelmiston ylläpito

Tuotteen / ohjelmiston kehitys

TUOTTEEN / OHJELMISTON ELINKAARI

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.

7

Vaatimusten kertyminenVaatimusten kertyminen

Esitutkimus: asiakasvaatimukset

Järjestelmä- suunnittelu:

järjestelmävaatimukset

Ohjelmiston määrittely: ohjelmisto- vaatimukset

Laitteiston määrittely: laitteistovaatimukset

8

Vaatimuksesta tuotteeksiVaatimuksesta tuotteeksi

Määrittely

Suunnittelu&toteutus

ohjelmistovaatimukset

asiakasvaatimukset

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.

10

VaihejakomallejaVaihejakomalleja

vesiputousmalli (waterfall model)evoluutiomalli (evolutionary models)protoilumallit (prototyping models)spiraalimalli (spiral model)

Näistä kolme viimeistä mallia ovat iteratiivisia.

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ä.

12

Käytetään, kun heti alussa ei tarkasti tiedetä mitä halutaan.Vaatimukset tarkentuvat joka kierroksella: riski pienenee.

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.

14

15

Esimerkki spiraalimallistaEsimerkki spiraalimallista

Tuotekonseptin-kehitysprojekti

Uuden tuotteenkehitysprojekti

Tuotteen kehitys-projekti

Tuotteen ylläpito-projekti

= Projektin aloituspiste

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

17

RUP-iteraation vaiheetRUP-iteraation vaiheet

Iteration

Requirements Analysis DesignImplemen-

tationTest

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

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.

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

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

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!

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ä.

24

Tarvittavat tukitoiminnotTarvittavat tukitoiminnot

LaadunvarmistusDokumentointiTuotteenhallintaVaatimustenhallinta…

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

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

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.

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!

29

Tarkastukset ja katselmoinnit, Tarkastukset ja katselmoinnit, esimerkkiesimerkki

Haikala, Märijärvi: Ohjelmistotuotanto, 2000.

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.

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.

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

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

34

Tuotteen elinkaarikustannuksetTuotteen elinkaarikustannukset

35

Arvoketju, esimerkkiArvoketju, esimerkki

36

OhjelmistoprojektiOhjelmistoprojekti

EsitutkimusprojektiMäärittelyprojektiToteutusprojektiKäyttöönottoprojektiKoulutusprojektiNyrkkisääntö: projekti ei saisi kestää yli

vuotta

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

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

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ä

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

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ä

top related