ohjelmistotekniikka johdanto
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 PresentationTRANSCRIPT
OhjelmistotekniikkaOhjelmistotekniikkajohdantojohdanto
Kevät 2002Päivi OvaskaLTKK/Tite
.
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
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 •...
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
Ohjelmistotekniikan sovellusalueitaOhjelmistotekniikan sovellusalueita
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
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
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ä
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
Ohjelmistoa kuvaavat Ohjelmistoa kuvaavat ominaisuudetominaisuudet
Ohjelmiston koko ja käsiteltävän tiedon määrä
Vasteaika- ja reaaliaikaisuusvaatimuksetLuotettavuusHajautusTuotteistusaste
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
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
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
Ohjelmistotuotannon ongelmiaOhjelmistotuotannon ongelmia
4
Kuva 1.4
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
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]
””There is no Silver Bullet”There is no Silver Bullet”Frederic BrooksOhjelmistojen
– monimutkaisuus– näkymättömyys– muunnettavuus– ainutkertaisuus– menetelmien skaalautumattomuus– epäjatkuvuus
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
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
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
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