/[cvs]/Kamel/HCI_text.tex
ViewVC logotype

Annotation of /Kamel/HCI_text.tex

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.18 - (hide annotations)
Thu Apr 10 08:24:19 2003 UTC (21 years, 1 month ago) by jontas
Branch: MAIN
CVS Tags: HEAD
Changes since 1.17: +5 -2 lines
File MIME type: application/x-tex
*** empty log message ***

1 jontas 1.1 \documentclass[12pt, a4paper]{article}
2     \usepackage[latin1]{inputenc}
3     \usepackage{setspace}
4    
5     \begin{document}
6     \thispagestyle{empty}
7     \begin{centering}
8     \huge{HCI Text}\\
9     \huge{DVC002: Människa-datorinteraktion (MDI), 5p}\\
10 jontas 1.16 \huge{Läsåret 2003-2004, läsperiod 1}\\\vspace{.3in}
11 jontas 1.1 \large{av}\\
12     \LARGE{Jonas Petersson \& Mathias Börjesson}\\\vspace{.4in}
13     \large{Institutionen för programvaruteknik och datavetenskap\\
14 eax 1.6 Blekinge Tekniska Högskola\\\vspace{.03in}}
15 jontas 1.16 \texttt{e-post:}\\
16 eax 1.6 \emph{jopd01@student.bth.se}\\
17 jontas 1.1 \emph{tb00mbo@student.bth.se}\\
18     \end{centering}
19     \newpage
20     \tableofcontents
21     \newpage
22     \onehalfspacing
23     \section{Kurserfarenheter} %Är detta ett bra namn?
24    
25 jontas 1.5 Detta kapitel kommer att ta delar av det vi har gått igenom
26 jontas 1.1 i kursen, samt försöka belysa vissa av dem.
27    
28     \subsection{Användandet av en minsta gemensamma
29     utvecklingsmiljö}
30    
31     Ett syfte med att introducera en minsta gemensamma
32     utvecklingsmiljö är att underlätta processen att
33     producera programvara, även om man inte sitter vid sin
34     egen dator, utan hos någon annan.
35    
36     Nyttan med en minsta gemensamma utvecklingsmiljö i en miljö med flera utvecklare är att
37     det hämmar användandet av egna utvecklingsverktyg,
38     underlättar användandet av en annan dator, underlättar utbildning, samt
39     underlättar administrationen av systemet då alla datorer
40     har samma programvara installerad.
41     Dock så är ju en nackdel med att nyttja en gemensam
42     utvecklingsmiljö att då det kommer nya människor som
43     inte är vana vid denna miljö så måste de utbildas, men
44     genom att tänka sig för då man skapar en gemensam
45     utvecklingsmiljö så kan utbildningstiden minskas till
46     ett minimum, eller till och med undvikas.
47    
48     Det som skall eftersträvas i en gemensam
49     utvecklingsmiljö är dels att få den lättförståelig
50     (eller självförklarande), men att den för detta inte på
51     något sätt skall vara på en nivå för nybörjare, utan ha
52     all den styrka som utvecklarna behöver då de utvecklar
53     programvara. Kan den gemensamma utvecklingsmiljön
54     introduceras som något som kan underlätta arbetet så
55     kommer användarna att med glädje byta, även om det kan
56     innebära vissa initiala problem.
57    
58 eax 1.15 \subsection[Script vid mjukvaruproduktion]{Användandet av script vid mjukvaruproduktion}
59 jontas 1.1
60     Detta kan lätt tyckas att detta inte har med MDI att
61     göra, men vi kommer att förklara detta lite senare.
62     Tanken med att använda diverse script är främst att
63 jontas 1.16 kristallisera krångliga kommandon (eller om man vill långa)
64 jontas 1.1 från användaren, och istället bara använda ett kort
65     kommando. Detta innebär att det blir enklare att hålla
66     ordning på det man utvecklar då det i scriptet går
67     snabbt att skriva ner de kommandon som ser till att
68 jontas 1.5 källfilerna ligger i en katalog, de kompilerade
69 eax 1.17 programmen i en, och hjälpfilerna i en tredje (om
70 eax 1.15 programmeringsspråket stödjer detta (t.ex. Java API).
71 jontas 1.1
72 jontas 1.16
73 jontas 1.1 Men hur är detta något som är intressant ur en MDI
74     synpunkt?\\
75     Jo, tanken var ju att ta alla dom krångliga kommandona,
76     och helt enkelt byta ut mot ett kort script. Krasst sett
77     är detta grunden för MDI. Att ta något krångligt
78 eax 1.17 kommando, och byta ut mot ett lättare. Eller kanske att på
79     annat sätt underlätta användandet av en produkt vilket är
80     det man bör sikta mot.
81 jontas 1.1
82 jontas 1.16 \subsection{GUI designmönster}
83 jontas 1.1
84     GUI står för Graphical User Interface, eller grafiskt
85 jontas 1.16 användargränsnitt på svenska. Ett GUI kan se ut på
86 jontas 1.1 ett (nästan) oändligt antal sätt, men alla dessa följer
87     ett eller flera mönster för hur man använder dessa. Då
88     dessa mönster upprepas så är det viktigt för oss som
89     utvecklare att vi känner till de mönster som finns, vad
90     de går ut på, samt vad som är viktigt att tänka på. En
91     anledning till att detta var viktigt att lära oss är
92     genom att vi lär oss detta kan vi spara tid när vi skall
93     utveckla en programvara som skall interagera med en
94     människa (vilket det stora flertalet program gör), genom
95     att vi inte ska behöva uppfinna hjulet igen.
96    
97     Vi hade en laboration där vi skulle identifiera design
98     mönster i en färdig programvara från SUN Microsystems,
99     och efter detta även i en programvara vi själva har
100     gjort. Detta innebar att vi var tvungna att lära oss
101     känna igen de olika mönster som är vanligt förekommande,
102     och på detta sättet så kom vi även att fundera på när de
103     olika mönstren är praktiska, och när dom inte är det. Vi
104     har genom denna laboration kommit fram till att design
105     mönster är något viktigt i utveckling av programvara,
106     och är något vi kommer att ta med oss till framtiden.
107    
108     \subsection{Prototyper och Mock-ups}
109    
110 jontas 1.14 Det finns flera olika sätt att demonstrera en idé, men
111     den bästa brukar vara att kunna visa upp något. Det kan
112     vara bra att kunna berätta om idéen man har, men om man
113 eax 1.17 kan ge kunden något han eller hon kan se, ta på, och till viss del
114 jontas 1.14 kunna interagera med så är det mycket enklare, dels att
115     sälja idén, dels att upptäcka fel och brister i den.
116    
117     Nu vet ju vi att vi bara har använt mock-ups i denna
118     kursen, men det vore synd att inte ta tillfället i akt
119     och prata lite om prototyper också.
120    
121     \subsubsection{Mock-up}
122    
123     En mock-up är en form av prototyp. Den görs i ett
124     passande material, och beroende på vilken information
125     man har om den färdiga produkten så görs den med den
126     detaljnivå som är passande. Denna mock-up används sedan
127     för att testa om konceptet man har håller, och hur det
128     skall implementeras. En mock-up behöver inte vara för en
129     programvara, utan kan lika gärna vara för en fysisk
130     produkt, men i kursen har vi inriktat oss på programvara
131     då detta är det intressanta för oss. Då man skapat en
132     mock-up så tar man denna, och testar på en eller flera
133     tilltänkta användare, och lyssnar på deras åsikter om
134     den. När man har kommit förbi detta stadiet så kan man
135 jontas 1.16 bygga en lite mera avancerad prototyp för att vidareutveckla
136     produkten. En mock-up är vanligtvis (eller
137 jontas 1.14 i alla fall dom vi har gjort) ``dynamiskt statiska''
138     vilket kan låta som en motsägelse, men vad vi menar med
139     det är att den görs dynamisk är att det går att byta
140     detaljer i mock-upen för att symbolisera interaktion. En
141     annan fördel med en mock-up framför en fungerade
142     prototyp är att en mock-up är gjord av ett billigt
143     material, och går snabbt att göra och göra om då man inser att
144     lösningen man har inte håller, utan behöver göras om för
145 eax 1.17 att passa användaren och dess behov.
146 jontas 1.14
147 jontas 1.16 \subsubsection{Lågnivåprototyper}
148 jontas 1.14
149 jontas 1.16 En lågnivåprototyp är en enkel prototyp, som snarare
150 eax 1.17 syftar till att visa upp den grundläggande idéen. Den kan
151 jontas 1.16 vara en mock-up, eller något annat. En lågnivåprototyp
152     är något som går relativt snabbt att slänga
153 jontas 1.14 ihop, och brukar vanligtvis vara ganska så billig. Den
154     kan vara i ett material som är väldigt långt från den
155     färdiga produkten (en mock-up på en kartongbit är ju
156     väldigt långt från ett färdigt program på datorn, och
157     vi är ganska säkra på att man kan komma ännu längre om
158     man bara vill).
159    
160 jontas 1.16 Lågnivåprototypen använder man för att demonstrera
161 jontas 1.14 idéer, koncept och dyl. Den kan inte till fullo
162     användas för att fånga alla krav, men i samverkan med
163     andra metoder (som t.ex. intervjuer, användningsfall
164     osv) kan man komma nära nog i många fall.
165    
166 jontas 1.16 \subsubsection{Högnivåprototyper}
167 jontas 1.14
168 jontas 1.16 En högnivåprototyp är en ''bättre`` prototyp, oftast
169     så ligger den närmare den färdiga produkten än
170     lågnivåprototypen till utseende, och material (där det
171     finns). Det som främst skiljer en högnivåprototyp
172 jontas 1.14 från en lågnivå är att högnivån har funktionalitet
173     (verklig sådan, inte att man vänder blad).
174    
175     \subsubsection{Vilken väljer vi?}
176    
177 jontas 1.16 Marc Rettig (1994) anser att om man är tvungen att
178     välja så är det är bättre att välja
179     lågnivåprototyper framför högnivå, detta för att:
180 jontas 1.14
181     \begin{itemize}
182     \item Dom tar lång tid att göra
183     \item Kritiker och testar tenderar att kritisera
184     prototypen, och inte funktionaliteten i den.
185     \item Utvecklar drar sig för att göra om något dom
186     har lagt timmar (eller dagar) på att göra.
187     \item En mjukvaru prototyp kan sätta förväntningarna
188     för högt.
189     \item En enda bugg i prototypen kan sätta stop för
190     testningen av denna.
191     \end{itemize}
192    
193 jontas 1.16 Vi måste säga att vi håller med honom. En lågnivåprototyp
194     kan säga det mesta en högnivå kan, och det
195 jontas 1.14 den inte kan säga är det tveksamt om man kan få
196 jontas 1.16 tillbaka av den tid det tar att göra högnivåprototypen
197     (iallafall i de små projekt vi har jobbat
198 jontas 1.14 med hittills), det kan ju ändras om det är ett stort
199     projekt, men vi är inte helt säkra på det. En
200     prototyp skall endast ses som ett
201     utvecklingsverktyg, det är ju inget som utvecklar av
202     sig självt, på sin höjd kan det ju driva
203     utvecklingen framåt.
204    
205 jontas 1.16 Vi anser att de projekt vi har jobbat med har varit
206     så pass små att en högnivåprototyp inte skulle ha
207     hjälp oss komma framåt, utan snarare tvärt om, men
208     om man jobbar med större projekt så skall man nog
209     inte underskatta värdet av en högnivåprototyp, dock
210     så tror vi att det är viktigt att inte överskatta
211     den heller.
212    
213 jontas 1.14 Ett undantag bör dock göras. Om man kan utnyttja
214     prototypen, eller en ansenlig del av denna senare.
215     Om man t.ex. gör en prototyp av ett GUI, med begränsad
216     (eller igen) funktionalitet så kan man ju använda
217     detta i den färdiga produkten, förutsatt att det
218     faller väl ut.
219    
220    
221    
222     \subsection{Erfarenhet}
223 jontas 1.1
224     Vi tror att vi kommer att använda någon form av
225 jontas 1.16 prototyper efter denna kursen då en lågnivåprototyp är ett snabbt
226 jontas 1.1 sätt att visa hur man menar att GUI't skall se ut, och
227     om man har ett förslag till ett GUI så är det enkelt att
228     hitta funktionalitet som man har missat, och det kan
229     även vara enklare att förklara vad man vill göra för en
230     kund som inte kunskaper inom programvaruutveckling vad
231 eax 1.17 det är som man skall göra, och vad han eller hon får och inte får.
232 jontas 1.14 Han kan även ta prototypen och visa för slutanvändarna,
233 jontas 1.1 och dessa kan också komma till tals om hur produkten
234     skall se ut, och dess funktionalitet.
235    
236 jontas 1.16 Man kan även se en möjlighet till att kunden kan komma
237 eax 1.17 med flera direkta förslag på förändingar/förbättringar,
238     eller till och med göra designen själv (eller delar av
239 jontas 1.16 den).
240    
241     Dessutom så innebär en prototyp av något slag att man
242     underlättar kommunikationen mellan utvecklaren och
243 eax 1.17 kunden, och eftersom kund och utvecklare ofta har olika
244     kunskaper/erfarenheter innebär detta att man minskar
245     risken för missförstånd, och kan rätta till eventuella
246     designmissar i ett tidigt stadium. Prototypen kan även till
247 jontas 1.16 viss del användas för att hitta saknad funktionalitet,
248 eax 1.17 dock så kan det vara svårare att hitta felaktig.
249 jontas 1.1
250 jontas 1.16 \section {Designmönster}
251 eax 1.17 När man designar GUI'n så är det nästan omöjligt att
252 jontas 1.16 inte använda något/några designmönster. De flesta sätt
253 jontas 1.1 att strukturera upp ett GUI följer de mönster som finns
254     definierade. Detta märkte vi av på första laborationen
255     när vi skulle identifiera mönster som vi hade använt i
256     ett program vi själva hade gjort långt innan vi hade
257     hört talas om MDI, och dess betydelse. En anledning till
258 eax 1.17 att man använder designmönster är att om flera program
259 jontas 1.1 ser ut likadant, och uppför sig likadant så kommer
260 eax 1.17 användaren att känna sig hemma i det, även om han eller hon aldrig
261 jontas 1.1 har sett programmet tidigare, eller ens ett program som
262     liknar detta (till funktionalitet sett).
263    
264 eax 1.10 \emph{``Ett väl-designat GUI låter användaren göra fel''}
265 jontas 1.18 (Grand, M. 1999)
266    
267 jontas 1.1 Detta är viktigt därför att om det inte går att göra fel,
268     eller viktigare att återhämta sig från ett fel utan en
269     förlust, då kommer användaren att ta det lugnt och
270     försiktigt, men trots detta kommer användaren att göra
271     många fel (eller snarare så är det så det upplevs då alla fel gör
272     skada). Men om GUI't låter användaren återhämta sig om han
273 eax 1.17 eller hon gör fel så kommer personen att jobba i ett bättre tempo, och
274 jontas 1.1 göra färre fel. Något som är väldigt viktigt om GUI't
275     tillåter att man gör fel så måste det varna om det finns
276     aktioner som man kan göra som det inte går att återhämta
277     sig ifrån.
278    
279     \subsection{Vikten av att känna igen sig i ett program}
280    
281     En viktig sak med att få användaren att känna igen sig
282 jontas 1.16 är att detta ger en ``säkerhetskänsla'' i programmet,
283 eax 1.17 användaren känner att han eller hon vet (i viss mån) hur man skall
284 jontas 1.1 bära sig åt för att göra olika saker. Nästan alla
285     program där man kan spara sitt arbete, öppna en fil med
286 eax 1.10 gammalt arbete osv har detta i en meny märk ``Arkiv'' på
287 jontas 1.1 svenska, kommandon som kopiera, klistra in, gör om osv.
288 eax 1.10 ligger under en meny ``redigera''. Detta gör att en
289 eax 1.17 användare kan känna igen sig även om han eller hon aldrig har
290 jontas 1.1 nyttjat programmet tidigare.
291    
292 jontas 1.16 \section{Interaktionsdesign}
293 jontas 1.1
294 jontas 1.16 När man pratar om interaktionsdesign så menar man att
295 eax 1.17 man sätter användaren och dess behov i fokus, och att man
296 jontas 1.1 inte så mycket bryr sig om tekniken bakom.
297    
298     Detta innebär dock att för att kunna designa något så
299 eax 1.11 måste vi känna till målgruppen och dess behov. Att jobba med
300 jontas 1.1 interaktions design är väldigt snarlikt till att jobba med
301     en användarcentrerad lösning. Det går antingen att jobba
302     med interaktions design om man har en färdig målgrupp som
303     har ett behov av programvaran, eller att man tänker sig en
304     målgrupp, och skapar produkten därefter.
305    
306     Om man har en färdig målgrupp som har behov av en produkt
307 eax 1.10 så är det ``enkelt'' att skapa denna då man hela tiden kan
308 jontas 1.1 rådfråga målgruppen, skapa mock-uper, prototyper osv, och
309 eax 1.11 få direkt feedback på det man har gjort. Det finns undantag
310     då man inte kan skapa mock-uper och det är när själva slut
311     produkten är hemligstämplad och det finns andra aktörer på
312     marknaden som jobbar med samma område. Att då låta vanliga
313     användare komma i kontakt med sin design innebär att hemlig
314 jontas 1.16 information kan spridas till konkurrenterna om de nu råkar
315 eax 1.17 få tag på samma testpersoner, och fråga ut dessa.
316 jontas 1.1
317 eax 1.17 En annan sak som är viktig, mycket viktig med Interaktionsdesign
318     är att den sker iterativt. Detta för att om det
319 jontas 1.16 inte sker iterativt så kan man inte dra maximalt värde av
320 eax 1.17 den. Det finns ju en risk att om man gör en ändring
321     som skall lösa ett problem, introducerar man två nya, och om
322 jontas 1.16 processen inte sker iterativt så finns det ingen möjlighet
323 eax 1.17 att finna detta förrän det kanske är försent, och då kan det
324     kosta väldigt mycket mer att åtgärda.
325 jontas 1.1
326 jontas 1.2 \section{Konceptuella modeller}
327 jontas 1.1
328 jontas 1.16 En konceptuell modell är en beskrivning av systemet, i
329     form av tankar och idéer om hur systemet skall verka och
330     se ut, och att det kan förstås av användaren.
331    
332 eax 1.10 \emph{``Det viktigaste är att designa användarens
333 jontas 1.2 konceptuella modell. Allt annat skall ses som
334     underordnat för att göra modellen klar, tydlig och
335     konkret. Detta är nästan tvärt emot hur den mesta
336 jontas 1.18 mjukvaran utvecklas.''}(Liddle, David. 1996)
337    
338    
339 jontas 1.2 Preece, Rogers and Sharp 2002 definierar en konceptuell
340 eax 1.10 modell som \emph{``en beskrivning av det föreslagna
341 jontas 1.2 systemet i termer av integrerade idéer och koncept om
342     vad det skall göra, bete sig samt se ut som, som skall
343 eax 1.15 förstås av användaren på rätt sätt''}
344 jontas 1.1
345 jontas 1.2 När man skapar en konceptuell modell så är det viktigt
346     att man funderar över hur den slutliga produkten skall
347     se ut, baserat på användarnas behov och krav. För att
348     försäkra sig om att användaren kommer att förstå
349     modellen så som den är tänkt är det viktigt att
350     genomföra noggranna och iterativa tester.
351 jontas 1.1
352 jontas 1.2 En viktig del av den konceptuella modellen är att
353 eax 1.17 besluta vad användaren skall göra när han/hon använder
354 jontas 1.16 produkten. Detta kan även kallas interaktionssätt
355 jontas 1.2 dvs hur en användare skall få utföra jobbet. När man
356 jontas 1.16 väljer interaktionssätt så får man även tänka över hur
357 jontas 1.2 man skall interagera med produkten (programvaran), skall
358     det vara med knappar, menyer, röstkommandon osv.
359    
360     När man har kommit så här långt med sin modell så är det
361     dags att börja fundera över hur GUI't skall se ut, olika
362     mönster, dess fördelar och nackdelar osv. Ju fler man
363     provar med, och funderar över, ju större är chansen att
364 jontas 1.5 produkten blir bra, och det är viktigt att man jobbar
365     iterativt, och att man använder lite olika metoder, och
366 jontas 1.2 data (gärna även utvecklare om det går) i dom olika
367     iterationerna för att täcka in så mycket som möjligt.
368    
369     Basen i att konstruera en bra konceptuell modell är
370     användaren, och det användaren skall kunna göra.
371    
372     Det finns ett otal olika konceptuella modeller, men vi
373     kommer bara att ta upp dom två vanligaste.
374    
375     \subsection{Konceptuella modeller baserat på
376     aktiviteter}
377    
378     De fyra vanligaste aktiviteterna användarna kommer att
379     göra (sett ur MDI synpunkt) är:
380     \begin{itemize}
381     \item Instruera
382     \item Konversera
383     \item Manipulera och navigera
384 eax 1.13 \item Utforska och ögna igenom %är surfa en bra översättning av browsing?
385 jontas 1.2 \end{itemize}
386     När man instruerar så förklarar man vad man vill att
387     systemet skall göra, man ger order. Detta kan ske t.ex.
388 jontas 1.16 med knappar, menyer osv.
389    
390 jontas 1.2 När man konverserar så gör man det som man gör med en
391     människa, antingen talar man till systemet med rösten,
392     eller så skriver man, men man håller sig till ett
393 jontas 1.16 normalt språk.
394    
395 jontas 1.2 När man manipulerar och navigerar så har man en
396     representation (av något) som man kan manipulera för att
397     uppnå önskat resultat. Det är en klar fördel om
398     representationen delar vissa egenskaper som användaren
399 jontas 1.16 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
400    
401 jontas 1.2 När man utforskar och surfar så är systemet utformat på
402     ett sådant vis att användaren kan få information utan
403     att behöva formulera frågor.
404    
405     Det är viktigt att förstå att man måste inte välja en av
406     dessa, utan man kan välja flera om man känner för det,
407     ofta kan man få ett resultat som blir närmare det
408     användaren efterfrågar om man väljer att blanda flera
409     aktiviteter.
410     \subsubsection{Instruera}
411    
412 jontas 1.12 Detta är en relativt enkel modell att bygga upp, även om
413     det kan vara krångligt att bygga upp den på ett bra
414     sätt. Antingen kan man använda knappar, menyer osv för
415     att ge instruktioner, eller så kan man använda
416     textsträngar. En klar nackdel med denna modellen är att
417     om kommandona är långa (eller krångliga) kommer
418     användaren att glömma bort det, och behöva extra hjälp
419 eax 1.17 när han/hon skall nyttja denna. Detta är ett vanligt
420 jontas 1.12 mönster, och återfinns i flera produkter på ett sätt
421     eller ett annat.
422    
423 eax 1.13 \subsubsection{Konversera}
424 jontas 1.12
425 eax 1.13 Denna metoden är vanligast om det handlar om någon form
426     av expert system, eller sökfunktioner. En klar fördel
427     med att nyttja detta mönster är att även en människa med
428     små kunskaper inom både data, och ämnet som experten kan
429     kan ställa frågor, och få hjälp. En nackdel med detta
430     mönstret är att om användaren ställer frågor på ett sätt
431     som man inte har tänkt sig, eller som inte finns med i
432     informations basen så kan svaren till användaren bli
433     helt uppåt väggarna om man inte är noga med hur man
434     behandlar indatan.
435    
436 jontas 1.14 \subsubsection{Manipulera och navigera}
437 eax 1.13
438     Visualisering måste innehålla mycket mer än att bara tillåta folk att ``se''
439     information. Dom måste också kunna manipulera och fokusera sig på vad som är relevant
440     och känna igen det för att skapa ny information. Funktioner som hypertext (t.ex. HTML)
441     har blivit en dominant metod för att länka samman dokument, vilket tillåter användaren
442     att navigera sig genom dokument på ett väldigt dynamiskt och personligt sätt.
443    
444     \subsubsection{Utforska och ögna igenom}
445    
446 eax 1.15 Hypertext är
447 jontas 1.14 en smidig metod för att söka efter information då man
448     kan länka vidare till djupare information då en
449     användare hittar något som intresserar. Nackdelen med
450     denna metod är att det kan bli grötigt, och att det
451     kan vara svårt att komma igång om man inte riktigt vet
452 eax 1.15 vad man söker efter. Det ger däremot användaren en möjlighet
453     att hoppa runt på ett snabbt sätt mellan dokumenten tills
454     han/hon hittar det som söktes.
455 eax 1.13
456     \subsection{Konceptuella modeller baserat på objekt}
457    
458     När man utgår från ett objekt så tar man ett objekt som
459     användaren kan relatera till, en bok, kaffe bryggare
460     eller dyl. Och sedan så gör man sin modell så att den
461     liknar det fysiska objektet. Det bör även gå att
462     manipulera objektet på ett vis som liknar det fysiska
463     objektet. Men man bör även tänka på vilka funktioner en
464     användare kan tänkas önska utöver dom som finns i det
465     verkliga objektet. Om man gör en ordebehandlare kan det
466     vara väldigt trevligt om denna klarar av att t.ex.
467     kompilera texten, rättstavning osv.
468 jontas 1.5
469 jontas 1.16 \subsection{Interface-metaforer}
470 jontas 1.5
471     Denna metod går ut på att man tar och försöker efterlikna
472     en välkänd metod, eller något som användaren känner igen
473     för att manipulera systemet. Det handlar oftast om att man
474     försöker abstrahera bort hur datorn gör, och istället
475 jontas 1.16 likna det vid något som man känner igen. Då boken är
476     väldigt kritisk mot denna metoden att utveckla
477 eax 1.17 produkter, så tänker vi inte gå in på denna så djupt. Däremot så
478 jontas 1.5 tror vi att det borde vara en bra metod att iallafall
479     fundera på, men man måste nog vara försiktig så att man
480 eax 1.10 inte gör ``hål'' i designen då man använder metaforer.
481 jontas 1.5
482     \section{Värdet av MDI}
483    
484 eax 1.9 Hela ämnet kanske kan verka abstrakt, och som något som bara tar
485     upp tid att hålla på med, men faktum är att den tid (och de pengar)
486 jontas 1.5 man lägger ner på MDI tjänar man igen ganska så fort.
487     Dessutom så är det med hjälp av en mock-up lätt att tidigt
488 jontas 1.16 fånga designfel, eller till och med logikfel, och ju
489 jontas 1.5 tidigare man kan hitta fel, desto billigare blir dom att
490     avhjälpa.
491    
492     En annan viktig sak att tänka på med MDI är att man kan på
493 jontas 1.16 ett sätt använda det som en reklamtavla för sitt företag,
494 jontas 1.5 om man gör en extraordinär lösning på något så kommer
495     detta att sprida sig, men det kommer ännu mer att sprida
496 eax 1.17 sig om man gör dåliga MDI-lösningar. Ett företag som
497 jontas 1.5 tidigare har köpt en produkt som kanske är bra, bara det
498     att de inte kan nyttja den kommer inte att köpa en produkt
499     till av samma företag som den förra.
500 jontas 1.1
501 eax 1.8 Även om själva funtionaliteten i applikationen (eller vad
502     det nu är som skapats) kanske är helt banbrytande och
503     ruskigt innovativ så kanske inte produkten kan säljas
504     ändå, på grund av att användarna helt enkelt inte klarar
505     av att använda den för att gränssnittet är alldeles för
506     klumpigt, långsamt och förvirrande. \emph{``Jag fattar inte varför man år 2000 ska behöva
507     vänta ibland en sekund innan telefonen fattar att man
508     vill hoppa ett steg till vänster i menyerna.''}(Mats
509     Ekstrand, 2000-09-20 i en recension av Ericssons R310)
510     Man brukar säga att utseendet inte spelar någon roll,
511     men när det gäller MDI så spelar det stor roll. Det första
512     man möts av när man får/köper en produkt är gränssnittet,
513     må det så vara en knappsats, touchscreen eller ett flashigt GUI.
514 jontas 1.1
515     \end{document}

root@recompile.se
ViewVC Help
Powered by ViewVC 1.1.26