4 Verkkopalvelun toteuttaminen

Samankaltaiset tiedostot
4 Verkkopalvelun toteuttaminen

4 Verkkopalvelun toteuttaminen

Hypermedian ohjelmointi, kevät 2009

3 Verkkopalveluarkkitehtuuri

3 Verkkopalveluarkkitehtuuri

Käytettävyys verkko-opetuksessa Jussi Mantere

9 Edistynyt PHP-ohjelmointi

Mitä käytettävyys on? Käytettävyys verkko-opetuksessa. Miksi käytettävyys on tärkeää? Mitä käytettävyys on? Nielsen: käytettävyysheuristiikat

Uudelleenkäytön jako kahteen

Kurssin hallinta -työväline

Nimi: Opnro: Harjoitustyön suoritus: ( ) syksy 2006 ( ) syksy 2005 ( ) muu, mikä. 1. Selitä seuraavat termit muutamalla virkkeellä ja/tai kaaviolla:

5 Verkkopalvelun sisällön hallinta

3 Verkkopalveluarkkitehtuuri

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmoinnin perusteet Y Python

Järjestelmäarkkitehtuuri (TK081702)

11 Valmiit ratkaisut. 11 Valmiit ratkaisut

13/20: Kierrätys kannattaa koodaamisessakin

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

T Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

TOIMINNALLINEN MÄÄRITTELY MS

ARVO - verkkomateriaalien arviointiin

VisualStudio Pikaopas, osa 1: WEB sivujen suunnittelu

Ohjelmoinnin perusteet Y Python

Projektinhallintaa paikkatiedon avulla

Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Ohjelmiston testaus ja laatu. Testaustasot

Tekninen suunnitelma - StatbeatMOBILE

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

8 Hypermedian suunnitteleminen

Korpusten käsittely clt131, P Luento 4

Käyttäjäkeskeinen suunnittelu

Web sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin

Oleelliset vaikeudet OT:ssa 1/2

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

Suunnitteluvaihe prosessissa

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

Ohjelmoinnin perusteet Y Python

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

Heuristisen arvioinnin muistilista - lyhyt versio

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

Valppaan asennus- ja käyttöohje

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14


Toiminnalliset ja ei-toiminnalliset vaatimukset Tunnus (ID) Vaatimus Vaatimuksen

SEPA-päiväkirja: Käytettävyystestaus & Heuristinen testaus

Ryhmäläisten nimet:

Hypermedian ohjelmointi (2 ov) kevät Yleisiä tietoja kevään kurssista. Kurssin sisältö ja suorittaminen

Lohtu-projekti. Testaussuunnitelma

Good Minton Sulkapalloliiton Kilpailujärjestelmä SEPA: Heuristinen arviointi

KÄYTETTÄVYYSPÄIVÄ Meeri Mäntylä (sis. osia Anne Pirisen esityksestä) KÄYTETTÄVYYS. Mitä merkitystä sillä on?

LoCCaM Riistakamerasovellus. Dimag Ky dimag.fi

ruovedellä pohjois-hämeessä. lepounit.com (yritys) lepo.net (oma)

2 Web-lomakkeet. HTML-lomakkeet. Lomakkeiden perusteet

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

Käytettävyyslaatumallin rakentaminen verkkosivustolle

Toimilohkojen turvallisuus tulevaisuudessa

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences

Käyttöjärjestelmät. 1pJÄKÄ1 KÄYTTÖJÄRJESTELMÄN HALLINTA, 12 OSP

17/20: Keittokirja IV

Tapahtumakalenteri & Jäsentietojärjestelmä Toteutus

Säännöllisten kielten sulkeumaominaisuudet

Saavutettavuus > Tapio Haanperä Saavutettavuusasiantuntija tel

Vaatimusluettelo. Liite2_Vaatimusluettelo. Tun nus (ID) Kpl Tärkeys Toimittajan kommentit Navigointi. Haut

3 Verkkosaavutettavuuden tekniset perusteet

