Koodaa ja korjaa -malli



Samankaltaiset tiedostot
Ohjelmistoprosessit ja käyttöliittymäsuunnittelu

Käytettävyyden huomiointi ohjelmisto prosessissa testausta lisäämällä

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

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

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET.

Käyttöliittymät II. Käyttöliittymät I Kertaus peruskurssilta. Keskeisin kälikurssilla opittu asia?

Projektityö

Ohjelmistoprojektien hallinta Vaihejakomallit

Ohjelmistojen mallintaminen. Luento 11, 7.12.

2. Ohjelmistotuotantoprosessi

Hankkeen toiminnot työsuunnitelman laatiminen

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

You can check above like this: Start->Control Panel->Programs->find if Microsoft Lync or Microsoft Lync Attendeed is listed

Opetussuunnitelmien ja tutkintojen perusteiden rakenteistaminen

Ohjelmistotuotanto, prosessit Syksy Ohjelmistotuotantoprosessi. Prosessimalli. Prosessimallien perustehtävät. Prosessimallin vaihejako

Työn ositusmalleista. Luennon tavoitteista. Motivointia. Walker Royce, Software Project Management, A Unified Framework

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Salasanan vaihto uuteen / How to change password

Käytettävyys ja käyttäjätutkimus. Yhteisöt ja kommunikaatiosuunnittelu 2012 / Tero Köpsi

Oleelliset vaikeudet OT:ssa 1/2

Ohjelmistotekniikka - Luento 2

Tutkittua tietoa. Tutkittua tietoa 1

anna minun kertoa let me tell you

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

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

Tässä ohjeessa käydään läpi sosiaalisen median verkkopalveluiden lisätoimintojen lisääminen verkkosivuillesi.

Projektityö

Information on Finnish Language Courses Spring Semester 2017 Jenni Laine

Hyvin määritelty on puoliksi tehty kuinka vältetään turha tekeminen jo alussa

Prosessimalli. 2. Ohjelmistotuotantoprosessi. Prosessimallin vaihejako. Prosessimallien perustehtävät. Ohjelmiston suunnittelu. Vaatimusmäärittely

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

Microsoft Lync 2010 Attendee

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Vertaispalaute. Vertaispalaute, /9

Sopimus Asiakas- ja potilastietojärjestelmästä. Liite N: Kielivaatimukset

Opiskelijat valtaan! TOPIC MASTER menetelmä lukion englannin opetuksessa. Tuija Kae, englannin kielen lehtori Sotungin lukio ja etälukio

Kaivostoiminnan eri vaiheiden kumulatiivisten vaikutusten huomioimisen kehittäminen suomalaisessa luonnonsuojelulainsäädännössä

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

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

SYSTEEMITYÖ. Tärkeitä sanoja

Ajettavat luokat: SM: S1 (25 aika-ajon nopeinta)

Millainen on onnistunut ICT-projekti?

Choose Finland-Helsinki Valitse Finland-Helsinki

S SÄHKÖTEKNIIKKA JA ELEKTRONIIKKA

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

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

812336A C++ -kielen perusteet,

Vaatimustenhallinta. Exit

Information on Finnish Language Courses Spring Semester 2018 Päivi Paukku & Jenni Laine Centre for Language and Communication Studies

T Projektikatselmus

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Hyvän käyttöliittymän varmistaminen GUIDe-prosessimallilla

Sisällysluettelo Table of contents

Kansi- ja areenahankkeen yhteiskuntataloudellinen vaikutusanalyysi Tiivistelmä. Lokakuu 2015

Tik Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu. LiKe Liiketoiminnan kehityksen tukiprojekti

Operatioanalyysi 2011, Harjoitus 4, viikko 40

Expression of interest

Testaaminen ohjelmiston kehitysprosessin aikana

PROJEKTINHALLINTA. Käyttäjälähtöinen suunnittelu

Small Number Counts to 100. Story transcript: English and Blackfoot

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Lab SBS3.FARM_Hyper-V - Navigating a SharePoint site

ATLAS-kartan esittely - Peli palveluiden yhteiskehittämisen menetelmistä Päivi Pöyry-Lassila, Aalto-yliopisto

Ohjelemistotuotanto, syksy 1998 /Prosessi Prosessimallit

