Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

1. Ohjelmistotekniikka - Software Engineering

Samankaltaiset esitykset


Esitys aiheesta: "1. Ohjelmistotekniikka - Software Engineering"— Esityksen transkriptio:

1 1. Ohjelmistotekniikka - Software Engineering
Yleistä Ohjelmistotekniikan sovellukset luvulta Viimeiset 20 v: Sulautetut järjestelmät : bensamittarit, puhelin, pesukone Laitteiden ohjaus: metsäkone, paperikone, pullonpalautusautomaatti 1. Ohjelmistotekniikka - Software Engineering

2 1. Ohjelmistotekniikka - Software Engineering
Määritelmiä Software Engineering Ohjelmistotekniikka, 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 aikataulujensa ja kustannusarvioidensa puitteissa.” Käsittää Ohjelmiston tuotantoprosessin osa-alueet: laatujärjestelmä, projektinhallinta, dokumentointi, tuotteenhallinta, laadunvarmistus, testaus, määrittely, suunnittelu, toteutus, käyttöönotto ja ylläpito 1. Ohjelmistotekniikka - Software Engineering

3 1. Ohjelmistotekniikka - Software Engineering
Sovellusalueita Ohjelmistotekniikalla ei erityistä, omaa sovellusaluetta Ohjelmistotyypit Varus- ja työkaluohjelmistot (system software, software tools) Teknis- tieteelliseen laskentaan tarkoitetut ohjelmistot (Engineering and scientific software) Tietämyspohjaiset järjestelmät (knowledge-based system) Kaupallis-hallinnolliset ohjelmistot (business software) Prosessiohjaus- ja prosessiautomaatiojärjestelmät (process control system, process automation system) Sulautettu järjestelmä (embedded system) Reaaliaikajärjestelmä (real-time system) Prosessinohjaus- ja sulautetut järjestelmät Reaktiivinen järjestelmä Vuorovaikutus ympäristöön Esim. prosessiautomaatiojärjestelmät; auton vakionopeuden säädin 1. Ohjelmistotekniikka - Software Engineering

4 Ohjelmiston ominaisuuksia
Ohjelmiston koko ja käsiteltävän tiedon määrä Tavuina, ohjelmariveinä Sähkömittari: muutama tuhat riviä Avaruussukkula: kymmeniä miljoonia rivejä Toimintoina/näyttöine Esim. varastonvalvontasovellus: muutamia kymmeniä toimintoja ja näyttöjä Tietokannan koko ja monimutkaisuus Vasteaika- ja reaaliaikaisuusvaatimukset Ohjelmiston kyky reagoida ympäristön ärsykkeisiin 1. Ohjelmistotekniikka - Software Engineering

5 Ohjelmiston ominaisuuksia
Luotettavuus Suojautumista sekä ohjelmiston virheitä (puolustautuva ohjelmointi, defencive programming; elektroniikkatason, mekaniikkatason varmistukset) että laitteiston ja ympäristön häiriöitä vastaan (osien moninkertaistus, toipumismenettelyt ) Hajautus Työasemaverkko Sulautettu järjestelmät: hissi Tuotteistusaste Räätälöinti   tuotteistus, tuotekehitys   massatuote 1. Ohjelmistotekniikka - Software Engineering

6 Esimerkkijärjestelmiä (kuv.)
Omin./ Sovellus Koko Tietokannan koko Vasteaika, reaalisuus Hajautus Luotettavuus Tuotteistus-aste GSM ROM 1MB - Suuri 2 väylällä yhdistettyä prosessoria Massa-tuote Matka-puhelin keskus 15M koodi-riviä Useita tieto-kantoja, kymmeniä Mb Paikoitellen suuri Hajautettu moniproses-sori järjestelmä Kahden-nettuja komponent-teja Tuotteis-tettu, asiakaskoh-taisia piirteitä Televisio 2 pross., useita sig-naaliproses-soreita massatuote Vakuutus-järjes-telmä koodir., 100 näyttöä 100 relaatio-tietokan-nan taulua < 1 s Keskitetty, satoja päätteitä Käyttökatkok-set haittaavat asiakaspal-velua räätälöity 1. Ohjelmistotekniikka - Software Engineering

7 Yrityksen tietotekniikka
Tietojärjestelmiä voi olla useita kymmeniä Syntyneet pitkän aikavälin kuluessa kirjavuus, tiedonsiirto järjestelmien välillä hankalaa Integrointi Liiketoimintanäkökulmasta Avainprosessien kehittäminen tietojärjestelmien ja tietotekniikan avulla (liiketoimintaa tukevat kehityshankkeet  projektit) Tietohallintostrategia Tietohallinto (osasto, organisaatioyksikkö) 1. Ohjelmistotekniikka - Software Engineering

