Ohjelmistotekniikka kevät 2015 Jouni Lappalainen

Koko: px
Aloita esitys sivulta:

Download "Ohjelmistotekniikka kevät 2015 Jouni Lappalainen"

Transkriptio

1 Ohjelmistotekniikka kevät 2015 Jouni Lappalainen Jouni Lappalainen 1

2 Luennot & harjoitukset Luennoilla käydään läpi Pressmanin Software Engineering kirjan (7. painos) sisältö Hyvää materiaalia löytyy myös Open seminar sivulta openseminar.org/se/screen.do ja kirjasta Williams L., A (Partial) Introduction to Software Engineering Practices and Methods, (kannattaa googlettaa termillä williams-draftbook) Luennoilla tehdään myös pieniä luentotehtäviä. Luentotehtävien ratkaisulla voi kerätä pisteitä study group tyyppiseen suoritustapaan. Harjoitukset (8 kertaa) etenevät luentojen rinnalla ja siellä käsitellään edellisen viikon luentoihin liittyviä tehtäviä. Tehtävät esitellään luennoilla ja kurssisivulla on linkki niihin. Harjoitukset voi tehdä 2-3 opiskelijan ryhmässä tai yksin. Ratkaisut kerätään harjoitusraportiksi, joka palautetaan harjoitusten vetäjälle periodin lopussa. Hyvällä harjoitusosaamisella voi kerätä pisteitä study group tyyppiseen suoritustapaan. Se tarkoittaa tehtävien ratkaisua joko etukäteen tai harjoituksissa ratkaisujen esittelyä harjoitusten vetäjälle, joka pitää kirjaa suorituksista ratkaisujen keräämistä harjoitusraporttiin, joka toimitetaan harjoitusten vetäjälle periodin lopussa 2