HELIA 1 (12) Outi Virkki Tiedonhallinta

Uudistettu käyttöliittymä osoitteessa

Käyttöliittymäuudistus 2011

206 Verkkosivun tuottaminen finaalitehtävät

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

10 Nykyaikainen WWW-arkkitehtuuri

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

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

Opiskelija osaa suunnitella ohjelmiston toteuttamisen, toteuttaa, testata ja dokumentoida ohjelmiston.

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

Käyttötapauksen nimi Lukija: pääsivu Osallistujat Lukija Tuloehdot Käyttäjä on avannut sivuston pääsivun Kuvaus Ruudulle tulostuvat kirjoittajat ja

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

KÄYTETTÄVYYSPÄIVÄ Johanna Silvennoinen (Perustuu Meeri Mäntylän kalvoihin, sis. osia Anne Pirisen esityksestä)

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

Kieliversiointityökalu Java-ohjelmistoon. Ohje

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Johdatus rakenteisiin dokumentteihin

CQRS, -ES, PACS, DICOM, WTF?

EMCS-järjestelmän sanomarajapinnan toiminnallinen kuvaus asiakkaille Meeri Nieminen

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

ITK130 Ohjelmistojen luonne

Sisällysluettelo. s.1(14) CRA Computer & Robot applications Oy. v.1.2 ESITTELY TOIMINNALLISUUS... CRA-TV HALLINTA-OHJELMA...

Toteutusvaihe T2 Edistymisraportti

KÄYTETTÄVYYSPÄIVÄ

HELIA 1 (11) Outi Virkki Tiedonhallinta

Ohjelmistojen suunnittelu

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmointi 1 / syksy /20: IDE

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

S11-09 Control System for an. Autonomous Household Robot Platform

5 Sisällönhallinta- ja julkaisujärjestelmät

Transkriptio:

4 Verkkopalvelun toteuttaminen Tällä kerralla on tavoitteena käydä läpi verkkopalvelun toteuttamiseen liittyviä asioita Mitkä tekijät asettavat reunaehtoja verkkopalvelun toteutukselle? Mitä kaikkea verkkopalvelun toteutuksessa on otettava huomioon? Loppukäyttäjä: käytettävyys (käytön tehokkuus ja virheettömyys, subjektiivinen tyytyväisyys) & saavutettavuus,... Kehittäjä/ylläpitäjä: ylläpidettävyys & päivitettävyys, muokattavuus, uudelleenkäyttö,... Miten verkkopalvelun tyypilliset toiminnot toteutetaan? Verkkopalvelun toiminnallisuus perustuu lomakkeisiin, joten yksittäisten toimintojen toteuttaminen on pääosin samanlaista Toteutustyön tueksi on olemassa valmiita suunnittelumalleja ja sovelluskehyksiä: tyhjästä on yleensä turha aloittaa Tutustutaan ensin tarkemmin verkkopalvelun toteutustyön reunaehtoihin eri näkökulmasta ja käydään sitten läpi esimerkkejä siitä, miten reunaehdot käytännössä otetaan huomioon toteutustyössä 7307010 Hypermedian ohjelmointi (kevät 2005) 47

Näkökulmia verkkopalvelun toteutukseen Sovelluksen käytettävyyden kriteerejä loppukäyttäjän näkökulmasta (Nielsen): käyttäminen helppo oppia, käyttäminen on tehokasta (noviisi vs. ekspertti), helposti muistettavissa, aiheuttaa vähän virheitä ja on mukava käyttää. Teknisen toteutuksen kriteerejä: Kustannustehokkuus, luotettavuus ja yhdenmukaisuus (Welling & Thompson) Päivitettävyys, siirrettävyys, uudelleenkäyttö, yhteensopivuus, virhesietoisuus (ohjelmistotuotanto) Tutustutaan seuraavaksi hieman tarkemmin siihen, miten kriteerit otetaan huomioon verkkopalvelun teknisessä toteutuksessa. 7307010 Hypermedian ohjelmointi (kevät 2005) 48

