• No results found

Visualisering av Linjära Avbildningar i Linjär Algebra

N/A
N/A
Protected

Academic year: 2021

Share "Visualisering av Linjära Avbildningar i Linjär Algebra"

Copied!
58
0
0

Loading.... (view fulltext now)

Full text

(1)LiU-ITN-TEK-A--10/005--SE. Visualisering av Linjära Avbildningar i Linjär Algebra Edin Katardzic 2010-01-15. Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden. Institutionen för teknik och naturvetenskap Linköpings Universitet 601 74 Norrköping.

(2) LiU-ITN-TEK-A--10/005--SE. Visualisering av Linjära Avbildningar i Linjär Algebra Examensarbete utfört i medieteknik vid Tekniska Högskolan vid Linköpings universitet. Edin Katardzic Handledare George Baravdish Examinator George Baravdish Norrköping 2010-01-15.

(3) Upphovsrätt Detta dokument hålls tillgängligt på Internet – eller dess framtida ersättare – under en längre tid från publiceringsdatum under förutsättning att inga extraordinära omständigheter uppstår. Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner, skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för ickekommersiell forskning och för undervisning. Överföring av upphovsrätten vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av dokumentet kräver upphovsmannens medgivande. För att garantera äktheten, säkerheten och tillgängligheten finns det lösningar av teknisk och administrativ art. Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i den omfattning som god sed kräver vid användning av dokumentet på ovan beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan form eller i sådant sammanhang som är kränkande för upphovsmannens litterära eller konstnärliga anseende eller egenart. För ytterligare information om Linköping University Electronic Press se förlagets hemsida http://www.ep.liu.se/ Copyright The publishers will keep this document online on the Internet - or its possible replacement - for a considerable time from the date of publication barring exceptional circumstances. The online availability of the document implies a permanent permission for anyone to read, to download, to print out single copies for your own use and to use it unchanged for any non-commercial research and educational purpose. Subsequent transfers of copyright cannot revoke this permission. All other uses of the document are conditional on the consent of the copyright owner. The publisher has taken technical and administrative measures to assure authenticity, security and accessibility. According to intellectual property law the author has the right to be mentioned when his/her work is accessed as described above and to be protected against infringement. For additional information about the Linköping University Electronic Press and its procedures for publication and for assurance of document integrity, please refer to its WWW home page: http://www.ep.liu.se/. © Edin Katardzic.

(4) Abstract   This  master  thesis  has  been  done  at  Campus  Norrköping,  the  University  of  Linköping.   The   thesis   is   part   of   collaboration   between   the   University   of   Linköping,   Royal   Institute   of   Technology   and   Math.se.   The   aim   of   the   collaboration   is   to   provide   a   web-­‐support  homepage  for  the  course  Linear  Algebra.  Through  the  years  a  need  for   improving   the   way   students   learn   the   theory   behind   the   course   has   been   desired.   This   is   due   to   the   fact   that   it   has   been   hard   to   teach   something   that   is   three-­‐ dimensional  (or  more)  on  a  two-­‐dimensional  blackboard  or  paper.     The  purpose  of  the  master  thesis  was  to  develop  the  base  for  a  product  that  will  help   students   to   increase   their   understanding   in   linear   algebra.   In   an   interactive   way   should  the  program  visualize  those  difficult  to  teach  in  a  classroom  moments,  on  the   computer  screen.  The  product  should  be  able  to  both  teach  and  test  the  knowledge   of  the  students.   The   application   should   be   a   part   of   the   web-­‐support   homepage   so   that   it   can   be   run   directly   from   the   homepage   while   students   are   solving   the   exercises   there.   Therefore   it   was   crucial   that   the   application   would   support   all   leading   computer   platforms   and   Internet   browsers.   Most   important   was   that   the   product   would   be   educational  and  easy  to  use.   The  result  of  the  master  thesis  are  nine  applications,  one  for  every  moment  that  has   been  applied,  that  uses  computer  graphics  to  educate  students  using  examples  and   exercises.   The   applications   are   executed   directly   on   the   webpage   using   Java   Web   Start.    .                         1    .

(5) Sammanfattning   Detta   examensarbete   har   genomförts   på   Campus   Norrköping,   Linköpings   Universitet.   Arbetet   är   en   del   av   ett   samarbete   mellan   Linköpings   Universitet,   Kungliga   Tekniska   Högskolan   och   Math.se.   Målet   med   samarbetet   är   att   skapa   och   underhålla   en   hemsida   för   webbstöd   i   kursen   Linjär   Algebra.   Genom   åren   har   det   upptäckts  att  det  finns  en  problematik  i  många  studenters  inlärning  av  kursens  teori.   Detta  beror  på  att  det  är  svårt  att  undervisa  något  som  berör  fler  än  två  dimensioner   på  en  tvådimensionell  tavla  eller  papper.   Examensarbetets   syfte   var   att   utveckla   grunden   för   en   produkt   som   hjälper   till   att   öka   förståelsen   hos   studenter   som   läser   linjär   algebra.   Produkten   skulle   på   ett   interaktivt  sätt  visualisera  på  datorskärmen  de  moment  i  kursen  som  kan  vara  svåra   att   undervisa   i   ett   klassrum.   Vidare   skulle   produkten   både   lära   ut   och   testa   studenters  kunskap.     Programmet   skulle   finnas   och   startas   från   hemsidan   för   kursens   webbstöd   så   att   det   kan   startas   parallellt   med   att   studenter   löser   uppgifterna   på   sidan.   Det   var   också   krav   på   att   programmet   skulle   fungera   på   alla   stora   operativsystem   och   webbläsare.   Framförallt   var   det   viktigt   att   produkten   skulle   vara   lättanvänd   och   fungera   pedagogiskt.   Resultatet   av   examensarbetet   är   nio   applikationer,   en   för   varje   moment   som   har   tillämpats,   som   via   datorgrafik   underlättar   undervisningen   genom   pedagogiskt   förklarande   och   uppgifter.   Programmen   startas   direkt   på   hemsidan   via   Java   Web   Start.    . 2    .

