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&