2D1954 Programutvecklingsprojekt 2003-02-28 – Projektgrupp Elvin

 

 

Software Requirements Document

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Björn Engdahl

engdahl@kth.se

Fredrik Dahlström

fd@kth.se

Mats Eriksson

d94-mae@nada.kth.se

Staffan Friberg

sfriberg@kth.se

Thomas Glod

glod@kth.se

Tom Eriksson

tome@kth.se


1 Introduktion

1.1 Syfte

Syftet med detta dokument är att på en mer detaljerad nivå än User Requirements Document beskriva projektets omfattning samt vilken funktionalitet som den levererade mjukvara kommer att tillhandahålla.

Dokumentet ska ligga till grund för den kommande designfasen och ska även ses som en checklista för beställaren att all önskad funktionalitet implementeras.

1.2 Mjukvarans omfattning

Mjukvaran skall möjliggöra kommunikation med Elvin-meddelanden från och till en mobiltelefon av modell Sony-Ericsson P800/802. Elvin är ett system för meddelandehantering som skiljer sig från vanliga meddelandetjänster. Istället för att ett meddelande skickas specifikt mellan två applikationer som är fallet i vanliga meddelandesystem, så styrs meddelandedirigeringen i Elvin-systemet helt och hållet av innehållet i de specifika meddelanden som skickas.

1.3 Definitioner, akronymer och förkortningar

API, Application Programming Interface
GPRS, General Packet Radio System
HTTP, Hypertext Transfer Protocol
SDK, Software Development Kit

TICKERTAPE, En speciell typ av Elvin-meddelanden avsedd för chatt och nyheter
Sony-Ericson P800/802, En mobiltelefon med handdatorfunktioner
C++, Ett vanligt förekommande högnivåprogrammeringsspråk
Java, Ett vanligt förekommande plattformsoberoende högnivåprogrammeringsspråk
Elvin-klient, Den programvara som en vanlig användare använder för att få tillgång till Elvin-meddelanden

1.4 Referenser

Projektets hemsida: http://www.nada.kth.se/projects/proj03/elvin/
Elvin huvudsida: http://elvin.dstc.edu.au/
Elvin klient-API: http://elvin.dstc.edu.au/doc/apis.html
Elvin Subscription Language: http://elvin.dstc.com/doc/esl4.html

Tickertape standarder: http://elvin.dstc.com/projects/tickertape/doc/index.html
Sony-Ericsson P800/802: http://www.sonyericsson.com/

Elvins Java API JE4: http://elvin.dstc.edu.au/projects/je4/index.html

1.5 Översikt av dokumentet

Avsnitt två i dokumentet ger en generell beskrivning av mjukvaran. Denna omfattar ur vilket perspektiv projektet skall ses. Sedan följer en beskrivningar av de funktioner som mjukvaran kommer att leverera samt varför dessa behövs från ett användarperspektiv (2.2-3). Under punkt 2.4-2.5 anges under vilka antaganden detta dokument är utformat, samt vilka externa system som produkten bygger på och hur dessa fungerar (2.4-5), för att sedan gå vidare med allmänna begränsningar (2.6) och en ganska detaljerad modellbeskrivning (2.7).

Tredje avsnittet i dokumentet behandlar de specifika tekniska funktionalitets-kraven. Dessa täcker viktiga aspekter såsom prestanda, gränssnitt, externa krav, testning, kvalitet och säkerhetskrav.

2 Generell Beskrivning

2.1 Förhållande till andra projekt

Eftersom Elvin är ett enskilt projekt för en kurs finns inga andra projekt inom vår grupp. Inget liknande projekt finns heller hos beställaren.

2.2 Förhållande till tidigare och efterföljande projekt

Eftersom gruppen enbart arbetar inom projektkursen har vi inga tidigare projekt och kommer inte heller ha några efterföljande.

Vi känner inte till några liknande projekt på beställarens sida. Projektet kan eventuellt komma att följas upp om produkten visar sig användbar. Detta ställer krav på att den färdiga produkten är bra modulerad, modifierbar och utbyggbar.

2.3 Funktioner och Syfte

Produktens syfte är att fungera som en fullvärdig Elvin tickertapeklient. Tanken är att man ska kunna kommunicera via Elvin även om man lämnat sin dator.

Klienten ska kunna ta emot och skicka meddelanden, spara mottagna meddelanden och visa dem i en lista. Den ska även kunna visa ett meddelande i sin helhet i en separat vy. Använderen ska kunna skriva och skicka meddelanden i en annan vy. Det ska gå att lägga till och ta bort grupper för prenumeration. Användern ska manuellt kunna koppla upp och koppla ner mot en server. Möjligheter för att göra vissa inställningar, såsom t ex antal meddelanden som sparas/visas, kommer också finnas.

Programmet ska kunna köras i bakgrunden på telefonen så att möjligheten att vara ständigt uppkopplad via Elvin finns. När ett nytt meddelande inkommit ska programmet meddela om detta. Användaren med hjälp av inställningarna kunna ställa in på vilket sätt (ljud/vibration/popupfönster) detta meddelas.

