Precision Teaching App for Android

Størrelse: px
Begynne med side:

Download "Precision Teaching App for Android"

Transkript

1 Precision Teaching App for Android Hovedprosjekt i Informasjonsteknologi, våren 2014 Gruppe 39 Høgskolen i Oslo og Akershus Sted/dato: Høgskolen i Oslo og Akershus, Tittel: Precision Teaching App for Android Prosjektmedlemmer: Vegard Krusedokken (s164830) Ole Aarnseth (s180482) Veileder: Kirsten Ribu, Tlf.: , [email protected] Oppdragsgiver: Fakultet for helsefag, Høgskolen i Oslo og Akershus Kontaktpersoner: Børge Strømgren, Tlf.: , [email protected] Torunn Lian, Tlf.: , [email protected]

2 1 Innholdsfortegnelse 1 Innholdsfortegnelse Bildeoversikt..7 2 Sammendrag..9 3 Prosessrapport Om gruppen Om oppdragsgiver Bakgrunn for oppgaven Om Precision Teaching Dagens situasjon Mål Oppgavens mål Egne mål Planlegging Arbeidsforhold Fordeling av arbeid Styringsdokumenter Prosjekthjemmesiden Teknologier XML Java SQLite Ajax JavaScript PHP Apache HTTP Server HTML CSS JSON Dropbox MySQL Google Docs Utviklingsverktøy Gedit Eclipse Forarbeid Datainnsamling Utredning Utvikling Fase 1: Første prototype av app Synkende ProgressBar eller nedteller med sekunder?...21

3 Testing av første prototype Fase 2: Videreutvikling av prototype og utvikling av Adminnettsted Videreutvikling av prototype Versjonkontroll og backup med Dropbox Intern lagring - serialisering eller SQLite? Videreutvikling av brukergrensesnittet Innstillinger Spørsmålsvalg Ny økt Øktskjerm Utvikling av databaseserver og Adminnettsted Endringer i Adminnettstedet Forsinkelser Problemer og løsninger Android ListView markering JSON skriver ikke ut UTF-8 karakterer Feil ved laging av spørsmål Feil i dialogvinduet Testing under utviklingsfasen Systemtesting og endelig produkt Hva kunne vært annerledes Krav til lengde for spørsmålstekst Sluttdokumentasjon Konklusjon Produktrapport Beskrivelse av produkt Generell beskrivelse av Precision Teaching App Generell beskrivelse av Adminnettsted Rammekrav Krav til løsning Funksjonelle krav Økonomi Hovedfunksjoner Precision Teaching app for Android - Sentrale funksjoner Økter Velge spørsmål Tidsavgrensning Brukernavn Highscore Eksporter til epost Hurtigøkt Spørsmål hentes fra ekstern database Adminnettsted - Sentrale funksjoner

4 Meny Fagmeny Nytt fag Slette fag Endre fag Vise fag Kategorimeny Ny kategori Vise kategori Slette kategori Endre kategori Spørsmålsmeny Nytt spørsmål Slette spørsmål Endre spørsmål Vise spørsmål Ny admin Brukergrensesnitt Precision Teaching app for Android Tekniske løsninger XML Layout Android Button Android Fragment Android ListView Teknisk arkitektur Precision Teaching App for Android - intern arkitektur Teknologier SQLite AsyncTask AsyncTask i SelectCourseFragment, SelectCategoryFragment og SessionQuestionFragment Sentrale klasser User Question Answer Session Kjøring av en Precision Teaching økt Adminnettsted - intern arkitektur Class.admin.php Class.answer.php Class.category.php Class.course.php Class.dbversion.php...50

5 Class.login.php Javascript/Ajax Sikkerhet Databaseserver - intern arkitektur Konklusjon Testrapport Formål med testing Testverktøy Teknologier Eclipse IDE med debugger og emulator Mozilla Firefox med Firebug add-on ApacheBench PHP utviklingskonfigurasjon Testenheter White box og black box Testing av første prototype Fremgangsmåte Resultater Testing i utviklingsfasen Enhetstesting Enhetstesting av Android-applikasjon Enhetstesting av Adminnettsted Systemtesting Systemtesting av Android-applikasjonen Fremgangsmåte Resultater Systemtesting av Adminnettstedet Fremgangsmåte Resultater Stresstesting av server Fremgangsmåte Resultater Resultater for PHP-servicer Resultater for Adminnettsted Konklusjon Kravspesifikasjon Presentasjon Kort systembeskrivelse Funksjonelle krav Krav til Android-applikasjon Krav til økter Krav til score Krav til spørsmål....68

6 6.3.2 Krav til Database og Adminnettsted Ikke-funksjonelle krav Android-applikasjon Tekniske krav Øvrige ønsker Krav til dokumentasjon Styringsdokumentasjon Sluttdokumentasjon Risikoanalyse Brukerveiledning Innledning Brukerveiledning for Android-appen Installeringsinstruksjoner Første oppstart Hovedmeny Ny økt Velg tid Brukervalg Spørsmålsvalg Kjøring av en økt Øktslutt-dialogvindu Riktige svar Hurtigøkt Sjekk High Score Eksporter scorer til epost Innstillinger Brukerveiledning for Adminnettsted Innlogging Meny Ny admin Fagmeny Nytt fag Slette fag Endre fag Vise fag Kategorimeny Ny kategori Slette kategori Endre Kategori Vise kategori Spørsmålsmeny Nytt spørsmål Slette spørsmål....95

7 Endre spørsmål Vise spørsmål og svar Kilder Bildeoversikt Prosessrapport: Bilde : ASP.NET-versjonen av prosjekthjemmesiden Bilde : Oversikt over løsningen etter utredning Bilde 3.9.1: Oversikt over utviklingsfasene Bilde : Forslag fra oppdragsgiver og prototype...22 Bilde : Hovedmeny og Sluttøktdialog Bilde : Iterasjoner av Innstillinger-menyen Bilde : Iterasjoner av Spørsmålsvalg 25 Bilde : Iterasjoner for gangen i Ny økt.26 Bilde : Iterasjoner av øktskjerm Produktrapport: Bilde : Skjermbilde fra et spørsmål i en økt som kjører..36 Bilde : Skjermbilde fra menyen for å velge spørsmål..37 Bilde : Bilde av startsiden for innloggede brukere.39 Bilde : Eksempel på en Android layout-fil i XML-format...42 Bilde : Knapp i vanlig og trykket tilstand Bilde : Eksempel på en inaktiv knapp...43 Bilde : Eksempel på en ListView i appen Bilde 4.5.1: Oversikt over interaksjonen mellom app og database/adminnettsted...45 Bilde : SQLite-databasen er et speilbilde av MySQL-databasen..46 Bilde : Tilstandsdiagram for fragmenter med AsyncTask.48 Bilde : Klassediagram for et Session-objekt Bilde : ER-diagram over hele databasen Testrapport Bilde : Eclipse IDE med emulator og debugger..54 Bilde : Mozilla Firefox med Firebug add-on...55 Bilde : Eksempel på en funksjon som sikrer input...59 Bilde : Menyen som noen hadde litt problemer med skjønne..61 Bilde : Skjermbilde fra ApacheBench Brukerveiledning Bilde : Precision Teaching-ikonet...72 Bilde : Appen vil automatisk laste ned spørsmål ved første oppstart.73

8 Bilde : Appens hovedmeny Bilde : Før ny økt kan startes vil appen be deg om å velge kurs og kategori.75 Bilde : Brukervalg-skjermen Bilde : Spørsmålsvalg-skjermen..77 Bilde : Øktskjermen 78 Bilde : Øktsluttvinduet Bilde : Riktige svar-skjerm.. 80 Bilde : Hurtigøkt-skjerm Bilde : High Score-skjerm...82 Bilde : Eksporter til epost-skjerm Bilde : Innstillenger-menyen...84 Bilde : Innlogging-skjerm Bilde : Meny-skjerm...86 Bilde : Ny admin-skjerm.86 Bilde : Fagmeny..87 Bilde : Nytt fag-skjerm...87 Bilde : Slett fag-skjerm...88 Bilde : Endre fag-skjerm.89 Bilde : Vise fag-skjerm...90 Bilde : Kategorimeny Bilde : Ny kategori-skjerm Bilde : Slette kategori-skjerm...91 Bilde : Endre kategori-skjerm...92 Bilde : Vise kategori-skjerm.92 Bilde : Spørsmålsmeny Bilde : Nytt spørsmål-skjerm Bilde : Slette spørsmål-skjerm..95 Bilde : Endre spørsmål-skjerm Bilde : Vis spørsmål og svar-skjerm

9 2 Sammendrag Precision Teaching App for Android er en lære-app for Android som skal hjelpe studenter med å trene på vanskelige fag. Appen er basert på læringsprinsipper fra Precision Teaching, og vil utfordre studenten med en rekke multiple choice-spørsmål som må besvares innenfor en tidsfrist. Studenten får en score basert på antall riktige svar, og appen legger opp til at studenten skal forbedre denne scoren. Faglærere kan legge inn, endre og slette spørsmål som benyttes i appen gjennom et eget nettsted, dette nettstedet har vi kalt Adminnettstedet.

10 3 Prosessrapport Denne rapporten beskriver prosessen rundt utviklingen av applikasjonen og nettstedet. Dette omfatter beslutningner som ble gjort underveis, vurderinger, hvordan vi jobbet, dokumentasjon og hvilke teknologier vi benyttet. 3.1 Om gruppen Gruppen besto av to informatikkstudenter ved HiOA, Ole Aarnseth og Vegard Krusedokken. Vi har jobbet mye sammen gjennom studioløpet på høyskolen, og vet av erfaring at vi samarbeider godt med prosjektoppgaver. Veilederen vår var Kirsten Ribu, førstelektor ved fakultet for teknologi, kunst og design på HiOA. 3.2 Om oppdragsgiver Oppdragsgiveren vår var fakultet for helsefag på HiOA. Slik presenterer oppdragsgiver seg selv: Fakultet for helsefag tilbyr høyere utdanning innen helsefag og har også forsknings- og utviklingsaktiviteter innen fagområdet. Fakultetet har rundt 5300 studenter og om lag 530 ansatte, og holder til i Pilestredet i Oslo sentrum og på Kjeller og Sandvika i Akershus. 1 Våre kontaktpersoner hos oppdragsgiver var Børge Strømgren, førsteamanuensis ved fakultet for helsefag, og Torunn Lian, også førsteamanuensis ved fakultet for helsefag. 1 (lastet ned )

11 3.3 Bakgrunn for oppgaven Om Precision Teaching Precision Teaching er et undervisningsprinsipp som kan benyttes til å evaluere undervisning og trening. Opprinnelig ble det utviklet av Ogden Lindsley på 1960-tallet. Kjennetegn ved Precision Teaching er at det vektlegger tempo og presisjon, der all jobbing er tidsavgrenset. Feil blir ikke korrigert underveis. Treningsøkter er veldig korte, og prinsippet legger opp til et høyt antall repitisjoner. Resultater vises deretter som en logaritmisk skala i det som kalles Standard Endringsskjema (eng. Standard Celeration Chart.) Dermed kan studenten få en oversikt over hva hun/han trenger å øve på. Som læringsprinsipp er Precision Teaching velegnet for implementasjon i en applikasjon for smarttelefoner og nettbrett med touch-skjerm. Brukeren kan utfordres med et multiple choice -spørsmål, og trykke på svaralternativet hun/han tror er riktig Dagens situasjon Innenfor sykepleierutdanningen viser ferske tall at 1 av 3 stryker i legemidderegning. 2 På høyskolen i Oslo og Akershus strøk 6 av 10 sykerpleierstudenter i dette faget i Legemiddeldoser blir ofte angitt i milligram eller mikrogram, og riktig beregning av legemiddeldoser er veldig viktig for pasientsikkerheten innenfor helsevesenet. Derfor forlanger eksamen i legemiddelregning 100 prosent korrekte svar. For å hjelpe studenter i sykepleierutdanningen ønsket fakultet for helsefag en app basert på Precision Teaching, som skal hjelpe studentene med å bli flinkere til legemiddelregning. 2 (lastet ned ) 3 (lastet ned )

12 Appen skulle være en generell Precision Teaching-applikasjon, hvor faglærere kan legge inn spørsmål relevante for faget deres, som studentene skal trene på. I første omgang skulle den brukes til legemiddelregning, men på sikt skulle den kunne benyttes i alle fag der Precision Teachinglæringsteknikker er relevante. 3.4 Mål Oppgavens mål Formålet med oppgaven var å utvikle en Android-applikasjon som studenter skal kunne bruke til å trene på mestring og kompetanse innenfor forskjellige fag. Applikasjonen skal benytte læringsprinsipper fra Precision Teaching, der brukeren vil bli utfordret med korte treningsøkter hvor hun/han må svare på en rekke utvalgte spørsmål innenfor en gitt tidsfrist. Målet er å forbedre studentenes læring og øke studentenes kompetanse innenfor fagområdet Egne mål Et av våre mål med oppgaven er å utvikle etter beste evne et produkt som både vi og oppdragsgiver er fornøyd med. Produktet skal være brukervennlig og respondere raskt. Et annet mål er å erfare hvordan det er å utvikle et produkt for en oppdragsgiver. Dette er første gang vi jobber på et større prosjekt, og lager et ordentlig produkt for noen andre. Vi har også som mål å tilegne oss kunnskap innenfor nye områder, og friske opp gammel kunnskap. Dette er nødvendig for å få et godt resultat. 3.5 Planlegging Arbeidsforhold

13 Vi kommer til å møtes og jobbe sammen ved behov. Arbeidet vil da som regel foregå hjemme hos en av oss. Dette gjør det enklere å samarbeide og løse eventuelle problemer som dukker opp. Dersom det ikke er nødvendig å møtes vil vi jobbe hjemme hver for oss, og all kommunikasjon vil foregå via Facebook eller Skype. Siden vi har samarbeidet på tidligere prosjekter før og kjenner hverandre godt, vet vi at vi kommer til å jobbe sammen på en bra måte Fordeling av arbeid Arbeidet vil bli fordelt så jevnt som mulig. Hver person skal bidra med utviklingen av det endelige produktet, men vil ha forskjellig hovedansvar. En vil ha ansvaret for applikasjonen, mens den andre har ansvaret for nettstedet. I starten av arbeidet vil begge studenter jobbe med applikasjonen for å få ferdig en fungerende prototype så fort som mulig. Senere vil en student fokusere på applikasjonen og den andre på databaseserveren og nettstedet. Dokumentasjonsskrivingen vil bli jevnt fordelt Styringsdokumenter Statusrapport - En rapport som vi leverte i fjor, for å vise at vi var i gang med å finne oppdragsgiver. Prosjektskisse - En kort beskrivelse av oppdragsgiver og oppgaven. Forprosjektrapport - En rapport som utreder dagens situasjon for oppdragsgiver og hvilken løsning vi tenker å implementere. Inkluderer også Arbeidsplan og Risikoanalyse. Prosjektdagbok - En dagbok hvor vi fyller inn korte stikkord og sammendrag om hva vi har gjort for hver dag. Kravspesifikasjon - Utreder alle kravene for løsningen, den har blitt endret underveis. Blant annet har vi valgt å droppe kravet om Precision Teaching-spørsmål med bilder.

14 3.5.4 Prosjekthjemmesiden Bilde : Skjermbilde fra ASP.NET-versjonen av prosjekthjemmesiden. Det var et krav fra skolen å lage en hjemmeside for hovedprosjektet. På denne siden skal vi laste opp alle dokumenter som gjelder for dette hovedprosjektet. Siden ble opprinnelig skrevet i ASP.NET, men vil bli skrevet på nytt i HTML/CSS da serveren der endelig dokumentasjon skal lastes opp ikke støtter ASP.NET. 3.6 Teknologier XML

15 XML er et markeringsspråk brukt for å kode dokumenter som er lesbare for både mennesker og datamaskiner. All data organiseres i en hierarkisk struktur, der tagger gir informasjon om hva innholdet er. Hele det grafiske brukergrensesnittet til Android-applikasjonen er kodet i layout-filer som er skrevet på XML-formatet, dette gjør det lettere å lage forskjellige layouter til forskjellige skjermstørrelser Java Java er et objektorientert programmeringsspråk med fokus på prinsippet write once, run anywhere. Java-programmer kan kjøre på alle plattformer som har støtte for JVM (Java Virtual Machine). På Androidplattformen kjører Java på en egen virtuell maskin kalt Dalvik. Java er det mest brukte språket for Android-utvikling, og er et av de språkene vi behersker best. Derfor valgte vi å kode Android-applikasjonen i Java SQLite SQLite er et open source kodebibliotek som kjører en SQL-basert databasemotor. Dette muliggjør lagring og administrering av SQL-databaser internt i Android-applikasjoner. SQLite er en del av Android API-et, og Android-systemet vil automatisk ta seg av administrering databasen for appen når den opprettes. SQLite benyttes for lokal lagring av alle spørsmål og brukerdata for Android appen Ajax Ajax (Asynkron JavaScript og XML) er en webutviklingsteknikk for å lage interaktive nettsider. Det gjør at nettsiden utveksler data med serveren i bakgrunnen slik at man slipper å laste opp siden på nytt hver gang man gjør en forandring. Vi kunne litt om Ajax i forbindelse med ASP.NET og Visual Studio, men hadde liten erfaring om hvordan det ville fungere sammen med PHP. Det måtte derfor litt testing til før vi fikk den funksjonaliteten vi ønsket JavaScript JavaScript er et programmeringsspråk som ofte brukes for å tilføre dynamiske elementer til en nettside. Vi har laget en JavaScript-fil med funksjoner som overfører data til PHP-sider. Noen av funksjonene

