Ohjelmistoprosessit ja käyttöliittymäsuunnittelu

Samankaltaiset tiedostot
Koodaa ja korjaa -malli

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

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

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

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

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Ohjelmistotekniikka - Luento 2

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

Ohjelmistojen mallintaminen. Luento 11, 7.12.

2. Ohjelmistotuotantoprosessi

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

Projektityö

Oleelliset vaikeudet OT:ssa 1/2

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

Ohjelmistoprojektien hallinta Vaihejakomallit

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

Määrittelyvaihe. Projektinhallinta

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

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

Salasanan vaihto uuteen / How to change password

Ohjelmistoprosessi. Ohjelmistotuotanto. Yleiset ohjelmistotuotannon osatehtävät. Ohjelmistoprosessimalli. Vaihejaon ominaispiirteitä

Opetussuunnitelmien ja tutkintojen perusteiden rakenteistaminen

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

Testaaminen ohjelmiston kehitysprosessin aikana

Määrittely- ja suunnittelumenetelmät

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

T Projektikatselmus

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

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

Käyttäjäkeskeinen suunnittelu

GDD pohjainen käyttöliittymäsuunnittelu Reaktorilla

Laadukas vaatimustenhallinta. Pekka Mäkinen Copyright SoftQA Oy

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

ITK130 Ohjelmistoprosessi

Ohjelmistojen suunnittelu

Ohjelemistotuotanto, syksy 1998 /Prosessi Prosessimallit

Määrittelyvaiheen vaatimusten vaikutukset käyttöliittymään

anna minun kertoa let me tell you

Käyttöliittymien arviointimenetelmät

Ohjelmistojen mallinnus, s2008 HY/TKTL, 28/10/2008. Harri Laine 1. Ohjelmisto

käyttötapaukset mod. testaus

Vaatimustenhallinta. Exit

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

Microsoft Lync 2010 Attendee

Information on Finnish Language Courses Spring Semester 2017 Jenni Laine

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

Käyttötapausanalyysi ja testaus tsoft

Lab SBS3.FARM_Hyper-V - Navigating a SharePoint site

OT-s200: Prosessimallit

Dokumentointi ketterissä menetelmissä

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

Tutkittua tietoa. Tutkittua tietoa 1

SYSTEEMITYÖ. Tärkeitä sanoja

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

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

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

Ohjelmiston käyttöliittymään kohdistuvat riskit määrittelyvaiheen käyttöliittymäsuunnittelun jälkeen

Testausprosessin vaatimukset. 2. Testausprosessi (Artikkelit) Vesiputousmallin ongelmia. V-mallin neljä osavaihetta. Testausprosessimalli V-malli

Lyhyt johdatus ketterään testaukseen

Tuotemallipohjaisen toimintaprosessin mallintaminen

Collaborative & Co-Creative Design in the Semogen -projects

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

Miten 333 organisaatiota voi kehittää yhtä yhteistä digitaalista palvelua ja vielä kuunnella kaikkien asiakkaita?

Sisällysluettelo Table of contents

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Suunnitteluvaihe prosessissa

Tarkastusten rakenne. 10. Tarkastukset. Tuotoksen tekijän rooli. Tarkastustiimi. Tarkastusprosessin vaiheet. Tarkastusprosessi

10. Tarkastukset. Tarkastusten rakenne

Projektityö

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

Security server v6 installation requirements

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

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

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

Johdantoluento. Ohjelmien ylläpito

TW-LTE 4G/3G. USB-modeemi (USB 2.0)

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

Choose Finland-Helsinki Valitse Finland-Helsinki

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

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

TAMPEREEN TEKNILLINEN YLIOPISTO

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

Hajaantuminen. Juha Taina, Marko Salmenkivi ja Kjell Lemstöm, Ohjelmistotuotanto 30

Juha Taina, Marko Salmenkivi ja Kjell Lemström,

Toiminnallisen määrittelyn tarina. Esimerkki Reaktorin tavasta tehdä toiminnallista määrittelyä.

Projektityö

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Toteutusvaihe T2 Edistymisraportti

Security server v6 installation requirements

Suunnittelumallit (design patterns)

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

Ohjelmiston toteutussuunnitelma

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications

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

