Konceptuell modellering. Formalisering, automatisering och effektivisering

Relevanta dokument
Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Introduktion. Byggstenar TDBA

Objektorientering. Grunderna i OO

UML: Exempel. Ett modelleringsspråk. UML: Ansvar. UML: tre huvudanvändningar. Exempel: En klass position storlek. UML Unified Modelling Language

Objektorienterad analys och design

Databaser design och programmering. Design processen ER- modellering

UML 1(5) Introduktion till Unified Modeling Language. 1 Bakgrund och historik

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Inkapsling (encapsulation)

Konceptuell modellering

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

TDP005. Föreläsning 3 - UML. Filip Strömbäck

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Mer OOP. Variation i typ. Medlen repetition. Generiska klasser. Gränssnitt - Interface. Mer om klasser Några exempel UML

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

(Data)Modellering. nikos dimitrakas rum 2423

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Informationssystem och databasteknik, 2I-1100

Objektorientering Användning

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar

Företagsmodellering i UML

Begreppsmodellering i UML

Lite om databasdesign och modellering

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Objektorienterad analys och design

Idag. Modellering. Varför modellera? Konceptuell modell Modelleringsverktyg Objektklasser Sambandsklasser Knepiga attribut Modelleringsprocessen

729G75: Programmering och algoritmiskt tänkande. Tema 3, föreläsning 2

Nationell informationsstruktur 2015:1 Bilaga 1: Läsanvisning till modellerna

Idag. Varför modellera? Modellering. Modelleringsverktygets egenskaper. Modelleringsverktyget

Idag. Modellering. Varför modellera? Konceptuell modell Modelleringsverktyg Objektklasser Sambandsklasser Knepiga attribut Modelleringsprocessen

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

Föreläsning 15: Repetition DVGA02

UML. Tomas Czarnecki Institutionen för Informationsbehandling Åbo Akademi,FIN Åbo, Finland url:

Föreläsning 2. Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program.

Idag. Varför modellera? Modellering. Modelleringsverktygets egenskaper. Modelleringsverktyget

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Analys och design. Objekt. Klass. med hjälp av CRC. Klassdiagram

Begreppsmodellering i UML

Objektorienterad Programmering DAT043. Föreläsning 10 13/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

Databasdesign. E-R-modellen

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Översikt. Introduktion. Objektorienterad programutveckling UML UML. Analys Design. Klassdiagram Aktivitetsdiagram

UML. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Föreläsning om OO, OOA och UML

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Extentamen i 2D1359 Objektorinterad modellering programmering och analys Tisdag den 13 oktober 1998 kl

Sök låntagare. Registrera ny låntagare. Utlån

Översikt. Introduktion. Objektorienterad programutveckling UML UML. Analys Design. Klassdiagram Aktivitetsdiagram

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

Information. Computer

Bilaga A. Klassdiagram i OMT (klasser och dess relationer) Klassdiagram i UML (klasser och dess relationer) 1 st

Åtkomst Du kommer till ditt system via en webblänk som erhålles från oss. Via denna länk ges tillgång till sökning i bibliotekets katalog.

Processmodellering. Affärssystem

729G75: Programmering och algoritmiskt tänkande. Tema 3, föreläsning 2

TDP005 Projekt: objektorienterade system

Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Programutveckling med Java 7.5 p, ht 2007 (D0019N) STUDIEHANDLEDNING - ALLMÄN INFORMATION

Databaser design och programmering. Fö 2: Design processen, ER-modellering

Webbdesign med multimedia, 5p Kurskod Kurstillfälle Hösten 2007 Kursansvarig lärare Ulf Larsson, Rum 3047

Objektorienterad analys och design

Projektkaos. Chaos-rapporten. 34% av projekten avslutades i tid och enligt budget % misslyckades!

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Objektorienterad Systemutveckling 1 (7,5 hp)

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.

Relationer mellan objekt

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Frågor att lösa med SQL mot databasen kursdb_sql Sida 1 av 5

Objektorienterad programmering, allmänt

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)

Arkitektur Michael Åhs

Scriptprogrammering och avancerad Flash. Ulf Larsson Jon Wåhlstedt

Föreläsning 8 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ UML O2P 2000

