Johdatus ohjelmistotekniikkaan siitä se lähtee

Samankaltaiset tiedostot
Johdatus(ta) ohjelmistotekniikkaan 2006

Johdatus(ta) ohjelmistotekniikkaan 2005

TIETOTEKNIIKKA Koodi Vanha opintojakso op ov Vastuuhenkilö LV vastaavat opinnot tai korvaava suoritustapa TTE.

Myös opettajaksi aikova voi suorittaa LuK-tutkinnon, mutta sillä ei saa opettajan kelpoisuutta.

Johdatus(ta) ohjelmistotekniikkaan 2009

Tietoyhteiskunnan perustaidot. Kesäkuu 2014

Johdantoluento. Ohjelmien ylläpito

Opettajatuutorointi-kurssin syksyn 2006 kyselyjen tulokset

Laaja-alainen, opiskelijalähtöinen ja projektiperusteinen opetussuunnitelma, case Monitori

Organisaatio- a ja yhteiskuntaosaaminen. - ja vuorovaikutusosaaminen istoiminnan osaaminen toimintaosaaminen. Kansainvälisyysosaaminenn

Tarvitseeko informaatioteknologia matematiikkaa?

Johdatus ohjelmointiin C-kielellä P Ohjelmoinnin perusteet C-kielellä A Ohjelmointityö

Visualisointi informaatio- verkostojen opinto-oppaasta Informaatioverkostojen kilta Athene ry Opintovastaava Janne Käki 19.9.

Ohjelmistotekniikka - Luento 2

O P I N T O S U O R I T U S O T E

Tietojärjestelmätieteen ohjelmat

Computing Curricula raportin vertailu kolmeen suomalaiseen koulutusohjelmaan

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Tietotekniikan Sovellusprojektit

HOPS Henkilökohtainen opintosuunnitelma LuK -tutkintoon

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

Tietojenkäsittelytieteen tutkintovaatimukset

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Johdanto. Mitä on ohjelmistotuotanto? Tämän kurssin näkökulma. Sami Kollanus TJTA330 Ohjelmistotuotanto

Mitä on ohjelmistotuotanto?

Tutkintovaatimukset suoraan DI-vaiheeseen valituille

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

Ohjelmistotekniikan menetelmät, kesä 2008

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Visualisointi informaatioverkostojen Opintoneuvoja Teemu Meronen (päivitys Janne Käen visualisoinnin pohjalta)

Tärkeää huomioitavaa:

Menetelmätieteiden opintokokonaisuudessa on kaikissa tapauksissa oltava vähintään 10 op matematiikkaa ja vähintään 10 op tilastotiedettä.

Opintojen mallipolut

Tilanne sekä MS-A0003/4* Matriisilaskenta 5 op

Järjestelmäarkkitehtuuri (TK081702) Yritysarkkitehtuuri. Muutostarpeet

Mitä on ohjelmistotuotanto? Johdanto. Tämän kurssin näkökulma. Kurssin suhde muuhun opetukseen

Visualisointi informaatioverkostojen Opintoneuvoja Janne Käki

Tietotekniikka koulutus- ja tieteenalana. Tommi Kärkkäinen

Tietojenkäsittelytieteiden koulutusohjelma. Tietojenkäsittelytieteiden laitos Department of Information Processing Science

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

Visualisointi informaatio- verkostojen opinto-oppaasta Opintoneuvoja Teemu Meronen (päivitys Janne Käen visualisoinnin pohjalta)

Visualisointi informaatioverkostojen Opintoneuvoja Pekka Siika-aho (päivitys mm. Janne Käen visualisoinnin pohjalta)

Tutkintovaatimukset suoraan DI-vaiheeseen valituille

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

CS35A0011 Johdatus tietojohtamiseen ja informaatioverkostoihin 6

Ohjelmistojen mallintaminen, kesä 2009

ITK130 Johdatus ohjelmistotekniikkaan

Ohjelmistojen mallinnus, s2008 HY/TKTL, 28/10/2008. Harri Laine 1. Ohjelmisto

Käyttäjäkeskeisen suunnittelun periaatteet ja prosessit

Ohjelmistotekniikan menetelmät, kevät 2008