16 oppretter også dialogvinduer hvor man må bekrefte at en handling skal utføres. Dette brukes blant annet under sletting av fag, kategori og spørsmål PHP PHP (PHP: Hypertext Preprocessor) er programmeringsspråk brukt først og fremst for utvikling av nettsider. Vi hadde opprinnelig tenkt å bruke ASP.NET og Visual Studio for utvikling av nettstedet, men siden bare en av oss kunne programmere i det valgte vi å bruke PHP istedet. PHP var noe begge kjente til fra før av, noe som ville gjøre det lettere å samarbeide for å lage nettstedet Apache HTTP Server Apache HTTP Server er et veldig populært HTTP webserver-program som utvikles av Apache-stiftelsen, og utgis med åpen kildekode. Adminnettstedet vårt kommer til å kjøre på en Apache-server HTML HTML (HyperText Markup Language) er et markeringsspråk for formatering av nettsider med hypertekst. Det brukes til å organisere informasjon slik som overskrifter, avsnitt og lister. Vi har brukt HTML for å skrive frontend-kode for nettstedet CSS CSS (Cascading Style Sheets) er et språk som benyttes til å organisere og definere utseendet på filer skrevet i HTML eller XML. Vi har laget filen Stylesheet.css som bestemmer utseendet på nettstedet JSON JSON (JavaScript Object Notation) er en åpen standard for datautveksling, som baserer seg på tekst som er lesbar både for mennesker og datamaskiner. Databaseserveren vår overfører data til Androidapplikasjonen ved hjelp av JSON Dropbox Dropbox er en gratis tjeneste på nettet hvor man kan lagre filer i skyen. Vi har ofte brukt denne tjenesten under tidligere prosjekter, og har derfor god kjennskap til den. Vi kommer til å benytte Dropbox for å ta backup av både applikasjonen og nettstedet MySQL

17 MySQL er et SQL-basert databaseadministrasjonssystem, som er veldig populært til bruk i webapplikasjoner. Alle Precision Teaching-spørsmålene til Android-applikasjonen legges på en sentral MySQL-server, som administreres fra Adminnettstedet Google Docs Google Docs er en gratis skytjeneste hvor man kan opprette, dele og redigere dokumenter i nettskyen. Vi kommer til å benytte oss av denne tjenesten til å skrive styringsdokumenter og sluttdokumentasjon for prosjektet. En nyttig funksjon er at to Google-brukere kan sømløst jobbe med samme dokument samtidig. 3.7 Utviklingsverktøy Gedit Gedit er et gratis tekstredigeringsprogram ofte brukt av Linux-brukere. Da vi fikk en Ubuntu VM av HiOA som server for nettstedet, valgte vi å bruke Gedit til å kode i. Dette er fordi det er enklere å kode inne på VM en, og fordi vi har god kjennskap til Gedit fra før av. All kode for nettstedet er derfor skrevet i dette programmet Eclipse Eclipse er en IDE (Integrated Development Environment) som brukes til å utvikle applikasjoner. Den støtter et bredt spekter av plug-ins for utvikling på mange forskjellige programmeringsspråk. Eclipse med pluginen ADT (Android Developer Tools) er en del av standard SDK-en for Android-plattformen, og derfor falt det naturlig for oss å benytte denne IDE-en til utvikling av Android-applikasjonen. 3.8 Forarbeid I dette kapittelet redegjøres det for alt forarbeid i forkant av utviklingen av produktet. Dette omfatter blant annet datainnsamling og utredning av løsning basert på innsamlede data Datainnsamling

18 Datainnsamling til oppgaven foregikk gjennom gjentatte møter med oppdragsgiver i januar og starten av februar. Møtene ble benyttet til å redegjøre for hva Precision Teaching er, siden ingen på gruppen kunne noe om disse læringsprinsippene fra før av. Det ble også diskutert hvordan Precision Teaching-teknikker kan implementeres i en applikasjon for smarttelefoner og nettbrett med touch-skjerm. Møtene ble også benyttet for å få på plass alle krav oppdragsgiver hadde til løsningen, og hvilke eventuelle krav som kunne nedprioriteres. Disse kravene ble brukt til å skrive Forprosjektrapporten, og etter hvert en overordnet kravspesifikasjon for løsningen Utredning Etter å ha diskutert med oppdragsgiver og veileder, besluttet vi at løsningen skulle bestå av en Androidapplikasjon og en databaseserver. Faglærere måtte få tilgang til databaseserveren på en eller annen måte, vi valgte å gjøre det via et enkelt PHP-basert nettsted som ligger på samme server. Dette nettstedet fikk etterhvert navnet Adminnettsted. Android-applikasjonen måtte hente spørsmålene fra databaseserveren. Etter en epostkorrespondanse med Torunn Gjester, faglærer for fagene Databaser og Apputvikling på HiOA, kom vi fram til at en PHPservice som henter ut dataene og gjør dem tilgjengelig som en JSON-tekststreng, ville være den enkleste løsningen. Android-applikasjonen skulle benytte spørsmålene til å utfordre brukeren i tidsavgrensede økter, hvor bruker måtte svare riktig på flest mulig spørsmål før tidsfristen gikk ut. Score ble beregnet ut ifra antall riktige og feil per økt, og dette skulle lagres. Vi kom fram til at bruker måtte benytte seg av et brukernavn i appen, og at scorer brukeren hadde oppnådd skulle lagres under dette brukernavnet. Med disse kravene skrev vi første utkast til en overordnet kravspesifikasjon. Vi kom fram til at databaseserveren skulle kjøre en LAMP-stack bestående av Ubuntu, Apache, MySQL og PHP. Etter at utredningsfasen var konkludert, og vi hadde nok krav å jobbe med, begynte vi med utvikling av produktet.

19 Bilde : Oversikt over løsningen vi kom fram til etter utredning.

20 3.9 Utvikling I dette kapittelet redegjøres det for utviklingsprosessen for Android-applikasjonen og databaseserveren med Adminnettstedet. Utviklingen er delt inn i to faser: Bilde 3.9.1: Oversikt over utviklingsfasene for Android-applikasjonen, databaseserveren og Adminnettsted.

21 3.9.1 Fase 1: Første prototype av app Vi begynte å jobbe med første prototype for Android-applikasjonen tidlig i februar, etter at vi var ferdige med datainnsamling og utredning. Vi hadde fått utlevert et Android-nettbrett til utvikling, og planen var å utvikle en prototype på nettbrettet som kunne vises fram til oppdragsgiver. Utviklingen av første prototype gikk rimelig kjapt. I fjor høst hadde vi begge tatt faget Apputvikling, et eget fag som handler om utviklig av Android-applikasjoner. Vi var derfor godt kjent med Android API-et og trengte ikke lære noe mye nytt. I et dokument fra oppdragsgiver var det inkludert et forslag til hvordan appen kunne se ut. I det bildet var grensesnittet organisert med spørsmålsteksten på toppen av siden, med svaralternativer under organisert som en liste. I vår prototype valgte vi å avvike litt fra den layouten, for mer effektiv bruk av skjermplass. Feltet for spørsmålstekst ble gjort større, siden spørsmålene ofte kan være lange. Istedet for å organisere svaralternativene som en liste, valgte vi å sette dem opp som en 2x2 tabell under spørsmålsteksten, så appen fikk bedre vertikal plass. Feltet rundt spørmålsteksten ble farget lyseblå, mens svaralternativene ble lysegrønne, dette for å skape et skille mellom teksten og svaralternativene Synkende ProgressBar eller nedteller med sekunder? På toppen skulle en GUI-widget angi hvor mye tid som var igjen av økten. Vi diskuterte en stund om vi bare skulle vise antall sekunder og telle disse ned, eller vise tiden grafisk med en synkende ProgressBar. Vi landet til slutt på en synkende ProgressBar, etter å ha kommet fram til at en grafisk representasjon ville virke mindre distraherende og være mer diskret under en økt. Når første prototype var ferdig, så den sånn ut:

22 Bilde : T.v. er forslaget fra oppdragsgiver, t.h. er hvordan første prototype ble seende ut. Bilde : T.v. er hovedmenyen, t.h. er dialogvinduet som viser score etter endt økt.

23 Testing av første prototype Første prototype ble ferdig rundt midten av februar, da organiserte vi et nytt møte med oppdragsgiver for å prøve ut prototypen. Prøvekjøringen gikk over all forventning, og oppdragsgiver var meget positiv til prototypen. Eneste kritikk var at score-vinduet burde fokusere mer på antall riktige. Ellers fikk vi høre at prototypen hadde truffet spikeren på hodet. Med testing konkludert gikk vi over til fase 2 av utviklingen Fase 2: Videreutvikling av prototype og utvikling av Adminnettsted Videreutvikling av prototype Videreutvikling av prototypen ble gjort av gruppemedlem Ole Aarnseth. Fra starten av mars til tidlig mai ble prototypen videreutviklet. Alle de viktigste kravene til appen skulle implementeres i løpet av det tidsrommet. Ole opererte med en liste over krav, og jobbet seg nedover listen ved å implementere kravene Versjonkontroll og backup med Dropbox Kildekoden for appen ble lagt ut på en Dropbox-mappe bare gruppemedlemmene hadde tilgang til. Hver gang et nytt krav hadde blitt implementert, ble det regnet som en ny versjon og lastet opp på Dropbox. Å legge kildekoden i nettskyen gjorde at vi kunne utvikle på mange forskjellige datamaskiner. Tidligere versjoner ble også liggende på Dropbox, hovedsaklig til bruk i prosessdokumentasjon Intern lagring - serialisering eller SQLite? Når appen skulle utvikles måtte vi velge hvordan lokal data for appen skulle lagres. Valget sto mellom serialisering, en metode der Java-objekter blir fysisk skrevet til en fil; eller SQLite, en SQLdatabasemotor som følger med Android API-et og muliggjør opprettelse av en lokal SQL-database. Valget falt på SQLite. Hvis vi hadde gått for serialisering hadde vi måtte skrive våre egne søkemetoder for å lete etter objekter, mens i SQLite kan data søkes opp med enkle SQL-setninger. I tillegg var det

24 praktisk med tanke på at spørsmålene skulle hentes fra en ekstern MySQL-database, med SQLite kunne vi speile denne databasen i appen Videreutvikling av brukergrensesnittet I tillegg til nye funksjoner, har brukergrensesnittet til Android-applikasjonen gjennomgått forskjellige iterasjoner i utviklingsprosessen Innstillinger Innstillinger-menyen er den menyen som har endret seg mest under utviklingen. Når den først ble implementert inneholdt den en liste for å velge kurs, og en rød knapp for å hardkode inn dummydata for testing av SQLite-databasen (denne knappen ble fjernet i den endelige utgaven.) Lenger ut i utviklingsprosessen ble kursvalg-listen flyttet til sitt eget vindu, Innstillinger-menyen fikk lagt til en knapp for å laste ned nye spørsmål, samt knapper for å velge kurs og kategori for øktene, og en knapp for å slette en bruker (og all scoredata lagret på brukeren), i tillegg til en knapp for å sette URLadressen til databaseserveren som appen henter spørsmål fra. Den røde knappen for å hardkode databasen ble fjernet. Bilde : T.h. den tidligste iterasjonen av Innstillinger-menyen, t.v. er slik den ser ut i siste iterasjon.

25 Spørsmålsvalg Menyen for valg av spørsmål endret seg litt fra første iterasjon. Menyen inneholder en rullbar liste der bruker velger spørsmål for økten ved å markere dem i listen. I siste iterasjon ble det lagt til knapper for å velge kurs og kategori, tilsvarende de i Innstillinger-menyen. Bilde : T.v. er første iterasjon av spørsmålsvalg, t.h. er siste iterasjon.

26 Ny økt Gangen i grensesnittet for å komme i gang med en ny økt, ble endret da vi under testing konkluderte med at den første iterasjonen inneholdt for mange menyer som bruker måtte gjennom. Vi endret på dette ved å flytte valg av kategori til spørsmålsvalg-menyen, der kategorivalg kan bringes opp med en knapp. Dermed tvinges ikke bruker til å velge kategori hver gang en ny økt skal startes, og vi fikk redusert antall menyer som må gjennomgås. Bilde : Antall menyer bruker må gjennom for å starte en ny økt reduseres i siste iterasjon.

27 Øktskjerm Øktskjermen har fra første prototype vært forholdsvis uforandret. Feltet for spørsmålstekst og knappene med svaralternativer har blitt gjort større, for å ha nok plass til spørsmål med opptil 250 bokstaver. Større knapper er også lettere å trykke på, og gir dermed bedre brukervennlighet. Bilde : T.v. øktskjerm fra prototypen, t.h. øktskjerm fra siste iterasjon Utvikling av databaseserver og Adminnettsted

28 Etter at første prototype av applikasjonen var ferdigtestet, begynte gruppemedlem Vegard Krusedokken å utvikle nettstedet. Under tidligere møter med oppdragsgiver ble det utredet noen få krav til nettstedet. Et av disse kravene var at kun faglærere skulle få tilgang til nettstedet. Et annet krav var at brukerne skulle kunne opprette, endre, slette og vise spørsmål. Det var ellers ingen andre krav, og vi stod ganske fritt til hvordan vi kunne lage nettstedet. Det første som ble laget var indeks-siden, som er den siden man kommer til når man kobler seg til nettstedet. Det ble deretter opprettet en header-fil som blir inkludert på alle synlige sider. Denne filen har en svart bakgrunn med HiOA-logoen og tittelen Precision Teaching. Den har også to lenker: hjem og logg inn. Det ble etter dette laget to div-tags som former to søyler med grå bakgrunn. Søylene er spredd til venstre og høyre. Utseendet til nettstedet ble definert i filen Stylesheet.css. Etter at indeks-siden ble opprettet og utseendet var definert, ble innloggingssiden laget. Det ble lagt til en overskrift, to inputfelt og en knapp for å logge seg inn. Det var et inputfelt for epost, og et inputfelt for passord. Etter dette ble klassen class.login.php påbegynt. Da hver tabell i databasen trengte funksjoner som opererte mot dem, fant vi det naturlig å løse oppbygningen av nettstedet i backend på en objektorientert måte i form av PHP-klasser. Disse klassene er omtalt i produktrapporten. Når innloggingsfunksjonene var på plass ble det laget en ny header-fil, samt en ny indeks-side for innloggede brukere. Filen er helt lik som den første header-filen bortsett fra at den har lenken logg ut istedenfor logg inn. Det ble deretter opprettet en meny som er inkludert på alle sider brukerne har tilgang på som innlogget. Da menyen var på plass ble de andre sidene opprettet en etter en. Først en side for å opprette brukerkontoer, deretter sider for å håndtere fag, så sider for kategorier, og til slutt sider for spørsmål Endringer i Adminnettstedet Det har blitt foretatt en rekke endringer underveis i utvikling av nettstedet. Istedenfor å dele inn menyen i flere undermenyer, var det bare èn stor meny. Dette ble endret etter testing av veileder på grunn av estetiske og praktiske årsaker. Størrelsen på lenkene i menyen er også forandret. De er nå bedre adskilt og lettere å trykke på. Vi la også til flere lenker enkelte steder for å bedre navigasjonen og flyten på nettstedet. I starten brukte vi ikke JavaScript og Ajax. Vi fant fort ut at det var nødvendig å bruke disse, da det var tungvint å måtte laste opp siden på nytt hver gang vi gjorde en handling. Det var også tungvint siden man

29 måtte velge fra drop down -listene på nytt hver gang et spørsmål ble laget. Vi trengte også dialogvinduer for å sikre enkelte funksjoner, for eksempel sletting. Dette ble innført slik at brukeren hadde mulighet for å angre handlingen. Brukervennligheten økte betraktelig da vi tok i bruk JavaScript og Ajax. Vi gjorde også noen endringer i databasen. Før hadde alle brukere av nettstedet tilgang til alt innholdet i databasen. De kunne se og endre på alt som hadde blitt opprettet. Dette ble gjort om på slik at brukeren kun kunne se og forandre det han selv hadde laget. Vi løste dette ved å legge til en fremmednøkkel (AdminID) i hver gjeldende tabell, og tilpasse alle funksjoner som ble berørt av dette. Denne endringen ble innført etter diskusjon med oppdragsgiver. En siste endring ble gjort under systemtestingen. Istedenfor å ha radiobuttons som bestemmer hvilket svar som er riktig, gjorde vi så første svar alltid er riktig. Denne endringen kom etter ønske fra oppdragsgiver Forsinkelser Noen ganger har vi måtte fokusere tiden vår på obliger i andre fag, men bortsett fra det har det ikke oppstått noen store forsinkelser Problemer og løsninger I dette kapittelet redegjøres det for noen av problemene vi hadde underveis Android ListView markering Et problem vi støttet på underveis var en ganske merkelig oppførsel i ListView-objektet i spørsmålsvalgmenyen. Når flere spørsmål ble markert kunne det hende at objekter nederst i listen også ble markert. Grunnen til denne oppførselen var at Android API-et resirkulerer Views i ListViewen for å øke ytelsen når listen rulles. Vi fikk løst problemet ved å skrive egne ListView-adaptere, der koden som resirkulerer Views sørger for at Views som er markerte får denne markeringen fjernet før resirkulering.

