Pohdiskelujen aiheita study group työskentelyyyn Luento 1:

Samankaltaiset tiedostot
Tutkittua tietoa. Tutkittua tietoa 1

Ohjelmistotekniikka - Luento 6 Jouni Lappalainen

Ohjelmistotekniikka - Luento 3 Jouni Lappalainen

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

Ohjelmistotekniikka - Luento 2

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

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Harjoitustehtävät: Ohjelmistotekniikka syksy 2015 (harjoitustyöraportin deadline ) Harjoitus 1:

Ketterä vaatimustenhallinta

Ohjelmistotekniikka - Luento 3

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

Lyhyt johdatus ketterään testaukseen

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

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Harjoitustehtävät: Ohjelmistotekniikka syksy 2018 (harjoitustyöraportin deadline ) Harjoitus 1:

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

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistojen suunnittelu

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä

Ohjelmistojen laadun parantaminen refaktoroinnilla Simo Mäkinen Tietojenkäsittelytieteen laitos Helsingin yliopisto

Testauksen hallintaa teekkareille (ja muille kiinnostuneille) Arto Stenberg

Harjoitustehtävät: Ohjelmistotekniikka kevät 2015 (harjoitustyöraportin deadline ) (Kalenteri-)Viikko 3:

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

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

Johdantoluento. Ohjelmien ylläpito

Koekysymyksiä. Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistojen suorituskyky

Ohjelmistoarkkitehtuurit Kevät käytäntöjä

Ohjelmistoarkkitehtuurit. Syksy 2010

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Arkkitehtuurinen reflektio

Ketteryys pähkinänkuoressa. Kokopäivän Scrum-kurssin sisältö tislattuna ja tiivistettynä kolmeen varttiin

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen laatu. Projektinhallinnan laadunvarmistus

SYSTEEMITYÖ. Tärkeitä sanoja

3. Käsiteanalyysi ja käsitekaavio

Ohjelmistotekniikka kevät Jouni Lappalainen

Ohjelmistotekniikan menetelmät, kesä 2008

ITK130 Ohjelmistojen luonne

Ohjelmistotuotteen hallinnasta

Ohjelmistotekniikka kevät 2015 Jouni Lappalainen

Ohjelmistotekniikka - Luento 13 Jouni Lappalainen & Henrik Hedberg

Tarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen

Standardi IEC Ohjelmisto

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

TietoEnator Pilot. Ari Hirvonen. TietoEnator Oyj. Senior Consultant, Ph. D. (Economics) presentation TietoEnator 2003 Page 1

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.

7. Product-line architectures

Ohjelmistoarkkitehtuurit. Syksy 2008

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Computing Curricula raportin vertailu kolmeen suomalaiseen koulutusohjelmaan

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Onnistunut ohjelmistoprojekti

Laadukas vaatimustenhallinta. Pekka Mäkinen Copyright SoftQA Oy

Projektityö

Testaaminen ohjelmiston kehitysprosessin aikana

SOA SIG SOA Tuotetoimittajan näkökulma

Ohjelmistoprojekteista. Datanomiopiskelijat 2.vuosi

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

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

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistotekniikan menetelmät, kevät 2008

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

Laadun hallinta. Laatukustannukset. Sami Kollanus TJTA330 Ohjelmistotuotanto

Ohjelmistoarkkitehtuurit, syksy

Ohjelmistotekniikka Syksy 2018

ITK130 Ohjelmistoprosessi

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

Ketterien periaatteiden merkitys projektityössä

Enterprise Architecture TJTSE Yrityksen kokonaisarkkitehtuuri

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

Collaborative & Co-Creative Design in the Semogen -projects

Ohjelmistotekniikka Syksy 2017

Ohjelmistoarkkitehtuurit Kevät käytäntöjä

Ville Isomöttönen. Agile. Jyväskylän Yliopisto Sivu 1 Tietotekniikan laitos

LAATURAPORTTI Iteraatio 1

Laatukustannukset. Laadun hallinta. Laadun kustannuksista

Turvallisen sovelluskehityksen käsikirja. Antti Vähä-Sipilä, F-Secure

statbeatmobile PROJECT REVIEW iteration 1

Pilvilaskennan perusteet ja sanasto (ISO/IEC 17788) sekä jatkotyöstö. SFS SR-310 Pasi Mäkinen, Open Source Lead, Microsoft

