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



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

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

Ohjelmistotekniikka - Luento 13 Jouni Lappalainen & Henrik Hedberg

Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011

Ohjelmistotekniikka - Luento 14 Jouni Lappalainen

Työkalut ohjelmistokehityksen tukena

Lohtu-projekti. Testaussuunnitelma

Lomalista-sovelluksen määrittely

Opiskelun ja työelämän tietotekniikka (DTEK1043)

GroupDesk Toiminnallinen määrittely

Pohdiskelujen aiheita study group työskentelyyyn Luento 1:

Testaaminen ohjelmiston kehitysprosessin aikana

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

Ohjelmistotekniikka - Luento 3 Jouni Lappalainen

Ohjelmistoprojektien hallinta Vaihejakomallit

Visma Avendon asennusohje

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

XML tehtävien työnkulku

Johdatus Ohjelmointiin

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistotekniikka: Luento 4 Jouni Lappalainen

T harjoitustyö, kevät 2012

Harjoitustehtäväkierros 1

Haka-palveluiden valvonta ja tilastointi AAIEye -työkalun avulla. Mika Suvanto, CSC

Olet tehnyt hyvän valinnan hankkiessasi kotimaisen StorageIT varmuuskopiointipalvelun.

Visma asiakaspalvelu Tukipyyntöjen lähettäminen

TAPAHTUMIEN SEURANTA KEHITYSEHDOTUSTEN KIRJAUS POIKKEAMIEN HALLINTA

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2016

Tikon ostolaskujen käsittely

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

Hajautettu versionhallinta Gitillä

Ohjelmistotekniikan menetelmät, koe

Kurssin hallinta -työväline

PROJEKTIN OHJAUS JA SEURANTA JOUNI HUOTARI

Ohjelmistotekniikka - Luento 6 Jouni Lappalainen

Doodle helppoa aikatauluttamista

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

Ohjelmistoprojektien hallinta Tuloksen arvo menetelmä ja toimintoverkkotekniikka

Tapahtuipa Testaajalle...

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

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

Toinen harjoitustyö. ASCII-grafiikkaa

Projektisuunnitelma. KotKot. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

KÄYTETTÄVYYSTESTAUS OSANA KETTERÄÄ KEHITYSTÄ

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Toinen harjoitustyö. ASCII-grafiikkaa 2017

1 (5) VUOKRALISENSSIN KÄYTTÖÖNOTTO JA PILVIPISTEET AUTODESK ACCOUNTISSA. Milloin vuokra-aika alkaa?

LmQ ohjelmisto kattavaa tapahtumanhallintaa helposti

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

JUnit ja EasyMock (TilaustenKäsittely)

Subversion-ohje. Linux Traffic Control-käyttöliittymä Ryhmä paketti2

Projektin etenemisen seuranta ja tuloksen arvo laskenta

Tutkittua tietoa. Tutkittua tietoa 1

lineitä oppimisen tueksi

1. päivä ip Windows 2003 Server ja vista (toteutus)

Visma sovellustuki Tukipyyntöjen lähettäminen

UCOT-Sovellusprojekti. Testausraportti

Tikon Ostolaskujenkäsittely versio SP1

Tikon ostolaskujen käsittely

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tentti kestää kolme tuntia. Tehdään sähköisesti mikroluokkien Windows-koneilla.

Office ohjelmiston asennusohje

Ohjelmistojen mallintaminen, kesä 2009

Kettärä organisaatio kumppanuusstrategialla

JOVISION IP-KAMERA Käyttöohje

2 Konekieli, aliohjelmat, keskeytykset

206 Verkkosivun tuottaminen finaalitehtävät

Nordea Tunnusluvut -sovelluksen käyttöönotto

Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Tietoturvan ja tietosuojan oppimisympäristö

Toteutusvaihe T3 Digi-tv: Edistymisraportti

ITK130 Ohjelmistojen luonne

Ohjelmistojen suunnittelu

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

Ylläpitodokumentti Mooan

Projektin suunnittelu

Harjoitustyö 3 - Reittioptimisaatio

Ohjelmistotekniikan menetelmät, kesä 2008

Asteri Palkanmaksun uudistuksia 2006

Ohjelmisto on selainpohjaisen käyttöliittymän tarjoava tietokantajärjestelmä merikotkien seurantaan WWF:n Merikotka-työryhmän tarpeisiin.