30 JSON skriver ikke ut UTF-8 karakterer Når vi kodet PHP-servicene som skulle hente ut data fra MySQL-databasen og sende til appen som en JSON-tekststreng, så vi at JSON-strengen som kom ut hadde hoppet over alle UTF-8 karakterer. For å lage JSON-tekststrengen brukte vi PHP-funksjonen json_encode(). LAMP-serveren kjørte på det tidspunktet PHP 5.3, i denne versjonen støtter ikke denne funksjonen UTF-8 karakterer, istedet blir de hoppet over. Løsningen på problemet ble å oppdatere LAMP-serveren til PHP 5.4. I denne versjonen kan funksjonen json_encode() kalles med konstanten JSON_UNESCAPED_UNICODE, som gjør at funksjonen ikke hopper over UTF-8 karakterer Feil ved laging av spørsmål Det oppstod noen feil ved laging av spørsmål på nettstedet. En feil var at plusstegnet ikke kom med når man satte inn spørsmålet i databasen. Dette til tross for at filterfunksjonen tillot plusstegn. Vi prøvde å fjerne filterfunksjonen for å se om det kom med da, men plusstegnet ble fortsatt ikke lagret. Vi fant ingen løsning på denne feilen. En annen feil vi oppdaget når vi lagde spørsmål var at UTF-8 karakterer ikke ble registrert i databasen på en korrekt måte. Det ble registrert helt andre tegn enn æ, ø, å. Denne feilen ble løst ved å bruke mysqli_set_charset() i de forskjellige funksjonene Feil i dialogvinduet Opprinnelig hadde vi tenkt at dialogvinduet, som dukker opp ved sletting av fag og kategorier på nettstedet, skulle vise navnet på faget og kategorien som ble slettet. Grunnet en uidentifisert feil fikk vi ikke dette til å fungere Testing under utviklingsfasen Under utvikling av Android-applikasjonen og Adminnettstedet ble hver funksjon enhetstestet med white box-testing under implementering. Koden ble kvalitetssikret med det mål at ingenting skulle generere en fatal exception og få programmet til å kræsje. For å sikre dette ble feks. funksjoner skrevet med kode som

31 skulle blokkere såkalt bad input, og deretter testet mot test cases som inneholdt bad input for å sjekke at koden fungerte som den skulle. Enhetstestingen vår beskrives i detalj i Testrapporten Systemtesting og endelig produkt Systemtesting ble utført den 21. mai ved oppdragsgivers lokaler i Wergelandsveien 27. Kontaktperson Børge Strømgren og et utvalg studenter fikk prøve appen på nettbrettet, samt teste ut Adminnettstedet på en laptop. Testen beskrives i detalj i Testrapporten. Gjennom dette prosjektet har vi etter beste evne forsøkt å lage et produkt som skal oppfylle kravene til oppdragsgiver. Etter at systemtesting ble utført fikk vi veldig gode tilbakemeldinger. Løsningen kan forbedres på noen områder, og det endelige produktet kan videreutvikles. I skrivende stund har vi ikke rukket å tilpasse layoutene for smarttelefoner, så appen vil kjøre best på Android-nettbrett. Dette vil komme i framtiden Hva kunne vært annerledes Krav til lengde for spørsmålstekst Et problem vi støttet på gjaldt oppdragsgivers krav til lengde på spørsmålstekst. Kravet lå på maksimalt 250 bokstaver, noe som bød på utfordringer når grensesnitt for smarttelefoner med mindre skjermer skulle utvikles. Skriften måtte krympes en del for å få plass til 250 bokstaver. Problemet med dette kravet rakk vi ikke ta opp med oppdragsgiver, konsekvensen er at spørsmålsteksten kan oppleves som liten når appen kjøres på smarttelefoner med mindre skjermer.

32 3.14 Sluttdokumentasjon Når sluttdokumentasjon skulle skrives så vi først på en mal vi fikk av veileder, samt malen til Ann-Mari Torvatn. I tillegg så vi også på hva mange andre tidligere grupper gjorde, og vurderte selv hva som passet til denne prosjektoppgaven. Etter å ha diskutert med veileder, endte vi opp med å avvike en del fra malene. All dokumentasjon ble skrevet på Google Docs og lagret på Googles skylagringstjeneste Google Drive. Fordelen med Google Docs er at dokumenter kan redigeres fra en hvilken som helst datamaskin med internettilkobling og nettleser, i tillegg til at flere brukere kan jobbe samtidig med samme dokument. Dette gjorde det enkelt å samkjøre dokumentasjonen. Sluttrapporten er delt inn i mange kapitler og underkapitler, og består av følgende hoveddeler: Produktrapport: Tar for seg det endelige produktet for prosjektet. Prosessrapport: Tar for seg arbeidsprosessen som resulterte i produktet. Testrapport: Tar for seg hvordan testing ble utført, blant annet brukertesting. Brukerveiledning: Forklarer hvordan Android-applikasjonen og Adminnettstedet skal brukes. Vedlegg: Diverse styringsdokumenter og endelig kravspesifikasjon Konklusjon Gjennom studieløpet vårt på Høyskolen i Oslo og Akershus er dette det største prosjektet vi har jobbet med. Det har vært en tidkrevende, men lærerik prosess. Læringskurven har vært bratt noen steder, men erfaringene vi har fått har vært verdt det. Prosjektet har gitt oss en bedre forståelse for hvordan større prosjekter burde takles, og vi har erfart viktigheten av god planlegging med krav og frister. Samarbeidet har vært bra hele veien, med god kommunikasjon med både veileder og oppdragsgiver. Med dette har vi fått et produkt vi er stolte over og veldig mye verdifull erfaring på veien.

33 4 Produktrapport I denne rapporten gis det en detaljert beskrivelse av produktet, dette omfatter Precision Teaching applikasjonen for Android-enheter, samt Adminnettstedet for databasen som benyttes av appen. 4.1 Beskrivelse av produkt Generell beskrivelse av Precision Teaching App Precision Teaching app for Android er en læreapp ment for studenter hos Høyskolen i Oslo og Akershus. Appen skal benytte læringsprinsipper fra det som kalles Precision Teaching. Formålet er at studenter skal kunne benytte appen til å øve på mestring og forbedre kompetansen innenfor forskjellige fag. 4 Appen vil fungere ved at brukeren blir utfordret med en rekke multiple choice -spørsmål, der brukeren skal svare riktig på flest mulig spørsmål innenfor en tidsavgrensning. Dette kalles en økt, og økter kan ha tidsavgrensninger fra 10 sekunder og opptil 1 minutt Generell beskrivelse av Adminnettsted 4 Fag der Precision Teaching-teknikker er relevante.

34 Nettstedets oppgave er å gi faglærere et verktøy for å kunne administrere innholdet i "Precision Teaching"-appen. Det gir lærerne mulighet til å legge inn fag, kategorier, spørsmål og svar inn i en database. Når læreren er ferdig med å legge inn spørsmål, kan han gjøre det nye innholdet klart for nedlastning. Elever vil da kunne laste ned det nye innholdet fra databasen til appen. Det vil også være mulig for lærerne å endre og slette innholdet i databasen. 4.2 Rammekrav Her beskrives de rammekrav som ble satt før utvikling begynte Krav til løsning Funksjonelle krav Precision Teaching app for Android Bruker skal utfordres av treningsøkter, med multiple choice spørsmål. Hvert spørsmål skal ha opptil fire svaralternativer. Hver treningsøkt skal være tidsavgrenset. Svaralternativene skal stokkes om hver gang et spørsmål vises. Bruker skal kunne velge tidsfrist på økt. Hver treningsøkt skal inneholde flere spørsmål enn det brukeren rekker å svare på innenfor tidsfristen. Scorer for hver økt skal lagres under et individuelt brukernavn for hver bruker av appen. Applikasjonen skal etter hver økt vise hvor mange riktige og hvor mange feil bruker hadde. Bruker skal ha mulighet til å se hva som var feil, etter endt økt. Frekvens for antall riktige og antall feil delt på tid for hver økt, skal lagres lokalt under brukernavnet. Rådataene for frekvens for alle økter gjennomført i løpet av en dag, skal kunne sendes til evt. faglærere. Applikasjonen skal hente spørsmål fra en ekstern database, og lagre disse lokalt.

35 Applikasjonen skal kunne sjekke om databasen har blitt endret, og oppdatere de lokale spørsmålene deretter. Bruker skal kunne velge i en liste hvilke spørsmål som skal trenes på i økten. Etter endt økt skal bruker kunne velge om hun/han vil øve på de samme spørsmålene eller en annen kategori. Adminnettsted Faglærere skal ha tilgang til Adminnettstedet. Faglærere skal autentisere seg for nettstedet med brukerkontoer (som består av brukernavn/epost og passord). Faglærere skal kunne opprette/endre/slette spørsmål, fag og kategorier i Adminnettstedets database. Spørsmålene skal lagres i en database. Databaseserveren skal gjøre spørsmålene tilgjengelig for Android applikasjonen Tekniske krav Applikasjonen skal utvikles for Androidplattfomen, og minimumsversjonen for å kjøre applikasjonen skal være Android 2.2 (API 8). Applikasjonen skal kodes i Java Runtime Environment 1.5. Applikasjonen skal utvikles i Eclipse IDE med ADT Bundle. Adminnettstedet skal utvikles i HTML, CSS, PHP og Javascript. Gedit skal brukes til å skrive kildekoden til Adminnettstedet. JSON skal brukes for å overføre data fra Adminnettsted til applikasjonen. Serveren for Adminnettstedet skal kjøre en LAMP stack som skal bestå av Ubuntu Linux, Apache HTTP Server, MySQL og PHP.

36 4.2.2 Økonomi Dette er i hovedsak en nullbudsjettsoppgave, men Høyskolen i Oslo og Akershus skal låne oss et Androidnettbrett til utvikling. I tillegg skal vi få en virtuell maskin på en av høyskolens servere til Adminnettstedet. 4.3 Hovedfunksjoner Precision Teaching app for Android - Sentrale funksjoner Økter Den alle mest sentrale funksjonen for appen å kjøre såkalte økter, det vil si utfordre brukeren med en rekke spørsmål innenfor en tidsavgrensning. Brukeren trykker på svaret hun/han tror er riktig, så vil neste spørsmål vises. Rekkefølgen på spørsmål er tilfeldig, og svaralternativene bytter plass for hver visning. Når tiden er over vil brukeren få vite hvor mange riktige og feil hun/han hadde.

37 Bilde : Skjermbilde fra et spørsmål i en økt som kjører Velge spørsmål Brukeren velger selv hvilke spørsmål som inngår i en økt. Minimum to spørsmål må velges for at økten skal starte. Spørmål er fordelt på kategori, som igjen er fordelt på kurs.

38 Bilde : Skjermbilde fra menyen for å velge spørsmål Tidsavgrensning Bruker velger selv hvilken tidsavgrensning hun/han ønsker. Tidene som kan velges er 10 sekunder, 15 sekunder, 30 sekunder og 1 minutt Brukernavn Når en økt skal kjøres må bruker velge et brukernavn. Antall riktige/feil for hver eneste økt som gjennomføres vil bli lagret under dette brukernavnet Highscore Bruker kan se alle scorene som er lagret på et brukernavn i en såkalt highscore -liste, der alle score blir vist i en liste ordnet etter antall riktige.

39 Eksporter til epost Bruker kan også få alle scorer (antall riktige/feil) som er registrert på samme dato skrevet ut til en tekstfil, som eksporteres som vedlegg til Android-enhetens epostklient og kan sendes til feks. faglærer Hurtigøkt Bruker kan velge å spille en av de 10 sist spilte øktene gjennom Hurtigøkt-funksjonen Spørsmål hentes fra ekstern database Alle spørsmålene vil bli hentet fra en ekstern databaseserver på høyskolen. Første gang appen startes opp vil spørsmål lastes ned automatisk. Etter dette kan bruker velge å sjekke om nye spørsmål til appen er tilgjengelig, og isåfall laste ned disse. Som nevnt tidligere er alle spørsmål fordelt på kategori, som igjen er fordelt på kurs. For eksempel kan kurset Matematikk inneholde kategoriene Addisjon og Subtraksjon, og disse kategoriene vil da inneholde addisjonsspørsmål og subtraksjonsspørsmål Adminnettsted - Sentrale funksjoner Som nevnt tidligere er nettstedets oppgave å gi faglærere et verktøy for å kunne administrere innholdet i "Presicion Teaching"-appen. Det er kun faglærere som vil få tilgang til nettstedet. De vil få rettigheter til å opprette, endre og slette fag, kategorier og spørsmål. De vil også ha mulighet til å se hva de har laget. Faglærere vil kun se hva de selv har laget, ikke hva andre lærere har opprettet. Under følger et bilde av startsiden for innloggede brukere. For flere bilder se brukerveiledningen.

40 Bilde : Bilde av startsiden for innloggede brukere Meny Etter at faglærer har logget seg inn vil det dukke opp en meny på venstre side. Denne menyen er inndelt i Fag, Kategori, Spørsmål og Ny admin. Disse er igjen inndelt i nye lenker for å lage, slette, endre eller vise, bortsett fra Ny admin som kun kan opprette nye brukerkontoer for nettstedet. Det er også lagt til flere lenker rundt omkring på nettstedet for å skape redundans og gjøre det lettere å navigere Fagmeny Denne menyen inneholder seks lenker. De fire første lenkene er "Nytt fag", "Slette fag", "Endre fag" og "Vis fag". De to siste lenkene er "Kategori" og "Spørsmål" som linker til menyene for kategori og spørsmål Nytt fag På denne siden oppretter man fag. Den har også to lenker til sidene for å lage kategori og spørsmål. Dette er gjort for å skape redundans og en bedre flyt i bruk av nettstedet Slette fag Denne siden viser hvilke fag man kan slette. Et dialogvindu sikrer at slettingen går riktig for seg.

41 Endre fag På denne siden kan man endre navn på fagene. Man velger fra en liste hvilket fag man vil endre på Vise fag Her vises alle fag som brukeren har laget Kategorimeny Denne menyen inneholder seks lenker. De fire første er "Ny kategori", "Endre kategori", "Slette kategori" og "Vis kategori". De resterende to linker til fagmenyen og spørsmålsmenyen Ny kategori Her kan man lage nye kategorier som skal tilhøre et fag. Man kan velge fra en liste hvilket fag kategorien skal tilhøre. Det finnes også to lenker til sidene for å opprette fag og spørsmål Vise kategori Denne siden viser alle kategorier som brukeren har lagt inn ved å velge fag fra en liste. Den viser også hvilke kategorier som er ferdige og klare for nedlastning Slette kategori På denne siden kan man slette kategorier. Kategoriene dukker opp ved å velge fag fra en liste. Et dialogvindu sikrer at slettingen går riktig for seg Endre kategori Her kan brukeren endre navn på kategorier som han har lagt inn Spørsmålsmeny Spørsmålsmenyen inneholder seks lenker. Disse lenkene er "Nytt spørsmål", "Slette spørsmål", "Endre spørsmål" og "Vis spørsmål", samt lenkene "Fag" og "Kategori". De to sistnevnte lenkene linker til fagmenyen og kategorimenyen.

42 Nytt spørsmål På denne siden kan man legge inn nye spørsmål og svar. Når man er ferdig med å legge inn spørsmål, kan man gjøre det nye innholdet klart for nedlastning. Brukeren får også se hvilket spørsmål og hvilke svar han lagde. Det finnes også to knapper som linker til sidene for å opprette nye fag og kategorier Slette spørsmål Her kan man slette spørsmål. Spørsmålene dukker etter at man har valgt fag og kategori fra to lister. Et dialogvindu sikrer at slettingen går riktig for seg Endre spørsmål På denne siden kan man endre på spørsmål. Man velger fag, kategori og det spørsmålet man vil endre fra noen lister Vise spørsmål Denne siden viser spørsmål og svar som brukeren har lagt inn. De dukker opp etter at man har valgt fag, kategori og det spørsmålet man vil se nærmere på fra noen lister Ny admin Her kan man opprette nye brukerkontoer for faglærere. Det er to inputfelt for å skrive inn epost og passord.

43 4.4 Brukergrensesnitt Precision Teaching app for Android For en Android-applikasjon ment for mobile enheter med touch-skjerm, så vil det grafiske brukergrensesnittet ha meget stor betydning for brukeropplevelsen. Smarttelefoner med mindre skjermer byr ofte på design-utfordringer, siden man da har mindre brukbar skjermplass til applikasjonens grensesnitt Tekniske løsninger XML Layout I Android API-et er det vanlig at GUI-en blir definert i layout-filer som er skrevet på XML-format. På denne måten kan man enkelt bygge opp forskjellige layouter som er spesialtilpasset de mange forskjellige skjermstørrelser Android-enheter kan komme i.

44 Bilde : Eksempel på en Android layout-fil i XML-format Android Button Button er en GUI widget i Android API-et som representerer en enkel knapp ment for touch-skjermer. Knappene vi har benyttet i appen er hovedsaklig lyseblå eller lysegrønne, og vil skifte til en mørkere fargetone når de blir trykket på, for å indikere ovenfor bruker at knappen er trykket inn. Knapper som er inaktive5 er grået ut, for å indikere at de ikke er trykkbare. Bilde : Eksempel på en knapp i appen, t.v. i vanlig lyseblå farge; t.h. er den trykket inn, og har derfor en mørkere fargetone. 5 At en knapp er inaktiv vil si at den ikke vil gjøre noe når den trykkes inn, grunnet at den mangler de rette parametre for å foreta den tiltenkte handlingen. Hurtigøkt -knappen vil feks. være inaktiv hvis appen ikke finner noen lagrede økter.

45 Bilde : Eksempel på en inaktiv knapp Android Fragment Fragmenter i Android API-et representer en bit av grensesnittet med egne GUI-layouter. Fragmenter har en egen livssyklus fra skapelse til destruering, og egne input events. Appen benytter fragmenter for å skape et dynamisk og kjapt grensesnitt, for god brukeropplevelse. Alle menyer i appen er et eget Fragment, og appen navigerer fra meny til meny ved å utføre en fragmenttransaksjon. I tillegg benyttes også Fragmenter til å kjøre AsyncTask-operasjoner, mer om dette i AsyncTask-delen på side Android ListView ListView er en GUI widget i Android API-et som viser rullbare lister med objekter som er trykkbare. Brukeren kan rulle gjennom listen ved å gjøre vertikale swipe -bevegelser på touch-skjermen, og velge et objekt ved å trykke på det. I noen lister kan bruker kun velge ett objekt, mens i andre må bruker markere flere objekter i listen.

