--- Kamel/HCI_text.tex 2003/03/09 12:35:03 1.1 +++ Kamel/HCI_text.tex 2003/03/09 16:40:50 1.4 @@ -11,9 +11,9 @@ \large{av}\\ \LARGE{Jonas Petersson \& Mathias Börjesson}\\\vspace{.4in} \large{Institutionen för programvaruteknik och datavetenskap\\ - Blekinge Tekniska Högskola\\\vspace{.03in} + Blekinge Tekniska Högskola\\\vspace{.03in}} \texttt{e-mail:}\\ - \emph{jopd01@student.bth.se}}\\ + \emph{jopd01@student.bth.se}\\ \emph{tb00mbo@student.bth.se}\\ \end{centering} \newpage @@ -22,7 +22,7 @@ \onehalfspacing \section{Kurserfarenheter} %Är detta ett bra namn? - Detta kapitel kommer att ta delar av det vi har gått igenom + Detta kapitel kommer vi att ta upp delar av det vi har gått igenom i kursen, samt försöka belysa vissa av dem. \subsection{Användandet av en minsta gemensamma @@ -65,9 +65,9 @@ kommando. Detta innebär att det blir enklare att hålla ordning på det man utvecklar då det i scriptet går snabbt att skriva ner de kommandon som ser till att - källfilerna ligger i en katalog, de kompilerade + källfilerna ligger i en katalog, det kompilerade programmet i en, och hjälp filerna i en tredje (om - programmeringsspråket stödjer detta (t.ex. java API).\\ + programmeringsspråket stödjer detta (t.ex. Java API).\\ %Eller är det svaret vi skall skjuta in? Men hur är detta något som är intressant ur en MDI @@ -119,7 +119,9 @@ den. När man har kommit förbi detta stadiet så kan man bygga en lite mera avancerad prototyp för att vidare utveckla produkten. En mock-up är vanligtvis (eller - i alla fall dom vi har gjort) ''dynamiskt statiska`` + i alla fall dom vi har gjort) + %Uhm, va? + ''dynamiskt statiska`` vilket kan låta som en motsägelse, men vad vi menar med det är att den görs dynamisk är att det går att byta detaljer i mock-upen för att symbolisera interaktion. En @@ -156,7 +158,7 @@ har sett programmet tidigare, eller ens ett program som liknar detta (till funktionalitet sett). - \emph{Ett väl-designat GUI låter användaren göra fel} + \emph{``Ett väl-designat GUI låter användaren göra fel''} (Grand, M. 1999)\\ Detta är viktigt därför att om det inte går att göra fel, eller viktigare att återhämta sig från ett fel utan en @@ -173,13 +175,13 @@ \subsection{Vikten av att känna igen sig i ett program} En viktig sak med att få användaren att känna igen sig - är att detta ger en ''säkerhets känsla`` i programmet, + är att detta ger en ``säkerhets känsla'' i programmet, användaren känner att han vet (i viss mån) hur han skall bära sig åt för att göra olika saker. Nästan alla program där man kan spara sitt arbete, öppna en fil med - gammalt arbete osv har detta i en meny märk ''Arkiv`` på + gammalt arbete osv har detta i en meny märk ``Arkiv'' på svenska, kommandon som kopiera, klistra in, gör om osv. - ligger under en meny ''redigera´´. Detta gör att en + ligger under en meny ``redigera''. Detta gör att en användare kan känna igen sig även om han aldrig har nyttjat programmet tidigare. @@ -190,7 +192,7 @@ inte så mycket bryr sig om tekniken bakom. Detta innebär dock att för att kunna designa något så - måste vi känna målgruppen och dess behov. Att jobba med + måste vi känna till målgruppen och dess behov. Att jobba med interaktions design är väldigt snarlikt till att jobba med en användarcentrerad lösning. Det går antingen att jobba med interaktions design om man har en färdig målgrupp som @@ -198,42 +200,119 @@ målgrupp, och skapar produkten därefter. Om man har en färdig målgrupp som har behov av en produkt - så är det ''enkelt`` att skapa denna då man hela tiden kan + så är det ``enkelt'' att skapa denna då man hela tiden kan rådfråga målgruppen, skapa mock-uper, prototyper osv, och - få direkt feedback på det man har gjort. + få direkt feedback på det man har gjort. Det finns undantag + då man inte kan skapa mock-uper och det är när själva slut + produkten är hemligstämplad och det finns andra aktörer på + marknaden som jobbar med samma område. Att då låta vanliga + användare komma i kontakt med sin design innebär att hemlig + information kan spridas till konkurrenterna om de nu råkas + få tag på samma testpersoner. En annan sak som är viktig, mycket viktig med Interaktions design är att den sker iterativt. - \subsection{Konceptuella modeller} + \section{Konceptuella modeller} - \emph{Det viktigaste är att designa användarens - konceptuella modell. Allt annat skall ses som - underordnat för att göra modellen klar, tydlig och - konkret. Detta är nästan tvärt emot hur den mesta - mjukvaran utvecklas.}(Liddle, David. 1996)\\ - Preece, Rogers and Sharp 2002 definierar en konceptuell - modell som \emph{en beskrivning av det föreslagna - systemet i termer av integrerade idéer och koncept om - vad det skall göra, bete sig samt se ut som, som skall - förstås av användaren på rätt sätt}\\ - - När man skapar en konceptuell modell så är det viktigt - att man funderar över hur den slutliga produkten skall - se ut, baserat på användarnas behov och krav. För att - försäkra sig om att användaren kommer att förstå - modellen så som den är tänkt är det viktigt att + \emph{``Det viktigaste är att designa användarens + konceptuella modell. Allt annat skall ses som + underordnat för att göra modellen klar, tydlig och + konkret. Detta är nästan tvärt emot hur den mesta + mjukvaran utvecklas.''}(Liddle, David. 1996)\\ + Preece, Rogers and Sharp 2002 definierar en konceptuell + modell som \emph{``en beskrivning av det föreslagna + systemet i termer av integrerade idéer och koncept om + vad det skall göra, bete sig samt se ut som, som skall + förstås av användaren på rätt sätt''}\\ + + När man skapar en konceptuell modell så är det viktigt + att man funderar över hur den slutliga produkten skall + se ut, baserat på användarnas behov och krav. För att + försäkra sig om att användaren kommer att förstå + modellen så som den är tänkt är det viktigt att + genomföra noggranna och iterativa tester. + + En viktig del av den konceptuella modellen är att + besluta vad användaren skall göra när han använder + produkten. Detta kan även kallas interaktions sätt + dvs hur en användare skall få utföra jobbet. När man + väljer interaktions sätt så får man även tänka över hur + man skall interagera med produkten (programvaran), skall + det vara med knappar, menyer, röstkommandon osv. + + När man har kommit så här långt med sin modell så är det + dags att börja fundera över hur GUI't skall se ut, olika + mönster, dess fördelar och nackdelar osv. Ju fler man + provar med, och funderar över, ju större är chansen att + produkten blir bra. Det är viktigt att man jobbar + iterativt, att man använder lite olika metoder och + data (gärna även utvecklare om det går) i dom olika + iterationerna för att täcka in så mycket som möjligt. + + Basen i att konstruera en bra konceptuell modell är + användaren, och det användaren skall kunna göra. + + Det finns ett otal olika konceptuella modeller, men vi + kommer bara att ta upp dom två vanligaste. + + \subsection{Konceptuella modeller baserat på + aktiviteter} + + De fyra vanligaste aktiviteterna användarna kommer att + göra (sett ur MDI synpunkt) är: + \begin{itemize} + \item Instruera + \item Konversera + \item Manipulera och navigera + \item Utforska och surfa %är surfa en bra översättning av browsing? + \end{itemize} + När man instruerar så förklarar man vad man vill att + systemet skall göra, man ger order. Detta kan ske t.ex. + med knappar, menyer osv.\\ + När man konverserar så gör man det som man gör med en + människa, antingen talar man till systemet med rösten, + eller så skriver man, men man håller sig till ett + normalt språk.\\ + När man manipulerar och navigerar så har man en + representation (av något) som man kan manipulera för att + uppnå önskat resultat. Det är en klar fördel om + representationen delar vissa egenskaper som användaren + kan förstå av den fysiska världen.\\ %analoga lät fel, men fysiska låter heller inte riktigt bra... Jag höll på att skriv riktiga, men kom att tänka på vad det skulle innebära + När man utforskar och surfar så är systemet utformat på + ett sådant vis att användaren kan få information utan + att behöva formulera frågor. + + Det är viktigt att förstå att man måste inte välja en av + dessa, utan man kan välja flera om man känner för det, + ofta kan man få ett resultat som blir närmare det + användaren efterfrågar om man väljer att blanda flera + aktiviteter. + + \subsubsection{Instruera} + + a + + \subsubsection{Konversera} + + a + + \subsubsection{Manipulera och navigera} + + a - \subsubsection{Konceptuella modeller baserat på - aktiviteter} + \subsubsection{Utforska och surfa} - \subsubsection{Konceptuella modeller baserat på objekt} + a + + \subsection{Konceptuella modeller baserat på objekt} + + a \section{Värdet av MDI} - Det kanske kan verka abstrakt, och som något som bara tar - tid att hålla på med MDI, och allt man kan göra inom detta - (mock-ups osv), men faktum är att den tid (och de pengar) + Hela ämnet kanske kan verka abstrakt, och som något som bara tar + upp tid att hålla på med, men faktum är att den tid (och de pengar) man lägger ner på MDI tjänar man igen ganska så fort. Dessutom så är det med hjälp av en mock-up lätt att tidigt fånga design fel, eller till och med logik fel, och ju @@ -249,5 +328,18 @@ att de inte kan nyttja den kommer inte att köpa en produkt till av samma företag som den förra. + Även om själva funtionaliteten i applikationen (eller vad + det nu är som skapats) kanske är helt banbrytande och + ruskigt innovativ så kanske inte produkten kan säljas + ändå, på grund av att användarna helt enkelt inte klarar + av att använda den för att gränssnittet är alldeles för + klumpigt, långsamt och förvirrande. \emph{``Jag fattar inte varför man år 2000 ska behöva + vänta ibland en sekund innan telefonen fattar att man + vill hoppa ett steg till vänster i menyerna.''}(Mats + Ekstrand, 2000-09-20 i en recension av Ericssons R310) + Man brukar säga att utseendet inte spelar någon roll, + men när det gäller MDI så spelar det stor roll. Det första + man möts av när man får/köper en produkt är gränssnittet, + må det så vara en knappsats, touchscreen eller ett flashigt GUI. \end{document}