3 Kuinka suorittaa kurssi? 2 vaihtoehtoa: ryhmätyö tai essee (molempiin vaihtoehtoihin kuuluu myös harjoitusraportti, osasuoritukset ovat voimassa seuraavaan kurssin toteutukseen) Ryhmätyö (study group) luennoilla annetaan pohdittavia tehtäviä (löytyvät myös kurssisivulta) etsikää lisämateriaalia ja pohtikaa pienessä ryhmässä (2-3 opisk.) ryhmä voi olla sama kuin harjoituksissa viikoittain palaveri, jossa käydään läpi edellisen viikon asiat (ja ryhmän ratkaisut) jokainen ryhmän jäsen osallistuu myös tehtävien esittelyyn Essee voitte valita noin 10 aihetta, joista kirjoitatte esseessä (tarkoituksena on tutustua laajasti ohjelmistotekniikkaan) materiaalia löytyy esim. Pressmanin kirjasta ja webistä IEEE Software (Nelli portaalin kautta) Computer (Nelli portaalin kautta) Crosstalk (http:// 3

4 Miten arvostellaan? 2 vaihtoehtoa: ryhmätyö tai essee Ryhmätyö (study group) (arvostelu 1-5) Arvosana muodostuu kolmesta osasta Study group työskentelystä ja raportista (max. 34 pistettä) Luentotehtävistä (max. 14 pistettä) Harjoitusraportista (max. 8 pistettä) Arvosanat jakautuvat (max 56 pistettä) Arvosana 1: pistettä Arvosana 2: pistettä Arvosana 3: pistettä Arvosana 4: pistettä Arvosana 5: pistettä Essee (arvostelu 1-5) Hyvältä arvosanalta vaaditaan - perustumista ohjelmistotuotannon oppikirjoihin ja alan lehtiin - monipuolista ja kriittistä lähteiden käyttöä (muista myös viitata tekstissä) - omaa pohdintaa lukujen lopussa (jos on omaa kokemusta alalta, voi käyttää) - hyvää rakennetta ja hyvää kieltä 4

5 Mistä materiaalia ryhmätöihin ja esseisiin? Ohjelmistotekniikan lait (esitellään luentojen yhteydessä): poimittu 50 laista ja 25 hypoteesistä, jotka esitetty kirjassa: Endres A., Rombach D., A handbook of software and systems engineering: empirical observations, laws and theories, Mikä sopii pieniin järjestelmiin ei sovi suuriin / no 11, DeRemer Ohjelmiston uudelleenkäyttö vähentää kehitysaikaa ja parantaa tuottavuutta ja laatua / no 15, McIlroy 1968 (Naur 1969) 3. Henkilöiden lisääminen myöhässä olevaan projektiin aiheuttaa vain lisää myöhästymistä / no 36, Brooks

6 Millaisia kysymyksiä study groupeissa käsitellään? Miten ohjelmistojen korjaamisen aiheuttamaa rapistumista" voidaan välttää? Tee yhteenveto Hookerin seitsemästä periaatteesta ja esitä tiivistelmä omin sanoin muutamalla lauseella (katso SevenPrinciplesOfSoftwareDevelopment) Cockburn esittelee oheisessa paperissa yhtäläisyyksiä ohjelmistojen kehittämisen ja perinteisen teollisen tuotannon välillä. Mikä on mielestäsi paperin tärkein sanoma ohjelmistojen kehittäjille? Cockburn A., What engineering has in common with manufactoring and why it matters, Crosstalk, April, 2007, pp

7 Ohjelmistotekniikka - FAQ 1. Mitä ohjelmistotekniikka tarkoittaa 2. Mikä on ohjelmisto, miten se poikkeaa muista ihmisen rakentamista tuotteista? 3. Millaisia ohjelmistosovelluksia on? 4. Ohjelmistotuotannon peruskäytänteet ja periaatteet. 5. Onko jokin prosessimalli (elinjaksomalli) paras? 6. Onko jokin suunnittelumenetelmä paras ja jokin kuvaustapa se ainoa ja oikea? 7. Miten ohjelmiston laatuvaatimukset vaikuttavat ohjelmiston kehittämiseen? 7

8 Ohjelmistotekniikka - FAQ 8. Mitkä tekijät aiheuttavat eniten virheitä? 9. Mikä on ylläpidon rooli? 10. Miten ohjelmistojen kehitys muuttuu tulevina vuosina? 8

9 1. Mitä ohjelmistotekniikka tarkoittaa The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines» määrittely Naton järjestämässä ensimmäisessä SE konferenssissa 1968 / Naur & Randell 1969 Software engineering is that form of engineering that applies the principles of computer science and mathematics to achivieng cost-effective solutions to software problems. / CMU/ SEI-90-TR-003 The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. / IEEE

10 SWEBOK 10

11 Core Body of Knowledge Areas Graduate Software Engineering 2009 (GSwE2009) Curriculum Guidelines for Graduate Degree Programs in Software Engineering Integrated Software & Systems Engineering Curriculum (issec) Project 11

12 Ohjelmistotuotanto vai ohjelmistotekniikka - ohjelmistotuotannon osa-alueet / Haikala & Märijärvi 2000 Liiketoiminta, johtaminen Laatujärjestelmä Hankkeiden hallinta Projektinhallinta Projektinhallinta Projektinhallinta määrittely suunnittelu ohjelmointi testaus tuotteenhallinta laadunvarmistus dokumentointi vaatimustenhallinta, riskienhallinta,... käyttöönotto ylläpito 12

13 SEMAT (Software Engineering Methods and Theory) ydin Jacobson Ivar, Ng Pan-Wei, McMahon Paul, Spence Ian, Lidman Svante, The Essence of Software Engineering: the Semat Kernel CSI Communications, August 2013, pp

14 2. Miksi ohjelmistotekniikka on tärkeää (eri syventymiskohteissa)? Ohjelmistojen laatu vaikuttaa tietojärjestelmien laatuun Tuotteistetaan ja myydään ohjelmistoja Testataan esim. ohjelmistojen käytettävyyttä Tietoturva rakennetaan ohjelmistoon turvallisten käytänteiden avulla Tietojärjestelmät Ohjelmistotuotanto Ohjelmistojen kehittäminen hyvien käytänteiden ja menetelmien avulla Ohjelmistoliiketoiminta Ohjelmistotekniikka Käyttöliittymät Tietoturva 14

15 2. Mikä on ohjelmisto, miten se poikkeaa muista ihmisen rakentamista tuotteista? Luontainen monimutkaisuus ongelmat ovat monimutkaisia Näkymättömyys eri tason kuvauksia Muunnettavuus helppo muuttaa Ainutkertaisuus räätälöidyt ratkaisut valmiiden komponenttien käyttö lisääntyy Skaalautumattomuus isot projektit/pienet projektit valtameriristeilijän rakentaminen ei ole samaa kuin 3000 soutuveneen rakentaminen Laatutavoitteet/laatutekniikat täydellinen testaus mahdotonta ohjelmisto ei kulu 15

16 Laitteiston häiriöasteen kasvu häiriöaste aika 16

17 Ohjelmiston häiriöasteen kasvu häiriöaste aika todellinen käyrä - miksi? tavoitekäyrä 17

18 Ohjelmiston häiriöasteen kasvu sivuvaikutusten aiheuttama häiriöaste häiriöaste muutos aika todellinen käyrä tavoitekäyrä 18

19 3. Millaisia ohjelmistosovelluksia on? Järjestelmäohjelmistot Sovellusohjelmistot Tekniset/tieteelliset ohjelmistot Sulautetut ohjelmistot Tuotelinjaohjelmistot Web-sovellukset Tekoälyohjelmistot Lisäksi jokapaikan (pervasive) ohjelmistot, jotka kehitetty hajautetusti ja avoimeen koodiin perustuen 19

20 Web sovelluksen ominaispiirteet Verkosta riippuvuus (verkkointensiivisyys) sovellus elää verkossa ja palvelee hyvin hajanaisen asiakaskunnan tarpeita Samanaikaisuus suuret käyttäjämäärät käyttävät sovellusta samaan aikaan, käyttötavat voivat poiketa paljonkin Ennustamaton kuormitus käyttäjämäärät voivat vaihdella huomattavasti eri päivinä Suorituskyky vasteajan täytyy olla kohtuullinen, jotta käyttäjä on tyytyväinen

21 Web sovelluksen ominaispiirteet Palveluaste (availability) vaikka 100 % palveluastetta ei saavuteta, suositun sovelluksen käyttäjät vaativat 24/7/365 palvelua Tietoa käyttäjälle sovelluksen ensisijainen tarkoitus on hypermedian keinoin tarjota tietoa eri esitysmuodoissa Sisällön tärkeys sisällön laatu ja esitystapa tärkeimmät sovelluksen laatutekijät Jatkuva evoluutio Web sovellukset kehittyvät jatkuvasti, eivät suunnitelluin julkaisuin, kuten perinteiset

22 Web sovelluksen ominaispiirteet Välittömyys (kehittämisnopeus) Web sovellusten kehittämisaika muutamia päiviä/viikkoja Varmuus sovelluksen käytön oltava turvallista käyttäjän kannalta Esteettisyys teknisen suunnittelun lisäksi tarvitaan myös ulkonäön suunnittelua

23 4. Ohjelmistotuotannon peruskäytänteet ja periaatteet Ohjelmistotuotannon peruskäytänteet Ymmärrä ongelma How to solve it Polya 1945 kommunikointi ja analyysi Suunnittele ratkaisu mallintaminen ja ohjelmistosuunnittelu Toteuta suunnitelma koodin generointi Testaa toteutusta testaus ja laadunvarmistus Ohjelmistotuotannon periaatteet Hooker 1996 The reason it all exists KISS Maintain the vision What you produce, others will consume Be open to the future Plan ahead for reuse Think! 23

24 Ohjelmistotuotannon 7 ydinperiaatetta / Hooker 1996 The Reason It All Exists Tuotetun ohjelmiston tulee olla hyödyllinen käyttäjälle, älä lisää mitään ominaisuuksia, jotka eivät tuo lisäarvoa KISS (Keep It Simple, Stupid!) kaiken suunnittelun tulee olla niin yksinkertaista kuin mahdollista, mutta ei yksinkertaisempaa Maintain the Vision selvä visio tavoitteesta on onnistuneen projektin tae What You Produce, Others Will Consume ohjelmistoa ei kehitetä tyhjiössä, määrittele, suunnittele ja koodaa ohjelmisto se mielessä, että jonkun muun täytyy ymmärtää tuotoksesi Be Open to the Future järjestelmien elinkaari on pitkä - ylläpitoa tarvitaan, älä suunnittele itseäsi nurkkaan, muista suunnitellessasi entäpä jos kysymykset Plan Ahead for Reuse uudelleenkäyttö säästää aikaa ja työpanosta, mutta uudelleenkäytettävyyden huomioiminen komponentin suunnittelussa ja toteutuksessa lisää myös kustannuksia (25-200%) Think! parempiin tuloksiin pääsee, kun miettii hetken ennen tekemistä» 24

25 5. Onko jokin prosessimalli (elinjaksomalli) paras? Ohjelmistotuotannon yleiset käytänteet Ymmärrä ongelma How to solve it Polya 1945 kommunikointi ja analyysi Suunnittele ratkaisu mallintaminen ja ohjelmistosuunnittelu Toteuta suunnitelma koodin generointi Testaa toteutusta testaus ja laadunvarmistus Prosessikehikon aktiviteetit» Pressman 2005 kommunikointi projektisuuunnittelu mallintaminen rakentaminen toimitus, käyttöön vieminen (deployment) 25

26 Käyttäjän tarpeet Vesiputousmalli Vaatimusmäärittely Toiminnallinen suunnittelu - käyttöliittymän suunnittelu - käyttötapausanalyysi Ohjelmistosuunnittelu Toteutus Integrointi ja testaus Käyttöönotto ja ylläpito

27 Lisäyksin etenevä kehittäminen (inkrementaalinen) Kommunikointi Projektin suunnittelu Mallintaminen Lisäys n Rakentaminen Ohjelmiston toiminnallisuus ja ominaisuusdet Lisäys 1 Lisäys 2 Lisäyksen 1 toimitus Lisäyksen 2 toimitus Toimitus Lisäyksen n toimitus Projektin kalenteriaika 27

28 (Rational) Unified Process (iteratiivinen ja inkrementaalinen) Elaboration (kehittäminen) Inception (aloitus) suunnittelu mallintaminen julkaisu ohjelmiston uusi osa kommunikointi toimitus Production (tuotanto) Transition (siirto) rakentaminen Construction (rakentaminen)

29 Scrum prosessi (sprintti ja sen katselmointi) Sprintin työlista: - ominaisuudet yhteen Sprint kierrokseen Kehitä, paketoi, katselmoi, sovita (ei vaadita peräkkäisyyttä) Tuotteen työlista (backlog): - asiakkaan haluamat ominaisuudet Päivittäin 30 päivää minuutin päivittäinen Scrum tapaaminen ( tilannekatsaus) Ei projektipäällikköä, Scrum master valvoo prosessin noudattamista Uusi toteutettu ominaisuus Sprintin katselmointi: sidosryhmä osallistuu 29

30 6. Onko jokin suunnittelumenetelmä paras (ja jokin kuvausmenetelmä ainoa ja oikea)? Suunnittelumenetelmät ovat aikansa lapsia (kaikissa eri abstraktiotason kuvauksia) 1980 luvulla JSD (Jackson System Development), Jackson 1983 MSA (Modern Structured Analysis), Yourdon luvulla oliomenetelmät ja kuvaustavat, kuten OOA & OOD, Coad & Yourdon 1991 OMT, Rumbaugh et al UML kuvaustavan määrittely, Rumbaugh et al UML & RUP prosessi, Jacobson et al OMT++, Jaaksi et al luvulla UML & RUP valtakausi jatkuu 30

31 Olioperustainen ohjelmistokehitys Rakenne Korkean tason toiminnalisuus Käyttötapauskaaviot Käyttäytyminen Ohjelmistokehitys Esimerkkejä Sijoittelukaaviot Oliokaaviot Luokkakaaviot Komponenttikaaviot Sekvenssikaaviot Tilakaaviot Yhteistyökaaviot Aktiviteettikaaviot Koskimies K., Oliokirja, 2000

32 Use case; Sending a short message Description: The user writes a short message and adds his signature to the end of the message. Then he sends the message to selected recipients. User System Phone request() send() OK User MainView MainController Phone request() sendrequest() send() OK showmessage( Done ) Analyysi Arkkitehtuurisuunnittelu User MainView MainController Recipient Phone buttonpressed() sendrequest(text,names) getnumber(name) Loop: while names End of loop nbr send(text,nbr) OK showmessage( Done ) Yksityiskohtainen suunnittelu Pienimuotoinen esimerkki ratkaisun tarkentumisesta class MainController{ MainView v; Recipient r; Phone p; void sendrequest(text,names) { nbr = r.getnumber(name); p.send(text,nbr); v.showmessage( Done ); } } Ohjelmointi 32

33 7. Miten ohjelmiston laatuvaatimukset vaikuttavat ohjelmiston kehittämiseen? luotettavuutta korostava (dependability, reliability) tuotteen laatuominaisuuksia tarkasteleva Toiminnallisuus (Functionality) suitability, accuracy, interoperability, security Luotettavuus (Reliability) maturity, fault tolerance, recoverability Käytettävyys (Usability) understandability, learnability, operability, attractiveness Tehokkuus (Efficiency) time behaviour, resource utilisation Ylläpidettävyys (Maintainability) analysability, changeability, stability, testability Siirrettävyys (Portability) adaptability, installability, co-existence, replaceability 33

34 Mitä ohjelmistovirheet voivat aiheuttaa? Vakavia onnettomuuksia Therac-25 sädehoitolaitteisto antoi liian suurta säteilyä 80 luvulla Ariane-5 raketti tuhoutui lähdössä 1996 Mars luotain tuhoutui 1999 Pienempiä häiriöitä - yleensä uusien ohjelmistoversioiden käyttöönoton yhteydessä Häiriöt puhelinkeskusten toiminnassa Häiriöt matkapuhelinten toiminnassa Häiriöt pankkien maksuliikenteen hoidossa Häiriöt pankkiautomaattien toiminnassa Häiriöt autojen toiminnassa 34

35 Häiriö (failure) = järjestelmä ei käyttäydy käyttäjän tai asiakkaan toivomalla tavalla Jos puutteellisuutta ei löydetä kehitysvaiheessa, ohjelmaan jää vika (fault), joka aiheuttaa joko säännöllisiä tai satunnaisia häiriöitä Ohjelmistosuunnittelija tai ohjelmoija tekee virheen (mistake), joka aiheuttaa puutteellisuuden (defect) ohjelmistosuunnitelmaan tai koodiin

36 Millä tekniikoilla ohjelmiston laatua parannetaan? Käyttäjän tarpeet Ohjelmisto käytössä Vaatimusmäärittely Käytettävyystestaus Hyväksymistestaus Toiminnallinen suunnittelu - käyttöliittymän suunnittelu - käyttötapaus-analyysi Ohjelmistosuunnittelu Koodaus Testisuunnitelmat Yksikkötestaus Toiminnallinen testaus Integrointitestaus Järjestelmätestaus

37 $ $ $ $ $ $8.000 $6.000 $7.136 $4.000 $2.000 $139 $455 $977 Vaatimusm. Suunnittelu Koodaus Testaus Ylläpito Virheiden ja puutteellisuuksien korjauskustannukset (Pressman 2010, Boehm & Basili 2001)

38 8. Mitkä tekijät aiheuttavat eniten ohjelmistovirheitä? / Galin 2004 Vaatimusmäärittelyjen virheet virheelliset, puutteelliset, ylimääräiset ominaisuudet ongelmat asiakas-kehittäjä kommunikoinnissa Loogiset suunnitteluvirheet virheelliset algoritmit ja prosessin virheet raja-arvovirheet virhetilanteiden puuttuva käsittely Koodausvirheet Testausprosessin puutteet puutteelliset testisuunnitelmat ajanpuute Dokumentointivirheet ei esitellä kaikkea tarpeellista esitellään ylimääräisiä toimintoja virheet käyttöohjeissa 38

39 9. Mikä on ylläpidon rooli? Muutokset ohjelmistoon ovat väistämättömiä Ohjelmiston elinjakson pituus vaikuttaa ylläpidon osuuteen ohjelmiston kokonaiskustannuksista Ylläpito voi olla neljää eri tyyppiä; ennalta ehkäisevää, korjaavaa, täydellistävää tai mukauttavaa Korjaus Laajennus Proaktiivinen Ennalta ehkäisevä Täydellistävä Reaktiivinen Korjaava Mukauttava 39

40 Ohjelmiston evoluutio Mitä vanhoille olemassa oleville (legacy) ohjelmille pitäisi tehdä? ei mitään, jos ei aiheuta ongelmia uudelleen rakentamista (re-engineering), jos halutaan ylläpitää (parantaa rakennetta tai lisätä uusia piirteitä) reverse engineering, tuotetaan kuvaus ylemmälle abstraktiotasolle restructuring ja refactoring, tehdään uusi rakenteeltaan parempi ratkaisu (samalla abstraktiotasolla) 40

41 Esimerkki elinkaarikustannusten jakautumisesta (Schach 1999) vaat.määr. määrittely suun koodaus mod.test integrointi ylläpito Ylläpito (67%) koostuu virheiden korjauksista asiakkaan toiminnan ja ympäristön muuttumisen vaatimista korjauksista uusien piirteiden lisäämisestä 41

42 10. Miten ohjelmistojen kehitys muuttuu tulevina vuosina? 1. Kuvausmenetelmänä UML ei muutosta 2. Ketterien menetelmien voittokulku jatkuu 3. Pilvipalvelujen (pilvilaskenta, cloud computing) rooli kasvaa Pilvipalvelujen käyttämä verkko voi olla jotain neljästä pilvityypistä: Yksityinen pilvipalvelu, (Private cloud) Yrityksen oma tai vuokrattu palvelu, jolloin resurssit ovat ainoastaan yrityksen omassa käytössä (muodostaa oman suljetun verkon) Yhteisön omaan käyttöön tarkoitettu pilvipalvelu (Community cloud) Resurssit jaettuja ainoastaan määritellyn yhteisön käyttöön. Julkinen pilvipalvelu (Public cloud) Julkinen pilvi, avoin, lähes rajoittamattomat resurssit ja käyttäjät. Infrastruktuuri sijaitsee jaetuilla palvelimilla muiden samaa pilvipalveluntarjoajaa käyttävien asiakkaiden kanssa Yhdistelmä pilvipalvelu (Hybrid cloud) 42

43 Tunnetuimmat pilvipalvelun palvelutyypit IaaS - Infrastructure as a Service, IT infrastruktuuri, verkko, laitteistot ja sovellukset hankitaan pilvipalveluna PaaS - Platform as a Service alustapalvelu, jonka päälle asiakas voi rakentaa sovelluksia, esimerkiksi Googlen AppEngine, Microsoftin Azure. SaaS - Software as a Service sovellus tai sovelluksia hankitaan pilvipalveluna. 43

44 Luento 1: lait ja pohdiskeluaiheet 1. Mikä sopii pieniin järjestelmiin ei sovi suuriin / no 11, DeRemer 1975 pienten järjestelmien rakentamisessa saatuja kokemuksia ei voida suoraan venyttää suuriin järjestelmiin One cannot build an ocean cruiser by planning to build 3000 rowing boats (Jones 2000) 2. Ohjelmiston uudelleenkäyttö vähentää kehitysaikaa ja parantaa tuottavuutta ja laatua / no 15, McIlroy 1968 (Naur 1969) uudelleenkäyttö toteutetaan kehysten, suunnittelumallien ja komponenttien keinoin komponenttien uudelleenkäytössä voidaan noudattaa white box tai black box periaatetta 44

45 Luento 1: lait ja pohdiskeluaiheet 3. Henkilöiden lisääminen myöhässä olevaan projektiin aiheuttaa vain lisää myöhästymistä / no 36, Brooks 1975 laki perustuu OS/360 käyttöjärjestelmäprojektissa saatuihin kokemuksiin lakia voidaan soveltaa suuriin projekteihin, jossa osallistujilta vaaditaan sovellusalueen tietämystä miksi näin on? uusien henkilöiden koulutus projektin töiden jakaminen uudelleen (re-partitioning) vaikuttaa rikkovasti projektiin kommunikointikustannukset kasvavat (n 2 ) 45

46 Luento 1: lait ja pohdiskeluaiheet Miten ohjelmistojen korjaamisen aiheuttamaa rapistumista" voidaan välttää? Tee yhteenveto Hookerin seitsemästä periaatteesta ja esitä tiivistelmä omin sanoin muutamalla lauseella (katso SevenPrinciplesOfSoftwareDevelopment) Cockburn esittelee oheisessa paperissa yhtäläisyyksiä ohjelmistojen kehittämisen ja perinteisen teollisen tuotannon välillä. Mikä on mielestäsi paperin tärkein sanoma ohjelmistojen kehittäjille? Cockburn A., What engineering has in common with manufactoring and why it matters, Crosstalk, April, 2007, pp

Johdantoluento. Ohjelmien ylläpito

Johdantoluento. Ohjelmien ylläpito Johdantoluento Ylläpito-termin termin määrittely Ylläpito ohjelmistotuotannon vaiheena Evoluutio-termin määrittely Muita kurssin aiheeseen liittyviä termejä TTY Ohjelmistotekniikka 1 Ohjelmien ylläpito

Lisätiedot

Sytyke ry:n laivaseminaari Software Technology Transfer Pekka Forselius

Sytyke ry:n laivaseminaari Software Technology Transfer Pekka Forselius Sytyke ry:n laivaseminaari 3.-5.9.2002 Testaus ja Laatu Ohjelmiston laadun ja laatuvaatimusten mittaaminen Sytyke ry:n laivaseminaari 3.-5.9.2002 Hyvä laatu? Testaaminen? Ohjelmiston hyvällä laadulla tarkoitamme

Lisätiedot

Laatukustannukset. Laadun hallinta. Laadun kustannuksista

Laatukustannukset. Laadun hallinta. Laadun kustannuksista Laatukustannukset Laadun hallinta Sami Kollanus TJTA330 Ohjelmistotuotanto 13.2.2007 US National Institute of Standards and Technology: Riittämättömän testauksen kustannusten arvioitiin olevan 59 Mrd dollaria

Lisätiedot

Laadun hallinta. Laatukustannukset. Laadun kustannuksista. Sami Kollanus TJTA330 Ohjelmistotuotanto

Laadun hallinta. Laatukustannukset. Laadun kustannuksista. Sami Kollanus TJTA330 Ohjelmistotuotanto Laadun hallinta Sami Kollanus TJTA330 Ohjelmistotuotanto 5.4. Laatukustannukset US National Institute of Standards and Technology: Riittämättömän testauksen kustannusten arvioitiin olevan 59 Mrd dollaria

Lisätiedot

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää

Lisätiedot

Software engineering

Software engineering Software engineering Alkuperäinen määritelmä: Naur P., Randell B. (eds.): Software Engineering: A Report on A Conference Sponsored by the NATO Science Committee, NATO, 1968: The establishment and use of

Lisätiedot

käyttötapaukset mod. testaus

käyttötapaukset mod. testaus käyttötapaukset Jari Ojasti Nokia email : jari.ojasti@nokia.com puh : 040 5926 312 Kartta hyväksyntä määrittely suunnittelu suunnittelu mod. testaus integrointi sys. testaus Ylläpito koodaus (toteutus)

Lisätiedot

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

Johdanto. Mitä on ohjelmistotuotanto? Tämän kurssin näkökulma. Sami Kollanus TJTA330 Ohjelmistotuotanto Johdanto Sami Kollanus TJTA330 Ohjelmistotuotanto 6.3. Mitä on ohjelmistotuotanto? Ohjelmistotekniikka (Software Engineering) tarkoittaa pätevien insinööriperiaatteiden vakiinnuttamista ja käyttämistä

Lisätiedot

Prosessiajattelu. Organisaation prosessikuvaus - CMMI. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessien määritys CMMI käytänteet

Prosessiajattelu. Organisaation prosessikuvaus - CMMI. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessien määritys CMMI käytänteet Organisaation prosessikuvaus - CMMI Prosessikuvaukset ja elinkaarimallit Sami Kollanus TJTA330 Ohjelmistotuotanto 7.2.2007 Level5 Level4 Level3 Requirements Development Technical Solution Product Integration

Lisätiedot

Prosessiajattelu. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessikuvaus - CMMI. Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4.

Prosessiajattelu. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessikuvaus - CMMI. Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4. Prosessikuvaukset ja elinkaarimallit Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4. Organisaation prosessikuvaus - CMMI Level5 Level4 Organizational Innovation and Deployment Causal Analysis and Resolution

Lisätiedot

Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss , )

Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss , ) Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss. 121-133, 135 141) Jari Ojasti Nokia email : jari.ojasti@nokia.com puh : 040 5926 312 Sisältö Sekvenssikaaviot ja tilakaaviot osana UML:ia Sekvenssikaaviot