Matematiikka ja tilastotiede. Orientoivat opinnot /

Käytettävyyslaatumallin rakentaminen web-sivustolle. Oulun yliopisto tietojenkäsittelytieteiden laitos pro gradu -suunnitelma Timo Laapotti 28.9.

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

Korvataan uuden ohjelman opintojaksolla. Suorittamatta jäänyt YPATperuskurssi. tutkinto-ohjelman peruskurssilla, á 5 op

Integrointi. Ohjelmistotekniikka kevät 2003

Mediatekniikka aikuiskoulutus. (Liitteeksi kopiot korvaavuuksien / hyväksilukujen perusteena käytetyistä todistuksista)

TIETOTEKNIIKAN OPS

Matematiikka. Orientoivat opinnot /

Kurssin sisältö. Kurssilla vähemmän. Johdatus ohjelmistotekniikkaan. Mitä on ohjelmistotekniikka? Miten ohjelmistoja suunnitellaan ja toteutetaan?

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Globaalisti Hajautettu Ohjelmistokehitys Mitä, Miksi & Miten? Maria Paasivaara

Kandidaatin tutkinnon ohjeellinen suorittamisjärjestys sosiaalipolitiikassa

Projektityö

HENKILÖKOHTAINEN OPINTOSUUNNITELMA HOPS SAKSAN KIELI JA KULTTUURI

Teknologiatrendit. Nyt. Olli Martikainen Oulun yliopisto ETLA

Tietojärjestelmätiede (TJT) / Tekninen viestintä (TEVI) linjavalintainfo

PERUSTIETEIDEN LAAJA OPPIMÄÄRÄ Syksyn 2010 informaatiotilaisuudet: to 2.9. klo L-salissa / pe 3.9. klo F-salissa TERVETULOA!

Ohjelmistojen mallintaminen, kesä 2010

BIMin mahdollisuudet hukan poistossa ja arvonluonnissa LCIFIN Vuosiseminaari

TIETOJENKÄSITTELYTIEDE

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Ohjelmistojen mallintaminen, mallintaminen ja UML

Matematiikka ja tilastotiede. Orientoivat opinnot /

Suunnitteluvaihe prosessissa

Ohjelmiston toteutussuunnitelma

ITK130 Ohjelmistoprosessi

Yleistä kanditutkielmista

Visualisoinnin aamu 16.4 Tiedon visualisointi. Ari Suominen Tuote- ja ratkaisupäällikkö Microsoft

SCI-A0000 Johdatus opiskeluun (2 op) Teknistieteellinen kandidaattiohjelma. Informaatioverkostojen pääaine

Onnistunut ohjelmistoprojekti

Juha Merikoski. Jyväskylän yliopiston Fysiikan laitos Kevät 2009

Määrittelyvaihe. Projektinhallinta

PERUSAINEIDEN LAAJA OPPIMÄÄRÄ Syksyn 2007 informaatiotilaisuudet: MA 3.9. klo G-salissa/ TI 4.9. klo G-salissa TERVETULOA!

Liiketoimintajärjestelmien integrointi

Tietotekniikan koulutus ammattikorkeakouluissa 2012 Uudellamaalla

4.5. MATEMAATTISTEN AINEIDEN OPETTAJANKOULUTUS Tutkinnon rakenne. Matemaattisten aineiden koulutusohjelma

Työssäoppimispaikan työtehtävien ja ammattiosaamisen näytön suorittaminen työssäoppimisja näyttösuunnitelman mukaan hyväksytysti.

Mika Vanhala 36 la la pe muutos la la

PROJEKTITOIMINTA Tietoa käytännöistä

Oleelliset vaikeudet OT:ssa 1/2

Opintosuunnitelma. Suunta: Tietoliikenneohjelmistot ja -sovellukset Pääaine: Tietoliikenneohjelmistot Sivuaine: Yritysturvallisuus

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

19/20: Ikkuna olio-ohjelmoinnin maailmaan

OHJELMISTOKEHITYS -suuntautumisvaihtoehto

Tähtitieteen käytännön menetelmiä Kevät 2009

Osaa käyttää työvälineohjelmia, tekstinkäsittelyä taulukkolaskentaa ja esitysgrafiikkaa monipuolisesti asiakasviestintään.