PROJEKTINHALLINTA

T harjoitustehtävät, syksy 2011

Irman käyttöohje Tunturisuunnistajille

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Vaatimusmääritelystä UML:n avulla

Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito

Hakemistojen sisällöt säilötään linkitetyille listalle.

BaRE Käyttövalmis vaatimusmäärittelymenetelmä

Ohjelmistotuotteen hallinnasta

10 v. työkokemus teknologiaprojekteista, tiiminvedosta ja agile menetelmistä.

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelmiston toteutussuunnitelma

EDUBOX opetusvideopalvelu

Menetelmäraportti - Konfiguraationhallinta

Testaussuunnitelma Labra

Versiohallinta ja Subversion Maunu Tuomainen

Transkriptio:

1 Harjoitustehtävät: Ohjelmistotekniikka kevät 2015 (harjoitustyöraportin deadline 8.3.2014) (Kalenteri-)Viikko 3: 1. Lue paperit McConnell S., and Tripp L., Professional Software Engineering: Fact or Fiction, IEEE Software, Nov/Dec, 1999, pp. 13-18 Davis M., Will Software Engineering Ever Be Engineering?, Communications of the ACM, vol 54, no 11, 2011, pp. 32-34 ja kirjoita noin 700 sanan paperi aiheesta; Voiko ohjelmistotekniikka koskaan tulla insinööritaidoksi (engineering)? Voit tarkastella myös kysymyksiä: Mitä elementtejä kypsään ammattikuvaan tarvitaan? Mitä puutteita ohjelmistotekniikassa kypsän ammattikuvan kannalta tunnetaan? 2. Lean Software Development (virtaviivainen ohjelmistokehitys) menetelmässä on seitsemän periaatetta. Valitse niistä yksi (ei kuitenkaan eliminate waste ) ja kuvaa, miten se sovitetaan ohjelmistokehitykseen ketterässä ohjelmistoprojektissa. Hyvä esitys Lean menetelmästä löytyy esim. Poppendieck M., Cusumano M., Lean Software Development: A Tutorial, IEEE Software, no 5, vol 29, 2012, pp. 26-32 3. 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. Millaisen prosessimallin valitset ja miksi? Viikko 4: Tehtävänä on suunnitella keskusteluohjelmisto pienen ohjelmistotalon käyttöön. Järjestelmän tulee tukea organisaation sisäistä kommunikaatiota. Järjestelmä koostuu palvelimesta ja asiakasohjelmistosta. Palvelinta ja asiakasohjelmistoa käytetään graafisen tai konsolipohjaisen käyttöliittymän kautta. Käyttäjä kirjautuu sisään ja käyttäjä tunnistetaan nimen perusteella. Käyttäjänimeä ei voi vaihtaa kesken keskustelun. Käyttäjä voi lopettaa keskustelun milloin tahansa. Käyttäjät voivat keskustella julkisesti tai salaisesti kahden kesken. Käyttäjä voi olla mukana vain kahdella kanavalla kerrallaan. Palvelin tukee useita yhtäaikaisia keskusteluja. Henkilöstöpäälliköllä on samat oikeudet kuin käyttäjillä, mutta sen lisäksi hänellä on oikeus poistaa käyttäjä keskustelusta. Henkilöstöpäällikkö voi jakaa väliaikaisesti oikeuksia myös muille. Ylläpitäjät voivat lähettää tiedotteita keskustelijoille. Palvelin ilmoittaa käyttäjien sisään- ja uloskirjaukset. Keskustelu tapahtuu salattuna verkon yli. 1. Tarkenna kuvausta kehittämällä vähintään 3 skenaariota, joissa eri henkilöt käyttävät keskusteluohjelmistoa. Kehitä käyttötapauskaaviot keskusteluohjelmistolle käyttäen hyväksi annettua kuvausta ja laadittuja skenaarioita. 2. Kirjoita käyttötapauskuvaukset käyttämällä joko perinteistä käyttötapauspohjaa (löytyy kurssisivulta (Noppa) kohdasta Yhteinen lisämateriaali) tai flow-of events esitystapaa (lisätietoja löytyy paperista Williams L., Use Case-based Requirements (s. 5-14) http://agile.csc.ncsu.edu/sematerials/usecaserequirements.pdf).

2 3. Kirjoita käyttäjävaatimukset (min. 15 kpl) (jokaisesta vaatimuksesta yksilöllinen tunniste ja kuvaus). Voit käyttää vaatimusmäärittelypohjaa, joka löytyy kurssisivulta (Noppa) kohdasta Yhteinen lisämateriaali. Viikko 5: 1. Kirjoita toiminnalliset (järjestelmä)vaatimukset, joissa tarkennetaan käyttäjävaatimuksia ja otetaan huomioon toteutusympäristön aiheuttamat rajoitukset (jokaisesta vaatimuksesta yksilöllinen tunniste, kuvaus, rajoitukset ja liitäntä käyttäjävaatimuksiin). Voit käyttää samaa dokumenttipohjaa, kuin käyttäjävaatimuksissa. 2. Kirjoita ei-toiminnalliset (laatu)vaatimukset, joissa kiinnitetään tuotteen käytettävyyteen, tehokkuus, tilan tarpeeseen, luotettavuuteen, siirrettävyyteen ja turvallisuuteen liittyvät tavoitteet (jokaisesta vaatimuksesta yksilöllinen tunniste, liitäntä laatutekijään ja kuvaus). Voit käyttää samaa dokumenttipohjaa, kuin käyttäjävaatimuksissa. 3. Tee käyttäjävaatimusten ja toiminnallisten vaatimusten jäljitettävyysmatriisi. 4. Tee jokin seuraavista tehtävistä (a d): Sinun pitäisi rakentaa jokin seuraavista järjestelmistä a. Verkkopohjainen kurssille ilmoittautumisjärjestelmä yliopiston tarpeisiin. b. Web-perustainen tilausten käsittelyjärjestelmä tietokonekaupalle. c. Yksinkertainen laskutusjärjestelmä pienelle yritykselle. d. Internet-pohjainen keittokirja, joka on rakennettu osaksi sähköhellaa. Valitse näistä yksi ja kuvaa se luokkakaaviolla. Kaavoissa tulisi näkyä tieto-oliot, yhteydet ja tärkeimmät attribuutit. Viikko 6: 1. Tutustu käsitteisiin refaktorointi (refactoring) ja koodin paha haju (code smell) ja kerro lyhyesti, mitä ne tarkoittavat. Valitse Fowlerin listasta (http://refactoring.com/catalog/index.html) viisi refaktorointitekniikkaa ja selitä niiden tarkoitus. 2. Valitse pankkiyhteysohjelma, jonka tunnet ja arvioi sen laatua käyttämällä luennoilla esiteltyä tarkistuslistaa (Olsina et al. 1999) 3. Suorita tarkastus toisen ryhmän tekemälle vaatimusmäärittelydokumentille. Tarkastukseen kuuluu yksin tehty tarkastus (valmistautuminen) ja kirjauspalaveri, jossa kerätään yhteen yksin tehdyn tarkastuksen tulokset. Voit käyttää hyväksi luennoilla esiteltyjä lomakkeita Tarkastuksen löydökset ja Tarkastuksen yhteenveto, jotka löytyy kurssisivulta (Noppa) kohdasta Yhteinen lisämateriaali. Voit käyttää apuna myös tarkistuslistoja, jotka löytyvät samalta sivulta. Ryhmä voi pitää itse kirjauspalaverin ja raportoida harjoitusten vetäjille käytetystä ajasta ja löydetyistä epäilyistä Tarkastuksen löydökset ja Tarkastuksen yhteenveto lomakkeiden avulla viikon 7 harjoituksissa. Jos ette saa tarkastettavaa materiaalia toiselta ryhmältä, kysykää sopivaa materiaalia harjoitusten vetäjiltä harjoituksissa.

3 Viikko 7: 1. Tarkastele funktiota laske_joulukuun_palkka Työntekijöiden kuukausipalkat vaihtelevat välillä 1500 3500 euroa. Oletetaan myös, että työntekijä on voinut olla yrityksen palveluksessa 0 50 vuotta. Joulukuun palkkaan lisätään joulubonus, joka määritellään seuraavasti: Työntekijä saa 50% bonuksen (50% kuukausipalkasta), jos on ollut yrityksessä kolme vuotta tai enemmän. Jos on ollut yrityksessä yli viisi vuotta, bonus on 75% ja yli kahdeksan vuotta yritystä palvelleille bonus on 100%. Funktio määritellään kahden parametrin avulla seuraavasti: double laske_ joulukuun _palkka ( double kk_palkka, // henkilön kuukausipalkka int palvelusaika, // henkilön palvelusaika yrityksessä ) a. Tee funktion parametreille testiaineisto käyttäen luennoilla esiteltyä ekvivalenssiositusta, jossa määritellään ekvivalenssiluokat sekä käyville että eikäyville syöttöarvoille. Tee myös taulukkoesitys, josta näkee parametrien arvot ja lopputuloksen eri testiarvoilla. b. Toteuta laske_ joulukuun _palkka funktio Java (tai C) ohjelmana. Piirrä myös lohkokaavio ja määrittele syklomaattinen kompleksisuus ja tarvittavien testitapausten lkm. Määrittele polut, joiden avulla saadaan polkukattavuus 100%:ksi ja laadi näille testitapaukset. 2. Olet kehittämässä Web-pohjaista apteekkiohjelmistoa NurkkaApteekki.com, joka on tarkoitettu ikäihmisten käyttöön. Käyttäjän täytyy tunnistautua verkkopankin tunnuksilla. Sen jälkeen käyttäjä näkee, millaisia reseptejä, milloin ja kenen toimesta hänelle on määrätty. Ohjelmistolla on yhteys tietokantaan ja uusien lääkemääräyksien ja vanhojen määräyksien yhteisvaikutus arvioidaan. Jos huomataan vaarallinen yhteisvaikutus, tästä ilmoitetaan käyttäjälle. Millaisia testejä tällaiselle ohjelmistolle tulisi suunnitella. Riittää että kerrot sanallisesti testeistä, ei tarvitse suunnitella testiaineistoa. Viikko 8: 1. Ohjelmistolla on 12 ulkoista syötettä, 24 ulkoista tulostetta, se käsittelee 30 ulkoista kyselyä, käyttää 4 sisäistä tiedostoa ja on yhteydessä 10 erilliseen ulkoiseen järjestelmään. Ohjelmiston ominaisuuksista tiedetään, että hajautetun käsittelyn toteuttaminen hyvin on tärkeää, suorituskykyyn ja koodin uudelleenkäyttöön tulee kiinnittää erityistä huomiota, ja sovellus tulisi suunnitella helposti ylläpidettäväksi. Muuten ohjelmisto nähdään kompleksisuudeltaan keskinkertaiseksi. Laske toimintopistearvo ko. ohjelmistolle. Sivulta http://www.softwaremetrics.com/fpafund.htm löytyy materiaalia toimintopistearvon laskemisesta ja mm. 14 tekijää, joiden avulla voi arvioida ohjelmiston ominaispiirteitä. Näiden tekijöiden summaa käytetään sitten laskentakaavassa ja säädetään toimintopistearvoa tarkemmaksi.

4 2. Tarkastele käyttötapauksia ja skenaarioita, jotka olet tehnyt aikaisemmissa harjoituksissa keskusteluohjelmiston suunnittelun yhteydessä. Käytä hyväksi webistä löytyvää Roy Clemin ohjeistoa Project Estimation with Use Case Points http://www.codeproject.com/kb/architecture/usecasep.aspx ja laske arvio keskusteluohjelmiston vaatimasta työmäärästä. 3. Olet projektipäällikkö ohjelmistoprojektissa ja sinun tulisi arvioida projektin tilanne ansaitun arvon menetelmällä. Projektisuunnitelmassa projekti on jaettu 56 tehtävään, joiden tekemiseen on arvioitu tarvittavan 582 työpäivää (BAC). Laskentahetkellä 12 tehtävää on suoritettu loppuun. Projektisuunnitelman mukaan 15 tehtävää olisi pitänyt olla jo suoritettuna Seuraava aikatauluun liittyvä tieto (henkilötyöpäivinä) on saatavilla Tehtävä Suunniteltu työpanos Todellinen työpanos 1 12.0 12.5 2 15.0 11.0 3 13.0 17.0 4 8.0 9.5 5 9.0 9.0 6 18.0 19.0 7 10.0 10.0 8 4.0 4.5 9 12.0 10.5 10 6.0 6.5 11 5.0 4.0 12 12.0 14.5 13 16.0-14 6.0-15 8.0 Laske seuraavat arvot - aikataulupohjainen suoritusky (schedule performance index, SPI) - aikataulupoikkeama (schedule variance, SV) - arvioitu valmiusaste (percent scheduled for completion, PV/BAC) - todellinen valmiusaste (percent complete, EV/BAC) - todellinen työkustannus (actual costs of work performed, AC) - kustannuspohjainen suorituskyky (cost performance index, CPI, EV/AC) - kustannuspoikkeama (cost variance, CV, EV-AC) Viikko 9: Asenna Git versionhallintajärjestelmä koneellesi. Asennusohjeita löytyy esim. sivulta http://git-scm.com ja materiaalista http://git-scm.com/book 1. Tutustu Git versionhallintajärjestelmään sivulla http://linux.fi/wiki/git olevan esimerkkimateriaalin avulla ja aseta Gitille käyttäjänimesi ja sähköpostiosoite. 2. Ota jonkin hakemistosi tiedostot versionhallintaan, tee johonkin tiedostoon muutoksia ja commitoi (vahvista) ne commit komennolla. 3. Katsele tekemiäsi muutoksia log komennolla. 4. Luo uusi kehityshaara ja tee siellä muutoksia johonkin tiedostoosi ja commitoi ne.

5 5. Palaa takaisin master haaraan ja tee siellä muutoksia saman nimiseen tiedostoon kuin edellä ja commitoi ne. 6. Yhdistä kehityshaara ja master haara merge komennolla, korjaa tiedoston ristiriitaa aiheuttavat rivit ja commitoi muutokset versionhallintaan. 7. Katsele tekemiäsi muutoksia log komennolla. 8. Nimeä commitoidut versiot komennolla tag siten, että ensimmäinen versio on v1.0 ja viimeinen v2.0 (väliversiolle voit antaa nimet v1.1 jne.). 9. Vertaile versioiden eroja komennolla diff. Jos haluat lisäharjoittelua (ei pakollinen) voit tutustua sivulla http://nvie.com/posts/a-successful-git-branching-model/ esiteltyyn esimerkkiin, kuinka haarautumista voidaan käyttää eri versioiden ja julkaisujen hallintaan. Tee samankaltaista kehitys- ja julkaisuversioiden hallintaa jollekin omalle tiedostolle. Viikko 10 Projektin tavoitteena on kehittää ohjelmisto varastettujen pyörien etsimiselle? Sovelluksen tavoitteista tiedetään seuraavaa: Matti, Kari, Seppo ja Jussi ovat polkupyöräpoolon harrastajia. Heiltä kaikilta on viimeisen kuukauden aikana varastettu polkupyörä, Varastetut pyörät päätyvät tavallisesti myyntiin internetin myyntipalstoille. Tilanteesta johtuen Matti päätti tehdä asialle jotain. Hän otti yhteyttä polkupyöräpooloyhteisön jäseniin ja sai kannatusta ajatukselle, että kehitetään ohjelmisto, joka toimii varastettujen kameratarvikkeiden etsimiskäytännön tapaan. Matin tuttavilla, Toivolla ja Eevalla, on pieni ohjelmistoyritys ja Matti sai heidät innostumaan projektista. Rahoitus projektille hankitaan joukkorahoituksella (crowdfunding) ja mainostus kohdistetaan ensiksi polkupyöräpooloyhteisön jäseniin ja myöhemmin laajennetaan muihin polkupyörän käyttäjiin. Tutustu laajempaan projektin tilanteen kuvaukseen (SEMAT esimerkki), joka löytyy kurssisivulta (Noppa) kohdasta Yhteinen lisämateriaali. Tehtävänäsi on suorittaa projektin tilanteen arviointi SEMAT analyysin mukaisesti. Tässä riittää arvioida SEMAT alphat Asiakas (Customer) ja Ratkaisu (Solution) aihealueilla (areas of concern). Tämä tarkoittaa alphoja Mahdollisuus (Opportunity), Sidosryhmät (Stakeholders), Vaatimukset (Requirements) ja Ohjelmisto (Software system). Käytä arvioinnissa arviointipohjaa, joka löytyy tehtäväkuvauksesta (SEMAT esimerkki) kurssisivulta (Noppa) kohdasta Yhteinen lisämateriaali. Hyvä esitys SEMAT ytimestä: 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&