Systeemanalyse Oefeningen Object-Ori¨entatieusers.telenet.be/Fyre/SysteemAnalyse/sa_oef_oo.pdf ·...

23
Systeemanalyse Oefeningen Object-Ori¨ entatie prof. dr. Jan Verelst Kris Ven Academiejaar 2007–2008 Revisie: 29

Transcript of Systeemanalyse Oefeningen Object-Ori¨entatieusers.telenet.be/Fyre/SysteemAnalyse/sa_oef_oo.pdf ·...

Systeemanalyse

Oefeningen Object-Orientatie

prof. dr. Jan VerelstKris Ven

Academiejaar 2007–2008

Revisie: 29

Inhoudsopgave

Inhoudsopgave i

1 Opgaven 11.1 Aankoopdienst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Quality Building Supply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Bibliotheek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4 De Lijn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.5 State Patrol Ticket Processing System . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Oplossingen 82.1 Aankoopdienst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.1.1 Activity diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2 Quality Building Supply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.2.1 Reguliere klanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2.2 Aannemers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3 Bibliotheek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.3.1 Domeinklassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.3.2 Activity diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3.3 System Sequence Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3.4 Sequence diagram (incl. controller) . . . . . . . . . . . . . . . . . . . . . . 112.3.5 Sequence diagram (incl. boundary & DA) . . . . . . . . . . . . . . . . . . 122.3.6 Design klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.3.7 Package diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.4 De Lijn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.4.1 Domeinklassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.4.2 Activity diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.4.3 System Sequence Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.4.4 Sequence diagram (incl. controller) . . . . . . . . . . . . . . . . . . . . . . 152.4.5 Sequence diagram (incl. boundary & DA) . . . . . . . . . . . . . . . . . . 162.4.6 Design klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.4.7 Package diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.5 State Patrol Ticket Processing System . . . . . . . . . . . . . . . . . . . . . . . . 182.5.1 Domeinklassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.5.2 Activity diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.5.3 Systems Sequence Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . 192.5.4 Sequence Diagram (incl. Controller) . . . . . . . . . . . . . . . . . . . . . 192.5.5 Sequence Diagram (incl. boundary & DA) . . . . . . . . . . . . . . . . . . 202.5.6 Design klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.5.7 Package diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

i

HOOFDSTUK1Opgaven

1.1 Aankoopdienst

De aankoopdienst verwerkt aankooporders van andere departementen in het bedrijf. Werkne-mers die het aankooporder indienen, worden de klanten van de aankoopdienst genoemd. Eenassistent van de aankoopdienst ontvangt het order en volgt de verdere afhandeling op, tot hetorder is besteld en ontvangen. Indien de assistent een order ontvangt onder de 1.500 EUR, magdeze onmiddellijk een bestelbon opmaken en naar de vooraf goedgekeurde leverancier sturen. Bijorders boven de 1.500 EUR, moet er eerst een offerte worden gestuurd naar de leveranciers diehet desbetreffende product leveren. Wanneer alle offertes terug aangekomen zijn, selecteert deassistent hieruit een 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 algemenepubliek. 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 kassawaarna de bediende elk item afzonderlijk zal inscannen. Hierna zal het systeem automatisch eenpapieren ticket afdrukken. De klant betaalt vervolgens het verschuldigde bedrag. Dit kan ofwelvia 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 bedragvan de aankoop aan de bediende meedelen. Aannemers krijgen per maand een krediet toege-kend. Het kredietbedrag kan verschillen van aannemer tot aannemer. Wanneer het systeem hettotaalbedrag van de aankoop heeft berekend, wordt dit bedrag vergeleken met het kredietbe-drag van de aannemer. Indien dit kredietbedrag volstaat, wordt dit krediet verminderd met dewaarde van de aankoop en wordt de verkoop gefinaliseerd. Het systeem zal vervolgens een ticketafdrukken 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 beta-ling van de aannemer wordt ontvangen, zal het kredietbedrag van de aannemer terug wordenaangevuld. Dit moet echter niet gemodelleerd worden.

Het domeinklassendiagram van deze opgave is weergegeven in Figuur 1.1.

Gevraagd:

(a) Stel het sequence diagram op voor de reguliere klanten(b) Stel het sequence diagram op voor de aannemers

1.3 Bibliotheek

Een bibliotheek wil een nieuw informatiesysteem introduceren. Binnen het informatiesysteemwordt het begrip “boek” gebruikt voor boeken met eenzelfde ISBN-nummer. Het is echtermogelijk 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 ISBN-nummer bijgehouden.

Elk boek in de bibliotheek wordt toegekend aan een (en slechts een) categorie. Voorbeelden vancategorien zijn jeugdboeken, thriller en biografie. Elke categorie heeft een naam en een alfanu-meriek ID. Elke categorie kan 0, 1 of meerdere subcategorien bevatten zodat een boomstructuurontstaat (zie Figuur 1.2).