8 Tietojärjestelmien roolit toimintayksikössä
Tuotannonohjaus-järjestelmät Prosessinohjaus-järjestelmät Sulautetut järjestelmät Päätöksentuki-järjestelmät Toimistoautomaatio-järjestelmät TOIMINTAYKSIKKÖ OHJAUSTOIMINNOT SUORITTAVA TOIMINTA PERUSTOIMINNOT Taloushallinnon järjestelmät Henkilöstöhallinnon järjestelmät Toimistoautomaatio-järjestelmät TUKITOIMINNOT 1. Ohjelmistotekniikka - Software Engineering

9 1. Ohjelmistotekniikka - Software Engineering
Tietojärjestelmä Tietojärjestelmä käyttäjät, ohjelmistot, laitteistot ja tietovarastot, jotka tarvitaan jonkin tietojenkäsittelytehtävän suorittamiseksi tehostaa tai järkeistää tietojenkäsittelypalvelun tuottaja tyydyttää tietotarpeen Liiketoiminta Tietojenkäsittelytehtävät Tietojärjestelmä hyväksikäyttö 1. Ohjelmistotekniikka - Software Engineering

10 1. Ohjelmistotekniikka - Software Engineering
Palvelun tuottaminen tietotarve Tietojärjestelmä 1 Tietojärjestelmä 2 Tietojärjestelmä 3 Palvelu 1.1 Palvelu 1.2 Palvelu 2.1 Palvelu 3.1 1. Ohjelmistotekniikka - Software Engineering

11 Tietojenkäsittelyn kehittäminen
Tietojenkäsittelyn kehittämisen osa-alueet laitteistot ja verkot perusedellytys sovellusratkaisut hallitaan olemassa olevia laitteita ja tietoverkkoa sekä ohjataan yrityksen liiketoimintaprosesseja laitteet ja tietoverkkoratkaisut sekä sovellukset muodostavat luotettavan, yhteensopivan ja helposti ylläpidettävän perusrakenteen osaaminen laitteiden ja sovellusten tehokkaan käytön edellytys toimintatavat yhtenäiset ja järkeistetyt toimintatavat tukevat laitteiden ja sovellusten hyötykäyttöä ja tiedonkulkua työntekijöiden välillä 1. Ohjelmistotekniikka - Software Engineering

12 Tietojenkäsittelyn kehittäminen
Tietojenkäsittelyn kehittäminen on siis tietojärjestelmien kehittämistä (information systems development, ISD) olemassa olevien tai uusien tietojärjestelmien kehittämistä ja laatimista asetettujen tavoitteiden mukaisesti rinnakkaistermi: systeemityö ja toiminnan sekä osaamisen kehittämistä kokonaisvaltaisesti ja suunnitelmallisesti ottaen huomioon liiketoiminnan tavoitteet 1. Ohjelmistotekniikka - Software Engineering

13 Tietojenkäsittelyn kehittäminen
Tietojenkäsittelyn kehittämisessä on otettava huomioon seuraavia kysymyksiä: Mikä on kehittämisen tavoite? Mitä tuloksia halutaan ja millä aikajaksolla tulosten on toteuduttava? Miten suurta osaa henkilöstöstä kehittämisen tulokset koskevat? Paljonko tarvitaan taloudellisia resursseja ja henkilöresursseja? Miten paljon voidaan hyödyntää yrityksen omaa osaamista ja missä määrin tarvitaan ulkopuolista osaamista? Miten tietojenkäsittelyn kehittämisprojekti ja sen aiheuttama muutos hallitaan? 1. Ohjelmistotekniikka - Software Engineering

14 1. Ohjelmistotekniikka - Software Engineering
Kehittämisprosessi KEHITYSRYHMÄ asettaa TAVOITTEET ovat ominaisuuksia havainnoi suorittaa ohjaa KOHDE- JÄRJESTELMÄ KOHDE- JÄRJESTELMÄ muutosprosessi YMPÄRISTÖ 1. Ohjelmistotekniikka - Software Engineering

15 Kehittämistyön luonne on muuttunut
40-50 luvulla laskennalliset sovellukset ohjelmistojen kehittäjät olivat itse käyttäjiä 60-luvulla kehittäjän ja käyttäjän roolien erkaneminen suurempia ohjelmistohankkeita integrointi tietoliikenneratkaisut 70-80 luvulla pc:n myötä henkilökohtaiset tietojärjestelmät käyttäjien osallistumien kehittämistyöhön toimintokeskeiset ohjelmistot (varasto, tilaustenkäsittely) 90-luvulla Windows-aikakausi useat yhtäaikaiset sovellukset työpöydällä 2000-luvolla asiakaslähtöisyys, ryhmätyö laajat, monimutkaiset integroidut tietojärjestelmät ERP 1. Ohjelmistotekniikka - Software Engineering