Lapuan myöntämä EU tuki SOLUTION asuinalueille omakoti- tai rivitaloa rakentaville

Voice Over LTE (VoLTE) By Miikka Poikselkä;Harri Holma;Jukka Hongisto

Testaussuunnitelma Labra

Määrittelyvaihe. Projektinhallinta

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

Security server v6 installation requirements

National Building Code of Finland, Part D1, Building Water Supply and Sewerage Systems, Regulations and guidelines 2007

Testaus-tietoisku: Tärkeimpiä asioita testauksesta projektityökurssilaisille

1. Liikkuvat määreet

Määrittely- ja suunnittelumenetelmät

WP3 Decision Support Technologies

Ohjelmistotuotteen hallinnasta

Rekisteröiminen - FAQ

Green Growth Sessio - Millaisilla kansainvälistymismalleilla kasvumarkkinoille?

Pahin tietoturvauhka istuu vieressäsi Tietoturvatietoisuuden kehittämisestä vauhtia tietoriskien hallintaan

Lyhyt johdatus ketterään testaukseen

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

Collaborative & Co-Creative Design in the Semogen -projects

TÄYTTÖAUTOMAATIT TÄYTTÖAUTOMAATIT COMPUTER INFLATORS

SALAKIRJOITUKSEN VAIKUTUS SUORITUSKYKYYN UBUNTU käyttöjärjestelmässä -projekti

UML- mallinnus: Tilakaavio

T Johdatus käyttäjäkeskeiseen tuotekehitykseen. suunnitteluprosessissa. Käyttäjän huomiointi. Iteroitu versio paljon kirjoitusvirheitä

Käyttäjäkeskeinen suunnittelu

Ohjelmistojen suunnittelu

Projektisuunnitelma Viulu

Security server v6 installation requirements

Suunnittelumallit (design patterns)

Tietojärjestelmän osat

S SÄHKÖTEKNIIKKA JA ELEKTRONIIKKA

MODBUS -väyläohjaus DITRONIC TOUCH -KOSKETUSNÄYTTÖ. s-posti:

IT2015 EKT ERITYISEHTOJA OHJELMISTOJEN TOIMITUKSISTA KETTERIEN MENETELMIEN PROJEKTEILLA LUONNOS

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Transkriptio:

Käyttöliittymät II Luento 8 Ohjelmistoprojektimalleja Seuraavissa kuvauksissa oletetaan, että projektissa ei ole tavoitelähtöisen kälisuunnittelun osaamista. Lopuksi palataan kysymykseen, mitä tapahtuu, jos käyttötapausselvitykset ja tavoitelähtöinen kälisuunnittelu lisätään projektimalliin. Alkuosan lähde: Boehm B. W., A Spiral Model of Software Development and Enhancement. IEEE Computer, Vol. 21, No. 5, May 1988, s. 61-72. http://www.sce.carleton.ca/faculty/ajila/4106-5006/spiral Model Boehm.pdf Koodaa ja korjaa -malli Toistuvat vaiheet Koodin kirjoittaminen Ongelmien korjaaminen koodista Raportoituja ongelmia Huonosti jäsennetyn koodin muuttaminen kallista Korjauskierrosten tuloksena syntyvää huonosti jäsentynyttä koodia alkaa olla muutaman syklin jälkeen vaikeaa ja aikaavievää muuttaa Tarvitaan suunnitteluvaihe ennen koodausta Käyttäjiltä tulee lisää muutostarpeita koodiin Koodattu toiminnallisuus ei vastaa käyttäjien tarpeita, minkä seurauksena tehtyä työtä joudutaan heittämään pois tai sitä joudutaan ainakin muuttamaan paljon Tarvitaan vaatimusanalyysivaihe ennen suunnitteluvaihetta 1

