Ohjelmistotekniikka Syksy 2018
|
|
- Jussi Auvinen
- 5 vuotta sitten
- Katselukertoja:
Transkriptio
1 Ohjelmistotekniikka Syksy 2018 Vastuuhenkilö: Jouni Lappalainen Luennot ja esseet: Antti Juustila Harjoitukset ja study group: Jouni Lappalainen
2 Luennot Luennoilla käydään läpi Pressmanin Software Engineering -kirjan (7. painos) sisältö Hyvää materiaalia löytyy myös kirjasta Williams L., A (Partial) Introduction to Software Engineering Practices and Methods (kannattaa googlettaa termillä williams-draft-book) Luennoilla tehdään myös pieniä luentotehtäviä. Luentotehtävien ratkaisu menestyksekkäästi antaa pisteitä kurssisuoritusta kohti. Tehtäviä on sekä luennon aluksi/ luennolle valmistautuessa että luennon päätteeksi.!2
3 Harjoitukset Harjoitukset (7 kertaa) etenevät luentojen rinnalla ja siellä käsitellään edellisen viikon luentoihin liittyviä tehtäviä. Tehtävät esitellään kurssisivulla (Nopassa). Harjoitukset voi tehdä 2-3 opiskelijan ryhmässä tai yksin. Ratkaisut kerätään harjoitusraportiksi, joka palautetaan periodin lopussa. Harjoitusraportti edellytetään kurssin suorittamiseen. Harjoitusraportissa on tehtäviin oltava hyväksytyt vastaukset. Harjoitustehtävät on palautettava viikottain BitBucket-versionhallinta palveluun git-ohjelmistoa käyttäen. Harjoitustehtävät ratkaistaan etukäteen ja esitellään harjoituksissa harjoitusten vetäjälle. Hyväksytyt harjoitustehtävien vastaukset merkitään BitBucket:ssa tagilla Harjoitus# OK missä # on harjoituskerran numero (esim. Harjoitus4 ok).!3
4 Kuinka suorittaa kurssi? Kuinka suorittaa kurssi? 2 vaihtoehtoa: study group tai essee Molempiin vaihtoehtoihin kuuluu myös siis harjoitusraportti - osasuoritukset ovat voimassa seuraavaan kurssin toteutukseen. Study group: Kurssin aiheista annetaan pohdittavia tehtäviä (Nopassa) Etsikää lisämateriaalia ja pohtikaa pienessä ryhmässä (2-4 opiskelijaa) Viikoittain palaveri, jossa käydään läpi ryhmän pohdinnat Jokainen ryhmän jäsen osallistuu myös tehtävien esittelyyn Sisältää myös luentotehtävät ja niiden hyväksyttävän suorittamisen.!4
5 Kuinka suorittaa kurssi Essee on yksilötyö Valitse 10 aihetta seuraavista: 1. Ohjelmistokonfiguraation hallinta 2. Ohjelmiston rakentaminen 3. Ohjelmistosuunnittelu 4. Ohjelmistotuotannon infrastruktuurit 5. Ohjelmistotuotannon hallinta 6. Ohjelmistotuotantoprosessi 7. Ohjelmistojen ylläpito ja evoluutio 8. Ohjelmistojen laatu ja laadunhallinta 9. Ohjelmistovaatimusmäärittely ja vaatimusten hallinta 10. Ohjelmistojen testaus 11. Ohjelmistoprojektien hallinta!5
6 Lisää esseestä Kirjoita jokaisesta aiheesta 2 sivua (minimi, ei paljoa yli), sisältäen sekä materiaaliin tutustumisen osoittamista että omaa pohdintaa. (Tarkoituksena on tutustua laajasti ohjelmistotekniikan kenttään.) Materiaalia löytyy esim. Pressmanin kirjasta ja webistä. IEEE Software (Kirjaston portaalin kautta tai yliopiston verkosta) Computer -lehti Crosstalk ( Tarkemmat ohjeet Nopassa.!6
7 Miten arvostellaan? Molemmissa vaihtoehdoissa on suoritettava harjoitukset palauttamalla harjoitustehtäviin hyväksyttävät vastaukset harjoitusraportin muodossa! Study group -vaihtoehto: Luentotehtävistä voi hyväksyttävillä vastauksilla saada max 10 pistettä Study group -pohdintojen purkamiset: max 16 pistettä Study group raportti (yksilöllinen): max 10 pistettä Essee -vaihtoehto: Essee: max 36 pistettä Hyvältä arvosanalta vaaditaan perustumista ohjelmistotuotannon oppikirjoihin ja alan lehtiin/tieteellisiin julkaisuihin monipuolista ja kriittistä lähteiden käyttöä (muista myös viitata tekstissä) omaa pohdintaa (jos on omaa kokemusta alalta sitä voi käyttää myös lähteenä) Hyvää rakennetta ja hyvää kieltä!7
8 Miten arvostellaan? Arvosanat jakautuvat seuraavasti (max 36 pistettä): 1: pistettä 2: pistettä 3: pistettä 4: pistettä 5: pistettä!8
9 Mistä materiaalia? 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, 2003 Esimerkkejä Mikä sopii pieniin järjestelmiin ei sovi suuriin / no 11, DeRemer 1975 Ohjelmiston uudelleenkäyttö vähentää kehitysaikaa ja parantaa tuottavuutta ja laatua / no 15, McIlroy 1968 (Naur 1969) Henkilöiden lisääminen myöhässä olevaan projektiin aiheuttaa vain lisää myöhästymistä / no 36, Brooks 1975!9
10 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. 4-7!10
11 Studygroup purku Varatkaa ryhmällenne ajat
12 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?!12
13 Ohjelmistotekniikka - FAQ 8. Mitkä tekijät aiheuttavat eniten virheitä? 9. Mikä on ylläpidon rooli? 10. Miten ohjelmistojen kehitys muuttuu tulevina vuosina?!13
14 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 achieving costeffective 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 1990!14
15 SWEBOK SoftWare Engineering Book Of Knowledge!15
16 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!16
17 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 käyttöönotto ylläpito tuotteenhallinta laadunvarmistus dokumentointi vaatimustenhallinta, riskienhallinta,...!17
18 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. 7-14!18
19 19
20 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!20
21 Laitteiston häiriöasteen kasvu häiriöaste aika
22 Ohjelmiston häiriöasteen kasvu häiriöaste todellinen käyrä - miksi? tavoitekäyrä aika
23 Ohjelmiston häiriöasteen kasvu sivuvaikutusten aiheuttama häiriöaste häiriöaste todellinen käyrä muutos tavoitekäyrä aika
24 3. Millaisia ohjelmistosovelluksia on? Järjestelmäohjelmistot Sovellusohjelmistot Tekniset/tieteelliset ohjelmistot Sulautetut ohjelmistot Tuotelinjaohjelmistot Web-sovellukset Tekoälyohjelmistot Jokapaikan (pervasive) ohjelmistot, jotka kehitetty hajautetusti ja avoimeen koodiin perustuen (esim. IoT, Internet of Things, Wearable computing, ) Lisäksi mobiilisovellukset, pelit, viihde,!24
25 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!25
26 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!26
27 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 visuaalista suunnittelua!27
28 4. Ohjelmistotuotannon peruskäytänteet ja periaatteet Ohjelmistotuotannon peruskäytänteet How to solve it, Polya 1945 Ymmärrä ongelma kommunikointi ja analyysi Suunnittele ratkaisu mallintaminen ja ohjelmistosuunnittelu Toteuta suunnitelma koodin generointi Testaa toteutusta testaus ja laadunvarmistus!28
29 4. Ohjelmistotuotannon 7 ydinperiaatetta / Hooker /2 Ohjelmistotuotannon periaatteet 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 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!29
30 4. Ohjelmistotuotannon 7 ydinperiaatetta / Be Open to the Future Hooker /2 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ä
31 5. Onko jokin prosessimalli (elinjaksomalli) paras? Vertaa: Ohjelmistotuotannon yleiset käytänteet How to solve it Polya 1945 Prosessikehikon aktiviteetit Pressman 2005 kommunikointi projektisuuunnittelu mallintaminen rakentaminen toimitus, käyttöön vieminen (deployment)!31
32 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!32
33 Lisäyksin etenevä kehittäminen (inkrementaalinen) Kommunikointi Ohjelmiston toiminnallisuus ja ominaisuusdet Lisäys 1 Lisäys 2 Lisäys n Lisäyksen 1 toimitus Lisäyksen 2 toimitus Lisäyksen n toimitus Projektin suunnittelu Mallintaminen Rakentaminen Toimitus Projektin kalenteriaika!33
34 (Rational) Unified Process (iteratiivinen ja inkrementaalinen) Inception (aloitus) Elaboration (kehittäminen) suunnittelu mallintaminen kommunikointi rakentaminen julkaisu ohjelmiston uusi osa toimitus Production (tuotanto) Transition (siirto) Construction (rakentaminen)!34
35 Scrum prosessi (sprintti ja sen katselmointi) Kehitä, paketoi, katselmoi, sovita (ei vaadita peräkkäisyyttä) Sprintin työlista: - ominaisuudet yhteen Sprint -kierrokseen Päivittäin 30 päivää minuutin päivittäinen Scrum tapaaminen ( tilannekatsaus) Ei projektipäällikköä, Scrum master valvoo prosessin noudattamista Uusi toteutettu ominaisuus Tuotteen työlista (backlog): - asiakkaan haluamat ominaisuudet Sprintin katselmointi: sidosryhmä osallistuu
36 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!36
37 Olioperustainen ohjelmistokehitys Rakenne Korkean tason toiminnallisuus Käyttötapauskaaviot Käyttäytyminen Ohjelmistokehitys Esimerkkejä Oliokaaviot Sekvenssikaaviot Yhteistyökaaviot Sijoittelukaaviot Luokkakaaviot Tilakaaviot Aktiviteettikaaviot Komponenttikaaviot Koskimies K., Oliokirja, 2000!37
38 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 Arkkitehtuuri- suunnittelu User MainView MainController r: Recipient p : Phone buttonpressed() sendrequest(text,names) [while names] nbr = getnumber(name) OK send(txt,nbr) showmessage( Done ) class MainController{ MainView v; Recipient r; Phone p; void sendrequest(string txt, String [] names) { for (String name : names) { nbr = r.getnumber(name); p.send(txt,nbr); v.showmessage( Done ); } } } Ohjelmointi Yksityiskohtainen suunnittelu Pienimuotoinen esimerkki ratkaisun tarkentumisesta
39 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, coexistence, replaceability!39
40 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!40
41 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) ohjelmisto-suunnitelmaan tai koodiin!41
42 Millä tekniikoilla ohjelmiston laatua parannetaan? Käyttäjän tarpeet Ohjelmisto käytössä Vaatimusmäärittely Käytettävyys- testaus Hyväksymis- testaus Tarkastus eri vaiheissa Toiminnallinen suunnittelu - käyttöliittymän suunnittelu - käyttötapaus-analyysi Ohjelmisto- suunnittelu Testisuunnitelmat Integrointi- testaus Järjestelmä- testaus Toiminnallinen testaus Regressiotestaus Koodaus Yksikkö- testaus!42
43 $ $ $ $ $ $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)!43
44 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!44
45 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!45
46 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 (puuttuva tai paikkaansapitämätön) kuvaus ylemmälle abstraktiotasolle restructuring ja refactoring, tehdään uusi rakenteeltaan parempi ratkaisu (samalla abstraktiotasolla)!46
47 Esimerkki elinkaarikustannusten jakautumisesta (Schach 1999) Ylläpito (67%) koostuu virheiden korjauksista asiakkaan toiminnan ja ympäristön muuttumisen vaatimista korjauksista uusien piirteiden lisäämisestä Jouni Lappalainen, Ilkka Tervonen, additions by Antti Juustila
48 10. Miten ohjelmistojen kehitys muuttuu A. Kuvausmenetelmänä UML ei muutosta B. Ketterien menetelmien voittokulku jatkuu tulevina vuosina? C. Pilvipalvelujen (pilvilaskenta, cloud computing) rooli kasvaa Pilvipalvelujen käyttämä verkko; eri pilvityyppejä: Yksityinen pilvipalvelu, (Private cloud) oma tai vuokrattu, resurssit ainoastaan yrityksen omassa käytössä (oma suljettu verkko) 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) Edge tai Mist (liittyen IoT) - IoT -laitteiden ja pilven välissä oleva optimoiva pilvityyppi!48
49 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. Cloud == somebody else s server?!49
Ohjelmistotekniikka Syksy 2017
Ohjelmistotekniikka Syksy 2017 Vastuuhenkilö: Jouni Lappalainen Luennot ja esseet: Antti Juustila Harjoitukset ja study group: Jouni Lappalainen Luennot Luennoilla käydään läpi Pressmanin Software Engineering
LisätiedotOhjelmistotekniikka kevät 2015. Jouni Lappalainen
Ohjelmistotekniikka kevät 2015 Jouni Lappalainen Jouni Lappalainen 1 Luennoilla käydään läpi Pressmanin Software Engineering kirjan (7. painos) sisältö Hyvää materiaalia löytyy myös Open seminar sivulta
LisätiedotOhjelmistotekniikka kevät 2015 Jouni Lappalainen
Ohjelmistotekniikka kevät 2015 Jouni Lappalainen Jouni Lappalainen 1 Luennot & harjoitukset Luennoilla käydään läpi Pressmanin Software Engineering kirjan (7. painos) sisältö Hyvää materiaalia löytyy myös
LisätiedotOhjelmistotekniikka - Luento 2
Ohjelmistotekniikka - Luento 2 Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1 Luento 2: Prosessimallit
LisätiedotOhjelmistotekniikka - Luento 2 Jouni Lappalainen
Ohjelmistotekniikka - Luento 2 Jouni Lappalainen Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1 Luento
LisätiedotITK130 Ohjelmistojen luonne
ITK130 Ohjelmistojen luonne Luennon sisältö Ohjelmistotekniikka ja vaatimukset Ohjelmistotuote Ei-toiminnallisten vaatimusten luokittelu Sisäiset ja ulkoiset vaatimukset Oikeellisuus Luotettavuus Kestävyys
LisätiedotJohdantoluento. 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ätiedotSytyke 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ätiedotLaatukustannukset. 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ätiedotLaadun 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ätiedotLaadun hallinta. Laatukustannukset. 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ätiedotOhjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus
Yhteenveto Ohjelmistotuotanto vs. muut insinööritieteet Monimutkaisuus Näkymättömyys (Usein näennäinen) luotettavuus ja edullisuus Muunnettavuus Epäjatkuvuus virhetilanteissa Skaalautumattomuus Copyright
LisätiedotCopyright by Haikala. Ohjelmistotuotannon osa-alueet
Copyright by Haikala Ohjelmistotuotannon osa-alueet Ohjelmiston elinkaari 1. Esitutkimus, tarvekartoitus, kokonaissuunnittelu, järjestelmäsuunnittelu (feasibility study, requirement study, preliminary
Lisätiedotkä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ätiedotSoftware 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ätiedotOhjelmistotekniikan menetelmät, kesä 2008
582101 - Ohjelmistotekniikan menetelmät, kesä 2008 1 Ohjelmistotekniikan menetelmät Methods for Software Engineering Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön
LisätiedotJohdanto. 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ätiedotMitä on 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ätiedotOhjelmiston 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ätiedotLaatu tietojärjestelmähankkeissa. Tietohallinnon kokemuksia Juha-Pekka Leskinen Atk-päällikkö Eduskunnan kanslia
Laatu tietojärjestelmähankkeissa Tietohallinnon kokemuksia Juha-Pekka Leskinen Atk-päällikkö Eduskunnan kanslia 5.10.2010 Pohdintaa tietojärjestelmien laadusta Mitä on laatu Miten laatua tavoitellaan tietojärjestelmäprojekteissa
LisätiedotProsessiajattelu. 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ätiedotProsessiajattelu. 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ätiedotOhjelmistojen mallintaminen, kesä 2009
582104 Ohjelmistojen mallintaminen, kesä 2009 1 Ohjelmistojen mallintaminen Software Modeling Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön tuntemus Ohjelmoinnin
LisätiedotOhjelmistotekniikan menetelmät, kevät 2008
582101 - Ohjelmistotekniikan menetelmät, kevät 2008 1 Ohjelmistotekniikan menetelmät Methods for Software Engineering Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön
LisätiedotTilakaaviot, 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ätiedotJärjestelmäarkkitehtuuri (TK081702) Pilvipalvelut. Pilvipalvelut - lähtökohtia
Järjestelmäarkkitehtuuri (TK081702) Pilvipalvelut Pilvipalvelut Nouseva toteutustekniikka ja trendi Kuluttajat edellä, yritykset perässä Paino sanalla Palvelu Yhtenäisyyksiä vuosikymmenten taakse, sovelletaan
LisätiedotOhjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA
Ohjelmointitekniikka lyhyesti Survival Kit. Vesiputousmalli ELINKAARIMALLEISTA. Ohjelmiston elinkaari Ohjelmiston elinkaarella (life cycle) tarkoitetaan aikaa, joka kuluu ohjelmiston kehittämisen aloittamisesta
LisätiedotOleelliset 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ätiedotMää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ätiedotOhjelmistoprosessit 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ätiedotOhjelmistotekniikan 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$$$ 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ätiedot1. Johdanto. Ohjelmistotuotannon ongelmia
1. Johdanto Mitä ohjelmistotuotanto on? ohjelmointi + ohjelmisto + tekniikat + insinööritaito + kurinalainen työskentely Määritelmä (60-luvun ohjelmistokriisi): The establishment and use of sound principles
LisätiedotPohdiskelujen 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ätiedotTietojenkäsittelytieteiden koulutusohjelma. Tietojenkäsittelytieteiden laitos Department of Information Processing Science
Tietojenkäsittelytieteiden koulutusohjelma Tietojenkäsittelytieteet Laskennallinen data-analyysi Ohjelmistotekniikka, käyttöjärjestelmät, ihminen-kone -vuorovaikutus Teoreettinen tietojenkäsittelytiede
LisätiedotOhjelmistojen mallintaminen, mallintaminen ja UML
582104 Ohjelmistojen mallintaminen, mallintaminen ja UML 1 Mallintaminen ja UML Ohjelmistojen mallintamisesta ja kuvaamisesta Oliomallinnus ja UML Käyttötapauskaaviot Luokkakaaviot Sekvenssikaaviot 2 Yleisesti
LisätiedotOhjelmistojen mallintaminen, kesä 2010
582104 Ohjelmistojen mallintaminen, kesä 2010 1 Ohjelmistojen mallintaminen Software Modeling Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön tuntemus Ohjelmoinnin
LisätiedotOhjelmistojen 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ätiedotOhjelmistotekniikan menetelmät, koe 2.5.2014
Ohjelmistotekniikan menetelmät, koe 2.5.2014 Vastaa tehtävään 3 erilliselle konseptille. Tehtävät 1 ja 2 saavat olla samalla konseptilla. Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen
LisätiedotOhjelmistojen 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ätiedotITK130 Ohjelmistoprosessi
ITK130 Ohjelmistoprosessi Ohjelmistotuotteen elinkaari Ohjelmistoprosessimalli Koodaa ja korjaa Miksi ohjelmistoprosesseja? Prosessimallin tavoitteet Prosessi ongelmaratkaisuna Prosessi, musta laatikko
LisätiedotOhjelmistojen mallintaminen kertausta Harri Laine 1
kertausta 5.12.2008 Harri Laine 1 Ohjelmiston elinkaari, elinkaarimallit Yleinen puitemalli (reference model) - abstrakti kokonaiskuva ei etenemiskontrollia, ei yksityiskohtia Ohjelmistoprosessimallit
LisätiedotJohdattelua, motivointia, eli missä ollaan ja kuinka siihen on tultu
Johdattelua, motivointia, eli missä ollaan ja kuinka siihen on tultu 581259 Ohjelmistotuotanto 1 Ohjelmistotuotanto Kuinka valmistaa laadukkaita ja tehokkaita ohjelmistoja mahdollisimman edullisesti? Ohjelmistotuotanto
LisätiedotJuha Taina, Marko Salmenkivi ja Kjell Lemström,
Ohjelmistotuotanto Johdattelua, motivointia, eli missä ollaan ja kuinka siihen on tultu Kuinka valmistaa laadukkaita ja tehokkaita ohjelmistoja mahdollisimman edullisesti? Ohjelmistotuotanto (Software
LisätiedotISO/IEC 25000 sarja (SQUARE)
ISO/IEC 25000 sarja (SQUARE) Software product Quality Requirements and Evaluation (SQuaRE) Risto Nevalainen, FiSMA ry FiSMA 1 Taustaa, historiaa Ohjelmiston laadun mittaaminen on yksi vanhimmista SC7 standardointialueista
LisätiedotMitä on ohjelmistotuotanto? Johdanto. Tämän kurssin näkökulma. Kurssin suhde muuhun opetukseen
Mitä on ohjelmistotuotanto? Johdanto Sami Kollanus TJTA330 Ohjelmistotuotanto 9.1.2007 Ohjelmistotekniikka (Software Engineering) tarkoittaa pätevien insinööriperiaatteiden vakiinnuttamista ja käyttämistä
LisätiedotScrum 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ätiedotProjektin suunnittelu
Projektin suunnittelu Sami Kollanus TJTA330 Ohjelmistotuotanto 15.3. Projektin suunnittelu - CMMIkäytänteet Projektin estimaatit: Määritellään projektin laajuus (scope) Määritellään tehtävien ja tuotosten
LisätiedotMitä muutoksia pilvipalvelut tulevat aikaansaamaan tietoteknisten ratkaisujen hankinta- ja toimitusmalleissa? Miten pilvipalvelut muokkaavat
Mitä muutoksia pilvipalvelut tulevat aikaansaamaan tietoteknisten ratkaisujen hankinta- ja toimitusmalleissa? Miten pilvipalvelut muokkaavat yritysten osto- ja käyttötottumuksia. Lisää ketteryyttä, nopeampi
LisätiedotSisäänrakennettu tietosuoja ja ohjelmistokehitys
Sisäänrakennettu tietosuoja ja ohjelmistokehitys Petri Strandén 14. kesäkuuta, 2018 Petri Strandén Manager Cyber Security Services Application Technologies Petri.stranden@kpmg.fi Petri vastaa KPMG:n Technology
LisätiedotOhjelmistotekniikka: Luento 4 Jouni Lappalainen
Ohjelmistotekniikka: Luento 4 Jouni Lappalainen Luku 6: Vaatimusten mallintaminen: skenaariot, analyysiluokat UML kertausta Luku 7: Vaatimusten mallintaminen: vuo, käyttäytyminen ja mallit (patterns) Vuopohjainen
LisätiedotTutkittua 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ätiedotOhjelmistojen mallinnus, s2008 HY/TKTL, 28/10/2008. Harri Laine 1. Ohjelmisto
jen mallinnus, s2008 jen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Tietokoneohjelma (computer program) toimintaohje, jonka mukaan toimien tietokone suorittaa jonkin tietojenkäsittelytehtävän suoritettava
LisätiedotRajattomat tietoverkot ja niiden rooli pilvipalveluissa. Jukka Nurmi Teknologiajohtaja Cisco Finland
Rajattomat tietoverkot ja niiden rooli pilvipalveluissa Jukka Nurmi Teknologiajohtaja Cisco Finland Verkon avulla voidaan kehittää monia toimintoja Kauppa Urheilu / Viihde Käyttäjä Energiankulutus Koulutus
LisätiedotSuorituskyvyn 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ätiedotMää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ätiedotIBM Iptorin pilven reunalla
IBM Iptorin pilven reunalla Teppo Seesto Arkkitehti Pilvilinnat seesto@fi.ibm.com Cloud Computing Pilvipalvelut IT:n teollistaminen Itsepalvelu Maksu käytön mukaan Nopea toimitus IT-palvelujen webbikauppa
LisätiedotKä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ätiedotOhjelmistotekniikka: Luento 4 Jouni Lappalainen
Ohjelmistotekniikka: Luento 4 Jouni Lappalainen Luku 4: Käytäntöä ohjaavat periaatteet (kevyt esittely) kommunikoinnin, projektisuunnittelun, mallintamisen, rakentamisen ja toimituksen periaatteet Luku
LisätiedotOhjelmistotekniikka - Luento 2 Jouni Lappalainen
Ohjelmistotekniikka - Luento 2 Jouni Lappalainen Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit Luku 3:
LisätiedotPilvilaskennan perusteet ja sanasto (ISO/IEC 17788) sekä jatkotyöstö. SFS SR-310 Pasi Mäkinen, Open Source Lead, Microsoft
OPPILAITOSPORTAALI Pilvilaskennan perusteet ja sanasto (ISO/IEC 17788) sekä jatkotyöstö SFS SR-310 Pasi Mäkinen, Open Source Lead, Microsoft Sisältö Pilvilaskennan tausta Pilvilaskenta yleisesti Pilvilaskennan
LisätiedotLuento 12. Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila
Luento 12 Kertaus Luku 8: Suunnittelutekniikat suunnittelun käsitteet suunnittelumalli (design model) arkkitehtuuri, rajapinnat, komponenttitaso, sijoitustaso Luku 9: Arkkitehtuurisuunnittelu arkkitehtuurigenret,
LisätiedotOhjelmistotekniikka: Luento 5
Ohjelmistotekniikka: Luento 5 Luku 6: Vaatimusten mallintaminen: skenaariot, analyysiluokat UML kertausta Luku 7: Vaatimusten mallintaminen: vuo, käyttäytyminen ja mallit (patterns) Vuopohjainen mallintaminen
LisätiedotOhjelmistotuotteen 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ätiedotOnnistunut ohjelmistoprojekti
Onnistunut ohjelmistoprojekti ICT-ajankohtaisseminaari 15.4.2009 Hermanni Hyytiälä Reaktor Innovations Oy Agenda Yritysesittely Keinoja onnistuneeseen ohjelmistoprojektiin Ihmiset Menetelmät Käytännöt
LisätiedotPLA-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ätiedotA4.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ätiedotKetterä vaatimustenhallinta
Ketterä vaatimustenhallinta ja miksi se on useimmiten hyvä asia K A R I A L HO C E O I M P R OV EIT OY Sisältö ImproveIt Oy Perinteinen vaatimushallinta Ketterä vaatimustenhallinta Monenlaista softakehitystä
LisätiedotTuotemallipohjaisen toimintaprosessin mallintaminen
Tuotemallipohjaisen toimintaprosessin mallintaminen Miksi? Miten? Mitä? Mitä sitten? Kari Karstila Eurostepsys Oy kari.karstila@eurostep.com www.eurostep.com Pro IT-seminaari, 2004-01 01-1919 PROSESSIMALLINTAMISEN
LisätiedotTietojärjestelmän osat
Analyysi Yleistä analyysistä Mitä ohjelmiston on tehtävä? Analyysin ja suunnittelun raja on usein hämärä Ei-tekninen näkökulma asiakkaalle näkyvien pääkomponenttien tasolla Tietojärjestelmän osat Laitteisto
Lisätiedot1 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ätiedotJohdatusta 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ätiedotKä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ätiedotProjektityö
Projektityö 24.9.2010 Ohjelmistojen kehitysmalleista Vaatimusten määrittely ja kerääminen Lähteinä (vaatimusten määrittely): Haikala ja Märijärvi, Ohjelmistotuotanto, Talentum, 2005. Luvut 3, 4, 5, 6-10
LisätiedotPLA-32820 Mobiiliohjelmointi. Mika Saari mika.saari@tut.fi http://www.students.tut.fi/~saari5/pla_32820_2015/
PLA-32820 Mobiiliohjelmointi Mika Saari mika.saari@tut.fi http://www.students.tut.fi/~saari5/pla_32820_205/ . Luento 2 Suoritus vaatimukset Kurssin sisältö Kirjallisuus Mobiiliohjelmointi Mobiililaitteita...
LisätiedotProjektityö
Projektityö 21.10.2005 Projektisuunnitelma Työn ositus Projektisuunnitelman sisältö Kurssin luennoitsija ja projektiryhmien ohjaaja: Timo Poranen (email: tp@cs.uta.fi, työhuone: B1042) Kurssin kotisivut:
LisätiedotITK130 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ätiedotTapahtuipa Testaajalle...
Tapahtuipa Testaajalle... - eli testaus tosielämässä 09.10.2007 Juhani Snellman Qentinel Oy 2007 Agenda Minä ja mistä tulen Testauksen konteksti Tapauksia tosielämästä ja työkaluja 2 Minä Juhani Snellman
LisätiedotPROJEKTINHALLINTA. Käyttäjälähtöinen suunnittelu
PROJEKTINHALLINTA Käyttäjälähtöinen suunnittelu PROJEKTINHALLINTA OSANA KURSSIA Opettaja: Tomi Jokitulppo email: Tomi.Jokitulppo@metropolia.fi puhelin: 040 5430197 4 opetuskertaa: 2.10., 9.10., 16.10.
LisätiedotOhjelmistotekniikka: Luento 3 Jouni Lappalainen
Ohjelmistotekniikka: Luento 3 Jouni Lappalainen Luku 4: Käytäntöä ohjaavat periaatteet (kevyt esittely) kommunikoinnin, projektisuunnittelun, mallintamisen, rakentamisen ja toimituksen periaatteet Luku
LisätiedotKurssin aihepiiri: ohjelmistotuotannon alkeita
Kurssin aihepiiri: ohjelmistotuotannon alkeita [wikipedia]: Ohjelmistotuotanto on yhteisnimitys niille työnteon ja työnjohdon menetelmille, joita käytetään, kun tuotetaan tietokoneohjelmia sekä monista
LisätiedotHieman lisää malleista ja niiden hyödyntämisestä
Hieman lisää malleista ja niiden hyödyntämisestä Ohjelmistojen mallintaminen Kesä 2012 (Avoin yliopisto) Toni Ruokolainen, 23.8.2012 Mallit Mallit ovat todellisuuden abstraktioita, jotka on muodostettu
LisätiedotCT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2015
CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET Jussi Kasurinen (etu.suku@lut.fi) Kevät 2015 EDELLISELLÄ KERRALLA TAPAHTUNUTTA Täydellinen testaus on mahdotonta. Testataan, koska virheiden löytyminen ajoissa
LisätiedotHarjoitustehtävät: Ohjelmistotekniikka syksy 2015 (harjoitustyöraportin deadline 23.12.2015) Harjoitus 1:
1 Harjoitustehtävät: Ohjelmistotekniikka syksy 2015 (harjoitustyöraportin deadline 23.12.2015) Harjoitus 1: 1. Lue paperit McConnell S., and Tripp L., Professional Software Engineering: Fact or Fiction,
LisätiedotJohdatus(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ätiedotOhjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1
3. Komponentit ja rajapinnat 3.1 Komponenttien idea: ohjelmistotuotannon rationalisointi 3.2 Mikä on ohjelmistokomponentti? 3.3 Komponentit ohjelmistoyksikköinä 3.4 Rajapinnat 3.6 Komponenttien räätälöinti
Lisätiedot1.3 Katsaus ohjelmistotuotannon kehittymiseen
Yleisiä asioita Oliokirja:http://www.cs.tut.fi/~kk/Ohjelmistoarkkitehtuuri.pdf Tenttipäivä 7.5. Tallennukset, jospas tänään onnistaisi Viikkoharkat löytyvät IDLEstä (TTY), kurssin kotisivuilta/paikallisilta
Lisätiedot1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007
1 Johdanto 1.1 Mikä on ohjelmistoarkkitehtuuri? 1.2 Katsaus ohjelmistotuotannon kehittymiseen 1.3 Epäonnistuneen ohjelmistoarkkitehtuurin seurauksia 1.4 Ohjelmistoarkkitehtuuri ja ohjelmistokehitysprosessi
LisätiedotLaadukas vaatimustenhallinta. Pekka Mäkinen Copyright SoftQA Oy www.softqa.fi
Laadukas vaatimustenhallinta Pekka Mäkinen www.softqa.fi Esityksen perusajatuksia Vaatimuksilla on elinkaari ja ne muuttuvat. Tuotteen elinkaari vaikuttaa vaatimuksiin. Vaatimusten keruussa ja -hallinnassa
LisätiedotTyökalut ohjelmistokehityksen tukena
1 Työkalut ohjelmistokehityksen tukena Johdanto 2 Työkaluja eli ohjelmistotyötä tukevia ohjelmistoja käytetään ohjelmistoalan yrityksissä nykypäivänä paljon. Työkalut auttavat ohjelmistoalan ihmisiä suunnittelemaan
LisätiedotKatselmoinnit. 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ätiedotSisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.
Sisällys Ratkaisumallien historia Jaakko Vuolasto 25.1.2001! Ratkaisumalli! Christopher Alexander! Ohjelmistotuotannosta arkkitehtuuriin! Henkilöhistoriaa! Ensimmäisiä käyttökokemuksia! Yhteenveto 25.1.2001
LisätiedotKurssin tavoitteista uennot. 4.1 Projektityö, 5 ov. Esitietovaatimukset
Kurssin tavoitteista uennot ma ls. 1097, klo 10-12. pe ls. DXI, klo 12-14. uennot ovat viikoilla 40-42. uentojen yhteydessä ei järjestetä erillisiä harjoituksia. Opinto-oppaasta: Opintojakson tavoitteena
LisätiedotLuento 6. Jouni Lappalainen, Ilkka Tervonen, additions & editions by Antti Juustila
Luento 6 Kertaus Luku 8: Suunnittelutekniikat suunnittelun käsitteet suunnittelumalli (design model) arkkitehtuuri, rajapinnat, komponenttitaso, sijoitustaso Luku 9: Arkkitehtuurisuunnittelu arkkitehtuurigenret,
LisätiedotAluksi. 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ätiedotMiten pilvipalvelut sopivat teidän organisaationne tarpeisiin? Case-esimerkki: M-Files; verkkolevykaaoksesta tehokkaaseen tiedonhallintaan
Ohjelma 6.3.2012 Miten pilvipalvelut sopivat teidän organisaationne tarpeisiin? Juha Karppinen, Microsoft Case-esimerkki: M-Files; verkkolevykaaoksesta tehokkaaseen tiedonhallintaan Mika Javanainen, M-Files
LisätiedotOhjelmistojen suunnittelu
Ohjelmistojen suunnittelu 581259 Ohjelmistotuotanto 154 Ohjelmistojen suunnittelu Software design is a creative activity in which you identify software components and their relationships, based on a customer
LisätiedotOlioperustaisuus (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ätiedotOhjelmistotekniikka: Luento 6
Ohjelmistotekniikka: Luento 6 Jouni Lappalainen Luku 8: Suunnittelutekniikat suunnittelun käsitteet suunnittelumalli (design model) arkkitehtuuri, rajapinnat, komponenttitaso, sijoitustaso Luku 9: Arkkitehtuurisuunnittelu
LisätiedotUnified 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