(6)        .  . 3    .

(7)             Förord   Under  hösten  2009  och  vintern  2010  genomförde  jag  mitt   examensarbete  som  är  avslutningsfasen  för  min  utbildning  till   civilingenjör  i  Medieteknik  vid  Campus  Norrköping,  Linköpings   Universitet.  Denna  rapport  är  resultatet  av  mitt  arbete.   Edin  Katardzic   2010-­‐01-­‐11    . 4    .

(8) 5    .

(9) Innehållsförteckning     INNEHÅLLSFÖRTECKNING............................................................................................................6   FIGURFÖRTECKNING......................................................................................................................8   TABELLFÖRTECKNING...................................................................................................................8   1  INLEDNING .................................................................................................................................. 10   1.1  BAKGRUND ................................................................................................................................................10   1.2  SYFTE .........................................................................................................................................................10   1.3  PROBLEMFORMULERING  OCH  MÅL .......................................................................................................10   1.4  AVGRÄNSNINGAR .....................................................................................................................................11   1.5  NYCKELPERSONER  I  ARBETET ...............................................................................................................11   1.6  FÖRKORTNINGAR .....................................................................................................................................11   1.7  RAPPORTENS  SYFTE  OCH  MÅL ...............................................................................................................11   1.8  DISPOSITION .............................................................................................................................................11   2  BAKGRUND.................................................................................................................................. 14   2.1  LINJÄR  ALGEBRA ......................................................................................................................................14   2.2  LINJÄRA  AVBILDNINGAR .........................................................................................................................14   2.3  UTVECKLINGSMETODEN .........................................................................................................................16   2.4  ANVÄNDBARHET ......................................................................................................................................17   3  TEKNISK  BAKGRUND ............................................................................................................... 20   3.1  OPENGL.....................................................................................................................................................20   3.2  JAVA ............................................................................................................................................................20   3.3  JOGL...........................................................................................................................................................21   3.4  JAVA  APPLET .............................................................................................................................................21   3.5  NETBEANS ................................................................................................................................................21   3.6  JAR .............................................................................................................................................................22   3.7  JAVA  WEB  START .....................................................................................................................................22   3.8  JAVA  OCH  MACINTOSH ............................................................................................................................24   4  GENOMFÖRANDE ...................................................................................................................... 26   4.1  PLANERING ...............................................................................................................................................26   4.2  FÖRARBETE ...............................................................................................................................................26   4.3  ÖNSKAT  RESULTAT ..................................................................................................................................27   4.4  PROTOTYPER ............................................................................................................................................27   4.5  PROBLEM ...................................................................................................................................................28   4.6  PUBLICERING ............................................................................................................................................30   4.7  FEEDBACK  PÅ  BETAVERSIONEN ............................................................................................................30   4.8  FÖRBEREDELSER  FÖR  VIDAREUTVECKLING ........................................................................................30   5  RESULTAT.................................................................................................................................... 32   5.1  PRODUKTEN ..............................................................................................................................................32   5.2  UTFORMNING  OCH  DESIGN .....................................................................................................................32   5.3  APPLIKATIONER .......................................................................................................................................34   5.4  ICKE  UPPNÅDDA  MÅL ..............................................................................................................................39   6  SLUTSATS  OCH  DISKUSSION.................................................................................................. 41   6.1  SLUTSATSER  MED  AVSEENDE  PÅ  PROBLEMFORMULERING ..............................................................41   6.2  VARFÖR  JOGL? ........................................................................................................................................41   6.3  DISKUSSION  AV  DESIGNVALET ...............................................................................................................42   6.4  PROTOTYPARBETE ...................................................................................................................................42  . 6    .

(10) 6.5  IDÉER  OCH  FÖRSLAG  PÅ  VIDAREUTVECKLING  AV  PROGRAMMET ....................................................42   7  REFERENSER............................................................................................................................... 45   7.1  PUBLICERADE  REFERENSER ...................................................................................................................45   7.2  MUNTLIGA  REFERENSER ........................................................................................................................45   8  APPENDIX  A  –  BILAGOR .......................................................................................................... 47   KOD  4.1.............................................................................................................................................................47  .    . 7    .

(11) Figurförteckning    Figur  2.1:  Projektion  exempel………………………………………………………………………………..10    Figur  2.2:  Spegling  exempel……………………………………………………………………………………11    Figur  2.3:  Vattenfallsmodellen……………………………………………………………………………….12    Figur  3.1:  ”OpenGL  visualization  programming  pipeline”……………………………………….15    Figur  3.2:  JNLP  exempel…………………………………………………………………………………………18    Figur  4.1:  Java  applet  linjär  algebra  exempel………………………………………………………….22    Figur  4.2:  Prototyp  exempel…………………………………………………………………………………..23    Figur  5.1:  Applikationen  Ortogonal  Projektion……………………………………………………….27    Figur  5.2:  Knappar  för  kameramanipulering…………………………………………………………..28    Figur  5.3:  Applikationens  meny……………………………………………………………………………..28    Figur  5.4:  Applikationens  hjälpavsnitt……………………………………………………………………29    Figur  5.5:  Introduktion  till  Projektion…………………………………………………………………….32    Figur  5.6:  Ortogonal  Projektion…………………………………………………………..………………..33    Figur  5.7:  Matris  Projektion………………………………………………………….…………….…...……33    Figur  5.8:  Nollrum  och  Värderum  med  Projektion…………………….…….…………………….34    Figur  5.9:  Projektion  med  Basbyte………………………………………………………………………..35    Figur  5.10:  Interaktiv  Introduktion  till  Spegling………………………………….………………….35    Figur  5.11:  Matris  Spegling………………………………………………………..………………………….36    Figur  5.12:  Nollrum  och  Värderum  med  Spegling……………….…………………………………36    Figur  5.13:  Spegling  med  Basbyte……………………………………….………………………………..37    . Tabellförteckning  . Tabell  1.1:  Förkortningar………………………………………………………………………………...........7  . 8    .