2.4 Miljöbetingade beaktningar

Produkten utvecklas för mobiltelefonen Sony-Ericson P800/802, med operativsystemet Symbian v7. Klienten kommer att stödja Elvinserver, Elvind v4.0.3.

Produkten kräver tillgång till GPRS eller motsvarande uppkoppling mot internet. Det krävs ett IP-nummer för att klienten ska fungera och man måste vara ansluten under den tid man vill kunna ta emot och skicka meddelanden.

Målgruppen av användare är personer som har, men endast en begränsad, inblick i hur Elvin tickertape fungerar. Användaren behöver även en viss grundläggande färdighet i att använda applikationer av handdatortyp. Programmet kommer i övrigt vara mycket enkelt att använda och ställer mycket små krav på datorvana hos användaren.

Produkten kräver inget underhåll utöver det användaren själv kan utföra. Den konfiguration som behövs göras ligger på användarnivå.

2.5 Förhållande till andra system

Klienten förhåller sig främst till Elvinserver, Elvind v4.0.3. Ett färdigt Java API finns att tillgå som gränssnitt, och troligtvis behövs endast mindre modifieringar i detta göras.

Elvin finns idag implementerat för en rad olika plattformar på persondatorer. Det finns inga kända implementationer för mobila system än, så dessa påverkar inte produkten. Ett väldefinierat format för meddelanden, org.tickertape.message av version 1.3 alternativt 2.0, finns redan och detta är förstås implementationsoberoende.

2.6 Allmänna begränsningar

De begränsningar som finns ligger i möjligheten att använda mobiltelefonens inbyggda funktioner. När programmet ligger i bakgrunden finns risken att det inte går att använda vissa funktioner för att meddela användaren om att nya meddelanden har kommit. Vissa delar i systemet är begränsat och kan inte användas eller modifieras av användarprogram. Detta gäller dels statiska ikoner och menyer, som alltid visas oberoende av aktivt program, men även möjligheten att påverka standardvyn är begränsade.

Eftersom telefonen har en begränsad mängd internminne måste applikationen göras minnessnål, detta begränsar mängden funktioner som kan implementeras. De funktioner som är planerade kommer med största sannolikhet inte innebära att klienten tar för mycket minne. Eftersom programvaran för klienten ska laddas ner till mobiltelefonen, och man inte kan förutsätta att det kan göras via någon överföring med kabel mellan dator och telefon, måste storleken på applikationen göras så liten som möjligt.

2.7 Modellbeskrivning

 

Elvinklienten kommer att byggas i tre olika lager. Det understa lagret består av JE4. JE4 är Elvinprojektets Java API och används för all kommunikation mellan Elvin-klienten och -servern, se avsnitt 1.4 Referenser för mer information.

I mittenlagret finns funktionalitet för all meddelandehantering hos klienten. Det är i detta lager extrahering av data sker från de meddelande Elvinserver skickar enligt TickerTape standarden. Se nedan för ett UML diagram över samtliga moduler i detta lager.

I det översta lagret finns det grafiska gränssnittet för att kommunicera med klienten. All funktionalitet hos klienten ligger i det mellersta lagret. I gränssnittet finns motsvarande moduler som i mittenlagret. Skillnaden är att dessa moduler endast presenterar och ger användaren möjlighet att interagera med den funktionalitet som finns i det underliggande lagret.


3 Specifika krav

3.1 Funktionalitetskrav

Detta avsnitt beskriver vilken funktionalitet applikationens olika komponenter besitter. För en konceptuell modell, se avsnitt 2.7.

 

Meddelande

Denna komponent är en mycket allmän implementation av ett Elvin-meddelande. Förutom meddelandetexten kan meddelandet även innehålla annan information. Komponenten har stöd för att hantera olika typer av attribut som kan lagras och hämtas med hjälp av en nyckel som är kopplad till attributet.

 

Meddelandelista

För att lagra meddelanden hos klienten används denna komponent. Listan har funktionalitet för att lägga till och ta bort meddelanden. Den kan visa alla befintliga meddelanden och även sortera dem.

 

Anslutning

Anslutningskomponenten används av klienten för att kommunicera med Elvin-servern. Här finns funktionalitet för att koppla upp och ned mot en Elvin-server. Man kan skicka och ta emot meddelanden och även registrera en prenumeration på meddelanden från en viss grupp.

 

Grupplista

Grupplistan hanteras av anslutningskomponenten. Listan lagrar de grupper som klienten presumerar på. Här finns funktionalitet för att lägga till, ta bort och lista befintliga grupper.

 

Inställningar

Denna komponent lagrar de inställningar som är tillgängliga för klienten. Här lagras det namn som identifierar användaren och till vilken server som applikationen ska ansluta. Komponenten lagrar även information om preferenser, som t.ex. hur många meddelande som skall sparas i meddelandelistan.

3.2 Prestanda