TIETOTEKNIIKAN KOULUTUSOHJELMA

Sosiaali- ja terveysalan toimialamalli tiedolla johtamisen avuksi

Transkriptio:

Johdatus ohjelmistotekniikkaan 2003 - siitä se lähtee Tommi Kärkkäinen Jyväskylän yliopisto tietotekniikan laitos 1 Agenda 1. IT:n kehitys ja merkitys nyt ja tulevaisuudessa 2. Joitakin esimerkkejä alan tutkimuksesta 3. Ohjelmistotekniikan uusi maisteriopintokokonaisuus 4. JOT-kurssin rakenne 5. Ohjelmistokehityksen perusteet 2

Miten tähän on tultu? (tietoyhteiskunta) tiedon kuljettaminen kalliimpaa kuin sen liikutteleminen muuten aineettoman tiedon (osaamisen) merkitys tiedon (ei Internet-tauhkan) tallennus ja uudelleenkäyttö digitalisoituminen ja sen tuomat mahdollisuudet (ja haasteet) (Hannu Linturi, 1997) 3 Tietoyhteiskunta/TVT:n merkitys (I) 4 1) ICT markets/gdp (~ TVT:n osuus koko markkinoista) TVT kansantalouden sisällä

Tietoyhteiskunta/TVT:n merkitys (II) nyt ja tulevaisuudessa! 5 Trendeistä ICTs (Information and Communication Technologies) play an increasingly important role in the economy. ICTs account for a large share of investment and contribute significantly to output and productivity growth. Despite current cyclical difficulties, trend growth of the ICT sector remains strong. (huom: johtopäätökset hyvästä koulutusalasta!) The ICT sector is highly globalised in an increasingly globalised world economy. The focus of international investment is shifting from manufacturing towards services. Software is one of the most rapidly growing and evolving sectors in OECD countries. Strong growth in the software sector is due to its increasingly crucial role in the ICT sector and the economy. Software that underpins network integration, interconnection and compatibility will be essential and software-related patenting is increasing rapidly. Trade in software is dynamic but difficult to measure. E-commerce is growing, but is still in its infancy, especially among consumers. (huom: lyhyen aikavälin muutokset yliarvioidaan ja pitkän aikavälin aliarvioidaan!) The demand for ICT skills continues to grow, creating concerns about possible labour shortages and gaps in worker skills. Governements, firms and educational institutions in OECD countries are taking measures to meet changing skill demands in the IT workforce. New computing potential and communication channels are being developed and are proliferating. 6 (OECD Information Technology Outlook ICTs and the Information Economy, 2002)

