scieee Open visual document viewer

Graafisen käyttöliittymän tyyliopas ja sen noudattamisen ohjelmallinen valvonta

Kari, Henna

Full text

Henna-Riikka Ka i G aa isen käy ölii ymän yyliopas ja sen nouda amisen ohjelmallinen al on a Tie o ekniikan p o g adu - u kielma 21. ma askuu a 2024 Jy äskylän yliopis o In o maa io eknologian iedekun a Tekijä: Henna-Riikka Ka i Yh eys iedo : [email p o ec ed] Ohjaaja: Tommi Mikkonen Työn nimi: G aa isen käy ölii ymän yyliopas ja sen nouda amisen ohjelmallinen al on a Ti le in English: G aphical UI s yle guide and p og amma ic moni o ing o i s compliance Työ: P o g adu - u kielma Opin osuun a: Ohjelmis o- ja ie oliikenne ekniikka Si umää ä: 101+0 Tii is elmä: Toimi a ja yylikäs g aa inen käy ölii ymä on ä keä osa ohjelmis okehi ys ä ja aiku aa me ki ä äs i käy äjäkokemukseen ja sen myö ä uo een laa uun ja kaupalliseen menes ykseen. Tehokas käy ölii ymäsuunni elu puoles aan nojaa oimi aan komponen iki - jas oon ja sen uudelleen käy e ä iin, keskenään uo o aiku a iin komponen eihin. Kun o - ganisaa iossa usea kehi äjä luo a uusia komponen eja, loppu ulos on usein epäyh enäinen ja kehi äjänsä näköinen. Selkeällä ja ohjelmallises i es a a alla yyliohjeis uksella oidaan käy ölii ymien ilmeeseen saada kai a ua yh enäisyy ä, oimi uu a ja laa ua. Tämän suunni elu u kimuksen uloksena o eu e iin kohdeo ganisaa iolle käy ölii ymän yy- liopas ja malli sen isuaalisis a eg essio es eis ä. Kohdeo ganisaa io on keskisuomalainen oh- jelmis oalan y i ys, joka uo aa SaaS-pal eluja lähinnä ene gia oimialan a peisiin. Tyyliopas o eu e iin olemassa ole an komponen iki jas on yh ey een osaksi suu empaa kokonaisuu - a. Se sisälsi joukon o ganisaa iospesi ejä uudelleenkäy e ä iä g aa isia komponen eja, sekä ohjee ypog a ias a, ikoneis a, ä eis ä ja si umalleis a. Tyylin al ojaksi ali iin Vi es ima- ge snapsho s, joka so el uu niin yksi äis en komponen ien kuin kokonais en si unäkymien snapsho - es aukseen ja in eg oi uu helpos i käy össä ole aan Vi e-ympä is öön, jossa oimin- nallinen es aus suo i e aan jo Vi es :illä. Tu kimus sisälsi myös ohjee komponen iki jas on e- kons uk iolle niin, e ä yylioppaas a saadaan elä ä ja ylläpide ä ä. Tu kimus an aa a okas a in o maa io a ja oimi ia esime kkejä kohdeo ganisaa iolle ja oimii mallina myös muille. A ainsana : p o g adu - u kielma , käy ölii ymän yyliopas, käy ölii ymän isuaalinen es- aus, komponen iki jas o, suunni elujä jes elmä i Abs ac : A unc ional and elegan g aphical use in e ace is an impo an pa o so wa e de elopmen and has a signi ican impac on use expe ience and impac s he quali y and com- me cial success o he p oduc . E ec i e use in e ace design, in u n, elies on a unc ional componen lib a y and i s eusable, mu ually in e ac ing componen s. When se e al de elope s in an o ganiza ion c ea e new componen s, he esul is o en inconsis en and looks like i s de elope . Wi h clea and p og amma ically es able s yle guidelines, he desi ed consis ency, unc ionali y and quali y can be achie ed in he appea ance o use in e aces. As a esul o his design science esea ch, a use in e ace s yle guide and a model o i s isual eg ession es s we e implemen ed o he a ge o ganiza ion. The a ge o ganiza ion is a cen - al Finnish so wa e company ha p oduces SaaS se ices mainly o he needs o he ene gy sec o . The s yle guide was implemen ed in connec ion wi h an exis ing componen lib a y as pa o a la ge whole. I included a se o o ganiza ion-speci ic eusable g aphic componen s, as well as ins uc ions on ypog aphy, icons, colo s and page empla es. Vi es image snapsho s was chosen as he ool o con ol he usage o he s yle guide, which is sui able o snapsho es- ing o bo h indi idual componen s and en i e page iews and easily in eg a es in o he exis ing Vi e en i onmen , whe e unc ional es ing is al eady pe o med wi h Vi es . The s udy also included ins uc ions o econs uc ing he componen lib a y so ha he s yle guide is ali e and main ainable. This esea ch p o ides aluable in o ma ion and wo king examples o he a ge o ganiza ion and also se es as a model o o he s. Keywo ds: Mas e ’s Theses, GUI S yle Guide, GUI Visual Tes ing, Componen Lib a y, GUI Design Sys em ii Koodilohko Koodilohko 1 Ko a a a Ale -esiin ymä..................................................38 Koodilohko 2 Ale -esiin ymänko aa akoodi. ..........................................38 Koodilohko 3 Bu on-esiin ymä.............................................................39 Koodilohko 4 Fo m-esiin ymänko aa akoodi. ............................................41 Koodilohko 5 Ko a a a Menu-esiin ymä. ..................................................43 Koodilohko 6 Menu-esiin ymänko aa akoodi. ............................................44 Koodilohko 7 Ko a a a Modal-esiin ymä..................................................46 Koodilohko 8 Modal-esiin ymänko aa akoodi. ..........................................46 Koodilohko 9 Komponen in pa ame ina saama oimin opainikejoukko. ...................46 Koodilohko 10 Ko a a a Popo e -esiin ymä. .............................................48 Koodilohko 11 Popo e -esiin ymän ko aa a koodi. .......................................49 Koodilohko 12 Ko a a a B andTable-esiin ymä. ........................................51 Koodilohko 13 B andTable-esiin ymän ko aa a koodi. ..................................51 Koodilohko 14 Ko a a a Tool ip-esiin ymä. .............................................53 Koodilohko 15 Tool ip-esiin ymän ko aa a koodi. .......................................53 Koodilohko 16 Vi es -syn aksi, koko si un es i. ..............................................63 Koodilohko 17 Plaw igh -syn aksi, koko si un es i. ..........................................63 Koodilohko 18 Cyp ess-syn aksi, koko si un es i.............................................63 Koodilohko 19 Vi es -syn aksi, komponen in es i.............................................64 Koodilohko 20 Plaw igh -syn aksi, komponen in es i. .......................................64 Koodilohko 21 Cyp ess-syn aksi, komponen in es i. .........................................64 iii Ku io Ku io1.Suunni elujä jes emä. .................................................................. 7 Ku io 2. Suunni elu u kimuksen aihee He ne (2007) mallin mukaan, apaa käännös.....14 Ku io 3. Komponen iki jas on ekninen oimin aympä is ö. ...................................20 Ku io 4. Komponen iki jas on Playg ound-ympä is ö. .........................................21 Ku io 5. Asiakkaan laskusi un uo a a komponen i In oices. ............................23 Ku io 6. In oices-komponen in akenne UML-kaa iona....................................24 Ku io 7. Vaa imusmää i ely: yylioppaan yleise aa imukse . ................................27 Ku io 8. Vaa imusmää i ely: yylioppaan yyleihin lii y ä aa imukse ......................29 Ku io 9. Vaa imusmää i ely: yylioppaan komponen eihin lii y ä aa imukse .............31 Ku io 10. Vaa imusmää i ely: yylioppaan malleihin lii y ä aa imukse ....................32 Ku io 11. Vaa imusmää i ely: yylin al ojan aa imukse . ....................................32 Ku io 12. Yhden sisällön si umalli komponen in sisäisen ma ginaalin kanssa. ...............56 Ku io 13. Yhden sisällön si umalli ilman komponen in sisäis ä ma ginaalia. .................56 Ku io 14. Kahden sisällön si umalli oisen komponen in sisäisen ma ginaalin kanssa........57 Ku io 15. Kahden sisällön si umalli ma ginaali on komponen i ko os e una. ...............57 Ku io 16. Kahden sisällön si umalli ma ginaalia sisäl ä ä komponen i ko os e una. .......58 Ku io17.Vi es ,kokosi un es i.................................................................65 Ku io18.Vi es ,komponen in es i. .............................................................65 Ku io19.Playw igh ,kokosi un es i. ..........................................................66 Ku io20.Playw igh ,komponen in es i.........................................................66 Ku io21.Cyp ess,kokosi un es i. .............................................................66 Ku io22.Cyp ess,komponen in es i............................................................66 Ku io 23. Ensimmäisen a sinaisen es iajon ulokse ...........................................70 Ku io 24. Koko es isi un yöpöy ä-näkymän poikkeamaku a (T1)............................71 Ku io 25. Koko es isi un mobile-näkymän poikkeamaku a (T2)..............................71 Ku io 26. Koko es isi un able -näkymän poikkeamaku a (T3). ..............................72 Ku io 27. P imää ipainikkeen ulkoasu es in (T4) poikkeamaku a. ............................72 Ku io 28. P imää i ä ilaa ikon ulkoasu es in (T7) poikkeamaku a. ...........................73 Ku io 29. In olaa ikon ho e - es in (T8) poikkeamaku a. ......................................73 Ku io 30. Dialogi es in (T9) poikkeamaku a. ...................................................74 Ku io 31. Ponnahdusikkuna es in (T10) poikkeamaku a. ......................................74 Ku io 32. In olaa ikon ho e - es in (T8) oinen poikkeamaku a. ..............................75 Ku io 33. Dialogi es in (T9) oinen poikkeamaku a. ...........................................75 Ku io 34. Ponnahdusikkuna es in (T10) oinen poikkeamaku a................................76 Ku io 35. Dialogi es in (T9) kolmas poikkeamaku a. ..........................................76 Ku io 36. E aluoin i I, oiminnallisuus: huomio ja ja ko oimenpi ee .........................79 Ku io 37. E aluoin i I, käy e ä yys: huomio ja ja ko oimenpi ee ............................80 Ku io 38. E aluoin i I, ehokkuus: huomio ja ja ko oimenpi ee ..............................80 Ku io 39. E aluoin i I, ylläpi o: huomio ja ja ko oimenpi ee .................................81 Tauluko Taulukko 1. Chak a:n Ale -komponen ia käy ä ä komponen i . ..........................38 Taulukko 2. Ki jas on Ale -komponen ia ku su a komponen i . ...........................39 i Taulukko 3. Chak a:n Fo m-komponen ia käy ä ä komponen i . ............................41 Taulukko 4. AkamonFo m-komponen iin a i a a lisäpa ame i ...........................42 Taulukko 5. Chak a:n Menu-komponen ia käy ä ä komponen i . ............................43 Taulukko 6. AkamonMenu-komponen iin a i a a lisäpa ame i ...........................45 Taulukko 7. Chak a:n Modal-komponen ia käy ä ä komponen i . ..........................45 Taulukko 8. AkamonModal-komponen iin a i a a lisäpa ame i . ........................47 Taulukko 9. Chak a:n Popo e -komponen ia käy ä ä komponen i . .......................48 Taulukko 10. AkamonPopo e -komponen iin a i a a lisäpa ame i . ...................49 Taulukko 11. Ki jas on Popo e -komponen ia käy ä ä komponen i . .....................50 Taulukko 12. Chak a:n Table-komponen ia käy ä ä komponen i . .........................50 Taulukko 13. AkamonTable-komponen iin a i a a lisäpa ame i ........................52 Taulukko 14. Ki jas on Tool ip-komponen ia käy ä ä komponen i . .....................53 Taulukko 15. AkamonTool ip-komponen iin a i a a lisäpa ame i . ...................54 Sisällys 1 JOHDANTO ................................................................................ 1 2 TUTKIMUKSEN VIITEKEHYS JA MÄÄRITELMÄT ................................. 3 2.1 Komponen iläh öinen kehi ys ja koodin uudelleenkäy ö ......................... 3 2.2 G aa ise komponen iki jas o ....................................................... 4 2.3 Käy ölii ymän yyliopas............................................................ 5 2.4 Suunni elujä jes elmä ............................................................... 6 2.5 Tyylin al on a........................................................................ 8 3 TUTKIMUSKYSYMYKSET, TUTKIMUSMENETELMÄ JA SEN SOVELTA- MINEN......................................................................................11 3.1 Tu kimuskysymykse .................................................................11 3.2 Tu kimusmene elmänpe iaa ee ....................................................11 3.3 Tu kimusmene elmän keskeise aihee .............................................14 3.4 Mene elmän käy ö ässä u kimuksessa ............................................15 3.5 Tu kimuksen aihee .................................................................16 3.5.1 Nyky ilan ka oi us: äsmällisyyssykli ........................................16 3.5.2 Ta oi e ilan ka oi us: ele anssisykli.........................................16 3.5.3 Tyyliopas:suunni elusykli....................................................17 3.5.4 Ohjee komponen iki jas on ekons uk iolle: suunni elusykli.............17 3.5.5 Tyylin al oja: suunni elusykli................................................17 3.6 A e ak ine aluoin i .................................................................17 4 TYÖKALUN SUUNNITTELU JA TOTEUTUS SYKLEITTÄIN.......................19 4.1 Täsmällisyyssykli - komponen iki jas on nyky ila.................................19 4.1.1 Modulaa inen uo e akenne ...................................................19 4.1.2 Tekninen o eu us ..............................................................20 4.1.3 Komponen iki jas on komponen i ...........................................21 4.1.4 Tuo e ungo ja komponen ien akenne .......................................22 4.1.5 Komponen ien yyli...........................................................24 4.2 Rele anssisykli: yökalun aa imukse ja hy äksymisk i ee i .....................26 4.2.1 Tyylioppaan aa imukse ......................................................26 4.2.2 Tyyleihin lii y ä aa imukse ................................................29 4.2.3 Tyylioppaaseen sisälly e ä ä komponen i ja niiden aa imukse ..........30 4.2.4 Malleihin lii y ä aa imukse ................................................31 4.2.5 Tyylin al ojan aa imukse ...................................................32 4.3 Suunni elusykli: yylioppaan o eu us ..............................................33 4.3.1 Komponen i ...................................................................33 4.3.2 Tyyli ...........................................................................35 4.3.3 Malli ...........................................................................36 4.4 Suunni elusykli: komponen iki jas on muu okse .................................37 4.4.1 Komponen i ...................................................................37 4.4.2 Tyyli ...........................................................................54 4.4.3 Malli ...........................................................................55 4.5 Suunni elusykli: yylin al ojan o eu us............................................58 4.5.1 Tes aus yökalujenesi ely .....................................................59 i 4.5.2 Työkalujen e ailua ja yylin al ojana käy e ä än es ausympä is ön alin a ..........................................................................62 4.5.3 Tes aus yökalun käy ööno o komponen iki jas ossa.......................67 4.5.4 Käy ölii ymän isuaalise es i ..............................................68 4.5.5 Työkalun so el u uus yylin al ojaksi .......................................76 5 ARTEFAKTIN EVALUOINTI JA TULOKSET ITERAATIOITTAIN ..................78 5.1 Tyyliopas, ensimmäisen e aluoinnin ulokse .......................................78 5.1.1 Laa u aa imus en äy yminen ................................................78 5.1.2 Lähdekoodine aluoin i........................................................81 5.2 Tyyliopas, oisen e aluoinnin ulokse ..............................................81 5.3 Tyylin al oja, ensimmäisen e aluoinnin ulokse ..................................83 5.4 A e ak inkokonaisa io.............................................................84 6 YHTEENVETOJAPOHDINTA ..........................................................86 LÄHTEET.........................................................................................90 ii 1 Johdan o G aa inen käy ölii ymä (GUI) on digi aalinen käy ölii ymä, jossa käy äjä uo o aiku aa e ilais en g aa is en komponen ien kanssa. Tällaisia o a esime kiksi ku akkee , painikkee , aliko ja e ilaise lomakkee . G aa isessa käy ölii ymässä ole a isuaalise elemen i a joa- a käy äjälle in o maa io a ja mahdollis a a oimin oja, joi a hän oi ehdä esime kiksi lähe - ääkseen ie oa e eenpäin.(HubSpo 2024) Toimi a ja yylikäs käy ölii ymä on ä keä osa oh- jelmis okehi ys ä, aiku aa me ki ä äs i käy äjäkokemukseen ja ukee a kaisujen kaupallis a menes ys ä. G aa is en käy ölii ymien suunni elussa on asapaino el a a mm. helppokäy öisyyden, oi- minnallisuuden, u allisuuden ja houku ele an ulkoasun älillä. Käy äjä aa i a yhä dynaa- misempia käy ölii ymiä ja odo a a niiden oimi an monenlaisilla lai eilla (Lynch ja Ho on 2016). Vaadi aan opi a uu a, johdonmukaisuu a ja saa u e a uu a (HEAVY.AI 2024). Näi- hin seikkoihin oidaan aiku aa käy ölii ymän g aa isilla komponen eilla. Suunni elun e- hokkuu a oidaan pa an aa ekemällä komponen eis a uudelleenkäy e ä iä ja jä jes ämällä ne komponen iki jas oon. Kohdeo ganisaa io Akamon Inno a ions Oy kehi ää ohjelmis o uo ei a, joi a käy ä ä usea asiakkaa . Tuo ee ää älöidään asiakkaan a peiden mukaan komponen eis a koos e uis a uo- e ungois a. Asiakas o eu us en ois eisuu a ähen ämään on pe us e u käy ölii ymäkompo- nen ien ki jas o, jonka uudelleenkäy e ä iä komponen eja o eu a a usea kehi äjä . Käy ö- lii ymien yh enäinen ulkoasu on kui enkin ämän myö ä kä siny . On luo a a ohjeis us, jonka pohjal a jokainen kehi äjä oi saada aikaan yh iön ilmeen mukaisia uo ei a. Pelkkä ohjeis- us ei kui enkaan ii ä, aan komponen ien ja niis ä koos e ujen käy ölii ymien as aa uus yylioppaaseen on a kas e a a ohjelmallises i. Tu kimusongelma on näin ollen olemassa. Tässä u kimuksessa suunni el iin ja o eu e iin kohdeo ganisaa iolle heidän a koi us aan as- aa a yyliohjeis us, joka lii e iin olennaiseksi osaksi olemassa ole aa komponen iki jas oa. Laadi iin ohjee ki jas on aken een ekons uoimiseksi niin, e ä kaikki komponen ien yyli- mää i ykse löy y ä yhdes ä paikas a, jolloin niiden ylläpi o helpo uu me ki ä äs i. Tyylien al on aa a en akenne iin malli käy ölii ymän isuaalisis a eg essio es eis ä. Lu ussa 2 esi ellään u kimuksen ii ekehys. Puhu aan komponen iläh öises ä kehi ykses ä, komponen ien uudelleenkäy ös ä ja niiden jä jes ämises ä ki jas oon. Esi ellään käsi ee käy - 1 •Malli ase ele a a omi , molekyyli ja o ganismi jä jes ykseen muodos aen si usuun- ni elmia. Esime kkinä oisi olla aikkapa e usi un ase elu, jossa halli u kokonaisuus syn yy useas a osas a. Mallien a koi us on pi ää yllä komponen ien jä jes ys ä si ulla, ei keski yä sen sisäl öön. •Näkymä muodos u a , kun malleihin lisä ään odellis a sisäl öä. Lopullis en näkymien pe us eella oidaan ha ai a a e a muunnella malleja, jo a kokonaisuudes a saadaan oimi a monenlaisella sisällöllä. Tyylioppaan ja suunni elujä jes elmän aken amisessa a omisuunni elun mene elmäs ä oi ol- la hyö yä. F os muis u aa, e ä aiheiden suo i usjä jes ys ä ei ole a koin säädel y. Tä keäm- pää on aja ella mene elmää henkisenä mallina, jonka a ulla ymmä ämme pai si kokonaisuu a, myös pieniä yksi yiskoh ia. (F os 2016) 2.5 Tyylin al on a Kun suunni elujä jes elmä on luo u, sen käy öä ulee myös al oa. Tyylioppaan ja digi aalisen uo een älinen yh eys on näin muodos e u mu a sen hyödyn ämises ä ei ole a muu a. S aa - isen yylioppaan kohdalla sen nouda aminen jää kehi äjän as uulle. Ohjeiden sisäis äminen ja niiden a kka so el aminen paineen alla on yksilöllis ä ja epä a maa. Elä än yylioppaan apauksessa yyliohjeen nouda aminen on pääosin au oma isoi ua. Mikään ei kui enkaan ek- nises i es ä kehi äjää lisäämäs ä esime kiksi yylimää i yksiä käy ämiinsä komponen eihin. On ol a a jokin keino, jolla yyliohjeen nouda amis a oidaan al oa. G aa iseen käy ölii ymä es aukseen kuuluu sekä isuaalis a e ä oiminnallis a es aus a. Käy - ölii ymän oiminnallinen es aus koe aan ä keänä osana kehi ys yö ä, koska sillä a mis e- aan, e ä so ellus oimii odo us en mukaises i. Visuaalinen es aus sen sijaan koe aan usein oissijaiseksi. Sillä on kui enkin käy äjäkokemuksen kannal a ä keä me ki ys ja se aiku aa suo aan uo een laa uun ja usko a uu een (So wa e Tes ing Help 2023). Tässä u kimuksessa keski y ään ain käy ölii ymän isuaaliseen es aamiseen ja sen myö ä yylin al on aan. Käy ölii ymän isuaalinen es aus a koi aa e oa aisuuksien ha ainnoin ia so elluksen sisäl- lössä ja ulkoasussa, eli siinä, mis ä elemen eis ä si u koos uu, mi en ne on ase el u ja mil ä ne näy ä ä ja un u a . Si un sisällön oikeellisuu a a ioidaan elemen ien sijainnin, muodon ja koon pe us eella. Va mis e aan, e ei ä elemen i sijoi u päällekkäin ja e ä ne o a näky is- sä. Ulkoasun oikeellisuus odenne aan a kas elemalla mm. ä ejä, on eja, ki kkau a ja kon - 8 as ia. Tänä päi änä oman haas eensa uo a e ilaise käy öjä jes elmä , e kkoselaime , eso- luu io ja lisäksi al a a mää ä e ilaisia lai ei a. Visuaalisen es auksen a oi eena on myös a mis aa, e ä so ellus näy ää oikeal a ja ulkoasu on yh enäinen huolima a käy äjän ali se- mas a yhdis elmäs ä.(So wa e Tes ing Help 2023) Visuaalinen es aus oidaan o eu aa manuaalises i, a kas elemalla kah a ilanneku aa ie ek- käin ja e simällä poikkea uuksia (So wa e Tes ing Help 2023). Ihmissilmä ha ai see ii ä ä e oa aisuude , eikä pikselin a kkuudelle a i se mennä, jos koko yylioppaan a oi eena on yh enäinen ilme. Tällainen es aus on kui enkin käsi yö ä ja yön laa u on yksilöllis ä. Yksi es aaja ha ai see e o ois a a kemmin. Lisäksi eh ä ä aikeu uu me ki ä äs i, kun a kas e - a aa sisäl öä on paljon, ai kun jokainen mahdollinen näy öyhdis elmä on u ki a a e ikseen. Visuaalinen es aus oidaan o eu aa myös au omaa ises i niin, e ä ohjelmis o suo i aa ele- men ien isuaalisen e ailun e ilaisissa näy öyhdis elmissä. Tämä oi apah ua kahdella a- alla: snapsho - es auksena ai ekoälyalgo i meihin ja ie okonenäköön pe us u ana es aukse- na (So wa e Tes ing Help 2023). Val aosa ma kkinoilla ole is a isuaalisen es auksen yökaluis a käy ää snapsho - ekniikkaa. Siinä ohjelma o aa es auksen e i aiheissa käy ölii ymäs ä ku akaappauksia, joi a e a aan e okkiku iin. Ve ailu apah uu u kimalla ku ien bi ika oja, käymällä läpi jokainen pik- selipa i uo ollaan, jolloin i heilmoi us syn yy, kun pikseleiden älillä on e oja. Tes auksen jälkeen ohjelma luo apo in, jo a es aaja oi analysoida. Tällä a oin i hei ä oidaan löy ää a kemmin, nopeammin ja johdonmukaisemmin kuin ihmissilmällä. Mene elmään lii yy kui- enkin haas ei a. E ilaise selaime , näy önohjaime ja esoluu io , jopa ende öin ialgo i mi ai- heu a a me ki ykse ömiä pikselie oja, eikä kyse ole aidos a isuaalises a i hees ä. Tes aajan analyysin a aan jää löy ää odellise i hee , mikä jälleen aa ii manuaalis a yö ä (Xu 2022). Mode nein apa on ekoälyalgo i mien ja ie okonenäön käy ö isuaalisessa es aamisessa. Kaikes a ohjelmis o es auksessa käy e ys ä ekoälys ä, on isuaalisella AI- es aamisella ollu iime uosina suu in aiku us (Volk 2021). Pe iaa e on samanlainen kuin snapsho - es auksessa, ku akaappauksia o e aan es auksen ede essä, mu a ku ien e ailu apah uu ekoälya us ei- ses i. Pikselien e ailun sijaan ie okonenäön a ulla kone koulu e aan unnis amaan elemen e- jä käy ölii ymäs ä ja käsi elemään isuaalis a ie oa ku en ihmisnäkö. Ihmisen näkö pe us uu e kkokal on, näköhe mojen ja isuaalisen ai okuo en yh eis oimin aan (Pandey 2022). Tie o- konenäkö hyödyn ää kame oi a, da aa ja algo i meja suo i aakseen saman oiminnon (Pandey 2022). Tällainen mene elmä luo huoma a as i ähemmän i heellisiä häly yksiä (engl. alse 9 posi i es) kuin pikselikoh ainen e ailu (Ba a 2024) ja sillä oidaan analysoida uhansia ku- ia sekunnissa (Pandey 2022). Tämän u kimuksen pui eissa e si ään pa hai en so el u a mene elmä ja yökalu kehi e ä än yylioppaan yylin al ojaksi. Jos päädy ään ma kkinoilla almiina ole aan a kaisuun, on ä - keää, e ä se aipuu myös käy ölii ymän oiminnalliseen es aukseen huolima a sii ä, e ä ämä u kimus keski yy isuaaliseen es aukseen. Näin ali un yökalun äysi po en iaali on mahdol- lis a hyödyn ää ja kossa. 10 3 Tu kimuskysymykse , u kimusmene elmä ja sen so el aminen Tu kimusongelmana on, kuinka säily ää käy ölii ymän yh enäinen isuaalinen ilme, kun ke- hi äjiä on mon a ja jokaisella oma apansa oimia. Keski y ään liikaa oiminnallisuu een ja isuaalise seika jää ä oissijaisiksi, aikka niillä on ä keä me ki ys uo een laa uun ja kau- palliseen menes ykseen. 3.1 Tu kimuskysymykse Tu kimusongelman pe us eella oidaan ase aa seu aa a u kimuskysymykse : •TK1: Mi ä asioi a yylioppaan äy yy sisäl ää, jo a a mis e aan käy ölii ymän yh enäinen ilme ja pa anne aan käy äjäkokemus a? • ATK1: Kuinka yyliopas ulee aken aa, jo a se oimii yhdessä olemassa ole an kompo- nen iki jas on kanssa? • ATK2: Mi ä muu oksia ki jas on komponen eihin on eh ä ä, jo a yylimää i ys en yl- läpi o oidaan keski ää yh een paikkaan? • ATK3: Mi en a mis e aan, e ä e i kehi äjien luoma komponen i as aa a anne uja yyliohjei a? •TK2: Mi ä aih oeh oja on olemassa al oa komponen eis a koos e un käy ölii y- män isuaalis a ilme ä ja as aa uu a yylioppaaseen? Näis ä kysymyksis ä ensimmäinen ja iimeinen o a a sinaise u kimuskysymykse ja ki ey - ä ä u kimuksen a oi een. Ali u kimuskysymyksiä käy e ään apuna u kimuksen osa a oi - eiden saa u amisessa. 3.2 Tu kimusmene elmän pe iaa ee Tie ojä jes elmä ie een u kimus a luonneh i a kaksi oisiaan äyden ä ää mu a e illis ä pa a- digmaa: käy äy ymis iede (engl. beha io al science) ja suunni elu iede (engl. design science). Käy äy ymis iede py kii kehi ämään ja oden amaan eo ioi a, jo ka seli ä ä ai ennus a- a ihmis en ai o ganisaa ion käy äy ymis ä. Suunni elu iede sen sijaan py kii laajen amaan ihmis en ja o ganisaa ioiden almiuksia luomalla uusia inno a ii isia yökaluja, a e ak eja. 11 (He ne ym. 2004) Tämän u kimuksen mene elmänä on suunni elu u kimus (engl. design science esea ch), jon- ka uloksena suunni ellaan ja o eu e aan uusi a e ak i, yökalu, joka a kaisee kohdeo gani- saa ion ongelman. Suunni elu u kimus on siis a kaisukeskeis ä u kimus a, jossa käy ännön ongelmaan hae aan oimi aa a kaisua. Tu kimuksen uloksena suunni ellaan jokin uusi, inno- a ii inen IT-a e ak i, joka a kaisee a kaisema oman ongelman, ai a joaa ehokkaamman a kaisun jo aiemmin a kais uun ongelmaan. Mene elmän a oi eena on pa an aa sekä eo iaa e ä käy än öä kehi ämällä a e ak eja, jo ka as aa a odellisiin haas eisiin. Suunni elu u ki- mukseen kuuluu näiden a e ak ien aken aminen, niiden hyödyllisyyden ja ehokkuuden es- aaminen sekä edelleen jalos aminen es aukses a saadun palau een ja a ioinnin pe us eella (He ne ym. 2004; Pe e s ym. 2007). Suunni elun käsi e ekniikassa on u u jo a haisil a ajoil a, mu a a sinainen suunni elu u - kimus, sen muodollinen unnus aminen s uk u oi una u kimusmene elmänä nousi esiin as- a 1990-lu ulla, kun halu iin e o aa puh aas i eo ee inen yö käy ännön a kaisujen kehi ä- mises ä. Alan He ne in ja hänen kollegoidensa uonna 2004 julkaisemaa a ikkelia ” Design Science in In o ma ion Sys ems Resea ch” pide ään aka eemisessa ki jallisuudessa laajal i pe- us a anlaa uisena. He ne ym. (2004) mukaan suunni elu u kimukselle luon eenomais a on se, e ä a kais a a- na on ns. iheliäinen ongelma, jolle he ie ojä jes elmä ie een osal a mää i ele ä seu aa a unnusme ki : • epä akaa aa imukse ja ajoi ukse , jo ka pe us u a huonos i mää i el yyn kon eks iin • monimu kainen uo o aiku ussuhde ongelman ja sen a kaisun osakomponen ien älillä • luon ainen jous a uus muu aa suunni elup osesseja sekä a e ak eja • k ii inen iippu uus ihmisen kogni ii isis a ky yis ä ehokkaiden a kaisujen uo ami- seksi • k ii inen iippu uus ihmisen sosiaalisis a ky yis ä ehokkaiden a kaisujen uo amisek- si. He ne ym. (2004) mukaan suunni elu ie een pa adigmassa ie o ja ymmä ys alli se as a ongelmas a ja sen a kaisu saa u e aan aken amalla ja hyödyn ämällä suunni el ua a e ak- ia. Suunni elup osessi sisäl ää sa jan asian un ija oimia, joka joh aa inno a ii isen a e ak in luomiseen. A e ak in e aluoin i puoles aan an aa palau e a ja lisää ymmä ys ä ongelmas a 12 pa an aen näin sekä uo een laa ua ja e ä i se suunni elup osessia. Tällais a akenna-e aluoi- silmukkaa i e oidaan usei a ke oja, kunnes a e ak i saa lopullisen muo onsa (Ma ch ja Smi h 1995). Tällä a oin suunni elu ie een u kija kehi ää samaan aikaan sekä suunni elup osessia e ä suunni el ua a e ak ia osana u kimus a (He ne ym. 2004). Suunni elu u kimus a koske- assa a ikkelissaan He ne ym. (2004) mää i ele ä sei semän ohjenuo aa u kimusmene el- män ymmä ämiseen, o eu amiseen ja a ioin iin: 1. Luodaan inno a ii inen ja a koi uksenmukainen a e ak i. Suunni elu u kimuksen ulos on mää i elmänsä mukaan a koi uksenmukainen IT-a e ak i, joka on luo u a kai- semaan ä keä o ganisa o inen ongelma. Se on ku a a a ehokkaas i, jo a se oidaan o eu aa ja so el aa asianmukaisella a alla ympä is össä, johon se on suunni el u. 2. Ongelma on a koin mää i e y. Koska a e ak in ulee olla a koi uksenmukainen, sen ulee luoda hyödyllinen a kaisu mää i el yyn ongelmaan. Ta oi eena on hankkia ie oa ja ymmä ys ä, joka mahdollis aa ähän as i a kaisema omien, ä keiden liike oimin- aongelmien eknologiapohjais en a kaisujen kehi ämisen ja o eu amisen. Suunni e- lu iede lähes yy ä ä a oi e a aken amalla inno a ii isia a e ak eja, jois a jokaisen on a jo a a uu a ie oa ja haas e a a en ise a kaisu . Ongelma oidaan mää i ellä e oiksi a oi e ilan ja jä jes elmän nykyisen ilan älillä. Ongelman a kaisu on e sin äp osessi, jossa e si ään ehokkain a a kaisua näiden e ojen ähen ämiseksi ai pois amiseksi. 3. A e ak in e aluoin i on a kaise aa. Suunni ellun a e ak in hyödyllisyys, laa u ja ehokkuus on osoi e a a a kas i hy in o eu e ujen a ioin imene elmien a ulla. IT- a e ak eja oidaan a ioida oimi uuden, äydellisyyden, johdonmukaisuuden, a kkuu- den, suo i usky yn, luo e a uuden, käy e ä yyden ja yh eensopi uuden o ganisaa ioon ja muiden asiaankuulu ien laa ua ibuu ien pe us eella. A ioin i aihe an aa olennais a palau e a suunni elup osessin ja kehi e ä än uo een laadus a. A e ak i on äydellinen ja ehokas, kun se äy ää sen ongelman aa imukse ja ajoi ukse , siinä liike oimin aym- pä is össä, jossa sen oli a koi us oimia. 4. Tu kimuksen ulee a jo a jokin selkeä panos. Tehokkaan suunni elu u kimuksen on a jo a a selkeä panos joko suunni elua e ak iin, suunni elun pe us uksiin ja/ ai suun- ni elun mene elmiin lii yen. Useimmi en u kimuksen a joama panos on suunni el u IT-a e ak i. 13 5. A e ak in ulee olla äsmällises i mää i el y, i allises i esi e y ja johdonmukai- nen. Täsmällisyys lii yy apaan, jolla u kimus suo i e aan. Suunni elu u kimus edel- ly ää äsmällis en mene elmien so el amis a sekä suunni ellun a e ak in aken amisessa e ä sen a ioinnissa. 6. Suunni elu iede oimii pa haan a kaisun e sin äp osessina. Suunni elu u kimus on pohjimmil aan e sin äp osessi ehokkaan a kaisun löy ämiseksi. Ra kaisua hae aan i e- oiden, kunnes pa as ja op imaalisin ulos saa u e aan. 7. Suunni elu u kimuksen ulokse on kommunikoi a a ehokkaas i. Suunni elu u - kimuksen ulokse ulee esi ää sekä eknologiao ien oi uneelle e ä joh amisläh öiselle yleisölle. Tämä an aa o ganisaa iolle mahdollisuuden hyödyn ää a e ak in a joamia e u- ja ja an aa samalla myös u kijoille mahdollisuuden aken aa kumula ii is a ie opohjaa. Näin luodaan ymmä ys ä p osesseis a, joilla a e ak i on akenne u ja kuinka si ä on a ioi u. 3.3 Tu kimusmene elmän keskeise aihee Siinä missä He ne ym. (2004) mää i ele ä u kimusmene elmän yleise ohjenuo a , keski - yy He ne (2007) a ikkelissaan analysoimaan u kimusp osessia kolmen läheises i oisiinsa lii y än oimin asyklin kau a, jo ka on esi e y ku iossa 2. Ku io 2. Suunni elu u kimuksen aihee He ne (2007) mallin mukaan, apaa käännös. 14 Rele anssisyklissä (engl. ele ance cycle) mää i ellään aa imukse , jo ka syn y ä u kimuk- sen kon eks uaalises a ympä is ös ä, ku en ihmise , o ganisaa io ja eknise jä jes elmä . Sa- malla py i ään unnis amaan uusia mahdollisuuksia ja ongelmia kyseisessä ympä is össä. Vaa- imus en lisäksi ele anssisyklissä mää i ellään myös hy äksymisk i ee i u kimus ulos en lo- pullis a a ioin ia a en. Suunni elu u kimuksen uo os, a e ak i palau e aan ympä is öönsä ken ä es aus a a en. Rele anssisyklin oinen i e aa io alkaa palau eella ken ä es aukses a ja e enee u kimus aa imus en uudelleenmää i ykseen odellisen kokemuksen pe us eella. Re- le anssisykli yhdis ää näin u kimusp ojek in kon eks uaalisen ympä is ön suunni elu ie een oimin oihin. Täsmällisyyssyklissä (engl. igo cycle) a kas ellaan eo ioi a ja mene elmiä, alan kokemus- a ja asian un emus a sekä so ellusalueel a löy ynei ä a e ak eja ja p osesseja, eli u kimuksen ie opohjaa. Tu kimuksen aikana syn y ä uusi ie o lisä ään olemassa ole aan ie opohjaan. Täl- laisia lisäyksiä oi a olla laajennukse eo ioihin, uude a e ak i sekä u kimuksen pe us eella syn y ä kokemus. Näin oidaan a ioida u kimusp ojek in inno a ii isuu a. Tällä a oin äs- mällisyyssykli yhdis ää suunni elu ie een oiminno ie opohjaan. Suunni elusykli (engl. design cycle) on jokaisen suunni elu u kimusp ojek in sydän. Tässä syklissä i e oidaan a sinaisen a e ak in ja p osessien akennus- ja e aluoin i aihei a, kunnes halu u loppu ulos saa u e aan. He ne (2007) pi ää ä keänä ymmä ää suunni elusyklin iip- pu an kahdes a muus a syklis ä. A e ak ia a ioidaan sille ele anssisyklissä ase e uja aa i- muksia as aan. Suunni elu- ja e aluoin i eo ia ja -me odi puoles aan pohjau u a äsmälli- syyssykliin. He ne (2007) mukaan näiden kolmen syklin on ol a a läsnä ja selkeäs i unnis e a issa hy äs- sä suunni elu ie een u kimusp ojek issa. Tämä e o aa suunni elu u kimuksen sel äs i muis a u kimuspa adigmois a. 3.4 Mene elmän käy ö ässä u kimuksessa Suunni elu u kimuksen alin a ämän u kimuksen mene elmäksi on pe us el ua, koska u ki- mus on selkeäs i a kaisuläh öinen ja on olemassa ai o ongelma. Tu kimuksen uloksena suun- ni ellaan ja o eu e aan uusi a e ak i, yökalu, joka as aa kohdeo ganisaa ion konk ee iseen haas eeseen. To eu e a aa a e ak ia u ki aan ja e aluoidaan siinä kon eks issa, jossa sillä on a koi us. Samalla uo e aan uu a ymmä ys ä ilan ees a, jossa a e ak i aiku aa. 15 Kohdeo ganisaa ion ongelma lukeu uu iheliäiseksi. Vuo o aiku ussuhde nykyisen komponen - iki jas on komponen ien älillä on monimu kainen, eikä ue yylil ään yh enäisen ilmeen muo- dos us a. Kyseessä on lisäksi ongelma, jonka a kaisu pe us uu ihmisen sekä kogni ii isiin e ä sosiaalisiin kykyihin. Kun usea kehi äjä luo a komponen eja ilman yh eisiä ohjei a, loppu- ulos on ah as i iippu ainen ekijänsä eknisis ä aidois a, aja usmallis a ja sii ä kuinka hän i se on eh ä än ymmä äny . To eu us iippuu myös yhmädynamiikas a ja sii ä, mi en ehok- kaas i iimi yö ä hyödynne ään pa haan a kaisun saa u amiseksi. 3.5 Tu kimuksen aihee Tu kimus o eu e aan syklei äin He ne (2007) mallia mukaillen. Rele anssisyklissä sel i e- ään o eu e a an yökalun aa imukse ja hy äksymisk i ee i . Täsmällisyyssyklissä sel i e- ään u kimuksen ie opohja, olemassa ole a a kaisu , yösken ely a a , ie ämys, kokemus ja asian un emus. Tu kimuksen ä kein sykli on kui enkin suunni elusykli, jo a i e oiden suun- ni ellaan ja o eu e aan yökalu kohdeo ganisaa ion a peisiin. Jokaisen i e aa ion pää eeksi suo i e aan e aluoin i. Lopuksi pala aan ele anssisykliin a ioimaan, kuinka hy in ase e u aa imukse äy yi ä ja äsmällisyyssykliin sel i ämään, mi ä uu a ie ämys ä a e ak i lisäsi ie opohjaan. 3.5.1 Nyky ilan ka oi us: äsmällisyyssykli Ensin on muodos e a a ku a kohdeo ganisaa ion ämänhe kises ä oimin a a as a, eknisis ä a kaisuis a sekä näihin lii y is ä haas eis a. Tu ki aan komponen iki jas on sisäl öä ja poimi- aan kaikki se, mikä oisi jollain lailla lii yä käy ölii ymän ilmeeseen. Kuinka laajal i Cha- k a UI -komponen eja on käy össä ja mi ä yylejä niihin lii yy? Ku a aan esime kinomaises i, kuinka uo e ungo aken u a ki jas on komponen eis a. 3.5.2 Ta oi e ilan ka oi us: ele anssisykli Mää i ellään, mi kä komponen i ulisi sisälly ää yylioppaaseen ja millaisia a iaa ioi a niis ä ulisi olla. Tämän pe us eella muodos e aan yylioppaan a oi e ila. Mää i ellään myös, mil- ä osin komponen ien ulisi olla muoka a issa asiakas o eu uksissa ja kuinka ämä ulee o- eu aa. Millaisia asioi a yylin al ojan halu aan a kas a an yksi äisis ä komponen eis a ja edelleen uo e ungois a? Ka oi e aan saa a illa ole ien es i yökalujen ki jo ja ali aan u ki- muksessa käy e ä ä yökalu . Pää e ään, mi en yökalun onnis umis a a ioidaan u kimuksen 16 pää eeksi ja mi kä o a hy äksymisk i ee i . 3.5.3 Tyyliopas: suunni elusykli Suunni ellaan ja o eu e aan yylioppaan sisäl ö, akenne, a i a a komponen i ja niiden e i a iaa io . Ki joi e aan niihin lii y ä dokumen aa io sekä yleise yyliohjee . To eu us e aluoi- daan ja a i aessa suo i e aan uusi i e aa io. 3.5.4 Ohjee komponen iki jas on ekons uk iolle: suunni elusykli Nykyisen komponen iki jas on koko ja akenne huomioiden äydellisen ekons uk ion o eu - aminen u kimuksen pui eissa on mahdo on a. Sen sijaan laadi aan ohjee komponen iki - jas on ekons uk iolle. Täsmällisyyssyklissä ke ä yjen ie ojen pe us eella ohjeis e aan koh- deo ganisaa io a komponen ien yylimää i ys en pois amisessa ja siinä, kuinka ii aaminen yylioppaan komponen eihin ehokkaimmin apah uisi. Ohja aan myös si umallien käy ööno- ossa ja muu oksissa o ganismikoh ais en näy e-ikkunoiden (Playg ound) esi yksissä. Mää i el- lään oimenpi ee aihei ain, jo a aikaansaadaan komponen iki jas o, joka pe us uu elä ään ja helpos i ylläpide ä ään yylioppaaseen. 3.5.5 Tyylin al oja: suunni elusykli Suo i e aan u kimukseen ali ujen es i yökalujen e ailu o eu amalla kullakin yökalulla sama muu aman komponen in es ijoukko. E aluoidaan e ailun ulokse ja ali aan a si- naisessa yylin al ojassa käy e ä ä yökalu. Suunni ellaan ja o eu e aan isuaalise käy ö- lii ymä es i . Yksi äis en komponen ien sekä mahdollisuuksien mukaan uo e unkojen näy e- ikkunoiden g aa inen ulkoasu es a aan ohjelmallises i. Komponen iki jas oon lii e ään apo i isuaalisen es auksen ilas a ja koodika a uudes a. To eu us e aluoidaan ja a i aessa suo i- e aan uusi i e aa io. 3.6 A e ak in e aluoin i Suunni elusyklien i e aa ioiden pää eeksi suo i e aan a e ak in e aluoin i. A ioidaan, äy - ääkö suunni el u ja o eu e u yökalu i e aa iolle ase e u aa imukse . A ioidaan myös, kuin- ka he kkä yökalu on ympä is ön muu oksille ai muu oksille i se yökalussa eli kuinka yökalun ja ympä is ön uo o aiku us muu uu, jos ympä is ö ai yökalu i se muu uu. 17 Ku io 6. In oices-komponen in akenne UML-kaa iona. In oices-komponen i on hy ä esime kki uo e ungon yhdes ä moduulis a, joka oimii i se- näises i. Se oidaan joko sisälly ää ai jä ää pois asiakas o eu ukses a. Samalla pe iaa eella oimii esime kiksi Messages-komponen i. Sen o eu ukseen a i aan 19 ki jas ossa ole an komponen in yh eis yö ä. Samaan apaan aken u a uo e ungon muu kin moduuli . 4.1.5 Komponen ien yyli Käy ölii ymän pääasiallinen ilme aken uu ällä he kellä Chak a UI -komponen ien ul- koasus a. Kui enkin ain ha oin, on komponen eja käy e y sellaisenaan. Val aosa Chak a- komponen eis a on jollain a alla yyli el y: käy e y ie yä a ian ia, ä iä, kokoa, ma ginaa- leja ai älis yksiä. Kaikki nämä yylimuo oilu on o eu e u ki jas on komponen ien sisällä niin, e ä jokaisella Chak a-ins anssilla saa aa olla e ilaise yylimää ee . Sama mää ee osi - ain ois u a kin, mu a o eu us apa selkeäs i hankaloi aa yylin ylläpi oa ja mahdollis a muu- os a. Esime kiksi Chak a:n Bu on-komponen i on käy össä 42 e i komponen issa, jois a lä- hes kaikkien yh eydessä on jonkinlainen muo oilu. Jos painikkeen ulkoasua halu aan yh enäis- 24 ää, on muu os eh ä ä jokaiseen Bu on-komponen in ins anssiin. Käy ölii ymäs ä löy yy ällä he kellä 17 e ilais a painike a, jois a useimmilla on edelleen painikkeen ilaan lii y iä, osin oisis aan poikkea ia muo oiluja. Si ujen ase elussa on käy e y monenlais a o eu us apaa. Vaikka yleisilme näy ää yh enäisel- ä, sen akaa löy yy e i komponen ein o eu e uja aken ei a. Chak a UI:lla on almiina mai- nio yhmi elykomponen i S ack, jos a edelleen on olemassa almii VS ack- ja HS ack - o eu ukse ( e ikaalinen ja ho ison aalinen). Näi ä on käy e y keskimää in 30 komponen- issa ku akin, mu a niiden lisäksi si uase elua on o eu e u hämmäs y ä än usein Flex- ja Box-komponen ein. Jälkimmäise oimi a ässä a koi uksessa kyllä, mu a aa i a enemmän yylimää i yksiä näy ääkseen samal a kuin almii yhmi elyyn a koi e u komponen i . Yh- enäisen ilmeen ja koodin lue a uuden uoksi olisi hy ä käy ää samoja yh eises i ali uja komponen eja. Komponen ien esponsii isuus on o eu e u aih ele in a oin. Useimma komponen i oimi- a e i kokoisilla näy öillä, mu a jälleen o eu us apa on e ilainen. Osa komponen eis a käy ää Chak a:n almis a hookia, useB eakpoin Value, jolla elemen ien yyli sido aan uudun kokoon muu ujan a ulla. Val aosalla komponen eis a esponsii isuus pe us uu Chak a:n si- sään akenne uihin ai ekoh iin (engl. b eakpoin ), jo ka oidaan mää i ellä kullekin p ojek ille eeman yh eydessä. Komponen eille anne aan ällöin ku akin ai ekoh aa as aa a yylimää e. Jos eemassa ei näi ä koh ia ole mää i el y, käy e ään Chak a:n ole usase uksia. Tällaisen es- ponsii isuuden oi edelleen o eu aa aulukko- ai olio-syn aksina. Molemma a a o a käy- össä ämän he ken komponen iki jas ossa. Jälleen, ähin äänkin koodin lue a uu a helpo - aisi yh enäinen apa oimia. Elemen ien koko oidaan ilmais a useilla e i a oilla ja mi ayksiköillä. Ki jas on komponen- eissa kokoja on mää i el y ainakin yksiköissä px, em, h ja %. Lisäksi Chak a:n elemen i- koh aisis a koko-ominaisuuksis a on käy össä älis yksille ja ma ginaaleille objek imuo o, esi- me kiksi 2, joka as aa kokoa 0.5 em ai 8px. Teks in koko on yleensä mää i el y Chak a:n ole uskokoja käy äen, ku en sm,md,lg, mu a poikkea ia apoja löy yy myös, jopa kompo- nen ien sisäl ä. Myös eks in paksuudessa, o sikoiden yylissä sekä monissa muissa ominai- suuksissa on käy össä e ilaisia apoja saa u aa jokin loppu ulos. Val aosa komponen ien yyleis ä on siis mää i el y kunkin ins anssin yh eydessä. Maini a- koon ielä, e ä ämän lisäksi esime kiksi Da ePicke -komponen illa on äysin oma e illinen CSS- iedos onsa, jos a komponen in ulkoasu hae aan. Myös komponen i , joiden o eu uksessa 25 on käy e y cha s.js- ai VisX- isualisoin ia aiheu a a poikkeuksen oimin a a assa. Näiden osal a mää i ykse joko hae aan ole uksena käy e ä äs ä ki jas os a ai anne aan akioina kom- ponen in o eu uksen yh eydessä. Edellä maini u epäjohdonmukaisuude ja ylläpi oa hankaloi a a akenne kielii yh eisen yyli- oppaan puu ees a. Suu ena haas eena p ojek in onnis umiselle on se, e ä ki jas ossa on jo al- a a mää ä almis a oimi aa koodia. Tä ä u kimus a ehdessä ki jas o on käy össä ja muun uu koko ajan. Elä än yylioppaan sisälly äminen ki jas oon ja komponen ien nykyis en yylien ohjaaminen yh een paikkaan aa ii aken een massii is a uudelleen jä jes elyä. Uuden oimin- a a an hy äksyminen ja sen omaksuminen osaksi u iinia aa ii o ganisaa iol a ah aa si ou- umis a ja jous oa. Ta koi us on lopul a helpo aa kehi äjien yö ä, ei hankaloi aa si ä. 4.2 Rele anssisykli: yökalun aa imukse ja hy äksymisk i ee i Tässä lu ussa esi ellään yylioppaalle ja sen al ojalle ase e u aa imukse . To eu e a an yö- kalun a oi e ila mää i ellään aa imusmää i elyn a ulla, joka jae aan kah een osaan, yyli- oppaan ja yylin al ojan aa imuksiin. Tyylioppaan osal a mää i ellään yleise aa imukse , yyleihin lii y ä aa imukse sekä o eu e a ien komponen ien aa imukse . Tyylin al ojan osal a keski y ään yökalun alin aan ja sille mää i el ä iin yleisiin aa imuksiin. Lu ussa esi- ellään myös, mi en a e ak in onnis umis a a ioidaan u kimuksen pää eeksi ja mi kä o a sen hy äksymisk i ee i . 4.2.1 Tyylioppaan aa imukse Ku iossa 7 on esi e y yylioppaalle ase e u yleise aa imukse , jo ka ka a a yylioppaan si- jainnin, aken een ja o eu uksen lisäksi aa imuksia mm. komponen ien nimeämiseen, koo- dauskäy än öön ja dokumen oin iin lii yen. Myös asiakas o eu uksia a en a i a a ää ä- löin i ja sen aiku ukse monikäy öisiin g aa isiin komponen eihin on o e a a huomioon a- oi e ilaa mää i el äessä. Yleis en aa imus en yh eydessä ase e aan myös yylioppaan hy äk- symisk i ee i . Tämän u kimuksen a oi eena on o eu aa sellainen osa yyliopas a, jo a oi- daan käy ää esime kkinä yön ja kamisessa koh i äydellis ä yyliopas a ja edelleen suunni e- lujä jes elmää. 26 Ku io 7. Vaa imusmää i ely: yylioppaan yleise aa imukse . Tyylioppaan sijain i, akenne ja ekninen o eu us olemassa ole aan komponen iki jas oon näh- den on a kkaan mie i ä ä. Komponen iki jas o sisäl ää jo unsaas i oimi aa koodia, jonka e ak o oin i lii yy olennaisena osana yylioppaan käy ööno oon, kun o eu e aan elä ää yy- liopas a. So elluksissa käy e ä ien komponen ien ulisi oida ongelmi a hyödyn ää yyliki - jas oon luo uja komponen eja. Ensimmäinen aja us on luoda yyliopas komponen iki jas on Playg ound-p ojek in sisälle. Tyyliki jas on pohja luo aisiin S o ybook-ohjelmis olla (S o ybook 2024), joka on a oimen lähdekoodin käy ölii ymä yökalu. S o ybook:illa oidaan luoda, a kas ella ja es a a kom- 27 ponen eja e is yksissä muus a ohjelmis os a. S o ybook:in keskeisin hyö y syn yy au omaa i- ses i muodos u as a komponen ien ka alogimaises a esi ykses ä käy ölii ymässä, jossa kom- ponen ien e i a iaa ioi a on helppo sela a. Ka alogi sisäl ää myös komponen ikoh ais a doku- men aa io a, joka syn yy ai a a komponen ien luonnin yh eydessä. Kokeil aessa ällais a o eu us a syn yy aja us sii ä, oisiko yyliopas ko a a koko Playg ound- p ojek in, joka ällä he kellä oimii komponen iki jas on ”näy eikkunana”. Nykyisessä Playg ound:issa ei esi e ä yksi äisiä komponen eja aan almii a, monimu kaisia kokonai- suuksia, jois a so elluksen a sinaise si u muodos u a . S o ybook:in akenne oi aisiin mää- i ellä niin, e ä sen pienimmä komponen i (a omi ) muodos aisi a suu empia kokonaisuuk- sia (molekyyli , o ganismi ) ja edelleen malleja. Nämä moduuli edus aisi a yylioppaan sisäl- öä ja olisi a komponen iki jas on käy e ä issä. Kun S o ybookin malleihin lisä äisiin da aa, syn yisi ä näkymä , jo ka esi äisi ä käy ännössä saman asian, kuin Playg ound ällä he kellä. Näin e illis ä Playg ound:ia ei a i aisi, aan S o ybook oimisi sekä yylioppaan, e ä almii- den si ujen näy eikkunan oolissa. Vaih oeh ona keskus ellaan myös yylioppaan o eu ukses a ilman e illis ä yökalua. Myös äl- löin komponen iki jas on nykyise komponen i pilko aisiin pienempiin, uudelleenkäy e ä- iin osiin, jois a suu empia kokonaisuuksia koo aisiin. Ongelmaksi muodos uisi yyliki jas on komponen ien esi ely ja dokumen oin i, koska a sinainen ka alogi olisi koo a a komponen- eis a e ikseen ja eh ä ä joko manuaalises i ai jonkinlais a koodigene aa o ia käy äen. Ra- kenne olisi kui enkin selkeä, komponen i olisi a helpos i löyde ä issä ilman e illisiä kansioi- a ai a e a e illiselle selainikkunalle. Tyyliopas olisi näin Playg ound:in sisällä, paikassa, johon kehi äjä o a jo almiiksi o unee . Lisäksi Playg ound:issa jo almiina ole a au en- ikoin i mahdollis aisi da an hakemisen a i aessa. Molemmilla a oilla yylikomponen ien hakeminen ki jas on monimu kaisimpien komponen ien käy öön onnis uu. Keskus elujen ja useiden demojen pohjal a päädy iin lopul a a kaisuun, jossa yyliopas pe- us e aan ilman e illis ä yökalua komponen iki jas on juu ikansioon, ja sen isuaalinen e i- ys osaksi nykyis ä Playg ound-käy ölii ymää. Tyylikomponen i luodaan p ojek in juu een, componen s > UI-kansioon. Lisäksi kohdeo ganisaa ion kanssa so i iin, e ä yylioppaan en- simmäinen o eu us olisi suomenkielinen, huolima a sii ä, e ä koodi on dokumen oi u englan- niksi. O ganisaa ion nykyisen aken een ja käy äjäys ä ällisyyden uoksi ohjee on hy ä olla kehi äjien äidinkielellä. 28 4.2.2 Tyyleihin lii y ä aa imukse Tyylioppaan Tyyli -osiossa käsi ellään ypog a ia, ikoni , älis ys ja ä i . Ku iossa 8 on esi e y yylioppaan yyleihin lii y ä aa imukse . Ku io 8. Vaa imusmää i ely: yylioppaan yyleihin lii y ä aa imukse . Typog a ia sisäl ää käy e ä ä on i , sekä ohjee leipä eks in ja o sikoiden johdonmukaiseen käy öön. Ikonien osal a aa imuksia mää i ellään ainoas aan pe usikoneille, koska ku i usi- 29 konei a ei o eu uksen ässä aiheessa a i a. Välis yksen osal a mää i ellään ilankäy öön ja elemen ien sijoi eluun lii y ä seika ja kuinka mää i el yjä a oja käy e ään. Vä ien käy ölle mää i ellään e ilaisia a pei a, anne aan ehdo us ä ipale ien käy ös ä ja esi ellään so elluk- sessa a i a a ä ipale i . Kunkin yylielemen in osal a o e aan myös kan aa eema iedos on ää älöin iin asiakas o eu uksia a en. 4.2.3 Tyylioppaaseen sisälly e ä ä komponen i ja niiden aa imukse Keskus eluissa ode aan, e ei yylioppaassa ole jä ke ää ois aa kaikkia Chak a UI:n kompo- nen eja, aan ulee keski yä niihin, joi a halu aan muo oilla eni en. Val aosa Chak a UI:n kom- ponen eis a on käy össä mil ei sellaisenaan ja olisi ässä aiheessa hyödy ön ä kopioida jokais- a yylioppaaseen. Toki pidemmälle mie i ynä ja iippu uuden mahdollisen pu kamisen uoksi jokaisen a i a an komponen in ulisi olla osana yyliopas a. Tässä aiheessa pää e ään kes- ki yä yylin kannal a olennaisiin komponen eihin. Ku iossa 9 on esi e y yylioppaan alus a a aa imukse komponen ien osal a. Joukkoon on ali u ain ne komponen i , joilla a ellaan ole an eni en me ki ys ä yh enäisen yylin luomi- sessa. Esime kkikomponen iksi ali aan yksiseli eises i painikekomponen i Bu on, jonka me ki ys yh iön ilmeen kannal a on olennaisin. To eu us aiheessa oidaan aa imuksia muo- ka a, jos huoma aan jonkin olennaisen komponen in puu u an ai jonkin ole an lisäa ol aan a pee on. Painikkeen ja ypog a ian yh eydessä maini ujen o sikon (Heading) ja leipä eks in (Tex ) lisäksi mukaan ali aan aa imusmää i ely aiheessa he ä e (Ale ), alikko (Menu), dialogi (Menu), ponnahdusikkuna (Popo e ) ja lisä ie okomponen i Tool ip. Lomakkeen (Fo m) yh eydessä mää i ellään e ilaise syö eken ä . Lisäksi aa imuksiin ki ja aan ie ys i myös au- lukkokomponen i (Table). G aa is en, o ganisaa iospesi ien komponen ien o eu us on olennainen osa yylioppaan suunni elu- ja o eu us yö ä. Komponen ien monikäy öisyys e ilaisissa yh eyksissä halu aan a mis aa u kimalla a kkaan niiden nykyis ä käy ö a koi us a, ajapin oja ja uo o aiku us a ois en komponen ien kanssa. Täl ä osin suunni eluun a a aan enemmän aikaa. 30 Ku io 9. Vaa imusmää i ely: yylioppaan komponen eihin lii y ä aa imukse . 4.2.4 Malleihin lii y ä aa imukse Ku iossa 10 on esi e y yylioppaan si umalleihin lii y ä aa imukse . Mää i ellään si ulle aami ja se, mi en sisäl ö muodos uu. Tyylioppaassa esi ellään esime kinomaises i e ilaisia 31 si umalleja, joiden esponsii is a esi ys apaa oi kokeilla pienen ämällä uu ukokoa. Ku io 10. Vaa imusmää i ely: yylioppaan malleihin lii y ä aa imukse . 4.2.5 Tyylin al ojan aa imukse Tyylin al ojalle ase e u aa imukse on esi e y ku iossa 11. Vaa imukse ka a a yylin al- ojan sijainnin, oiminnan ja o eu uksen lisäksi aa imuksia mm. es auksen ajoi ukseen, i - hema ginaaliin ja koodika a uu een lii yen. Vaa imusmää i elyn yh eydessä ase e aan yylin- al ojalle myös hy äksymisk i ee i . Ku io 11. Vaa imusmää i ely: yylin al ojan aa imukse . 32 4.3 Suunni elusykli: yylioppaan o eu us Vaa imusmää i elyyn pe us uen yyliopas o eu e aan ilman e illis ä yökalua osaksi Playg ound-käy ölii ymää. To eu us aloi e aan si u alikon muu oksilla. Käy ölii ymän si u- alikkoon lisä ään älio siko UI-Komponen i ,UI-Tyyli ja UI-Malli , jo ka sisäl- ä ä kaikki yylioppaan osa . Playg ound:in si u löy y ä edelleen Sie a-componen s- alikos a. 4.3.1 Komponen i Jo a komponen ien unnis us alikos a olisi kehi äjille helppoa, niiden nime jä e ään englan- nin kielelle. Tyylioppaan si u halu aan pi ää yksinke aisena ja keskenään samanlaisina. Si un o sakkeen alla on lyhy ku aus komponen in a koi ukses a. Kohdeo ganisaa ion oi e on, e ei liian pi kiä dokumen aa ioi a lisä äisi, koska esime ki puhu a pa emmin puoles aan. Kehi ä- jä halua a löy ää hakemansa nopeas i ja isuaalinen e sio edesau aa ä ä pa emmin. Kom- ponen ien si ulla on kolme älileh eä: Esime ki , joka esi elee kaiken a peellisen kom- ponen iin lii y än eks ein ja isuaalisessa muodossa, P opsi , jossa on aulukkomuodossa esi e ynä kaikki komponen illa ole a ominaisuude sekä Pa ame i , jossa esi ellään kom- ponen in o ganisaa iospesi i pa ame i . Kunkin esime kin jälkeen käy äjän on mahdollisuus a a a lähdekoodi ja kopioida se leikepöydälle. Bu on. Esime kkikomponen iksi ali un Bu on-komponen in luominen aloi aa yyli- oppaan sisällön muodos uksen. Bu on:is a esi ellään a ian i , la aus ila ja es e y ila. Bu on:in osal a aja us o ganisaa iospesi is ä komponen is a ei oimi. On helpompi so el aa Chak a:n Bu on-komponen ia sellaisenaan ja muodos aa siihen e ilaisia a ian eja käy - öä a en. Tällainen lähes ymis apa on kohdeo ganisaa ion oi e, aikka se ikkoo yh enäisen linjan o eu us a an suh een. Alun pe in aja uksena oli mahdollisuus a i aessa pu kaa ah a Chak a- iippu uus ja ämä apa ei ue uo a pe iaa e a. Chak a:n a joama a ian imene ely on kiel ämä ä oimi a ja ällä oidaan äl ää jokaiselle e ilaiselle painikkeille oman komponen in luominen. Va ian ien muo oilu o eu e aan ohjelmis on eema iedos ossa. Kullakin a ian illa on nimi, joka anne aan komponen in ku sun yh eydessä. Teema iedos o huoleh ii, e ä a ian - i on halu unlainen. Va ian eja o a p ima y,seconda y,ou line,ghos ja link. La aus- ja es e y ila näy e ään kaikille a ian eille. Teema iedos o on muoka a issa, jolloin myös painikkeille saadaan halu aessa asiakkaan oi eiden mukainen ulkoasu. Inpu ja Fo m. E äs kohdeo ganisaa iolle pään ai aa aiheu anu seikka on ollu lomak- 33 _ac i e={{ colo : ’whi e’, bg: ’b and.300’ }} _ ocus={{ boxShadow: ’none’, colo : ’whi e’, bg: ’b and.300’, }} onClick={onClickRe u n} > Takaisin uo e alin aan </Bu on> ... Koodilohko 3. Bu on-esiin ymä. Painikkeen le eys on yleises i anne u ominaisuus, yleensä hae aan äy ä le ey ä. Kanna aa poh ia, olisiko hyö yä a ian is a, jolle olisi ase e u äysi le eys jo almiiksi. Ole uksena pai- nike o aa eks insä aa iman le eyden. Jos halu aan painikkeen äy ä än koko käy össä ole a ila, le eys on anne a a e ikseen. Painikkeen a ian i on ki ja u iedos oon akamon-chak a- base- heme. s ja nii ä oidaan a peen aa iessa muoka a ai luoda lisää. Fo m. Lomakkei a esiin yy ki jas on 19 komponen issa, jois a kahdella on edelleen iip- pu uuksia muualla. Fo mInpu -komponen ia käy ää 2 komponen ia ja Fo mRadio- komponen ia 5 muu a ki jas on komponen ia. Tyylioppaan lomakegene aa o in sopi uus äy- yy a kis aa komponen i ke allaan. Ta oi e ila on, e ä kaikki so elluksen lomakkee oi ai- siin luoda yh eis ä lomakegene aa o ia käy äen eikä e illisiä monikäy öiseksi a koi e uja lo- makkeen osia a i aisi. Chak a UI:n Fo m:ia käy ä ä komponen i on esi e y aulukossa 3. 40 Komponen in sijain ipolku Komponen in nimi playg ound/s c/componen s/ A e ageP ice s c/componen s/ BasicIn o ma ion s c/componen s/.../ Au oma icSignUpCheckbox s c/componen s/.../ Con ac In o ma ion s c/componen s/.../ Te msO Sale s c/componen s/.../ Consump ionInpu s s c/componen s/.../ Con ac Te mina ionFo m s c/componen s/.../ Da ePicke Cus omInpu s c/componen s/.../ Yea lySa ings s c/componen s/.../ E mFo mInpu s c/componen s/.../ E mManualGs nSelec Modal s c/componen s/.../ E mMe e ingPoin Fo mSec ionConsump ion s c/componen s/.../ E mO e Summa yCa dSendToEmailModal s c/componen s/.../ Fo mInpu s c/componen s/.../ Fo mRadio playg ound/s c/componen s/ Login s c/componen s/.../ MessageFo m s c/componen s/.../ NewCon ac Modal s c/componen s/ P oduc Compa ison Taulukko 3. Chak a:n Fo m-komponen ia käy ä ä komponen i . Esime kkinä muoka aan NewCon ac Modal-komponen in Fo m:ia käy ä ää osuu a alla ole an koodilohkon 4 mukaan (lähdekoodin i imää än uoksi lohkossa näy e ään ain muu e u osuus). Komponen in käy ämä skeema iedos o löy yy UI/schemas-kansios a nimellä NewCon ac Schema. s. Tyylikomponen iin a i a a lisäpa ame i on esi e y jäljempänä aulukossa 4. ... <AkamonFo m bu onTex ={ (’bu on:submi ’)} columns={2} onFo mSubmi ={() => { console.log(’add handleSubmi -me hod he e’); }} 41 schemada a={{ alida ionSchema, ieldMe ada a, }} /> ... Koodilohko 4. Fo m-esiin ymän ko aa a koodi. Pa ame i Seli ys schemada a: alida ionSchema: T; ieldMe ada a: Reco d<s ing, any>; Skeeman uon i oli aiemmin akenne u AkamonFo m:in si- sälle. Ny se hae aan komponen ia ku su aessa ja äli e ään pa ame ina lomakegene aa o ille. Taulukko 4. AkamonFo m-komponen iin a i a a lisäpa ame i . Muu os en yh eydessä e ilais en skeemojen käy ö on mahdollis e u AkamonFo m- komponen in genee isellä yypillä. Näin TypeSc ip osaa dynaamises i pää ellä a i a a yy- pi skeeman pe us eella. Myös ende Fo mCon ol-komponen in pa ame eihin ja nii- den yyppeihin on eh y muu oksia, jo a e ilais en skeemojen käy ö on mahdollis a. Lisäksi Inpu - yyppi swi ch on lisä y ende Fo mCon ol-komponen iin. Pohdi a aksi jää, a i aanko olemassa ole ien lisäksi mui a inpu - yyppejä. Ta peellisia oisi a olla ainakin lii een la aaminen ( ile) ja liukusäädin ( ange slide ). Ta - i aessa lisä ään e ilaisia yyppejä ende Fo mCon ol-komponen in case-lis aan. onSubmi - apah uman käynnis ää AkamonFo m:illa ole a painike. Jos lomake on sisäl- ly e y dialogiin, onko a koi us, e ä dialogi sulkeu uu lomakkeen lähe yksen yh eydessä? Esime kkikomponen issa lomakkeen lähe ys on lii e y modaalin oimin opainikkeisiin. Olisi- ko lomake monikäy öisempi, jos se ei sisäl äisi lähe yspainike a? Lisäksi AkamonFo m:illa ole an pe uu uspainikkeen eks i on ko akooda u. Sen oisi a i aessa uoda myös pa ame - ina samaan apaan kuin lähe yspainikkeen eks in. Tyylioppaan oisen e aluoinnin jälkeen lomakekomponen ia on muu e u edelleen niin, e ä skeema iedos o on en is ä genee isempi ja sisäl ää iedon a i a is a sa akkeis a. Menu. Ki jas on komponen eis a 3 käy ää Chak a UI:n Menu-komponen ia. Poh ia kanna ai- 42 si lisäksi, oisiko joi akin Selec -komponen eja muun aa AkamonMenu-komponen eiksi, jolloin yyli nouda aisi pa emmin yh enäis ä ilme ä. Selec -komponen i on käy össä ki jas on 12 komponen issa ja sen muo oilu on huoma a as i ajoi e umpaa, kuin Menu- komponen in. Chak a UI:n Menu:a käy ä ä komponen i on esi e y aulukossa 5 . Komponen in sijain ipolku Komponen in nimi s c/componen s/.../ AsyncMe e ingPoin Lis s c/componen s/.../ Ene gyT ansi ionMe e ingPoin Lis playg ound/s c/componen s/.../ LanguageSelec o Taulukko 5. Chak a:n Menu-komponen ia käy ä ä komponen i . Esime kkinä muoka aan LanguageSelec o -komponen ia alla ole ien koodilohkojen 5 ja 6 mukaan. Tyylikomponen iin a i aan lisäpa ame eja, jo ka on esi e y jäljempänä aulu- kossa 6. Samalla lisä ään yylimuo oilu ex T ans o m: capi alize painikkeen sekä alin a aih oeh ojen eks iin, jo a eks i alka a isolla ki jaimella. Esime kkikomponen issa on lisäksi yylimuo oiluja, jo ka ässä muu oksessa on jä e y o eu ama a. Näi ä o a ikonien ä i ys ja painikkeen kulmien pyö is ykse . ... <Menu colo Scheme="pu ple"> <MenuBu on w=" ull" as={Bu on} a ian ="ou line" bo de Radius="sm" le Icon={ <MdOu lineLanguage colo ={ligh || ’whi e’} /> } colo ={colo || ’g ay.700’} igh Icon={ <Che onDownIcon colo ={ligh || ’whi e’} /> } > {languages. ind((lng) => 43 lng. alue === selec edLocale)?.label} </MenuBu on> <MenuLis > {languages.so ().map((lng) => ( <MenuI em isDisabled={lng. alue === selec edLocale} key={lng. alue} onClick={() => handleLocaleChange(lng. alue)} s yle={{ ex T ans o m: ’capi alize’ }} > {lng.label} </MenuI em> ))} </MenuLis > </Menu> ... Koodilohko 5. Ko a a a Menu-esiin ymä. ... <AkamonMenu menuOp ions={op ionsLis } bu onWid h={’ ull’} bu onS a e={ languages. ind((lng) => lng. alue === selec edLocale)?.label } le Icon={<MdOu lineLanguage />} a ian ={’ou line’} /> ... Koodilohko 6. Menu-esiin ymän ko aa a koodi. 44 Pa ame i Seli ys bu onWid h?: s ing Valinnainen painikkeen le eys, jos halu aan esime kiksi koko aamin le yinen painike. Ole uksena painikkeen le eys mu- kau uu eks in le eyden mukaan. bu onS a e?: s ing Valinnainen painikkeessa aloi ushe kellä näky ä eks i, ole uk- sena ei mi ään. le Icon?: Reac Elemen Valinnainen ikoni menupainikkeen asempaan lai aan. Oikeas- sa laidassa on au omaa ises i alas e o alikon nuoli, asem- massa laidassa ei mi ään. a ian ?: s ing Painikkeen alinnainen a ian i yylimuo oilua a en. Ole- uksena ei a ian ia, jolloin käy e ään p ima y-muo oilua. Taulukko 6. AkamonMenu-komponen iin a i a a lisäpa ame i . Modal. Dialogeja käy e ään ki jas on 10 komponen issa. Jokainen esiin ymä ulee py kiä ko - aamaan AkamonModal-komponen illa, joka sisällön osal a aipuu moneen e i a koi ukseen. Komponen ia oidaan muoka a, jos huoma aan, e ä lisäominaisuuksille on a e a. Chak a UI:n Modal:ia käy ä ä alla ole assa aulukossa 7 esi e y komponen i . Komponen in sijain ipolku Komponen in nimi s c/componen s/ AgeRes ic ion s c/componen s/ CookieModal s c/componen s/.../ E mNa iga ionBlocke s c/componen s/.../ E mManualGs nSelec Modal s c/componen s/.../ E mO e Summa yCa dSendToEmailModal s c/componen s/.../ MessageModal s c/componen s/.../ NewCon ac Modal s c/componen s/.../ Wea he S a ionSelec s c/componen s/.../ Repo Modal s c/componen s/ Selec Cus ome Taulukko 7. Chak a:n Modal-komponen ia käy ä ä komponen i . Esime kkinä muoka aan AgeRes ic ion-komponen ia koodilohkojen 7 ja 8 mukaan. Esi- me kki AkamonModal-komponen in a i semas a oimin opainikejoukos a on esi e y alinna lohkossa 9. Tyylikomponen iin a i aan lisäpa ame eja, jo ka on esi e y aulukossa 8. 45 ... <Modal isOpen={isOpen} onClose={onClose} closeOnO e layClick={ alse}> <ModalO e lay /> <ModalCon en > <ModalHeade > { (’heade ’, { ns: ’ageRes ic ion’ })} </ModalHeade > <ModalBody> { (’in o’, { ns: ’ageRes ic ion’ })} </ModalBody> <ModalFoo e > <Bu on {...bu onP ops} w=" ull" onClick={() => onClickClose()}> { (’con i m’, { ns: ’bu on’ })} </Bu on> </ModalFoo e > </ModalCon en > </Modal> ... Koodilohko 7. Ko a a a Modal-esiin ymä. ... <AkamonModal isOpen={isOpen} onClose={onClose} closeOnO e layClick={ alse} i le={ (’heade ’, { ns: ’ageRes ic ion’ })} con en ={ (’in o’, { ns: ’ageRes ic ion’ })} ac ionBu ons={ac ionBu ons} /> ... Koodilohko 8. Modal-esiin ymän ko aa a koodi. 46 ... cons ac ionBu ons = [ { a ian : ’p ima y’, ex : (’con i m’, { ns: ’bu on’ }), onAc ionBu onClick: () => { onClickClose(); }, shouldClose: ue, wid h: ’ ull’, }, ]; ... Koodilohko 9. Komponen in pa ame ina saama oimin opainikejoukko. Pa ame i Seli ys igge Bu on: Reac Node Valinnainen dialogin a aa a elemen i. Pa ame ina anne - aessa oi olla joko painike, ikoni ai jokin muu elemen i. Modal:in a au uminen oi pe us ua myös eh olauseeseen, jol- loin e illis ä igge iä ei a i a. onClose: () => oid Dialogin sulke a oimin o anne aan ku sun yh eydessä, koska oi olla a peen suo i aa e ilaisia oimin oja dialogin sulkeu- uessa. Taulukko 8. AkamonModal-komponen iin a i a a lisäpa ame i . Toimin opainikkeiden le eys oidaan an aa alinnaisena ie ona painikkeiden objek ijou- kossa, ominaisuus on lisä y Ac ionBu on- yyppiin. Samoin Dialogin a aa a painike on pois e u AkamonModal-komponen in sisäl ä. On myös lisä y mahdollisuus an aa closeOnO e layClick-ominaisuus komponen iku sun yh eydessä. Chak a:n Modal- komponen in ole us on ue. Samoin dialogin koko oidaan ny äli ää komponen iku sussa. Chak a:n ole us on md. Voisi olla hy ä poh ia, mille muille dialogin ominaisuuksille saa aisi olla a e a. AkamonModal-komponen ia oidaan muoka a käy ö a koi us en mukaan, kui enkin niin, e ä o eu us pysyy monikäy öisenä. 47 Popo e . Ponnahdusikkunoi a käy e ään neljässä ki jas on komponen issa. Yksi näis ä on monikäy öiseksi komponen iksi a koi e u Popo e , jo a edelleen ku suu 7 muu a ki - jas on komponen ia. Chak a UI:n Popo e :ia käy ä ä komponen i on esi e y aulukossa 9. Komponen in sijain ipolku Komponen in nimi s c/componen s/.../ Popo e Bu on s c/componen s/.../ In oiceS a usPopo e s c/componen s/ Ma ke ingApp o al s c/componen s/ Popo e Taulukko 9. Chak a:n Popo e -komponen ia käy ä ä komponen i . Esime kkinä muoka aan ki jas on Popo e -komponen i käy ämään AkamonPopo e - komponen ia alla ole ien koodilohkojen 10 ja 11 mukaan, jolloin siihen sidoksissa ole ien komponen ien ulisi ko jau ua ke alla. Tyylikomponen iin a i a a lisäpa ame i on esi- e y jäljempänä aulukossa 10. ... <Popo e igge ="ho e " {...popo e P ops}> <Popo e T igge > {child en || <In oOu lineIcon da a- es id="de aul -popo e -icon" />} </Popo e T igge > <Popo e Con en > <Popo e Heade > {heade } </Popo e Heade > <Popo e CloseBu on /> <Popo e Body ex Align="le "> <S ack> { ool ips?.map(( ool ip) => ( <Tex key={ ool ip}>{ ool ip}</Tex > ))} </S ack> 48 </Popo e Body> </Popo e Con en > </Popo e > ... Koodilohko 10. Ko a a a Popo e -esiin ymä. ... <AkamonPopo e igge ="ho e " igge Bu on={ <In oOu lineIcon ma gin={0} boxSize="30px" /> } i le={heade } con en ={ <S ack> { ool ips?.map(( ool ip) => ( <Tex key={ ool ip}>{ ool ip}</Tex > ))} </S ack> } {...popo e P ops} /> ... Koodilohko 11. Popo e -esiin ymän ko aa a koodi. Pa ame i Seli ys igge Bu on: Reac Node Ponnahdusikkunan a aa a painike. Pa ame ina anne aessa oi olla joko painike, ikoni ai jokin muu elemen i. igge : s ing Toimin o, joka a aa ponnahdusikkunan (click/ho e ). Tä- mä pa ame i sisäl yy Chak a:n Popo e P ops:iin, jo en si- ä ei a i se e ikseen esi ellä. Sil i, jos halu aan yliki joi aa ole us igge i, se on anne a a komponen ille ku sun yh eydes- sä. Taulukko 10. AkamonPopo e -komponen iin a i a a lisäpa ame i . 49 Mone komponen eis a a i se a ympä illeen e ilaisia aameja, jo a komponen in sisäis en elemen ien ase elu oimii halu ulla a alla. Vaikka komponen in ulommainen aami ase e - aisiin si umalliin ilman e illis ä älis ys ä, aus an ollessa ä i ön, i se sisäl ö ei äy ä koko ilaa. Komponen i näy ä ä ole an ase el u e ilaisin älis yksin ja yh enäinen ilme hajoaa. Alla ole issa ku ioissa 12 ja 13 on esime kki samas a komponen is a, jois a ylemmän aami sisäl ää e ikaalis a ma ginaalia ja alemman ei. O sikon ja si usisällön älis ys on ämän uoksi e ilainen ja joh aisi kahden si un epäyh enäiseen ulkoasuun. Ku io 12. Yhden sisällön si umalli komponen in sisäisen ma ginaalin kanssa. Ku io 13. Yhden sisällön si umalli ilman komponen in sisäis ä ma ginaalia. Myös innakkain ase el una o sikon ja sisällön äliseen e oon aiku aa komponen iin a- kenne u ma ginaali, mu a innakkaise sisällö ase u a samalla lailla keskenään, koska 56 suu emman elemen in ko keus mää ää sisäl ö i in ko keuden ja sisäl ö on keski e y. Ku iois- sa 14, 15 ja 16 asen komponen i ei sisällä e ikaalis a ma ginaalia ja oikea sisäl ää. Ku io 14. Kahden sisällön si umalli oisen komponen in sisäisen ma ginaalin kanssa. Ku io 15. Kahden sisällön si umalli ma ginaali on komponen i ko os e una. 57 Ku io 16. Kahden sisällön si umalli ma ginaalia sisäl ä ä komponen i ko os e una. Si umallin käy ööno o ja sen oiminnan hyödyn äminen aa ii si ujen läpikäyn iä yksi ke al- laan. Komponen ien uloimmissa kää eissä ole a ma ginaali ulee mahdollisuuksien mukaan pois aa ja sisempien kää eiden älis ysominaisuuksien me ki ys a kas ella e ikseen. Tällä he - kellä sisäl ö i in elemen i on keski e y e ikaalises i, jolloin i i näy ää hy äl ä, kun sisällö o a keskenään samankal aise . Kahden hy in e ilaisen ja e ikokoisen elemen in sijoi aminen samalle i ille oi aa ia keski yksen pois amis a. Hyödyllis ä olisi myös u kia, missä kaik- kialla älis ys-ominaisuu a (engl. spacing ) käy e ään ja ko a a esiin ymä yylioppaassa esi- ellyillä älis ysa oilla. 4.5 Suunni elusykli: yylin al ojan o eu us Ma kkinoilla on unsaas i almii a isuaaliseen eg essio es aukseen a koi e uja ohjelmis oja. Tyylioppaan suunni elun ja o eu uksen iedessä suunni el ua kauemmin ode aan, e ei ämän u kimuksen pui eissa ole mahdollis a o eu aa ekoälyyn, ie okonenäköön ja koneoppimiseen pe us u aa isuaalis a es aus a. Sen sijaan y i e ään löy ää pa as snapsho - ekniikalla oimi- a yökalu, joka suo i aa a i a a isuaalise eg essio es i ja aipuu ja kossa mahdollises i myös oiminnalliseen es aukseen. 58 4.5.1 Tes aus yökalujen esi ely Esi ellään kolme snapsho - ekniikkaan ja pikseli e ailuun pe us u aa yökalua aih oeh oina yylin al ojaksi. Sen lisäksi ke o aan lyhyes i myös e ääs ä eköälyä käy ä äs ä yökalus a, koska on hyödyllis ä hieman poh ia myös ekoälyyn pe us u an mallin oimin alogiikkaa, jo a ymmä ys saa a illa ole is a aih oehdois a lisään yy. Kohdeo ganisaa io oi halu essaan ha - ki a sellaiseen malliin sii ymis ä ule aisuudessa. Vi es image snapsho s. Komponen iki jas on oiminnallis a es aus a hoide aan ällä he kellä Vi es -ohjelmis olla, mikä on e i yises i Vi e-p ojek ien käy öön suunni el u es ausympä is- ö. Tämän uoksi Vi es :in aipu uus isuaaliseen es aukseen halu aan u kia ensimmäisenä. Vi es :issä on olemassa snapsho -ominaisuus, jossa ohjelmis o o aa ilanneku an anne us a a - os a ja e aa si ä si en es in innalle allenne uun e e enssi iedos oon. Vaikka ekniikkaa käy e ään myös koodi i ien ja iedos ojen e ailuun, ämän u kimuksen pui eissa keski y- ään nimenomaan ku ien e ailuun keskenään. Ku ien snapsho - es aukseen a i aan a uksi Jes -laajennus, jes -image-snapsho s, joka luo Puppe ee -ki jas oa käy äen ku an es a a as a käy ölii ymäs ä ai yksi äises ä komponen is a ja e aa si ä pikseli asolla aiemmalla es ia- jolla muodos e uun e e enssiku aan. Tes i epäonnis uu, jos kaksi ilanneku aa ei ä äsmää: joko muu os on odo ama on ai e e enssiku a on päi i e ä ä uu een e sioon. (You 2024b) Käy ännössä oimin a on seu aa anlainen: •Tallenne aan e e enssiku a. Ensimmäisellä es iajolla Puppe ee na igoi käy ölii y- mässä halu ulle si ulle ja o aa ku an es in koh eena ole as a näkymäs ä ai yksi äises ä komponen is a. Ku a allenne aan e e enssiku aksi seu aa ille es iajoille. •O e aan ku akaappaus. Seu aa illa es iajoilla Puppe ee allen aa uuden ku an es i- ku ana, jo a jes -image-snapsho si en e aa aiemmin allenne uun e e enssiku aan. •Suo i e aan pikseli e ailu. Uu a es iku aa e a aan e e enssiku aan pikseli pikse- lil ä. Työkalu laskee pikselie o ja e aa ulos a anne uun ole anssiin. Tole anssi oi- daan mää i ellä es i ke allaan ja näin ase aa iukemma ai löysemmä aja es auksen koh een mukaan. •Esi e ään ulokse . Jos ole anssi aja yli y ä , yökalu allen aa poikkeamaku an, jossa muu okse näky ä ko os e una. Ku a on kolmen ku an sa ja, jossa esi e ään asemmal- la odo e u ku a ( e e enssiku a), oikealla odellinen ku a ja keskellä i hee . Tämän jälkeen kehi äjän äy yy a kas ella uloksia ja a ioida, onko kyse aha omas a poik- 59 keamas a ai halu aanko e e enssiku aa muu aa. Jos muu os on a koi uksellinen, e e ens- siku a päi i e ään as aamaan uu a ilanne a komennolla -u. Koska Vi es on jo käy össä ki jas on oiminnallisessa es auksessa, on luonnollis a, e ä se ali aan yhdeksi aih oehdoksi myös isuaaliseen es aukseen. Playw igh isual compa isons. Toinen Vi e-p ojek ien kanssa hy in yh eensopi a es ausym- pä is ö on Mic oso in kehi ämä Playw igh Tes , joka on ehokas usei a selaimia uke a oi- minnalliseen sekä end- o-end - es aukseen so el u a yökalu. Kohdeo ganisaa io on u kimuk- sen ede essä esi äny kiinnos us a ä ä ohjelmis oa koh aan, jo en sen aipumis a isuaali- seen es aukseen halu aan myös u kia. Playw igh Tes a joaa samanlaise oiminnallisuude snapsho - es aukseen kuin Vi es , joskin e ilaisin ki jas oin. Playw igh o aa i se ku akaap- paukse ja käy ää ku ien e ailussa Pixelma ch-ki jas oa. Käy ännössä oimin a on seu aa anlainen: •Tallenne aan e e enssiku a . Ensimmäisellä ajolla Playw igh luo e e enssiku a o - aen usei a ku ia ja kahden pe äkkäisen ku an as a essa oisiaan, jälkimmäinen allen- ne aan e e enssiku aksi. •O e aan es iku a . Seu aa illa es iajoilla o e aan uusia ku akaappauksia e a a aksi e e enssiku iin. Koska ku akaappaukse aih ele a e ilaisissa selaimissa ja alus oissa, Playw igh -dokumen aa iossa suosi ellaan o amaan e illise ku a e ilaisille ympä is öil- le. •Suo i e aan e ailu. Pikseli e ailun suo i aa Pixelma ch-ki jas o, jolle oidaan mää- i ää ole anssi aja . Esime kiksi e ilais en ympä is öjen es aamisessa on hyödyllis ä sallia pieniä e oja ilman, e ä es i epäonnis uu. •Rapo oidaan ulokse . Tes in epäonnis uessa i hee apo oidaan kolmena ku ana, jois a ensimmäinen on e e enssiku a, oinen es iajon yh eydessä o e u ku a ja kol- mannessa ku assa esi e ään isuaalise poikkeama ko os e una. Ku a on allenne u e illisinä .png- iedos oina es - esul s-kansioon. Näiden aiheiden jälkeen es aajan on a ioi a a es aukse ulokse ja pää e ä ä ko ja aan- ko i he ai halu aanko e e enssiku aa muu aa. Uuden e e enssiku an allen aminen onnis- uu ai a a es iajon yh eydessä anne a alla komennolla -upda e-snapsho s. (Mic oso 2024a) Cyp ess image snapsho . Reac -so ellus en kanssa hy in oimi a ja Vi e-so elluksia uke a 60 Cyp ess a joaa laajan uen end- o-end- ja oiminalliselle es aukselle. Lisäosien myö ä myös isuaalinen eg essio es aus on mahdollis a. Cyp ess käy ää snapsho -ku ien o amiseen li- säosaa cyp ess-image-snapsho , jolla o e aan ku a koko es a a as a so ellukses a ai ie ys ä elemen is ä. Ku aa e a aan aiemmin hy äksy yyn pe usku aan, ku en edellä esi e yissä yö- kaluissa. Vaih oeh ona on olemassa myös kaupallinen yökalu, Cyp ess Visual Tes ing (Cyp ess Cloud), joka suo i aa snapsho - e ailun pil essä ja sisälly ää isuaalisen eg essio es auksen osaksi CI/CD-pu kea. (Cyp ess.io 2024) Käy ännön oimin a es auksessa on ai an samanlainen, kuin edellä esi el yjen yökalujen osal- a. Ensimmäisellä ajolla muodos e aan e e enssiku a, jo a as aan a sinais en es iajojen ku- akaappauksia a ioidaan. Vi hee es iajossa uo a a poikkeamaku an, jossa asemmalla esi- ellään odo e u ulos ja oikealla a sinainen es in ulos, e o ko os e uina keskimmäisessä ku assa. Edellisis ä yökaluis a poike en Cyp essiin kuuluu käy ölii ymä yökalu, jossa es i oidaan ajaa ja niiden uloksia a kas ella. Cyp ess:iin, ku en muihinkin suosi uihin es ausalus oihin on saa a illa myös isuaaliseen es- aukseen suunni el uja Pluginei a. Näis ä maini akoon esime kkinä Appli ools Eyes, jonka oi- min aa a kas ellaan seu aa assa. Appli ools Eyes. Appli ools on suosi u ekoälya us einen es aus a kaisu, joka in eg oi uu helpos i useimpiin nykyaikaisiin es ausalus oihin, ku en yllä maini u Vi es , Playw igh ja Cyp ess. Sen keskeinen komponen i on Appli ools Eyes, joka käy ää Visual AI- ekoälyä ja ku an unnis us ekniikoi a isuaalis en e ojen ha ai semiseksi käy ölii ymän ku akaappauk- sissa, jo a nii ä oidaan a kas ella ihmissilmän a oin. Ku akaappauksia oidaan a ioida useilla e i alus oilla ja lai eilla yhden es iajosa jan aikana. Tekoäly osaa e o aa me ki yk- sellise isuaalise e o pienis ä ende öin ie ois a, joihin pikseli e ailussa usein ake u aan. Appli ools Eyes:ille oidaan mää i ää aluei a, esim. päi ämää iä ja ilmoi uksia, jo ka se oi ohi aa. Vaih oeh oises i dynaaminen sisäl ö oidaan ohi aa ekoälyn a ulla. Pääasiassa es- aus apah uu hy in samalla a alla kuin pe in eisessä snapsho -pikseli e ailumallissa, mu a ulokse o a luo e a ampia ja manuaalisen yön mää ä ähäisempi. Tes auksen aihee Appli ools Eyes:illa: •In eg oin i. Työkalu in eg oidaan käy össä ole aan es ausympä is öön ja es i mää i- ellään o amaan ku akaappauksia joko kokonaisis a si uis a ai yksi äisis ä komponen- eis a. 61 •O e aan ku akaappaukse . Tes iajoilla Appli ools Eyes allen aa ku akaappaukse ja e aa nii ä e e enssiku iin. E oa aisuude apo oidaan pil ipohjaisessa käy ölii y- mässä poikkeamaku ina. •Rapo oidaan ulokse . Appli ools:in apo oin i yökalu, Tes Manage a joaa käy ä- jäys ä ällisen a an analysoida es ien uloksia. Eyes on jo almiiksi pois anu ää iä posi ii isia häly yksiä, jo en a kas el a aa jää kehi äjälle ähemmän. •Hy äksy ään ai hylä ään muu okse . Uusien e e enssiku ien allen aminen apah uu helpos i Task Manage in kau a. Tällaisen ekoälya us eisen yökalun me ki ys ko os uu siinä, e ä kehi äjille jää ähemmän manuaalis a yö ä. Useiden e ilais en lai e- selain- ja alus ayhdis elmien sekä e ilais en eso- luu ioiden es aaminen käy ekoälyl ä ai a a. Visual AI osaa suoda aa me ki ykse ömä e o oikeis a i heis ä, ehdä alus a iippuma omia e ailuja, huomioida käy ölii ymän mukau u- misen e ikokoisille näy öille ja ohi aa dynaamisen sisällön aiheu ama i hee . Tällä a alla es auksen a kkuus pa anee, es isyklien läpimeno nopeu uu ja oidaan es a a yhä suu empia mää iä käy ölii ymäkomponen eja samalla ajolla. (Appli ools 2024) Ma kkinoilla on unsaas i myös mui a ekoälyyn ja koneoppimiseen pe us u ia es aus yökalu- ja, ku en LambdaTes , Func ionize, Tes im.io ja Pe cy sekä lukuisia mui a. Ne käy ä ä eko- älyä es ausp osessin e i aiheissa es ien ki joi amises a p osessin au oma isoin iin. Tä ä u - kimus a a en eh y 18 kaupalliseen e kkosi us oon pe us u a ka saus kui enkin nos i Appli- ools:in useimmin kolmen kä keen, kun analysoi iin 70 e ilais a isuaalisen es auksen yöka- lua niis ä eh yjen pa emmuus e ailujen a ulla. Työkaluja ilmes yy ma kkinoille koko ajan ja käy e yn ekoälyn osuus kas aa myös isuaalisen es auksen sa alla. 4.5.2 Työkalujen e ailua ja yylin al ojana käy e ä än es ausympä is ön alin a Työkalujen e ailua a en luodaan uusi Reac Vi e-so ellus, jossa on yksinke ainen p o iili ie oja allen a a käy ölii ymäsi u sisäl äen lomakkeen syö eken ineen ja allennus- painikkeineen. Kaikki kolme es aus yökalua asenne aan ja kon igu oidaan a koi us a a en ähän so ellukseen, jo a e ailu oidaan suo i aa samanlaisella sisällöllä. Kon igu oin i on haas a in a Cyp ess:issä, Playw igh :issa asennus ja käy ööno o sujuu helpoi en. Luodaan kullakin yökalulla kaksi es iä, oinen, joka a kis aa kokonaisen e kkosi un ja oinen, joka u kii yksi äisen painike-komponen in. Tes ien syn aksi on hy in samanlainen kaikissa yökaluissa. Koska Vi es käy ää Puppe ee -ki jas oa apuna, on siinä sen uoksi muu ama 62 koodi i i enemmän. Lisäksi snapsho ille on Vi es :issa anne a a a kempia pa ame eja, kuin muiden yökalujen apauksessa. Koko si un es issä na igoidaan ensin halu ulle e kkosi ulle ja o e aan si us a ku akaappaus. Alla ole issa koodilohkoissa 16, 17 ja 18 esi e ään kullakin yökalulla ki joi e u es i apaukse . i (’p o ile’, async () => { cons b owse = awai puppe ee .launch(); cons page = awai b owse .newPage(); awai page.go o(’h p://localhos :5173/p o ile’); cons imageBu e = awai page.sc eensho ({ ype: ’png’, encoding: ’base64’, ullPage: ue }); expec (Bu e . om(imageBu e , ’base64’)) . oMa chImageSnapsho (); }); Koodilohko 16. Vi es -syn aksi, koko si un es i. es ("p o ile isual es ", async ({ page }) => { awai page.go o("h p://localhos :5173/p o ile"); expec (awai page.sc eensho ()) . oMa chSnapsho ("p o ile.png"); }); Koodilohko 17. Plaw igh -syn aksi, koko si un es i. i ("should ma ch he p o ile snapsho ", () => { cy. isi ("/p o ile"); cy.ma chImageSnapsho ("p o ile"); }); Koodilohko 18. Cyp ess-syn aksi, koko si un es i. Tes a essa yksi äis ä komponen ia, hakeudu aan ensin halu ulle e kkosi ulle, e si ään siel ä es a a a h ml-elemen i, jos a ku akaappaus o e aan. Elemen iä oidaan h ml- agin lisäksi e siä myös luokan ai id:n pe us eella. Alla ole issa koodilohkoissa 19, 20 ja 21 esi e ään syn aksi e i yökaluilla. 63 i (’p o ilebu on’, async () => { cons b owse = awai puppe ee .launch(); cons page = awai b owse .newPage(); awai page.go o(’h p://localhos :5173/p o ile’); cons bu onComponen = awai page.$(’bu on’); i (bu onComponen ) { cons image = awai bu onComponen .sc eensho ({ ype: ’png’, encoding: ’base64’ }); expec (Bu e . om(image, ’base64’)) . oMa chImageSnapsho (); } else { h ow new E o ("Bu on no ound on he page."); } awai b owse .close(); }); Koodilohko 19. Vi es -syn aksi, komponen in es i. es ("p o ile bu on componen ", async ({ page }) => { awai page.go o("h p://localhos :5173/p o ile"); cons bu onComponen = awai page.loca o ("bu on"); awai expec (bu onComponen ) . oHa eSc eensho ("p o ileBu on.png"); }); Koodilohko 20. Plaw igh -syn aksi, komponen in es i. i ("should ma ch he bu on snapsho ", () => { cy. isi ("/p o ile"); cy.ge ("bu on") .ma chImageSnapsho ("p o ilebu on-snapsho "); }); Koodilohko 21. Cyp ess-syn aksi, komponen in es i. Cyp ess De Tools -käy ölii ymä on in o ma ii inen, es ien ajo sujuu näppä äs i si ä kau - a. Muissa yökaluissa ei sellais a ole, aan es ien ajo apah uu komen o i il ä. Ensimmäisellä es iajolla kukin ohjelma allen aa e e enssiku an p o iilisi us a ja sillä ole as a painikkees- 64 a. Tehdään käy ölii ymään ulkoasuun aiku a ia muu oksia: kas a e aan painikkeen kokoa, muu e aan sen eks iä ja lisä ään lomakkeen alin a uu uun eks iä. Tämän jälkeen es i aje- aan uudelleen. Odo e us i es i epäonnis u a . Poikkeamaku a allen u a kaikkien ohjelmis- ojen apauksessa omaan e illiseen kansioonsa, jos a ne o a helpos i löyde ä issä. Vi es ja Cyp ess esi ä ä poikkeama kolmen ku an sa jana, kun Playw igh :issa ku a allen u a e il- lisinä iedos oina. Kolmen ku an sa jas a poikkeama löy y ä helpommin, kun kaikkia ku ia oi ka sella samanaikaises i. Tes ien a kkuudessa on e oja. Vi es :in ja Playw igh :in ilmoi ama i hee oli a o- dellis en muu os en aiheu amia, kun Cyp ess ilmoi i lisäksi i heis ä, jo ka ei ä ollee odellisia. Kaikissa ohjelmis oissa on mahdollis a mää i ellä ole anssi, jo a es iajoissa so- elle aan. Vi es :in poikkeamaku a p o iilisi ulle ja painikkeelle on esi e y ku ioissa 17 ja 18. Ku io 17. Vi es , koko si un es i. Ku io 18. Vi es , komponen in es i. Vi es :issä asemmalle ulos uu e e enssiku a, oikealle odellinen ku a ja keskellä näky ä ko os e una i hee näiden älillä. Tes i odo e us i ko os aa painikkeen muu uneen ko keuden, painikkeessa ole an eks in ja alin a uu uun lisä yn eks in. Playw igh allensi seu aa anlaise kolme e illis ä ku aa epäonnis uneiden es ien pohjal a (ku io 19 ja 20). Vasemmalla on odellinen ku a, oikealla e e enssiku a ja keskellä näky ä i hee . Tulos on hy in samanlainen kuin Vi es :illä. 65 ain 4 pikselin e o ko keudessa. Sallimalla ku an kokoe o , saa aisiin sel ille ä keämpää ie oa pikselipoikkeamis a. Responsii inen ase elu oidaan kui enkin a kas aa ku ios a 26. Ku io 26. Koko es isi un able -näkymän poikkeamaku a (T3). T4. exis ence & appea ance o a p ima y bu on E o : Expec ed image o be he same size as he snapsho (92x40), bu was di e en (124x64). Painikkeelle anne u äy e näkyy selkeäs i ku iossa 27. Painikkeen koko ja eks in paikka muu uu. Ku io 27. P imää ipainikkeen ulkoasu es in (T4) poikkeamaku a. T7. exis ence & appea ance o a p ima y colo box E o : Expec ed image o be he same size as he snapsho (166x130), bu was di e en (166x195). Elemen in muu unu koko nähdään selkeäs i myös ku ios a 28. Tähän es iin oisi yhdis ää myös komponen in ä in a kas uksen ilman ku akaappaus a, ku en es issä T12. Snapsho - es i paljas aisi muu uneen ä in kui enkin myös, mu a e illinen ä i es i an aisi lisäin o maa io a. 72 Ku io 28. P imää i ä ilaa ikon ulkoasu es in (T7) poikkeamaku a. T8. es page a e ho e ing he ool ip E o : Expec ed image o be he same size as he snapsho (1200x1300), bu was di e en (1200x1312). Tes in ulos on esi e y ku iossa 29. Animaa ioiden osal a kanna aa es iin lisä ä ajas in ai jollain muulla a alla a mis aa, e ä animaa io on almis ku aa o e aessa. Luonnollises i si ulla ole a muu kin i hee näky ä ku assa, a koi uksenmukaisempaa olisi a kas ella komponen ia e illään. Ku io 29. In olaa ikon ho e - es in (T8) poikkeamaku a. T9. modal componen a e clicking a modal bu on E o : Expec ed image o be he same size as he snapsho (448x247), bu was di e en (446x247). Dialogille eh y sijainnin muu os ei paljas u poikkeamaku assa (ku io 30), koska es in koh eena on pelkkä kompo- nen i. Ku aan pii yy sen sijaan paljon ylimää äis ä. Ensimmäisen painikkeen eks in muu os ali e a as i hukkuu kohinaan. 73 Ku io 30. Dialogi es in (T9) poikkeamaku a. T10. es page a e clicking a popo e bu on E o : Expec ed image o be he same size as he snapsho (1200x1300), bu was di e en (1200x1312). Ponnahdusikkuna es in lisäa o isuaalisen es auksen kannal a on ähäinen, koska es a aan jälleen koko si ua, ku en ku ios a 31 nähdään. Toiminnallisuuden osal a oidaan kui enkin ode a, e ä ikkuna on a au unu painikkeen painalluksen myö ä. Jos mui a i hei ä ei si ulla olisi, ulos olisi huoma a as i käy ökelpoisempi. Ku io 31. Ponnahdusikkuna es in (T10) poikkeamaku a. T13. ex o he heading Asse ionE o : expec ed ’Tyylioppaan es isi u’ o be ’Tyylioppaan es isi u’. Ilman ku akaappaus a o eu e u es i ke o a i hees ä sanallises i. Vi he ies i on in o ma ii inen ja sen a ulla pääs ään i heeseen helpos i käsiksi. Ko ja aan ehdy muu okse akaisin alkuase elmaan ja aje aan es i uudelleen. Ny kaikkien es ien odo e aan onnis u an. Kui enkin kolme apah umia sisäl ä ää es iä epäonnis uu edel- leen ( es i T8, T9 ja T10). 74 T8. es page a e ho e ing he ool ip E o : Expec ed image o ma ch o be a close ma ch o snapsho bu was 0.4953846153846154% di e en om snapsho (7728 di e ing pixels). Ny Vi es apo oi ajaan puolen p osen in pikselipoikkeamas a. Komponen issa ei pi äisi enää olla i he ä, mu a ku iossa 32 kui enkin ko os uu i he komponen in ho e - ilassa. Ku io 32. In olaa ikon ho e - es in (T8) oinen poikkeamaku a. T9. modal componen a e clicking a modal bu on E o : Expec ed image o be he same size as he snapsho (448x247), bu was di e en (446x246). Samoin dialogin osal a apo oidaan edelleen poikkeamas a, jo a ei pi äisi enää olla (ku io 33). Ku io 33. Dialogi es in (T9) oinen poikkeamaku a. T10. es page a e clicking a popo e bu on E o : Expec ed image o ma ch o be a close ma ch o snapsho bu was 0.008397435897435% di e en om snapsho (131 di e ing pixels) Ponnahdusikkunan apauksessa i he on niin pieni, e ä se on uskin ha ai a issa (ku io 34). 75 Ku io 34. Ponnahdusikkuna es in (T10) oinen poikkeamaku a. Toisen es iajon ku is a pää ellen poikkeama o a ää iä häly yksiä. Vi he apo is a nähdään myös e ojen ole an hy in pieniä. Kas a e aan näiden es ien osal a i hema ginaalia ja aje aan es i uudelleen. Modal-komponen in es i (T9) epäonnis uu edelleen, muu mene ä läpi. Epäonnis uneen es in poikkeamaku as a (ku io 35) kui enkin nähdään, e ei kyse ole odelli- ses a i hees ä. Ku io 35. Dialogi es in (T9) kolmas poikkeamaku a. 4.5.5 Työkalun so el u uus yylin al ojaksi Vi es , jes -image-snapsho :in ja Puppe ee -ki jas on a us uksella oisi oimia käy ölii ymä- komponen ien isuaalisessa eg essio es auksessa, mu a kohdeo ganisaa ion apauksessa ja - ko u kimus a aadi aan. Epäjohdonmukaise ää ä häly ykse ja aja ainen apo oin i aiku - a a es ien luo e a uu een. Tes ien syn aksi on kui enkin selkeää ja esime kkejä löy yy do- kumen aa ios a. Vaikka suu in osa i heis ä jää kiinni kokonais en si ujen ku issa, on kom- ponen eja kui enkin syy ä a kas ella myös e ikseen. Tällöin poikkeama ule a selkeämmin esiin ja es iajoja oidaan äsmen ää ongelmakoh iin. Tä ä u kimus a a en eh y simulaa io on oki keino ekoinen, koska i hee o a ennal a ie- 76 dossa. Vää ien i heiden e o aminen odellisis a i heis ä saa aa ainakin aluksi un ua yö- lääl ä. Tole anssin kas a aminen es ikoh aises i oi au aa, kun opi aan unnis amaan i hee , jo ka o a ihmissilmälläkin ha ai a issa. Tekoälypohjaise a kaisu as aa a juu i ähän on- gelmaan ja osaa a e o ella me ki yksellise isuaalise e o pienis ä ende öin ie ois a. Vi es so el uu myös oiminnalliseen es aukseen ja onkin sil ä osin jo kohdeo ganisaa ion käy- össä. Se on myös in eg oi a issa yleises i käy e yihin CI/CD- yökaluihin. Visualisen es aus- yökalun ehokkuus ja suo i uskyky ja ku an ohjelmis okehi yksen pu kessa on kui enkin a - ioi a a e ikseen. 77 5 A e ak in e aluoin i ja ulokse i e aa ioi ain Suunni elusyklien i e aa ioiden pää eeksi suo i e aan a e ak in e aluoin i. Tässä lu ussa esi- ellään a ioinnin ulokse ja niiden pe us eella suo i e a a ja ko oimenpi ee . 5.1 Tyyliopas, ensimmäisen e aluoinnin ulokse Alla ku a aan ensimmäisen e aluoinnin uloksia laa u aa imus en äy ymisen ja yylioppaan lähdekoodin osal a. Tyylioppaalle ase e iin seu aa a laa u aa imukse : oiminnallisuus, käy- e ä yys, ehokkuus ja ylläpide ä yys. Toiminnallisuudella a koi e aan si ä, e ä yyliopas so- el uu käy öön, johon se on a koi e u ja hoi aa sille mää i elly oimenpi ee . Käy e ä yys puoles aan a koi aa yylioppaan helppokäy öisyy ä, eli si ä, e ä se on ii ä än in ui ii inen ja opi a a, ehokas ja yksinke ainen käy ää. Tehokkuus a koi aa, e ä yyliopas ei hukkaa käy äjänsä aikaa ai jä jes elmän esu sseja ja oimii ehokkaas i siinä a koi uksessa, johon se on luo u. Ylläpide ä yys lii yy yylioppaan elinkaa een ja siihen, e ei se ole ke aluon oinen p ojek i aan elää so elluksen mukana ja pysyy ajan asalla. Näi ä asioi a a kas ellaan yylioppaan o eu us a e aluoi aessa, aa imusmää i ely mielessä pi äen. A ioinnin suo i aa kohdeo ganisaa ion ohjaaja. Ensimmäisen e aluoinnin pohjal a o- eu e aan oinen i e aa io yylioppaan kehi ykses ä, jossa alla maini u asia py i ään ko jaa- maan. I e aa ion pää eeksi yyliopas ja sen lähdekoodi a ioidaan uudelleen. 5.1.1 Laa u aa imus en äy yminen Toiminnallisuuden osal a a ioija pi ää yyliopas a selkeänä, uskoo käy äjän saa an nopeas i yleisku an sii ä, mi ä on a jolla ja uo an käy ölii ymäkehi äjien yöhön selkey ä. O gani- saa io asois en komponen ien almiiksi ajoi e un spesi ioinnin usko aan helpo a an kaikkien yö ä. Ja ko oimenpi ei ä aiheu a a ensimmäisen e aluoinnin pe us eella muu ama seika . Tyyliop- paan olisi hy ä olla näky illä myös ki jau uma omille käy äjille. Ensimmäisessä yylioppaan e siossa esi ellään myös joi akin ei-spesi ejä komponen eja, ku en Inpu , joiden a peelli- suus jää ähäiseksi. Jo a kokonaisuus olisi ii is, nämä on syy ä pois aa. Lisäksi ensimmäisen e sion lomakekomponen i, aikkakin oimii yksinke aisen lomakkeen luon iin, aa ii muok- kaus a. Käy ökelpoisempi olisi skeemapohjainen lomakegene aa o i, jossa myös sa akkeiden 78 käy äminen olisi mahdollis a. A ioija maini see lyhyes i myös es aukses a, jossa yylioppaan esime kkisi un mallia as aan oi aisiin es a a komponen eissa eh yjä muu oksia. Kyseessä olisi näin ollen isuaalinen eg essio es aus snapsho - ekniikalla. Vä ipale iin ja sen käy - ööno on aiku uksiin on pala a a seu aa issa aiheissa. Aja uksena on, e ä Sie a- eemassa mää i ellään so elluksen pe us ä i käy äen yylioppaan jao elua (p ima y, seconda y jne), jo ka oidaan yliki joi aa asiakaskoh aises i eema iedos ossa (cus omTheme). Näiden ä ipale ien käy ööno o aa ii me ki ä iä muu oksia komponen iki jas on nykyisessä a- ken eessa ja he ä ää keskus elua uuden, o ganisaa ion b ändiin pe us u an demoso elluksen luomises a. Ku iossa 36 on esi e y e aluoinnin ulokse oiminnallisuuden osal a, sekä aadi - a a ja ko oimenpi ee ja o eu us. Ku io 36. E aluoin i I, oiminnallisuus: huomio ja ja ko oimenpi ee Käy e ä yydes ä p ojek in ässä aiheessa maini aan ain, e ä yyliopas on selkeä käy ää. Ohjaaja maini see dokumen aa ion löyde ä yyden kui enkin kä si än yyliohjeen ollessa pel- käs ään Gi hub- eposi o iossa. Julkaisua ulko e kkoon oidaan ha ki a, jolloin ulee a ioida uudes aan myös Websc ape -komponen in käy ö ja alkupe äise ekijänoikeude . Tyyliop- paan komponen ien esi elyis ä puu u a koodiesime ki . Nämä o a edelly yksenä yyliop- paan käy e ä yydelle. Ku iossa 37 on esi e y e aluoinnin ulokse käy e ä yyden osal a, se- kä aadi a a ja ko oimenpi ee ja o eu us. 79 Ku io 37. E aluoin i I, käy e ä yys: huomio ja ja ko oimenpi ee Tehokkuudes a a ioija maini see, e ä kokonaisuus on nopeas i sela a issa ja hae a a ie o on helppo löy ää. Si ujen jakaminen kehi äjien älillä on mahdollis a, koska so elluksen ei i kulke a osoi e i illä. Lisäksi a ioija esi ää oi een yylioppaan sisällön indeksoinnis a ja haku oiminnos a, kun ominaisuuksien mää ä kas aa. Ku iossa 38 on esi e y e aluoinnin ulokse ehokkuuden osal a, sekä aadi a a ja ko oimenpi ee ja o eu us. Ku io 38. E aluoin i I, ehokkuus: huomio ja ja ko oimenpi ee Tyylioppaan ylläpidon a ioija uskoo ole an helppoa, koska kaikki sisäl ö löy yy saman e- posi o ion sisäl ä. Hän huomioi kui enkin ylläpidon ole an manuaalis a, johon helpo us a oisi uoda esime kiksi au omaa inen koodin gene oin i lähdekoodin pe us eella. Kun yylioppaa- seen lisä ään komponen eja, niiden esi ys ja dokumen aa io on luo a a manuaalises i. E a- luoinnin uloksia läpikäydessä keskus ellaan sii ä, mikä ämän ominaisuuden me ki ys on. Vaikkei yyliopas a oi aisi pi ää ajan asalla päi i äin, ajoi e aisi säännöllises i yylikompo- nen ien ja oppaan a kis us, jolloin ke alla päi i e äisiin as aamaan oisiaan. Samalla eh- äisiin muu oksia jo olemassa ole iin yylioppaan si uihin, mikäli komponen eihin on eh y muu oksia. Ku iossa 39 on esi e y e aluoinnin ulokse ylläpidon osal a, sekä aadi a a ja - ko oimenpi ee ja o eu us. 80 Ku io 39. E aluoin i I, ylläpi o: huomio ja ja ko oimenpi ee 5.1.2 Lähdekoodin e aluoin i Myös yylioppaan komponen ien lähdekoodi a ioidaan. Osa a ioiduis a iedos ois a sisäl ää yylioppaan esi ykseen lii y ää koodia, mu a al aosa a iois a kohdis uu kui enkin o ganisaa- iospesi eihin komponen eihin. Templaa ien osal a a ioija ehdo aa ole us älis yksen mää i - elemis ä, jolloin komponen ia ku su aessa ei äl ämä ä a i sisi an aa älis ysa oa. He ä - ees ä a ioija maini see, e ei s a us-pa ame ia a i sisi e ikseen mää i ellä, koska se kuuluu Chak a UI:n pa ame eihin. Näin ollen spesi i s a us-pa ame i ei anna mi ään lisäa oa. Lisäk- si a ioija ehdo aa yypin Requi eA Leas One käy ämis ä o sikon ja ku auksen osal a. On kuulemma a allis a, e ä joissain yh eyksissä käy e ään ain ois a, jolloin joko o sikko ai ku aus anne aan. B andTablen alue-ominaisuu een on jääny yypiksi any, mikä saa aa aiheu aa ongelmia. Tämä on syy ä ko ja a as aamaan salli uja yyppejä. Lomakekomponen- is a a ioija keho aa ekemään skeemapohjaisen e sion, ku en oiminnallisuuden a ioinnissa maini aan. Taulukon osal a a ain ie ona käy e y indeksi saa aa myös aiheu aa ongelmia. A - ioija ehdo aa ken än nimen käy ämis ä a aimena indeksin sijaan. Tyylioppaan esi yssi uilla on jonkin e an ois oa, jos a on py i ä ä e oon. Samoin kehi ys aiheessa asenne u iippu- uude , jo ka ei ä ässä e siossa ole enää käy össä, on syy ä pois aa. Esi yksessä ole ien esi- me kki aulukoiden es ida a olisi hy ä muun aa JSON-muo oon ja sii ää omaan kansioonsa. Näin samaa da aa oi aisiin käy ää myös so ellus a es a essa. Tyyli iedos on osal a oi o aan jae ujen ominaisuuksien mää i elemis ä ainoas aan yhdessä paikassa, jolloin niiden ylläpi o helpo uu. 5.2 Tyyliopas, oisen e aluoinnin ulokse Toinen e aluoin i on luonnollises i ensimmäis ä ke yempi, koska a ioidaan pääasiassa en- simmäisen e aluoinnin pe us eella eh yjä muu oksia. Laa u aa imus en osal a me ki ä impiä muu oksia o a seu aa a : 81 jo ka oimi a pai si i sekseen myös hy änä lisänä snapsho - es aukselle. Tekoälyyn pe us u a es aus ähen ää me ki ä äs i manuaalis a yö ä, jo a snapsho - es eihin ainakin aluksi lii yy. Kun opi aan ymmä ämään syy pikseli e ailun aiheu amille ää ille i heille ja mää i ele- mään oikeanlaise ole anssi , oi snapsho - es aukses akin olla al a a hyö y. Tämän u kimuksen yh enä haas eena oli komponen iki jas on laajuus ja monimu kaise kes- kenään uo o aiku a a komponen i . Tu kimussuunni elmas a joudu iin ämän uoksi pai- koi ellen poikkeamaan. Haas eena oli myös ja ku as i muu u a ympä is ö ki jas on ollessa käy össä ja kehi yessä koko ajan. Pelkäs ään nyky ilan ka oi uksen ja ki jas on ekons uk ion älillä oli uusia komponen eja ilmes yny unsaas i. Tyylien osal a pohdin aa aiheu i se osiasia, e ä Playg ound-ympä is ö on ain kehi äjille a - koi e u yökalu. Va sinaise asiakas o eu ukse o a lähes poikkeukse a ää älöi yjä asiakkaan oman yylin mukaan. Tämä aiheu i hämmennys ä e enkin ä imaailman suunni elussa. Tä - keämpää oli luoda ä ikoodi us ja ekninen o eu us sille, e ä ää älöin i olisi ja kossa helppoa ja ehokas a. Voisi kui enkin olla jä ke ää poh ia Playg ound:in hyödyn ämis ä demoympä is- önä myyn i ilan eissa. Tällöin kohdeo ganisaa ion omaan b ändiin pe us u alla yh enäisellä ulkoasulla oisi olla kaupallis a me ki ys ä. Tyylioppaan käy ööno o aa ii ki jas on aken een me ki ä ää uudelleenjä jes elyä ja yhden uni e saalin mallin yh eenso i aminen kaikkiin olemassa ole iin käy ö a koi uksiin un uu lähes mahdo omal a. Työ kanna aakin aloi aa uusis a komponen eis a ja pikkuhiljaa sii yä ekons uoimaan mui a komponen eja. Tässä u kimuksessa o eu e iin aihio, jo a seu aamalla a oi e ilaan on mahdollis a pääs ä. Pohdi a aa jäi siis paljonkin ja ja ko u kimuksellekin on sijaa. Komponen iki jas on ah a Chak a UI - iippu uus on olemassa. Vaiku aako he ki si en julkais u uusi e sio 3.0 ki jas on komponen ien ai yylioppaan esi yksen oimin aan? Tu kimuksen alussa puhu iin mahdol- lisuudes a aja a ämä iippu uus o ganisaa iospesi eihin komponen eihin, jolloin a i aessa iippu uus olisi helppo pu kaa. Tämä kui enkin aa isi huoma a as i laajemman mää än spesi- ejä komponen eja, joiden aken amiseen ei ämän u kimuksen pui eissa ollu mahdollisuu a. Tyylin al ojan osal a olisi hyödyllis ä u kia ekoälypohjaisia a kaisuja a kemmin. Löy yisi- kö siel ä malli, joka suoda aisi ii ä än mää än ää iä i hei ä ja oimisi ehokkaas i CI/CD- pu kessa? Tu kimuksessa esi ellyn mallin osal a huol a aiheu aa es ien luo e a uus ja a i - a an manuaalisen yön mää ä. Työkalu an aa kui enkin kohdeo ganisaa iolle mallin, jo a edel- 88 leen kehi ämällä oidaan pääs ä halu uun loppu ulokseen. Tu kimus lisäsi unsaas i uu a in o maa io a sii ä, kuinka olemassa ole ia epäkoh ia ko jaa- malla pääs ään a oi e ilaan. Se a joaa hy än pohjan käy ölii ymäkehi yksen yksinke ais a- miselle ja ehos amiselle koh i yh enäis ä, laadukas a ja ha monis a uo epe he ä. 89 Läh ee Adebayo, Segun. 2024. “Chak a UI Documen a ion”. Vii a u 19. ma askuu a 2024. h ps: //chak a-ui.com. Appli ools. 2024. “Appli ools Documen a ion”. Vii a u 16. ma askuu a 2024. h ps://appli oo ls.com/. Ba a , Michael. 2024. “Wha is Visual Tes ing?” Vii a u 16. helmikuu a 2024. h ps://appli o ols.com/blog/ isual- es ing/. Coleman, Tom. 2017. “Componen -D i en De elopmen : Build UIs in a be e way: om he componen up”. Vii a u 12. helmikuu a 2024. h ps://medium.com/@ measday/componen - d i en-de elopmen -ce1109d56c8e. Componen D i en. n.d. “Componen D i en Use In e aces”. Vii a u 12. helmikuu a 2024. h ps://www.componen d i en.o g. Cyp ess.io. 2024. “Cyp ess Documen a ion”. Vii a u 15. ma askuu a 2024. h ps://docs.cyp e ss.io. Delong, Sa a. 2020. “Why You Need o C ea e a Da a Visualiza ion S yle Guide o Tell G ea S o ies (Pa 1)”. Vii a u 14. helmikuu a 2024. h ps://depic da as udio.com/why-you-need- o-c ea e-a-da a- isualiza ion-s yle-guide- o- ell-g ea -s o ies/. Fea he , Ian. 2014. “A Main ainable S yle Guide”. Vii a u 15. helmikuu a 2024. h ps://engine e ing.lonelyplane .com/2014/05/18/a-main ainable-s yleguide.h ml. Fessenden, The ese. 2021. “Design Sys ems 101”. Vii a u 13. helmikuu a 2024. h ps://www. nng oup.com/a icles/design-sys ems-101/. Founda ion, G aphQL. 2024. “G aphQL Documen a ion”. Vii a u 19. ma askuu a 2024. h ps: //g aphql.o g. F iedman, Vi aly. 2016. “Taking The Pa e n Lib a y To The Nex Le el”. Vii a u 13. helmi- kuu a 2024. h ps://www.smashingmagazine.com/2016/10/ aking-pa e n-lib a ies-nex -le el/. F os , B ad. 2016. A omic Design. Pi sbu gh, PA. Vii a u 14. helmikuu a 2024. h ps://a omic design.b ad os .com/ able-o -con en s/. 90 HEAVY.AI. 2024. “G aphical Use In e ace (GUI)”. Vii a u 18. ma askuu a 2024. h ps: //www.hea y.ai/ echnical-glossa y/g aphical-use -in e ace. He ne , Alan R. 2007. “A Th ee Cycle View o Design Science Resea ch”. Scandina ian Jou - nal o In o ma ion Sys ems 19 (2): 87–92. Vii a u 7. helmikuu a 2024. h p://aisel.aisne .o g/ sjis/ ol19/iss2/4. He ne , Alan R., Sal a o e T. Ma ch, Jinsoo Pa k ja Sudha Ram. 2004. “Design Science in In o ma ion Sys ems Resea ch”. MIS Qua e ly 28 (1): 75–105. h ps://doi.o g/10.2307/ 25148625. HubSpo . 2024. “Wha is a GUI?” Vii a u 18. ma askuu a 2024. h ps://blog.hubspo .com/ websi e/wha -is-gui. Kalia, Anshul ja Sumesh Sood. 2017. “Conce ns in Main aining Reusable So wa e Compo- nen s and he Possible Solu ions”. Indian Jou nal o Science and Technology 10 (23): 1–10. h ps://doi.o g/10.17485/ijs /2017/ 10i23/108703. Kholma o a, Alla. 2017. Design Sys ems. F eibu g, Ge many: Smashing Media AG. Vii a u 15. helmikuu a 2024. h ps://www.smashingmagazine.com/p o ide/eBooks/design-sys ems. pd . Lynch, Pa ick J. ja Sa ah Ho on. 2016. Web S yle Guide, 4 h Edi ion: Founda ions o Use Expe ience Design. 4. painos. London, UK: Yale Uni e si y P ess. Ma ch, Sal a o e T. ja Ge ald F. Smi h. 1995. “Design and na u al science esea ch on in o - ma ion echnology”. Decision Suppo Sys ems 15 (4): 251–266. h ps://doi.o g/10.1016/0167- 9236(94)00041-2. Me a. 2024. “Reac Documen a ion”. Vii a u 19. ma askuu a 2024. h ps:/ eac .de . Mic oso . 2024a. “Playw igh Documen a ion”. Vii a u 15. ma askuu a 2024. h ps://playw igh .de . . 2024b. “TypeSc ip Documen a ion”. Vii a u 19. ma askuu a 2024. h ps://www. ypesc ip lang.o g. Ne ille, Ka . 2010. “How To Design S yle Guides Fo B ands And Websi es”. Vii a u 14. hel- mikuu a 2024. h ps://www.smashingmagazine.com/2010/07/designing-s yle-guidelines- o - b ands-and-websi es/. 91 OpenJSFounda ion. 2024. “Node.js Documen a ion”. Vii a u 19. ma askuu a 2024. h ps:// nodejs.o g. Osmani, Addy. n.d. “Componen s Should Be Focused, Independen , Reusable, Small and Tes- able (FIRST)”. Vii a u 12. helmikuu a 2024. h ps://addyosmani.com/ i s /. Pandey, Sakshi. 2022. “How AI in Visual Tes ing is ans o ming he Tes ing Landscape”. Vii a u 16. helmikuu a 2024. h ps://www.b owse s ack.com/guide/how-ai-in- isual- es ing- is-e ol ing. Pe e s, Ken, Tuu e Tuunanen, Ma cus A. Ro henbe ge ja Sami Cha e jee. 2007. “A Design Science Resea ch Me hodology o In o ma ion Sys ems Resea ch”. Jou nal o Managemen In o ma ion Sys ems 24 (3): 45–77. h ps://doi.o g/10.2753/MIS0742-1222240302. Qu eshi, M.R.J. ja S.A. Hussain. 2008. “A eusable so wa e componen -based de elopmen p ocess model”. Ad ances in Enginee ing So wa e 39 (2): 88–94. Vii a u 12. helmikuu a 2024. h ps://www.sciencedi ec .com/science/a icle/abs/pii/S0965997807000294. Sa ing, Jona han. 2019. “A Guide o Componen D i en De elopmen (CDD): Le componen s d i e he de elopmen o you applica ions.” Vii a u 12. helmikuu a 2024. h ps://i nex .io/a- guide- o-componen -d i en-de elopmen -cdd-1516 65d8b55. So wa e Tes ing Help. 2023. “Guide To Visual Reg ession Tes ing Wi h Visual Tes ing Tools”. Vii a u 15. helmikuu a 2024. h ps://www.so wa e es inghelp.com/ isual- alida ion- es ing/. S o ybook. 2024. “S o ybook Documen a ion”. Vii a u 19. ma askuu a 2024. h ps://s o yboo k.js.o g. UPXin. 2023. “Wha is a Componen Lib a y, and Why Should You Use One o UI De elop- men ?” Vii a u 13. helmikuu a 2024. h ps://www.uxpin.com/s udio/blog/ui-componen - lib a y/. Vale, Tassio, I ica C nko ic, Edua do San ana de Almeida, Paulo Anselmo da Mo a Sil ei a Ne o, Ygua a ã Ce quei a Ca alcan i ja Sil io Rome o de Lemos Mei a. 2016. “Twen y-eigh yea s o componen -based so wa e enginee ing”. Jou nal o Sys ems and So wa e 111:128– 148. h ps://doi.o g/h ps://doi.o g/10.1016/j.jss.2015.09.019. 92 Volk, To s en. 2021. “Sep embe 2021 EMA Resea ch Repo : Dis up ing he Economics o So wa e Tes ing Th ough AI”. Vii a u 15. helmikuu a 2024. h ps://ewig5q 9cgn.exac dn. com/wp-con en /uploads/2021/09/EMA-Appli ools-Dis up ingTes ingEconomics-092121. pd . Xu, Da id. 2022. “E e y hing you need o know abou Visual Reg ession Tes ing in 2022”. Vii a u 15. helmikuu a 2024. h ps://da id-x.medium.com/ he-s a e-o - isual- eg ession- es ing-in-2022-5de10 e8 6 . You, E an. 2024a. “Vi e Documen a ion”. Vii a u 19. ma askuu a 2024. h ps:// i ejs.de . . 2024b. “Vi es Documen a ion”. Vii a u 15. ma askuu a 2024. h ps:// i es .de . 93