ohjelmistotekniikka johdanto

21
Ohjelmistotekniikka Ohjelmistotekniikka johdanto johdanto Kevät 2002 Päivi Ovaska LTKK/Tite .

Upload: quito

Post on 18-Mar-2016

42 views

Category:

Documents


3 download

DESCRIPTION

Ohjelmistotekniikka johdanto. Kevät 2002 Päivi Ovaska LTKK/Tite. Miksei vaan koodata?. Kerrostaloa ei voi rakentaa samoilla tiedoilla kuin koirankoppia. Vastaavasti kaupallisia ohjelmistoja ei voi tehdä pelkällä ohjelmointitaidolla. Ohjelmoijan ja ohjelmistotuottajan suhdetta voikin - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Ohjelmistotekniikka johdanto

OhjelmistotekniikkaOhjelmistotekniikkajohdantojohdanto

Kevät 2002Päivi OvaskaLTKK/Tite

.

Page 2: Ohjelmistotekniikka johdanto

Miksei vaan koodata?Miksei vaan koodata?Kerrostaloa ei voi rakentaa samoilla tiedoilla kuin koirankoppia.Vastaavasti kaupallisia ohjelmistoja ei voi tehdä pelkällä ohjelmointitaidolla. Ohjelmoijan ja ohjelmistotuottajan suhdetta voikin tietyssä mielessä verrata kirvesmiehen ja insinöörin suhteeseen

Page 3: Ohjelmistotekniikka johdanto

Ohjelmistotuotanto/ Ohjelmistotuotanto/ ohjelmistotekniikkaohjelmistotekniikka

•Ohjelmistotuotanto käsittää ohjelmistojen tuotantoprosessit, niiden hallitsemisen ja niissä käytettävät menetelmät. •Ohjelmistotuotanto etsii vastauksia sellaisiin kysymyksiin kuin •miten saan aikaiseksi asiakkaan tarpeiden mukaisen järjestelmän •kuinka tehdä luotettavasti toimiva järjestelmä •miten hallitsen monimutkaisen järjestelmän kehittämisen niin että järjestelmän eri osat toimivat saumattomasti yhdessä •kuinka järjestelmä onnistutaan tekemään sovitun aikataulun puitteissa •...

Page 4: Ohjelmistotekniikka johdanto

Ohjelmistotuotannon Ohjelmistotuotannon kasvunäkymätkasvunäkymät

TEKES / Suomen ohjelmistoteollisuuden kasvun strategia ja haasteet (1999):

Ohjelmistoala kasvaa kaikkialla maailmassa paljon nopeammin kuin talous keskimäärin

Ohjelmistoteollisuus kasvaa lähivuosina todennäköisesti yhdeksi Suomen teollisuusklustereista

Ohjelmistoteollisuuden liikevaihto vuonna 1998 oli Suomessa noin 10 miljardia markkaa ja alalla työskenteli noin 20'000 henkilöä; ohjelmistoalalla toimivia yrityksiä on Suomessa tuhansia

Henkilöstöpula on maailmanlaajuinen ilmiö ohjelmistoalalla Ohjelmistoyritykset toivovat saavansa puolet työvoimastaan yliopistotasolta

Page 5: Ohjelmistotekniikka johdanto

Ohjelmistotekniikan sovellusalueitaOhjelmistotekniikan sovellusalueita

Page 6: Ohjelmistotekniikka johdanto

Ohjelmistotuotannon Ohjelmistotuotannon standardit ja mallitstandardit ja mallit

Ohjelmistoprosessin arviointi ja parantaminen - Software Process Assesment and Improvement

SPICE - Software Process Improvement and Capability dEtermination SW-CMM - Capability Mature Model for Software Trillium

Ohjelmiston elinkaariprosessit - Software life-cycle processes ISO/IEC 12207 - Software life-cycle processes

Tuotelaatu - Software Product Quality ISO/IEC 9126 - Product quality

Page 7: Ohjelmistotekniikka johdanto

Ohjelmistotuotannon Ohjelmistotuotannon standardit ja mallitstandardit ja mallit

Laatujärjestelmä - Quality System ISO 9001 - Quality systems: Assurance of design/development, produ