Miten tähän on tultu? (TIETOTEKNIIKKA) TEKNIIKAN MURROS KÄYTTÖÖNOTTO SUOMESSA YLEISTYMINEN SUOMESSA VAIKUTUS TIETOJEN- KÄSITTELYYN TIETOJENKÄSITTELYN TAPAHTUMAPAIKKA Reikäkorttikoneet Reikäkorttikoneiden käyttö tilastointitehtävissä Reikäkorttikoneiden käyttö kaupallis-hallinnollisessa tietojenkäsittelyssä 1923 1940-luvulla 1920/1930-luvulla 1950-luvulla Tietojenkäsittelyn koneellistaminen Reikäkorttiosasto Tietokoneet Keskitetty tietojenkäsittely 1. ja 2. sukupolven tietokoneet 1958/1960 1960-luvun alkupuolella Eräkäsittely Atk-osasto 3. sukupolven tietokoneet Tosiaikaiset päätejärjestelmät 1965 1970-luvun puolivälissä 1960-luvun jälkipuolella 1970/1980-luvulla Moniajo, suorakäyttö Päätekäyttö, osituskäsittely, vuorovaikutteinen käsittely Tehtävien hajautus Pientietokoneet 1970-luvun puolivälissä 1970-luvun jälkipuolella Käsittelyn hajautus Osastokoneet Mikrosuoritin 1973 1970-luvulla Toimistoautomaatio Mikrotietokone 1970-luvun puolivälissä 1970-luvun lopulla PC-mikrotietokone Internet Mobiiliteknologia 1983 1990-luvun puolivälissä 1990-luvun puolivälissä 1980-luvun puolivälissä 1990-luku 1990-luvun jälkipuolella Henkilökohtainen tietojenkäsittely Verkottuminen Paikkasidonnaisuuden purkaminen, laitteiden keskinäinen kommunikointi Henkilökohtainen työasema, lähiverkot Globaalit verkot Lähes missä tahansa (Ari T. Manninen: Tietotekniikan historia, Tietotekniikan liitto, ilmestyy marraskuussa) 7 Ketkä näyttävät tietä? (huom: mutta minne ja miten? kts. esim. http://www.sap.com/open) 8

Trendeistä (OPM, Avainteknologiat ja tulevaisuus - Yhteiskunnallisia tarkasteluja nousevien teknologioiden ja kvalifikaatioiden yhteyksistä, 2003) 9 Tieto- ja viestintäteknologian soveltaminen Keski-Suomen teollisuudessa - alueellinen teknologiastrategia Nanoteknologia Puutuoteteollisuus Paperinvalmistus Käsi- ja pienteollisuus ICT Metalliteollisuus Graafinen teollisuus Energia- ja ympäristöteknologia Hyvinvointiteknologia 10

Tulevaisuuden avainala: integrointi (Esim. Kai Lahti, ohjelmistotekniikan pro gradu tutkielma, 2003) 11 Trendeistä Tulevaisuusammatteja: 1. Keinoelinten suunnittelija 2. Tekoälyn konsultti 3. Bioelektroniikan suunnittelija 4. Bioinformaatikko 5. Hypekonsultti 6. Kyberluokittelija 7. Geeniterapiakonsultti 8. Geoinformaatikko 9. Nanoteknologiakonsultti 10. Yksinkertaistusasiantuntija 11. Älytalojen suunnittelija 12. Sosiaalisten verkostojen analyytikko 13. Virtuaalilääkäri 14. Visualisoinnin asiantuntija 15. Web-puutarhuri IT:stä tulee keskeinen osa perusinfrastruktuuria jokaisella elämänalueella IT-ammattilaisia tarvitaan enenevässä määrin jokaisella elämänalueella (huom: lista muodostettu nykyisten trendien pohjalta tämän hetken asiantuntijoiden toimesta eli kriittisyyttä täsmällisiin ammattinimikkeisiin!) 12 (OPM, Avainteknologiat ja tulevaisuus - Yhteiskunnallisia tarkasteluja nousevien teknologioiden ja kvalifikaatioiden yhteyksistä, 2003)

Esimerkki: neuroverkko Laskennallinen malli y =W ˆ ( ˆ 2 F W 1 x ) y W Fˆ ( W xˆ ) 2 2 1 i i i i r ( W 1, W 2 ) = 0 (T. Kärkkäinen: MLP in Layer-wise Form with Applications to Weight Decay, Neural Computing, 2002) 13 Esimerkki: neuroverkon opettaminen (a+b) Tiedetään: (0.8,0.9) 2, (1.6,2.2) 4,, (10,9.9) 20 14

Esimerkki: neuroverkon opettaminen (a+b) Saadaan: (10,1) 10.5, (9,4) 12.9,, (10,10) 19,5, 15 Esimerkki: neuroverkon opettaminen (a*b) Keskimääräinen virhe 5.5 16

Esimerkki: Nestevirtauksen animointi Virtauksen kuvaaminen Navier-Stokes -yhtälön avulla u = F p (u ) u+ v u t u = 0 (Joonas Palomäki, ohjelmistotekniikan pro gradu -tutkielma, 2003) 17 Esimerkki: poikkeavuusnegatiivisuus poikkeavuusnegatiivisuus (MMN) kuvaa aivojen kykyä vastata ääniherätteeseen havaitaan (tai ei) tietty aika heräteäänen jälkeen vasteaallon suuruuden uskotaan liittyvän esim. dysleksiariskiin aivosähkösignaalit puusta katsoen täysin satunnaisia (huom: tämä on sitä hyvinvointiteknologiaa ) 18

Haaste ja mahdollisuus: oikeat ohjelmistot oikeille käyttäjille oikeisiin ympäristöihin! Liiketoimintaprosessit Työprosessit EMV (Ympäristö) KONTEKSTI UMV (Käyttäjä) SMV (Rakenne) Ohjelmisto(t) BMV (Toiminta) IMV (Toteutus) (muok. Pressman, Software Engineering Practitioner s Approach, 2000) 19 Suurten tietovarastojen analysointi hyödyllisen tiedon irrottaminen visualisointi Klusterointi (ohjaamaton oppiminen) prosessin tilat Tiedonlouhinta Prosessin tilat vs. tuotteen laatu parempi prosessin ohjaus parempi laatu vaatii/ mahdollistaa EAI Integrointiarkkitehtuurit ja -tasot Väliohjelmistoratkaisut ja suunnittelumallit kuvaa/ yhdistää jalostaa/ kuvaa Kommunikaation nykytila Tietovirtojen epäjatkuvuuskohtien tunnistaminen Tietovirrat Kommunikaation kuvaaminen Genrejen avulla Analyysi rooleittain Konkreettinen lähtökohta liiketoiminnan kehittämiselle 20

uusi tutkintorakenne (ohjelmistotekniikka) Maisteriopinnot (21-23 ov) Pro gradu + seminaari (17-19 ov) Linjakohtaiset opinnot (15 ov) Pääainekohtaiset opinnot (16 ov) TDK:n yhteiset opinnot (24 ov) mm. Johdatus ohjelmistotekniikkaan Sivuaineopinnot (30 ov) Vapaasti valittavat opinnot (27 ov) a Yleisopinnot sekä kieli- ja viestintäopinnot (8 ov) 21 Tiedekunnan yhteiset opinnot (I) Ohjelmointi 1 (4 ov) Ohjelmoinnin peruskurssi Javalla Tietoverkot (2 ov) Yleiskuva tietoliikenteestä ja tietoliikennepalveluista Ihminen ja tietojärjestelmät (2 ov) Ihmisen ja tietokoneen välisen vuorovaikutuksen (HCI) perusteet Oliokeskeinen tietojärjestelmien kehittäminen (2 ov) Tietojärjestelmien kehittäminen oliolähestymistavan ja erityisesti UML:n avulla 22

Tiedekunnan yhteiset opinnot (II) Johdatus ohjelmistotekniikkaan (2 ov) Yleiskäsitys ohjelmistotyöstä Esitiedot: (olio-)ohjelmointia, (olio-)suunnittelua, HCI:tä ja tietoverkkoja Tietokannat ja tiedonhallinta (4 ov) Tutustuttaa tietokannan hallintajärjestelmien peruskäsitteisiin, periaatteisiin, arkkitehtuureihin ja kieliin Algoritmit 1 (2 ov) Perustietorakenteet ja -algoritmit Käyttöjärjestelmät (2 ov) Käyttöjärjestelmän rakenne ja toimintaperiaatteet Kandidaatin tutkielma ja seminaari (3+1 ov) Tieteellinen kirjoittaminen, esittäminen ja opponointi 23 Pääainekohtaiset opinnot (tietotekniikka) Ohjelmointi 2 (4 ov) Ohjelmansuunnittelua ja olio-ohjelmointia Javalla Algoritmit 2 (2 ov) Algoritmien suunnittelumenetelmiä Sovellusprojekti (7-8 ov) Työelämälähtöisen ohjelmistoprojektin toteuttaminen ryhmätyönä Harjoittelu (3 ov) Alan työtehtäviin tutustuminen 24

Ohjelmistotekniikan linjakohtaiset opinnot Tietoliikenneprotokollat (2 ov) Tietoliikenneprotokollat ja protokollaohjelmointi Automaatit ja kieliopit (3 ov) Äärelliset automaatit ja säännölliset kielet Ohjelmistotuotanto (4 ov) Laajojen ohjelmistojen suunnittelun ja toteutuksen menetelmät Valinnaisia (6 ov) 25 Ohjelmistotekniikan maisteriopinnot Ohjelmistotekniikan pakolliset, 12 ov: ohjelmistoarkkitehtuurit 3 ov testaus ja laadunvarmistus 3 ov kaksi seuraavista: tiedonhallinnan jatkokurssi 3 ov algoritmien teoria 3 ov ohjelmistojen ylläpito 3 ov olio-ohjelmointi 3 ov Ohjelmistotekniikan menetelmät ja periaatteet ohjelmointikieliä, formaaleja menetelmiä, automaattista päättelyä, funktio-ohjelmointia, Adaptiivinen ja älykäs tietojenkäsittely data-analyysiä, laskennallista älykkyyttä ja neurolaskentaa, tekoälyä, Tiedonhallinta liikkuvaa tietojenkäsittelyä, tapahtumanhallintaa, tietokantoja, 26

JOT-kurssin lukujärjestys: Aika Aihe Pitäjä ke 15.10. 12-14 (Aud. 3) Johdantoluento Kärkkäinen ti 21.10. 12-14 (Aud. 2) Johdanto jatkuu Kollanus ke 22.10. 12-14 (Aud. 3) Prosessit ja UML Kärkkäinen ja Äyrämö ma 27.10. 12-14 (Aud. 3) Unified Process (UP) Heikkilä ke 29.10. 12-14 (Aud. 3) UP jatkuu Heikkilä ti 4.11. 12-14 (Aud. 1) Ketterät prosessit, XP Itkonen ke 5.11. 12-14 (Aud. 3) Testaus Itkonen ti 11.11. 12-14 (Aud. 2) Ohjelmointikielen valinta yms. Kaijanaho ke 12.11. 12-14 (Aud. 3) Käyttöliittymän suunnittelu Kollanus ti 18.11. 12-14 (Aud. 2) Tietojärjestelmäarkkitehtuurit Kollanus ke 19.11. 12-14 (Aud. 3) Ylläpito ja tuotteenhallinta Koskinen ti 25.11. 12-14 (Aud. 2) Uudelleenkäyttö ja komponentit Itkonen ke 26.11. 12-14 (Aud. 3) Laadunvarmistus Heikkilä ti 2.12. 12-14 (Aud. 3) Laatujärjestelmät Heikkilä ke 3.12. 12-14 (Aud. 3) Tietoturva Itkonen ma 8.12.??? Agentit yms. Itkonen 27 Välitilinpäätös: IT/TVT:llä keskeinen rooli yhteiskuntakehityksessä uudet alat, ammatit, työtehtävät yms. laskeutuvat uusiksi ohjelmistoiksi, jotka ovat osa uusia, entistä laajempia tieto- ja informaatiojärjestelmiä tietoa täytyy hallita ja muokata älykkäästi sekä tarjota sitä jalostuneessa muodossa, jalostuneina palveluina käyttäjien jokapäiväisten rutiinien helpottamiseksi ja päätöksenteon tueksi tarve ja kysyntä laadukkaille ohjelmistoille kasvaa taatusti! JOTin tarkoitus käydä läpi ydinasiat ohjelmistokehityksestä sekä joitakin snapshotteja moderneista teknologioista projektinhallinta, syvempi abstrahointi yms. jätetään ohjelmistotuotannon kurssille Huom: ohjelmistokehityksen haasteet eivät ole muuttuneet miksikään kymmeniin vuosiin, ovatpa vain tarkentuneet eri ajanjaksoille ominaisilla piirteillä! 28

Ohjelmistotekniikka mitä se on? Termi (software engineering, SE) (ja ala) juontaa juurensa 1968 järjestettyyn NATOkonferenssiin, jossa ohjelmistotuotannon todettiin olevan kriisissä laajojen ohjelmistojen tuottaminen oli vaikeaa, ne olivat pullollaan virheitä, niiden toimitusajat venyivät ja valmistuskustannukset karkasivat käsistä. (kuulostaako tutulta?) Kuten SE-historia-artikkelikokoelman http://citeseer.nj.nec.com/229833.html johdannossa sanotaan: Nykyisin SE määritellään(kin) monella tavalla, joista alla yksi: "Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software (IEEE Standard Glossary for Software Engineering Terminology) 29 Ohjelmistokehityksen kehitystä: (Mary Shaw teoksessa History of Softare Engineering, ed. sivu) 30

SE tänään: monien kehitysvaiheiden tuloksena, jättiläisten harteilla ; kts. esim. http://www.sdm.de/en/it-wissen/themen/sdmkonf-2001/index.html Brooks (1987) ``No silver bullet: Essence and accidents of software engineering' yhdellä yksittäisellä tekniikalla ei saada kaikkea aikaan! sillan- ja talonrakennus(insinööri)tieteisiin nähden edelleen suuria eroja, erityisesti kvantisoinnissa mutta meillähän kaikki on tietokoneella alusta loppuun? (näyttävien) ohjelmien tekeminen liian helppoa lapsikin sen osaa ohjelmistokehitys- ja suoritusympäristön kokonaisvaltainen ymmärtäminen (ihmiset, softat ja raudat) vaativa homma (vrt. tietoturva) osatako ohjelmoida ja/vai ohjelmointikieltä ja/vai uusinta editoria? osatako sovelluskehittimiä ja/vai palvelualustoja ja/vai käyttöliittymäeditoreita? osatako XML:ää ja/vai RDF:ää ja/vai SOAPia ja/vai Joo, kaikkea pitää osata (tai oikeastaan riittää osata oppia ja tajuta), mutta silti vieläkin tärkeämpää ohjelmistokehityksen suhteen on tietää kuka tekee, mitä tekee, miksi tekee ja miten tekee! 31 32

Määrittely Validointi Verifiointi Verifiointi Vesiputousmalli ohjelmistokehityksessä Suunnittelu Validointi Verifiointi Toteutus Validointi Verifiointi Testaus Validointi Verifiointi Validation&Verification: Are we building the right software?/ Are we building the software right? Integrointi Validointi Ylläpito 33 Tiedon keräys Validointi Verifiointi Verifiointi Vesiputousmalli KD:ssä Esikäsittely Validointi Piirteenirrotus Verifiointi Validointi Verifiointi Mallin valinta Validointi Verifiointi Oppimistehtävä Validointi Opetusalgoritmi 34

Vaihejakomallin perusominaisuudet: määritellään vaiheet, aktiviteetit, roolit ja vaihetuotteet työn jakaminen osiin mahdollistaa työn jakamisen, edistymisen seuraamisen, projektin johtamisen (ja sen osista laskuttamisen) yms. laatu (V&V) synty osavaiheiden tulona: Vaatimukset 90% oikeita Rakenne 90% oikea Käyttöliittymä 90% järkevä Toteutus 90% kohdallaan Testikattavuus 90% Onnistuminen 0.9*0.9*0.9*0.9*0.9 0.59 eli 59%:sti!!! iteratiivisuus ja inkrementaalisuus jos tehdään alunperin väärää ohjelmaa, onnistuminen 0% Kehittämisnopeuden neljä ulottuvuutta: (Steve McConnell: Ohjelmistotuotannon hallinta, 1996) henkilöstö prosessi tuote teknologia 35 Spiraalimalli (Böehm) rakenteellisten ajurien kehittyminen Tavoitteet, rajoitteet Vaihtoehdot, riskit Seuraavan vaiheen suunnittelu Prototyypin kehitys ja testaus Rakenteelliset ajurit vs. käyttötapaukset! 36

Ongelmanratkaisuanalogia:?!???!!! Potentiaalinen uudelleenkäyttö Perinteinen uudelleenkäyttö 1. Mikä ongelma halutaan ratkaista? (vaatimukset) 2. Miten ratkaistava ongelma jakaantuu osaongelmiin? (suunnittelu) 3. Miten osaongelmat ratkaistaan? (totetus) 4. Mikä saadaan alkuperäisen ongelman ratkaisuksi? (koonti) 37 Ohjelmistoprojekti?!???!!! 38

Summa summarum - ohjelmistokehityksen kehä JOTin pohjalla: tehdäänkö seuraava versio? Ylläpito Toimiihan ohjelma ympäristön muuttuessa? Vaatimukset Kuka ohjelmaa käyttää? Mitä ohjelma tekee? Missä ympäristössä ohjelma toimii? Tällainen tehdään Suunnittelu Miten käytetään? Mistä käytetään? Mikä on ohjelman perusrakenne? senkus pyöritätte Testaus Toimiiko ohjelma? Suorittaako ohjelma tehtävänsä oikein? toimiiko Toteutus Implementointi (koodaus)? Tietorakenteet ja algoritmit? näillä spekseillä 39