1 / 28

Ohjelmistotuotanto Johdanto

Ohjelmistotuotanto Johdanto. Kevät 2005 Jani Vaara LTY/Tite. Sisältö. Mitä on ohjelmistotuotanto? Ohjelmistotyyppejä Yrityksen tietotekniikka Ongelmia. Miksei vain koodata?. Kerrostaloa ei voi rakentaa samoilla tiedoilla kuin koirankoppia.

Download Presentation

Ohjelmistotuotanto Johdanto

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ohjelmistotuotanto Johdanto Kevät 2005 Jani Vaara LTY/Tite

  2. Sisältö • Mitä on ohjelmistotuotanto? • Ohjelmistotyyppejä • Yrityksen tietotekniikka • Ongelmia

  3. Miksei vain 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

  4. Mitä on ohjelmistotuotanto? • Ohjelmistotuotanto käsittää ohjelmistojen tuotantoprosessit, niiden hallitsemisen ja niissä käytettävät menetelmät, eli • tavat, kuinka ohjelmistoja tuotetaan • kuinka tuotantoprosessia hallitaan niin, että lopputuotos on sellainen kuin haluttiin • millä menetelmillä lopputulos saavutetaan

  5. Tyypillisiä kysymyksiä • Miten saan aikaiseksi asiakkaan tarpeet täyttävän ohjelmiston? • Kuinka teen luotettavasti toimivan järjestelmän? • Kuinka suunnittelen ohjelmiston niin, että eri osat toimivat saumattomasti yhteen? • Kuinka saan tehtyä ohjelmiston sovitun aikataulun puitteissa • jne…

  6. Ohjelmistotuotannon sovellusalueita Lähde: Haikala, Märijärvi: Ohjelmistotuotanto, 2000.

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

  8. Ohjelmistotuotannon kasvunä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

  9. Ohjelmistotuotannon osa-alueita Haikala, Märijärvi: Ohjelmistotuotanto, 2000.

  10. Standardeja ja malleja 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

  11. Standardeja ja malleja Laatujärjestelmä - Quality System • ISO 9001 - Quality systems: Assurance of design/development, production, installation and servicing capability • ISO 9000-3 - Guidelines for the application of ISO 9000 to the development, supply and maintenance of software • MSQH - Modelling a Software Quality Handbook Tietoturvallisuus - Security Techniques • SSE-CCM - Systems Security Engineering CMM

  12. Määritelmiä 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 thedevelopment, 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

  13. Ohjelmistoa kuvaavat ominaisuudet • Ohjelmiston koko ja käsiteltävän tiedon määrä • Vasteaika- ja reaaliaikaisuusvaatimukset • Luotettavuus • Hajautus • Tuotteistusaste

  14. Esimerkkijärjestelmiä

  15. Yrityksen tietotekniikka Haikala, Märijärvi: Ohjelmistotuotanto, 2000.

  16. Oma liiketoiminta Liiketoimintaympäristö Oma tietojärjestelmätoiminta Liikeidea Asiakkaat Kehittämis- Kilpailijat hankkeet Projektit Tietotekniikan Strategia, kehitys kilpailutekijät Tietohallinto Tietohallinto- strategia Yrityksen kilpailutilanne Haikala, Märijärvi: Ohjelmistotuotanto, 2000.

  17. Ohjelmistotuotannon kehitys • Alkusysäyksen ohjelmistotuotannon systemaattiselle kehitykselle antoi nk. Software crisis. • Ohjelmistokriisin nosti esille NASA, jossa kehitettiin 60- ja 70-luvulla monimutkaisia ohjelmistoja ja havaittiin tarve järjestelmälliselle ohjelmistotuotannolle.

  18. Ohjelmistotuotannon kehitys • Programming in the small (60-luku) – yksi toteuttaja, pienet ohjelmat, teknisiä ongelmia • Programming in the large (70-luku) – muutamia toteuttajia, järjestelmien rakentamista • Programming in the huge (80-luvulta ->) – jopa tuhansia toteuttajia, projektit vuosien pituisia, järjestelmät vahvasti hajautettuja ja heterogeenisia, vahvasti kytkeytyneitä muihin järjestelmiin, elinkaaret yli 10 vuoden pituisia.

  19. Ohjelmistokriisi • Ohjelmistokriisi on sittemmin muodostunut pysyväksi tilaksi. Teknologioiden ja menetelmien kehittymisestä huolimatta: • Jokaista käyttöön asti päättyvää kolmea suurta järjestelmää kohti yksi epäonnistuu. • kolme neljästä suuresta käyttöön asti päätyvästä järjestelmästä luokitellaan epäonnistuneeksi, koska ne eivät vastaa aiottua.

  20. Ohjelmistokriisi • Noin puolet ohjelmistokehityshankkeista ylittää aikataulunsa tai budjettinsa yli 50 prosentilla tai/ja kärsii vakavista laatuongelmista. • Ohjelmistotuotannon ongelmien odotetaan pahenevan ennemmin kuin helpottuvan – ohjelmistokriisi syvennee.

  21. Ohjelmistotuotannon ongelmia

  22. Ohjelmistotuotannon ongelmia • korkeat kustannukset • työmäärät ja aikataulut arvioitu väärin (yli puolet ohjelmistoprojekteista myöhästyy) • ohjelmistotuotannon ongelmat näyttävät pääasiassa liittyvän itse tuotantoprosessiin eikä uusiin menetelmiin tai tekniikoihin • alan tutkimus tulisi kohdistaa tuotantoprosessiin

  23. Kansanperinteestä tieteeksi [Shaw 1990]

  24. Ohjelmistojen erityspiirteitä • monimutkaisuus • näkymättömyys • muunnettavuus • ainutkertaisuus • menetelmien skaalautumattomuus • epäjatkuvuus

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

  26. Avainasioita onnistumisen takaamiseksi • Jatkuva toiminnan kehittäminen, jatkuva parantamisen tarve • Laatujärjestelmät • Henkilöstön osaamisen kehittäminen • Laadun parantaminen

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

  28. 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 usein paikallaan • ”Make everything as simple as possible, but not simpler” – Albert Einstein

More Related