ction, installation and servicing capability ISO 9000-3 - Guidelines for the application of ISO 9000 to the develo

pment, supply and maintenance of software MSQH - Modelling a Software Quality Handbook

Tietoturvallisuus - Security Techniques SSE-CCM - Systems Security Engineering CMM

Page 8: Ohjelmistotekniikka johdanto

Software -- ohjelmistoComputer programs, procedures, rules, documentation, and data pertaining to the operation of a computer system.

Software Engineering – Ohjelmistotuotanto, ohjelmistotekniikka“The art of producing high quality software - in schedule and - in budged.”

“The application of a systematic; disciplined, quantifiable approach to the development, operation, and maintenance of software [IEE 610.12]

Vapaa tulkinta:Ohjelmistotuotanto – ohjelmistotyö, jonka tuloksena syntyvät järjestelmät täyttävät käyttäjiensä kohtuulliset toiveet ja odotukset ja tämän lisäksi valmistuvat laadittujen aikataulujen ja kustannusarvioiden puitteissa

MääritelmiäMääritelmiä

Page 9: Ohjelmistotekniikka johdanto

OhjelmistotyyppejäOhjelmistotyyppejä

Varus- ja työkaluohjelmistot Teknis-tieteelliset laskentaohjelmistot Tietämyspohjaiset järjestelmät Kaupallis-hallinnolliset järjestelmät Prosessinohjaus- ja prosessiautomaatiojärjestelmät Sulautetetut järjestelmät WWW-pohjaiset ohjelmistot Reaaliaikajärjestelmät, reaktiiviset järjestelmät

Page 10: Ohjelmistotekniikka johdanto

Ohjelmistoa kuvaavat Ohjelmistoa kuvaavat ominaisuudetominaisuudet

Ohjelmiston koko ja käsiteltävän tiedon määrä

Vasteaika- ja reaaliaikaisuusvaatimuksetLuotettavuusHajautusTuotteistusaste

Page 11: Ohjelmistotekniikka johdanto

EsimerkkijärjestelmiäEsimerkkijärjestelmiäominaisuus

sovellus

koko tietokannan koko

vasteaika hajautus luotettavuus tuotteistus-aste

matkapuhelinkeskus

ROM-muistin koko 1MB

- kovia reaaliaikaisuusvaatimuksia

hajautettu moniprosessorijärjestelmä

kahdennettuja komponentteja

tuote, asiakaskohtaisia piirteitä

televisiovastaanotin

ROM-muistin koko 1 MB

- kovia reaaliaikaisuusvaatimuksia

2 prosessoria, useita signaaliprosessoreita

massa-tuote

suurehko hissijärjestelmä

50 000 koodiriviä - kovia reaaliaikaisuusvaatimuksia

hajautettu, CAN-väylä

virhetoiminnot estetty erillisellä elektroniikalla

tuotteistettu,konfiguroitava ko. rakennukseen

vakuutusten hoitojärjestelmä

300 000 koodiriviä, 100 näyttöä

100 relaatiotietokannan taulua

vasteaika alle sekunnin

keskitetty järjestelmä, satojen päätteiden verkko

käyttökatkokset haittaavat asiakaspalvelua

räätälöity

Page 12: Ohjelmistotekniikka johdanto

Prosessi- ja tuotantoautomaatio

Tuotteiden suunnittelu, operatiiviset järjestelmät,

tuotannonohjaus, materiaalihallinto,

logistiikka

Taloushallinto

Johdon tietojärjestelmät,

päätöksenteon tuki

Markkinointi

Tietotekniikka tuotteissa

Infrastuktuuri: tietoliikenne, toimistoautomaatio, ryhmätyö, asianhallinta, palvelimet...

Yrityksen tietovarastot

Yrityksen tietotekniikkaYrityksen tietotekniikka

Page 13: Ohjelmistotekniikka johdanto

Yrityksen kilpailutilanneYrityksen kilpailutilanne

3

Kuva 1.3

Liiketoimintaympäristö

Liikeidea

Strategia, kilpailutekijät

Tietohallinto- strategia

AsiakkaatKilpailijat

