Preliminär specifikation av projekt Projektets namn: Infraröd Minneslåda (numera omdöpt till FastSync) Uppdragsgivare: Alex Olwal aolwal@cs.columbia.edu Deltagare: Johan Ullberg <d00-jul@d.kth.se> Nils Liberg <d00-nli@nada.kth.se>, Carlhenrik Ek <t98_ekk@t.kth.se>, George Ölund <d00-gol@nada.kth.se>, Jan Olmårs <d00-jao@nada.kth.se>, Johan Ullberg <d00-jul@nada.kth.se>, Magnus Thylander <d00-mat@nada.kth.se>, Michael Sundman <d99-msu@nada.kth.se> 1.1 Problembeskrivning Projektets mål och syfte är att skapa ett system för överföring av filer, korta texter och kalenderanteckningar till och från en handdator av modell Palm. Mjukvaran kommer främst att skilja sig från befintlig mjukvara i ett avséende, nämligen hastigheten. Syftet är att man på ett enkelt sätt skall kunna använda sin handdator som ett fickminne och portabelt lagringsutrymme. 1.2 Bakgrund Den här projektuppgiften utgör huvudmoment i kursen Programutvecklingsprojekt (2D1954), vilket alla tredjeårsstuderande datateknologer på civilingenjörsprogrammet på KTH läser. Själva uppgiften kommer från en idé av Alex Olwal om ett annorlunda sätt att använda sin Palm på. Han såg nyttan av att endast använda palmen som lagringsutrymme eller fickminne 1.3 Syfte Syftet med projektet är att utsätta oss studenter för litet mer verkliga förhållande vid grupparbete, med en större grupp, en uppgift hämtat från verkligheten, självständigt arbete och utmaningen att försöka få till stånd en arbetsstruktur som fungerar. Vidare är det en möjlighet att prova på olika arbetsformer och projektstyrningsmodeller. 1.4 Krav och avgränsningar Användaren av det färdiga systemet skall kunna överföra godtyckliga filer (dock ej större en palm:ens minneskapacitet) från en stationär dator till sin handdator och från handdatorn till en stationär dator. Användaren måste ha installerat ett program för överföring på sin handdator, samt köra ett PC-program på sin stationära dator för att möjliggöra överföringen.
Programmet kommer endast att utvecklas till Microsoft Windows 2000 och nyare. Filerna som kopieras överförs okomprimerade, men systemet bör innehålla stöd för senare utökningar med kompringeringsstöd. 1.4.1 Funktioner PC-programmet bör kunna köras utan att först installeras. PC-programmet skall kunna köras på datorer med operativsystemet Microsoft Windows 2000 (eller senare versioner, som t ex. Microsoft Windows XP). PC-programmet skall vara litet och minnessnålt. PC-programmet skall ha snabba responstider. PC-programmet skall vara utrustat med ett lättanvänt grafiskt gränssnitt. Filöverföringar skall kunna avbrytas. PC-programmet och Palm-programmet skall vara användarvänliga och intuitiva. (följa minsta överaskningens lag ) 1.4.2 Datormiljö 1.4.2.1 Hårdvara PC-programmet skall gå att köra på datorer som uppfyller systemkraven för sitt operativsystem, dvs. hårdvarukraven för Microsoft Windows 2000 (och senare). Palm-programmet skall gå att köra på Palm-datorer som motsvarar version 3.5 (och senare) av operativsystemet PalmOS. 1.4.2.2 Mjukvara Mjukvaran kommer att utvecklas i C++ och eventuellt kommer ytterligare något språk att användas för ett grafiskt gränssnittet. 1.4.2.3 Användare De tänkta användarna är samtliga personer som innehar en Palm och önskar bära med sig filer och anteckningar på ett enkelt sätt utan att köra en komplett (och tidsödande) synkronisering av innehållet på sin handdator. 2 Förslag till lösning I PalmOS finns stöd för överföringsprotokollet OBEX (Object Exchange Protocol). Med hjälp av detta kan godtyckliga sammanhängande binärdata överföras och lagras. För att kunna ta emot filer skickade över OBEX på palmen, måste ett program ha registrerat sig som ansvarigt för just den typen av data. Därför behövs ett program på handdatorn som gör denna registering, tar emot data när sådan skickas och sparar denna på lämpligt ställe. Det verkar som om palmen måste initiera överföringen.
På PC-sidan måste förmodligen en implementation av OBEX skrivas. Det finns inget stöd genom dynamiskt bibliotek i windows för OBEX. Däremot finns ett kommandoradsprogram som används vid överföring av filer mellan bärbara datorer. En lösning måste således bestå i att få detta windowsprogram att fungera för våra syften eller att göra en helt egen OBEXimplementation. 2.1 Systemskiss 2.1.1 Moduler Projektet kan delas in i ett antal relativt fristående delar: OBEX-implementation på PC-sidan Palmprogram Grafiskt gränssnitt till PC-programmet Grafik till gränssnittet Dokumentation 2.1.2 Diagram Följande skiss visar hur systemet är tänkt att användas. Punkt B Punkt A En överföring av filer från Palm till dator skulle kunne ske på följande sätt 1. PC-programmet startas 2. Palmprogrammet startas och användaren begär överföring (IRporten aktiveras) 3. PC-programmet som kontinuerligt söker efter IR-sändare hittar Palmen. 4. Med hjälp av palmprogrammet skickas filerna över till datorn där windows tar emot filerna 5. Vårt PC-program tar hand om och placerar filerna på korrekt ställe
2.1.3 Skiss av användargränssnittet Använder kan välja filer som skall lagras i palmen, samt ta emot filer som finns lagrade. Ovanstående är endast ett rudimentärt gränssnitt som kan förbättras avsevärt. 3 Genomförande 3.1 Arbetsmodell Vi kommer använda en modell som har stora likheter med Extreme Programming. Bland annat kommer vi jobba med små iterationer och ha kontinuerliga tester. Det mesta av programmeringen kommer att ske i par, också enligt Extreme Programming. Vi kommer dock inte att använda Extreme Programming rakt av utan även använda arbetssätt från andra mer traditionella modeller. 3.2 Tidsplanering Vecka 10 11 12 13 14 15 16 17 18 19 20 Preliminär spec. Lägesrapport Förhandsred. Slutredovisning Instud. OBEX Instud. PalmOS OBEX-impl. Palmprogsimpl. Gränssnittsimpl. Dokumentation Testning
3.3 Administration Gruppledaren kommer att samordna arbetet och se till så att alla har lagom arbetsbörda. Vi kommer att ha möten ca en gång i veckan där vi diskuterar framsteg och identifierar möjliga problem. Förutom mötena kommer vi att försöka ha mycket kommunikation via e-post och ICQ för att öka effektiviteten och svarstider vid frågor. Vidare kommer vi förutom gruppledaren inte utse några speciella roller utan arbetsuppgifter som planering, instudering, design, implemetaion, dokumentation och så vidare kommer att fördelas dynamiskt så att alla gruppmedlemmar får möjlighet att testa på alla delar. 3.4 Aktiviteter De aktiviteter vi identifierat är: Instudering Systemdesigen Implementation OBEX Palmprogram Palm-gränssnitt Windowsprogram Windows-gränssnitt Tester Testning Dokumentation En grov tidsplan finns ovan. Vi har där inte angett några timantal då det är svårt att förutse hur mycket tid varje moment kommer att ta. Vi siktar dock på 10-15 timmars arbete per gruppmedlem och vecka. 3.5 Arbete med dokumentation Dokumentaion av arbetet och det utvecklade systemet kommer att ske kontinuerligt och alla dokumenterar den kod de själva framställer. Utformning av en användarhandledning kommer att ske mer genemsamt men även här kommer den kodansvarige att medverka för att det ska bli korrekt. I dokumentation av systemet ingår också kodkommentarer och ingen kod kommer att anses som färdig utan dessa. Kommentarerna är nödvändiga för underhåll och uppdatering av koden, men underlättar även under utvecklingsarbetet då fler personer än programmeraren själv ska kunna följa koden. 4 Riskkalkyl 4.1 Tidsbrist Tidsbrist är något vanligt förekommande i projektarbeten och det är något vi försöker undvika genom att ha en aktiv gruppledare, kontinuerlig kontakt, sätta upp delmål med tidsgränser och genast ta itu med uppkomna problem.
4.2 Tekniska hinder För att inte stöta på tekniska hinder som riskerar att stjälpa hela projektet kommer vi kontinuerligt att titta på alternativa lösningar till tekniska problem och försöka förutspå återvändsgränder. 4.3 Konflikter och missförstånd För att undvika konflikter mellan uppdagsgivare och gruppen kommer vi försöka att presentera dellösningar för att sedan få feedback. Kontakten med uppdragsgivaren kommer i första hand att ske genom gruppledaren och på så vis kan vi minimera risken för missförstånd. Konflikter inom gruppen anses mindre troligt men löses i sådant fall genom diskussion eller gruppledarens vetorätt.