(12)  . 9    .

(13) 1  Inledning   I  detta  kapitel  klargörs  ämnet  som  rapporten  handlar  om  samt  syftet  med  projektet   och  dess  mål.  . 1.1  Bakgrund   Denna  rapport  förklarar  hur  ett  projekt  utarbetades  och  genomfördes.  Projektet  är   en   del   av   ett   examensarbete   som   genomfördes   på   institutionen   ITN   på   Campus   Norrköping,  Linköpings  Universitet.     George Baravdish (universitetslektor) och Owe Kågesten (universitetsadjunkt) har en lång erfarenhet av undervisning på civilingenjörsprogrammen. För några år sen började de fundera på hur den nya tekniken med Internet kan komma till nytta för studenterna i undervisningen. En kurs som de tänkte på var linjär algebra som har en hög abstraktionsnivå och som kommer tidigt in i en ingenjörsutbildning. Dessutom kräver ämnet att man tänker på och jobbar med objekt i det åskådliga rummet. Detta är inte alltid lätt när man ska illustrera och rita på en tvådimensionell tavla. De inledde ett samarbete med KTH och Math.se (Sveriges universitets matematikportal)1 som 2008 resulterade i ett webbstöd i linjär algebra.2 Detta stöd på nätet innehåller kurslitteraturen, övningar, tips och lösningsförslag till dessa samt reflektionsuppgifter. År 2009 fick de ett CUL projekt beviljat om att utveckla den pedagogiska och tekniska designen av detta webbstöd till en nätkurs. Som en del av detta projekt bestämde man sig för att anta en examensarbetare som skulle undersöka möjligheten att med hjälp av datorgrafik illustrera kapitlet om linjära avbildningar i kursen och därmed utveckla webbstödet.. 1.2  Syfte   Syftet   med   examensarbetet   är   att   dels   med   hjälp   av   datorgrafik   pedagogiskt   illustrera   och   visualisera   linjär   algebra   samt   att   det   blir   tillgängligt   för   studenter   genom  webben.  Genom  att  använda  datorn  skall  studenter  även  kunna  genomföra   teoretiska  övningar  på  ett  interaktivt  sätt  samtidigt  som  de  löser  uppgifter  praktiskt   ur  kursboken.    . 1.3  Problemformulering  och  mål   Kan   man   tillverka   en   produkt   som   fångar   studenternas   intresse   och   som   på   ett   pedagogiskt   sätt   utvecklar   deras   kunskap   i   linjär   algebra   direkt   via   en   hemsida   på   internet?   Den   slutgiltiga   produkten   skall   vara   lättåtkomlig   och   lätt   att   använda   för   alla   studenter  som  studerar  linjär  algebra  vid  Linköpings  Universitet.  Produkten  skall  på   ett  pedagogiskt  sätt  öka  förståelsen  i  de  moment  som  kan  vara  svåra  att  undervisa   med  traditionella  metoder,  såsom  att  skriva  och  rita  på  tavlan.    .                                                                                                                 1  http://www.math.se/   2  http://wiki.math.se/wikis/samverkan/linalg-LIU/index.php/Huvudsida  . 10    .

(14) 1.4  Avgränsningar   Eftersom   projektet   genomfördes   av   en   person   under   en   begränsad   tid   bestämdes   primära   mål   som   skulle   vara   uppfyllda   och   några   sekundära   mål   som   skulle   genomföras   i   mån   av   tid.     Alla   primära   mål   uppfylldes   och   endast   ett   sekundärt   uteblev.     En  annan  faktor  som  kan  ha  påverkat  projektets  arbetsgång  var  att  detta  var  en  ny   situation   för   alla   inblandade   och   det   var   från   början   inte   klart   vilka   mål   som   skulle   uppfyllas.     De   uppsatta   målen   bestämdes   i   samråd   mellan   examinatorer,   handledare   och  examensarbetaren.    . 1.5  Nyckelpersoner  i  arbetet   De   personer   som   har   varit   till   stor   hjälp   under   hela   projektet   är   George   Baravdish   (examinator,   handledare   inom   matematik),   Sasan   Gooran   (teknisk   handledare)   och   Owe   Kågesten   (handledare   inom   matematik).   Dessutom   har   både   äldre   studenter   och  de  som  fortfarande  läser  linjär  algebra  användartestat  programmet  och  gett  sina   synpunkter.  . 1.6  Förkortningar  . Tabell  1.1  visar  alla  tekniska  förkortningar  som  används  i  rapporten.   Förkortning  . Betydelse  . API   JNLP   OpenGL   JOGL   JAR   XML  . Application  Programming  Interface   Java  Network  Launching  Protocol   Open  Graphics  Library   Java  Open  Graphics  Library   Java  Archive   Extensible  Markup  Language  . Tabell  1.1.  Tabellen  visar  de  tekniska  förkortningarna  som  används  i  rapporten  och   vad  de  står  för.  . 1.7  Rapportens  syfte  och  mål   Efter  att  ha  läst  denna  rapport  skall  framtidens  examensarbetare  vars  uppgift  blir  att   utöka  och  förbättra  programmet  ha  god  förståelse  för  vad  som  har  gjorts  så  att  de   vet  var  de  ska  starta  och  fortsätta  med  arbetet.  . 1.8  Disposition  . En  kortfattad  förklaring  av  vad  varje  kapitel  handlar  om.   Kapitel   1:   Inledning   –   I   detta   kapitel   introduceras   examensarbetets   bakgrund,   problemformulering  och  målet  med  denna  rapport.   Kapitel   2:   Bakgrund   –   I   detta   kapitel   presenteras   den   teoretiska   delen   av   examensarbetet   som   kursen   Linjär   Algebra   och   metoden   som   används   för   att   genomgöra  projektet.   Kapitel   3:   Teknisk   Bakgrund   –   I   detta   kapitel   ges   förklaringar   kring   projektets   tekniska  del  som  vilka  programvaror  och  programmeringsspråk  används.  . 11    .