46 Bilde : Eksempel på en ListView i appen. 4.5 Teknisk arkitektur Alle spørsmålene som benyttes i appen hentes fra databasen, og faglærere kan legge inn, redigere og slette spørsmål i databasen via Adminnettstedet, som befinner seg på samme server som databasen.

47 Bilde 4.5.1: Helhetlig oversikt over interaksjonen mellom app og database/adminnettsted. Videre følger eksempler på hvordan kildekoden for både app og Adminnettsted er bygget opp Precision Teaching App for Android - intern arkitektur Teknologier SQLite

48 For intern lagring av spørsmål benytter appen seg av SQLite, det er et open source kodebibliotek som kjører en SQL-basert databasemotor. Dette muliggjør lagring og administrering av SQL-databaser internt i Android-applikasjoner. SQLite er en del av Android API-et, og Android-systemet vil automatisk ta seg av administrering databasen for appen når den opprettes. SQLite-databasen som benyttes i appen er et speilbilde av av MySQL-databasen på serveren. Appen vil hente alt innhold fra tabellene Course, Category, Question og Answer i MySQL-databasen, og lagre det lokalt med SQLite. Bilde : SQLite-databasen er et speilbilde av MySQL-databasen AsyncTask

49 AsyncTask er en klasse i Android API-et som på en enkel måte muliggjør kjøring av tidkrevende operasjoner i en bakgrunnstråd. Appen benytter AsyncTask til blant annet databaseoperasjoner på den lokale SQLite-databasen, samt til å laste ned spørsmål fra den eksterne databaseserveren. Alle AsyncTask-objekter i appen kjører inni et Fragment-objekt, der fragmentets retaininstance -attributt er satt til true. Når et fragment har retaininstance, vil instansen av fragmentet overleve at den omsluttende aktiviteten destrueres og gjenskapes på nytt. Dermed vil AsyncTask-objektet kjøre uavbrutt inni fragmentet, uansett om aktiviteten destrueres og gjenskapes AsyncTask i SelectCourseFragment, SelectCategoryFragment og SessionQuestionFragment For å gi brukeren mulighet til å velge kurs, kategori og spørsmål for en økt, benytter appen seg av fragmentene SelectCourseFragment, SelectCategoryFragment og SessionQuestionFragment. Disse Fragmentene er internt bygget opp på samme måte, der objektene fra databasen vises i en ListView. Når fragmentet opprettes, eller tegner opp grensesnittet på nytt, vil den først sjekke om den har objektene til listen fra før av, hvis ikke vil objektene hentes fra den lokale SQLite-databasen med en AsyncTask, og et dialogvindu med en progressbar vil vises mens AsyncTasken kjører.

50 Bilde : Tilstandsdiagram som viser hvordan fragmentene henter objektene fra databasen og viser dem i ListView Sentrale klasser Siden appen er kodet i java, er den basert i objektorientert programmering. Her er noen av de viktigste klassene for appens interne programlogikk User User-klassen representerer brukeren som kjører en Precision Teaching-økt Question Question-klassen representerer et spørsmål. Den inneholder opptil 4 Answer-objekter i en array Answer Answer-klassen representerer et svar som er tilknyttet et Question-objekt Session Session-klassen representer en Precision Teaching-økt. Den inneholder alle Question-objekter som inngår i økten i en array, i tillegg til andre variabler som øktens tidsavgrensning, samt et User-objekt som økten er knyttet til og øktens score.

51 Bilde : Klassediagram for et Session-objekt, som her eksempelvis inneholder 4 Question-objekter i arrayen Kjøring av en Precision Teaching økt Når er Precision Teaching økt kjøres, vil hvert spørsmål hentes fra Session-objektet ved å kalle objektets nextquestion()-metode. Denne metoden vil sørge for at et tilfeldig spørsmål vises, og hindre at samme spørsmål vises to ganger på rad. Svarene til et spørsmål vil stokkes om for hver visning. Når bruker besvarer et spørsmål, vil det registreres om svaret var riktig eller galt, og score settes ut ifra det (antall riktige/feil.) Så vil neste spørsmål hentes med nextquestion(). Når tiden er over og økten er ferdig vil scoren i Session-objektet lagres i SQLite-databasen, deretter vil objektets score nullstilles, og en ny økt kan kjøres med samme Session-objekt Adminnettsted - intern arkitektur Nettstedets oppbygning i backend er løst på en objektorientert måte. Den består av forskjellige PHPklasser som hver representerer en tabell i databasen. Disse klassene er "class.admin.php",

52 "class.answer.php", "class.category.php", "class.course.php", "class.question.php" og "class.dbversion.php". Den har også en klasse, "class.login.php", som håndterer alle funksjoner for å logge seg inn på nettstedet Class.admin.php Denne klassen inneholder alle funksjoner for å opprette nye brukerkontoer for faglærere. Den sjekker også at all input er korrekt, og rapporterer til brukeren dersom det oppstår noen feil Class.answer.php Klassen inneholder en funksjon for å lage svar. Den har også en filterfunksjon for å sikre input Class.category.php "class.category.php" består av mange forskjellige funksjoner for å behandle kategorier. Den har funksjoner for å opprette, vise, endre og slette kategorier. Det finnes også mange ulike funksjoner som sikrer at bruker fyller inn korrekt input, og som sier ifra hvis det er noen feil Class.course.php Denne klassen fungerer på samme måte som "class.category.php", men behandler fag istedenfor kategorier Class.dbversion.php "Class.dbversion.php" inneholder en funksjon for å oppdatere tabellen Version hver gang innholdet i databasen blir endret Class.login.php Som nevnt tidligere håndterer denne klassen alle funksjoner for å logge seg inn på nettstedet. Den sjekker at brukernavn og passord er korrekte, og bruker også en tilfeldig generert token for ekstra sikkerhet. Klassen sikrer også input, og sier i fra hvis det oppstår feil. Økten ("session") blir også registrert med id, epost og kryptert passord Javascript/Ajax I tillegg til PHP-klassene nevnt ovenfor bruker nettstedet Javascriptet "functions.js". Dette skriptet inneholder flere funksjoner som overfører verdier over til andre PHP-sider. Disse verdiene blir blant annet brukt for å opprette objekter av forskjellige typer, som igjen blir brukt til å populere "drop down"-lister og

53 vise tabeller. De blir også brukt ved sletting og under opprettelse av spørsmål og svar. Dette er gjort for å slippe å laste inn siden på nytt hver gang man lager et spørsmål. Det gjør også at man slipper å laste inn innholdet i "drop down"-listene manuelt via knapper Sikkerhet Nettstedet er sikret på flere måter. For det første finnes det filterfunksjoner i de ulike PHP-klassene som fjerner uønskede tegn. Dette bidrar til å sikre mot "sql-injection". For det andre blir det tatt i bruk en "session token" for å indentifisere økten når man logger seg inn. Hver side sjekker om brukeren er logget inn. Hvis han ikke er det, blir han omdirigert til startsiden for nettstedet. Alle passord i databasen er også kryptert med sha256. Ved tilkobling og spørring mot databasen er det brukt mysqli istedenfor mysql. Dette er gjort da mysqli er en nyere og sikrere versjon enn mysql Databaseserver - intern arkitektur

54 Databaseserveren som administreres gjennom Adminnettstedet kjører MySQL for Ubuntu. Android-applikasjonen kobler seg til databasen gjennom noen PHP-skript som skriver ut de relevante tabellene som en JSON-tekststreng. Den interne oppbygningen i databasen er relativt ukomplisert, nedenfor følger et ER-diagram. Bilde : ER-diagram over hele databasen. 4.6 Konklusjon Utifra de krav som ble gitt, og de implementasjoner vi har gjort, har vi levert et rimelig tilfredsstillende produkt. Det er brukervennlig, responderer raskt og følger kravene vi fikk av oppdragsgiver. I skrivende stund har vi ikke rukket å få på plass spesialtilpassede layouter for Android-smarttelefoner, så appen vil fungere best på nettbrett. 5 Testrapport

55 I denne rapporten beskriver vi testingen av Android-applikasjonen og Adminnettstedet. Testingen har foregått på flere måter. Gruppemedlemmene har kontinuerlig enhetstestet sin egen kode under utviklingen. Første prototype ble testet av oppdragsgiver. Da nettstedet var på plass, ble også dette testet av oppdragsgiver. Systemtesting av det endelige produktet fant sted etter utviklingsfasen, med påfølgende stresstest av server. 5.1 Formål med testing Det finnes flere formål med testing av produkter. Et formål er at det avdekker feil i produktene. Et annet formål er at det sjekker at produktene oppfører seg slik de er ment å gjøre. Det sikrer også at produktene oppfyller kravene satt av oppdragsgiver, samt er testing nyttig for å oppdage svakheter i design og brukervennlighet. Stresstesting av servere er også nødvendig for å kunne evaluere kapasiteten og hvor mange brukere serveren kan tjene. 5.2 Testverktøy

56 5.2.1 Teknologier Eclipse IDE med debugger og emulator Til å utvikle Android-applikasjonen benyttet vi Eclipse IDE med plugin-en Android Deceloper Tools. Denne plugin-en har mulighet til å emulere Android-enheter og kjøre applikasjonen direkte i Eclipse IDE, og kombinere dette med debugger-funksjonen i Eclipse som viser hvor feil oppstår i koden under kjøring. Bilde : Eclipse IDE med emulator og debugger Mozilla Firefox med Firebug add-on For å teste Adminnettstedet, samt finne ut antall HTTP requests nettstedet og PHP-servicene tengte, benyttet vi nettleseren Mozilla Firefox med Firebug add-on. Den lar oss inspisere HTML og CSS kode, samt verdien av PHP POST og GET variabler mens de kjører. I tillegg er den nyttig for å måle nettverksytelsen.

57 Bilde : Mozilla Firefox med Firebug add-on ApacheBench ApacheBench er et verktøy som følger med Apache HTTP Server, og er ment for stresstesting av Apacheserveren og måling av hvor mange HTTP requests serveren klarer å takle. ApacheBench ble benyttet for å stressteste Adminnettstedet og PHP-servicene som Android-applikasjonen kobler seg til PHP utviklingskonfigurasjon Under utvikling av Adminnettstedet ble konfigurasjonsfilen til PHP satt til utviklingsinnstillinger. Med utviklingsinnstillinger vil PHP gi feilmeldinger direkte til nettleseren når feil i koden oppstår under kjøring, dette er nødvendig for å enkelt teste og kvalitetssikre PHP-koden.

58 5.2.2 Testenheter Samsung P7500 Galaxy Tab G CPU: ARM Cortex-A9 Dual-core 1 GHz Minne: 1 GB RAM OS: Android 3.1 (Honeycomb) Skjerm: 10 tommer Dette var hovedenheten som vi benyttet under utvikling av Android-applikasjonen, samt prototypetesting og systemtesting hos oppdragsgiver. Selvbygget Windows 7 PC CPU: Intel Core 2 Quad 3,2 GHz (overklokket) Minne: 4 GB RAM OS: Microsoft Windows 7 32 bit Dette var PC-en som ble benyttet til å emulere mange forskjellige Android-enheter i Eclipse IDE, som også ble benyttet til testing under utvikling av Android-applikasjonen. Lenovo Windows 8 Laptop CPU: Intel Core 2,2 GHz Minne: 8 GB RAM OS: Microsoft Windows 8 64 bit Denne bærbare PC-en ble brukt under utvikling av første prototype. Den ble senere benyttet til å programmere og teste nettstedet.

59 5.3 White box og black box Gjennom denne testrapporten blir uttrykkene white box og black box brukt for å beskrive tester. White box referer i denne rapporten til testing av den interne kildekoden, der kjennskap til denne koden er nødvendig for testingen. Formålet er å avdekke svakheter og feil i kildekoden, og korrigere disse feilene. All enhetstesting gjort av gruppemedlemmene har vært av typen white box. Black box referer til funksjonstesting av produktet, der testeren ikke bryr seg om den interne kildekoden for produktet. Formålet er å teste at produktet fungerer som det skal, at funksjonene gjør det de skal, og oppfyller kravene til produktet. All testing gjort av oppdragsgiver har vært av typen black box. 5.4 Testing av første prototype Testingen av første prototype foregikk i Wergelandsveien 27 hos oppdragsgiver. Vi benyttet oss av Samsung Galaxy Tab-nettbrettet Fremgangsmåte Oppdragsgiver ble gitt nettbrettet med prototypen til applikasjonen lastet inn, og skulle da prøve ut prototypen og evaluere om den oppfylte de kravene som hadde blitt diskutert ved tidligere møter. Oppdragsgiver hadde null innsikt i den bakenforliggende kildekoden til prototypen, så dette er derfor å regne som en black box-test Resultater Etter å ha utført testen var oppdragsgiver meget positiv til prototypen, og hadde veldig lite kritikk å komme med. Vi fikk skryt for å ha laget et enkelt no-nonsense brukergrensesnitt, og oppdragsgiver mente at prototypen oppfylte kravene i meget stor grad.

60 5.5 Testing i utviklingsfasen Enhetstesting Under utvikling av både Adminnettsted og Android-applikasjon ble enhetstesting utført under implementasjon av krav for å kvalitetssikre koden. Koden ble white box -testet ved at vi lagde forskjellige test cases for de relevante kodesnuttene som skulle testes, og kontrollerte at kodesnuttene ga forventet resultat basert på test casene Enhetstesting av Android-applikasjon Android-applikasjonen ble enhetstestet ved å designe test cases for de relevante kodesnuttene, og deretter kontrollere oppførsel og resultat ved hjelp av debuggeren i Eclipse IDE. En hendig funksjon som hyppig ble benyttet var Log-funksjonen i Android API-et. Denne funksjonen gjør det mulig å skrive ut verdien til en variabel under kjøring direkte til LogCat-konsollen i Eclipse IDE. På denne måten kunne vi enkelt sjekke at alle variabler i appliksjonen hadde forventede verdier, og dermed sørge for at programlogikken gikk som forventet Enhetstesting av Adminnettsted For å vise eventuelle feilmeldinger, måtte vi som nevnt tidligere endre utviklingsinstillingene i konfigurasjonsfilen til PHP. Adminnettstedet ble enhetstestet på samme måte som Android-applikasjonen ved å designe test cases for de relevante kodesnuttene. Deretter kontrollerte vi oppførselen og resultatet ved hjelp av feilmeldingene som dukket opp i nettleseren. Etter dette tok vi høyde for disse feilmeldingene i kodingen. De ulike PHP-klassene inneholder funksjoner som reflekterer dette. Dersom det oppstår en feil, blir det kastet en Exception med en egendefinert feilmelding. Alle Exceptions blir lagret i en Array og blir printet ut når feilen oppstår. Brukeren får da beskjed om hva feilen var i nettleseren.

61 Bilde : Eksempel på en funksjon som sikrer input. 5.6 Systemtesting Etter et utviklingsfasen for Android-applikasjonen og Adminnettstedet var ferdig, ble det foretatt systemtesting hos oppdragsgiver på Wergelandsveien 27. Testenheten for Android-applikasjonen var Samsung Galaxy Tab-nettbrettet, mens Adminnettstedet ble testet på Lenovo-laptopen til gruppemedlem Vegard Systemtesting av Android-applikasjonen Formålet med systemtesting av Android-applikasjonen var å evaluere brukervennligheten til applikasjonen, samt evaluere i hvor stor grad applikasjonen oppfylte kravene som oppdragsgiver hadde satt under tidligere møter.

62 Fremgangsmåte Oppdragsgiver hadde samlet et utvalg av studenter fra Institutt for atferdsvitenskap på HiOA, som skulle prøve ut applikasjonen på nettbrettet. Før hver test ble applikasjonens lokale data slettet, så hver gang den ble kjørt fikk testeren oppleve applikasjonen under såkalt first run -tilstand der spørsmål lastes ned automatisk. For hver test ble studenten gitt nettbrettet og bedt om å starte applikasjonen, uten noen ytterligere instruksjoner. Deretter skulle studenten klare å starte en ny økt og kjøre økten, uten noen hjelp eller veiledning fra vår side. Vi skulle observere hvordan studenten taklet oppgaven, om hun/han hadde noen problemer underveis, og hvor lett det var å utføre oppgaven. Dette var for å evaluere brukervennligheten til applikasjonen. Etter hver test ble studenten stilt diverse spørsmål om applikasjonens brukervennlighet. I tillegg skulle også oppdragsgiver prøvekjøre applikasjonen, for å evaluere om den oppfylte kravene som var blitt satt Resultater Alle studentene klarte på egenhånd å starte en ny økt og kjøre gjennom denne økten, helt uten hjelp. Når de ble stilt spørsmål om applikasjonens brukervennlighet, uttrykte alle studentene at de mente at den var meget enkel å bruke. En student bemerket at han syntes skriften var noe liten, men alle var positive til applikasjonens brukervennlighet. Under vår observasjon av testene, merket vi at noen studenter hadde litt problemer med en meny i applikasjonen. Problemet gjaldt spørsmålsmenyen, der flere spørsmål må markeres i en liste og ny økt startes ved å trykke på Start ny økt. Noen brukte litt lang tid på å skjønne at de måtte markere flere objekter i listen for å starte en ny økt. Til tross for at noen brukte lengre tid, klarte alle å komme gjennom menyene på egen hånd, og ingen uttrykte at de hadde problemer.