1 Johdanto. Ohjelmistoarkkitehtuurit Syksy 2010 TTY Ohjelmistotekniikka 1

Tapahtuipa Testaajalle...

Kontrollipolkujen määrä

Onnistunut ohjelmistoprojekti

ISEB/ISTQB FOUNDATION CERTIFICATE IN SOFTWARE TESTING III

IoT-platformien vertailu ja valinta erilaisiin sovelluksiin / Jarkko Paavola

Harjoitustehtävät ja ratkaisut viikolle 48

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

Ohjelmistotekniikka: Luento 3 Jouni Lappalainen

Käyttäjäkeskeisen suunnittelun periaatteet ja prosessit

1 Introduction. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2006

Johdatus ohjelmistotuotantoon

Yrittäjäkasvatuksen polku - sivusto. Yksityiskohtainen suunnittelu Huhtikuu 2018

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

Transkriptio:

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ä omin sanoin muutamalla lauseella (katso http://c2.com/cgi/wiki?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 (http://www.crosstalkonline.org/backissues/) Luento 2: Millaisille projekteille protoilumalli ja vesiputousmalli soveltuvat parhaiten? Cockburn esittelee oheisessa paperissa inkrementaalisen ja iteratiivisen kehittämisen ominaisuuksia. Miksi myös ketterässä ohjelmistokehityksessä tulisi käyttää molempia kehittämistapoja? Cockburn A., Using both incremental and iterative development, Crosstalk, May, 2008, pp. 27-30 (http://www.crosstalkonline.org/back-issues/) Luento 3: Voivatko Agile manifestin neljä periaatetta aiheuttaa joskus myös ongelmia? Millaisia? Tarkastele Turnerin (oheinen paperi) listaa ketterille ominaispiirteille. Mitkä ovat näiden ominaispiirteiden yhteydet ketterien menetelmien 12 periaatteeseen? Turner R., Toward Agile systems engineering processes, Crosstalk, April, 2007, pp. 11-15 (http://www.crosstalkonline.org/back-issues/) Luento 4: Mikä on olennaista pienten yritysten vaatimusten hallinnalle Aranda et al. mukaan (katso oheinen paperi)? Aranda et al. esittelevät seitsemän pienen yrityksen vaatimusten hallintaa. Esittele näistä kolme. Mitä esitutkimus (feasibility study) tarkoittaa vaatimusmäärittelyjen yhteydessä? Wiegers esittelee paperissaan 10 ansaa, jotka tulisi välttää vaatimusmäärittelyprosessissa. Esittele näistä viisi.

2 Aranda, S. M. Easterbrook, and G. Wilson, Requirements in the wild: How small companies do it, (http://www.cs.toronto.edu/~sme/papers/2007/reinthewild.pdf ) Requirements Engineering Conference (RE'07) Karl E. Wiegers, 10 Requirements Traps to Avoid (http://processimpact.com/articles/reqtraps.pdf) Luento 5: Kuvaa flow-of-events esitystavalla käyttötapaus Kurssille ilmoittautuminen Käyttötapaukset UC1 Kurssille ilmoittautuminen UC2 Kirjautuminen UC3 Kurssin ylläpito UC4 Opiskelijatietojen ylläpito UC5 Opiskelijan osallistumisen kirjaus UC6 Opiskelijan osallistumisen listaus Luento 6: Conway:n laki (L16) esittää, että järjestelmän rakenne heijastaa sitä rakentavan organisaation rakennetta. Mitä tämä mielestänne tarkoittaa ja löytyykö siihen esimerkkejä? Esitä kaksi sovellusesimerkkiä seuraaville arkkitehtuurityylille - kerrosarkkitehtuuri

3 - tietovuoarkkitehtuuri - asiakas/palvelin-arkkitehtuuri - tietovarastoarkkitehtuuri Garlan et al. esittelee kolme perustekniikkaa arkkitehtonisen yhteensopimattomuuden käsittelemiselle (hoitamiselle). Mitä ne ovat ja mihin periaatteisiin ne nojautuvat? Garlan D., Allen R. and Ockerbloom J., Architectural Mismatch: Why Reuse Is Still So Hard, IEEE Software, vol 26, no 4, 2009, pp. 66-69 Luento 7: Sinha & Jain paperissa tutkittiin komponenttien ja luokkien (olioiden) uudelleenkäytön helppoutta - kumpi uudelleenkäyttö (komponenttien/luokkien) oli helpompaa? - mitä komponenttien mustalaatikko (black-box) uudelleenkäyttö tarkoittaa? Li et al. esittävät 10 faktaa, jotka liittyvät OTS (off-the-self) perustaisen kehittämisen teollisiin käytänteisiin. Esittele niistä viisi tarkemmin, eli esittele myös perustelut näille viidelle faktalle. Mitä tarkoittavat pilvilaskenta-arkkitehtuurin kolme tasoa; SaaS, PaaS ja IaaS (Yau & An mukaan)? Miten ohjelmistokehitys tapahtuu palvelupohjaisessa ohjelmistotekniikassa (SOSE) (Yau & An mukaan)? Mitä haasteita Yau & An ovat havainneet ohjelmistokehityksessä, kun käytetään palvelupohjaista ohjelmistotekniikkaa (SOSE)? Sinha A., and Jain H., Ease of Reuse: An Empirical Comparison of Components and Objects, IEEE Software, vol 30, no 5, 2013, pp. 70-75 Li J., Conradi R., and Slyngstad O., Bunse C., Torchiano M. and Morisio M., Development with Off-the-Shelf Components: 10 Facts, IEEE Software, vol 26, no 2, 2009, pp. 80-87 1 Yau S.S., An H.G., Software Engineering Meets Services and Cloud Computing, Computer, vol 44, no 10, 2011, pp. 47-53 Luento 8: Fowler esittelee oheisessa artikkelissa XP-menetelmän tuomia muutoksia suunnitteluprosessiin. Miten esim. YAGNI periaate sopii XP-menetelmään? Miten refaktorointi ja YAGNI sopivat yhteen? Miten suunnittelumalleja (design pattern) tulisi käyttää XP-menetelmän mukaisessa kehittämisessä? Mitä ohjeita Fowler antaa UML-kuvausten käyttämiselle XP-menetelmän yhteydessä? Hahmottele (voit piirrellä paperille kynällä) UWE navigointikaaviolla (esitelty luennoilla, materiaalia löytyy http://uwe.pst.ifi.lmu.de/index.html) WebOodin

4 käytön jokin toiminta, esimerkiksi listaus suorituksista. Kuvaa kaikki vaiheet TOL:n pääsivulta lähtien Olet suunnittelemassa nettikauppa.com nimistä tietotekniikka/viihdeelektroniikkakauppaa webiin. Mieti miten toteutat Olsinan ja Fitzpatrickin laatutekijät sovellukseesi. Fowler M., Is Design Dead? (http://martinfowler.com/articles/designdead.html) Luento 9: McCallin laatumalli on kehitetty jo 1970 luvulla. Malli on kuitenkin vieläkin käyttökelpoinen. Kerro syitä, mistä tämä voisi johtua. Voiko ohjelma olla virheetön ja siitä huolimatta laadultaan huono? Perustele mielipiteesi. Virheiden määrä on yksi laadun indikaattori. Mitä muita indikaattoreita tunnet? Luentomateriaalissa (sivu 11) esitellään laatutekijöiden (kriteerien) välisiä yhteyksiä. Uudelleenkäytön ja käytettävyyden välille ei ole esitetty yhteyttä. Mieti, millainen se voisi olla ja perustele esitystäsi. Mitä yhteistä on aktiviteeteilla katselmointi (review), tarkastus (inspection), läpikäynti (walkthrough) ja pariohjelmointi (pair programming). Missä suhteessa ne eroavat toisistaan? Gilb T., Planning to get the most out of inspections, Software Quality Professional, vol 2, no 2, 2000, pp. 7-19, (http://www.asq.org/pub/sqp/past/vol2_issue2/index.html) Luento 10: Mitkä ominaisuudet tekevät ohjelmistosta helpommin testattavan? Mitä etuja mustalaatikkotestauksella on valkealaatikkotestaukseen nähden? Mitkä seikat rajoittavat valkealaatikkotestauksen käyttöä? Mitä ohjelmistorajapintoja testaajan täytyy tunnistaa ja simuloida (Whittakerin mukaan)? Mitkä ominaisuudet tekevät (Martinin mukaan) TDD menetelmästä ammattilaisen työkalun? Mieti miten testivetoinen ohjelmistokehitys (TDD) soveltuu V-mallin mukaiseen kehitysprosessiin. Linkkejä testausstrategiat aiheeseen (http://www.rspa.com/reflib/testingstrategies.html)

5 Whittaker J.A., What Is Software Testing? And Why It Is So Hard?, IEEE Software, vol 17, no 1, 2000, pp. 70-79 Martin R., Professionalism and Test-Driven Development, IEEE Software, vol 24, no 3, 2007, pp. 32-36 Luento 12: Di Lucca ja Fasolino esittelevät paperin luvussa 7.2 Web-sovelluksen testaustapoja, joilla pyritään varmistamaan, että sovellus vastaa sekä eitoiminnallisia että toiminnallisia vaatimuksia. Millaiset testaustavat sopivat ei-toiminnallisille vaatimuksille ja miten Websovellusten erityispiirteet näkyvät näissä testaustavoissa. Miten Web-sovellusten toiminnallisuuden testaus eroaa perinteisten ohjelmistojen testauksesta? Di Lucca G., Fasolino A., Web Application Testing, http://www.gm.fhkoeln.de/~winter/qm4web/web-engineering_mendes_c07webtest.pdf Luento 13: Miksi vaihetasoja tarvitaan? Kerro omin sanoin. Tarkastele QMOOD mallin laatutekijöitä uudelleenkäytettävyys (reusability) ja ymmärrettävyys (understandability). Mistä suunnitteluominaisuuksista (design properties) niiden arvo lasketaan? Mitkä metriikat (niillä mitatut arvot) vaikuttivat eniten uudelleenkäytettävyyteen esim. MFC (Microsoft Foundation Classes) kehityksessä? Bansiya J., Davis C.G, A Hierarchical Model for Object-Oriented Design Quality Assessment, IEEE Transactions on Software Engineering, vol 28, no 1, 2002, pp. 4-17 Luento 14: Toimit projektipäällikkönä ohjelmistoyrityksessä. Tehtävänäsi on hallita laajassa käytössä olevan tekstinkäsittelysovelluksen seuraavan sukupolven version kehittämistä. Työlle on suunniteltu ja hyväksytty tiukka aikataulu. Millainen organisationaalinen paradigma soveltuu parhaiten ja miksi? Millaisen prosessimallin valitset ja miksi? Millaista johtajuutta Royce ehdottaa projektin hallintaan? Tarkastele Putnam & Myersin esittämää metriikoiden yhteysmatriisia (luentomateriaalissa). Oletko samaa mieltä nuolien suunnasta?

6 Royce W., Successful Software Management Style: Steering and Balance, IEEE Software, vol 22, no 5, 2005, pp. 40-47 Luento 15: Van Genuchten ja Hatton esittelevät paperissaan uuden mittarin, ohjelmiston hyöty (software mileage). Mitä sillä tarkoitetaan ja mihin sitä voidaan käyttää? Mitä yhteistä näet ansaitun arvon arviossa ja Scrumin edistymiskäyrä (burndown) arviossa? Buschmann esittelee kahdessa paperissaan kolme arkkitehtuurin hoitamiseen (gardening) ja parantamiseen liittyvää periaatetta, refaktoroinnin (refactoring), uudelleensuunnittelun (reengineering) ja uudelleen kirjoittamisen (rewriting). Kerro, mitä niillä tarkoitetaan ja miten ne pitäisi suorittaa, jos haluaa tehdä ne hyvin. Jacobson et al. esittelevät Semat periaatteen (Semat ydin & käsitemalli) oheisessa paperissa. Mitä etuja Semat ydin tarjoaa käyttäjälle tekijöiden mukaan? Mitä tarkoitetaan käsitteellä alpha? Miten tiimin tilannetta voidaan arvioida Semat korttien avulla? Van Genuchten M. and Hatton L., Software Mileage, IEEE Software, vol 28, no 5, 2011, pp. 24-26 Erdogmus H., Tracking Progress through Earned Value, IEEE Software, vol 27, no 5, 2010, pp. 2-7 Buschmann F., Gardening Your Architecture, Part 1: Refactoring, IEEE Software, vol 28, no 4, 2011, pp. 92-94 Buschmann F., Gardening Your Architecture, Part 2: Reengineering and Rewriting, IEEE Software, vol 28, no 5, 2011, pp. 21-23 Jacobson I., Ng P-W, McMahon P., Spence I., Lidman S., The Essence of Software Engineering: the Semat Kernel http://www.csi-india.org/c/document_library/get_file?uuid=8e251272-4c46-49b5- a692-01564bae237f&