(15) Kapitel   4:   Genomförande   –   I   detta   kapitel   redovisas   allt   från   projektets   planering   och   testarnas   feedback   under   produktionen   till   dess   slutfas   och   problem   som   uppstått.   Kapitel  5:  Resultat  –  I  detta  kapitel  presenteras  produkten,  dess  design  och  feedback   på  den  slutgiltiga  versionen.   Kapitel   6:   Slutsats   och   diskussion   –   Här   besvaras   rapportens   problemformulering   och  förslag  ges  till  hur  produkten  kan  förbättras  i  framtiden.    . 12    .

(16)    . 13    .

(17) 2  Bakgrund   I   detta   kapitel   introduceras   teorin   i   examensarbetet,   en   kort   presentation   för   matematiken  och  utvecklingsmetoden  som  användes  för  att  genomföra  projektet.  . 2.1  Linjär  algebra   Alla  som  utbildar  sig  till  civilingenjör  idag  läser  Linjär  Algebra.  Kursen  tillhör  den  del   av   matematiken   som   berör   begrepp   som   vektorer   och   plan   i   ett   godtyckligt   antal   dimensioner.   För   att   visualisera   arbetet   används   två   eller   tre   dimensioner   men   matematiskt  går  det  att  arbeta  i  oändligt  antal  dimensioner.     Med   en   vektor   menas   ett   objekt   med   längd   eller   storlek   och   en   riktning.   Vektorer   illustreras  oftast  med  linjesegment  i  två  eller  tre  dimensioner  och  kan  användas  till   att   representera   fysiska   enheter   som   krafter.   Det   är   möjligt   att   addera   vektorer   med   varandra  och  multiplicera  dem  med  konstanter.   Plan   är   ett   tvådimensionellt   objekt   som   spänns   upp   av   två   icke   parallella   vektorer.   Dessa  åskådliggörs  bäst  i  tredimensionella  rum  med  en  viss  position  och  lutning.     Följande   är   ett   utdrag   ur   studiehandboken   för   kursen   Linjär   Algebra   i   Linköpings   Universitet:   Mål:     Att   ge   sammanhållen   begreppsram   för   geometrisk   och   algebraisk   teknik   med   tillämpningar  inom  analys,  datorgrafik,  elektroteknik,  reglerteknik,  linjär  optimering   m   fl.   ämnen.   Vidare   ingår   att   utveckla   förmågan   att   använda   det   matematiska   språket,  skriftligt  och  muntligt.  Därför  är  det  nödvändigt  för  deltagaren  att  kunna     • • • • • • • • • • • •. lösa  ekvationssystem     arbeta  med  skalärprodukt  och  vektorprodukt  för  geometriska  vektorer     räkna  med  matriser  och  determinanter     räkna  med  vektorer  och  koordinater  i  ett  vektorrum     bestämma   matrisen   för   en   linjär   avbildning   samt   beräkna   nollrum   och   vektorrum     bestämma  ON-­‐baser  i  euklidiska  rum     projicera  ortogonalt  på  underrum  och  använda  minstakvadrat-­‐metoden     använda  basbyte  för  att  lösa  problem     bestämma  och  använda  egenvärden  och  egenvektorer  i  olika  problem     använda  spektralsatsen  i  olika  situationer     bestämma  kanoniska  baser  till  kvadratiska  former  och  utnyttja  detta  för  att   lösa  geometriska  problem     utvärdera  resultat  och  delresultat,  för  att  verifiera  att  dessa  är  korrekta  eller   rimliga    . 2.2  Linjära  avbildningar   Examensarbetet   fokuserar   på   kapitlet   Linjära   Avbildningar.   Betoningen   ligger   på   de   moment   som   kan   vara   problematiska   att   undervisa   med   vanliga   metoder,   såsom   vektorprojektion  och  spegling  med  avseende  på  plan  i  det  tredimensionella  rummet.   14    .