63 Bilde : Menyen som noen hadde litt problemer med skjønne. Oppdragsgiver fikk også teste applikasjonen, og gikk gjennom absolutt alle funksjoner. Han uttrykte at applikasjonen oppfylte kravene som hadde blitt diskutert, og hadde veldig lyst til å ta den i bruk ved fakultet for helsefag til høsten Systemtesting av Adminnettstedet Hensikten med systemtestingen av Adminnettstedet var i likhet med testingen av Android-applikasjonen å sjekke nettstedets brukervennlighet, samt å finne ut i hvilken grad det oppfylte oppdragsgivers krav Fremgangsmåte Da det kun er faglærere som skal bruke nettstedet, ble testingen utført av oppdragsgiver. Oppdragsgiver logget seg inn på nettstedet og testet de ulike funksjonene uten hjelp fra vår side. Dersom noe var uklart forklarte vi funksjonene. Deretter stilte vi noen spørsmål om brukervennlighet og responsivitet, og om det ellers var noen annen kritikk av nettstedet.

64 Resultater Oppdragsgiver kom seg fort inn i gangen i systemet. De fleste funksjoner fungerte slik de skulle bortsett fra noen få unntak. Det oppstod en feil når man skulle velge hvilket svar som var riktig, og plusstegn kom ikke med under opprettelse av spørsmål. Når man lagde navn på fag og kategori kom ikke tall med i navnet. Dette var egentlig ikke en feil, men var fordi filterfunksjonen ikke var satt til å tillate tall. Vi tenkte ikke over at fagnavn som regel inneholder tall. Filterfunksjonen ble fikset på stedet. Alt i alt var oppdragsgiver fornøyd med nettstedet. Han syntes det var enkelt å bruke, responderte raskt og var godt lesbart. Utseendemessig beskrev han det som rent og ryddig, uten mye dall. Det eneste han ville endre på var måten man valgte riktig svar på. Istedenfor å ha radiobuttons som bestemmer hvilket svar som er riktig, ville han gjøre så det første svarfeltet alltid er riktig. Denne endringen ble innført senere på dagen etter at testingen var ferdig. 5.7 Stresstesting av server Etter systemtesting hos oppdragsgiver ble serveren for databasen og Adminnettsted stresstestet. Serveren kjørte Apache på en Ubuntu virtuell maskin, så programverktøyet ApacheBench ble benyttet. Formålet med stresstesting er å måle ytelsen til serveren, og se hvor mange brukere den takler. 6 Ytelsen til Adminnettstedet og PHP-servicene som applikasjonen kobler seg til, ble målt separat, da disse kommer til å ha forskjellig antall brukere Fremgangsmåte 6 Ytelsen for den virtuelle maskinen vil variere med trafikken på høyskolens servere, disse testene er bare ment for å gi en generell pekepinn på hvor mange brukere den takler.

65 Stresstestingen fokuserer på hvor mange samtidige (concurrent) brukere serveren klarer å takle. For å kunne måle dette måtte vi finne ut hvor mange HTTP requests Adminnettstedet og PHP-servicene trengte for å lastes ned. Til dette formålet benyttet vi nettleseren Mozilla Firefox med Firebug add-on. Vi fant ut at Adminnettstedet trenger mellom 1-3 requests, mens PHP-servicene trengte bare 1. Dermed anslo vi at for Adminnettstedet er 1 bruker lik 3 requests, mens for PHP-servicene er 1 bruker lik 1 request. Med disse tallene målte vi hvor mange samtidige brukere serveren takler med ApacheBench. Bilde : Skjermbilde fra ApacheBench Resultater Resultater for PHP-servicer: Antall brukere Antall requests Total tid brukt 0,055 sekunder 0,059 sekunder 0,11 sekunder 0,19 sekunder 1,979 sekunder Lengste request 55 ms 57 ms 107 ms 183 ms 1975 ms Evaluering OK OK OK OK Treg

66 ,285 sekunder 10,605 sekunder 12,489 sekunder ms ms ms - Treg Treg Treg Gikk ikke Som man ser i tabellen, gir serveren lav responstid opp mot 130 samtidige brukere, over dette går responstiden kraftig opp. Opp mot 570 brukere får responstiden en jevn stigning, og med 600 samtidige brukere klarer den ikke svare. Utifra disse tallene anslår vi at fakultet for helsefag kan benytte PHP-servicene på serveren uten å oppleve noe nevneverdig treghet. Vi ser på det som usannsynlig at fakultetet kommer til å få over 130 brukere til å laste ned spørsmål på nøyaktig samme tidspunkt Resultater for Adminnettsted: Antall brukere Antall requests Total tid brukt 0,02 sekunder 0,049 sekunder 0,06 sekunder 1,636 sekunder 3,799 sekunder 5,399 sekunder - Lengste request 19 ms 45 ms 53 ms 1628 ms 3787 ms 5390 ms - Evaluering OK OK OK Treg Treg Treg Gikk ikke Utifra tallene så vil Adminnettstedet kunne tjene opptil 43 brukere samtidig uten treghet. Fra 50 til 190 brukere blir nettstedet merkbart tregere, og ved 200 samtidige brukere svarer den ikke. Nå skal disse tallene tas med en klype salt, vi har tatt utgangspunkt i at 1 bruker = 3 requests, men i virkeligheten varierer antallet requests en bruker trenger mellom 1-3. Forholdene som stresstesten simulerer er et worst case -scenario, der alle brukere trenger 3 requests og alle requests er samtidige.

67 5.8 Konklusjon Denne testrapporten gir en oversikt over hvordan testingen i dette prosjektet har blitt gjennomført. Dette omfatter blant annet enhetstesting under utviklingsfasen, testing av første prototype og systemtesting hos oppdragsgiver, samt stresstest av server. Enhetstestingen under utviklingsfasen har hjulpet oss med å kvalitetssikre koden vår, og sørge for at produktene kjører stabilt uten å kræsje. Protoypetest og systemtest hos oppdragsgiver har hjulpet oss med å evaluere brukervennligheten til produktenen, samt evaluere i hvilken grad produktene oppfyller kravene vi ble enige om. Stresstest av server ga en pekepinn på hvor stort kapasitet den virtuelle Ubuntu-maskinen på HiOAs servere hadde. Dette var veldig nyttig for å kunne vurdere hvor mange brukere som kan benytte seg av Adminnettstedet og laste ned spørsmål til app via PHP-services.

68 6 Kravspesifikasjon 6.1 Presentasjon Tittel Precision Teaching App for Android Oppgave Å lage en Android app som skal benyttes av studenter for å øve på fagpensum. Appen skal ta i bruk prinsipper fra Precision Teaching, der brukeren blir utfordret av en rekke multiple choice-spørsmål med tidsbegrensning. Score og progresjon for hver økt skal lagres, så brukeren blir motivert til forbedring. Gruppemedlemmer Ole Aarnseth, s Vegard Krusedokken, s Prosjektgruppe Gruppe 39 Veileder Kirsten Ribu [email protected] Tlf.: Oppdragsgiver Børge Strømgren Institutt for Adferdsvitenskap Fakultet for Helsefag på HiOA [email protected] Torunn Lian Institutt for Adferdsvitenskap Fakultet for Helsefag på HiOA [email protected]

69 6.2 Kort systembeskrivelse Systemet består av en Android-applikasjon som kjøres lokalt på smarttelefoner og nettbrett. I tillegg har systemet en ekstern MySQL-database, som befinner seg på en virtuell Ubuntu-maskin hos Høyskolen i Oslo og Akershus. Ved å ta i bruk prinsipper fra Precision Teaching, kan applikasjonen benyttes til å forbedre mestring og kompentanse innenfor forskjellige fagområder. Studenten utfordres av multiple choice-spørsmål med tidsavgrensning. Disse spørsmålene blir hentet fra MySQL-serveren, og lagres deretter lokalt på telefonen/nettbrett. I første omgang vil den bli tatt i bruk av studenter ved fakultet for helsefag ved HiOA, for å trene på legemiddelregning.

70 6.3 Funksjonelle krav Krav til Android-applikasjon Krav til økter Bruker utfordres av treningsøkter, med multiple choice spørsmål. Svaralternativene stokkes om hver gang et spørsmål vises. Bruker kan velge tidsfrist på økt. Hver treningsøkt inneholder flere spørsmål enn det brukeren rekker å svare på innenfor tidsfristen. Før en økt begynner må bruker angi et individuelt brukernavn, som identifiserer brukeren. Applikasjonen viser etter hver økt hvor mange riktige og hvor mange feil bruker hadde. Bruker har mulighet til å se hva som var feil, etter endt økt. Hver treningsøkt er tidsavgrenset. Applikasjonen har støtte for både norsk og engelsk språk Krav til score Scorer for hver økt lagres under et individuelt brukernavn for hver bruker av appen. Frekvens for antall riktige og antall feil delt på tid for hver økt, lagres lokalt under brukernavnet. Rådataene for frekvens for alle økter gjennomført i løpet av en dag, kan sendes til evt. faglærere Krav til spørsmål Applikasjonen kan hente spørsmål fra en ekstern database, og lagre disse lokalt. Applikasjonen kan sjekke om databasen har blitt endret, og oppdatere de lokale spørsmålene deretter. Bruker kan velge i en liste hvilke spørsmål som skal trenes på i økten. Etter endt økt kan bruker kunne velge om hun/han vil øve på de samme spørsmålene eller en annen kategori. Hvert spørsmål består av tekst. Hvert spørsmål kan ha opptil fire svaralternativer. Spørsmål skal fordeles på kategorier som igjen fordeles på fag.

71 6.3.2 Krav til Database og Adminnettsted Faglærere har tilgang til Adminnettstedet. Faglærere kan autentisere seg for nettstedet med brukerkontoer (som består av epost og passord). Faglærere kan opprette/endre/slette spørsmål, fag og kategorier i Adminnettstedets database. Spørsmålene kan lagres i en database. Databaseserveren kan gjøre spørsmålene tilgjengelig for Android applikasjonen. 6.4 Ikke-funksjonelle krav Android-applikasjon Grensesnittet skal være tilpasset for svaksynte og fargeblinde. Applikasjonen skal reagere kjapt på tastetrykk, så det ikke oppfattes som tregt. 6.5 Tekniske krav Applikasjonen skal utvikles for Androidplattfomen, og minimumsversjonen for å kjøre applikasjonen skal være Android 2.2 (API 8). Applikasjonen skal kodes i Java Runtime Environment 1.6. Applikasjonen skal utvikles i Eclipse IDE med ADT Bundle. Adminnettstedet skal utvikles i HTML, CSS, PHP og Javascript. Gedit skal brukes til å skrive kildekoden til Adminnettstedet. JSON skal brukes for å overføre data fra Adminnettsted til applikasjonen. Serveren for Adminnettstedet skal kjøre en LAMP stack som skal bestå av Ubuntu Linux, Apache HTTP Server, MySQL og PHP. 6.6 Øvrige ønsker Studenter skal kunne legge inn egne spørsmål, og kunne kjøre treningsøkter med disse i tillegg til spørsmål fra faglærere. Faglærere skal kunne legge inn bilder i tillegg til skriftlige spørsmål.

72 6.8 Krav til dokumentasjon Styringsdokumentasjon Prosjektskisse Prosjektdagbok Forprosjektrapport Arbeidsplan og fremdriftsplan Kravspesifikasjon (overordnet) Sluttdokumentasjon Prosessdokumentasjon Kravspesifikasjon (endelig) Produktdokumentasjon Testdokumentasjon Brukerveiledning 6.9 Risikoanalyse Risiko Sannsynlighet Sykdom eller skade. Middels Konsekvens Lav, ved kortvarig sykdom. Høy, ved langvarig sykdom Dårlig samarbeid. Lav Alvorlig Manglende motivasjon. Middels Middels Tiltak Jevn arbeidsfordeling, lett tilgjengelighet av all dokumentasjon og kildekode. Jevnlige møter og tett kommunikasjon. Oppmuntre hverandre, pauser ved utbrenning, hjelpe hverandre hvis noen står fast.

73 Tekniske problemer. Middels Alvorlig Mangel på tid. Middels Middels Backup av alt materiale på minnepenn og i nettskyen. Nøye planlegging og effektiv jobbing. 7 Brukerveiledning Dette er en brukerveiledning for Android-applikasjonen og Adminnettstedet. Brukerveiledningen tar for seg hvordan man kan bruke disse produktene steg for steg med forklarende tekst og bilder. 7.1 Innledning Android-applikasjonen er en lære-app ment for å hjelpe studenter med å trene på fagstoff. Appen bruker læringsprinsipper fra Precision Teaching, og utfordrer brukeren med økter der bruker må besvare en rekke multiple choice-spørsmål innenfor en tidsfrist. Appen henter spørsmålene fra en database, som administreres fra at nettsted vi har valgt å kalle Adminnettstedet. Dette nettstedet gjør det mulig for faglærere å administrere spørsmålene som brukes i appen. I denne brukerveiledningen vil vi ta for oss bruk av både Android-applikasjon og Adminnettsted.

74 7.2 Brukerveiledning for Android-appen Android-applikasjonen er en lære app som benytter læringsprinsipper fra Precision teaching, og er ment for å hjelpe studenter med å trene på fagstoff som kan være utfordrende og stiller høy krav til mestring. Nedenfor følger en brukerveiledning for Android-applikasjonen Installeringsinstruksjoner For å installere appen må du tillate installasjon av ikke-markedsprogrammer: 1. På Android-enheten din, gå til Innstillinger. 2. Velg Programmer. 3. Huk av for "Tillat installering av ikke-markedsprogrammer". NB! Vi har ikke rukket på dette tidspunktet å tilpasse grensesnittet til appen for smarttelefoner, så appen bør kjøres på et Android-nettbrett (10 tommer). 1. Koble Android-enheten din til en PC med USB-kabel. 2. Kopier filen "PrecisionTeaching.apk" over til Android-enheten. 3. På Android-enheten, gå til filutforskeren (Mine filer) og finn det stedet du la filen. 4. Trykk på filen, og velg "Bekreft og installer", og trykk Installer. 5. Appen kan startes ved å trykke på "Precision Teaching"-ikonet i Programmer-menyen.

75 Bilde : Precision Teaching-ikonet Første oppstart Første gang du starter opp applikasjonen vil den automatisk koble seg til databaseserveren og laste ned spørsmål. Hvis Android-enheten ikke er tilkoblet internett, vennligst koble til internett og prøv igjen. Bilde : Appen vil automatisk laste ned spørsmål ved første oppstart. Når spørsmålene er lastet ned, vil du komme til hovedmenyen for appen.

76 7.2.3 Hovedmeny Bilde : Appens hovedmeny. Appens hovedmeny inneholder følgende valg:

77 Ny økt: Start en ny Precision Teaching-økt. Hurtigøkt: Gå til Hurtigøkt-funksjonen, kun tilgjengelig hvis tidligere økter er lagret. Sjekk High Score: Sjekk highscores for alle økter som er kjørt. Innstillinger: Gå til Innstillinger for appen Ny økt Du kan starte en ny Precision Teaching-økt ved å velge Ny økt i hovedmenyen. Hvis du ikke har valgt Kurs eller Kategori, vil appen be deg om å velge dette. Bilde : Før ny økt kan startes vil appen be deg om å velge kurs og kategori.

78 Velg tid Når du har valgt kurs og kategori, eller hvis dette tidligere er valgt, vil du komme til tidsvalg-menyen. Her velger du ønsket varighet for økten din. Du kan velge fra 10 sekunder og opptil 1 minutt. Etter å ha valgt tid vil du komme til brukervalg-menyen: Brukervalg Bilde : Brukervalg-skjermen. I brukervalg-menyen kan du velge en bruker for økten din, eller lage en ny bruker ved å trykke Lag ny bruker. Alle high scorene du oppnår vil bli registrert under brukeren du velger.

79 Etter å ha valgt bruker for økten vil du komme til spørsmålsvalg-menyen Spørsmålsvalg

80 Bilde : Spørsmålsvalg-skjermen. I spørsmålsvalg-menyen kan du velge hvilke spørsmål du ønsker å trene på i økten din. Du må velge minst 2 spørsmål for å kunne starte økten. Du kan også endre kurs eller kategori med knappene Velg kurs og Velg kategori. Når du har valgt spørsmålene dine trykker du Start ny økt for å kjøre økten Kjøring av en økt Bilde : Øktskjermen.

81 Under en økt vil du bli utfordret til å besvare så mange av spørsmålene som mulig før tiden renner ut. Spørsmål besvares ved å trykke på svaret du tror er riktig. Når et spørsmål besvares vil neste spørsmål vises. Hvilket spørsmål som er neste er helt tilfeldig. For hver gang et spørsmål vises i en økt, vil svarene stokkes om. Når tiden er over, vil du få opp Øktslutt-dialogvinduet Øktslutt-dialogvindu Bilde : Øktsluttvinduet, til høyre med Vis riktig svar-knapp, til venstre uten. I øktslutt-vinduet kan du se scoren din for gjeldede økt. Trykk Ny runde for å kjøre en ny økt med samme spørsmål, eller Hovedmeny for å gå tilbake til hovedmenyen for appen. Noen ganger vi du også få opp en knapp som heter Vis riktige svar, trykk på denne for å gå til riktige svar-skjermen.

82 Riktige svar

83 Bilde : Riktige svar-skjerm. I skjermen for riktige svar vises alle besvarte spørsmål i en liste, der svaret som ble valgt vises i den blå boksen, mens riktig svar vises i den grønne. Trykk Ny runde for a starte en ny økt med samme spørsmål, eller Hovedmeny for å gå til hovedmenyen Hurtigøkt

