Systeemanalyse Oefeningen Object-Oriëntatie prof. dr. Jan Verelst Kris Ven Academiejaar 2007 2008 Revisie: 29
Inhoudsopgave Inhoudsopgave i 1 Opgaven 1 1.1 Aankoopdienst..................................... 1 1.2 Quality Building Supply................................ 1 1.3 Bibliotheek....................................... 2 1.4 De Lijn......................................... 2 1.5 State Patrol Ticket Processing System........................ 3 2 Oplossingen 8 2.1 Aankoopdienst..................................... 8 2.1.1 Activity diagram................................ 8 2.2 Quality Building Supply................................ 9 2.2.1 Reguliere klanten................................ 9 2.2.2 Aannemers................................... 9 2.3 Bibliotheek....................................... 9 2.3.1 Domeinklassen................................. 9 2.3.2 Activity diagram................................ 10 2.3.3 System Sequence Diagram........................... 10 2.3.4 Sequence diagram (incl. controller)...................... 11 2.3.5 Sequence diagram (incl. boundary & DA).................. 12 2.3.6 Design klassen................................. 13 2.3.7 Package diagram................................ 13 2.4 De Lijn......................................... 14 2.4.1 Domeinklassen................................. 14 2.4.2 Activity diagram................................ 14 2.4.3 System Sequence Diagram........................... 15 2.4.4 Sequence diagram (incl. controller)...................... 15 2.4.5 Sequence diagram (incl. boundary & DA).................. 16 2.4.6 Design klassen................................. 17 2.4.7 Package diagram................................ 17 2.5 State Patrol Ticket Processing System........................ 18 2.5.1 Domeinklassen................................. 18 2.5.2 Activity diagram................................ 18 2.5.3 Systems Sequence Diagram.......................... 19 2.5.4 Sequence Diagram (incl. Controller)..................... 19 2.5.5 Sequence Diagram (incl. boundary & DA).................. 20 2.5.6 Design klassen................................. 21 2.5.7 Package diagram................................ 21 i
HOOFDSTUK1 Opgaven 1.1 Aankoopdienst De aankoopdienst verwerkt aankooporders van andere departementen in het bedrijf. Werknemers die het aankooporder indienen, worden de klanten van de aankoopdienst genoemd. Een assistent van de aankoopdienst ontvangt het order en volgt de verdere afhandeling op, tot het order is besteld en ontvangen. Indien de assistent een order ontvangt onder de 1.500 EUR, mag deze onmiddellijk een bestelbon opmaken en naar de vooraf goedgekeurde leverancier sturen. Bij orders boven de 1.500 EUR, moet er eerst een offerte worden gestuurd naar de leveranciers die het desbetreffende product leveren. Wanneer alle offertes terug aangekomen zijn, selecteert de assistent hieruit één leverancier, maakt de bestelbon op, en verstuurt deze naar de leverancier. Gevraagd: (a) Ontwikkel een activity diagram volgens de bovenstaande vereisten. 1.2 Quality Building Supply Quality Building Supply kent twee verschillende types klanten: aannemers en het algemene publiek. De verkoop aan beide types wordt op een licht verschillende wijze geadministreerd. Bij een verkoop aan een reguliere klant, neemt de klant de aangekochte artikels mee naar de kassa waarna de bediende elk item afzonderlijk zal inscannen. Hierna zal het systeem automatisch een papieren ticket afdrukken. De klant betaalt vervolgens het verschuldigde bedrag. Dit kan ofwel via cash, cheque of kredietkaart. Wanneer een aannemer materiaal aankoopt, neemt hij of zij deze eveneens mee naar de kassa. De bediende scant de items in die werden aangekocht. Het systeem zal hierna het totaal bedrag van de aankoop aan de bediende meedelen. Aannemers krijgen per maand een krediet toegekend. Het kredietbedrag kan verschillen van aannemer tot aannemer. Wanneer het systeem het totaalbedrag van de aankoop heeft berekend, wordt dit bedrag vergeleken met het kredietbedrag van de aannemer. Indien dit kredietbedrag volstaat, wordt dit krediet verminderd met de waarde van de aankoop en wordt de verkoop gefinaliseerd. Het systeem zal vervolgens een ticket afdrukken voor de huidige aankoop als bewijs voor de aannemer.
1.4 De Lijn 2 Eens per maand zal het systeem een factuur verzenden naar de aannemer. Wanneer de betaling van de aannemer wordt ontvangen, zal het kredietbedrag van de aannemer terug worden aangevuld. Dit moet echter niet gemodelleerd worden. Het domeinklassendiagram van deze opgave is weergegeven in Figuur 1.1. Gevraagd: (a) (b) Stel het sequence diagram op voor de reguliere klanten Stel het sequence diagram op voor de aannemers 1.3 Bibliotheek Een bibliotheek wil een nieuw informatiesysteem introduceren. Binnen het informatiesysteem wordt het begrip boek gebruikt voor boeken met eenzelfde ISBN-nummer. Het is echter mogelijk dat de bibliotheek over meerdere fysieke exemplaren van een bepaald boek beschikt. Elk exemplaar krijgt een uniek plaatskenmerk toegekend. Per boek wordt de titel en het ISBNnummer bijgehouden. Elk boek in de bibliotheek wordt toegekend aan één (en slechts één) categorie. Voorbeelden van categoriën zijn jeugdboeken, thriller en biografie. Elke categorie heeft een naam en een alfanumeriek ID. Elke categorie kan 0, 1 of meerdere subcategoriën bevatten zodat een boomstructuur ontstaat (zie Figuur 1.2). De bibliothecaris kan bestellingen plaatsen om nieuwe boeken aan te kopen. Voor elke bestelling wordt het ordernummer, de datum van bestelling en de datum van levering bijgehouden. Er wordt momenteel niet bijgehouden op welk boek een bepaalde bestelling betrekking heeft. Op het moment dat er een bestelling wordt geplaatst, zal de bibliothecaris de gegevens van het boek ingeven in het systeem. Dit betekent dat er bij het ontvangen van een bestelling enkel moet geregistreerd worden dat er een nieuw exemplaar van het boek werd ontvangen. Het kan dus voorkomen dat er gegevens van boeken in het systeem voorkomen, waarvan de bibliotheek (nog) geen exemplaren bezit. Gevraagd: (a) Bepaal de domeinklassen voor bovenstaande probleemstelling. (b) Stel het activity diagram op voor de use case in Figuur 1.4. (c) Stel het System Sequence Diagram op voor de betrokken use case. (d) Stel een sequence diagram op met hierin een use case controller en de domeinklassen. (e) Stel een sequence diagram op in een 3-lagen architectuur (i.e. voeg de nodige boundary en data access klassen toe aan het voorgaande sequence diagram). (f) Stel het klassediagram met de design klassen op. (g) Stel het package diagram op, gebaseerd op het voorgaande diagram. 1.4 De Lijn Een informatiesysteem van De Lijn schrijft bus- en tramabonnementen uit. De klant komt aan het loket en geeft zijn persoonlijke informatie (o.a. naam, adres, telefoonnummer, geboortedatum) door aan de loketbediende die deze informatie ingeeft in het systeem. Het systeem zal zelf bepalen op basis van de geboortedatum welk type abonnement gepast is (jongeren,
1.5 State Patrol Ticket Processing System 3 normaal of 60+) en wat de bijbehorende prijs is. Wanneer de betaling is geregistreerd, wordt het abonnement afgedrukt. Op het abonnement wordt de naam van de klant, zijn adres en geboortedatum, evenals het type abonnement afgedrukt. Ga ervan uit dat het steeds gaat om een nieuwe klant, d.w.z. de persoonlijke informatie moet steeds worden ingegeven door de bediende. Gevraagd: (a) Bepaal de domeinklassen voor bovenstaande probleemstelling. (b) Stel het activity diagram op voor de use case in Figuur 1.4. (c) Stel het System Sequence Diagram op voor de betrokken use case. (d) Stel een sequence diagram op met hierin een use case controller en de domeinklassen. (e) Stel een sequence diagram op in een 3-lagen architectuur (i.e. voeg de nodige boundary en data access klassen toe aan het voorgaande sequence diagram). (f) Stel het klassediagram met de design klassen op. (g) Stel het package diagram op, gebaseerd op het voorgaande diagram. 1.5 State Patrol Ticket Processing System Het doel van het State Patrol ticket processing system bestaat eruit dat agenten via het systeem boetes kunnen uitschrijven aan bestuurders. Het systeem bevat de gegevens van alle agenten in het korps, zoals het badgenummer en hun naam. Bovendien kan men ook de gegevens van alle personen raadplegen die over een geldig rijbewijs bezitten. Voor elke persoon beschikt men over het nummer van het rijbewijs, evenals zijn naam en adres. Voor een boete wordt telkens bijgehouden aan welke bestuurder de boete werd uitgeschreven en door welke agent de boete werd opgesteld. Van elke boete wordt de reden (i.e. de aard van de overtreding) en het verschuldigde bedrag bewaard. Elke boete krijgt eveneens een uniek nummer toegekend. Dit nummer wordt automatisch door het systeem toegewezen. Het systeem moet de agent in staat stellen om de gegevens van een boete in te geven in het systeem. Het systeem moet daarna de boete afprinten, zodat de agent deze kan overhandigen aan de bestuurder. Op de boete moet de naam van de agent, de naam van de bestuurder, de reden voor de boete en het bedrag worden afgedrukt. Gevraagd: (a) Bepaal de domeinklassen voor bovenstaande probleemstelling. (b) Stel een activity diagram op voor de use case plannen procesdatum in Figuur 1.5. (c) Stel het System Sequence Diagram op voor de betrokken use case. (d) Stel een sequence diagram op met hierin een use case controller en de domeinklassen. (e) Stel een sequence diagram op in een 3-lagen architectuur (i.e. voeg de nodige boundary en data access klassen toe aan het voorgaande sequence diagram). (f) Stel het klassediagram met de design klassen op. (g) Stel het package diagram op, gebaseerd op het voorgaande diagram. U mag ervan uitgaan dat de gegevens van alle agenten en bestuurders is reeds aanwezig is in het systeem.
1.5 State Patrol Ticket Processing System 4 Figuur 1.1: Domeinklassediagram ˆ Fictie Jeugdboeken Nederlandstalig * Thriller * Horror Engelstalig * Thriller * Horror ˆ Biografie Figuur 1.2: Voorbeeld boomstructuur voor categorieën
1.5 State Patrol Ticket Processing System 5 Use Case: Triggering event: Beschrijving: Ontvang nieuw boek Een nieuw aangekocht boek arriveert. De bibliothecaris moet registeren dat een bepaalde bestelling werd ontvangen, en dat er een nieuw examplaar van een bepaald boek is toegevoegd aan het aanbod van de bibliotheek. De gegevens van boeken die werden besteld, zijn reeds aanwezig in het systeem. Workflow: Actor Systeem 1. Ontvangst van boek, inclusief ontvangstbewijs met vermelding van bestelcode. 2. Aanpassen van datum van levering van bestelling. 3. Registratie van een nieuw exemplaar van een bestaand boek a.d.h.v. het ISBN-nummer van het boek. Het nieuwe gekozen exemplaarnummer wordt eveneens ingegeven. 4. Fysiek boekexemplaar voorzien van sticker met plaatskenmerk. 5. Plaatsen van exemplaar in rekken. Figuur 1.3: Use case Ontvang nieuw boek 2. Opzoeken van bestelling in database en updaten van leveringsdatum. 3. Opzoeken van boekgegevens (ISBN-nummer) in het systeem, en toevoegen van nieuw exemplaar.
1.5 State Patrol Ticket Processing System 6 Use Case: Aankoop abonnement Triggering event: Een klant koopt aan het loket een nieuw abonnement. Beschrijving: Een klant arriveert aan een loket van De Lijn en koopt bij een bediende een nieuw abonnement aan. De gegevens van de klant en het abonnement moeten opgeslagen worden in het systeem. Het type abonnement dat wordt aangekocht, is afhankelijk van de leeftijd van de klant. Workflow: Actor Systeem 1. Ingeven van de persoonlijke gegevens van de klant. 2. Bezorg abonnement aan klant. Figuur 1.4: Use case Aankoop abonnement 1a. Bewaren van de persoonlijke gegevens in het systeem. 1b. Aanmaak nieuw abonnement (incl. bepalen van type en prijs). 1c. Afdrukken van het abonnement.
1.5 State Patrol Ticket Processing System 7 Use Case Name: Triggering event: Brief description: Precondities: Uitschrijven boete Agent beboet bestuurder De agent geeft zijn badgenummer en het nummer van het rijbewijs van de bestuurder in, evenals de reden van de boete en het bedrag. Het systeem zal vervolgens een boete aanmaken en deze afdrukken. Op de boete wordt de naam van de agent, de naam van de bestuurder, de reden voor de boete en het bedrag afgedrukt. ˆ De bestuurder moet bestaan ˆ De agent moet bestaan Flow of Events: Actor System 1. De agent geeft de informatie van de boete in (badgenummer, rijbewijsnummer, de reden en het bedrag van de boete). 2. De agent overhandigt de bestuurder de boete. Figuur 1.5: Use case diagram 1a. Het systeem slaat de gegevens van de boete op. 1b. Het systeem drukt een papieren versie van de boete af.
HOOFDSTUK2 Oplossingen 2.1 Aankoopdienst 2.1.1 Activity diagram
2.3 Bibliotheek 9 2.2 Quality Building Supply 2.2.1 Reguliere klanten 2.2.2 Aannemers 2.3 Bibliotheek 2.3.1 Domeinklassen
2.3 Bibliotheek 10 2.3.2 Activity diagram 2.3.3 System Sequence Diagram
2.3 Bibliotheek 11 2.3.4 Sequence diagram (incl. controller)
2.3 Bibliotheek 12 2.3.5 Sequence diagram (incl. boundary & DA)
2.3 Bibliotheek 13 2.3.6 Design klassen 2.3.7 Package diagram
2.4 De Lijn 14 2.4 De Lijn 2.4.1 Domeinklassen 2.4.2 Activity diagram
2.4 De Lijn 15 2.4.3 System Sequence Diagram 2.4.4 Sequence diagram (incl. controller)
2.4 De Lijn 16 2.4.5 Sequence diagram (incl. boundary & DA)
2.4 De Lijn 17 2.4.6 Design klassen 2.4.7 Package diagram
2.5 State Patrol Ticket Processing System 18 2.5 State Patrol Ticket Processing System 2.5.1 Domeinklassen 2.5.2 Activity diagram
2.5 State Patrol Ticket Processing System 19 2.5.3 Systems Sequence Diagram 2.5.4 Sequence Diagram (incl. Controller)
2.5 State Patrol Ticket Processing System 20 2.5.5 Sequence Diagram (incl. boundary & DA)
2.5 State Patrol Ticket Processing System 21 2.5.6 Design klassen 2.5.7 Package diagram