Lisätiedot

Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistoprosessit ja ohjelmistojen laatu (4op)

Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistoprosessit ja ohjelmistojen laatu (4op) 581361 Ohjelmistoprosessit ja ohjelmistojen laatu (4op) Ohjelmistojärjestelmien syventävien opintojen kurssi Myös ohjelmistotekniikan profiilin pakollinen kurssi eli ohjelmistotekniikka-aiheisen gradun

Lisätiedot

$$$ Raha ratkaisee. $$$ Raha ratkaisee. Ohjelmistotuote. Ohjelmistotekniikan määritelmä

$$$ Raha ratkaisee. $$$ Raha ratkaisee. Ohjelmistotuote. Ohjelmistotekniikan määritelmä $$$ Raha ratkaisee On vaara rakastua tekniikkaan, myös asiakkailla Kaikki pitää pystyä perustelemaan taloudellisesti Projektin toteutus yleensä -> voidaan jättää toteuttamatta, jos ei maksa itseään takaisin

Lisätiedot

Ohjelmistotekniikan menetelmät, UML

Ohjelmistotekniikan menetelmät, UML 582101 - Ohjelmistotekniikan menetelmät, UML 1 Sisältö DFD- ja sidosryhmäkaavioiden kertaus Oliomallinnus UML:än kaaviotyypit 2 Tietovuokaaviot Data flow diagrams, DFD Historiallisesti käytetyin kuvaustekniikka

