Ladda ner presentationen
Presentation laddar. Vänta.
1
LEKTION 1 DOMÄNBESKRIVNING OCH KRAV PÅ INFORMATIONSSYSTEMET Biblioteket i Sanslösa har svårt att hålla reda på sina böcker och boklån. Invånarna i Sanslösa är mycket bokintresserade och lånar alltmer. Dessutom har biblioteket fått ökade anslag till bokinköp. Biblioteksledningen tror att lösningen på problemet kan vara investera i ett IT-system. Konsultfirman Lönsam-IT har fått i uppdrag att analysera verksamheten, ta fram krav på ett IT-system samt göra en design för ett sådant system. Konsultfirman har fått fram följande uppgifter genom att intervjua de anställda vid biblioteket. För varje boktitel ska biblioteket ha information om: författare, titel, förlag, ISBN-nummer och vilken genre den tillhör. Om varje bokexemplar ska man dessutom veta om det är en referensbok eller inte, inköpspris, inköpsdatum samt vilket ordningsnummer exemplaret har. Ordningsnummer används för att kunna identifiera enskilda exemplar av boken. Biblioteket ska också ha information om namn, personnummer, adress och lånekortsnummer på varje låntagare. För varje lån ska man veta lånedatum, datum då den skall vara återlämnad samt givetvis vilket bokexemplar som är utlånat och vem som har lånat det. Man ska också veta vem på biblioteket som har handlagt lånet. En låntagare ska också kunna reservera böcker. Man vill veta vilket datum en viss bok är reserverad och vem som reserverat den. Det kan finnas flera reservationer på samma bok. UPPGIFTEN 1. Gör en verksamhetsbegreppsmodell (konceptuellt schema) över de begrepp som används i domänbeskrivningen ovan. Verksamhetsbegreppsmodellen ska göras i UML:s klassdiagram. 2. Gör en informationsmodell över den information som ska hanteras av informationssystemet. Informationsmodellen ska göras i UML:s klassdiagram. 3. Gör användningsfalldiagram och användningsfallsbeskrivningar som visar hur personalen ska arbeta med systemet. Användningsfallen ska modelleras enligt UML och användningsfallbeskrivningarna ska följa Fowlers i figur 9.1 sidan 101 i ”UML Distilled” (2004) eller den metod som beskrivits vid föreläsningarna (se föreläsningsbilder). 4. Rita ett sekvensdiagram som visar hur en aktör angiven i uppgift 3 interagerar med klasserna/objekten som ni skapat i uppgift 2, samt hur dessa klasser/objekt måste interagera med varandra, enligt den metod som beskrivits vid föreläsning 4. Utgå från användningsfall och användningsfallsbeskrivningar. Sekvensdiagrammet ska modelleras i UML:s sekvensdiagram.
2
Klassdiagram (verksamhetsbegreppsmodell och infomodell)
Person namn adress personnr Handläggare Låntagare Reservation Boktitel 1 0..* 0..* 1 anställningsnr lånekortsnr reservdatum reservtid avbokad: ja/nej titel genre författare förlag isbn 1 1 0..* 1..* Lån Bokexemplar 0..* 0..* 1 lånedatum återdatum återlämnad (ja/nej) antal omlån ordningsnr inkdatum inkpris refex: ja/nej
3
Användningsfallsdiagram (några exempel)
Reservera bok Låna bok Handläggare Registrera ny låntagare Sök bok
4
Användningsfallsbeskrivning ”Låna bok”
Mål: Låna bok Aktör: Handläggare Huvudscenario: 1. Handläggaren hämtar låntagaruppgifter genom att ange lånekortsnummer. 2. Systemet visar information om låntagaren samt uppgifter om försenade böcker. 3. Handläggaren hämtar bokexemplaruppgifter genom att ange bokexemplarets ordningsnummer. 4. Systemet visar bokexemplaruppgifter inklusive dess titel, författare, om det är ett referensexemplar eller inte samt återlämningsdatum. 5. Handläggaren genomför lånet genom att ange lånekortsnummer, ordningsnummer, sitt anställningsnummer och återlämningsdatum. 6. Systemet bekräftar att lånet är registrerat. Alternativa scenarier: 4a) Om det är ett referensexemplaret, beviljas inte lånet. Handläggaren avbryter lånet. 4b) Om återlämningsdatum önskas förlängas eller förkortas kan handläggare ändra återlämningsdatum. Fortsätt sedan med punkt 5 i huvudscenariot. Hej och välkommen till lektionen om UMLs sekvensdiagram. I den här bilden har vi ett användningsfall som vi ska använda för att bygga vårt sekvensdiagram. Läs gärna igenom det innan vi fortsätter vidare. Användningsfallet finns också i Bilagor högst uppe till höger. Ni kan öppna användningsfallsbeskrivning i ett eget webbläsarens fönster när som helst under lektionen.
5
Sekvensdiagram :GUI :Kontroller :Lån :Låntagare :Bokex :Boktitel
:Handläggare hämtaLåntagare(lånekortsnr) hämtaLåntagare(lånekortsnr) hämtaLåntagare(lånekortsnr) loop [för varje lån] hämtaFörseninginfo() kontrolleraFörsening() opt [om lån försenat] hämtaBokex() hämtaBoktitel() Nu är vi färdiga med steg 1 och 2 i användningsfallets huvudscenario. Vi kan snabbt jämföra detta sekvensdiagram med samma sekvensdiagrammet på systemnivå. Vi kan se att meddelandet mellan Hanläggare och GUI i den här bilden motsvarar det första meddelandet mellan Handläggare och System i sekvensdiagrammet på systemnivå (se bild 3 ovan). Returmeddelandet mellan Kontroller och GUI i den här bilden skulle motsvara returmeddelandet ”låntagarinfo” mellan System och Handläggare. I nästa bild ska vi fortsätta med steg 3 och 4 i användningsfallets huvudscenario, dvs hämtning av bokexemplarets uppgifter. bokinfo bokexinfo förseningsinfo låntagarinfo låntagarinfo
6
hämtaBokexemplar(ordnr)
:GUI :Kontroller :Lån :Låntagare :Bokex :Boktitel :Handläggare hämtaBokexemplar(ordnr) hämtaBokexemplar(ordnr) hämtaBokexemplar(ordnr) hämtaBoktitel() bokinfo kontrolleraRefex() opt [om inte refex] När Bokexemplar-klassen har fått in alla nödvändiga uppgifter, kan den paketera dessa uppgifter och skicka dem tillbaka till Kontroller ##. Returtypen ”bokexinfo2” innehåller bokexemplarets titel, författare, information om referensexemplar och återlämningsdatum. Kontroller ska i sin tur returnera dessa uppgifter till GUI-klassen för att skriva ut för användaren ##. Notera att ”bokexinfo2” inte innehåller samma information som returtypen ”bokexinfo” i den tidigare interaktionen (se bilden 12). ”Bokexinfo” skickas tillbaka till Låntagare-klassen och bara innehåller bokexemplarets ordningsnummer, titel och författare. Med detta blir vi klara med steg 3 och 4 i användningsfallets ”Låna Bok” huvudscenario. I nästa bild ska vi fortsätta med steg 4 och 5. beräknaÅterdatum() bokexinfo2 bokexinfo2
7
:GUI :Kontroller :Låntagare :Lån :Bokex :Boktitel :Handläggare genomföraLån(ordnr, lånekortsnr, anstnr, återdatum) genomföraLån(ordnr, lånekortsnr, anstnr, återdatum) opt [om bokex inte refex] genomföraLån(ordnr, lånekortsnr, anstnr, återdatum) skapaNyttLån(ordnr, lånekortsnr, anstnr, återdatum) Lån bekräftelse När ett lån är genomfört, måste Kontroller skicka en bekräftelse till GUI-klassen för att visa denna bekräftelse till användaren ##. Det här meddelandet motsvarar det sista meddelandet i sekvensdiagrammet på systemnivå eller steg 6 i användningsfallsbeskrivningen. bekräftelse Lena! Vi måste också räkna upp antal Omlån och ändra värdet för Återlämnad till ”nej”
8
KRAV PÅ INFORMATIONSSYSTEMET
LEKTION 2 Mejeriföreningen Miljömejerier har ett hundratal medlemmar, som regelbundet levererar mjölk till föreningen. Mjölken hämtas varje dag hos medlemmarna (bondgårdarna) av föreningens egna lastbilar. Varje mjölkflaska är märkt med ägarens medlemsnummer. Vid avlastningen noteras av chauffören levererad mängd mjölk och flaskans nummer på en speciell blankett. När blanketten är ifylld signeras den av chauffören. Den ifyllda blanketten, kallad transportsedel, har sedan två funktioner: – att användas som körrapport och som underlag för beräkningen av chaufförens lön på lönekontoret, – att användas som underlag för avräkningen till medlemmarna för levererad mängd mjölk. Transportsedlarna lämnas av chaufförerna till kontoret efter sista turen varje kväll i två exemplar. Ett av exemplaren förses med chaufförens anställningsnummer och arkiveras i en pärm på lönekontoret. Den andra sätts i en pärm på bokföringsavdelningen. Löneberäkning görs en gång per månad: en vecka innan lönen skall betalas ut tas transportsedlarna fram ur pärmen och med ledning av dessa samt ett registerkort för varje chaufför beräknas lönen och lönebeskeden skrivs ut. Medlemmarna meddelar per telefon hur mycket mjölk de har levererat föregående vecka till bokföringskontoret. Medlemmarna får varje vecka via postgiro betalning för den mängd mjölk som medlemmen har levererat föregående vecka. Detta görs under tre veckor och den fjärde veckan görs en avräkning mot verkligt levererade kvantiteter mjölk. Avräkning görs med andra ord en gång per månad och den verkligt levererade mängden mjölk framgår av de på bokföringskontoret arkiverade transportsedlarna. KRAV PÅ INFORMATIONSSYSTEMET Konsultfirman Lönsam-IT har fått i uppdrag att analysera verksamheten, effektivisera verksamheten och ta fram krav på ett IT-system samt göra en design för ett sådant system. Ien första etapp handlar det om att datorisera utbetalningen till medlemmar, inklusive avräkningen. I en senare etapp ska även beräkning av chaufförernas löner skötas av det datoriserade informationssystemet.
9
LEKTION 2 (forts) UPPGIFTEN 1. Gör en verksamhetsbegreppsmodell (konceptuellt schema) över de begrepp som används i domänbeskrivningen ovan. Verksamhetsmodellen ska vara en AS-IS-modell och ska göras i UML:s klassdiagram. 2. Gör en informationsmodell över den information som ska hanteras av det planerade informationssystemet i etapp 1 (det vill säga, endast utbetalning till medlemmar inklusive avräkningssystemet, ej löneutbetalningar till chaufförer). Informationsmodellen ska vara en TO-BE-modell och ska göras i UML:s klassdiagram. 3. Gör användningsfall och användningsfallsbeskrivningar som visar hur personalen ska arbeta med informationssystemet i etapp 1. Användningsfallen ska modelleras i UML:s användningsfall och användningsfallbeskrivningarna ska följa Fowlers i figur 9.1 sidan 101 i ”UML Distilled” (2004) eller den metod som beskrivits vid föreläsningarna (se föreläsningsbilder). 4. Rita ett sekvensdiagram som visar hur en aktör angiven i uppgift 3 interagerar med klasserna/objekten som ni skapat i uppgift 2, samt hur dessa klasser/objekt måste interagera med varandra, enligt den metod som beskrivits vid föreläsning 4. Utgå från användningsfalldiagram och användningsfallsbeskrivningar. Sekvensdiagrammen ska modelleras i UML:s sekvensdiagram. 5. För in de operationer som identifierats i sekvensdiagrammen i informationsmodellen.
10
Begreppsmodell över verksamheten
Flaska 0..* Chaufför flaskNr 1 anstNr namn adress timlön Medlem 0..* Mjölkpris pris fråndatum tilldatum medlemsNr namn adress postgironr 1 1 0..* 0..* 1 1 Leverans 0..* levNr antalLiter datum utbetalt (ja/nej) 1 0..* 0..* 0..* Utbetalning Körning 0..1 datum belopp antalTim antalMil datum 1..* 1 0..* Inringd_leverans 1 1 1 Utbetaln_efter_avräkn Löneutbetaln 0..* veckoNr antalLiter 0..1 diff datum belopp 1
11
Informationsmodell Flaska Medlem Mjölkpris Leverans Utbetalning 0..*
flaskNr 1 Medlem 0..* Mjölkpris pris fråndatum tilldatum medlemsNr namn adress postgironr 1 0..* 0..* 1 Leverans 1 levNr antalLiter datum utbetalt (ja/nej) 0..* 0..* 1 Utbetalning 1..* datum belopp [Antagande: Medlemmarna ringer inte in veckoleveranser längre, utan samtliga utbetalningar, som sker en gång i veckan, baseras på leverans angiven av chauffören
12
Användningsfall (några exempel)
Registrera leverans Chaufför Betalning för veckoleverans Kontorist
13
Användningsfallsbeskrivning
Användningsfall/mål: Betalning för veckoleverans Startvillkor: datum då utbetalning ska ske (utbetalning sker vid visst datum en gång i veckan) Huvudscenario 1) Kontoristen hämtar alla medlemmar 2) Systemet visar alla medlemmar För varje medlem: 3) Kontorist hämtar info inför utbetalning 4) Systemet visar info för utbetalning, inkl belopp 5) Kontorist godkänner utbetalning 6) Systemet bekräftar och genomför utbetalning
14
Sekvensdiagram (bör även innehålla GUI och Kontroller)
:Medlem :Leverans :Mjölk :Utbetalning : Kontorist hämtaAllaMedlemmar () Medlem [ ] loop [för varje medlem] beräknaUtbetalning (Medlem) hämtaAntalLiter () hämtaEjUtbetalda () Sekvensdiagram (bör även innehålla GUI och Kontroller) loop [för varje ej utbetald leverans] hämtaPris (datum) pris beräknaMjölksumma (pris, antalLiter) totalmjölksumma + info om varje ejUtbetaldLeverans [ ] beräknaTotalmjölksumma () totalmjölksumma + medlemsinfo+ info om varje ejUtbetaldLeverans [ ] nyUtbetalning (medlem, postgironr, belopp, ejUtbetaldaLeveranser [ ]) ändraUtbetaldaLeveranser() bekräftaUtbetaldaÄndring bekräftarUtbetalning
15
En modelleringsövning
När en patient kommer till sjukhuset för operation måste han eller hon först skriva in sig. Patienten tilldelas en säng på en avdelning som tillhör en klinik på sjukhuset. Därefter ska dels tas prover på patienten, dels ska patienten träffa en läkare. Om läkaren är ledig träffar patienten läkaren först, annars tas prover först. Prover ska alltid tas och patienten ska alltid träffa en läkare. När patienten träffar läkaren går de tillsammans igenom planen över vilka planerade åtgärder som ska göras under och i samband med operationen och läkaren beställer också lämpliga resurser i samband med detta. Proverna tas av en sjuksköterska. 1. Gör en verksamhetsbegreppsmodell (konceptuellt schema) av denna beskrivning 2. Gör en verksamhetsprocessmodell i UML aktivitetsdiagram av denna beskrivning
16
Verksamhetsbegreppsmodell
Klinik Avdelning Resurser Patient 1 0..* namn antal kliniknamn avdelningsnr 1 1..* 0..* 1 1 1 Åtgärder 0..* 0..* 1 Säng namn Inskrivning sängnr Person 0..* 1..* personnr adress datum 1 Plan 1 0..* 0..* 1 Möte Operation Anställd anställningsnr 0..* 0..1 datum 1 planeradOpDatum&Tid Läkare 0..1 1 0..* 0..* 1 0..* Prov 1 1..* Sjuksköterska Provtagning 1..* provnr 0..* 1 datum deltar i 1 ansvarar för
17
Verksamhetsprocessmodell
Alternativlösning 1 Skriva in patient Tilldela säng [läkare ej ledig] [läkare ledig] Gå igenom plan Provtagning Boka resuser Går igenom plan Boka resuser Provtagning
18
Alternativlösning 2 Skriva in patient Tilldela säng Gå igenom plan
Provtagning Boka resuser
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.