RUP Rational Unified Process. 17 november 2004

TDDE10 TDDE11, 725G91/2. Objektorienterad programmering i Java, Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

RUP - Rational Unified Process

Är objektorienterad modellering ett måste? (HS-IDA-EA )

! Webprogrammering. ! Databasteori och praktik. ! Fö, le, la + projekt. ! Examination (tenta, dugga + labb, ! Studera användarna och deras problem

DELPROV 1 I DATAVETENSKAP

729G06 Föreläsning 1 Objektorienterad programmering

Databaser. Vad du ska lära dig: Ordlista

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim Agenda (halvdag)

Objektorienterad Programmering (TDDC77)

Kapitel 1 Komma igång... 3

Unified Modeling Language UML

Objektorientering Klasser

Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT / 33

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

SYSTEMUTVECKLING METODER & MODELLER. Suzana Ramadani

Objektorienterad programutveckling i ett nötskal

Kursplan. Matematiska och systemtekniska institutionen (MSI) Kurskod IVA741 Dnr MSI 99/00:62 Beslutsdatum Design av informationssystem

LADOK3 DOMÄNMODELLER. SUNET-veckan, , KTH Mikael Berglund, ITS, Umeå Universitet

Objektorienterad programmering Föreläsning 4

Objektorienterad programmering

GIS, databasteknik och kartografi. Databasmodellering

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 3 Erik Nilsson, Institutionen för Datavetenskap, LiU

HT1 2013, FÖRELÄSNING 14 (INFÖR TENTAN)

Kursplanering Objektorienterad programmering

Transkript:

Konceptuell modellering. Formalisering, automatisering och effektivisering LUSP. HT2012. Föreläsning 7. Övning 7 Erik Perjons perjons@dsv.su.se Modeller och modellering 1

Verksamheten två nivåer Människor utför (manuella) aktiviteter i en verksamhet Människor interagerar med datorer Datorer utför (automatiserade) aktiviteter i en verksamhet 3 Avbilda verksamheten med modeller Verksamhetsprocesser (en dynamisk modell) avbilda/ modellera Konceptuell modell över verksamhetens termer/begrepp (en statisk modell) Systemfunktioner: Söka kund Lägga beställning Verkligheten Grafiska modeller/diagram 4 2

Avbilda verksamhetsprocesser avbilda/ modellera Verksamhetsprocesser (en dynamisk modell) Beskriver hur människor agerar och kommunicerar i verksamheten Konceptuell modell över verksamhetens termer/begrepp (en statisk modell) Systemfunktioner: Söka kund Lägga beställning Verkligheten Grafiska modeller/diagram 5 Avbilda systemfunktioner Verksamhetsprocesser (en dynamisk modell) Konceptuell modell över verksamhetens termer/begrepp (en statisk modell) avbilda/ modellera Systemfunktioner: Söka kund Lägga beställning Beskriver vad människor kan göra med IT systemen Verkligheten Grafiska modeller/diagram 6 3

Avbilda termer/begrepp Verksamhetsprocesser (en dynamisk modell) Beskriver vilka termer/begrepp som används i verksamheten och hur de är relaterade med varandra Konceptuell modell över verksamhetens termer/begrepp (en statisk modell) avbilda/ modellera Systemfunktioner: Söka kund Lägga beställning Verkligheten Grafiska modeller/diagram 7 Modeller Vad är en modell? Struktur som representerar/avbildar vissa aspekter av någon del av verkligheten Dynamisk modell En dynamisk modell avbildar/representerar dynamiska (beteendemässiga) aspekter av verkligheten, det vill säga hur verkligheten förändras med tiden (hur de statiska relationerna förändras) Statisk modell En statisk modell avbildar/representerar statiska aspekter av verkligheten, det vill säga vilka företeelser som finns och hur är de relaterade till varandra 4

Modeller Varför modell? Studera/analysera verkligheten indirekt genom modeller Södj Stödja design av en effektiv verksamhet Underlätta kommunikation Fånga krav på informationssystem och/eller utgöra underlag för implementering (i form av en skiss eller ritning över systemet) Kontrakt mellan beställare och utförare (så att båda är överens om vad som ska utvecklas) Modellera verksamhetens termer och begrepp 5

Modellera termer/begrepp Verksamhetsprocesser (en dynamisk modell) Beskriver vilka termer/begrepp som används i verksamheten och hur de är relaterade med varandra Konceptuell modell över verksamhetens termer/begrepp (en statisk modell) avbilda/ modellera Systemfunktioner: Söka kund Lägga beställning Verkligheten Grafiska modeller/diagram 11 Hur modellera termer/begrepp? Gör en konceptuell modell över följande beskrivning: undervisar på kurser. En kurs måste ha exakt en ansvarig lärare. En lärare kan undervisa på och vara ansvarig för flera kurser. En lärare har anställningsnummer, och. erna har kurskod och kurs. Paul Johannesson ITP Gudrun Jeppesen ITO OOS / era avbilda/ modelle 12 Joakim Snygg OOP Verkligheten Grafiska modeller/diagram 6

Vi behöver en grafisk modelleringsteknik För att avbilda verkligheten/verksamhet grafiskt (det vill säga, i form av diagram) bör vi använda en existerande modelleringsteknik/modelleringsspråk. På denna kurs använder vi: UML klassdiagram för att modellera begrepp/termer/information (behandlas i denna föreläsning) BPMN för att modellera verksamhetsprocesser UML en översikt UML är en akronym för Unified Modeling Language (sv. förenat modelleringsspråk) och är en förening av tre olika modelleringstekniker. Booch, Rumbaugh och Jacobsson hade alla utvecklat var sitt modelleringsspråk. De hamnade alla på företaget Rational och förenade sina modelleringsspråk i ett enda språk och kallade det UML. UML är ett språk som består av en mängd diagram/modelleringstekniker som används för att modellera IT system från olika perspektiv. Det finns diagram för att beskriva statiska aspekter (som UML klassdiagram) och dynamiska aspekter (som UML användningsfall och UML aktivitetsdiagram) se kursen Objektorienterad analys och design (OOS) UML togs fram för att modellera IT system men används även idag för att modellera verksamheter (och de är så vi använder UML klassdiagram på denna kurs) UML förvaltas av Object Management Group (OMG) som också förvaltar BPMN. OMG har tydligt specificerat språket i en så kallad OMG specifikation (även kallad OMG standard ). 14 7

Klassdiagram symboler (notation) UML notationen för en klass är en rektangel med (normalt) tre avdelningar: klassens (använd substantiv och starta med stor bokstav) attribut (använd substantiv och starta medliten bokstav) operationer (använd verb och börja liten bokstav) i verksamhetsmodellering behöver vi inte operationer, så vi kommer inte behandla dem mer på denna kurs Klassens anställningsnr ändraadress() Operation (eller metodhuvud ) anställningsnr Attribut Detta visar på tre olika sätt att modellera en klass. Notera att om man bara visar klassen som en rektangel utan avdelningar så vet man inte om klassen har attribut och eller operationer. Klasser och attribut anställningsnr kurskod kurs Klasser i verksamhetsmodellering beskriver oftast centrala företeelser i verkligheten medan attribut beskriver egenskaper hos dessa företeelser Klasser representerar oftast grupperingar av företeelser i verkligheten 8

Klasser och objekt Gudrun Jeppesen Paul Johannesson Joakim Snygg Verkligheten gruppera/ klassificera Klass anställningsnr Attribut Grafiska modeller/diagram instansiera Objekt/ Instans Värde PaulJohannesson: anställningsnr= PaulJohannesson: 454445 = Paul Johannesson anställningsnr: PaulJohannesson: = Bromma 454445 = Gudrun Jeppesen = anställningsnr: Johanneshov 454445 = Joakim Snygg = Solna Klasser grupperar/klassificerar företeelser i verkligheten Klasserna fungerar också som mallar för att skapa objekt/instanser. Detta kallas att instansiera Objekten har samma attribut som klassen men attributen har fått värden i objekten Objekten representerar företeelser i verkligheten Associationer anställningsnr undervisar på kurskod kurs anställningsnr undervisar på är ansvarig för kurskod kurs Associationer beskriver roller som de två relaterade klasserna spelar mot varandra. För att underlätta tolkning av associationer bör man ge associationerna. Två klasser kan relateras med flera olika associationer 18 9

Ge associationer Använda verb med fylld pil undervisar på har undervisande Associationer har riktningar undervisar på Associationer kan ha en eller två riktningar. Ovanstående association kan enligt UML specifikationen tolkas som att den har två riktningar eller att man inte visar riktningen eller riktningarna. På den här kursen ska vi tolka associationen ovan som att den har två riktningar, det vill säga associationen kan gå från till och från till. Notera att et på associationen ( undervisar vid ) inte säger något om riktningen/riktningarna. Man kan i UML med hjälp av navigeringspilar på associationen (se nedan) visa riktningen/riktningarna, men det kommer vi inte använda oss av på denna kurs 10

Multiplicitet anställningsnr 1 ansvarar för kurskod kurs Multiplicitetens maxvärde för denna association i riktningen från till Multiplicitetens maxvärde för denna association i riktningen från till Multiplicitet specificerar, eller vanligen begränsar, antal objekt som en klass kan ha i relation till ett objekt i den associerade klassen. I tekniken UML klassdiagram anges denna begränsning med ett min (minsta antal) och maxvärde (mesta antal). Vi kommer bara använda maxvärdet på denna kurs. Maxvärdet är antingen 1 eller (läses: många ), medan minvärdet, som vi inte kommer att använda på kursen, är antingen 0 eller 1. Multipliciteten måste anges i associationens båda riktningar Multiplicitet för båda riktningarna Multiplicitet i riktningen från till ansvarar för Multiplicitet i riktningen från till begränsar hur många kurser som en lärare kan vara ansvarig för. Det går att välja på max en eller max många. Tips för att bestämma multiplicitet: Fråga på följande sätt: Kan en lärare vara ansvarig för max en eller max många delkurser? Om svarat är max en så används siffran 1 och svaret är max många, så används. Multiplicitet i riktningen från till ansvarar för 1 Multiplicitet i riktningen från till begränsar hur många lärare kan vara ansvariga för en kurs. Det går att välja på max en eller max många. Tips för att bestämma multiplicitet: Fråga på följande sätt: Kan en kurs ha max en eller max många ansvariga? Om svarat är max en så används siffran 1 och svaret är max många, så används. 11

En kort övning Gör en konceptuell modell över följande beskrivning: undervisar på kurser. En kurs måste ha exakt en ansvarig lärare. En lärare kan undervisa på och vara ansvarig för flera kurser. En lärare har anställningsnummer, och. erna har kurskod och kurs. Vad saknas i modellen nedan? Gör så att modellen överensstämmer med beskrivningen! undervisar på anställningsnr 1 är ansvarig för kurskod kurs Lösningen Gör en konceptuell modell över följande beskrivning: undervisar på kurser. En kurs måste ha exakt en ansvarig lärare. En lärare kan undervisa på och vara ansvarig för flera kurser. En lärare har anställningsnummer, och. erna har kurskod och kurs. Vad saknas i modellen nedan? Gör så att modellen överensstämmer med beskrivningen! undervisar på anställningsnr 1 är ansvarig för kurskod kurs 12

Låt oss fortsätta modellera Gör en konceptuell modell över följande beskrivning: Studenter registrerar sig på kurser. Studenterna har,, kön och e post. erna har kurskod k och kurs. En kurs kan ha flera studenter registrerade och en student kan registrera sig på flera kurser. Studenterna registrerar sig på kurserna vid visst registreringsdatum. Nisse Hall ITP Anna Svan Zlatan ITO OOS OOP 25 Verkligheten Grafiska modeller/diagram Avbilda relationer mellan grupperingar Anna Svan Zlatan Nisse Hall ITP ITO OOS OOP Student kön e post registrerar sig på multiplicitet kurskod kurs 26 Multiplicitet uttrycker oftast en form av regel som finns i verksamheten. Multiplicitet specificerar, eller vanligen begränsar, antal objekt som en klass kan ha i relation till ett objekt i den associerade klassen. 13

Avbilda relationer mellan grupperingar Egentligen vill vi hålla reda på exakt vilka studenter som registrerat sig på vilka kurser. Till exempel vill vi hålla reda på att Nisse Hall registrerat sig på kursen ITP och ITO. Men detta modelleras oftast inte utan man modellerar endast associationen Länk har samma relation till association som objekt/instans har till klass länk (som vi dock inte modellerar) Anna Svan Zlatan Nisse Hall ITP ITO OOS OOP Student kön e post delkurskod delkurs Problem: Hur hanteras registreringsdatum? Del av verksamhet att avbilda/representera: Studenterna registrerar sig på kurserna vid visst registreringsdatum. kön e post Student kurskod kurs Hur ska vi hantera registeringsdatum? Det kan inte representeras som ett attribut i klassen Student eller klassen Delkurs. Varför inte? En lösning skulle kunna vara att skapa ett attribut till associationen, men det går inte i flera modelleringstekniker. En association kan inte ha attribut! 14

Lösning: Skapa en händelseklass Del av verksamhet att avbilda/representera: Studenterna registrerar sig på kurserna vid visst registreringsdatum. kön e post Student 1 genomför Registrering registreringsdatum avser 1 kurskod kurs Lösningen är att göra om associationen till en klass och som i figuren får et Registrering. Därmed kan man ge klassen egenskapen registreringsdatum. Klassen Registrering är ett exempel på en klass som representerar/avbildar händelser eller aktiviteter i verksamheten en så kallad händelseklass. Händelseklasser Händelseklasser representerar/avbildar händelser eller aktiviteter i verksamheten. Att tidigt identifiera sådana händelseklasser i en konceptuell modell är viktigt för att underlätta själva modelleringen. Händelseklasser kännetecknas av att de ofta har datum som attribut i klassen. Exempel på händelseklasser är Beställning, Registrering, Lån, Leverans. Registrering registreringsdatum g Lån lånedatum Leverans leveransdatum 15

Varför göra konceptuell modell av verksamhetens termer/begrepp? Klargöra de termer/begrepp som används i verksamheten och hur de är relaterade till varandra (nulägesbeskrivning) Klargöra olika avdelningars användning av termer/begrepp (nulägesbeskrivning). Det är nämligen vanligt att olika avdelningar kan använda olika termer/begrepp och detta kan skapa förvirring i organisationen. Klargöra vilka termer/begrepp som verksamheten bör använda i framtiden (så att alla talar samma språk ) (framtidsbeskrivning) Klargöra vilka termer/begrepp i verksamheten som ska ligga som grund för de ITsystem som ska byggas En övning Gör en konceptuell modell i UML klassdiagram baserad på följande beskrivning: En kurs kan ges vid flera kurstillfällen. Varje sådant kurstillfälle har ett start och slutdatum. Ett kurstillfälle får bara ha en ansvarig lärare, men flera andra lärare kan delta vid kurstillfället. har ett, och anställningsnummer. Studenter registrerar sig på kurser, eller egentligen till kurstillfällen för de olika kurserna. Studenter kan registrera sig på flera kurstillfällen. Ett kurstillfälle kan ha flera studenter registrerade. Studenter har,, kön och e post, medan kurser ska ha kurskod och kurs En student registrerar sig till ett kurstillfälle vid ett visst registreringsdatum. 32 16

anställningsnr 1 ansvarar för deltar vid Lösningen kurs kurskod 1 ges vid tillfälle avser startdatum slutdatum 1 genomför Student kön e post Registrering registreringsdatum 1 33 Vi har här antagit följande som inte finns i beskrivningen: får vara ansvariga vid flera kurstillfällen; tillfället kan ha flera lärare; Term och begrepp 34 17

Relationen begrepp och term Begrepp Term Dator 35 Begrepp Ett begrepp är en tankeenhet, en mental föreställning av en eller flera företeelser i verkligheten Begrepp Dator Term 36 [Hedin et al, 2000] 18

Term En term är en mer eller mindre godtycklig symbol för ett begrepp En term kan bestå av artikulerade ljud, ett ord i form av bokstäver, en ordgrupp, eller en grafisk symbol Term och ord kan ses som synonymer Begrepp Term Dator 37 [Hedin et al, 2000] Relationen begrepp och term För att använda ett begrepp måste man ha en term för det (eller möjligen peka på något i verkligheten som representerar begreppet) Sambandet mellan begrepp och term bör vara så entydigt som möjligt, annars uppstår tolkningsproblem, som: Synonymi Polysemi Dator Begrepp Term 38 [Hedin et al, 2000] 19

Relationen begrepp och term Begrepp Termer Synonym A x y z Olika termer hänvisar till samma begrepp ( UML och Unified Modeling Language hänvisar till samma sak) Polysem A B x Samma term hänvisar till olika begrepp. Det beror ofta på att det stipuleras nya betydelser för gamla termer. ( demokrati (demokrati, tjänstebaserad utveckling ) 39 [Hedin et al, 2000] Definiera termer För att tydliggöra betydelsen av en term bör man definiera den. Därmed begränsar man antalet möjliga tolkningar av dess betydelse. Ett exempel på definition i form av ett textuellt uttryck är: En student vid DSV är en person som registrerat sig på en kurs vid DSV. Ett annat sätt att definiera en term är att göra en konceptuell modell där termen ingår. Notera att multipliciteten spelar en stor roll för att definiera termerna. Student Registrering 1 1 DSV kurs 40 20

En till övning 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 allt mer. Dessutom har biblioteket fått ökade anslag till bokinköp. De tror att lösningen på problemet kan vara ett IT system. Du har som verksamhets och IT utvecklare fått i uppdrag att effektivisera arbetet vid en biblioteket. Som ett första steg skall du göra en konceptuell modell i UML klassdiagram över centrala begrepp/termer. Vid intervjuer med personal och ledning vid biblioteket framkommer följande: För varje boktitel vill man veta: författare, titel, förlag, ISBN nummer och vilken genre den tillhör. Om varje bokexemplar vill man dessutom veta om det är en referensbok eller inte, inköpspris, inköpsdatum samt vilket ordningsnummer exemplaret har. Detta för att kunna identifiera enskilda exemplar av boken. Biblioteket vill veta, personnummer, och lånekortsnummer på varje låntagare. För varje lån vill 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 vill också veta vem på biblioteket som har handlagt lånet En låntagare skall 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 för samma bok. 41 Lösningen Boktitel titel författare Förlag ISBN nummer genre 1 1 Bokexemplar referensbok (j/n) ordningsnr inköpsdatum inköpspris 1 Lån lånedatum återlämningsdatum gäller Reservation reservationsdatum Handläggare anställningsnr personnr gör 1 1 Låntagare personnr 1 lånekortsnr 21

Modellering av informationssystemet Från verkligheten till IS/IT Del av ve erksameten he av vbildas Verksamhetsprocesser (en dynamisk modell) Informationsmodell över verksamhetens termer/begrepp (en statisk modell) Systemfunktioner: Söka kund Lägga beställning Ligger till grund för Informationsmodell över informationssystem (IS) oberoende av teknik som ska användas för att implementera systemet (en statisk modell) Verkligheten Grafiska modeller/diagram 44 22

Från verkligheten till IT/IS Del av ve erksameten he av vbildas Verksamhetsprocesser (en dynamisk modell) Informationsmodell över verksamhetens termer/begrepp (en statisk modell) Systemfunktioner: Söka kund Lägga beställning Ligger till grund för Informationsmodell över informationssystem oberoende av teknik Verkligheten Infomodell anpassad till Java Grafiska modeller/diagram Infomodell anpassad till relationsdatabas (databasschema) 45 Varför göra informationsmodell av informationssystemet? Klargöra de termer/begrepp som informationssystemet ska hantera Klargöra den informationsstruktur sominformationssystemet skaha. Därmed även klargöra den struktur som ska ligga till grund för de delar som informationssystem ska bestå av, till exempel: en presentationsdel (baserat på tekniken JSP) en applikationsdel (baserat på tekniken Java) en databasdel (baserat på relationsdatabasteknik) Klargöra den informationsstruktur som ska ligga till grund för att automatiskt generera kod till informationssystemets delar med hjälp av kodgenereringsverktyg av olika slag. En och samma informationsmodell kan med andra ord automatiskt transformeras till olika exekverbara delar av systemet med hjälp av sådana verktyg. 23