Lisätiedot

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1 Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon 31.10.2008 Harri Laine 1 Ohjelmisto Tietokoneohjelma (computer program) toimintaohje, jonka mukaan toimien tietokone suorittaa jonkin tietojenkäsittelytehtävän

Lisätiedot

Oleelliset vaikeudet OT:ssa 1/2

Oleelliset vaikeudet OT:ssa 1/2 Oleelliset vaikeudet OT:ssa 1/2 Monimutkaisuus: Mahdoton ymmärtää kaikki ohjelman tilat Uusien toimintojen lisääminen voi olla vaikeaa Ohjelmista helposti vaikeakäyttöisiä Projektiryhmän sisäiset kommunikointivaikeudet

Lisätiedot

Pohdiskelujen aiheita study group työskentelyyyn Luento 1:

Pohdiskelujen aiheita study group työskentelyyyn Luento 1: 1 Pohdiskelujen aiheita study group työskentelyyyn Luento 1: Miten ohjelmistojen korjaamisen aiheuttamaa "rapistumista" voidaan välttää? Tee yhteenveto Hookerin seitsemästä periaatteesta ja esitä tiivistelmä

Lisätiedot

ITK130 Ohjelmistoprosessi

ITK130 Ohjelmistoprosessi ITK130 Ohjelmistoprosessi Ohjelmistotuotteen elinkaari Ohjelmistoprosessimalli Koodaa ja korjaa Miksi ohjelmistoprosesseja? Prosessimallin tavoitteet Prosessi ongelmaratkaisuna Prosessi, musta laatikko

Lisätiedot

Scrum is Not Enough. Scrum ei riitä. Ari Tanninen & Marko Taipale. Nääsvillen oliopäivä 2009 Tampereen teknillinen yliopisto 9.12.

Scrum is Not Enough. Scrum ei riitä. Ari Tanninen & Marko Taipale. Nääsvillen oliopäivä 2009 Tampereen teknillinen yliopisto 9.12. Scrum is Not Enough Scrum ei riitä Ari Tanninen & Marko Taipale Nääsvillen oliopäivä 2009 Tampereen teknillinen yliopisto 9.12.2009 Ari Tanninen Vanhempi ohjelmistoinsinööri Marko Taipale Teknologiajohtaja,

Lisätiedot

Tutkittua tietoa. Tutkittua tietoa 1