Vesiputousmalli Määrittely Suunnittelu Toteutus Testaus Raportoituna ongelmana mm. yksityiskohtaiset dokumentit vaiheiden lopputiloina Tehokasta esim. kääntäjien tai käyttöjärjestelmien kehittämisessä Ei toimi hyvin etenkään interaktiivisten sovellusten kehittämisessä: projektiryhmä laatii yksityiskohtaiseen dokumentaatioon perusteelliset suunnitelmat myös huonosti ymmärretyistä kohdista (esim. huonosti mutta perusteellisesti määritellyt käliratkaisut) => käyttökelvotonta koodia, speksit ja koodi uusiksi myöhemmin Evoluutiomalli Ohjelmistotuotetta laaditaan inkrementaalisesti: aluksi kehitetään pieni osa toiminnallisuutta, jonka päälle seuraavassa vaiheessa kehitetään uutta jne. Lähteessä mallin sanotaan sopivan tilanteisiin, joissa käyttäjät ovat tätä mieltä: I can t tell you what I want, but I ll know when I see it. Missä ongelma oikeasti on? Raportoituja ongelmia mm. (Haikala, 1998) Projektin suunnittelematon kehityskulku: pitkän tähtäimen arkkitehtuurisuunnittelu puuttuu, joten uusien lisäysten seurauksena koodista alkaa tulla jäsentymätöntä Tilapäisiksi tarkoitetuista alkuvaiheiden ratkaisuista voi huomaamatta muodostua kiveen kirjoitettuja päätöksiä (company standards), joita ei enää voidakaan muuttaa 2

Spiraalimalli (Boehm, 1988) Painottuu riskienhallintaan. Hyödyntää mm. edellä kuvattuja malleja tarpeen mukaan. Spiraalimallin vaihe 1 Jokainen spiraalin kierros alkaa määrittelemällä... tavoitteet (esim. kaksinkertaistaa tuottavuus 5 vuodessa) ratkaisuvaihtoehdot tavoitteen saavuttamiseksi (esim. valmiin ohjelman ostaminen, ohjelmiston kehittäminen itse, työkäytäntöjen muutos, ohjelman vaihtoehtoinen design A, design B) vaihtoehtoihin liittyvät rajoitteet (esim. kustannukset 10 000 $ per hlö, aikataulu) 3

Spiraalimallin vaihe 2 Eräänä keskeisenä näkökohtana käyttöliittymäriskit Ratkaisuvaihtoehtojen arviointi Riskien paikantaminen Panostaminen epävarmoihin, riskialttiisiin kohtiin: Kokematon kehittäjä keskittyy jo ennestään hyvin tuntemiensa kohtien määrittelyyn (huono tulos) Kokenut kehittäjä osaa keskittyä selvittämään epävarmoja kohtia mahdollisimman pitkälle Epävarmat kohdat saadaan ratkaistua laatimalla prototyyppejä, simuloimalla, mallintamalla jne. Spiraalimallin vaihe 3 Jäljellä olevat riskit määräävät, mitä seuraavassa vaiheessa (ja seuraavilla kierroksilla) tehdään, ks. seur. taulukko 4

Jatkovaiheiden toimenpiteet riskien perusteella (esimerkki) Käli- ja suorituskykyriskit dominoivat Spiraalimalli painottuu kohti evoluutiomallia Suurimmista riskikohdista yksityiskohtaisia prototyyppejä. (Tuotteen määrittelyyn ja speksaukseen minimaalisesti resursseja.) Spiraalimalliin merkityt speksien laatimisvaiheet tiedostetaan, mutta näitä vaiheita ei suoriteta Budjetti- ja aikatauluriskit dominoivat Jos käli- ja suorituskykyriskit on jo saatu hallintaan esim. aiempien prototyyppien avulla, spiraalimalli siirtyy kohti vesiputousmallia Jokaista määrittelyä seuraa validointivaihe ja seuraavan syklin suunnitteluvaihe Prototyyppien laatiminen, simulointi, mallinnus ym. riskinvähentämismenettelyt tiedostetaan, mutta näitä vaiheita ei suoriteta (ei tarpeen) Spiraalimallin vaihe 4 Seuraavaa kierrosta varten toimintasuunnitelma resurssiarvio 5

Tavoitelähtöisen kälisuunnittelun lisääminen projektiin Mitä projektimalleille tapahtuu, jos nyt lisäämme niihin kuhunkin tavoitelähtöisten käyttötapausten selvittämisen ja tavoitelähtöisen käyttöliittymäsuunnittelun osaamisen? Yksi keskeinen riskivyyhti (käyttöliittymäriskit) putoaa pois. Mitä projektimallin muille osille tapahtuu? Vesiputousmalli Evoluutiomalli Määrittely Suunnittelu Toteutus Testaus Spiraalimalli 6

