Kravspecifikation Cykelgarage Stefan Johansson D08 (dt08sj7@student.lth.se) Johan Anderholm D08 (dt08ja5@student.lth.se) Angelica Gabasio D08 (dt08ag8@student.lth.se) Marcus Carlberg D08 (dt08mc4@student.lth.se) Jon Andersen D08 (dt08ja8@student.lth.se) Simon Ekvy D08 (dt08se2@student.lth.se) Grupp 15 Projekthandledare: Richard Berntsson Svensson Version 2.0 18 maj 2009
Innehåll 1
1 Ändringshistorik Ver Datum Förf. Förklaring 0.1 090330 JA Första utdrag 0.2 090429 JA Korrigerad enligt synpunkter 1.0 090504 JA Baseline 1.1 090505 MC Uppdateringar enligt kravändringar Referenser [1] Project and Exercises in the Software Engineering Process, Software Engineering Research Group Department of Computer Science Lund University 2 Introduktion 2.1 Syfte Detta dokument beskriver hur cykelgaragesystemet är tänkt att fungera samt de krav som detta innefattar. Dokumentet är främst till för att underlätta utvecklingen samt att kundrepresentanter ska få en överblick över hur det färdiga systemet kommer att se ut, och för att kunden ska ha en möjlighet till synpunkter och ändringar. 2.2 Omfattning Denna specifikation syftar bara till att förklara hur mjukvaran kommer att fungera. Avläsning av streckkod och pinkod sköts av hårdvara. Streckkodsutskrift och dörröppningar tas även det hand om av hårdvara, detta kommer att kontrolleras genom fördefinierade gränssnitt. Produkten som ska utvecklas är ett kontrollsystem till ett cykelgarage i vilket man kan förvara cyklar säkert. Detta ska ske genom ett system med pinkodsskyddade dörrar och streckkoder för att identifiera cyklar. 2.3 Upplägg Strukturen till kravspecifikationen är baserad på riktlinjer ställda i ref[1]. I sektion 3 i denna specifikation finns en kortfattad beskrivning av produkten och i sektion 4 är kraven listade i form av användarscenarion och text. Alla krav har ett unikt id-nummer. 3 Produktbeskrivning 4 Krav Systemets struktur är beskriven i figur 1. Streckkodsavläsare och skrivare, pinkodsterminal och låsmekanism är implementerade i hårdvara. Kärnan av systemet är mjukvaruimplementerad. Kontrollenheten kommer att ta emot följande signler. 2
Figur 1: Cykelgaraget entrycharacter: Siffror från pinkodsterminalen. entrybarcode: Sträckkoden från ingången. exitbarcode: Sträckkoden från utgången. register: Registrera användare. unregister: Avregistrera användare. Följande signaler skickas från kontrollenheten: lightled: Används då man tänder lamporna vid pinkodsterminalen. register: Pinkodsterminalen registrerar kontrollenheten. register: Streckkodsläsaren registrerar kontrollenheten. timeopen: Används för att öppna dörrarna. barcode: Streckkoden skickas mellan kontrollenheten och operatören. 3
BarcodePrinter Pincode- Terminal lightled, register Entry- Character printbarcode entrybarcode, exitbarcode Barcode- Reader register Control unit Electronic- Lock timeopen barcode, pincode register, unregister Operator Figur 2: In och utdata till kontrollenheten pincode: Pinkoden skickas mellan kontrollenheten och operatören. printbarcode: Används för att skriva ut streckkoder på streckkodsskrivaren. 4.1 Gränssnitt Krav 1. Systemet ska implementera de gränssnitt uppritade i figur 2. 4.2 Användarscenarion Fall 1. Inlämning av cykel: Primär aktör: Cykelägaren. Förutsättning: Cykeln har en streckkod. 1. Användaren läser in streckkod med hjälp av streckkodsläsare vid huvudingången. 2. Dörren låses upp. Undantagsfall: 1. Garaget är fullt. Dörren öppnas inte. 4
2. Streckkoden är oläsbar. Dörren öppnas inte men användaren kan kontakta operatören för ny streckkod. 3. Streckkoden finns inte med i systemet. Dörren öppnas inte. Fall 2. Registrering av användare: Primär aktör: Operatören. Förutsättning: Användaren är oregistrerad. 1. Användaren kontaktar operatören. 2. Operatören registrerar efter identitetskontroll användaren med hjälp av kontrollsystemet. Registreringen består av personnummer, adress, telefonnummer, namn och efternamn. 3. Användaren får en personlig pinkod och streckkod som är knuten till användarens profil. Streckkoden skrivs ut med streckkodsskrivaren. Fall 3. Uthämtning av cykel: Primär aktör: Cykelägaren. Förutsättning: Cykeln har en streckkod. 1. En registrerad användare kommer för att hämta sin cykel. 2. Användaren slår in sin pinkod och dörren öppnas. 3. Användaren läser av streckkoden på cykeln vid utgången och dörren öppnas. Undantagsfall: 1. Användaren har glömt sin pinkod. Personen i fråga får kontakta operatören för ny pinkod. 2. Användaren tar längre tid på sig än det förbestämda tidsintervallet för att läsa av streckkoden och gå ut. Användaren får börja om från steg 2. 3. Streckkoden är oläslig. Användaren får kontakta operatören för ny streckkod. 4. Någon försöker ta ut sin ej inlämnade men registrerade cykel. Dörren öppnas. Fall 4. Avregistrering av användare: Primär aktör: Operatören. Förutsättning: Användaren är registrerad. 1. Användaren kontaktar operatören och ber om att bli avregistrerad. 2. Operatören avregistrerar användaren. Streckkod, pinkod och information tas bort från systemet. Undantagsfall: 5
1. Användaren har cyklar kvar i garaget. Operatören upplyser om detta och ber användaren ta bort cyklarna innan avregistrering kan ske. Fall 5. Uppdatering av användarinfo: Primär aktör: Operatören. Förutsättning: Användaren vill uppdatera information, till exempel adress, namn, pinkod etc. 1. Operatören söker på personnummer i kontrollsystemet och får fram information om personen. 2. Operatören kan ändra informationen. Fall 6. Bortagning av cyklar som inte ska vara där: Primär aktör: Underhållspersonal. Förutsättning: 1. En person skriver in underhållspinkoden och dörren öppnas. 2. Med hjälp av underhållsstreckkoden öppnar personen dörren och plockar ut de cyklar som inte ska vara där. 3. Personen kontaktar operatören och talar om hur många cyklar som tagits bort samt de streckkodsnummer som eventuellt är borttagna. 4. Operatören söker med hjälp av streckkodsnumret upp cyklarna och plockar bort dem ur systemet. Krav 2. Systemet ska stödja användarfall 1. Krav 3. Systemet ska stödja användarfall 2. Krav 4. Systemet ska stödja användarfall 3. Krav 5. Systemet ska stödja användarfall 4. Krav 26. Systemet ska stödja användarfall 5. Krav 29. Systemet ska stödja användarfall 6. 4.3 Funktionella krav Krav 6. När en användare slår in sin pinkod aktiveras en av operatören bestämd tidsbegränsning. Användaren har denna tid på sig att hämta ut cyklar med streckkoder kopplade till sin pinkod. Tidsgränsen bör vara möjlig att ändra med systemet i drift. Krav 7. Pinkoder, streckkoder, namn, adress, telefonnummer samt personnummer finns lagrade i en databas. Krav 8. Databasen ska vara sparad på ett lagringsmedia som inte förlorar sin information då strömmen bryts för att minimera risken av dataförlust vid strömbortfall. Krav 9. Om mer än 5 sekunder fortlöper mellan knapptryckningar återställs pinkodsterminalen. Krav 10. Om fel kod trycks in blinkar den röda lampan 5 gånger i snabb följd och pinkodsterminalen återställs. Krav 34. Om rätt kod trycks in lyser den gröna lampan med fast sken i 5 6
sekunder. Krav 11. Det ska gå att kontrollera vem som äger en cykel. Krav 12. Operatören ska kunna se hur många cyklar det finns i garaget för tillfället. Krav 13. Det ska finnas möjlighetn till en maxgräns för hur många cyklar som får plats i garaget, maxgränsen ska gå att ändra.. Krav 14. Det ska vara möjligt för operatören att se när en cykel senast är inlämnad. Krav 15. Om en användare försöker komma in i garaget med pinkod utan att användarens cyklar finns inlämnad ska dörren förbli stängd, och den röda lampan ska lysa i 5 sekunder. Krav 16. Operatören ska kunna avregistrera cyklar. Krav 17. Operatören ska kunna registrera cyklar på användare. Krav 18. Det ska finnas ett maximalt antal registrerade cyklar på en person, antalet ska gå att ändra via kontrollsystemet. Krav 27. Systemet ska generera en pinkod. Krav 28. Operatören ska kunna ändra alla registrerade användaruppgifter. Krav 30. Operatören ska kunna söka efter cyklar med hjälp av streckkodsnumret och se vem som är ägaren till den. Krav 31. Operatören ska kunna få en lista på alla cyklar i garaget sorterade efter när de senast är inlämnade. Krav 32. Det ska finnas en funktion i kontrollsystemet som skriver ut en ny streckkod. Krav 33. Operatören ska från kontrollsystemet kunna öppna dörrar. Krav 35. Operatören ska kunna ställa in hur länge dörren ska vara öppen. Krav 36. En cykel ska komma in i garaget även om den redan är registrerad som inlämnad. Krav 37. Om garaget är fullt ska den röda lampan lysa hela tiden. Krav 38. Om cyklarnas streckod tar slut ska detta meddelas vid ny registrering av användare eller cykel. Krav 39. Om pinkoderna tar slut ska detta meddelas vid ny registrering av användare och vid begäran om ny pinkod. 4.4 Icke-funktionella krav Krav 19. Tiden från det att en pinkod kommer in i systemet till det att den kontrolleras och en öppningssignal skickats tillbaks får inte överstiga en sekund. Krav 20. Tiden mellan det att streckkod lästs in och dörren låses upp får ej överstiga 1 sekund. Krav 23. Pinkoder ska bestå av fem tecken. Krav 24. Pinkoden ska bestå av siffrorna 0-9. Krav 25. Databasen ska gå att spara från användargränssnittet. Krav 40. Alla cyklar har unika streckoder. Krav 41. Alla användare har unika pinkoder. Krav 42. Streckkoden ska ha 5 siffor. Krav 43. Alla personnummer som hanteras ska ha 12 siffror. 7
4.5 ER-Diagram Figur 3: ER-diagram Krav 22. Systemet ska fungera enligt ER-diagrammet ovan. Diagrammet visar hur olika delar av systemet förhåller sig till varandra. 8