De bibliothecaris kan bestellingen plaatsen om nieuwe boeken aan te kopen. Voor elke bestellingwordt het ordernummer, de datum van bestelling en de datum van levering bijgehouden. Erwordt momenteel niet bijgehouden op welk boek een bepaalde bestelling betrekking heeft. Ophet moment dat er een bestelling wordt geplaatst, zal de bibliothecaris de gegevens van het boekingeven in het systeem. Dit betekent dat er bij het ontvangen van een bestelling enkel moetgeregistreerd worden dat er een nieuw exemplaar van het boek werd ontvangen. Het kan dusvoorkomen 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 aanhet loket en geeft zijn persoonlijke informatie (o.a. naam, adres, telefoonnummer, geboorteda-tum) door aan de loketbediende die deze informatie ingeeft in het systeem. Het systeem zalzelf 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, wordthet abonnement afgedrukt. Op het abonnement wordt de naam van de klant, zijn adres engeboortedatum, evenals het type abonnement afgedrukt.

Ga ervan uit dat het steeds gaat om een nieuwe klant, d.w.z. de persoonlijke informatie moetsteeds 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 hetsysteem boetes kunnen uitschrijven aan bestuurders. Het systeem bevat de gegevens van alleagenten in het korps, zoals het badgenummer en hun naam. Bovendien kan men ook de gegevensvan alle personen raadplegen die over een geldig rijbewijs bezitten. Voor elke persoon beschiktmen over het nummer van het rijbewijs, evenals zijn naam en adres. Voor een boete wordttelkens bijgehouden aan welke bestuurder de boete werd uitgeschreven en door welke agent deboete werd opgesteld. Van elke boete wordt de reden (i.e. de aard van de overtreding) en hetverschuldigde bedrag bewaard. Elke boete krijgt eveneens een uniek nummer toegekend. Ditnummer wordt automatisch door het systeem toegewezen.

Het systeem moet de agent in staat stellen om de gegevens van een boete in te geven in hetsysteem. Het systeem moet daarna de boete afprinten, zodat de agent deze kan overhandigenaan de bestuurder. Op de boete moet de naam van de agent, de naam van de bestuurder, dereden 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 inhet 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 categorieen

1.5 State Patrol Ticket Processing System 5

Use Case: Ontvang nieuw boekTriggering event: Een nieuw aangekocht boek arriveert.Beschrijving: De bibliothecaris moet registeren dat een bepaalde bestel-

ling werd ontvangen, en dat er een nieuw examplaar van eenbepaald boek is toegevoegd aan het aanbod van de bibli-otheek. De gegevens van boeken die werden besteld, zijnreeds aanwezig in het systeem.

Workflow: Actor Systeem1. Ontvangst van boek, inclu-sief ontvangstbewijs met ver-melding van bestelcode.2. Aanpassen van datum vanlevering van bestelling.

2. Opzoeken van bestelling indatabase en updaten van leve-ringsdatum.

3. Registratie van eennieuw exemplaar van eenbestaand boek a.d.h.v. hetISBN-nummer van het boek.Het nieuwe gekozen exem-plaarnummer wordt eveneensingegeven.

3. Opzoeken van boekgege-vens (ISBN-nummer) in hetsysteem, en toevoegen vannieuw exemplaar.

4. Fysiek boekexemplaarvoorzien van sticker metplaatskenmerk.5. Plaatsen van exemplaar inrekken.

Figuur 1.3: Use case “Ontvang nieuw boek”

1.5 State Patrol Ticket Processing System 6

Use Case: Aankoop abonnementTriggering 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 vande klant en het abonnement moeten opgeslagen worden inhet systeem. Het type abonnement dat wordt aangekocht,is afhankelijk van de leeftijd van de klant.

Workflow: Actor Systeem1. Ingeven van de persoonlijkegegevens van de klant.

1a. Bewaren van de persoon-lijke gegevens in het systeem.1b. Aanmaak nieuw abonne-ment (incl. bepalen van typeen prijs).1c. Afdrukken van het abon-nement.

2. Bezorg abonnement aanklant.

Figuur 1.4: Use case “Aankoop abonnement”

1.5 State Patrol Ticket Processing System 7

Use Case Name: Uitschrijven boeteTriggering event: Agent beboet bestuurderBrief description: De agent geeft zijn badgenummer en het nummer van het

rijbewijs van de bestuurder in, evenals de reden van de boeteen het bedrag. Het systeem zal vervolgens een boete aanma-ken en deze afdrukken. Op de boete wordt de naam van deagent, de naam van de bestuurder, de reden voor de boeteen het bedrag afgedrukt.

Precondities:

� De bestuurder moet bestaan

� De agent moet bestaan

Flow of Events: Actor System1. De agent geeft de infor-matie van de boete in (badge-nummer, rijbewijsnummer, dereden en het bedrag van deboete).

1a. Het systeem slaat de ge-gevens van de boete op.

1b. Het systeem drukt een pa-pieren versie van de boete af.

2. De agent overhandigt debestuurder de boete.

Figuur 1.5: Use case diagram

HOOFDSTUK2Oplossingen

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