Distribuerade Informationssystem VT-04
2
Projekt Kassasystem DS är ett stort varuhus som består av ett flertal fristående butiker. Varje butik i DS säljer sina egna varor samt varor som är specifika för själva varuhuset. Nu behöver DS ett nytt kassasystem och din uppgift är att designa det nya systemet. Eftersom butikerna i varuhuset ingår i större butikskedjor innebär det att varje gång en vara säljs måste det rapporteras till en databas som innehåller information om tillgången på den specifika varan samt i vilka andra butiker (i butikskedjan) varorna finns. Om en produkt som är specifik för varuhuset säljs så rapporteras det en annan databas som innehåller information om tillgången av produkten. De olika butikerna i varuhuset ska inte ha tillgång till information om varandras databaser, men de ska ha tillgång till databasen som inehåller information om DS egna produkter. Systemet ska bland annat kunna Hantera försäljning av varor. Hantera återköp av varor. Hantera olika betalnings metoder (tex kontant, kreditkort och checkar). Hantera olika typer av rabatter. Ändra prissättning på varor (om man är butikschef). Visa rapporter över försäljning i en butik (om man är butikschef) Visa rapporter över hela varuhusets försäljning (om man är varuhuschef). Systemet bör också var tillförlitligt och försäljning ska kunna ske även om det tex skulle bli något fel på nätverket. För att känslig information inte ska hamna i fel händer bör det finnas något typ av inloggningssystem där olika användare har olika rättigheter och kan utföra olika saker i systemet. 3
4 Kassasystemet ska dessutom vara enkelt att använda eftersom det är många personer som ska använda systemet och alla dessa har olika bakgrund och kunskap om datorer. Er uppgift är att designa ett distribuerat system. Systemet ska vara uppbyggt av flera datorer (kassor) som kan finnas på olika platser men som är sammankopplade med ett nätverk. Redovisning Rapporten ska innehålla följade: En användarspecifikation över de uppgifter systemet ska kunna utföra. Funktionella krav (krav som specifierar de handlingar som systemet ska kunna utföra) för systemet och eventuellt en prioritets ordning för kraven. Icke-funktionella krav för systemet (tex användbarhet, tillförlitlighet, modifierbarhet och återanvändbarhet). Beskrivning av hur systemet ska fungera i olika situationer med några användarfall. Beskrivning av de olika komponenterna i systemet. Ritning över systemets struktur samt de fördelar och eventuella nackdelar strukturen har. Beskrinvning av kommunikationen mellan de olika komponenterna i systemet ska ske. Fördelar och nackdelar med systemet. Beskrivning av de säkerhetsåtgärder som vidtagits i ert system.
Förklaringar Användarspecifikation En användarspecifikation innehåller uppgifter om vad man vill att systemet ska göra ur användarens synvinkel. En användarspecifikationen är skriven med användarens språk och är därför inte så lämpligt underlag för att kunna designa ett system. I stället försöker man översätta användarspecifikationen till en kravspecification som är mer exakt. Krav Man brukar säga att en arkitektur är bra i förhållande till de krav som ställs på den. Ett krav är ett tillstånd eller en förmåga som systemet måste klara av. Funktionella och icke funktionella krav När man definierar krav för ett system, fokuserar man oftast på de uppgifter som systemet ska utföra. Dessa krav brukar kallas funktionella krav, det vill säga krav som specificerar de handlingar som ett system måste kunna utföra. Funktionella krav används ofta för att uttrycka ett systems uppförande genom att definiera systemets in- och utparametrar samt det förväntade resultatet. För att ett system ska kunna uppfylla den totala förväntade kvaliteten krävs dock att systemet uppfyller ett antal olika attribut som inte är beskrivna som funktionella krav. Dessa krav refereras ofta till som icke funktionella krav eller kvalitativa krav. Exempel på dessa krav är användbarhet, tillförlitlighet, prestanda, modifierbarhet och återanvändbarhet. 5
6 Användningsfall Ett användningsfall är en sekvens av händelser som ett system utför och som ger synbara resultat för en viss användare eller del av systemet. Användningsfallen är till för att man ska få en ökad förståelse i hur systemet fungerar. Ett användningsfall där en bankkund (som har rätt PIN-kod och täckning på kontot) ska ta ut pengar ur en (något förenklad) bankomat kan se ut så här: Användningsfall: Ta ut pengar Kund System 1 Kunden för in sitt bankkort i automaten 2 Läser och kontrollerar informationen på kortet 3 Frågar efter PIN-kod 4 Anger PIN-kod 5 Kommunicerar med banken för att kontrollera om PIN-kod är okej 6 Frågar efter ett belopp 7 Slår in belopp 8 Kommunicerar med banken för att kontrollera om täckning finns 9 Ber kunden ta bankkort, matar ut bankkort 10 Tar bankkort 9 Matar ut pengar 10 Tar emot pengar