Heuristinen käyttöliittymäsuunnittelu (kertausta) Tyypillinen hyvän käyttöliittymäsuunnittelun muistilista sisältää esim. seuraavat kohdat (Nielsen): järjestelmän tila (jos on pakko käyttää) pitää olla aina käyttäjän tiedossa järjestelmän käsitteiden tulee vastata sovellusalueen käsitteitä ei-toivotut komennot on voitava selkeästi peruuttaa (lipsahdukset!) käsitteiden ja toimintojen tulee olla systemaattisia ja odotusten mukaisia käyttövirheet tulee ennakoida ja ennaltaehkäistä virheiden tekeminen käytön tulee olla havaitsemista ulkoa muistamisen sijaan eksperteille on tarjottava tehokkaita menetelmiä (optiot ja adaptiivisuus) pieni on kaunista toteuta selkeät virheviestit jotka ehdottavan ongelman korjaamista ohjeet ja dokumentaatio tulisivat aina olla tarvittaessa saatavilla Itsestään selviä asioita? Tuppaavat ainakin unohtumaan kovin helposti! 7307010 Hypermedian ohjelmointi (kevät 2005) 49

Heuristiikan toteuttaminen: esimerkkejä Järjestelmän tila: Sisään kirjautuneen käyttäjän tunnus/nimi näytetään sovelluksen käyttöliittymässä (+ mahdollisuus uloskirjautumiseen) Käyttäjän sijainti sovelluksessa: mukautuva valikko tai murupolku Portaali: kooste järjestelmän tilasta käyttäjän mieltymysten perusteella Järjestelmän käsitteet vs. käyttäjä: Human-Computer Interaction (HCI) ja käyttäjäkeskeinen suunnittelu Toiminnallisuuden ja teknisen suunnittelun erottaminen Käsitteiden testaaminen prototyyppien avulla Toimintojen peruuttaminen: Esikatselu ja hyväksyminen Mahdollisuus syötetyn tiedon muokkaamiseen/poistamiseen Peruuta-toiminnon toteuttaminen hankalaa! 7307010 Hypermedian ohjelmointi (kevät 2005) 50

Toimintojen systemaattisuus: Yhtenäisyys: sivupohjat ja kielitiedostot kirjastojen toteuttaminen käyttöliittymien tuottamiseen, käyttöliittymän irrottaminen toimintalogiikasta Käyttövirheiden ennakointi ja ennaltaehkäisy Ohjeet ja opasteet, käyttöliittymäsuunnittelu,... Testaaminen (prototyypit)! Käyttö havaitsemista, ei ulkoa muistamista: Ohjeet ja opasteet, käyttöliittymäsuunnittelu,... Portaali (vrt. järjestelmän tila) Hakutoiminto: tiedon visualisointi vs. avainsanahaku Eksperteille tehokkaita menetelmiä: Käyttäjäroolit Mukautuva hypermedia 7307010 Hypermedian ohjelmointi (kevät 2005) 51

Pieni on kaunista: Laiha asiakas, käyttöliittymäsuunnittelu Yksinkertaisen verkkopalvelun suunnitteleminen on huomattavasti työläämpää kuin monimutkaisen! Selkeät virheviestit: Tieto siitä, missä virhe on ja ohjeet virheen korjaamiseksi Ohjeet ja dokumentaatio saatavilla: Verkkopalvelun käyttöliittymässä on yleensä riittävästi tilaa siihen, että suuri osa ohjeista voidaan upottaa suoraan sovellukseen: usein erillistä käyttöohjetta ei tarvita ollenkaan Julkaisukontekstista (käyttäjä, päätelaite & verkkoyhteys) tehdyt oletukset (tuki skripteille tai evästeille, pakolliset selainlaajennukset, ) on aina kerrottava käyttäjälle Nielsenistä sinänsä voi olla montaa mieltä, mutta hänen nimissään kulkeva heuristiikka toimii hyvänä muistilistana sovelluksen toteutuksen arvioinnissa Sovellusten arviointiin tarkoitettuja heuristiikkoja voi vapaasti käyttää apuvälineenä myös sovelluksen suunnittelutyössä 7307010 Hypermedian ohjelmointi (kevät 2005) 52