84 Bilde : Hurtigøkt-skjerm. Velger du Hurtigøkt i hovedmenyen kommer du til hurtigøkt-skjermen vist ovenfor. Her kan du velge en av de 10 siste øktene du spilte. Når du velger en økt, vil du komme til brukervalg-menyen. Etter å ha valgt bruker, vil økten begynne. NB! Når du laster ned nye spørsmål fra databaseserveren, vil alle dine lagrede økter her slettes Sjekk High Score

85 Bilde : High Score-skjerm. Velger du Sjekk High Score i hovedmenyen vil du komme til brukervalgmenyen. Velg brukeren du vil sjekke high score for, og du vil komme til high score skjermen, vist ovenfor. Denne skjermen rangerer alle scorer du har oppnådd etter antall riktige. Trykk Eksporter scorer til epost for å gå til eksporter til epost-funksjonen Eksporter scorer til epost

86 Bilde : Eksporter til epost-skjerm. Her kan du eksportere alle scorene som er registrert for en dato til en tekstfil, og legge den til som et vedlegg i epost. Velg datoen du vil eksportere, så vil alle scorene dine for den datoen skrives til en tekstfil, og epostklienten til Android-enheten åpnes med tekstfilen som vedlegg Innstillinger

87 Bilde : Innstillenger-menyen. Velger du Innstillinger i hovedmenyen kommer du til Innstillinger-menyen. Her kan du gjøre følgende ting: Last ned nye spørsmål: Trykker du denne knappen vil appen sjekke databaseserveren om nye spørsmål er tilgjengelige. Hvis det fins nye spørsmål, vil du bli spurt om du ønsker å laste ned de nye spørsmålene. NB! Dette vil slette alle lagrede økter i Hurtigøkt-funksjonen. Velg kurs og Velg kategori: Trykk på disse knappene for å velge kurs og kategori for økter. Slett bruker: Trykk her for å slette en bruker. Du vil komme til en brukervalg-meny, der du velger brukeren du ønsker å slette. NB! Sletter du en bruker vil alle scorer lagret på brukeren også slettes. Sett database URL adresse: Her kan du sette URL-adressen til databaseserveren som spørsmål hentes fra. Når du skriver inn adressen og trykker Ok vil appen sjekke om den får kontakt med databaseserveren på adressen, hvis den får kontakt vil adressen lagres. Default-adresse er hp2.vlab.cs.hioa.no, trykk Bruk default for å bruke den.

88 7.3 Brukerveiledning for Adminnettsted Adminnettstedets oppgave å gi faglærere et verktøy for å kunne administrere innholdet i "Precision Teaching"-appen. Under følger en veiledning for hvordan man kan bruke nettstedet Innlogging Bilde : Innlogging-skjerm. For å logge seg inn må man skrive inn epost og passord. Eposten for admin er [email protected] med passord Kaffetrakter1986. Dersom det oppstår en feil vil man få beskjed om dette.

89 7.3.2 Meny Bilde : Meny-skjerm. Etter at faglærer har logget seg inn vil det dukke opp en meny på venstre side. Denne menyen er inndelt i Fag, Kategori, Spørsmål og Ny admin. Disse er igjen inndelt i nye lenker for å lage, slette, endre eller vise, bortsett fra Ny admin som kun kan opprette nye brukerkontoer for nettstedet. Det er også lagt til flere lenker rundt omkring på nettstedet for å skape redundans og gjøre det lettere å navigere Ny admin Bilde : Ny admin-skjerm

90 For å opprette en ny brukerkonto for en faglærer trykker man på lenken "Ny admin". Deretter skriver man inn sin epostadresse og ønsket passord. Til slutt får man beskjed om operasjonen var vellykket eller ikke Fagmeny Bilde : Fagmeny. Denne menyen inneholder seks lenker. De fire første lenkene er "Nytt fag", "Slette fag", "Endre fag" og "Vis fag". De to siste lenkene er "Kategori" og "Spørsmål" som linker til menyene for kategori og spørsmål.

91 7.3.5 Nytt fag Bilde : Nytt fag-skjerm. For å opprette et fag klikker man på lenken "Nytt fag". Deretter skriver man inn det ønskede navnet på faget, og trykker på knappen "Lagre fag". Etter dette gis det beskjed om at faget er blitt lagt til i databasen. Dersom det skulle oppstå en feil vil man få informasjon om dette Slette fag

92 Bilde : Slett fag-skjerm. Ved sletting av fag, trykk på lenken "Slett fag". Da vil det dukke opp en liste over tilgjengelige fag som faglæreren selv har lagt inn. Hvert fag har en lenke ved siden av seg som det står "slett" på. Dersom denne lenken blir trykket på, får man opp et dialogvindu hvor man bekrefter at man virkelig vil slette faget. Når faget blir slettet vil alle tilhørende kategorier og spørsmål også bli fjernet. Lista over fagene blir så oppdatert Endre fag

93 Bilde : Endre fag-skjerm. Trykk på lenken "Endre fag" for å endre navn på fag. Velg deretter hvilket fag som skal endres, skriv inn det nye navnet og trykk på knappen "Endre fag". Til slutt får man beskjed om operasjonen var vellykket eller ikke.

94 7.3.8 Vise fag Bilde : Vise fag-skjerm. For å se hvilke fag man har lagt inn i databasen, trykk på lenken "Vis fag". Da dukker det opp en liste over disse fagene Kategorimeny Bilde : Kategorimeny. Denne menyen inneholder seks lenker. De fire første er "Ny kategori", "Endre kategori", "Slette kategori" og "Vis kategori". De resterende to linker til fagmenyen og spørsmålsmenyen.

95 Ny kategori Bilde : Ny kategori-skjerm. Trykk på lenken "Ny kategori" for å lage en ny kategori. Velg deretter hvilket fag kategorien skal tilhøre, og skriv inn navnet på kategorien. Etter dette får man beskjed om kategorien ble lagret eller ikke Slette kategori Bilde : Slette kategori-skjerm. For å slette en kategori må man først trykke på lenken Slette kategori. Velg deretter et fag fra drop down -lista for å få oversikt over hvilke kategorier som tilhører det valgte faget. Trykk til slutt på lenken Slett for å slette kategorien.

96 Endre Kategori Bilde : Endre kategori-skjerm. Trykk på lenken Endre kategori. Velg deretter fag og hvilken kategori du vil endre navn på. Skriv etter dette inn det nye navnet på kategorien og trykk på knappen Lagre kategori Vise kategori Bilde : Vise kategori-skjerm.

97 Trykk på lenken "Vis kategori". Velg deretter fag fra "drop down"-lista for å vise tilhørende kategorier. Det vises også en oversikt over hvilke kategorier som er klare for nedlastning Spørsmålsmeny Bilde : Spørsmålsmeny. Spørsmålsmenyen inneholder seks lenker. Disse lenkene er "Nytt spørsmål", "Slette spørsmål", "Endre spørsmål" og "Vis spørsmål", samt lenkene "Fag" og "Kategori". De to sistnevnte lenkene linker til fagmenyen og kategorimenyen.

98 Nytt spørsmål Bilde : Nytt spørsmål-skjerm. For å lage et nytt spørsmål må man trykke på lenken "Nytt spørsmål". Deretter velger man fag og kategori fra "drop down"-listene. Hvis det ønskede faget eller kategorien ikke eksisterer, kan man trykke på knappene "Nytt fag" eller "Ny kategori". Da havner man på sidene for å opprette disse. Under knappene er det et tekstfelt som brukes til å skrive inn spørsmål. Her står det også informasjon om hvordan man oppretter et spørsmål. Etter å ha skrevet spørsmålet, må man skrive inn svar. Det må være minst to svar. Det første svaret man skriver inn vil bli det riktige svaret. De andre svarene vil bli feil. Trykk til slutt på knappen "Lagre spørsmål" for å opprette spørsmålet og svarene. Man får beskjed om alt gikk riktig for seg eller om det oppstod en feil. Ved siden av knappen "Lagre spørsmål" er knappen "Kategori ferdig". Denne knappen brukes når man vil gjøre klar kategorier og deres tilhørende spørsmål for nedlastning til appen. Da dukker det opp et dialogvindu hvor man bekrefter dette. Dersom kategorien allerede er klargjort får man beskjed om dette.

99 Slette spørsmål Bilde : Slette spørsmål-skjerm. Trykk på lenken "Slette spørsmål". Velg etter dette fag og kategori fra "drop down"-listene. Det vil da dukke opp en liste over alle spørsmål som tilhører den valgte kategorien. Ved siden av hvert spørsmål finnes det en ny lenke kalt "Slett". Dersom man trykker på denne lenken vil det komme fram et dialogvindu hvor man må bekrefte at man vil slette spørsmålet. Det blir gitt beskjed om spørsmålet ble slettet.

100 Endre spørsmål Bilde : Endre spørsmål-skjerm. Ved endring av spørsmål, trykk på lenken "Endre spørsmål". Velg deretter fag og tilhørende kategori, samt hvilket spørsmål som skal endres på. Skriv så inn det nye spørsmålet og trykk på knappen "Endre spørsmål". Når dette er gjort får man beskjed om spørsmålet ble endret eller om det oppstod en feil Vise spørsmål og svar

101 Bilde : Vis spørsmål og svar-skjerm. For å vise spørsmål trykk på lenken "Vis spørsmål". Velg deretter fag, kategori og det spørsmålet som skal vises. Etter at spørsmålet er valgt blir det vist fram sammen med de tilhørende svarene. Det vil også bli vist hvilke av svarene som er riktig. 8 Kilder Stackoverflow Wikipedia Youtube PHP

102 W3Schools MySQL Android JSON Precision Teaching

6 Kravspesifikasjon. 6.1 Presentasjon. Tittel Precision Teaching App for Android

6 Kravspesifikasjon. 6.1 Presentasjon. Tittel Precision Teaching App for Android 6 Kravspesifikasjon 6.1 Presentasjon Tittel Precision Teaching App for Android Oppgave Å lage en Android app som skal benyttes av studenter for å øve på fagpensum. Appen skal ta i bruk prinsipper fra Precision

Detaljer

24.01.2014 Hovedprosjekt i Informasjonsteknologi ved Høgskolen i Oslo og Akershus. Forprosjektrapport. Presentasjon

24.01.2014 Hovedprosjekt i Informasjonsteknologi ved Høgskolen i Oslo og Akershus. Forprosjektrapport. Presentasjon 24.01.2014 Hovedprosjekt i Informasjonsteknologi ved Høgskolen i Oslo og Akershus Forprosjektrapport Presentasjon Tittel Precision Teaching App for Android Oppgave Å lage en Android app som skal benyttes

Detaljer

Studentdrevet innovasjon

Studentdrevet innovasjon Studentdrevet innovasjon Hovedprosjekt 2013 Høgskolen i Oslo og Akershus Forprosjektrapport av Gruppe 11 Karoline Sanderengen, Mona Isabelle Yari og Randi Ueland 25.01.2013 Studentdrevet innovasjon 9 Innhold

Detaljer

Testrapport Prosjekt nr. 2011-22 Det Norske Veritas

Testrapport Prosjekt nr. 2011-22 Det Norske Veritas Prosjekt nr. 2011 22 Testrapport Hovedprosjektets tittel Implementering av plugin og utvikling av wizard for Det Norske Veritas Prosjektdeltakere Magnus Strand Nekstad s156159 Jørgen Rønbeck s135779 Dato

Detaljer

KRAVSPESIFIKASJON. Tittel: Pris++ Oppgave: Utvikle en Android applikasjon med tilhørende databasesystem. Periode: 1. Januar til 11. Juni.

KRAVSPESIFIKASJON. Tittel: Pris++ Oppgave: Utvikle en Android applikasjon med tilhørende databasesystem. Periode: 1. Januar til 11. Juni. KRAVSPESIFIKASJON Tittel: Pris++ Oppgave: Utvikle en Android applikasjon med tilhørende databasesystem. Periode: 1. Januar til 11. Juni. Prosjektgruppe: 27 Prosjektmedlem: Ole Almenning Stenhaug Veileder.

Detaljer

Dokument 1 - Sammendrag

Dokument 1 - Sammendrag Dokument 1 - Sammendrag Automatnett - Nytt CMS-verktøy for Uno-X Automat Fakultet for teknologi, kunst og design Høgskolen i Oslo og Akershus, 2013 Innholdsfortegnelse Sammendrag 1 1. Innledning 1 2. Om

Detaljer

Produktrapport. Produktrapport. Hjelpemiddel portal for Parkinsonforbundet

Produktrapport. Produktrapport. Hjelpemiddel portal for Parkinsonforbundet Produktrapport Hjelpemiddel portal for Parkinsonforbundet 1 Innhold: Forord ------------------------------------------------------------------------------------------------------2 Planlegging og arbeidsmetode

Detaljer

Hovedprosjekt 2014, Høgskolen i Oslo og Akershus

Hovedprosjekt 2014, Høgskolen i Oslo og Akershus Forprosjektrapport Gruppe 2 Hovedprosjekt 2014, Høgskolen i Oslo og Akershus 1 INNHOLD 2 Presentasjon... 2 2.1 Gruppen medlemmer... 2 2.2 Oppgave... 2 2.3 Oppdragsgiver... 2 2.4 Veileder... 2 3 Sammendrag...

Detaljer

Kravspesifikasjon. Leserveiledning Kravspesifikasjonen består av følgende deler: Presentasjon Om bedriften

Kravspesifikasjon. Leserveiledning Kravspesifikasjonen består av følgende deler: Presentasjon Om bedriften Kravspesifikasjon Presentasjon Hovedprosjektet gjennomføres ved Høgskolen i Oslo, avdelingen for ingeniørutdanning. Målet med oppgaven er å utvikle en online webshop for bestilling av postkasser. Dette

Detaljer

Utvikle en prototype for en digital versjon av helsekort for gravide. Programvareleverandør av ehelse-løsninger for helsevesenet

Utvikle en prototype for en digital versjon av helsekort for gravide. Programvareleverandør av ehelse-løsninger for helsevesenet Kravspesifikasjon Hovedprosjekt 2014 Institutt for informasjonsteknologi, Høgskolen i Oslo og Akershus Presentasjon Tittel: Oppgave: Gruppemedlemmer: Digitalt Helsekort for Gravide Utvikle en prototype

Detaljer

Gruppe 43. Hoved-Prosjekt Forprosjekt

Gruppe 43. Hoved-Prosjekt Forprosjekt Gruppe 43 Hoved-Prosjekt Forprosjekt Mobil Applikasjon Utvikling HiOA Bacheloroppgave forprosjekt våren 2017 Presentasjon Gruppen består av: Gebi Beshir Ole-Kristian Steiro Tasmia Faruque s182414 s189141

Detaljer

Bachelorprosjekt i informasjonsteknologi, vår 2017

Bachelorprosjekt i informasjonsteknologi, vår 2017 Bachelorprosjekt i informasjonsteknologi, vår 2017 Gruppe 29: Marthe Janson Skogen, s236357, Ingeniørfag - data Odd Einar Hoel, s236313, Ingeniørfag - data Forprosjektrapport Rapporten inneholder presentasjon,

Detaljer

Forprosjekt. Accenture Rune Waage, [email protected], 91605634

Forprosjekt. Accenture Rune Waage, rune.waage@accenture.com, 91605634 Forprosjekt Presentasjon Gruppe 19: Event-planlegger Andreas Berglihn s169991 Harald R. Svendsen s127142 Gruppe Gruppe 19 Andreas Berglihn, s169991 Harald R. Svendsen s127142 Oppgave Eventplanlegger Utvikle

Detaljer

1. Forord 2. Leserveiledning

1. Forord 2. Leserveiledning KRAVSPESIFIKASJON 1 1. Forord Hensikten med kravspesifikasjonen er at den skal fungere som et styringsdokument under prosessen og definere rammer og betingelser rundt hovedprosjektet. Den er utviklet etter

Detaljer

Kunden er en av Norges ledende leverandører av digital-tv og bredbåndstjenester.

Kunden er en av Norges ledende leverandører av digital-tv og bredbåndstjenester. 1 Forord Hensikten med kravspesifikasjonen er å gi oppdragsgiver og utviklere en enighet og forståelse av funksjonaliteten til applikasjonen som skal produseres. en definerer i tillegg prosjektets rammer

Detaljer

Forprosjektrapport. Bachelorprosjekt i informasjonsteknologi ved Høgskolen i Oslo og Akershus, våren 2016. Pillbox Punchline

Forprosjektrapport. Bachelorprosjekt i informasjonsteknologi ved Høgskolen i Oslo og Akershus, våren 2016. Pillbox Punchline Forprosjektrapport Bachelorprosjekt i informasjonsteknologi ved Høgskolen i Oslo og Akershus, våren 2016 Pillbox Punchline Gruppe 8 André Østhagen Bye, s198607 Annika Hammervoll, s198611 Hanne Rygge, s198613

Detaljer

Forprosjektrapport. Bachelorprosjekt i informasjonsteknologi ved Høgskolen i Oslo og Akershus, våren Digitalisering av Sentralen UNG Gründer

Forprosjektrapport. Bachelorprosjekt i informasjonsteknologi ved Høgskolen i Oslo og Akershus, våren Digitalisering av Sentralen UNG Gründer Forprosjektrapport Bachelorprosjekt i informasjonsteknologi ved Høgskolen i Oslo og Akershus, våren 207 Digitalisering av Sentralen UNG Gründer Gruppe 34 Kenneth Di Vita Jensen, s236745 Frank Arne Bjørkmann

Detaljer

Del IV: Prosessdokumentasjon

Del IV: Prosessdokumentasjon 1 2 Forord Dette dokumentet omhandler detaljert beskrivelse av vår arbeidsprosess gjennom hele perioden med prosjektet. Prosessdokumentasjonen er en viktig del av sluttrapporten, og er delt opp i følgende

Detaljer