$$$ Raha ratkaisee. $$$ Raha ratkaisee. Ohjelmistotuote. Ohjelmistotekniikan määritelmä

Hankkeen toiminnot työsuunnitelman laatiminen

Transkriptio:

Ohjelmistoprosessit ja käyttöliittymäsuunnittelu Seuraavissa kuvauksissa oletetaan, että projektissa ei ole systemaattisen käyttötilanteisiin perustuvan kälisuunnittelun osaamista. Lopuksi palataan kysymykseen, mitä tapahtuu, jos prosessimalliin lisätään käyttötilanneselvitykset ja jokin systemaattinen menettely käliratkaisujen johtamiseksi niistä. Alkuosan lähde: Boehm B. W., A Spiral Model of Software Development and Enhancement. IEEE Computer, Vol., No. 5, May 988, s. 6 7. http://www.sce.carleton.ca/faculty/ajila/406 5006/Spiral Model Boehm.pdf Prosessimallit 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

Prosessimallit Vesiputousmalli Määrittely Suunnittelu Toteutus Testaus Erityisesti interaktiivisten järjestelmien kehittämisessä ongelma: yksityiskohtaiset dokumentit vaiheiden lopputiloina. Suunnitteluvaiheen ongelmia: Perusteellinen dokumentointi myös huonosti ymmärretyistä kohdista, esim. yksityiskohtaisesti kuvatut epämääräiset käliratkaisut (esim. laatikkokaavioita, navigointikarttoja) tai huonosti ymmärrettyjä toteutusratkaisuja, joista laaditaan yksityiskohtaiset toteutussuunnitelmat. => Käyttökelvotonta koodia, speksit ja koodi uusiksi myöh. Mitä pitäisi tehdä? Määrittelyvaiheen ongelmia: Vaikea tuottaa kattavaa vaatimusjoukkoa. Tulos näkyy vasta lopuksi! (Haikala, 998) Prosessimallit Evoluutiomalli Ohjelmistotuotetta laaditaan inkrementaalisesti: aluksi tehdään osa toiminnallisuutta, jonka päälle seuraavassa vaiheessa uutta jne. Lähteessä mallin sanotaan sopivan tilanteisiin, joissa käyttäjät kokevat: I can t tell you what I want, but I ll know when I see it. Missä ongelma oikeasti on? Raportoituja ongelmia mm. Pitkän tähtäimen arkkitehtuurisuunnittelu puuttuu. Uusien lisäysten seurauksena koodista alkaa tulla jäsentymätöntä. Koodatun version ongelmien korjaamisesta seuraa uudelleenkoodausta, kuten vesiputousmallissakin (mutta vähemmän ja paloittain).

Prosessimallit (Boehm, 988) Painottuu riskienhallintaan. Hyödyntää mm. edellä kuvattuja malleja tarpeen mukaan. Copyright 004 / Sari A. Laakso Vaihe 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 0 000 $ per hlö, aikataulu). 3

Vaihe 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. Jäljellä olevat riskit määräävät, mitä seuraavassa vaiheessa (ja seuraavilla kierroksilla) tehdään, ks. seuraavan sivun taulukko. Jatkotoimenpiteet riskien ohjaamana Käli ja suorituskykyriskit dominoivat painottuu kohti evoluutiomallia. Suurimmista riskikohdista tehdään yksityiskohtaisia prototyyppejä; konkreettisilla kokeiluilla saadaan selville, miten kannattaa jatkaa. (Määrittelyyn ja speksaukseen minimaalisesti resursseja.) in 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 muuttuu 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). 4

Vaihe 3 Jos riskejä jäi vielä jäljelle, voidaan hypätä tämän vaiheen (esim. software requirements) yli toistaiseksi ja jatkaa vaiheesta 4. Tarkoituksena on tällöin tehdä uusi riskiarviointi ja esim. prototyyppiselvitys. Jos tämä vaihe 3 suoritetaan, tuloksena on yhden vesiputousmallin vaiheen tuotos, kuten vaatimusmäärittely, karkea toteutussuunnitelma tms. Vaihe 4 Seuraavaa kierrosta varten toimintasuunnitelma resurssiarvio 5

