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

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

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

Ohjelmistotekniikka - Luento 13 Jouni Lappalainen & Henrik Hedberg

GroupDesk Toiminnallinen määrittely

Lomalista-sovelluksen määrittely

Lohtu-projekti. Testaussuunnitelma

Testaaminen ohjelmiston kehitysprosessin aikana

Pohdiskelujen aiheita study group työskentelyyyn Luento 1:

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

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

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

TAPAHTUMIEN SEURANTA KEHITYSEHDOTUSTEN KIRJAUS POIKKEAMIEN HALLINTA

Ohjelmistoprojektien hallinta Vaihejakomallit

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Projektin etenemisen seuranta ja tuloksen arvo laskenta

Ohjelmistoprojektien hallinta Tuloksen arvo menetelmä ja toimintoverkkotekniikka

Ohjelmistotekniikka - Luento 3 Jouni Lappalainen

Harjoitustehtäväkierros 1

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2016

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

Kurssin hallinta -työväline

Ohjelmistotekniikka: Luento 4 Jouni Lappalainen

T harjoitustyö, kevät 2012

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

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

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Työkalut ohjelmistokehityksen tukena

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistotekniikka - Luento 6 Jouni Lappalainen

Ohjelmistotekniikan menetelmät, koe

Kettärä organisaatio kumppanuusstrategialla

PROJEKTIN OHJAUS JA SEURANTA JOUNI HUOTARI

Johdatus Ohjelmointiin

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

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Visma asiakaspalvelu Tukipyyntöjen lähettäminen

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

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

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

KÄYTETTÄVYYSTESTAUS OSANA KETTERÄÄ KEHITYSTÄ

Tutkittua tietoa. Tutkittua tietoa 1

Ohjelmointi 1 C#, kevät 2013, 2. tentti

PROJEKTINHALLINTA

1) Ymmärrä - ja tule asiantuntijaksi askel askeleelta

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

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

BaRE Käyttövalmis vaatimusmäärittelymenetelmä

UCOT-Sovellusprojekti. Testausraportti

lineitä oppimisen tueksi

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

Ohjelmiston toteutussuunnitelma

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta Toteuta Pythonilla seuraava ohjelma:

XML tehtävien työnkulku

Laadukas vaatimustenhallinta. Pekka Mäkinen Copyright SoftQA Oy

Ohjelmistojen suunnittelu

Käytännön kokemuksia projektien arvioinnista

Mitä on konvoluutio? Tutustu kuvankäsittelyyn

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

Ohjelmistotekniikka - Luento 2

Nordea Tunnusluvut -sovelluksen käyttöönotto

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

KÄYTTÄJÄKOKEMUKSEN PERUSTEET, TIE-04100, SYKSY Käyttäjätutkimus ja käsitteellinen suunnittelu. Järjestelmän nimi. versio 1.0

ITK130 Ohjelmistojen luonne

T Testiraportti - järjestelmätestaus

käyttötapaukset mod. testaus

Ohjelmistotekniikka - Luento 14 Jouni Lappalainen

Projektin suunnittelu

LmQ ohjelmisto kattavaa tapahtumanhallintaa helposti

Suunnitteluvaihe prosessissa

Visma sovellustuki Tukipyyntöjen lähettäminen

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

Ohjelmistotekniikan menetelmät, kesä 2008

Vaatimusmääritelystä UML:n avulla

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

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

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

Virtuaalinen tarkastus. Katselmoinnit osa 3. Paritarkastus. N-kertainen tarkastus (n-fold inspection)

206 Verkkosivun tuottaminen finaalitehtävät

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

Testaussuunnitelma Labra

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

Tapahtuipa Testaajalle...

T Testiraportti - integraatiotestaus

Convergence of messaging

T Johdatus käyttäjäkeskeiseen tuotekehitykseen Kertausluento

Tikon Ostolaskujenkäsittely versio SP1

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

Määrittely- ja suunnittelumenetelmät

Tietoturvan ja tietosuojan oppimisympäristö

Ohjelmistojen mallintaminen. Luento 11, 7.12.

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

Toteutusvaihe T3 Digi-tv: Edistymisraportti

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

Opus Online Client Web asetukset. Opus Internet ajanvaraus

Ohjelmistotuotantoprojekti

Ohjelmistotuotteen hallinnasta

Visma Avendon asennusohje

Asteri Palkanmaksun uudistuksia 2006

Transkriptio:

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, 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? Harjoitus 2: 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

2 esitystapaa (lisätietoja löytyy paperista Williams L., Use Case-based Requirements (s. 5-14) http://agile.csc.ncsu.edu/sematerials/usecaserequirements.pdf). 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. Harjoitus 3: 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. Harjoitus 4: 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.

3 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. Harjoitus 5: 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. Harjoitus 6: 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

4 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. 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)

5 Harjoitus 7 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&