av Benjamin Dehli og Jørgen Tellnes
Innhold 1 Innledning 2 Om forprosjektet 2.1 Forprosjektgruppen 2.2 Målsetninger med forprosjektet 3 Beskrivelse av hovedprosjektet 3.1 Arbeidstittel 3.2 Prosjektgruppe 3.3 Oppdragsgiver 3.4 Bakgrunn for oppdraget 3.5 Overordnet beskrivelse av oppdraget 4 Målsetninger for hovedprosjektet 4.1 Prosjektmål 4.2 Effektmål 5 Anbefalinger for hovedprosjekt 5.1 Teknologier for systemet 5.1.1 Utviklingsprinsipper 5.1.2 Programmeringsspråk 5.1.3 Koderammeverk / biblioteker 5.1.4 Databasesystem 5.1.5 Nettjener 5.1.6 Tjenermaskiner 5.2 Lisensiering 5.3 Utviklingsmetodikk og -verktøy 5.3.1 Metodikk 5.3.2 Prosjektstyrings- og oppgavehåndteringsverktøy 5.3.3 Versjonskontroll 6 Mulig overordnet plan for hovedprosjekt 7 Skisser og utkast
1 Innledning Lærere ved institutt for økonomi og informatikk på Høgskolen i Telemark har gitt en gruppe av informatikkstudenter, ved samme høgskole, i oppdrag å utvikle et pedagogisk regnskapssystem. Systemet er delvis beskrevet i denne rapporten. Studentene utfører oppdraget som deres avsluttende bacheloroppgave, våren 2015. Noen av studentene har høsten 2014 gjennomført et mindre forprosjekt. Dette er rapporten fra forprosjektet.
2 Om forprosjektet 2.1 Forprosjektgruppen Forprosjektgruppen har bestått av Benjamin Dehli og Jørgen Tellnes. Stian Flage har også deltatt i mange vurderinger. Forprosjektgruppen blir i denne rapporten også referert til som vi. 2.2 Målsetninger med forprosjektet Det har ikke vært aktuelt å avklare hvorvidt det er tilstrekkelig behov for det systemet som er beskrevet i denne rapporten, til at det bør utvikles. Det behovet har oppdragsgiverne avdekket gjennom mange års erfaring med undervisning uten et slikt system. Den økonomiske risikoen er dessuten svært lav når oppdraget utføres som et tilnærmet kostnadsfritt studentprosjekt. Forprosjektet har heller ikke hatt som formål å kartlegge ulike brukeres ønsker om funksjonalitet i systemet. Dette arbeidet er lagt til hovedprosjektet. Hovedmålsetningen med forprosjektet har vært å komme fram til anbefalinger vedrørende følgende ikke-funksjonelle aspekter ved systemet: Teknologier for systemet, lisensiering, utviklingsmetodikk og utviklingsverktøy. Med å formulere en beskrivelse av oppdraget og bakgrunnen for dette i denne rapporten, har forprosjektgruppen hatt til hensikt å best mulig sikre at oppdraget er forstått riktig slik oppdragsgiver foreløpig har lagt det fram.
3 Beskrivelse av hovedprosjektet 3.1 Arbeidstittel Pedagogisk regnskapssystem 3.2 Prosjektgruppe Prosjektgruppa som skal utvikle systemet er informatikkstudentene Stian Flage, Benjamin Dehli og Jørgen Tellnes. 3.3 Oppdragsgiver Høgskolen i Telemark, institutt for økonomi og informatikk v. høgskolelektor Asbjørn Nygård og førstelektor Bjørn Kristoffersen. 3.4 Bakgrunn for oppdraget På økonomistudiet ved Høgskolen i Telemark, og sannsynligvis på økonomistudier andre steder, foregår trening på regnskapsføring hovedsaklig på papir. Dette samsvarer dårlig med hvordan regnskapsføring foregår i arbeidslivet, der det i de fleste tilfeller brukes digitale regnskapssystemer. De regnskapssystemene oppdragsgiver har kjennskap til, er imidlertid lite egnet til trening på regnskapsføring, bl.a. fordi de som regel er beregnet på én organisasjon (pr. system). Regnskapsoppgavene som studentene jobber med, baserer seg på mange ulike organisasjoner, kontoplaner osv. Dette vil, i disse systemene, innebære hyppig og omfattende omkonfigurasjon, noe som er for tidkrevende til at det gir effektiv trening på selve regnskapsføringen.
3.5 Overordnet beskrivelse av oppdraget (Slik det foreløpig er definert, og slik vi har oppfattet det fra oppdragsgiver) Oppdraget er å utvikle et pedagogisk regnskapssystem som forenkler og effektiviserer økonomistudenters trening på regnskapsføring, og faglæreres tilrettelegging for treningen. Systemet skal være en hybridløsning av et regnskaps- og læringssystem, med regnskapsfunksjoner og pedagogisk funksjonalitet integrert. Regnskapsdelen skal lages forenklet sammenlignet med de fleste ordinære regnskapssystemer, men slik at den inneholder alle grunnleggende regnskapsfunksjoner som er nødvendige for treningen. Faglærer skal kunne lage, gjenbruke og sette sammen oppgaver, tilpasset ulike situasjoner, ev. med tilhørende veiledninger og løsningsforslag. Det er også ønskelig at systemet skal kunne generere statistikk av pedagogisk verdi, basert på oppgavebesvarelser og øvrig brukeraktivitet.
4 Målsetninger for hovedprosjektet 4.1 Prosjektmål Innen prosjektets slutt, våren 2015, skal første versjon av systemet være klar for lansering. Systemet skal kunne tas i bruk fra studiestart, høsten 2015. 4.2 Effektmål Prosjektet har som mål å øke økonomistudenters læringsutbytte av trening på regnskapsføring, ved Høgskolen i Telemark og potensielt ved flere utdanningsinstitusjoner.
5 Anbefalinger for hovedprosjekt 5.1 Teknologier for systemet 5.1.1 Utviklingsprinsipper Forprosjektgruppen anbefaler at systemet utvikles etter objektorienterte prinsipper. Dette gir best forutsetninger for vedlikehold og videreutvikling, også av framtidige utviklere. Vi anbefaler også at applikasjonen utvikles etter et Model-View-Controller-mønster. MVC utgjør velprøvde konvensjoner for adskillelse av programkomponenter. Dette skaper god oversikt og legger til rette for framtidige omstruktureringer / delvise utskiftinger i systemet. 5.1.2 Programmeringsspråk Forprosjektgruppens vurdering er at systemet bør utvikles med PHP som hovedprogrammeringsspråk. PHP er det programmeringsspråket som prosjektgruppen samlet har mest erfaring med. Med tanke på senere videreutvikling av systemet, av studenter på informatikk ved Høgskolen i Telemark, er PHP et gunstig valg, fordi skolen tilbyr opplæring i webapplikasjoner, fortrinnsvis basert på PHP. JavaScript vil kunne bidra med ekstra dynamikk i brukergrensesnittet.
5.1.3 Koderammeverk / biblioteker Vi mener også at applikasjonen bør baseres på et ferdig koderammeverk. Både av hensyn til sikkerhet og ytelse, men også for å unngå å bruke tid på grunnleggende funksjonalitet og struktur. Vi anbefaler å bruke PHP-rammeverket Laravel. Dette er et objektorientert MVCrammeverk, med ORM- og template-system og tilbyr robuste løsninger for bl.a. autentisering. Laravel bygger på anerkjente Symfony og er, ifølge highcharts.com, det PHPrammeverket som var mest populært ved utgangen av 2013. JQuery og Bootstrap er anerkjente biblioteker som vil kunne bidra til robust, effektiv og stilrein klientside-/ui-utvikling. Undersøkelsen er gjort av highcharts.com Fig. 1: Undersøkelse av rammeverk-popularitet.
5.1.4 Databasesystem Forprosjektgruppen anbefaler at regnskapssystemet bruker MySQL som databasesystem. MySQL er det databasesystemet som prosjektgruppa har mest erfaring med, det er velegnet til oppgaven og har svært god støtte i PHP. 5.1.5 Nettjener I kombinasjon med PHP og MySQL er Apache et naturlig valg av nettjener. Prosjektgruppen har i tillegg noe erfaring med konfigurasjon av Apache. 5.1.6 Tjenermaskiner Forprosjektgruppen mener det er fornuftig å bruke høgskolens egne tjenermaskiner til utvikling og drift av systemet. Dette vil gi best ytelse i begge disse situasjonene. Høgskolens tjenermaskiner har allerede alle de grunntjenestene applikasjonen krever, installert. I tillegg finnes versjonskontrollsystem og ssh-tjeneste. Alle i prosjektgruppa har, som studenter, tilgang til nettjeneren via ssh. Å velge høgskolens tjenere gir også den mest fleksible løsningen mht. ev. behov for nye/endrede tjenester. Dette løsningen er også praktisk talt uten kostnad. Høgskolens tjenermaskiner vil sørge for all nødvendig sikkerhetskopiering.
5.2 Lisensiering Forprosjektgruppen anbefaler at systemet lages som fri programvare / åpen kildekode. Vi mener at både oppdragsgiver og utviklere vil være tjent med dette. En viktig del av filosofien bak fri programvare er 'kunnskap foran kapital'. Denne filosofien mener vi at det er naturlig at oppdragsgiver, som utdanningsinstitusjon, representerer. Men en økonomisk vurdering tilsier også at oppdragsgiver trolig er tjent med at programvaren er fri. En åpen kildekode-løsning vil gjøre systemet mulig å vedlikeholde og videreutvikle for alle som har interesse i å høyne systemets kvalitet og nytteverdi, som regel uten at det innebærer noen kostnad. Det lokale og nasjonale informatikkmiljøet som oppdragsgiver representerer, vil gjøre fri-programvare-effekten spesielt stor og sannsynligvis sørge for den beste programvareløsningen. Den beste programvareløsningen vil, med sitt bidrag til kvaliteten på økonomistudiet der den blir brukt, ha best evne til å påvirke elevsøkertall ved institusjonen. Dette gir trolig større gevinst enn ved en kommersialisering av programvaren. I tillegg er flere av de utviklingsverktøyene som denne rapporten anbefaler, gratis å bruke i fri-programvare-prosjekter. Forprosjektgruppen har ikke tatt stilling til hvilken lisenstype som ev. bør brukes. Vi anser imidlertid GNU/General Public License som et aktuelt alternativ.
5.3 Utviklingsmetodikk og -verktøy 5.3.1 Metodikk Forprosjektgruppen anbefaler at hovedprosjektet baseres på en smidig utviklingsmetodikk. Scrum og Kanban er begge aktuelle metodikker som prosjektgruppen har noe opplæring i, og noe praktisk erfaring med. Begge metodikker, hver for seg eller i kombinasjon, vil kunne bidra til effektiv utvikling i prosjektgruppen, og godt samarbeid både internt i prosjektgruppen og mellom denne og oppdragsgiver. 5.3.2 Prosjektstyrings- og oppgavehåndteringsverktøy Vi anbefaler å bruke et prosjektstyrings- og oppgavehåndteringsverktøy. Vi har vurdert JIRA fra Atlassian, PivotalTracker og YouTrack fra JetBrains. JIRA vil være et fornuftig valg, fordi deler av prosjektgruppen allerede har erfaring med dette verktøyet. Fig. 2: Skjermbilde av JIRA
5.3.3 Versjonskontroll Vi anser det å bruke et versjonskontrollsystem som en helt nødvendig forutsetning for et sikkert og effektivt utviklingsarbeid i prosjektgruppen. Det bør brukes for alle deler av systemet, inkludert dokumentasjon og databaseskjema-definisjoner. Versjonskontrollsystemet Git vil være et fornuftig valg, fordi deler av prosjektgruppen har erfaring med det, og fordi dette allerede er installert på høgskolens tjenermaskiner. Fig. 3: Skjermbilde av grafisk Git-verktøy Kilde: www.cs.cmu.edu
6 Mulig overordnet plan for hovedprosjekt Fig 4: Mulig overordnet fremdriftsplan
7 Skisser og utkast Fig. 5: Oppdragsgivers grovskisse for del av brukergrensesnitt
Fig. 6: Mulig skjermbilde i systemet
Fig. 7: Mulig skjermbilde i systemet