Forprosjektrapport For gruppe 20: Kevin Johnny Galåen s135768 Ali Emre Yildirim s135573 Danh Tran s141712 Vibeke Askeland s141436 Fullført: 30.01.2009
Table of Contents Forprosjektrapport... 1 For gruppe 20:... 1 Table of Contents... 2 Presentansjon... 3 Sammendrag:... 3 Om Bedriften... 3 Dagens situasjon... 3 Mål og Rammebetingelser:... 4 Løsninger... 4 Analyse av løsninger... 5 Konklusjon:... 5 Fremdriftsplan... 6 Arbeidsplan... 7 Statusrapport: - levert... 7 Prosjektside: - levert... 7 Forprosjektrapport: - levert... 7 Arbeidsplan: - levert... 7 Dataanalyse:... 7 Kravspesifikasjon:... 7 Dokumentasjon:... 8 Page 2
Presentansjon Arbeidstittel: Periode: Rapporteringsystem for batterier 5. januar til 17.juni Prosjekt number: 09-20 Gruppemedlemmer: Ali Emre Yildirim, Danh Le Cong Tran, Vibeke Askeland og Kevin Johnny Galåen Veileder: Oppdragsgiver: Eva Hadler Vihovde Think Global AS Kontaktpersoner: Bente Øvsttun Ditman bdi@think.no 41 44 08 49 Egil Falck Piene efp@think.no 92 222 505 Sammendrag: Prosjektet inngår i bachelor graden ved Høgskolen i Oslo, avdelig ingeniør. Hver Th!nk bil har en mindbox som registrerer batteridata og sender informasjonen til en database på en server. Vår oppgave er å lage et verktøy som kan presentere innsamlet informasjon grafisk. Om Bedriften TH!NK er en norsk, eletrisk drevet bil med plastkarosseri, produsert av selskapet Think Nordic AS i Aurskog Høland. Utviklerne har kontor på IT Fornebu. El-bilen er resirkulerbar og har ingen utslipp av milijøgifter. Bilprodusenten har vunnet fler priser, blant annet for god design. Dagens situasjon Th!nk samler batteridata. Forskere og utviklere har et program for å vise de forskjellige dataene. Verktøyet tilbyr ikke muligheten å kjøre statestikker på data eller å fremstille data grafisk. Th!nk ønsker en fremstilling i xml format og er tilhenger av åpen kildekode. Valg av egnet verktøy for utviklingen av prototypen er opp til studentene. Think legger like stor vekt på ideutviklingen rundt prosjektet som selve prototypen som skal lages. Th!nk tror at grafisk fremstilling vil gi flere fordeler: Overvåkningen over batterikvaliteten vil bli mer enkelt. En grafisk fremstilling vil kanskje gi forskerne/utviklere ideer til videre utvikling av Th!nk konsepter. Th!nk har ikke en klar ide på alle statistikker som kan være aktuelle og ønsker at studentene skal komme med inspill. Vi må og ta hensyn til at nye statistikker vil komme og lage et produkt som lett kan legge til nye statistikk Page 3
Mål og Rammebetingelser: Målet med denne oppgaven er å lage et webbasert batteriovervåkningssystem for TH!NK som kan vise viktig info samt oppdatere databasen til TH!NK med statistikker og informasjon, samt gi grafer til ingeniørene der slik de på en mer effektiv måte kan analysere og videreutvikle batteriene. Videre er det muligheter for å lage en MyThink side som eierene av TH!NK biler kan ha glede av, Widgets og mobilapplikasjoner. TH!NK ville at vi skulle være selvstendige, forstå problemet og lage vår egen kravspesifikasjon (noe som må vektlegges i vurderingen). Vi har kommet opp med mye, men for å begrense oppgaven har vi satt følgende prioriteringer: Think side for ingeniørene med grafer, statistikker og informasjon, design nedprioritert (dette er kravet ) MyThink for brukerne, med morsom og interessant info for eieren av bilen (sannsynligvis Beta versjon om ferdig) Widgets og mobilapplikasjoner (dette blir isåfall Alpha/Beta versjoner) Det må nevnes at TH!NK ville ha intuitiv og lett forståelig kode fremfor kompliserte og gode algoritmer (andre systemutviklere skal lett kunne sette seg inn i koden). Navn, kommentarer og dokumentasjon på engelsk så langt det lar seg gjøre. Sist men ikkeminst må vi lage en god kravspesifikasjon, med gode ideer for systemet, slik at andre utviklere kan hoppe på toget der vi hopper av. Løsninger For å utvikle dette prosjektet har vi flere valg med tanke på webløsningen. Den ene vil være å utvikle det med vanlig html, JSF, facelets. Den andre var i.net. Vi valgte JSF på grunn av åpen kilde kode som er viktig for oppdragsgiveren vår. Det er stadig større etterspørsel etter kunnskap om dette i arbeidslivet. For å gjøre det ekstra spennende og utfordrende vil vi også bruke en del AJAX teknologi for å gjøre sidene mer dynamisk. Vi på gruppen har varierende erfaring med både JSF og AJAX. Derfor må man regne med at en del tid vil gå med til å lære seg dette. Vi har valgt Mysql database server fordi vi har en del kunnskaper i Mysql spørringer og fordi det er veldig mye brukt og er åpen kildekode. Teknologier: JSF, AJAX, Facelets Utviklingssprogram: Netbeans IDE 6.5 + plugins Database: Mysql, Postresql Modelleringspråk: UML Programmeringsspråk: Java, CSS, Perl, Html,Xml, Sql Andre programmer: Adobe Photoshop, FTP program, Open Office, Rational Rose. Operativsystem: Windows Vista, XP, Linux Ubuntu v8.04 Page 4
Analyse av løsninger JSF rammeverket er veldig kraftig og det at den har ferdig komponenter, fører til at vi kan spare masse tid. Java programmering er vi flinke i og noen av oss har en del JSF kunnskaper, men facelets kan ingen av oss. Vi ser fram til å lære oss dette. JSF vil gi oss mulighet til å utvikle avanserte systemer, enklest mulig. Vi vil også implementere en AJAX løsning i vårt prosjekt. AJAX er mye brukt i arbeidslivet, og virker veldig spennende. Det vil gjøre sidene mer dynamisk og behagelig for brukeren, og vil også korte ned tiden det tar å laste ned sider. Konklusjon: Dette blir et morsomt og stort prosjekt, det er derfor synd vi bare har 3 måneder på oss til selve implementeringen. Vi har satt et greit krav for oss selv, med rom for videre implementering om vi har tid. Uansett vil kravspesifikasjonen og systemet vi lager gi godt grunnlag for TH!NK og forhåpentligvis inspirere til videre utvikling på web og brukerfronten. Forutenom dét vil systemet gi ingeniørene mer oversikt over bilene, beregne statistikker, vise gode grafer og på den måten gjøre videreutvikling av batteriene enklere. Page 5
Fremdriftsplan Page 6
Arbeidsplan Her er en oversikt over hvilke oppgaver som inngår i prosjektet og hvordan vi skal gå frem for å løse disse. Fremdriftsplanen i form av et Gantt-diagram, viser når de forskjellige oppgavene skal være ferdig. Statusrapport: - levert En kortfattet beskrivelse av gruppen og hva vi ønsker å ha prosjekt i. Samt hva som skal skje i perioden fremover. Levert 31.oktober 2008 Prosjektskisse: - levert Inneholder formelle data om deltagere og prosjektet, en kort beskrivelse av bedriften og en kort beskrivelse av prosjektet. Levert 5.desember 2008 Prosjektside: - levert Opprette hjemmeside for prosjektet. Dokumentasjon legges ut fortløpende. Levert 5.desember 2008 men oppdateres gjevnlig. Forprosjektrapport: - levert En utfyllende beskrivelse av prosjektet, med mål, rammebetingelser, programmeringsspråk, osv Det innebærer også et estimat av fremdriftsplanen for prosjektet. Leveres 30.januar 2009 Arbeidsplan: - levert En grovskisse av arbeid som inngår i prosjektet. 1.utkast leveres 30.januar 2009 Fremdriftsplan: - levert Oversikt over alle arbeidsoppgavene, samt tidsestimat over hvor mye tid som blir satt av til hver enkelt deloppgave. 1 utkast leveres 30.januar 2009 Datainnsamling: Kontaktet med oppdragsgiver for å finne ut av deres behov, krav og ønsker. Etter 5 timers lange møte med Think, fikk vi en del nyttige informasjon som avklarte mesteparten av det gruppen lurte på. Nye spørsmål vil dukke opp underveis. Datainnsamling fra oppdragsgiver vil derfor skje kontinuerlig. Datainnsamling skjer og fra internett. Vi må tilegne oss kunnskap om det finnes produkter som ligner vårt prosjekt, finne ideer til vårt prosjekt og lignende. I hovedsak skjer dette i starten av prosjektet. Dataanalyse: Innsamlet data skal brukes til å analysere/ ta avgjørelser i forhold til prosjektet. Av Th!nk fikk vi et utkast til kravspesifikasjon. Vi må bestemme prioritert rekkefølge på oppgavene, foreta nødvendige tilføyelser, foreta nødvendige avgrensninger, tenke ut funksjonell design, applikasjonens funksjon ol. Kravspesifikasjon: Skriver en detaljert kravspesifikasjon med bakgrunn på dataanalysen. Beskrivelsen innholder både Page 7
funksjonelle og ikke funksjonelle krav. Hva som SKAL gjøre, hva som KAN gjøres dersom det er mer tid, og mulighetene til å VIDEREUTVIKLES når gruppen stopper. Modellering Use Case: Lage use case diagram ut fra kravspesifikasjonen med programmet Rational Rose. Use case beskriver kravene til systemet sett fra kundens perspektiv. Beskriver hva som skjer, ikke hvordan det skjer. Sekvensdiagram: Sekvensdiagram er et interaksjonsdiagram som har til hensikt å vise hvordan grupper av objekter samarbeider for å løse en oppgave. Diagrammet må derfor få fram både et tidsaspekt og at det er flere objekter som virker sammen. Vi skal lage sekvensdiagram i Rational Rose. Klassediagram : Et klassediagram er en oversikt over klassene som fins i programmet. Det viser hva slags data som ligger i hver klasse, hvilke metoder som fins i hver klasse, hvilke klasser som er avhengige av hverandre samt hva slags avhengighet (arv, assosiasjon osv.) det er. Klassediagrammet brukes til å vise strukturen til programmet. Vi skal lage klassediagram i Rational Rose Implementering: SQL Lage en database hvor vi ligger inn data fra oppdragsgivers excel-fil. Vi jobber opp mot denne databasen til vår prototype er ferdig og er testet og klar til å kobles mot Th!nk sin database. Perl script. Lage et perl skrip som tar data fra en excel fil, og legge dem inn i vår sql-database JSF webapplikasjon. Skrive metoder som er spesifisert i kravspesifikasjonen. XML Statistikkfremvisning som viser diverse statistikk spesifisert i kravspesifikasjonen Design - Designe med facelets Testing & feilsøking Intern testing: Vi tester systemet(koden) og databasen for å finne feil og mangler Ekstern testing: Lar oppdragsgiver og eksterne personer teste systemet med tanke på brukervennlighet. Finpusse kode: Sørge for at koden er oversiktlig og med kommentarer Dokumentasjon: Brukermanual: Utvikle et veiledningsdokument for oppdragsgiver. Prosjektrapport : Skrive en prosess, produkt og testrapport. Føre prosjektdagbok: Skrive dagbok gjennom hele prosjektperioden. (etter Avslutning Forberede presentasjon: Gjøre klar til presentasjon med PowerPoint-slides og lignende, og finne en plan for fremføring. Presentasjon: Presentasjon av prosjektet i auditorium. Page 8