Applikationens krav när det gäller prestanda är i första steget låga. Dock är det viktigt att hålla ner den totala storleken på applikationen, detta p.g.a. den begränsade tillgången på minne i mobiltelefonen. Ingen del av systemet är särskilt beräkningsintensiv, varför det inte bör uppstå problem med långa väntetider.

3.3 Gränssnitt

Kraven på det grafiska användargränssnittet är relativt höga. För att applikationen ska användas krävs ett enkelt gränssnitt.

För att användaren lätt ska förstå arbetsflödet är det viktigt att designen överensstämmer med vedertagna standarder för Sony-Ericsson P800-applikationer. Vi kommer att följa riktlinjer uppsatta av Sony-Ericsson.

Det grafiska gränssnittet kommer att delas upp i tre flikar. En flik för att läsa meddelanden, en för att skicka meddelanden och en för inställningar. Det är viktigt att minimera antal klick som behövs för att läsa ett meddelande när telefonen indikerar nytt inkommet meddelande genom ringsignal eller vibrator.

En viktig faktor för ett bra gränssnitt är hur användaren får reda på att nya meddelanden kommit in. I idealfallet ligger applikationen i bakgrunden och väntar på meddelanden från Elvin-servern. När ett nytt meddelande kommer meddelas användaren genom ett pip eller en vibration. Samtidigt dyker det upp en liten ikon i hörnet av skärmen, som visar användaren att nya meddelanden anlänt. På detta sätt behöver inte användaren avbrytas i sitt arbete.

P.g.a. säkerhetsaspekter och begränsningar påförda av operativsystem kanske detta inte är genomförbart. I så fall måste användaren manuellt gå in i programmet och kontrollera om det anlänt några nya meddelanden. Detta alternativ är sämre eftersom det påför ett extra steg och arbetet blir avbrutet i onödan om det inte finns några nya meddelanden.

 

3.4 Externa krav

Applikationen kräver inga tilläggsprogram utöver själva Elvin-klienten och ett operativsystem som tillåter Java-program. Vidare krävs ett GPRS-abonnemang och en Elvin-server att koppla upp sig mot.

3.5 Testning och leveranskontroll

För att kontrollera applikationens kvalitet kommer den att genomgå flera tester. I ett första steg testas produkten av gruppmedlemmarna. Därefter kommer beställaren att komma med synpunkter. Särskilt viktigt är det att användargränssnittet verifieras. Till detta kommer därför externa kontrollanter att anlitas. Dessa kommer att kunna ge värdefulla synpunkter på förbättringar i användargränssnittet.

Som mall vid leveranskontroll kommer User Requirements Document att användas.

3.6 Riskanalys

För potentiella risker och problem som kan uppstå under projektets gång, se dokumentet Riskanalys.

3.7 Dokumentationskrav

Projektdokumentation består främst av URD, SRD, riskanalys samt planeringsdokument. Dokumentation under utvecklingsarbetet sker i form av kommentarer till skriven kod. En lättare användarmanual kommer också att skrivas.

3.8 Säkerhetskrav

Datasäkerhet

Elvin är i sin natur ett mycket öppet system för meddelandehantering och kommunikation. Ett Elvin-meddelande kan exempelvis inte adresseras till en specifik klient utan klinterna själva väljer vilka typer av meddelanden som de vill få levererade till sig. Detta medför att alla meddelanden kan tas emot av alla klienter och det enda systemet för att skydda informationen från exempelvis tjuvlyssning är den kryptering av medelanden som Elvin-protokollet stödjer. Denna funktionalitet kommer dock inte att implementeras i vår produkt.

 

Tillgångssäkerhet

Programvaran skall felfritt kunna skicka och ta emot Elvin-meddelanden och ur användarens synvinkel skall detta (förutsatt att programmets grundinställngar är satta) fungera felfritt. Så länge det finns batteri, GPRS täckning och en fungerande TCP/IP kommunikation mellan telefonen och Internet, skall Elvin-klienten kunna användas.

 

Säkerhet i externa system

För att programvaran skall fungera krävs att de underliggande systemen fungerar. Dessa inkluderar själva telefonen, Sony-Ericsson P800/802 samt det inbyggda operativsystemet Symbian v7. En koppling mot Internet, samt en IP adress behövs för att systemet skall fungera. Om dessa system inte fungerar eller säkerheten i dessa äventyras kommer givetvis detta att kunna avspeglas på Elvin-klienten.

3.9 Portningskrav

Mjukvaran utvecklas specifikt för operativsystemet Symbian v7 på Sony-Ericssons mobiltelefon P800/802. Mjukvaran utvecklas i det vanligt förekommande, plattformsoberoende språket Java Micro Edition vilket underlättar portning till andra miljöer. Dock blir användargränssnittet på applikationen svårt att göra generellt då olika telefoner har mycket olika utseenden på bildskärmen. Programkod för att styra specifika telefonfunktioner bedöms också vara sådana saker som behövs skrivas om vid eventuell portning.

3.10 Kvalitetskrav

Mjukvaran kommer att kunna användas av riktiga användare. Den kommer dock inte att vara i kommersiell kvalitet. En sådan applikation tar avsevärt mycket längre tid att utveckla.