(18) Begrepp   som   nollrum,   vektorrum,   basbyte   och   matrisframställning   för   projektion   och  spegling  tas  upp.   Här  nedan  presenteras  definitionen  av  linjära  avbildningar,  hämtat  från  universitets   webbstöd  för  kursen  Linjär  Algebra:     Definition  16.3.  Låt  V,  W  vara  vektorrum  och  F  :  V  →  W  en  avbildning  från  V  till  W  .   Vi  säger  att  F  är  en  linjä̈r  avbildning  om   1.  F  är  additiv:      . f(u+v)=F(u)+F(v).    . 2.  F  är  homogen:    . F(λu)  =  λF(u),           λ  ∈  R.  . En   ortogonal   projektion   av   en   vektor   på   ett   plan   är   närmaste   vektorn   i   planet.   En   tolkning  kan  ses  som  skuggan  av  vektorn  i  planet  om  man  tänker  sig  att  man  lyser  på   vektorn   från   normalens   spets.   I   Figur   2.1   illustreras   ett   enkelt   exempel   av   en   projektion.    .   Figur   2.1.   Figuren   visar   ortogonal   projektionen   P(u)   av   vektorn   u   på   ett   plan   med   normalen  n.   När   en   vektor   speglas   i   ett   plan   är   resultatet   en   ny   lika   lång   vektor   på   andra   sidan   av   planet   med   samma   öppningsvinkel   som   den   ursprungliga   vektorn.   Figur   2.2   nedan   illustrerar  ett  exempel  på  spegling.  . 15    .

(19)   Figur  2.2.  Figuren  visar  speglingen  S(u)  av  vektorn  u  på  ett  plan  med  normalen  n.   Om  en  vektor  avbildas  på  nollvektorn  under  en  linjär  avbildning  F,  brukar  man  säga   att   vektorn   ligger   i   F:s   nollrum.   I   fallet   F   är   ortogonal   projektion   så   kommer   vektorer   som   är   vinkelräta   mot   planet   att   projiceras   på   nollvektorn.   En   sådan   vektor   är   normalen   till   planet.   Alla   vektorer   som   är   bilden   av   en   urbild   under   F   ligger   i   värderummet.   Om   F   är   en   projektion   så   sammanfaller   värderummet   med   planet   eftersom   alla   vektorer   projiceras   på   planet.   Definitionen   nedan   är   citerad   från   kurslitteraturen  som  finns  på  hemsidan  för  webbstödet  i  kursen  Linjär  Algebra.   Definition  16.36.  Låt  F  :  V  →  W  vara  en  linjär  avbildning.     1.   Nollrummet   till   F   definierar   vi   som   mängden   av   alla   u   ∈   V   som   avbildas   på   nollvektorn,  dvs  F  (u)  =  0.  Nollrummet  betecknas  med  N  (F).   2.  Värderummet  till  F  definierar  vi  som  mängden  av  alla  bilder  v  ∈  W,  dvs  v  =  F  (u)  för   något  u  ∈  V  .  Värderummet  betecknas  med  V  (F).      . 2.3  Utvecklingsmetoden   Man   brukar   tala   om   fyra   vanliga   systemutvecklingsmetoder   då   man   utvecklar   ett   system.   Dessa   fyra   är   Vattenfallsmodellen,   Spiralmodellen,   SCRUM   och   Iterativ   systemutveckling.   Metoden   som   används   i   detta   examensarbete   är   en   modifierad   version  av  vattenfallsmodellen.  Nedan  följer  en  förklaring  av  vattenfallsmodellen  och   de  ändringar  som  gjordes  för  att  den  skulle  passa  detta  projekt.  . 16    .

(20) Figur  2.3.  Figuren  illustrerar  de  olika  stegen  som  vattenfallsmodellen  består  av.     Kravfasen   är   det   första   steget   som   görs   upp   mellan   projektledare   och   utvecklare.   Krav  kan  också  fungera  som  ett  kontrakt  mellan  dessa.  Modellen  som  används  under   detta   examensarbete   har   även   en   analysfas   innan   kravfasen.   Detta   beror   på   att   man   först  vill  undersöka  om  det  redan  finns  produkter  med  samma  mål  på  internet  innan   man  bestämmer  kraven  för  projektet.     I   designfasen   bestäms   oftast   användargränssnittet   för   produkten.   Det   går   även   att   flytta  detta  steg  till  efter  implementeringsfasen  men  detta  kan  försvåra  arbetet  då,   det   är   till   exempel   lättare   att   programmera   när   man   vet   hur   slutprodukten   ska   fungera  och  inte  bara  vilka  funktioner  som  skall  finnas  tillgängliga.     Modellen   som   används   för   detta   projekt   har   implementeringsfasen   efter   att   användargränssnittet   har   bestämts.   All   kod   implementeras   i   denna   fas   och   produkten  är  redo  att  testas.   Här   skiljer   sig   modellen   lite   från   den   typiska   vattenfallsmodellen.   Eftersom   det   är   flera  applikationer  som  tillverkas  beroende  på  kapitel  och  övning  i  boken,  testas  en   del   medan   vissa   inte   är   påbörjade.   Utifrån   den   feedback   som   uppstår   kan   både   framtida   och   tidigare   testade   applikationer   komma   att   modifieras.   Därför   kan   man   säga  att  testfasen  på  sätt  och  vis  ligger  under  hela  förloppet.     Slutligen   utbildas   de   som   ska   ansvara   för   programmet,   i   detta   fall   examinatorn,   i   hur   det   underhålls.   Vi   valde   denna   metod   för   att   den   passar   vårat   arbetsgång   med   prototyper  väldigt  bra.  . 2.4  Användbarhet   En   av   de   viktigaste   faktorerna   för   produkten   är   användbarhet.   Applikationen   skall   vara   lätt   att   förstå   och   vara   lättåtkomlig   för   alla   studenter   så   att   den   underlättar   inlärningen  av  kursen.  Normalt  delas  användbarhet  upp  i  sex  delar.     a. b. c. d.. Utför  systemet  det  som  användaren  vill.   Hur  lätt  är  det  för  en  användare  att  lära  sig  systemet?   Är  det  lätt  att  förstå  sig  på  vad  systemet  gör?     Anser  regelbundna  användare  att  systemet  är  effektivt?  . 17    .

