AIRDOG FORPROSJEKTRAPPORT PRESENTASJON Sted og dato Oslo, Feb 9, 2009 Prosjektets tittel Gruppemedlemmer Oppdragsgiver Veiledere, BEKK Kontaktperson, BEKK Veileder, HiO AirDog Egil Paulsen (+47) 482 32 249 egil.paulsen@gmail.com Tore Lervik (+47) 470 10 713 tore@mindre.net Hans Magnus Inderberg (+47) 922 57 298 post@hinderberg.no Pelle Christoffer Bjerkestrand (+47) 957 06 696 pelle@pellebjerkestrand.net BEKK Consulting AS Skur 39 Vippetangen 0150 Oslo Ole Christian Langfjæran (+47) 982 19 389 Ole.C.Langfjaeran@bekk.no Erlend Opdahl (+47) 982 19 360 Erlend.Opdahl@bekk.no Ole Christian Langfjæran Eva Hadler Vihovde (+47) 928 88 788 EvaHadler.Vihovde@iu.hio.no s146719 s141728 s141740 s130852 side 1 av 6
SAMMENDRAG Prosjektet skal gjennomføres som hovedprosjekt våren 2009 ved Høgskolen i Oslo for BEKK. Oppgaven er å lage et nytt system for visning av hundedata fra Norsk Kennel Klubb for Norsk Pointerklub og Norsk Breton Klubb. Systemet blir en uavhengig nettside der klubbens medlemmer kan logge seg inn og skal utvikles ved hjelp av Adobe Flex, PHP og MySQL. DAGENS SITUASJON Veileder Ole Christian Langfjæran har fra før laget en løsning for å vise informasjon om hunder, raser og jaktresultater fra Norsk Kennelklubb. Løsningen blir benyttet av flere norske hundeklubber, deriblant Norsk Pointerklub og Norsk Breton Klubb. Dagens løsning er ikke god nok og det ønskes bedre statistikkmuligheter. For eksempel ønskes bedre muligheter for å redigere på data som ofte er feil, og legge inn egne data for epilepsi og hoftedysplasi. Videre ønskes bedre kompabilitet da dagens løsning avhenger av utdatert teknologi som ActiveX i Windows XP. OPPDRAGSGIVER Kundene er Norsk Pointerklubb og Norsk Bretonklubb. BEKK vil fungere som vår oppdragsgiver og vil vedlikeholde systemet etter levering. BEKK BEKK Consulting AS er et norsk konsulentselskap som leverer rådgivnings-, teknologi- og forvaltningstjenester til store offentlige og private virksomheter. Selskapet har i dag 210 ansatte og er en del av ErgoGroup - et kraftsenter i Norden innen teknologi. BEKK stiller med to veiledere til prosjektet. Veilederne fra BEKK er Erlend Opdahl og Ole Christian Langfjæran. Ole er utvikler og er BEKK sin ekspert på Adobe Flex teknologi. Ole hadde som sin bacheloroppgave å utforme det eksisterende systemet som nå er utdatert. Erlend er eier av fuglehund og begge har kontakter i klubbene. På denne måten har de som oppdragsgiver innsikt i kundens situasjon. NORSK POINTERKLUB http://www.pointer.no Pointeren i Norge representerer en liten, men sunn rase. Det registreres rundt 300 valper i året. Rasen har få alvorlige arvelige defekter, noe som skyldes at vi har god kontroll over rasen, og avler på sunne og friske bruksdyr. Det er svært få pointereiere som ikke driver med jakt og hundesport, og dette har ført til at de jaktlige egenskapene alltid har hatt høyeste prioritet for oppdretterne her i landet. Klubben har i dag ca 950 medlemmer. Veileder Erlend Opdahl er medlem i Norsk Pointerklub. NORSK BRETON KLUBB http://www.breton.no Breton er en liten rase, så vel i størrelse som i antall i Norge. Breton er den minste av de stående fuglehundrasene. Det skal være en kvikk, livlig og våken hund med energiske, kraftige bevegelser uten å virke tung. Klubben har i dag ca 900 medlemmer. side 2 av 6
EKSISTERENDE LØSNING Veileder Ole C. Langfjæran laget den eksisterende løsningen i 2002. Applikasjonen benytter seg av tall fra Norsk Kennelklubb (NKK) sin hundedatabase. NKK leverer spesifikk informasjon på bestilling til forskjellige hundeklubber. Denne informasjonen inneholder tall fra konkurranser, jaktprøver og avl. Applikasjonen benyttes til å vise En enkelt hunds jakt- og utstillingsresultater Rasens jakt- og utstillingsresultater Jaktprøvegjennomsnitt for alle hunder hvert år Stamtavler, både ekte og fiktive for mulige avkom Lister over hunder registrert i hundeklubben Profil for hver enkelt hund Avlstall Avkom etter hver enkelt hund HQ-tall (Hip Quality) Løsningen er i dag ca 6 år gammel og har en rekke mangler. Noen av manglene er at den er treg, lite vedlikeholdbar samt OS-avhengig. Dette kommer av at den er laget i Visual Basic og løsningen fungerer kun på Windows XP med Internet Explorer 6 der den også er avhenging av ActiveX. Løsningen er i dag derfor lite tilgjengelig og blir mindre og mindre brukt. Data fra NKK kommer i form av en tekstfil fra databasen. Tekstfilen inneholder de siste resultater og informasjon om hundene i den gitte hundeklubben. Tekstfilen er vanskelig formatert og det er viktig å korrigere for feil og duplikater ved importering til den lokale databasen. side 3 av 6
MÅL OG RAMMEBETINGELSER Målet med prosjektet er å utvikle et nytt system for hundeklubber som er tilknyttet Norsk Kennel Klubb (NKK). I første omgang vil dette være fuglehundeklubbene Norsk Pointerklub (NPK) og Norsk Breton Klubb (NBK). Systemet som skal utvikles skal erstatte det nåværende systemet og, om mulig, tilby nye funksjoner. Samtidig er det viktig at systemet kan brukes med lite eller ingen opplæring, av hele målgruppen (hundeeiere som er medlemmer av NPK og NBK). Systemet skal: Kunne kjøres på "alle" OS (Windows 2000/XP/Vista/7, Mac OS X og Linux) Parse datafilene NKK sender ut Beskytte dataene for innsyn av uvedkommede Systemet bør: Være relativt billig å drifte, vedlikeholde og utvide Kunne fullstendig erstatte nåværende system Med tanke på målene og rammene, står vi ikke helt fritt til å velge akkurat hvilke tekniske løsninger vi vil. Plattformuavhengighet og kravet om billig drifting betyr at åpne gratisalternativer som LAMP-stacken (Linux, Apache, MySQL & PHP) blir favorisert over lukkede løsninger som Windows Server, C#.NET og MSSQL. METODIKK Under utvikling av systemet kommer vi til å jobbe smidig. Smidig er en overordnet utviklingsmetodikk som benyttes av BEKK og inneholder, blant annet, SCRUM som vi vil basere oss på. Metoden går kort ut på at man jobber ut i fra korte user stories som bestemmer funksjonaliteten til systemet og ikke løsningen. Eksempel på user story kan være: Som en bruker skal jeg å kunne se en liste over alle hunder slik at jeg kan finne en hund Ved å levere inkrementelt vil kunden jevnlig kunne prøve ut og være med prosessen helt fra starten av. Faren for å levere et system som enten er redundant eller utilstrekkelig minker. Utviklingen vil utføres etter et testdrevet utviklingsprinsipp. Testdrevet utvikling er en programvareutviklingsmetodikk som består av korte iterasjoner hvor nye tester som dekker de ønskede forbedringene eller nye funksjonaliteten skrives først, deretter implementeres produksjonskoden som trengs for å få testene til å passere feilfritt. side 4 av 6
LØSNINGER Vi har sett på flere valg med tanke på webløsningen i dette prosjektet. Vi så på Silverlight som er Microsoft sin konkurrent til Flex som begge gjør det mulig å lage gode dynamiske brukergrensesnitt for nettet. En annen mulighet var det relativt nye JavaFX fra Sun. Vi valgte å bruke Adobe Flex 3 da BEKK kan stille med veiledere som har god erfaring innen Flex, samtidig som dette også var et ønske fra BEKK sin side. Til serverdelen lå valget mellom ASP.NET og MSSQL eller Apache med PHP og MySQL. Vi har valgt å bruke LAMP-stacken som består av Linux, Apache, PHP og MySQL da denne løsningen er kostnadseffektiv og arbeider godt sammen med Flex. For eksempel kan PHP og Flex serialisere, sende og motta objekter uten å måtte bruke XML eller liknende. Teknologier: Utviklingsprogram: Database: Programmeringsspråk: PHP og Adobe Flex Eclipse med Flex Builder og PHP plugin, Coda MySQL MXML, ActionScript og PHP Andre programmer: Maven2, Subversion og CruiseControl til versjonskontroll og automatisert testing Google Code til oppbevaring av kildekode (Subversion) Pivotal tracker til User Stories ANALYSE AV VIRKNINGER Ved å velge Adobe Flex vil vi få en god erfaring i en populær og raskt voksende teknologi. Flex brukes allerede i flere store firmaer og har en stor brukergruppe. Likevel er det mye nytt på vei og det er godt dokumentert. Videre kan man med enkle grep endre en applikasjon skrevet for web i Flex til en AIR-applikasjon som kjører på desktopen. En stor fordel ved å velge Flex er at vår veileder Ole C. Langfjæran er BEKKs egen ekspert i firmaet og vi vil få mange gode tips og best practices fra ham. Å velge PHP som backend har sine fordeler ved at det er open source og funger godt med ActionScript i Flex. Det finnes i dag svært mange rammeverk for PHP som vil gjøre utviklingen både enklere og mer effektiv. Å bruke PHPeclipse fremfor andre editorer har sine fordeler ved at det er gratis, kjører på alle våre operativsystemer og har rikelig med hjelpemidler. Vi kan da også skrive MXML, ActionScript (Flex) og PHP i samme miljø. Oppsettet med Flex og PHP er ofte brukt og godt dokumentert med mange eksempler på internett. Å bruke Flex og PHP vil være kostnadseffektivt samtidig som vi lærer de samme konseptene og tenkemåtene som vi ville ha gjort med andre teknologier. Bruk av Maven, Subversion og CruiseControl vil gi oss god erfaring med hvordan man jobber i større prosjekter. Innsjekking, testing og bygging av kode på servere er daglig praksis i arbeidslivet, og er noe nytt i forhold til hva vi har benyttet under studiet ved HiO. Å følge BEKKs utviklingsmetodikk og testrutiner vil vi få en god innsikt i moderne konsepter for problemløsning og kvalitetsikring. side 5 av 6
KONKLUSJON Vi har sett at med BEKK som veileder og oppdragsgiver vil det lønne seg å bruke Adobe Flex Builder til å utvikle front end applikasjonen da BEKK sitter på mye kunnskap om det. Flex fungerer like godt til oppgaven som alternativene, samt at det har en fordel i å være plattformuavhengig. Da brukergruppen er stor og kan bestå av mange plattformer, faller valget naturlig på Flex og PHP. PHP er åpent og gratis og vil være et poeng å bruke siden driftkostnadene ønskes å holdes lave. PHP skal fungere godt som back end til Flex. BEKK sine test- og utviklingsmetoder vil gi relevant erfaring til å senere kunne jobbe i større prosjekter i arbeidslivet. BEGREPSFORKLARING ActionScript - Språk for å programmere til Adobe Flash Player. Ofte brukt til å lage rike webapplikasjoner. Adobe Flex - Adobe sin SDK for å lage Flash-programmer og -applikasjoner. Adobe AIR - en operativsystemuavhengig runtime-modul som gir utviklere muligheten til å bruke velkjente webteknologier til å lage avanserte Internett-programmer for utrullering til skrivebordet. SQL - databasespråk som brukes til å hente ut, slette, legge til eller oppdatere data fra en server. PHP - et serverside programmeringsspråk. ActiveX - ActiveX-kontroller er små programmer, noen ganger også kalt "tillegg", som brukes på Internett. Ikke så kompatibelt med nyere OS eller nettlesere. LAMP - kombinasjon av Linux, Apache, MySQL og PHP. Et vanlig oppsett for å få en fungerende webserver. C#.NET - Programmeringsspråket C# i rammeverket.net av Microsoft. Cruise Control - Serverprogramvare for automatisert testing. MySQL - SQL-basert databasesystem som er lisensiert under GPL. Denne databasetjeneren er veldig mye brukt, og er en vesentlig del av LAMP-stacken, hvor M-en står for nettopp MySQL. MSSQL - SQL-språk utviklet av Microsoft. MXML - markup language introdusert av Macromedia. Brukes mest til å legge ut interface elementer i Flex. XML - (Extensible Markup Language) er et universelt og utvidbart merkespråk og en forenklet videreføring av SGML. XML er et verktøy for deling av strukturerte data mellom informasjonssystemer, særlig over internett. SCRUM - en prosjektledermetodikk som i hovedsak benyttes innenfor programvareutvikling. Scrum benyttes gjerne i kombinasjon med systemutviklingsmetoden Extreme Programming (XP), men kan i prinsippet enkelt integreres med alle iterative og inkrementelle systemutviklingsmetoder, f.eks. DSDM eller Rational Unified Process (RUP). Coda - En utviklingsmiljø for Mac OS X. Maven - Serverprogramvare for automatisert bygging av kildekode. Pivotal Tracker - En online løsning som håndterer user stories i forbindelse med smidig utvikling. side 6 av 6