Tutkittua tietoa. Tutkittua tietoa 1 Tutkittua tietoa T. Dybå, T. Dingsøyr: Empirical Studies of Agile Software Development : A Systematic Review. Information and Software Technology 50, 2008, 833-859. J.E. Hannay, T. Dybå, E. Arisholm, D.I.K.

Lisätiedot

PLA-32820 Mobiiliohjelmointi. Mika Saari mika.saari@tut.fi http://www.students.tut.fi/~saari5/pla_32820_2016/

PLA-32820 Mobiiliohjelmointi. Mika Saari mika.saari@tut.fi http://www.students.tut.fi/~saari5/pla_32820_2016/ PLA-32820 Mobiiliohjelmointi Mika Saari mika.saari@tut.fi http://www.students.tut.fi/~saari5/pla_32820_2016/ 1. Luento 2 Suoritus vaatimukset Kurssin sisältö Kirjallisuus Mobiiliohjelmointi Mobiililaitteita...

Lisätiedot

A4.1 Projektityö, 5 ov.

A4.1 Projektityö, 5 ov. A4.1 Projektityö, 5 ov. Kurssin esitietovaatimuksia Kurssin tavoitteista Kurssin sisällöstä Luentojen tavoitteista Luentojen sisällöstä Suoritustavoista ja -vaatimuksista Arvostelukriteereistä Motivointia

Lisätiedot

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Ohjelmistojen mallintaminen Unified Modeling Language (UML) 582104 Ohjelmistojen mallintaminen Unified Modeling Language (UML) 1 Olioperustaisuus Olio toimii mallinnuksen perusyksikkönä eri abstraktiotasoilla Järjestelmän rajaus, suunnittelu, ohjelmointi, suoritus..

Lisätiedot

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008 1 Johdanto 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Katsaus ohjelmistotuotannon kehittymiseen 1.3 Epäonnistuneen ohjelmistoarkkitehtuurin seurauksia 1.4 Ohjelmistoarkkitehtuuri ja ohjelmistokehitysprosessi

Lisätiedot

Ohjelmistotuotteen hallinnasta

Ohjelmistotuotteen hallinnasta Ohjelmistotuotteen hallinnasta Luennon tavoitteista Luennon sisällöstä Motivointia Lähteinä: Haikala ja Märijärvi, Ohjelmistotuotanto Royce, Software Project Management, A Unified Framework 1 Tavoitteista

Lisätiedot

Määrittely- ja suunnittelumenetelmät

Määrittely- ja suunnittelumenetelmät Menetelmädokumentti Määrittely- ja suunnittelumenetelmät Versio Päiväys Tekijä Kuvaus 0.01 5.12.01 Pekka Koskinen Alustava sisällysluettelo 0.1 7.12.01 Pekka Koskinen Ensimmäinen luonnos 1.0 11.12.01 Pekka

Lisätiedot

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista 582101 - Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista 1 Ohjelmistotuotannon työkaluuista Projektinhallintatyökalut (ei käsitellä tällä kurssilla) CASE- ja mallinnustyökalut (esim. Poseidon)

Lisätiedot

TIEKE Verkottaja Service Tools for electronic data interchange utilizers. Heikki Laaksamo

TIEKE Verkottaja Service Tools for electronic data interchange utilizers. Heikki Laaksamo TIEKE Verkottaja Service Tools for electronic data interchange utilizers Heikki Laaksamo TIEKE Finnish Information Society Development Centre (TIEKE Tietoyhteiskunnan kehittämiskeskus ry) TIEKE is a neutral,

Lisätiedot

Johdatusta ohjelmistotekniikkaan

Johdatusta ohjelmistotekniikkaan Johdatusta ohjelmistotekniikkaan OT:n historiaa 4 vaihetta (1/2) 1. Vaihe (0 60-luvun alku) Vähän tietokoneita Eräajo-tyyppisiä ohjelmia Pääasiassa matemaattisia, pieniä yhden käyttäjän sovelluksia Ei

Lisätiedot

Määrittelyvaihe. Projektinhallinta

Määrittelyvaihe. Projektinhallinta Määrittelyvaihe Projektinhallinta testaus määrittely suunnittelu ohjelmointi käyttöönotto, testaus tuotteenhallinta laadunvarmistus dokumentointi vaatimustenhallinta Määrittely Määrittely, eli kansanomaisesti

Lisätiedot

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa:

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa: Testaus käsite Sekalaista asiaa Sami Kollanus 15.11.2006 Jos ajatellaan, että = V&V, voidaan erottaa: Staattinen Dynaaminen Toisaalta voidaan määritellä Myersin (1979) mukaan: Testaus on ohjelman suoritusta,

Lisätiedot

Suorituskyvyn varmistaminen sovelluskehityksen eri vaiheissa Paavo Häkkinen, Presales Teamleader Compuware Finland

Suorituskyvyn varmistaminen sovelluskehityksen eri vaiheissa Paavo Häkkinen, Presales Teamleader Compuware Finland Suorituskyvyn varmistaminen sovelluskehityksen eri vaiheissa Paavo Häkkinen, Presales Teamleader Compuware Finland Epäonnistuminen ei ole vaikeaa Approximately 40% of mission-critical mainframe projects

Lisätiedot

Käyttäjäkeskeisen suunnittelun periaatteet ja prosessit

Käyttäjäkeskeisen suunnittelun periaatteet ja prosessit Käyttäjäkeskeisen suunnittelun periaatteet ja prosessit Kurssilla: Johdatus käyttäjäkeskeiseen tuotekehitykseen 23.1.2008 Johanna Viitanen johanna.viitanen@soberit.hut.fi Luennon aiheet Tuotekehityksen

Lisätiedot

Käyttötapausanalyysi ja testaus tsoft

Käyttötapausanalyysi ja testaus tsoft Käyttötapausanalyysi ja testaus tsoft 15.09.2004 http://cs.joensuu.fi/tsoft/ Johdanto Use Case analyysi (käyttötapausanalyysi) on yleisesti käytetty järjestelmälle asetettujen toiminnallisten vaatimusten

Lisätiedot

Kontrollipolkujen määrä

Kontrollipolkujen määrä Testaus Yleistä Testaus on suunnitelmallista virheiden etsimistä Tuotantoprosessissa ohjelmaan jää aina virheitä, käytettävistä menetelmistä huolimatta Hyvät menetelmät, kuten katselmoinnit pienentävät

Lisätiedot

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 811122P (5 op.) 12.12.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon 582104 Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon 1 Lyhyt johdatus ohjelmistotuotantoon Ohjelmistotuotanto, ohjelmistoprojektit Miten ohjelmistojen tuottaminen eroaa teollisesta tuotannosta

Lisätiedot

2. Ohjelmistotuotantoprosessi

2. Ohjelmistotuotantoprosessi 2. Ohjelmistotuotantoprosessi Peruskäsitteet: prosessimalli: mahdollisimman yleisesti sovellettavissa oleva ohjeisto ohjelmistojen tuottamiseen ohjelmistotuotantoprosessi: yrityksessä käytössä oleva tapa

Lisätiedot

IIO30100 Tietokantojen suunnittelu (6 op)

IIO30100 Tietokantojen suunnittelu (6 op) IIO30100 Tietokantojen suunnittelu (6 op) Opintojakson esittely Jouni Huotari K2008 http://student.labranet.jamk.fi/~huojo/opetus/iio30100/ Tavoitteena on, että opiskelija: Ymmärtää käsitteellisen mallintamisen

Lisätiedot