(21) e. Är  systemet  lätt  att  komma  ihåg  även  för  användare  som  inte  använder  det   regelbundet?   f. Tillfredställer  systemet  användarnas  behov?   Dessa   punkter   kan   även   användas   vid   utvärdering   av   programmet.   Systemets   effektivitet   avgörs   av   hur   höga   betyg   det   får   i   de   olika   delarna.   Enligt3   bör   delarna   ovan   prioriteras   olika   mycket   beroende   på   syftet   med   systemet.   Den   huvudsakliga   uppgiften   för   programmet   som   utvecklas   i   detta   examensarbete   är   att   öka   studenternas   förståelse   på   ett   pedagogiskt   sätt.   Så   de   viktigaste   punkterna   i   detta   fall  är  a,  c  och  f.     Genom   att   låta   den   tänkta   målgruppen   testa   systemet   kan   man   avgöra   hur   hög   användbarhet  det  har.  Detta  är  en  viktig  del  för  projektet  i  detta  examensarbete  då   feedback   från   både   lärare   och   studenter   avgör   om   programmet   måste   vidareutvecklas  eller  om  det  uppfyller  alla  krav  på  funktionalitet.      .                                                                                                                 3  Intellectual  Property  Management.  Junghans,  Claas  och  Adam,  Levy.  u.o.  :  Wiley-­‐. VCH,  2006.  ISBN:3-­‐  527-­‐32186-­‐2  . 18    .

(22)        . 19    .

(23) 3  Teknisk  bakgrund   I   detta   kapitel   ges   det   korta   förklaringar   på   de   tekniska   delarna   som   ingår   i   genomförandet  av  examensarbetet.  . 3.1  OpenGL   OpenGL   (Open   Graphics   Library)   är   en   utvecklingsmiljö   för   att   skapa   plattformsoberoende   applikationer   med   hjälp   av   datorgrafik.   Med   dess   breda   samling   av   funktioner   för   rendering,   texturmappning,   specialeffektsverktyg   och   andra   verktyg   för   tillämpning   av   olika   typer   av   visualisering   är   OpenGL   ett   utmärkt   val  för  att  arbeta  med  grafik  i  två  eller  tre  dimensioner.  OpenGL  grundades  år  1992   av   OpenGL   Architecture   Review   Board,   ett   antal   företag   vars   intresse   är   att   hålla   gränssnittet  tillgängligt  för  allmänheten4.  Sedan  dess  har  OpenGL  flitigt  använts  inom   bland   annat   dataspelsbranschen,   vetenskaplig   visualisering,   CAD   och   virtuell   verklighet.     Språk   som   C++,   C,   Java,   ADA,   Fortran,   Python,   och   Perl   har   fullt   stöd   för   OpenGL   och   gränssnittet   kan   användas   på   alla   stora   operativsystem   som   till   exempel   Mac   OS,   Windows,   Unix,   Linux,   OPENStep   och   BeOS.   Arbetet   sker   direkt   mot   grafikkortet   och   utvecklaren   får   tillgång   till   funktioner   som   modelltransformationer,   ljussättning,   texturhantering,   anti-­‐aliasing,   blending,   olika   geometriska   objekt   och   en   rad   andra   verktyg.  Figur  3.1  nedan  är  hämtad  från  officiella  OpenGL  hemsidan5  och  illustrerar   på  ett  väldigt  förenklat  sätt  hur  OpenGL  fungerar  i  praktiken.  .   Figur  3.1.  Enkel  illustration  över  OpenGL  pipelinen.    . 3.2  Java   Java   är   ett   objektorienterat   programmeringsspråk   som   används   av   över   6,5   miljoner   utvecklare   världen   över.   Språket   utvecklades   av   Sun   Microsystems   under   åren   1991-­‐ 19956.   Styrkan   med   Java   är   att   det   är   plattformsoberoende.   Ett   program   skrivet   i                                                                                                                   4  http://sv.wikipedia.org/wiki/OpenGL   5  http://www.opengl.org  . 6  http://www.java.com/sv  . 20    .