Lomakkeet ja syötteen käsittely Verkkopalvelun tekninen toteutus perustuu lomakkeisiin. Verkkopalvelun toiminto sisältää tyypillisesti seuraavat vaiheet: 1. Käyttäjä syöttää toiminnon edellyttävät tiedot lomakkeeseen ja lähettää lomakkeen sovellukselle 2. Sovellus ottaa pyynnön vastaan ja tarkastaa (validoi) syötteen Syötteen ollessa laillinen: 3. Syötteen perusteella valitaan osa sovelluksen tietosisällöstä (turvallinen toiminto, ~haku) tai muutetaan sovelluksen tilaa (ei-turvallinen toiminto, ~tilaus) 4. Käyttäjä ohjataan uuteen näkymään, jossa kerrotaan toiminnon onnistumisesta ja näytetään haun tulos tai sovelluksen uusi tila Syötteen ollessa virheellinen: 3. Käyttäjä ohjataan takaisin näkymään, jossa virhe on tapahtunut. Näkymään liitetään korjausehdotuksen sisältävä virheilmoitus ja korostetaan virheellisen syötteen sisältävä lomakkeen komponentti tai komponentit 7307010 Hypermedian ohjelmointi (kevät 2005) 53

Syötteen tarkastaminen Reunaehtoja syötteen laillisuudelle: Tietokanta: syötteen pakollisuus (pääavain tai not null), sarakkeen sisällön maksimikoko tai yksikäsitteisyys (pääavain) Määrämuoto: sähköpostiosoite, henkilötunnus, päivämäärä, viitenumero, ISBNtunnus, URI,... Laillinen syöte määritellään usein osana sovelluksen toiminnallista määrittelyä (vrt. HYTT) Keino tarkastamiseen: säännölliset lausekkeet (regular expressions) Määritellään merkkijonon sallittu hahmo (pattern), jota verrataan tutkittavaan merkkijonoon Säännöllisiä lausekkeita voi käyttää myös merkkijonojen etsimiseen ja korvaamiseen Syötteen pakollisuuteen ja merkkijonon pituuteen liittyvät tarkastukset voidaan toteuttaa käytössä olevan ohjelmointikielen kirjastofunktioilla 7307010 Hypermedian ohjelmointi (kevät 2005) 54

Säännöllisten lausekkeiden perusteet Säännöllisen lausekkeen hahmo koostuu merkeistä ja metamerkeistä (metacharacters) (Lähde: Rantala, A. PHP Web-ohjelmoinnin peruskirja): vaihtoehto ^ seuraava lauseke merkkijonon alussa $ edeltävä lauseke merkkijonon lopussa. mikä tahansa merkki (yksi) * edellisen lausekkeen toisto 0 tai useamman kerran + edellisen lausekkeen toisto 1 tai useamman kerran? edellisen lausekkeen toisto 0 tai 1 kertaa () lausekkeen ryhmittely (ja varastointi) [] merkkijoukko {} edellisen lausekkeen toisto vähintään n ja enintään m kertaa {n,m} \ metamerkin merkityksen poisto 7307010 Hypermedian ohjelmointi (kevät 2005) 55