Testrapport. Studentevalueringssystem

Testrapport. Studentevalueringssystem Testrapport Studentevalueringssystem 1 Forord 1.2 Forord Dette prosjektet er et hovedprosjekt i data ved Høgskolen i Oslo, avdeling for ingeniørutdanning, og gjennomføres i samarbeid med Ingeniøravdeling

Detaljer

KOM I GANG MED WORDPRESS En enkel guide for å hjelpe deg gjennom det grunnleggende i Wordpress

KOM I GANG MED WORDPRESS En enkel guide for å hjelpe deg gjennom det grunnleggende i Wordpress KOM I GANG MED WORDPRESS En enkel guide for å hjelpe deg gjennom det grunnleggende i Wordpress Sist oppdatert 05.06.2015 Innholdsfortegnelse 1. Hva er Wordpress?... 3 2. Hvordan logger jeg inn i kontrollpanelet?...

Detaljer

Kravspesifikasjon. Forord

Kravspesifikasjon. Forord Kravspesifikasjon Forord Hensikten med en kravspesifikasjon er å gi et overblikk over programmets funksjonalitet og tilleggsfunksjoner, dette vil si både over de som er utviklet før prosjektstart, og de

Detaljer

Produktdokumentasjon. Madison Møbler Administrasjonsside og Nettbutikk

Produktdokumentasjon. Madison Møbler Administrasjonsside og Nettbutikk Produktdokumentasjon Madison Møbler Administrasjonsside og Nettbutikk 1 1. Forord 1.1 Dokumentasjonen Dette er en teknisk dokumentasjon på produktet som er utviklet. Denne er tiltenkt personer med teknisk

Detaljer

PROSESSDOKUMENTASJON

PROSESSDOKUMENTASJON PROSJEKT NR.: 10-30 Studieprogram: Anvendt Datateknologi Postadresse: Postboks 4 St. Olavs plass, 0130 Oslo Besøksadresse: Holbergs plass, Oslo TILGJENGELIGHET: Papir og elektronisk Telefon: 22 45 32 00

Detaljer

Denne rapporten er beregnet for dataansvarlig på Grefsenhjemmet, den som skal installere, vedlikeholde og modifisere systemet.

Denne rapporten er beregnet for dataansvarlig på Grefsenhjemmet, den som skal installere, vedlikeholde og modifisere systemet. Produktrapport Forord Denne rapporten er beregnet for dataansvarlig på Grefsenhjemmet, den som skal installere, vedlikeholde og modifisere systemet. Dataansvarlig eller supporter trenger informasjon om

Detaljer

1 Del I: Presentasjon

1 Del I: Presentasjon 1 Del I: Presentasjon 2 Forord Denne sluttrapporten er skrevet av gruppe 12 som består av 4 studenter som studerer ved Høgskolen i Oslo og Akershus. Vi studerer Anvendt datateknologi og denne rapporten

Detaljer

Gruppe Forprosjekt. Gruppe 15

Gruppe Forprosjekt. Gruppe 15 Forprosjekt Gruppe 15 Marius Ylven Westgaard - s236797 - Anvendt Datateknologi Lise Janbu Eide - s236361 - Dataingeniør Lavanja Jeyenthiran - s236346 - Dataingeniør Kristian Pedersen - s236728 - Anvendt

Detaljer

Del VII: Kravspesifikasjon

Del VII: Kravspesifikasjon 1 2 Forord Dette dokumentet inneholder retningslinjer for gruppen vår og beskrivelse av betingelsene for utviklingen av vårt prosjekt. Vår gruppe benyttet dette dokumentet som et styringsdokument for å

Detaljer

Oblig 5 Webutvikling. Av Thomas Gitlevaag

Oblig 5 Webutvikling. Av Thomas Gitlevaag Oblig 5 Webutvikling Av Thomas Gitlevaag For oppgave 1 og 2 skal dere levere en funksjonell webside på deres hjemmeområde. Dere skal også levere alle phps-filene slik at man for en hver side kan slenge

Detaljer

HOVEDPROSJEKT 2010 - HIO IU - DATA FORPROSJEKTRAPPORT GRUPPE 18

HOVEDPROSJEKT 2010 - HIO IU - DATA FORPROSJEKTRAPPORT GRUPPE 18 HOVEDPROSJEKT 2010 - HIO IU - DATA FORPROSJEKTRAPPORT GRUPPE 18 INNHOLDSFORTEGNELSE 1. PRESENTASJON 2. SAMMENDRAG 3. DAGENS SITUASJON 4. MÅL OG RAMMEBETINGELSER 5. LØSNINGER \ ALTERNATIVER 6. ANALYSE AV

Detaljer

Gruppe 44. Bachelorprosjekt ved Institutt for informasjonsteknologi, våren Høgskolen i Oslo og Akershus,

Gruppe 44. Bachelorprosjekt ved Institutt for informasjonsteknologi, våren Høgskolen i Oslo og Akershus, Bachelorprosjekt ved Institutt for informasjonsteknologi, våren 2017 Høgskolen i Oslo og Akershus, 19.01.2017 Gruppe 44 Håkon Andre Sylte Garnes, Tobias Hallèn, Gaurab J. Gurung Forprosjektrapport Presentasjon

Detaljer

Produktrapport Gruppe 9

Produktrapport Gruppe 9 Forord Dette dokumentet er ment for personer som skal vedlikeholde, endre eller utvikle systemet. Produktdokument innholder informasjoner om programmets funksjoner og hvordan de fungerer. Før bruk av dette

Detaljer

Forprosjektrapport. Presentasjon. Oslo, den 29. Januar Gorm Eirik Svendsen Nicolai Mellbye Marius Auerdahl Per Gustav Løwenborg

Forprosjektrapport. Presentasjon. Oslo, den 29. Januar Gorm Eirik Svendsen Nicolai Mellbye Marius Auerdahl Per Gustav Løwenborg Forprosjektrapport Presentasjon Tittel Bakerman AS Website Oppgave Utvikle ett websted for Bakerman AS der hvor de kan promotere seg selv og kommunisere med kundene sine. Periode 4. Januar 2010 til 17.

Detaljer

Bachelorprosjekt 2015

Bachelorprosjekt 2015 Bachelorprosjekt 2015 Høgskolen i Oslo og Akershus Tam Ha (s171513) Arslan Yousaf (s189135) Gabriel Noraker Alfarrustad (s161910) Eivind Lund (s180381) Phillip Padiernos Næss (s162951) Forprosjekt Prosjektets

Detaljer

Forprosjekt Hovedprosjekt ved Høgskolen i Oslo Våren 2008

Forprosjekt Hovedprosjekt ved Høgskolen i Oslo Våren 2008 Forprosjekt Hovedprosjekt ved Høgskolen i Oslo Våren 2008 Skrevet av Ole Myrbakken, Fadima Mohamoud, Orji Okoroafor, Karen Arrendondo Side 1 PRESENTASJON Prosjekt tittel: Prosjektperiode: MetaGen 7.jan

Detaljer

Artist webside. Gruppe medlemmer Joakim Kartveit. Oppdragsgiver Tetriz Event & Management. Frode Mathiesen. Gry Anita Nilsen.

Artist webside. Gruppe medlemmer Joakim Kartveit. Oppdragsgiver Tetriz Event & Management. Frode Mathiesen. Gry Anita Nilsen. Artist webside Innhold Artist webside...1 Gruppe medlemmer...1 Oppdragsgiver...1 Kontaktperson...2 Veileder...2 Oppgaven...2 Muligheter...2 Sammendrag...2 Dagens situasjon...2 Mål og rammebetingelser...3

Detaljer

Testrapport for Sir Jerky Leap

Testrapport for Sir Jerky Leap Jasmine Garry (s135600) Line Sørensen (s135590) Fredrik Hoem Grelland (s135595) Tor Anders Gustavsen (s127668) 1 1. Forord Dette dokumentet inneholder informasjon og redegjøring av tester foretatt i forbindelse

Detaljer

Funksjonskravene er delt opp i to deler, krav til spillsekvens og generelle funksjonskrav.

Funksjonskravene er delt opp i to deler, krav til spillsekvens og generelle funksjonskrav. Kravspesifikasjon I dette kapittelet foreligger kravspesifikasjonen som ble utformet tidlig i prosjektprosessen. Dette er den opprinnelige kravspesifikasjonen. Det har igjennom prosjektprosessen vært naturlig

Detaljer

Forprosjektrapport. Feilsøkingsverktøy for Homebase AS INNHOLD

Forprosjektrapport. Feilsøkingsverktøy for Homebase AS INNHOLD Forprosjektrapport Feilsøkingsverktøy for Homebase AS INNHOLD Presentasjon Sammendrag Om bedriften Dagens situasjon Mål og rammebetingelser Funksjonelle krav: Ikke-funksjonelle krav: Løsninger Analyse

Detaljer

TESTRAPPORT - PRODSYS

TESTRAPPORT - PRODSYS TESTRAPPORT - PRODSYS PRODSYS-DATASYSTEM FOR ÅS PRODUKSJONSLAB AS GRUPPE 12 CHRISTOPHER CONRADI STEFFEN DIEDRICHSEN ROMAN KOVALENKO INFORMASJONSTEKNOLOGI, INGENIØRUTDANNINGEN, HØYSKOLEN I OSLO 1. FORORD

Detaljer

Forprosjektrapport ElevApp

Forprosjektrapport ElevApp Forprosjektrapport ElevApp Bachelorprosjekt i informasjonsteknologi ved Høgskolen i Oslo og Akershus, våren 2017 Gruppe 14 Mirko Grimm, s236630 Andreas Krutnes, s236656 Japple John Regalario, s236621 Innholdsfortegnelse

Detaljer

Dette dokumentet er en produktrapport for vårt avsluttende hovedprosjekt våren 2008 ved høgskolen i Oslo, for ingeniør - avdelingen.

Dette dokumentet er en produktrapport for vårt avsluttende hovedprosjekt våren 2008 ved høgskolen i Oslo, for ingeniør - avdelingen. 1 Sammendrag Dette dokumentet er en produktrapport for vårt avsluttende hovedprosjekt våren 2008 ved høgskolen i Oslo, for ingeniør - avdelingen. Vår oppdragsgiver, ABTF hadde et ønske om en større web

Detaljer

Kravspesifikasjon. Forord

Kravspesifikasjon. Forord Kravspesifikasjon Forord Kravspesifikasjonen skal beskrive applikasjonens funksjonalitet og betingelsene som oppdragsgiver krever. Det skal også hjelpe utviklerne med å begrense applikasjonen slik at den

Detaljer

Administrering av SafariSøk

Administrering av SafariSøk Administrering av SafariSøk Administrering av SafariSøk Revisjonshistorie Revisjon $Revision: 1.6 $ $Date: 2003/08/05 12:44:02 $ Innholdsfortegnelse 1. Om programmet... 1 Generelt... 1 2. Fremgangsmåter...

Detaljer

3. Kravspesifikasjon. Experior - rich test editor for FitNesse -

3. Kravspesifikasjon. Experior - rich test editor for FitNesse - 3. Experior - rich test editor for FitNesse - 3.1. Forord Dette dokumentet inneholder krav til funksjonalitet i Experior og hvordan denne skal integreres inn i selve FitNesse. I tillegg spesifiseres krav

Detaljer

VEDLEGG 1 KRAVSPESIFIKASJON

VEDLEGG 1 KRAVSPESIFIKASJON VEDLEGG 1 KRAVSPESIFIKASJON INNHOLDSFORTEGNELSE Forord... 2 1 Systembeskrivelse... 2 2 Mål for systemet... 3 3 Funksjonelle krav... 4 4 Ikke-funksjonelle krav... 5 5 Use-case diagram... 6 6 Rammekrav...

Detaljer

Eventhandler Teknologi, kunst og design Høgskolen i Oslo og Akershus, våren 2013. Testrapport

Eventhandler Teknologi, kunst og design Høgskolen i Oslo og Akershus, våren 2013. Testrapport Eventhandler Teknologi, kunst og design Høgskolen i Oslo og Akershus, våren 2013 Testrapport 1 INNHOLDSFORTEGNELSE 1 INNHOLDSFORTEGNELSE... 1 2 Innledning... 2 3 Formål med testing... 3 3.1 Funksjonalitet...

Detaljer

Hovedprosjekt 2013. Gruppe 27. Forprosjektrapport [GILJE AS] Lars Gjestang - Hiran Piapo - Bård Skeie

Hovedprosjekt 2013. Gruppe 27. Forprosjektrapport [GILJE AS] Lars Gjestang - Hiran Piapo - Bård Skeie 2013 Hovedprosjekt 2013 Gruppe 27 Forprosjektrapport [GILJE AS] Lars Gjestang - Hiran Piapo - Bård Skeie Innhold 1. Presentasjon... 2 2. Sammendrag... 2 3. Dagens Situasjon... 2 4. Mål og rammebetingelser...

Detaljer

Kandidat nr. 1, 2 og 3

Kandidat nr. 1, 2 og 3 Kandidat nr. 1, 2 og 3 Rapport 1 IT202E Bacheloroppgave i Informatikk Vår 2011 Mobilapplikasjonsutvikling med Scrum 1 Innhold Innledning... 3 Overordnet Prosjektplan... 3 Produktbacklog... 5 Sprint planning

Detaljer

Læringsplattform for IT-fag basert på HTML5 utviklet i CakePhp