(24) Java  kan  köras  på  alla  datorer  oavsett  operativsystem.  Programmeringsspråket  Java   innehåller   två   stycken   API   kallade   Swing   och   AWT.   Dessa   bidrar   med   bland   annat   färdiga  komponenter  som  knappar,  fönster  och  menyer,  vilket  leder  till  att  ett  Java   program  kommer  att  se  likadant  ut  på  alla  plattformar.     Andra  kraftfulla  fördelar  med  Java  är  att  man  kan  skriva  program  som  körs  direkt  i   webbläsaren   (Java   Applets),   utveckla   till   digitala   apparater   såsom   mobiltelefoner   samt   en   hel   del   tillämpningar   på   serversidan   som   är   används   i   internet–forum,   -­‐ butiker,  -­‐omröstningar,  html-­‐formulär  och  annat.   Följande  information  är  hämtat  från  Javas  officiella  hemsida:   Java  driver  mer  än  4,5  miljarder  enheter  inklusive:   • över  800  miljoner  datorer   • 2,1  miljarder  mobiltelefoner  och  andra  handhållna  apparater  (källa:  Ovum)   • 3,5  miljarder  smarta  kort   • Digitala   avkodare,   skrivare,   webbkameror,   spel,   bilnavigeringssystem,   lotteriterminaler,  medicinsk  apparatur,  parkeringsautomater  med  mera.    . 3.3  JOGL   Java  Open  Graphics  Library  (JOGL)  är  ett  bibliotek  som  tillåter  användning  av  OpenGL   inom   Java   programmering.   Med   JOGL   kan   användaren   utnyttja   de   flesta   egenskaperna   hos   OpenGL   programmering   som   finns   i   programmeringsspråken   C   och   C++   samtidigt   som   man   kan   dra   nytta   av   kraften   i   Java   programmering.   Resultatet   blir   möjligheten   att   jobba   med   3D-­‐grafik   genom   direkt   programmering   mot  grafikkortet  och  fullt  stöd  för  Javas  egna  fönstersystem  via  Swing  och  AWT7.  . 3.4  Java  applet   Java   applet   är   ett   program   skrivet   i   Java   och   som   körs   direkt   via   en   webbläsare.   Fördelen   med   denna   typ   av   program   är   att   det   aldrig   behöver   laddas   ner   och   kan   därför   inte   heller   vara   skadligt   för   datorn   på   något   sätt.   Programmet   kan   köras   på   alla  datorer  som  har  en  webbläsare  installerad  vilket  gör  det  väldigt  lättåtkomligt.  En   applet  kan  inte  sätta  upp  nätverksuppkopplingar  till  någon  annan  dator  än  den  som   appleten   exekveras   ifrån.   Nackdelen   med   appletprogram   är   att   all   säkerhet   gör   att   de  även  blir  mycket  mer  begränsade.    . 3.5  NetBeans   NetBeans  är  en  utvecklingsmiljö  med  verktyg  för  att  skapa  applikationer  för  webben,   mobiler  och  andra  datorprogram.  Även  om  programmets  styrka  ligger  i  utveckling  av   Javaprogram   och   PHP-­‐skript   stödjer   det   programmeringsspråk   som   C/C++,   Java-­‐ skript,   Groovy,   Ruby   och   självklart   Java   och   PHP8.   NetBeans   stödjer   de   flesta                                                                                                                   7  http://kenai.com/projects/jogl/pages/Home   8  http://netbeans.org  .   21    .

(25) plattformar   som   Windows,   Mac   OS   X   och   Solaris.   Programmet   finns   att   ladda   ned   gratis  från  Suns  hemsida9  och  NetBeans  officiella  sida.   Programmet  ändvänds  för  utveckling  av  produkten  i  detta  examensarbete  på  grund   av  dess  effektiva  stöd  för  utveckling  av  portabla  Java  applikationer.  . 3.6  JAR   Java   Archieve   (JAR)   är   ett   komprimeringsverktyg   baserat   på   ZIP   formatet.   Med   detta   menas   förenklat   att   man   kan   komprimera   och   kombinera   flera   filer   till   en   enda.   Detta  är  ett  väldigt  kraftfullt  verktyg  då  man  till  exempel  vill  dela  med  sig  av  något   via  e-­‐post  eller  på  en  webbsida  som  innehåller  många  filer.     JAR   är   framförallt   designat   för   ”paketering”   av   Java   applikationer   och   Java   applets.   Detta  är  väldigt  eftersträvat  då  ett  Java  program  ska  skickas  vidare  eller  läggas  upp   på  Internet.   Ett   sådant   program   kan  innehålla   väldigt   många   filer   som   är   nödvändiga   för   att   det   skall   fungera   korrekt   eller   överhuvudtaget   startas.   Exempel   på   filer   är   klassfiler,  bilder  och  ljud.  Det  skulle  vara  väldigt  besvärligt  att  ladda  ned  alla  dessa  en   i  taget.  Vidare  går  det  även  att  ha  andra  jar-­‐filer  i  en  jar-­‐fil  och  bestämma  vilka  filer   som   skall   exekveras   då   användaren   dubbelklickar   på   jar-­‐filen.   Detta   leder   till   att   användaren   inte   behöver   packa   upp   alla   filer   som   är   nödvändiga   för   att   starta   en   applikation   som   ligger   i   en   jar-­‐fil   utan   kan   smidigt   starta   programmet   genom   att   dubbelklicka  på  jar-­‐filen10.          . 3.7  Java  Web  Start   Ibland   kan   det   vara   önskvärt   att   distribuera   en   Java   applikation   genom   att   ha   det   på   en   webbsida   men   inte   som   en   java   applet.   Då   kan   det   uppstå   problem   om   hela   programmet  ligger  i  en  jar-­‐fil  eftersom  alla  nödvändiga  filer  kanske  inte  finns  med.   Det  är  här  Java  Web  Start  kommer  in  i  bilden.    Med   Java   Web   Start   kan   användaren   starta   applikationen   genom   ett   enkelt   klick   direkt   via   webbläsaren,   inga   installationer   behöver   göras.   Nyckeln   ligger   i   att   en   relativt   enkel   XML   (eXtensible   Markup   Language)   fil   som   kallas   Java   Network   Launch   Protocol  (JNLP)  måste  skapas  av  distributören.  I  denna  fil  anges  instruktionerna  för   Java  Web  Start  för  var  den  ska  hämta  alla  nödvändiga  filer  och  hur  programmet  ska   startas.  En  typisk  JNLP  fil  kan  se  ut  som  i  Figur  3.2  nedan.  Koden  är  hämtat  från  Suns   officiella  hemsida.  .                                                                                                                 9  http://java.sun.com/javase/downloads/index_jdk5.jsp   10  http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/jar.html  . 22    .