Prosessimallit Kälisuunnittelun lisääminen Mitä prosessimalleille tapahtuu, jos nyt lisäämme niihin kuhunkin käyttäjien työhön perustuvan systemaattisen käyttöliittymäsuunnittelun esimerkiksi käyttämällä GUIDe mallin tavoitepohjaisia käyttötapauksia ja simulointipohjaista GDD suunnitteluprosessia tai Lauesenin tehtäväkuvauksia (tasks) ja Virtual Windows suunnitteluprosessia. Selvää on, että yksi keskeinen riskivyyhti (väärä käyttöliittymä, väärä toiminnallisuus) putoaa pois. Selvitä: Mihin käyttötapausselvitykset ja kälisuunnittelu sijoittuvat? Mitä prosessimallin muille osille tapahtuu? Vesiputousmalli Evoluutiomalli Määrittely Suunnittelu Toteutus Testaus 6

Vesiputousmalli Määrittely Suunnittelu Toteutus Testaus Evoluutiomalli 7

Vielä yksi prosessimalli: Extreme Programming (XP) XP:n lähtö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. 8

Extreme Programming (XP) Vaiheet Kuva: Jukka Paakki, 00 XP:n käyttäjätarinat (user stories) Esimerkkejä / Esimerkkejä käyttäjätarinoista. Sovelluksena on asiakasprojekteihin liittyviä projektitietoja ja yhteystietoja käsittelevä järjestelmä. 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://c.com/cgi/wiki?atsuserstories 9

XP:n käyttäjätarinat (user stories) Esimerkkejä / 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://c.com/cgi/wiki?atsuserstories Extreme Programming (XP) Kälisuunnittelun lisäämisen vaikutus? Mitkä ovat XP:n keskeisimmät ongelmat? Toimisiko XP, jos korvaisimme asiakkaiden kirjoittamat käyttäjätarinat käyttöliittymäsuunnittelijoiden laatimilla käyttötilanteilla tai tavoitepohjaisilla 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? Ts. voisiko kälisuunnittelun jälkeen pelkkä toteutusvaihe edetä XP syklien mukaisesti? 0

Käyttötapausten selvittäminen Ei asiakkaan laatimia käyttäjätarinoita, vaan alussa selvitettyjä käyttötapauksia Testaus: Käyttöliittymäsuunnittelu: GDD GUIDen tuoma muutos projektin alkuun Pikainen toteutuksen suunnittelu Hyödyllisyysläpikäynti Käyttöliittymän Käytettävyysläpikäynti Toiminnot ja tietosisältö arviointi iteraatiot ( Käyttäjän työstrategiat) Käyttäjän työstrategiat Kälin opittavuus Kälin tehokkuus Käyttötapaus Koodaustyönjako Yksikkötestit Parikoodaus Käyttötapaus Koodaustyönjako Yksikkötestit Parikoodaus Yksikkötestaus Yksikkötestaus Integrointi Integrointi Vesiputousmalli Evoluutiomalli Määrittely Suunnittelu Toteutus Testaus Extreme Programming (XP) Kuva: Jukka Paakki, 00

GUIDe malli Suurimmat jäljellä olevat riskit? Tavoitepohjaisten käyttötapausten selvittäminen kenttätutkimuksilla Käyttöliittymän piirtäminen GDD simulointisuunnittelulla: Käyttöliittymän piirtäminen näkyviin => käyttötapausten aukot esille Paperiproton läpikäyntitestaukset Toimintojen, tietosisällön ja interaktioratkaisujen generointi Hyödyllisyysläpikäynti Toiminnot ja tietosisältö Käyttäjän työstrategiat Kälin tehokkuus Käytettävyysläpikäynti ( Käyttäjän työstrategiat) Kälin opittavuus Toteutus Toteutuksen suunnittelu Toteutus Testaus Suurimmat riskit alkavat olla täällä...? GUIDe malli Dokumentaatio Tavoitepohjaisten käyttötapausten selvittäminen kenttätutkimuksilla Käyttöliittymän piirtäminen GDD simulointisuunnittelulla Paperiproton läpikäyntitestaukset: Hyödyllisyysläpikäynti Käytettävyysläpikäynti Käyttötilanteet Käyttöliittymän kuvasarjat Tavoitepohjaiset käyttötapaukset Toteutusratkaisujen suunnittelu UMLkäyttötapaukset