Katselmoinnit. review) Katselmoinnit (review( Mitä ovat katselmoinnit? Katselmoinnin määritelmä (IEEE 1988)

Katselmoinnit. review) Katselmoinnit (review( Mitä ovat katselmoinnit? Katselmoinnin määritelmä (IEEE 1988) Katselmoinnit Johdatus ohjelmistotekniikkaan Sami Kollanus 19.10.2004 Katselmoinnin määritelmä (IEEE 1988) An evaluation of software element(s) or projects status to ascertain discrepancies from planned

Lisätiedot

Onnistunut SAP-projekti laadunvarmistuksen keinoin

Onnistunut SAP-projekti laadunvarmistuksen keinoin Onnistunut SAP-projekti laadunvarmistuksen keinoin 07.10.2010 Patrick Qvick Sisällys 1. Qentinel 2. Laadukas ohjelmisto täyttää sille asetetut tarpeet 3. SAP -projektin kriittisiä menestystekijöitä 4.

Lisätiedot

Suunnitteluvaihe prosessissa

Suunnitteluvaihe prosessissa Suunnittelu Suunnitteluvaihe prosessissa Silta analyysin ja toteutuksen välillä (raja usein hämärä kumpaankin suuntaan) Asteittain tarkentuva Analyysi -Korkea abstraktiotaso -Sovellusläheiset käsitteet

Lisätiedot

ITK130 Johdatus ohjelmistotekniikkaan

ITK130 Johdatus ohjelmistotekniikkaan ITK130 Johdatus ohjelmistotekniikkaan Sami Kollanus Luennon sisältö Kurssin käytännön asiat Kurssin sisältö Ohjelmistotekniikka Missä ohjelmistotekniikkaa tarvitaan? Erilaisia ohjelmistotyyppejä Ohjelmistotekniikka

Lisätiedot

Olioperustaisuus (object oriented)

Olioperustaisuus (object oriented) DO NOT PRINT THIS DOCUMENT Olioperustainen ohjelmistokehitys Olioperustaisuus (object oriented) järjestelmä (system) muodostuu joukosta olioita (object), jotka yhteistyössä toimien tuottavat järjestelmän

Lisätiedot

Aluksi. Riskien hallinta. Riskityyppejä. Riskillä on kaksi ominaisuutta. Reaktiivinen strategia. Proaktiivinen strategia

Aluksi. Riskien hallinta. Riskityyppejä. Riskillä on kaksi ominaisuutta. Reaktiivinen strategia. Proaktiivinen strategia Aluksi Riskien hallinta Sami Kollanus TJTA330 Ohjelmistotuotanto 24.1.2007 Reaktiivinen strategia Indiana Jones -tyyli Ei huolehdita ongelmista ennen kuin ne tapahtuu Proaktiivinen strategia Tunnistetaan

Lisätiedot

TIETOKANNAN SUUNNITTELU

TIETOKANNAN SUUNNITTELU TIETOKANNAN SUUNNITTELU HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI DOCENDO (2003, 2005) LUKU 2 JOUNI HUOTARI & ARI HOVI TIETOJEN MALLINNUS TIETOJEN MALLINNUKSESTA TIETOKANTAAN Käsiteanalyysin

Lisätiedot

Unified Process (UP)

Unified Process (UP) Unified Process (UP) Scott Kendall(2002) The Unified Process Explained Historia Luennon sisältö UP prosessin periaatteet Perusperiaatteet Iteraatio, inkrementti, julkaisu Unified process kuvaus Tehtäväkokonaisuudet

Lisätiedot

statbeatmobile PROJECT REVIEW iteration 1

statbeatmobile PROJECT REVIEW iteration 1 statbeatmobile PROJECT REVIEW iteration 1 agenda Projekti Status Käytännöt Tulokset Katsaus eteenpäin PROJEKTI / mikä on statbeat? Sosiaalinen joukkueurheilupalvelu Keskustelu, fanit, kavereiden joukkueet,

Lisätiedot

Käytettävyys ja käyttäjätutkimus. Yhteisöt ja kommunikaatiosuunnittelu 2012 / Tero Köpsi

Käytettävyys ja käyttäjätutkimus. Yhteisöt ja kommunikaatiosuunnittelu 2012 / Tero Köpsi Käytettävyys ja käyttäjätutkimus Yhteisöt ja kommunikaatiosuunnittelu 2012 / Tero Köpsi Teron luennot Ke 15.2 miniluento Ti 28.2 viikkotehtävän anto (T,M) To 1.3 Tero paikalla (tehtävien tekoa) Ti 6.3

Lisätiedot

KDK-asiakasliittymä linjauksia KDK-seminaari Kristiina Hormia-Poutanen

KDK-asiakasliittymä linjauksia KDK-seminaari Kristiina Hormia-Poutanen KDK-asiakasliittymä linjauksia 2012 KDK-seminaari 21.3.2012 Kristiina Hormia-Poutanen Asiakasliittymä pohjustusta linjauksille KDK-johtoryhmä 9.12.2011 Kansalliskirjaston esitys: Puretaan Kansalliskirjaston

Lisätiedot

DEE Aurinkosähkön perusteet (Foundations of Solar Power) Sali SE211 Keskiviikkoisin ja perjantaisin klo

DEE Aurinkosähkön perusteet (Foundations of Solar Power) Sali SE211 Keskiviikkoisin ja perjantaisin klo 1 DEE-53010 Aurinkosähkön perusteet (Foundations of Solar Power) Sali SE211 Keskiviikkoisin ja perjantaisin klo 12.15 14.00 2 Luennot pidetään salissa SE211 keskiviikkoisin ja perjantaisin klo 12.15 14.00

Lisätiedot

Ohjelemistotuotanto, syksy 1998 /Prosessi Prosessimallit

Ohjelemistotuotanto, syksy 1998 /Prosessi Prosessimallit Prosessimallit Prosessimalli on ohjelmiston elinkaaren rakenteen määrittely ts. kuvaus sille millaisten vaiheiden kautta ohjelmisto kehittyy ideasta hautaan mahdollisimman yleisesti sovellettavissa oleva

Lisätiedot

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmistojen mallintaminen. Luento 11, 7.12. Ohjelmistojen mallintaminen Luento 11, 7.12. Viime viikolla... Oliosuunnittelun yleiset periaatteet Single responsibility eli luokilla vain yksi vastuu Program to an interface, not to concrete implementation,

Lisätiedot

Web Services tietokantaohjelmoinnin perusteet

Web Services tietokantaohjelmoinnin perusteet ASP.NET Web Services Web Services tietokantaohjelmoinnin 2 (22) Sisällys Harjoitus 1: Tietokannat ja Web Services... 3 Harjoitus 2: Windows Client... 10 Harjoitus 3: Datan päivitys TableAdapterin avulla...

Lisätiedot

Ohjelmistojen mallintaminen. Matti Luukkainen

Ohjelmistojen mallintaminen. Matti Luukkainen Ohjelmistojen mallintaminen Matti Luukkainen Kurssin aihepiiri: ohjelmistotuotannon alkeita [wikipedia]: Ohjelmistotuotanto on yhteisnimitys niille työnteon ja työnjohdon menetelmille, joita käytetään,

Lisätiedot

Yhteenveto. Ymmärrä kokonaisuus

Yhteenveto. Ymmärrä kokonaisuus Mikko Jokela Yhteenveto Poista tiedon monistaminen Järjestele hallittaviin kokonaisuuksiin Mahdollista informaation kulku Luo tiedolle saavutettavuus Käännä oikealle kielelle Ymmärrä kokonaisuus Yritykset

Lisätiedot

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4 Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4 Tämän esityksen sisältö tausta avoimet toimittajakohtaiset rajapinnat (toimittajan hallitsemat rajapinnat) avoimet yhteiset rajapinnat (tilaajan

Lisätiedot

Testiautomaatio tietovarastossa. Automaattisen regressiotestauksen periaate ja hyödyt

Testiautomaatio tietovarastossa. Automaattisen regressiotestauksen periaate ja hyödyt Testiautomaatio tietovarastossa Automaattisen regressiotestauksen periaate ja hyödyt Sisältö 2 Testaus kiinteänä osana DW-toteutusta Regressiotestauksen merkitys Robot Framework Automatisoitu DW:n regressiotestaus:

Lisätiedot

UML - unified modeling language

UML - unified modeling language UML - unified modeling language Lähtökohtana: Booch, Rumbaugh, Jacobsson Tavoitteena Unified Method - syntyykö? Kehittäjänä: Rational Inc. Standardointi: Object Management Group (OMG) - vaiheessa Lähteet:

Lisätiedot

Työmäärän arviointi. Vaihtoehtoja. Sami Kollanus TJTA330 Ohjelmistotuotanto

Työmäärän arviointi. Vaihtoehtoja. Sami Kollanus TJTA330 Ohjelmistotuotanto Työmäärän arviointi Sami Kollanus TJTA330 Ohjelmistotuotanto 20.3. Vaihtoehtoja Arvioidaan projektin jälkeen (onnistuu varmasti) Verrataan karkeasti samanlaisiin aiempiin projekteihin Ositetaan projekti

Lisätiedot

Testaussuunnitelma Labra

Testaussuunnitelma Labra Testaussuunnitelma Labra Helsinki 25.8.2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 1 Kurssi 581260 Ohjelmistotuotantoprojekti (9+1op) Projektiryhmä Anssi Kapanen,

Lisätiedot

Katselmoinnin määritelmä. Katselmoinnit osa 1. ja vielä ajatuksia katselmoinneista. Katselmointi. Katselmointi, katselmus (review) IEEE Std

Katselmoinnin määritelmä. Katselmoinnit osa 1. ja vielä ajatuksia katselmoinneista. Katselmointi. Katselmointi, katselmus (review) IEEE Std Katselmoinnin määritelmä Katselmoinnit osa 1 Sami Kollanus 1.12.2006, katselmus (review) IEEE Std 1028-1988 Ohjelmiston osien tai projektin tilan arviointi (evaluation), jonka tarkoitus on tunnistaa tuotosten

Lisätiedot

Unified Modeling Language

Unified Modeling Language Unified Modeling Language Confuse 25.11.2001 Tila Versio: 1.0 Vaihe: T1 Jakelu: Julkinen Luontipäivä: 15.11.2001 Antti Haapakoski Muutettu viimeksi: 25.11.2001 Antti Haapakoski Sisältö 1 Yleistä 1 2 Mallinnuksesta

Lisätiedot

Avoimen ja yhteisen rajapinnan hallintamalli

Avoimen ja yhteisen rajapinnan hallintamalli Avoimen ja yhteisen rajapinnan hallintamalli 1.10.2015 Sisältö tausta avoimet toimittajakohtaiset rajapinnat (toimittajan hallitsemat rajapinnat) avoimet yhteiset rajapinnat (tilaajan hallitsemat rajapinnat)

Lisätiedot

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

IIO30100 TIETOKANTOJEN SUUNNITTELU (6 OP)

IIO30100 TIETOKANTOJEN SUUNNITTELU (6 OP) IIO30100 TIETOKANTOJEN SUUNNITTELU (6 OP) OPINTOJAKSON ESITTELY JOUNI HUOTARI S2009 - K2010 http://homes.jamk.fi/~huojo/opetus/iio30100/ TAVOITTEENA ON, ETTÄ OPISKELIJA: Ymmärtää käsitteellisen mallintamisen

Lisätiedot

Laadunvarmistustekniikat

Laadunvarmistustekniikat Laadunvarmistustekniikat Ohjelmistojen laadunvarmistustekniikoita: testaus (testing) ohjelman suorittamista tarkoituksena löytää virheitä tarkastukset (inspections, reviews) asiantuntijoiden suorittamia

Lisätiedot

9. Ohjelmistoarkkitehtuurien arviointi

9. Ohjelmistoarkkitehtuurien arviointi 9. Ohjelmistoarkkitehtuurien arviointi Johdanto ATAM-menetelmä Esimerkki Käytännön kokemuksia ja ongelmia Yhteenveto Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1 Mitä on ohjelmistoarkkitehtuurin

Lisätiedot

Master s Thesis opinnäytetyön tuki Industrial Management Master s -ohjelmassa. TkT Marjatta Huhta, Metropolia

Master s Thesis opinnäytetyön tuki Industrial Management Master s -ohjelmassa. TkT Marjatta Huhta, Metropolia Master s Thesis opinnäytetyön tuki Industrial Management Master s -ohjelmassa TkT Marjatta Huhta, Metropolia 1 Esityksen sisältö Master s in Industrial Management ohjelman kokonaisuus, tavoitteet ja rakenne

Lisätiedot

TIETOJÄRJESTELMIEN AMMATILLISET ERIKOISTUMISOPINNOT (30 op)

TIETOJÄRJESTELMIEN AMMATILLISET ERIKOISTUMISOPINNOT (30 op) 1 TIETOJÄRJESTELMIEN AMMATILLISET ERIKOISTUMISOPINNOT (30 op) 14.1. 16.12.2011 Aikuis- ja täydennyskoulutuspalvelut Linnankatu 6, PL 51, 87101 KAJAANI www.aikopa.fi 2 KAJAANIN AMMATTIKORKEAKOULU Tervetuloa

Lisätiedot

Scrumin käyttö ketterässä sovelluskehityksessä

Scrumin käyttö ketterässä sovelluskehityksessä Scrumin käyttö ketterässä sovelluskehityksessä 9.4.2008 Janne Kuha Manager, Java Services Descom Oy Janne Kuha Manager, Java Services janne.kuha@descom.fi Kuka? Descom Oy:llä, sitä ennen Wanadu Inc., Mountain

Lisätiedot

Indoor Environment 2011-2015

Indoor Environment 2011-2015 Indoor Environment 2011-2015 18.4.2013 Risto Kosonen Ohjelma on investointinäkökulmasta edennyt pääosin suunnitelman mukaisesti Työpaketti Kumulatiiviset kustannukset 1.5.2011 31.8.2012 Kumulatiiviset

Lisätiedot

Nimettömien tietojen lähettäminen Lenovolle

Nimettömien tietojen lähettäminen Lenovolle Nimettömien tietojen lähettäminen Lenovolle Sisältö Nimettömien tietojen lähettäminen Lenovolle... 1 Harmony... 1 Lenovo Companion 3.0... 2 Lenovo Customer Engagement Service... 3 Lenovo Experience Improvement

Lisätiedot

8. Laadunvalvonta. Mitä laatu on?

8. Laadunvalvonta. Mitä laatu on? 8. Laadunvalvonta Ohjelmistojen laatu on parantunut paljon viimeisen 15 vuoden aikana. Tämä näkyy mm. siinä, että asiakkaat ovat keskimäärin tyytyväisempiä tuotteiden toimintaan kuin 90-luvun alussa. Tähän

Lisätiedot

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä

Lisätiedot

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita 581259 Ohjelmistotuotanto 378 Lemström, 2006-2011 581259 Ohjelmistotuotanto Kiitos Tuomolle kuvasta 379 Ohjelmistotuotannon perustehtävät projektinhallinta:

Lisätiedot

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) 581305-6 Tietokoneen toiminta (Computer Organization I) Teemu Kerola Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2003 Muuntokoulutettaville 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus

Lisätiedot

Avoin lähdekoodi hankinnoissa Juha Yrjölä

Avoin lähdekoodi hankinnoissa Juha Yrjölä Avoin lähdekoodi hankinnoissa 9.6.2016 Juha Yrjölä Mitä on avoin lähdekoodi? 1. Lähdekoodi tulee jakaa ohjelmiston mukana tai antaa saataville joko ilmaiseksi tai korkeintaan luovuttamiskulujen hinnalla.

Lisätiedot

Green Growth Sessio - Millaisilla kansainvälistymismalleilla kasvumarkkinoille?

Green Growth Sessio - Millaisilla kansainvälistymismalleilla kasvumarkkinoille? Green Growth Sessio - Millaisilla kansainvälistymismalleilla kasvumarkkinoille? 10.10.01 Tuomo Suortti Ohjelman päällikkö Riina Antikainen Ohjelman koordinaattori 10/11/01 Tilaisuuden teema Kansainvälistymiseen

Lisätiedot

Prosessikuvaukset ja elinkaarimallit

Prosessikuvaukset ja elinkaarimallit Prosessikuvaukset ja elinkaarimallit Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4. Organisaation prosessikuvaus - CMMI Level5 Level4 Organizational Innovation and Deployment Causal Analysis and Resolution

Lisätiedot

Ohjelmistotekniikka: Luento 6

Ohjelmistotekniikka: Luento 6 Ohjelmistotekniikka: Luento 6 Jouni Lappalainen Luku 8: Suunnittelutekniikat suunnittelun käsitteet suunnittelumalli (design model) arkkitehtuuri, rajapinnat, komponenttitaso, sijoitustaso Luku 9: Arkkitehtuurisuunnittelu

Lisätiedot

Agenda. Läpäisyvaatimukset Henkilökunta Luennot ja aikataulu Kurssimateriaali Harjoitustyöt Demoharjoitus Tentti ja arvostelu Muuta?

Agenda. Läpäisyvaatimukset Henkilökunta Luennot ja aikataulu Kurssimateriaali Harjoitustyöt Demoharjoitus Tentti ja arvostelu Muuta? OHJ-4301 Sulautettu Ohjelmointi (http://www.cs.tut.fi/~sulo/) 5op, to 12-14, 14, TB 109 Arto Salminen, arto.salminen@tut.fi Agenda Läpäisyvaatimukset Henkilökunta Luennot ja aikataulu Kurssimateriaali

Lisätiedot

Ohjelmistoarkkitehtuurit kevät

Ohjelmistoarkkitehtuurit kevät Ohjelmistoarkkitehtuurit Kevät 2011-2012 Johannes Koskinen http://www.cs.tut.fi/~ohar/ 9. Ohjelmistoarkkitehtuurien arviointi Johdanto ATAM-menetelmä Esimerkki Käytännön kokemuksia ja ongelmia Yhteenveto

Lisätiedot

Ohjelmistoarkkitehtuurit

Ohjelmistoarkkitehtuurit Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ 1 Ohjelmistoarkkitehtuurien arviointi Johdanto ATAM-menetelmä Esimerkki Käytännön kokemuksia ja ongelmia Yhteenveto

Lisätiedot

Ohjelmistoarkkitehtuurien arviointi

Ohjelmistoarkkitehtuurien arviointi Ohjelmistoarkkitehtuurit Kevät 2012-2013 Johannes Koskinen http://www.cs.tut.fi/~ohar/ 1 Ohjelmistoarkkitehtuurien arviointi Johdanto ATAM-menetelmä Esimerkki Käytännön kokemuksia ja ongelmia Yhteenveto

Lisätiedot

1510 Ihminen ja tietoliikennetekniikka

1510 Ihminen ja tietoliikennetekniikka 1510 Ihminen ja tietoliikennetekniikka Intro http://www.comlab.hut.fi/studies/1510/etusivu.html 1510 Ihminen ja tietoliikennetekniikka Ohjelma tänään Kurssin käytännön järjestelyt Katsaus käyttäjäkeskeiseen

Lisätiedot

Ohjelmistojen mallintaminen

Ohjelmistojen mallintaminen Ohjelmistojen mallintaminen - Mallit - Ohjelmiston kuvaaminen malleilla 31.10.2008 Harri Laine 1 Malli: abstraktio jostain kohteesta Abstrahointi: asian ilmaiseminen tavalla, joka tuo esiin tietystä näkökulmasta

Lisätiedot

Johdatus(ta) ohjelmistotekniikkaan 2006

Johdatus(ta) ohjelmistotekniikkaan 2006 Johdatus(ta) ohjelmistotekniikkaan 2006 Tommi Kärkkäinen Jyväskylän yliopisto tietotekniikan laitos 1 Agendaa 1. IT:n kehitystrendeistä 2. Ohjelmista 3. Ohjelmien kehittämisestä 4. Ohjelmistotekniikasta

Lisätiedot

T-121.2100 Johdatus käyttäjäkeskeiseen tuotekehitykseen 2 op. Marko Nieminen

T-121.2100 Johdatus käyttäjäkeskeiseen tuotekehitykseen 2 op. Marko Nieminen T-121.2100 Johdatus käyttäjäkeskeiseen tuotekehitykseen 2 op T-121.2100/3110: Henkilökunta Vastuuopettajat Johanna Viitanen, Assistentti.2100 Lasse Lumiaho, Janne Käki Assistentti.3110 Janne Käki, Lasse

Lisätiedot

Vaatimusmäärittely- ja hallinta. Peruskäsitteet. Syyt aikataulun ja budjetin ylitykseen. TJTA330 Ohjelmistotuotanto

Vaatimusmäärittely- ja hallinta. Peruskäsitteet. Syyt aikataulun ja budjetin ylitykseen. TJTA330 Ohjelmistotuotanto Vaatimusmäärittely- ja hallinta TJTA330 Ohjelmistotuotanto 27.3. Peruskäsitteet Vaatimusten yhteydessä puhutaan yleensä erikseen vaatimusmäärittelystä ja vaatimusten hallinnasta Vaatimusmäärittely on vaatimusten

Lisätiedot

JHS 179 Kokonaisarkkitehtuurin suunnittelu ja kehittäminen Liite 9. Virtualisointi ja pilvipalvelut teknologia-arkkitehtuurin suunnittelussa

JHS 179 Kokonaisarkkitehtuurin suunnittelu ja kehittäminen Liite 9. Virtualisointi ja pilvipalvelut teknologia-arkkitehtuurin suunnittelussa JHS 179 Kokonaisarkkitehtuurin suunnittelu ja kehittäminen Liite 9. Virtualisointi ja pilvipalvelut teknologia-arkkitehtuurin suunnittelussa Versio: Palautekierros, 2. palautekierros Julkaistu: Voimassaoloaika:

Lisätiedot

Kurssin hallinta -työväline

Kurssin hallinta -työväline Kurssin hallinta -työväline Kurssin hallinta -työvälineellä muokataan kursseja A&Ooppimisympäristöalustalla Kurssi koostuu - ohjelmasta (linkit työkaluihin& muihin resursseihin), - materiaaleista, - keskusteluryhmästä,

Lisätiedot

Käytännön haasteita ja ratkaisuja integraation toteutuksessa. Jukka Jääheimo Teknologiajohtaja Solita Oy

Käytännön haasteita ja ratkaisuja integraation toteutuksessa. Jukka Jääheimo Teknologiajohtaja Solita Oy Käytännön haasteita ja ratkaisuja integraation toteutuksessa Jukka Jääheimo Teknologiajohtaja Solita Oy 13.03.2008 Sisältö 2 Alustus Integraation haasteet Integraatioarkkitehtuuri Hyvän integraatioarkkitehtuurin

Lisätiedot

Ohjelmistotekniikan pääaine

Ohjelmistotekniikan pääaine Ohjelmistotekniikan pääaine Ari Korhonen 7.11.2012 Ohjelmistotekniikan opetus! Tietotekniikan laitoksessa tutkitaan ja opetetaan laajaalaisesti tieto- ja ohjelmistotekniikan menetelmiä ja niiden soveltamista.

Lisätiedot

Kevät Ohjelmistoarkkitehtuurit 2014

Kevät Ohjelmistoarkkitehtuurit 2014 Ohjelmistoarkkitehtuurit Kevät 2014 http://www.cs.tut.fi/~ohar/ 1 Ohjelmistoarkkitehtuurien arviointi Johdanto ATAM-menetelmä Esimerkki Käytännön kokemuksia ja ongelmia Yhteenveto 2 Mitä on ohjelmistoarkkitehtuurin

Lisätiedot

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET.

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET. BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET. Pekka Ollikainen Open Source Microsoft CodePlex bio Verkkosivustovastaava Suomen Sarjakuvaseura

Lisätiedot

Ohjelmistotuotanto, syksy laatu Ohjelmiston laatu

Ohjelmistotuotanto, syksy laatu Ohjelmiston laatu Ohjelmiston laatu Laatu - useita eri näkemyksiä klassinen: kaikki tarpeet huomioiva hyvyys, subjektiivinen tuote ja hintasidonnainen: mitä kallimpi sitä parempi tarkoituksenmukaisuus: laadukas tuote sopii

Lisätiedot

Avoimen lähdekoodin ohjelmistot julkisessa hallinnossa

Avoimen lähdekoodin ohjelmistot julkisessa hallinnossa Avoimen lähdekoodin ohjelmistot julkisessa hallinnossa Ohjelmistotuotteen hallinta ja hallinnointi 22.4.2015 Mikael Vakkari, neuvotteleva virkamies. VM Strategisten linjausten perusteemat Avoimuus Hallinto,

Lisätiedot

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia Ohjelmistojen mallintaminen, kurssikoe 15.12. esimerkkivastauksia Tehtävä 1 a: Ohjelmistotuotantoprosessi sisältää yleensä aina seuraavat vaiheet: määrittely, suunnittelu, toteutus, testaus ja ylläpito.

Lisätiedot

LAATURAPORTTI Iteraatio 1

LAATURAPORTTI Iteraatio 1 LAATURAPORTTI Iteraatio 1 LAATURAPORTTI 2 (7) VERSION HALLINTA Versio Päivä Tekijä Kuvaus 0.1 9.12.2006 Kaarlo Lahtela Ensimmäinen versio 0.2 Kaarlo Lahtela Korjauksia 1.0 Lauri Kiiski Katselmointi ja

Lisätiedot