(26)   Figur  3.2.  En  typisk  jnlp-­‐fil.   Här  förklaras  kortfattat  filens  viktigaste  rader  som  går  att  konfigurera.  Inne  i  taggen   codebase   skall   adressen   till   platsen   där   distributören   laddar   upp   alla   sina   filer   och   mappar   anges.   Vidare   i   href   anges   adressen   till   själva   jnlp-­‐filen.   I   title   skrivs   applikationens   namn.   Vendor   är   en   icke-­‐obligatorisk   tagg   och   här   anges   tillverkarens   namn.   I   taggen   homepage   href   anges   eventuellt   adressen   till   applikationens   hemsida.  I  discription  och  description  kind  beskrivs  applikationen  men  detta  är  inte   heller   obligatoriskt.   I   icon   taggarna   anger   man   adressen   till   en   bild   som   man   vill   använda  som  ikon  för  programmet.  Även  detta  är  valbart.  Offline  Allowed  anger  om   programmet   får   användas   när   användaren   inte   är   uppkopplad   mot   internet   och   inställningar  för  eventuella  uppdateringar  då  ny  version  av  programmet  laddas  upp.  I   security  bestäms  vilka  rättigheter  programmet  ska  ha  på  datorn  som  startar  det.  Här   går  det  att  ställa  in  så  att  applikationen  blir  lika  begränsad  som  en  vanlig  java  applet.   I  taggen  resources  anges  adressen  till  alla  filer,  bibliotek  och  systeminställningar  som   är   nödvändiga   för   att   programmet   ska   exekvera.   Application-­‐desc   main   class   anger  . 23    .

(27) att  JNLP  filen  startar  en  applikation  och  inte  en  java  applet.  Här  anges  sökvägen  till   programmets  huvudklass11.     Här  är  ytterligare  fördelar  med  att  använda  Java  Web  Start  hämtat  direkt  ur  officiella   dokumentationen12:   • •. • •. • • •. En   applikation   kan   ligga   på   vilken   server   som   helst   och   köras   oberoende   av   plattform.   Även   om   användaren   inte   har   den   versionen   av   Java   som   behövs   för   att   exekveringen   ska   ske,   kommer   applikationen   automatiskt   att   ladda   ner   den   versionen  som  behövs  och  därefter  starta.     Användaren  kan  skapa  genvägar  på  skrivbordet  och  starta  applikationen  utan   att  behöva  öppna  webbläsaren.   Eftersom   användaren   har   full   kontroll   över   vad   som   programmet   tillåts   att   göra,   via   internet   inställningar   för   java   på   datorn,   är   säkerheten   väldigt   hög   även  hos  applikationer  från  osäkra  platser.   Java  Web  Start  kör  program  lokalt  från  datorn  vilket  ökar  dess  prestanda.   Om   programmet   körs   från   användarens   dator   kommer   de   senaste   uppdateringarna  automatiskt  att  laddas  ner  om  sådana  existerar.   Användaren  behöver  inte  vid  något  tillfälle  varken  uppdatera  eller  installera   Java  Web  Start  för  att  använda  det.  .   Självklart   finns   det   även   nackdelar   med   att   använda   Java   Web   Start.   Till   att   börja   med   så   måste   Java   finnas   installerat   på   datorn   för   att   programmet   ska   kunna   exekveras.  Här  är  några  av  nackdelar  som  det  talas  om  i  Java  Web  Start-­‐Wikipedia13:     • • •. Utvecklaren  måste  signera  med  certifikat  alla  jar-­‐filer  som  används  av  JNLP.   Jnlp-­‐filen  laddas  alltid  ned  temporärt  på  datorn  när  applikationen  körs  vilket   kan  uppfattas  märkligt  då  programmet  körs  via  en  webbläsare.     Support  för  64  bitars  Windows  lades  till  först  i  Java  6.  . 3.8  Java  och  Macintosh   Java  miljön  finns  installerat  på  alla  Mac  OS  X  operativsystem.  Det  finns  både  för  och   nackdelar   med   detta.   Fördelen   är   att   man   inte   behöver   ladda   ner   något   extra   för   att   ta  del  av  allt  som  kräver  Java.  Nackdelen  är  att  Java  som  finns  implementerat  på  Mac   OS   kommer   från   Apple   själva   medan   de   övriga   versionerna   som   laddas   ned   till   Windows,  Linux  och  Solaris  släpps  från  skaparna,  Sun  Microsystems.   Detta   leder   till   att   Mac-­‐versionen   av   Java   ofta   ligger   lite   efter   de   övriga   operativsystemen.   Uppdateringar   släpps   något   senare   vilket   kan   ställa   till   med   problem  om  en  tillämpning  kräver  den  senaste  versionen.                                                                                                                   11  . http://java.sun.com/j2se/1.5.0/docs/guide/javaws/developersguide/syntax.ht ml   12  http://java.sun.com/docs/books/tutorial/deployment/webstart/index.html   13  http://en.wikipedia.org/wiki/Java_Web_Start  -­‐  cite_note-­‐win64-­‐2   24    .

(28)  . 25    .

References

Related documents

För att få poäng bör hemuppgifterna inlämnas senast tisdagen den

L˚ at matrisen A vara en

Trots att "punkt" och "vektor" är två olika begrepp, beräknar vi formellt bilden av en punkt på samma sätt som bilden av tillhörande

Motsvarande relation för koordinatvektorer i basen B1 resp.. (Se två föregående uppgifter

• Ange omslagsbladet klasstillhörighet : Klass A, Klass B eller Klass C eller Omregistrerad för enklare sortering. • Denna tentamenslapp får ej behållas utan lämnas in

Bestäm pyramidens höjd från punkten D (till basen ABC). b) (2p) Låt Π vara planet som går genom punkten D parallell med sidan (dvs basen) ABC. Bestäm eventuella

Kalla sökta punkten

För vilket värde på parameter a har nedanstående system (med avseende på x, y och z) oändligt många lösningar.. Lös systemet för detta värde