Esimerkki säännöllisestä lausekkeesta Toiminnallisen määrittelyn yhteydessä voidaan esimerkiksi määritellä päivämäärän muodoksi yyyy-mm-dd (Lähde: http://www.w3.org/tr/note-datetime) Esimerkki hahmosta: ^[0-9]{4}-[01][0-9]-[0-3][0-9]$ merkkijono alkaa (^) tasan neljällä merkillä ({4}) joukosta (0, 1, 2, 3,..., 9) viidentenä merkkinä on pakollinen väliviiva (-) kuukauden ensimmäinen numero on aina 0 tai 1 ([01]) ja toinen välillä 0-9 pakollinen väliviiva (-) päivämäärän ensimmäinen ([0-3]) ja toinen ([0-9]) numero lopussa ei muita merkkejä ($) Huomaa, että tavalliselta käyttäjältä (noviisi) ei yleensä kannata vaatia päivämäärän kirjoittamista tietyssä muodossa (vaihtoehdot!). Tehokäyttäjä onkin sitten asia erikseen (ohjeistus) Säännöllisten lausekkeiden ideat tulevat vastaan myös esimerkiksi formaalien kielten ja UNIX-tehokäytön yhteydessä (grep) 7307010 Hypermedian ohjelmointi (kevät 2005) 56

Syöte, tietoturva ja PHP Vihamielinen käyttäjä voi horjuttaa sovelluksen tietoturvaa monella tavalla: Tietokanta: Syötteeseen voidaan lisätä merkkejä, jotka mahdollistavat SQLkomentojen välittämisen suoraan tietokantaan. Ratkaisu: addslashes()- ja stripslashes()-funktiot Komentotulkki: Syötteeseen voidaan lisätä merkkejä, jotka mahdollistavat käskyjen välittämisen komentotulkille (shell). Ongelma silloin, kun PHP-ohjelma välittää syötteen komentoriviohjelmalle. Ratkaisu: escapeshellcmd()-funktio HTML-käyttöliittymä: Syötteeseen voidaan lisätä merkkejä, jotka sotkevat sovelluksen käyttöliittymän. Ongelma syntyy silloin, kun käyttäjän syöte tulostetaan takaisin käyttöliittymään (esimerkiksi keskustelupalsta tai vieraskirja). Ratkaisu: strip_tags()- ja htmlspecialchars()-funktiot Verkkopalvelun tietoturvallisen toteutuksen perusteisiin kuuluu lisäksi HTTPSprotokollan käyttäminen kaiken arkaluontoisen tiedon välittämiseen asiakkaan ja palvelimen välillä. HTTPS-protokollan käyttö estää tietojen selvittämisen tietoliikennettä kuuntelemalla. HTTPS-protokollan yli välitettyjä tietoja ei myöskään säilytetä selaimen välimuistissa. 7307010 Hypermedian ohjelmointi (kevät 2005) 57

Koodin uudelleenkäyttö Koodin uudelleenkäytöllä on useita lisäarvoja sovelluksen toteutustyössä: Kustannustehokkuus: Sovelluksen moduulin M ylläpitämiseen, testaamiseen ja dokumentointiin keskimäärin kuluva aika on toteuttamiseen verrattuna moninkertainen Ylläpidettävän koodin määrä on pyrittävä pitämään mahdollisimman pienenä Luotettavuus: Moduulin luotettavuuden varmistaminen edellyttää kattavaa testaamista Testaamisesta huolimatta koodiin voi jäädä ohjelmointivirheitä, jotka paljastuvat ajan myötä Yhdenmukaisuus: Sovelluksen käyttöliittymien (ja muiden rajapintojen) yhdenmukainen toteuttaminen esimerkiksi tyylioppaan perusteella on työlästä Modulaarinen toteutus mahdollistaa koodin uudelleenkäytön 7307010 Hypermedian ohjelmointi (kevät 2005) 58

Koodin uudelleenkäyttö ja PHP PHP-kieli mahdollistaa koodin uudelleenkäytön moduulien ja funktioiden avulla: include() ja require(): tiedoston sisällyttäminen toiseen PHP-tiedostoon. Ero: ensimmäinen aiheuttaa epäonnistuessaan varoituksen (warning), jälkimmäinen virheen (error) include-once() ja require-once(): vastaavia kuin edelliset, mutta sisällyttäminen tapahtuu ainoastaan kerran Käyttötapauksia: Omat funktiokirjastot: HTML-merkkauksen tulostaminen, tietokantayhteyden avaaminen, syötteen tarkastaminen,... => include-once() Sivupohjan (header.inc ja footer.inc) ja muiden yleisten HTMLrakenteiden irrottaminen omaksi kokonaisuudekseen => include() PHP5 mahdollistaa yksinkertaisten moduulien ohella myös täysiverisen olioohjelmoinnin (periytyminen, paketointi, poikkeukset,...) Tietoturvan parantamiseksi arkaluontoista tietoa sisältävät sisällytettävät tiedostot kannattaa nimetä php-tiedostopäätteellä (miksi?) 7307010 Hypermedian ohjelmointi (kevät 2005) 59

Ohjelmistotuotannon kriteerit Yleisessä ohjelmistotuotannossa sovelluksen laadulle on määritelty mm. seuraavat kriteerit: Päivitettävyys: Yleisesti: mekaanisten työtehtävien siirtäminen ihmiseltä tietokoneelle Modulaarinen suunnittelu parantaa sovelluksen päivitettävyyttä merkittävästi: HTML-merkkauksen tulostaminen, sivupohjat,... Verkkopalvelussa myös sisällön päivittämisen helppous on tärkeää Siirrettävyys: Sovelluksen toteutustekniikoiden valinta siten, että tuki löytyy mahdollisimman monelta palvelimelta Esimerkkejä: ODBC-tietokantarajapinta ja SQL-standardi (tai tekstitiedostojen käyttäminen), yleisesti käytössä olevat versiot käytettävistä ohjelmistoista ja kielistä, erillistä asennusta vaativien kirjastojen käytön välttäminen 7307010 Hypermedian ohjelmointi (kevät 2005) 60

Uudelleenkäyttö: Modulaarinen suunnittelu Verkkopalvelun yleisten osien irrottaminen sovelluskohtaisista ratkaisuista Dokumentointi! Yhteensopivuus: Standardiratkaisujen käyttäminen mahdollisuuksien mukaan: validi HTML ja CSS, kuvat JPEG/GIF/PNG-muodossa Sovelluksen toteuttaminen saavutettavuuden ja laiteriippumattomuuden periaatteiden mukaisesti Sovelluksen kansainvälistäminen Virhesietoisuus: Sovelluksen on toivuttava erilaisista virheistä: virheelinen syöte, tiedoston lukemisen tai kirjoittamisen epäonnistuminen, tietokantayhteyden katkeaminen Käyttäjälle virheilmoitus selvällä kielellä ja esimerkiksi toimenpidesuositukset Sovelluksen toiminnallisuuden toteuttaminen periaatteella Toimii PC:llä, mun PC:llä ei useinkaan ole järkevää, ei ainakaan verkkopalveluiden yhteydessä 7307010 Hypermedian ohjelmointi (kevät 2005) 61

Yhteenveto Verkkopalvelun (yleisesti hypermediasovelluksen) toteutuksessa on otettava huomioon paljon erilaisia asioita Dokumentoidun suunnittelun merkitys korostuu Perinteisen vesiputousmallin mukaisen prosessin sijaan on usein perusteltua käyttää iteraviisia suunnittelu- ja toteutusmenetelmiä: prototypointi tai RAD Suunnittelutyössä ja valmiin sovelluksen arvioinnissa kannattaa käyttää apuna erilaisia heuristiikkoja ja muistilistoja Avaintekijä sovelluksen toteutuksen laadun edistämisessä on modulaarinen suunnittelu. Asia kannattaa pyrkiä ottamaan huomioon jo harjoitustyön toteutuksessa Suunnittelumallien (design patterns) ja sovelluskehysten (application framework) avulla voidaan entisestään tehostaa toteutustyötä. Molempiin palataan vielä kurssin kuluessa Uuden sukupolven menetelmien (Agile: Extreme Programming yms.) hyödyntäminen on ehdottomasti selvitystyön arvoinen vaihtoehto 7307010 Hypermedian ohjelmointi (kevät 2005) 62