16 Ohjelmistotuotannon ongelmia
Alan teknologian nopea kasvu  ohjelmistotuotteiden koko on kasvanut kaksinkertaiseksi muutaman vuoden välein Ohjelmistotuotteet ovat monimutkaisia ja laajoja Ohjelmistotuotteet eivät ole virheettömiä virheet ja puutteet ohjelman toiminnassa ei vastaa asiakkaan tarpeita ei voida muusta syystä ottaa käyttöön (yhteensopimattomuus, koulutus,…) Hankkeet ovat kalliita ja joskus myös epäonnistuvat aikataulu, talous, henkilöresurssit tekniset ongelmat vs. projektinhallintaan liittyvät ongelmat kommunikointi, ryhmätyön organisointi Toteuttamistyön arviointi hankalaa yli puolet ohjelmistohankkeista myöhästyy ja ylittää kustannuksensa systeemityön tuottavuus ja kustannukset monimutkaisempi ohjelmistotuote vaatii kalliimman kehittämisprosessin, mutta ei ole samassa suhteessa tuottava ylläpito ”mitä aikaisemmin kehitystyössä virhe on tapahtunut, sitä kalliimpi on sen korjaus” vanhat ns. perinnejärjestelmät (legacy systems) 1. Ohjelmistotekniikka - Software Engineering

17 1. Ohjelmistotekniikka - Software Engineering
Ongelmien hallinta 1960- luvulla alettiin kiinnittää ongelmiin huomiota (ohjelmistokriisi) menetelmiä ja tekniikoita kehitellään  eivät toisin ratkaise itse ongelmaa (tuotantoprosessi) ohjelmistoprosessin hallinta (software process) = kokonaisuus, jolla ohjataan tietojärjestelmän kehittämistä ideasta ohjelmasta luopumiseen saakka; kattaa koko elinkaaren vuorovaikutuksessa ympäristön kanssa (laatujärjestelmä, projektien hallinta, liiketoiminta, johtaminen, yms. vaikuttavat) organisaation systeemityön kypsyysaste mitä tarkemmin määritelty, noudatettu, toistettavissa oleva, optimoitu ja hyväksytty ohjelmistoprosessi on, sitä korkeammalla kypsyystasolla (maturity) organisaatio on ks. 1. Ohjelmistotekniikka - Software Engineering

18 Haasteita menetelmäkehitykselle
Alan kehittymättömyys  ei ole olemassa yksiselitteistä suunnittelumenetelmää Kehitysmenetelmien kehittely vasta käynnissä Järjestelmä ”keinolla millä tahansa, ad hoc” Löytyy useimmassa tilanteessa sopiva ratkaisu Ratkaisu muotoutuu yleisesti käytettäväksi menetelmäksi Menetelmät hioutuvat järjestelmällisiksi, tukevat malleja ja teorioita, voidaan kuvata formaalisti Löytyy uusia sovellusalueita, joihin mallit eivät sovi  alkaa uuden mallin kehittely (palataan kohtaan 1) 1. Ohjelmistotekniikka - Software Engineering

19 Haasteita menetelmäkehitykselle
Ohjelmistotuotanto eroaa muista perinteisistä ns. insinööritieteistä Monimutkaisuus Monimutkaisuuden minimointi, rajapintojen yksinkertaisuus Näkymättömyys Valmiusasteen määrittely ongelmallista  vaiheistus Muunnettavuus Vaatimusten muuttuminen, virheiden korjaamisesta aiheutuvat muutokset, toimintaympäristön muutokset  ylläpideetävyys Ainutkertaisuus skaalautumattomuus Epäjatkuvuus Pienikin virhe voi kaataa koko järjestelmän 1. Ohjelmistotekniikka - Software Engineering

20 Ohjelmistokehittäjän ”huoneentaulu”
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. On olemassa monia hyödyllisiä lähestymistapoja, jotka toimivat useammassa kuin yhdessä tilanteessa, joten kannattaa tutustua sellaiseen mikä on toiminut aikaisemmin. 1. Ohjelmistotekniikka - Software Engineering

21 ”huoneentaulu” jatkuu…
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. Riippumatta siitä, kuinka hyvin taidat edellisen kohdan ”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 paikallaan 1. Ohjelmistotekniikka - Software Engineering

22 Kannattaako siis edes yrittää?
Poppakonsteja ei ole olemassa Systemaattisella ja määrätietoisella toimintatapojen kehittämisellä voidaan päästä hyviin tuloksiin Keskeistä on Tunnistaa ongelmat Tunnistaa ohjelmistotyön osa-alueet Ymmärtää ohjelmistotuotanto prosessina Ymmärtää terminologia – yhteinen kieli Menetelmien osaaminen voi olla hyödyksi vasta kun on ymmärrys, mihin niitä voi käyttää. 1. Ohjelmistotekniikka - Software Engineering


Lataa ppt "1. Ohjelmistotekniikka - Software Engineering"

Samankaltaiset esitykset


Iklan oleh Google