Vielä yksi projektimalli: Extreme Programming (XP) Oletus: Koska asiakkailta tulee aina paljon muutospyyntöjä projektin kuluessa, projektissa on varauduttava jatkuvaan vaatimusten muuttumiseen. Ratkaisu: Nopeatempoiset koodaussyklit, jotka tuottavat kokonaisia testattuja ohjelman versioita. Parin viikon pituiset koodaussyklit: Asiakas kirjoittaa käyttäjätarinoita, jotka ovat sekä toteutuksen lähtökohtana toimivia vaatimuksia että hyväksymistestauksen testitapauksia. Ohjelmoijat pilkkovat käyttäjätarinan ohjelmointitehtäviksi, jakavat työt ja kirjoittavat testit; koodaavat ja testaavat. Koodattu ja testattu versio annetaan asiakkaalle, jolta koodaajat saavat palautetta. Extreme Programming (XP) Kuva: Jukka Paakki, 2001 7

XP:n käyttäjätarinat (user stories) Esimerkkejä 1 / 2 User opens "My Companies" window and sees all the companies that he is assigned to. Then user clicks a company and sees projects of his that are for that company. This would replace the "My Projects" window. When a user creates a project, he selects a project "type" or template that creates a default set of action items for the project. User sets an action item's priority. Only people who can see a project can see a project's action items. http://c2.com/cgi/wiki?atsuserstories XP:n käyttäjätarinat (user stories) Esimerkkejä 2 / 2 A user marks a project as being owned by his group. (Question: can a user ever belong to more than one group?) Provide a box that will display the application name and version number for ATS, as well as tech. support contact info. A user wants access to the system, so he finds an ATS system administrator, who enters in the user's first name, last name, middle initial, email address, username (unique), and phone number. Users may be marked as "deleted." Users may also be marked as administrators. http://c2.com/cgi/wiki?atsuserstories 8

Tavoitelähtöisen kälisuunnittelun lisääminen? XP:n keskeisimmät ongelmat? Toimisiko XP, jos korvaisimme asiakkaiden kirjoittamat käyttäjätarinat käyttöliittymäsuunnittelijoiden laatimilla tavoitelähtöisillä käyttötapauksilla ja käyttöliittymäsuunnittelija laatisi toteutettavalle käyttötapaukselle käliratkaisun ennen kuin koodaajat jakaisivat käyttötapauksen osiin, laatisivat testit ja koodaisivat ko. toiminnallisuuden? Vesiputousmalli Evoluutiomalli Määrittely Suunnittelu Toteutus Testaus Spiraalimalli Extreme Programming (XP) Kuva: Jukka Paakki, 2001 9

Käyttöliittymäsuunnittelu projektin osana Vaatimusmäärittely Tavoitelähtöisten käyttötapausten selvittäminen Käyttöliittymäsuunnittelu Käyttöliittymäsuunnittelu Käyttöliittymäspeksin laadinta Toteutus Sekä toimintovalikoima että käliratkaisut! Käyttöliittymän arviointi ja testaus Toteutuksen suunnittelu Toteutus Testaus Suurimmat riskit käliosaamisen lisäämisen jälkeen? Vaatimusmäärittely Tavoitelähtöisten käyttötapausten selvittäminen Käyttöliittymäsuunnittelu Käyttöliittymäsuunnittelu Käyttöliittymäspeksin laadinta Sekä toimintovalikoima että käliratkaisut! Käyttöliittymän arviointi ja testaus Toteutus Toteutuksen suunnittelu Toteutus Testaus Suurimmat riskit alkavat olla täällä...? 10

Harjoitus: Projektisuunnitelma reittihakujärjestelmän PDA-version toteuttamiseksi Mitä projektissa pitäisi tehdä? Millaista osaamista työntekijöillä pitäisi olla? Onko aikataulu realistinen? Missä suurimmat riskit ovat? Mitä niille tehdään? Jos projekti ostetaan ulkopuolelta, millainen sopimus projektista pitäisi laatia ennen sen aloittamista? Projektin vaiheet ja tuotokset (deliverables) Aikatauluarvio Kustannusarvio 11