T ietotekniikan kehitys

Oma liiketoiminta

Oma tietojärjestelmätoiminta

Tietohallinto

Kehit tämis- hankkeet

Projektit

Page 14: Ohjelmistotekniikka johdanto

Ohjelmistotuotannon ongelmiaOhjelmistotuotannon ongelmia

4

Kuva 1.4

Page 15: Ohjelmistotekniikka johdanto

Ohjelmistotuotannon ongelmiaOhjelmistotuotannon ongelmiakorkeat kustannuksettyömäärät ja aikataulut arvioitu väärin (yli

puolet ohjelmistoprojekteista myöhästyy)ohjelmistotuonnon ongelmat näyttävät

pääasiassa liittyvän itse tuotantoprosessiin eikä uusiin menetelmiin tai tekniikoihin

alan tutkimus tulisi kohdistaa tuotantoprosessiin

Page 16: Ohjelmistotekniikka johdanto

Ohjelmistotekniikan Ohjelmistotekniikan kehittyminen kehittyminen

kansanperinteestä tieteeksikansanperinteestä tieteeksi

5

Kuva 1.5

ad hoc-menetelmät

kansan-perinne

kiteyty-minen

mallit,teoriat

soveltaminenkäytäntöön

uudetongelmat

koulutus jatutkimus

[Shaw 1990]

Page 17: Ohjelmistotekniikka johdanto

””There is no Silver Bullet”There is no Silver Bullet”Frederic BrooksOhjelmistojen

– monimutkaisuus– näkymättömyys– muunnettavuus– ainutkertaisuus– menetelmien skaalautumattomuus– epäjatkuvuus

Page 18: Ohjelmistotekniikka johdanto

Kannattaako edes yrittää?Kannattaako edes yrittää?

”Parhaiten onnistuvat ne, jotka eivät luota liikaa viimeisimpiin poppakonsteihin, mutta ovat silti valmiita itse kokeilemaan uusia ideoita, vaikka ne esitettäisiinkin karnevaalihumussa mainosmiesten pötypuheiden seassa” [Weinberg 1982]

Mikään ei korvaa ratkaistavan ongelman perusteellista ymmärtämistä- joskus voi tosin käydä hyvä tuuri

Mikään ratkaisu ei sovellu kaikkiin tehtäviin ja johonkin tilanteeseen parhaiten soveltuva lähestymistapa voi olla toisessa tilanteessa kaikista huonoin

Page 19: Ohjelmistotekniikka johdanto

Onnistumisen teesejäOnnistumisen teesejä

On olemassa monia hyödyllisiä lähestymistapoja, jotka toimivat useammassa kuin yhdessä tilanteessa, joten kannattaa tutustua sellaiseen mikä on toiminut aikaisemmin

Ongelman ratkaisun niksi ei ole pelkästään miten menetelmiä sovelletaan (know-how) vaan mieluummin milloin niitä sovelletaan (know-when)- tämä antaa mahdollisuuden sovittaa ratkaisumenetelmä ongelmaan eikä päinvastoin

Page 20: Ohjelmistotekniikka johdanto

Onnistumisen teesejäOnnistumisen teesejä

Riippumatta siitä, kuinka hyvin taidat miten ja milloin, on olemassa ongelmia, jotka ovat

nykytietämyksellä mahdottomia ratkaista tai joiden perimmäisiä ominaisuuksia kukaan ei ymmärrä riittävän hyvin: nöyryys on siis aina paikallaan

Page 21: Ohjelmistotekniikka johdanto

Virhekustannusten Virhekustannusten väheneminen eräässä väheneminen eräässä ohjelmistoyrityksessäohjelmistoyrityksessä

6

K u v a 1 . 6

1 9 8 7 1 9 8 8 1 9 8 9 1 9 9 0 1 9 9 1 1 9 9 2

1 0 %

2 0 %

3 0 %

4 0 %

5 0 % v ir h e -

h a n k k e e n

e ts i m i s k u s ta n n u k s e t

e s tä m i s k u s ta n n u k s e t

$ 1 5 . 8 M s ä ä s t ö

k u s t a n n u k s e t

k ä y n n i s ty s