Læringsplattform for IT-fag basert på HTML5 utviklet i CakePhp Læringsplattform for IT-fag basert på HTML5 utviklet i CakePhp { En selvstendig plattform som kan brukes til å formidle kurs på nett med dagsaktuell teknologi. Oppgave 5, av Fredrik Johnsen Oppgavestiller

Detaljer

KRAVSPESIFIKASJON. Gruppe 2. Hovedprosjekt, Høgskolen i Oslo og Akershus. Våren 2014 KRAVSPESIFIKASJON 1

KRAVSPESIFIKASJON. Gruppe 2. Hovedprosjekt, Høgskolen i Oslo og Akershus. Våren 2014 KRAVSPESIFIKASJON 1 KRAVSPESIFIKASJON Gruppe 2 Hovedprosjekt, Høgskolen i Oslo og Akershus Våren 2014 KRAVSPESIFIKASJON 1 CONTENTS 1. Forord... 3 2. Presentasjon... 3 2.1 Gruppens medlemmer... 3 2.2 Oppdragsgiver... 3 2.3

Detaljer

Brukermanual. Studentevalueringssystem

Brukermanual. Studentevalueringssystem Brukermanual Studentevalueringssystem 1 Forord 1.1 Forord Denne brukermanualen innholder beskrivelse av systemets funksjonalitet og introduserer systemet for brukeren. Brukermanualen er delt inn i tre

Detaljer

Forprosjektrapport. Presentasjon. Studentgruppen. Bekk Consulting AS. Android app for aktivering av jakt- og fiskekort

Forprosjektrapport. Presentasjon. Studentgruppen. Bekk Consulting AS. Android app for aktivering av jakt- og fiskekort Forprosjektrapport Presentasjon Tittel: Oppgave: Gruppemedlemmer: Prosjektgruppe: Veileder: Hovedoppdragsgiver: Kunde av oppdragsgiver: Ansvarlig for gruppen: Faglig veileder hos BEKK: Android app for

Detaljer

Stikkord: Java EE, EJB, JSF, JPA, SWT, klient/tjener, Glassfish server, Application Client.

Stikkord: Java EE, EJB, JSF, JPA, SWT, klient/tjener, Glassfish server, Application Client. Stikkord: Java EE, EJB, JSF, JPA, SWT, klient/tjener, Glassfish server, Application Client. Studenter: Magnus Skomsøy Bae, Marius Eggen, Magnus Krane Klasse: 3ING, Systemutvikling Produserer redaksjonelle

Detaljer

Forprosjektrapport. Presentasjon. Sammendrag. Tittel Informasjonsplatform for NorgesGruppen

Forprosjektrapport. Presentasjon. Sammendrag. Tittel Informasjonsplatform for NorgesGruppen Forprosjektrapport Presentasjon Tittel Informasjonsplatform for NorgesGruppen Oppgave Utvikle en informasjonsplatform for butikkene i NorgesGruppen Periode 3. Januar 14. Juni Gruppemedlemmer Joakim Sjögren

Detaljer

Produktrapport. Utvikling av moduler til CMS for bonefish.no. Gruppe 08-23

Produktrapport. Utvikling av moduler til CMS for bonefish.no. Gruppe 08-23 Utvikling av moduler til CMS for bonefish.no Gruppe 08-23 Produktrapport for hovedprosjektet utvikling av moduler til CMS for bonefish.no ved Høgskolen i Oslo, avdeling for Ingeniørutdanning våren 2008.

Detaljer

System Dokumentasjon. Team2. Høgskolen i Sørøst-Norge Fakultet for teknologi, naturvitenskap og maritime fag Institutt for elektro, IT og kybernetikk

System Dokumentasjon. Team2. Høgskolen i Sørøst-Norge Fakultet for teknologi, naturvitenskap og maritime fag Institutt for elektro, IT og kybernetikk System Dokumentasjon Høgskolen i Sørøst-Norge Fakultet for teknologi, naturvitenskap og maritime fag Institutt for elektro, IT og kybernetikk System Dokumentsjon 23/04/2018 Systemutvikling og dokumentasjon/ia4412

Detaljer

BRUKERVEILEDNING TIL MAGNORMOEN INDUSTRIOMRÅDE OG GAUSTADVEGEN INDUSTRIOMRÅDES HJEMMESIDER:

BRUKERVEILEDNING TIL MAGNORMOEN INDUSTRIOMRÅDE OG GAUSTADVEGEN INDUSTRIOMRÅDES HJEMMESIDER: BRUKERVEILEDNING TIL MAGNORMOEN INDUSTRIOMRÅDE OG GAUSTADVEGEN INDUSTRIOMRÅDES HJEMMESIDER: http://www.magnormoen.no/ og http://www.gaustadvegen.no/ Utarbeidet av Solveig Hem Sørli og Arne Sørli Side 1

Detaljer

Forprosjektrapport Bacheloroppgave 2017

Forprosjektrapport Bacheloroppgave 2017 Forprosjektrapport Bacheloroppgave 2017 Chat Modul for Webnodes Content Management System Gruppe 32 Adam Asskali, Anmer Seif, Sara Khan 20.01.2017 Veileder G. Anthony Giannoumis Innholdsfortegnelse 1.Presentasjon

Detaljer

Kravspesifikasjon. Aker Surveillance. Gruppe 26 Hovedprosjekt ved Høgskolen i Oslo og Akershus. Oslo,

Kravspesifikasjon. Aker Surveillance. Gruppe 26 Hovedprosjekt ved Høgskolen i Oslo og Akershus. Oslo, Kravspesifikasjon Aker Surveillance Gruppe 26 Hovedprosjekt ved Høgskolen i Oslo og Akershus Oslo, 12.01.2013 Public 2013 Aker Solutions Page 1 of 7 Table of Contents Forord... 3 Om bakgrunnen... 3 Presentasjon...

Detaljer

4.1. Kravspesifikasjon

4.1. Kravspesifikasjon 4.1. Kravspesifikasjon Dette delkapittelet beskriver nærgående alle deler av systemet, hvordan det er tenkt ferdigutviklet med fokus på oppdragsgivers ønsker. 4.1.1. Innledning Informasjon om hvordan kravspesifikasjonens

Detaljer

S y s t e m d o k u m e n t a s j o n

S y s t e m d o k u m e n t a s j o n S y s t e m d o k u m e n t a s j o n Monitorering av produksjonsløyper ved Nasjonalbiblioteket - Project BAKE Utarbeidet av: Einar Wågan Kristian Akerhei Studium: Informasjonssystemer Innlevert: 26.5.2015

Detaljer

KRAVSPESIFIKASJON FORORD

KRAVSPESIFIKASJON FORORD KRAVSPESIFIKASJON FORORD Hensikten med kravspesifikasjonen er å gi oppdragsgiver og utviklere en enighet og forståelse av funksjonaliteten til applikasjonen som skal produseres. en definerer i tillegg

Detaljer

Kravspesifikasjon. Høgskolen i Oslo, våren 2011 Sted og dato: Oslo, 9. februar 2011. Gruppemedlemmer

Kravspesifikasjon. Høgskolen i Oslo, våren 2011 Sted og dato: Oslo, 9. februar 2011. Gruppemedlemmer Kravspesifikasjon Høgskolen i Oslo, våren 2011 Sted og dato: Oslo, 9. februar 2011 Gruppemedlemmer Adeel Yousaf Khan s141459 Mats Klingenberg Naustdal s148155 Nur M. Ahmed s148108 Thomas Wiborg s161335

Detaljer

Forprosjektrapport for bacheloroppgave i data og informasjonsteknologi

Forprosjektrapport for bacheloroppgave i data og informasjonsteknologi Forprosjektrapport for bacheloroppgave i data og informasjonsteknologi Gruppe 5 Anders Minde Dørum, Eirik Odden Solberg, Patrick Ingeberg og Torbjørn Magnus Brandrud Prosjektmedlemmer: Anders Minde Dørum,

Detaljer

Forprosjektrapport. Universelt LæringsVerktøy (ULV) Å lage en læringsplattform som tilfredsstiller alle krav til universell

Forprosjektrapport. Universelt LæringsVerktøy (ULV) Å lage en læringsplattform som tilfredsstiller alle krav til universell Forprosjektrapport Presentasjon Tittel: Oppgave: utforming Periode: Gruppemedlemmer: Hafnor Prosjektgruppe: Veileder: Oppdragsgiver: Kontaktperson: Nettside for gruppa: Universelt LæringsVerktøy (ULV)

Detaljer

SymWriter: R6 Innstillinger, preferanser og verktøylinjer

SymWriter: R6 Innstillinger, preferanser og verktøylinjer SymWriter: R6 Innstillinger, preferanser og verktøylinjer Innhold R6.1 Startinnstillinger og utseende...3 R6.2 Tekst og bilder...................................................4 R6.3 Tale og staving...5

Detaljer

KRAVSPESIFIKASJON DAGSPLANAPPLIKASJON FOR NETTBRETT. Gruppe 28 Hovedprosjekt våren 2015

KRAVSPESIFIKASJON DAGSPLANAPPLIKASJON FOR NETTBRETT. Gruppe 28 Hovedprosjekt våren 2015 KRAVSPESIFIKASJON Kravspesifikasjon er en beskrivelse av hvilke krav oppdragsgiver har til systemet som skal utvikles. Den fungerer som en kontrakt mellom oppdragsgiver og utviklere. DAGSPLANAPPLIKASJON

Detaljer

Testdokumentasjon Presentasjon

Testdokumentasjon Presentasjon Testdokumentasjon Presentasjon Tittel Oppgave Teknostorage - Lagersystem Et lagersystem som på enkel måte kan registrere varer inn og ut fra lager. Periode 3. januar 2012 til 11. juni 2012 Gruppemedlemmer

Detaljer

Brukerveiledning WordPress. Innlogging:

Brukerveiledning WordPress. Innlogging: Brukerveiledning WordPress Her er en liten guide for hjelpe deg gjennom det grunnleggende i Wordpress. Denne veilederen vil ta deg gjennom: Innlogging Lage en side Lage et innlegg Innlogging: For å logge

Detaljer

Vedlegg Brukertester INNHOLDFORTEGNELSE

Vedlegg Brukertester INNHOLDFORTEGNELSE Vedlegg Brukertester INNHOLDFORTEGNELSE Vedlegg Brukertester... 1 Testrapport Wireframe... 2 1. INTRODUKSJON... 2 1.1 Systemoversikt... 2 1.2 Meningen med testen... 2 2 TESTPLAN... 2 2.1 Funksjoner som

Detaljer

Ble ferdig med prosjektskisse. Sett på forskellige rammeverk for php. Lager milepæl for to uker.

Ble ferdig med prosjektskisse. Sett på forskellige rammeverk for php. Lager milepæl for to uker. Logg 22 oktober 2013 Vi skriver status rapport og starter også med å skrive logg idag. Vi har vært i kontakt med mange firmaer uten alt for mye interesse fra deres side. Vi fortsetter å søke etter oppgave.

Detaljer

Use Case Modeller. Administrator og standardbruker

Use Case Modeller. Administrator og standardbruker Vedlegg 1 Use Case Modeller Administrator og standardbruker 2 Use case Logge inn Bruker Bruker ønsker å logge inn Bruker har valgt å logge inn Bruker er logget inn 1. Systemet ber om brukernavn 2. Systemet

Detaljer

Kravspesifikasjon. 1. Innledning. Presentasjon. Innledning. Om bedriften. Bakgrunn for prosjektet

Kravspesifikasjon. 1. Innledning. Presentasjon. Innledning. Om bedriften. Bakgrunn for prosjektet Kravspesifikasjon Presentasjon Tittel: Oppgave: Backup for PDA/Smartphones Utvikle en applikasjon for PDA/Smartphones med funksjonalitet for backup av sms, mms, e-post, kontakter, kalender, bilder og dokumenter

Detaljer

1. Forord... 2 2. Innholdsfortegnelse... 3 3 innledning... 5. 4. Funksjonelle egenskaper og krav... 7. 5. Spesifikke krav av delsystemer...

1. Forord... 2 2. Innholdsfortegnelse... 3 3 innledning... 5. 4. Funksjonelle egenskaper og krav... 7. 5. Spesifikke krav av delsystemer... Side 1 1. Forord Dette dokumentet er en kravspesifikasjon og har blitt utarbeidet av arbeidsgiver og prosjektgruppen. Dokumentet består av ni kapitler. Det vil først bli presentert hvem prosjektgruppen

Detaljer

En enkel lærerveiledning

En enkel lærerveiledning En enkel lærerveiledning ~ 1 ~ Innhold INNLEDNING... 3 Hva?... 3 Hvorfor?... 3 INN- og UTLOGGING... 4 Innlogging... 4 Utlogging... 5 Lærerinnlogging/-utlogging... 5 OUTLOOK / EPOST... 6 Skrive epost...

Detaljer

PROSESSDOKUMENTASJON

PROSESSDOKUMENTASJON PROSJEKT NR.: 10-30 Studieprogram: Anvendt Datateknologi Postadresse: Postboks 4 St. Olavs plass, 0130 Oslo Besøksadresse: Holbergs plass, Oslo TILGJENGELIGHET: Papir og elektronisk Telefon: 22 45 32 00

Detaljer

FORPROSJEKT RAPPORT PRESENTASJON

FORPROSJEKT RAPPORT PRESENTASJON FORPROSJEKT RAPPORT PRESENTASJON Tittel: Oppgave: Appenes App Utvikle en Windows 8.1 Applikasjon for Tablet, og en Windows 8 Phone App og en backend. Periode: 06.01.2013-27.05.2013 Gruppemedlemmer: Athavan

Detaljer

(X)HTML, CSS og JavaScript HTML. Det første dokumentet 26.11.2007. Grunnleggende programmering i Java Monica Strand 26.

(X)HTML, CSS og JavaScript HTML. Det første dokumentet 26.11.2007. Grunnleggende programmering i Java Monica Strand 26. (X)HTML, CSS og JavaScript Grunnleggende programmering i Java Monica Strand 26. november 2007 Gr. leggende Java 26. november 2007 1 HTML HTML = Hyper Text Markup Language Strukturerer tekstinnhold HTML

Detaljer

Båtforening på nett. Produktrapport

Båtforening på nett. Produktrapport Båtforening på nett Hovedprosjekt våren 2009, Høgskolen i Oslo Prosjektgruppe 36 Vegard Skipnes, Rade Vuckovic & Frode Sørensen Produktrapport 1 Sammendrag Denne rapporten er en del av Hovedprosjektet

Detaljer

Vedlegg LMC intranett

Vedlegg LMC intranett Vedlegg LMC intranett H12D02 Jarl-Håvard Holen Ole-Martin Larsen Fredrik Sethne-Andersen André Ritari Vedlegg 1 Resultater av kortsortering. Kortsortering Bruker 1, Salg: Kortsortering Bruker 2, Teknisk:

Detaljer

Forprosjektrapport. Gruppe 26. Digitalt læreverktøy for Cappelen Damm

Forprosjektrapport. Gruppe 26. Digitalt læreverktøy for Cappelen Damm Hovedprosjekt i informasjonsteknologi 2016 Høyskolen i Oslo og Akershus Forprosjektrapport Digitalt læreverktøy for Cappelen Damm Gruppe 26 Sofia Aittamaa - [email protected] Petter Lysne - [email protected]

Detaljer

HTML5. Skjemaer på nettsider. Skjemaer med. Informasjonsteknologi 1 og 2. Gløer Olav Langslet Sandvika VGS

HTML5. Skjemaer på nettsider. Skjemaer med. Informasjonsteknologi 1 og 2. Gløer Olav Langslet Sandvika VGS Skjemaer med HTML5 Gløer Olav Langslet Sandvika VGS Leksjon 10 Informasjonsteknologi 1 og 2 Skjemaer på nettsider I denne leksjonen skal vi se litt nærmere på bruk av skjemaer på nettsider. Du har sett

Detaljer

Om du allerede kjenner Scratch og har en Scratchbruker kan du gå videre til Steg 1.

Om du allerede kjenner Scratch og har en Scratchbruker kan du gå videre til Steg 1. Pingviner på tur Skrevet av: Geir Arne Hjelle Kurs: Scratch Tema: Blokkbasert, Spill Fag: Programmering Klassetrinn: 1.-4. klasse, 5.-7. klasse, 8.-10. klasse Introduksjon Velkommen til Scratch. Vi skal

Detaljer

OBLIG 2 WEBUTVIKLING

OBLIG 2 WEBUTVIKLING OBLIG 2 WEBUTVIKLING Oppgave 1 Design ved hjelp av skisser eller wireframes et nettsted med et "avansert" design. Lag spesifikke design for ulike skjermstørrelser og utskrift. Fokuser spesielt på å få

Detaljer

Kravspesifikasjon. Noark 5 grensesnitt. Hovedprosjekt informasjonsteknologi. Gruppe 31

Kravspesifikasjon. Noark 5 grensesnitt. Hovedprosjekt informasjonsteknologi. Gruppe 31 Kravspesifikasjon Noark 5 grensesnitt Hovedprosjekt informasjonsteknologi Gruppe 31 Forord Denne kravspesifikasjonen inneholder retningslinjer for oss og for det vi skal utvikle. Den inneholder funksjonelle

Detaljer

Kravspesifikasjon Hovedprosjekt ved Høgskolen i Oslo Våren 2008

Kravspesifikasjon Hovedprosjekt ved Høgskolen i Oslo Våren 2008 Kravspesifikasjon Hovedprosjekt ved Høgskolen i Oslo Våren 2008 1.Forord I dette dokumentet skal vi gi et bildet av de kravene som er satt til prosjektet. Dokumentet er hovedsakelig beregnet som et styringsdokument

Detaljer

Innstallasjon og oppsett av Wordpress

Innstallasjon og oppsett av Wordpress Del 1 - Installasjon og oppsett Innstallasjon og oppsett av Wordpress Wordpress har blitt en veldig populær publiseringsplattform for websider. Uten særlige tekniske ferdigheter kan man sette opp profesjonelle

Detaljer

Hovedprosjekt i data ved Høgskolen i Oslo våren 2007

Hovedprosjekt i data ved Høgskolen i Oslo våren 2007 Hovedprosjekt i data ved Høgskolen i Oslo våren 2007 Appendiks Høgskolen i Oslo Student: Martin Oppegaard Gruppe: 07-12 Dato: 25. mai 2007 Veileder ved HIO: Eva Vihovde Oppdragsgiver: Bekk Consulting AS

Detaljer

Bruksanvisning for Diabetesdagboka

Bruksanvisning for Diabetesdagboka Bruksanvisning for Diabetesdagboka Introduksjon Diabetesdagboka er et selvhjelpsverktøy for deg som har diabetes, utviklet av Nasjonalt senter for samhandling og telemedisin (NST). Diabetesdagboka gir

Detaljer

Forprosjektrapport. Hovedprosjekt for gruppe 13, Anvendt datateknologi våren 2016

Forprosjektrapport. Hovedprosjekt for gruppe 13, Anvendt datateknologi våren 2016 Forprosjektrapport Hovedprosjekt for gruppe 13, Anvendt datateknologi våren 2016 1.0 Presentasjon 2.0 Sammendrag 3.0 Dagens situasjon 4.0 Mål og rammebetingelser 5.0 Løsninger/alternativer 6.0 Analyse

Detaljer

Requirements & Design Document

Requirements & Design Document Requirements & Design Document Høgskolen i Sørøst-Norge Fakultet for teknologi, naturvitenskap og maritime fag Institutt for elektro, IT og kybernetikk SRD 03/04/2018 Systemutvikling og dokumentasjon/ia4412

Detaljer

Prosjektdagbok. Gruppe 9. Gruppemedlemmer. Eirik Fjellheim Andersen (s198590) Sigurd Witold Aspen (s198593) Jonas Mögenburg (s198741)

Prosjektdagbok. Gruppe 9. Gruppemedlemmer. Eirik Fjellheim Andersen (s198590) Sigurd Witold Aspen (s198593) Jonas Mögenburg (s198741) Prosjektdagbok Gruppe 9 Gruppemedlemmer Eirik Fjellheim Andersen (s198590) Sigurd Witold Aspen (s198593) Jonas Mögenburg (s198741) Månedsoppsummering: Mai Arbeidet har vært tungt siden vi har måttet flytte

Detaljer

Høgskolen i Oslo og Akershus. Bachelorprosjekt Hacking Cristin. (midlertidig tittel) Forprosjektrapport

Høgskolen i Oslo og Akershus. Bachelorprosjekt Hacking Cristin. (midlertidig tittel) Forprosjektrapport Høgskolen i Oslo og Akershus Bachelorprosjekt 2017 Hacking Cristin (midlertidig tittel) Forprosjektrapport Innholdsfortegnelse: 1.0 Presentasjon s. 3 2.0 Sammendrag s. 3 3.0 Dagens situasjon s. 4 4.0 Mål

Detaljer

Styringsdokumenter. Studentevalueringssystem

Styringsdokumenter. Studentevalueringssystem Styringsdokumenter Studentevalueringssystem Forord Dette er en samling av alle styringsdokumentene gjennom prosjekt perioden. Styringsdokumentene er satt opp i rekkefølge i forhold til perioden de ble

Detaljer

Brukerveiledning for Vesuv

Brukerveiledning for Vesuv Brukerveiledning for Vesuv Innhold Pålogging... 3 Registrering av ny bruker... 3 Glemt passord... 4 Startsiden... 5 Nytt utbrudd... 6 Nedtrekksmenyer... 6 Obligatoriske felt... 7 Spørsmål vises og fjernes...

Detaljer

Tema: Oversikt over ansatt, rom, datamaskin, skjerm, software, hardvare og tilkoblingsanlegg.

Tema: Oversikt over ansatt, rom, datamaskin, skjerm, software, hardvare og tilkoblingsanlegg. Forprosjektrapport Presentasjon Tittel: Inventardatabase Tema: Oversikt over ansatt, rom, datamaskin, skjerm, software, hardvare og tilkoblingsanlegg. Prosjektperiode: 2/12-08 23/05-08. Prosjektgruppe:

Detaljer