Samenvatting Informatica 2022-2023 PDF

Summary

Deze samenvatting van de Informatica cursus 2022-2023 omvat hoofdstukken over informatica, algoritmes, en procesmodellen met specifieke definities en voorbeelden.

Full Transcript

SAMENVATTING INFORMATICA 2022-2023 HOOFDSTUK 1: INLEIDING............................................................................................................. 5 1. HET BELANG VAN INFORMATIETECHNOLOGIE EN INFORMATIESYSTEMEN................................... 5 2. RETURN ON IT VERSUS IT...

SAMENVATTING INFORMATICA 2022-2023 HOOFDSTUK 1: INLEIDING............................................................................................................. 5 1. HET BELANG VAN INFORMATIETECHNOLOGIE EN INFORMATIESYSTEMEN................................... 5 2. RETURN ON IT VERSUS IT INVESTMENT PARADOX......................................................................... 5 3. HET BELANG VAN COÖRDINATIE..................................................................................................... 5 4. BUSINESS/IT ALIGNMENT................................................................................................................ 5 HOOFDSTUK 2: BASISBEGRIPPEN.................................................................................................. 7 1. BEGRIPPEN: INFORMATIESYSTEMEN.............................................................................................. 7 1.1 DE COMPONENTEN VAN INFORMATIETECHNOLOGIE.............................................................. 7 1.2 HET VERSCHIL TUSSEN INFORMATIETECHNOLOGIE EN INFORMATIESYSTEMEN..................... 8 1.3 HET DISRUPTIEVE KARAKTER VAN INFORMATIETECHNOLOGIE............................................... 8 2. BEGRIPPEN: INFORMATICA............................................................................................................. 9 HOOFDSTUK 3: ALGORITMES.......................................................................................................11 3.1 DEFINITIE................................................................................................................................. 11 3.2 ALGORITMES IN BEDRIJFSKUNDE............................................................................................ 11 3.3 HET VERSCHIL TUSSEN EEN ALGORITME, PROGRAMMA EN PROCES..................................... 11 3.4 ALGORITME REPRESENTATIES................................................................................................. 12 HOOFDSTUK 4: PROCESMODELLEN..............................................................................................23 4.1 DEFINITIE VAN EEN ‘PROCES’...................................................................................................... 23 4.2 DEFINITIE VAN EEN ‘MODEL’....................................................................................................... 23 4.2.1 BUSINESS PROCESS MODEL AND NOTATION (BPMN)......................................................... 25 4.2.2 PROCESPERCPECTIEF IN MANAGEMENT.............................................................................. 43 4.2.3 PROCESS MINING................................................................................................................. 44 HOOFDSTUK 5: PROJECT MANAGEMENT......................................................................................45 5.1 WAT?........................................................................................................................................... 45 5.2 HOE?............................................................................................................................................ 45 HOOFDSTUK 6: KLASSEN EN DATABASES......................................................................................47 DEEL 1: KLASSEN..........................................................................................................................47 6.1 INLEIDING.................................................................................................................................... 47 6.2 DATA MODELING......................................................................................................................... 47 6.2.1 PRIMITIEVEN......................................................................................................................... 47 6.2.2 MULTIPLICITEIT..................................................................................................................... 48 6.2.3 ATTRIBUUT/KARAKTERISTIEK............................................................................................... 49 6.2.4 VERPLICHTE EN OPTIONELE ATTRIBUTEN............................................................................ 50 6.2.5 MEERVOUDIGE ASSOCIATIES............................................................................................... 51 1 DEEL 2: DATABASES.....................................................................................................................53 6.1 INLEIDING.................................................................................................................................... 53 6.2 TRANSFORMATIE VAN KLASSE NAAR TABEL............................................................................... 53 6.3 ASSOCIATIES/RELATIES MAPPEN MET MULTIPLICITEIT 1........................................................... 55 6.4 ASSOCIATIES MAPPEN................................................................................................................. 56 6.5 INSTANTIES (INSTANCES)............................................................................................................. 58 HOOFDSTUK 7: MONTE CARLO SIMULATIE...................................................................................61 7.1 GESCHIEDENIS VAN MONTE CARLO............................................................................................ 61 7.2 SCHEMATISCHE VOORSTELLING.................................................................................................. 62 7.3 STAPPENPLAN.............................................................................................................................. 63 7.4 ASSUMPTIES................................................................................................................................ 64 7.5 PREREQUISITE: RNG.................................................................................................................... 64 7.6 KANSVERDELINGEN/DISTRIBUTIES.............................................................................................. 64 7.6.1 INLEIDING............................................................................................................................. 64 7.6.2 DISTRIBUTIE 1: UNIFORME VERDELING................................................................................ 65 7.6.3 DISTRIBUTIE 2 : DRIEHOEKSVERDELING............................................................................... 66 7.6.4 DISTRIBUTIE 3: BERNOUILLI VERDELING.............................................................................. 66 7.6.5 DISTRIBUTIE 4 : BINOMIALE VERDELING.............................................................................. 66 7.6.6 DISTRIBUTIE 5: NORMALE VERDELING................................................................................. 67 7.7 VERDELING KIEZEN...................................................................................................................... 67 7.8 STEEKPROEFGROOTTE KIEZEN.................................................................................................... 67 HOOFDSTUK 8: INFORMATICA IN EEN BEDRIJFSCONTEXT..............................................................69 8.1 HOW TECH ADVANCES DRIVE BUSINESS OPPORTUNITIES THROUGH DATA.............................. 69 8.1.1 ALGEMEEN KADER................................................................................................................ 69 8.1.2 OPERATIONELE EXCELLENTIE............................................................................................... 69 8.1.3 NIEUWE PRODUCTEN, DIENSTEN EN BUSINESS MODELS.................................................... 71 8.1.4 VERBETERDE BESLUITVORMING.......................................................................................... 74 8.1.5 INTENSITEIT VAN LEVERANCIERS EN KLANTEN.................................................................... 75 8.1.6 CONCLUSIE........................................................................................................................... 78 8.2 INFORMATICS IN A BUSINESS CONTEXT...................................................................................... 79 8.2.1 INLEIDING............................................................................................................................. 79 8.2.2 ENKELE KERNBEGRIPPEN...................................................................................................... 79 8.2.3 DE VERANDERENDE ROL VAN IS/IT...................................................................................... 80 8.2.3 BUSINESS CAPABILITIES........................................................................................................ 82 8.2.4 BEDRIJFSPROCESSEN............................................................................................................ 83 8.2.5 BEDRIJFSCONCEPTEN, INFORMATIE EN DATA..................................................................... 84 2 8.2.6 BUSINESS RULES................................................................................................................... 85 8.2.7 ENTERPRISE APPLICATIONS.................................................................................................. 85 8.2.8 SAMENGEVAT....................................................................................................................... 86 HOOFDSTUK 9: INLEIDING DATA SCIENCE.....................................................................................87 9.1 FUNDAMENTELE CONCEPTEN..................................................................................................... 87 9.1.1 TERMINOLOGIE.................................................................................................................... 87 9.1.2 SAMENGEVAT....................................................................................................................... 87 9.2 EEN MODEL TRAINEN OP DATA................................................................................................... 88 9.2.1 DATA ALS STRATEGISCH GOED............................................................................................. 88 9.2.2 BESLISSINGEN ONDERSTEUNEN MET DATA SCIENCE........................................................... 88 9.2.3 EEN MODEL.......................................................................................................................... 88 9.2.4 COMPLEXE FUNCTIES APPROXIMEREN MET NEURALE NETWERKEN.................................. 89 9.3 METHODES, TAKEN EN TOEPASSINGEN...................................................................................... 90 9.3.1 TAKEN................................................................................................................................... 90 9.3.3 METHODES........................................................................................................................... 91 9.3.4 WAT IS EEN GOED MODEL?.................................................................................................. 92 9.3.5 TOEPASSINGEN..................................................................................................................... 94 9.3.6 VAN THEORIE NAAR PRAKTIJK MET CRISP-DM..................................................................... 95 9.4 CUSTOMER CHURN: EEN CASE STUDY........................................................................................ 95 9.4.1 IS DATA SCIENCE ALTIJD NUTTIG?........................................................................................ 98 3 HOOFDSTUK 1: INLEIDING 1. HET BELANG VAN INFORMATIETECHNOLOGIE EN INFORMATIESYSTEMEN “Information technology and business are becoming inextricably interwoven. I don’t think anybody can talk meaningfully about the one without talking about the other” – Bill Gates (Microsoft) Om aan efficiënte en effectieve bedrijfsvoering te doen moet het management leren over IT Vandaag: zo goed als elk bedrijf gebruikt informatietechnologie/informatiesystemen ▪ De meerderheid van de investeringsbeslissingen door managers gaan over IT ▪ Je MOET hiermee bezig zijn als bedrijf, anders ben je minder competitief Opportuniteiten Risico’s Nieuwe businessmodellen Het ontwikkelen van IS is zeer duur Innovaties Meerderheid van IS mislukt Verhoogde efficiëntie Grote afhankelijkheid: wat als IS niet Betere communicatie functioneren? (vb. Facebook ligt plat) Automatisatie … Nadeel: zelf bij de meest succesvolle bedrijven ter wereld gaan zaken mis met IS ◆ : “In the digital age, our data is currency” = Digitalisatie zorgt ervoor dat de data die we hebben leesbaar is voor informatiesystemen & dat het in informatiesystemen kan worden gegoten via algoritmes, modellen, etc. 2. RETURN ON IT VERSUS IT INVESTMENT PARADOX Het is niet omdat je investeert in IT dat de productiviteit automatisch verhoogt ! Enkel slim en goed investeren in IT verhoogt de productiviteit in bedrijven 3. HET BELANG VAN COÖRDINATIE Bij ontwikkelen van IS: stakeholders (IT-experten, managers, …) moeten met elkaar communiceren MAAR als het management niet de taal beheerst om correct te omschrijven aan de IT-experten wat gewenst is, wordt uiteindelijk vaak iets anders ontworpen dan oorspronkelijk de bedoeling was ◆ : 4. BUSINESS/IT ALIGNMENT “If I had asked people what they wanted they would have said: faster horses” – Henry Ford 2 afdelingen: Management: highlight een bepaalde nood en probleem → vereist basiskennis IT IT experts: precieze implementatie, aanwending huidige technologie, etc. MAAR het loopt vaak mis door inefficiënte communicatie tussenbeide Conclusie: een goede visie rond IS betekent niet automatisch een goede implementatie in het bedrijf 4 HOOFDSTUK 2: BASISBEGRIPPEN 1. BEGRIPPEN: INFORMATIESYSTEMEN 1.1 DE COMPONENTEN VAN INFORMATIETECHNOLOGIE Component 1: hardware = de apparatuur of machines die programma’s kunnen uitvoeren Alles wat je kunt kapotslaan, vasthouden Voorbeelden: laptop, projector, etc. Is vaak heel klein (vb. nanochips), maar kan ook heel groot zijn (vb. GPU, grafische kaart) Component 2: software = programma’s en de algoritmes die ze voorstellen Software runt op hardware Opgelet! Een programma hoeft geen grafische weergave te hebben Voorbeeld: het programma dat je computer opstart, een virus, … → Je ziet niet dat deze ‘programma’s’ aan het werk zijn Ook data is software (vb. Word, Android, databases, etc.) Software is vaak geschreven/gecodeerd in programmeertaal MAAR wordt omgezet in machinetaal om uitgevoerd te worden (zie later) Component 3: databases = collectie van data in computersysteem georganiseerd voor makkelijke opslag, toegang en beheer Voorbeeld: relationele databank Component 4: communicatie = verbinden van meerdere computers om te communiceren en data uit te wisselen Voorbeeld: het grootste netwerk = het internet Opgelet!! Sommige handboeken hebben een 5de component: mensen → Deze zijn essentieel om informatiesystemen te laten werken 5 1.2 HET VERSCHIL TUSSEN INFORMATIETECHNOLOGIE EN INFORMATIESYSTEMEN Informatietechnologie = de ‘tools’ (bakstenen, nagels, beton, etc.) → componenten (zie hierboven) Informatiesysteem = een set van onderling gerelateerde componenten die informatie verzamelen, verwerken, opslaan en verspreiden om de besluitvorming in een organisatie te ondersteunen, gebruikmakende van informatietechnologie → haalt bruikbare informatie uit data Informatie = data + nut → het nut die je aan data kan toekennen Data is heel waardevol MAAR enkel als ze tot bruikbare informatie kunnen gevormd worden Het krachtigste algemene informatiesysteem = onze hersenen We geven een bepaalde betekenis aan ruwe pixels die onze hersenen binnenkomen Kan veel taken/functies tegelijk uitvoeren Conclusie: informatietechnologie & informatiesystemen zijn de belangrijkste tools in ondernemingen Beslissingsprocessen ondersteunen en efficiënter/effectiever maken Kosten besparen Extra inkomsten verwerven 1.3 HET DISRUPTIEVE KARAKTER VAN INFORMATIETECHNOLOGIE Disruptieve innovatie: het business model van bedrijven kan wijzigen door informatietechnologie Voorbeelden: Amazon: was vroeger een fysieke boekwinkel Netflix: verkocht vroeger fysieke dvd’s via de post !! MAAR niet enkel grote bedrijven gebruiken dit Zowel grote multinationals als kleine tot middelgrote bedrijven gebruiken informatiesystemen om informatie te bewaren, verwerken en rapporteren om hun processen te ondersteunen Aanwezig in de hele maatschappij Veranderingen in verwachtingen van de klant tegenover vroeger → Klanten verwachten dat IT en IS worden gebruikt om betere, real-time diensten te voorzien (vb. 24/7 helpdesk, pakketjes traceren, betalen met bancontact, etc.) 6 2. BEGRIPPEN: INFORMATICA Informatica = de wetenschap van informatieverwerking Met gebruik van computers ‘Informatics’ = studie van informatieverwerking (cfr. ‘economics’ = studie van economie) Het wetenschappelijk onderbouwen van: ▪ Programmeren van computers ▪ Ontwerpen van programmeertalen ▪ Opslag van informatie ▪ Algoritmes voor het oplossen van computationele problemen ▪ De complexiteit en schaalbaarheid van algoritmes Programmeren = het maken van programma’s (= software), het structureren van instructies zodat een machine die kan uitvoeren → via een programmeertaal (vb. Python, Java, …) Het schrijven van een programma gebeurt in verschillende stappen: 1. Probleem definiëren 2. Ontwerpen van de oplossing (algoritmes) 3. Programmeren (in een programmeertaal) 4. Testen 5. Documenteren EN onderhoud!! MAAR moderne aanpak: iteratief, flexibel en modulair → stappen lopen door elkaar ◆ - " : 7 HOOFDSTUK 3: ALGORITMES !! Dit is 1 van de meest fundamentele concepten van de informatica Voorbeelden: Netflix (geven aanraders), een recept, een partituur, binnen de wiskunde, etc. 3.1 DEFINITIE Informele definitie: = reeks stappen die bepaalt hoe een taak wordt uitgevoerd en hoe tot een oplossing wordt gekomen Formele definitie: = een geordende reeks ondubbelzinnige, uitvoerbare stappen die een eindig proces beschrijven → Toepassingsgebied: wiskunde of computeralgoritmes De 4 componenten/karakteristieken van een algoritme: 1. Geordend (partieel): de volgorde van de stappen ligt op voorhand vast Opgelet! Je kunt wel 2 stappen parallel uitvoeren 2. Ondubbelzinnig: er is maar 1 interpretatie mogelijk 3. Uitvoerbaar: elke stap moet mogelijk zijn (vb. delen door 0) 4. Eindig: er moet een duidelijke stopconditie aanwezig zijn Algemeen: Een oplossingsmethode als antwoord op een probleem → Vaak meerdere manieren het algoritme neer te schrijven → Computationeel denken: computers gebruiken om complexe problemen op te lossen → Gelijkaardige situaties kunnen vaak worden opgelost met dezelfde methode Stappen: elementaire handeling die sequentieel worden uitgevoerd Vaak domein-specifieke terminologie Vangt intelligentie en laat toe deze over te dragen 3.2 ALGORITMES IN BEDRIJFSKUNDE “The Algorithmic Business” = De bedrijfsvoering wordt ondersteunt door oplossingsmethodes 3.3 HET VERSCHIL TUSSEN EEN ALGORITME, PROGRAMMA EN PROCES Algoritme (zie formele definitie hierboven) Programma = een uitvoerbaar stuk software dat een algoritme voorstelt Formele definitie: de representatie van een algoritme Informele definitie: een niet-eindigende stappenreeks Proces = activiteit waarbij een programma/algoritme wordt uitgevoerd (vb. kookproces, computerproces) 8 3.4 ALGORITME REPRESENTATIES Gezien abstracte aard van algoritmes: manier vinden om deze weer te geven → Algoritme representatie vereist precies gedefinieerde PRIMITIEVEN = bouwstenen waarmee representaties van algoritmes kunnen opgebouwd worden Voordelen van het gebruik van primitieven: A) Ondubbelzinnige instructies B) Vermijden van communicatieproblemen MAAR opgelet! Er bestaan verschillende primitieven voor verschillende algoritme representaties 2 bouwstenen van primitieven: 1. Syntax: symbolische representatie 2. Semantiek: de betekenis dat eraan wordt gegeven 3.4.1 SOORTEN REPRESENTATIES Niveau 1: hoog-niveau representatie/hogere primitieven/’higher level’ programmeertaal Verre abstractie van de originele machine-instructies (vb. Python) Niveau 2 = Laag-niveau representatie/lagere primitieven/’lower level’ programmeertalen Weinig abstractie van de originele machine-instructies Uitvoerbare programmeertaal: verzameling primitieven + verzameling regels voor om die primitieven op een gestructureerde manier te combineren Lower level Higher level TOEPASSING: Github Copilot = een IA-based assistent voor IT-ontwikkelaars → Helpt bij het coderen: vult de codes verder aan “Waarom is een copilot in een ‘higher level’ programmeertaal nuttiger dan 1 rechtstreeks in machinetaal?” Antwoord: copilot kan fouten maken, programmeur moet dit kunnen controleren 9 3.4.2 PSEUDOCODES EN FLOWCHARTS Wat? Meest voorkomende manier om algoritmes neer te schrijven Algoritmen informeel en leesbaar voorstellen → verhoogt begrijpbaarheid/objectiviteit ▪ Tijdens ontwikkeling van algoritme ▪ Voor objectieve communicatie van oplossingsontwerpen → Business-IT alignment = belangrijk! Notatiesysteem om ideeën uit te drukken zonder belemmering door formele, rigide regels FLOWCHARTS 5 primitieven: Opgelet! Een ruit mag enkel gebruikt worden indien er een conditie wordt gecheckt Basisregels Altijd begin + einde Tekst (= string) tussen aanhalingstekens (“) Toekenning met  Sequentie Consistentie in naam van de variabele: gebruik zelfde naam + wel/geen hoofdletters 10 PSEUDOCODES = een visueel overzicht van de stappen die geïmplementeerd moeten worden Opgelet! Pseudocodes kunnen op verschillende manieren opgemaakt worden → Hoeft zich niet aan vaste syntax regels te houden, zolang het ondubbelzinnig is! Wordt het meest gebruikt, ook in academische literatuur Voordeel: nog een hoger niveau van abstractie dan bijvoorbeeld Python Hier: 15 lijntjes, echte programmeertaal is 100 lijntjes 3.4.2.1 VASTE BOUWSTENEN VAN FLOWCHARTS EN PSEUDOCODES 4 vaste bouwstenen 1. Toekenning 2. Sequentie 3. Selectie wordt gebruikt om logica te verkrijgen 4. Iteratie BOUWSTEEN 1: TOEKENNING = het toekennen van een waarde aan een variabele Variabele = een symbolische naam die verwijst naar een waarde Waarde kan veranderen (‘variabel’) Tijdelijke opslagplaats voor data/informatie die gebruikt wordt tijdens uitvoeren programma Voorbeeld: z = x + y x, y en z zijn variabelen Verschillende soorten data mogelijk (vb. numeriek, individuele tekens, strings (=tekst), etc.) 11 FLOWCHART PSEUDOCODE Name  expression Name = expression Symbool: pijltje Symbool: gelijkheidsteken (Rechterzijde toekennen aan (Rechterzijde toekennen aan linkerzijde/variabele) linkerzijde/variabele) Numerieke voorbeelden: Numerieke voorbeelden: x2 x=2 count  3 count = 3 count  count – 1 count = count – 1 (je kunt hier bewerkingen mee uitvoeren (je kunt hier bewerkingen mee uitvoeren MAAR dit vereist dus een eerdere toekenning) MAAR dit vereist dus een eerdere toekenning) Tekstvoorbeelden (=string) Tekstvoorbeelden (=string) ‘het totaal van de som is:’ totaal Zin = ‘het totaal van de som is:’ Symbool: aanhalingstekens Symbool: aanhalingstekens BOUWSTEEN 2: SEQUENTIE = Er wordt een bepaalde volgorde van bewerkingen/statements uitgevoerd BOUWSTEEN 3: SELECTIE (VOORWAARDELIJKE OPDRACHT) → SELECTIEALGORITMES = enkel bepaalde stap(pen) uitvoeren als aan een bepaalde conditie voldaan is If then/als dan = geen aparte opdracht als conditie niet voldaan is Flowchart Pseudocode Begin Als B Dan S Eindals Einde Voorbeeld: Begin Als regen Dan neem paraplu Waarbij B = Boolean (True/False) Eindals Er wordt gekeken of de conditie juist/fout is Einde 12 If then else/als dan anders = specifieer een alternatieve opdracht als conditie niet voldaan is Flowchart Pseudocode Begin Als B Dan s1 Anders s2 Eindals Einde Voorbeeld: Begin Waarbij B = Boolean (True/False) Als regen Er wordt gekeken of de conditie juist/fout is Dan neem paraplu Anders open schoenen Eindals Einde Nested IF (“ifception”) = meerdere condities moeten voldaan worden vooraleer iets wordt uitgevoerd → Bij elke if wordt een conditie gecheckt OEFENING 15 (ZIE OEFENINGENBESTAND CANVAS) Schrijf een algoritme die de lettercodes (A, B, C, D, F) toekent aan studenten naargelang hun score op 100. De codes worden bepaald aan de hand van het volgende schema: Flowchart Pseudocode Begin Als marks > 60 Dan Als marks > 70 Dan Als marks > 80 Dan Als marks >90 en ≤ 100 Dan grade = A Anders grade = B EindAls Dan grade = C EindAls Dan grade = D EindAls Dan grade = F EindAls Einde 13 BOUWSTEEN 4: ITERATIE (HERHALINGSOPDRACHT OF LOOP) → HERHALINGSALGORITMES = Afhankelijk van bepaalde condities voer je dezelfde statement meerdere keren na elkaar uit While/zolang = je checkt eerst of aan een de conditie voldaan is en voert het statement dan uit → Zolang aan een bepaalde conditie voldaan is de bewerking opnieuw uitvoeren → Vooraf niet duidelijk hoe vaak we iets moeten zullen herhalen Verschil 1: De statement wordt minstens 1 keer uitgevoerd Verschil 2: Je verdwijnt uit de loop als de conditie fout is Flowchart Pseudocode Begin Zolang B Doe S Eindzolang Einde Voorbeeld: Begin Zolang geen regen Doe werk in de tuin Waarbij B = Boolean (True/False) Eindzolang Zolang B voldaan blijven we S herhalen Einde Opgelet! Schrijf NOOIT 2 keer dezelfde bewerking/output op Repeat/herhaal = je voert het statement uit en checkt nadien of aan de conditie voldaan is Verschil 1: Het is mogelijk dat de statement NOOIT wordt uitgevoerd Verschil 2: Je verdwijnt uit de loop als de conditie waar is Flowchart Pseudocode Begin Herhaal S Tot B Eindherhaal Einde Voorbeeld: Begin Herhaal werk in de tuin Tot regen Eindzolang Waarbij B = Boolean (True/False) Einde S herhalen tot aan B niet meer voldaan wordt !! EXAMEN: KEN GOED DE 2 VERSCHILLEN TUSSEN WHILE & REPEAT (ZIE VERSCHILPUNTEN) 14 For/voor = je weet exact hoe veel je een bepaalde opdracht wilt herhalen → De loop heeft een ver gekend aantal, of een gekende lijst/bereik Flowchart Pseudocode Begin Voor i in E1 tot E2 (bij gekend aantal) Doe S Einddoe Einde Begin Voor i in namen (bij gekende lijst) Doe S Einddoe Einde Voorbeeld: Begin Namenlijst  [‘Sam’, ‘Vincent’, ‘Filip’] Voor i in namenlijst Doe print (i) Counter = hoe vaak je iets hebt uitgevoerd Einddoe While = je voert uit tot max. aantal Einde (Wat? Je print de namen 1 voor 1 uit) Begin Voor i in 0 tot 3 Doe print (‘hallo’) Einddoe Einde (Wat? Je print ‘hallo’ 3 keer na elkaar uit) !! m en i zijn tijdelijke variabelen die worden gebruikt om de integer-waarde van de huidige positie in het bereik van de for-loop op te slaan (= hoe vaak je de loop al hebt uitgevoerd) Indien geen stapwaarde in PC: standaard 1 = een geheel getal 15 3.4.2.2 OEFENINGEN OEFENING 11 (ZIE OEFENINGENBESTAND CANVAS) We zouden graag een algoritme schrijven waarbij: De input een gegeven afstand in mile is Het gewenste resultaat is dezelfde afstand omgezet naar kilometer (1 mile = 1.609 km) Flowchart Pseudocode Begin Schrijf ‘Geef afstand in mijl’ Lees mile km  mile x 1.609 Schrijf mile, ‘miles = ‘, km, ‘kilometer’ Einde OEFENING 12 (ZIE OEFENINGENBESTAND CANVAS) Ontwerp een algoritme dat het oppervlak van een rechthoek met een vaste breedte van 3,3 cm en een vaste lengte van 10 cm berekent Flowchart Pseudocode Begin Breedte  3,3 Lengte  10 Oppervlakte  Breedte x Lengte Schrijf ‘Oppervlakte = ‘, oppervlakte Einde 16 OEFENING 13 (ZIE OEFENINGENBESTAND CANVAS) Dezelfde vraag als oefening 12, maar nu worden de breedte en lengte sequentieel ingelezen. Deze getallen moeten dus eerst ingegeven worden vooraleer de bewerking wordt uitgevoerd Flowchart Pseudocode Begin Schrijf “Geef breedte” Lees breedte Schrijf “Geef lengte” Lees lengte Oppervlakte  breedte x lengte Schrijf ‘Oppervlakte =’, oppervlakte Einde OEFENING 14 (ZIE OEFENINGENBESTAND CANVAS) Een tweede programma laat toe een aantal getallen één voor één in te lezen en de som van die getallen te berekenen. Na inlezing van elk nieuw getal wordt dit nieuwe getal bij het totaal geteld. Aangezien het aantal in te lezen getallen niet op voorhand bepaald is, spreken we af dat we na het laatste getal een nul zullen intypen om de reeks af te sluiten. Hierna zal de som geprint worden. While loop Flowchart Pseudocode Begin Som  0 Schrijf ‘Geef getal’ Lees getal Zolang getal 0 Doe Som  Som + getal Schrijf ‘Geef getal’ Lees getal Eindzolang Schrijf ‘De som is’, Som Einde MAAR er zit een fout in deze uitwerking → Inconsistentie: hoofdlettergevoelig 17 Repeat loop Flowchart Pseudocode Begin Som  0 Herhaal Schrijf ‘Geef getal’ Lees getal Som  Som + getal Tot getal = 0 Schrijf ‘De som is’, Som Einde CONCLUSIE: het gebruik van een repeat-loop is bij deze oefening efficiënter, aangezien er hier minder elementen nodig zijn om de flowchart en PseudoCode op te bouwen ◆ - " : 18 HOOFDSTUK 4: PROCESMODELLEN 4.1 DEFINITIE VAN EEN ‘PROCES’ Er bestaat niet 1 formele definitie, er zijn veel verschillende definities MAAR er zijn wel gemeenschappelijke elementen die terugkomen: Er is een sequentie van activiteiten Transformatie van input naar output ▪ Volgens regels ▪ Gebruik makende van middelen Vooraf gedefinieerde, meetbare output: product of dienst Scoped: duidelijk begin en einde (end-to-end) Opgelet! Een algoritme ≠ proces Verschillen tussen een algoritme en proces: Verschil 1: Algoritme: gaat ALTIJD over een oplossingsmethode Proces: is NIET ALTIJD een oplossingsmethode (maar dit is wel mogelijk) Verschil 2: Algoritme: gaat over HOE dingen gebeuren tijdens een proces Proces: gaat over WAT gebeurt tijdens een proces (beschrijvend) 4.2 DEFINITIE VAN EEN ‘MODEL’ Een model = een vereenvoudigde en/of geïdealiseerde voorstelling van (een deel van) de realiteit Soorten modellen: 1. Fysiek model: een prototype (vb. bij een nieuw product) 2. Grafisch model: een datamodel 3. Wiskundig of computer model → hiermee werken wij ◆ : - " Andere kenmerken: Een model beschrijft een systeem Voorbeeld: de plannen van een huis kunnen een huis beschrijven (en is dus een model) MAAR ook de tekstuele beschrijving van een huis (vb. op immoweb) is een model Een model wordt geschreven met NOTATIE UML: voor datamodellen BPMN: voor procesmodellen “A model is not the thing it is describing. It is some representation of the thing. But in some very real sense, it looks like the thing.” - Kenn Lunn, Software development with UML Conclusie: via pseudocodes en flowcharts probeerden we een hoger niveau representatie te maken van een algoritme, nu doen we hetzelfde met BPMN voor procesmodellen 19 Waarom bouwen we modellen? Voor analyse en het maken van beslissingen Makkelijker en goedkoper Communicatie Planning Simulatie Optimalisatie Wooclap: “kan dit een valide model zijn van mijn huis?” Antwoord: ja; het is een representatie van iets dat echt bestaat & geeft een beeld van de karakteristieken van het huis (vb. 1 puntdak, 1 deur, 2 ramen, etc.) CONCEPTUEEL VOORBEELD Stel dat u een informatiesysteem wilt ontwikkelen waarmee een leverancier van bouwmaterialen zijn verkoop-, productie- en financiële processen kan ondersteunen en beheren. Er wordt u verteld dat het orderverwerkingsproces doorgaans ongeveer als volgt verloopt: "Wanneer een klant een order plaatst, registreren de bedienden van verkoop de gegevens van de klant (adres en telefoonnummer), evenals wat de klant precies nodig heeft. Als de gegevens van de bestelling compleet zijn, sturen ze een e-mail naar de financiële afdeling die het krediet van de klant moet controleren, om er zeker van te zijn dat hij kan betalen voor wat hij bestelt. Als de kredietwaardigheid van de klant in orde is, stuurt de financiële afdeling de bestelling door naar het magazijn, waar de bestelling wordt voltooid en naar de klant wordt gestuurd. Tenminste, als we op voorraad hebben wat besteld is. Samen met het versturen van de bestelling naar de klant, wordt de financiële afdeling geïnformeerd dat ze de klant kunnen factureren." “Waarom hebben we procesmodellen nodig?” Antwoord: als conclusie op bovenstaand conceptueel voorbeeld kunnen we stellen dat het geen efficiëntie representatie is van wat gebeurd tijdens het proces. Je kunt niet 10 keer vragen aan iemand hoe zijn proces eruit ziet. Er moet dus worden gezocht naar een efficiëntere representatie van het model die makkelijker is om te communiceren “Hoe kunnen we dit proces omschrijven of modelleren?” Antwoord: via BPMN ◆- " : 20 4.2.1 BUSINESS PROCESS MODEL AND NOTATION (BPMN) = grafische taal/notatie dat men gebruikt om processen voor te stellen Wat? Tegenwoordig: BPMN 2.0 Rijkere, meer gestandaardiseerde notatie tegenover flowcharts Ontworpen voor interpretabiliteit BPMN = ondubbelzinnig, formeel, exhaustief ▪ Strikte betekenissen en gebruik van elementen ▪ Strikte regels om elementen te combineren Basiselementen: beperkt aantal grafische elementen Opgelet! Er is veel minder vrijheid dan bij pseudocodes en flowcharts ◆ : Begin Gebeurtenis Einde Conditie checken (= een event) CONCEPTUEEL VOORBEELD (I) Conclusie: het is duidelijker wat gebeurd dan bij vorig conceptueel voorbeeld (met lange tekst) → Het is een effectieve en efficiënte manier om te communiceren 21 Activiteiten kunnen complex zijn MAAR deze complexiteit kan geabstraheerd worden: wegabstraheren van irrelevante zaken 1) Afhankelijk van het perspectief (wat afhangt van het doel vh model) Afhankelijk van wat je wil belichten in een proces maak je een bepaald procesmodel 2) Verschillend detailniveau dat wordt gehanteerd in het modelleerproces Complexiteit kan gecapteerd worden in verschillende model-lagen Focus op WAT gebeurt (ipv hoe) CONCLUSIE: er is bij BPMN een hoger abstractieniveau dan bij flowcharts en pseudocodes Voorbeeld: Er staat niet wat ‘check credit’ is en hoe het wordt gecheckt , want dit is niet van belang Voorbeeld: ‘+ teken’ betekent dat er meerdere activiteiten zijn MAAR wat deze activiteiten zijn doet er niet toe en wordt dus weg geabstraheerd CONCEPTUEEL VOORBEELD (II) Stel: je wil inzicht kijken in het fulfill order proces → bekijken vanuit ander opzicht/model 4.2.1.1 BASISELEMENTEN 5 basiselementen: 1. Flow objecten 2. Connectoren 3. Pools en lanes Van heel belangrijk naar minder belangrijk 4. Data 5. Artefacten Tijdens een proces moeten dingen gedaan worden onder bepaalde condities, in een bepaalde volgorde, terwijl dingen kunnen gebeuren, maar enkel binnen een pool 22 “Wat is het verschil tussen een activiteit en een event?” Antwoord: de controle die je hebt op de uitvoering ervan Voorbeeld: iemand stuurt jou een mail = event → je hebt er zelf GEEN controle over je geeft les = activiteit → je hebt er WEL zelf controle over 4.2.1.1.1 FLOW OBJECTEN A) Activiteiten: iets moet worden GEDAAN Focus op wat er gedaan wordt (ipv hoe) Atomair (= ondeelbaar) Neemt aanzienlijke tijd in beslag & controle B) Events: iets moet GEBEUREN Instant: neemt geen tijd in beslag & geen controle 3 soorten events: I) Startevent: enkele rand II) Intermediate event: niet gevulde dubbele rand III) Eindevent: gevulde dubbele rand → Kleuren van de cirkeltjes doen er niet toe C) Gateways: meerdere OPTIES zijn mogelijk: checken van een conditie → Afhankelijk van deze check loopt het proces op een bepaalde manier verder → Het procespad splitsen en mergen verloopt via een gateway EXTRA’S (zie verder) Wordt het handmatig Wek soort gebeurtenis moet er gebeuren? Onder welk soort conditie gedaan of is er een vindt de gebeurtenis computer nodig? plaats? 4.2.1.1.2 CONNECTOREN = geeft de volgorde/sequentie aan van de acties in een proces A) Sequence flow: verbinden van flow objecten & de richting aangeven B) Message flow: !! enkel tussen 2 pools – duidt flow van berichten aan C) Associatie: componenten met elkaar verbinden die niet tussen pools gaan en die geen deel zijn van de hoofdsequentie van activiteiten Opgelet! Van startevent tot eindevent moeten ALLE objecten verbonden zijn door sequence flows. Gaten is een diagram zijn absoluut verboden: geen sequence flow tussen 2 flow objecten 23 CONCEPTUEEL VOORBEELD OEFENING 12 (ZIE OEFENINGENBESTAND CANVAS) Wanneer je gaat fitnessen, kleed je je eerst om. Daarna laad je je oefeningenschema op je datasleutel. Dan doe je je oefeningen. Nadat de oefeningen gedaan zijn check je uit met je datasleutel. Het proces eindigt nadat je hebt gedoucht en je terug hebt omgekleed Dit is een pure sequentie van activiteiten: 4.2.1.1.3 POOLS EN LANES A) Pool : elke pool is een verschillend proces → 1 proces = 1 pool !! Elk proces moet gemodelleerd worden in een pool Geef het proces een naam of actor Binnen 1 pool: alles is verbonden door sequence flows van start tot eind event White box pool: container voor processen → het hoofdproces: je modelleert je eigen proces Black box pool: externe participanten → externe processen : je weet niet wat er zich afspeelt B) Lane : de betekenis van lanes wordt bepaald door de modelleerder Onderverdeling binnen een proces (vb. volgens rol, volgens departement) ! Vaak gemaakte fout: elk element moet in 1 lane behoren 24 Meerdere participanten: 1. Interne participanten Zelfde standpunt Nemen deel aan hetzelfde proces Zelfde pool, maar verschillende lanes Iedereen krijgt een eigen lane 2. Externe participanten Ander standpunt Nemen deel aan een ander proces Verschillende pools 2 soorten pools: A) White box pool: proces is gekend en relevant van start tot eind B) Black box pool: details van proces zijn niet gekend en niet relevant → Je weet enkel dat er berichten worden verstuurd en ontvangen CONCEPTUEEL VOORBEELD OEFENING 13 (ZIE OEFENINGENBESTAND CANVAS) Een bedrijf heeft een systeem om vergaderzalen te reserveren. Een werknemer maakt de reservatie. Catering zal dan drankjes naar de zaal brengen voor de meeting begint, en zal opruimen nadat de meeting is afgelopen 25 4.2.1.1.4 DATA A) Data object: Data die als gevolg van het proces ontstaat + NIET wordt opgeslagen → Data vergaat wanneer het proces gedaan is Gelinkt aan taak met een associatie Door data-objecten toe te voegen kunnen deze data-elementen in het proces expliciet worden gemaakt omdat ze cruciaal zijn in het proces & belangrijk zijn gezien ons doel bij het modelleren van het proces → DATA IS BELANGRIJK!! Wordt tijdens het proces gemaakt of ontvangen Soort document (pdf, word, …) B) Data store: Data bestond al voor het proces + WEL wordt opgeslagen → Data blijft bestaan nadat het proces gedaan is Permanente opslagplaats voor data We kunnen data opslaan/uploaden of schrijven/lezen naar/van database Opgelet! Een annotatie verbindt een activiteit met data store 4.2.1.1.5 ARTEFACTEN !! Artefacten hebben GEEN impact op de uitvoering van het proces Artefacten mogen dus geen essentiële stappen in het proces vertegenwoordigen (zou je ze weglaten, heeft het geen impact op je proces) ◆ - " : Wat? Extra’s in BPMN, niet formeel gedefinieerd Groep: stippellijn rond bepaalde delen van het model plaatsen Annotatie ▪ Arbitraire tekst ▪ Gelinkt aan een ander object door een associatie connector/flow ▪ Relevante informatie toevoegen die geen formele representatie heeft Extensies: organisatiespecifieke symbolen ▪ Organisatie kan zelf bijkomende symbolen gebruiken CONCEPTUEEL VOORBEELD (I) 26 CONCEPTUEEL VOORBEELD (II) Via annotaties kan de duurtijd van activiteiten worden toegevoegd (is extra info maar niet noodzakelijk) 4.2.1.2 GATEWAYS Wanneer meerdere scenario’s bestaan: gateways gebruiken → splitten + mergen Niet-deterministische processen Afhankelijk van de logica !! Er wordt enkel een conditie gecheckt in de gateway, er vindt GEEN activiteit/event plaats OEFENING Een bedrijf heeft een systeem om vergaderruimtes te reserveren. Een medewerker maakt de reservering. Ook geeft de medewerker aan of er een beamer nodig is. Zo ja, dan pakt de medewerker de beamer op en brengt deze na de vergadering weer terug !! Gebruik altijd gateways om sequence flows te splitten en mergen Je mag dus bijvoorbeeld bij het einde niet direct naar je eindevent gaan, gebruik eerst een gateway !OPGELET: VANAF NU GEBRUIKEN WE GEEN LEGE RUIT MEER OM EEN GATEWAY VOOR TE STELLEN 27 4.2.1.2.1 COMPLEX GEDRAG EXCLUSIVE GATEWAY = op basis van data (wat we tot nu toe hebben gebruikt) A) Splitten Conditie wordt gecheckt: een vraag wordt gesteld, gate is het antwoord Er wordt ALTIJD slechts 1 pad geactiveerd B) Mergen Uitgaande flow geactiveerd telkens een actieve flow binnenkomt OEFENING “Wat is er mis met volgend gebruik van de exclusieve gateway?” Oplossing: 1) Er zit overlap tussen de 3 paden (het mag niet tegelijkertijd gebeuren/ a of b en niet beide) Bv. het cijfer 3 is kleiner dan 20, kleiner dan 10 en kleiner dan 5 2) Er MOET altijd 1 pad geactiveerd worden Bv. bij het cijfer 30 wordt geen enkel pad geactiveerd EVENT-BASED GATEWAY = op basis van een event (= een gebeurtenis) → Er KUNNEN meerdere events gebeuren, maar je weet niet welke eerst zal plaatsvinden A) Splitten Wacht tot iets gebeurt, optie die eerst voorvalt wordt gekozen Alle mogelijke events moeten in acht worden genomen B) Mergen: niet gebruikt Exclusieve gateway = sequence flow na gateway gekozen o.b.v. de activiteit voor de gateway Event-based gateway = sequence flow na gateway gekozen o.b.v. event na gateway eerst gebeurt 28 CONCEPTUEEL VOORBEELD “Is het mogelijk dat de uitgaande flow 2 keer geactiveerd wordt in dit proces?” Antwoord: neen → er kan maar 1 inkomend signaal zijn & dus maar 1 uitgaand signaal “Kan het zijn dat het eindevent nooit wordt bereikt in dit proces?” Antwoord: ja → als de bestelling geaccepteerd wordt komen we niet in het eindevent PARALLEL GATEWAY A) Splitten Alle paden worden altijd geactiveerd, er wordt GEEN conditie gecheckt Activiteiten kunnen tegelijkertijd uitgevoerd worden (in parallel) B) Mergen Wacht op alle inkomende paden vooraleer verder te gaan CONCEPTUEEL VOORBEELD (I) !! Het is mogelijk dat de activiteiten een andere duurtijd hebben MAAR het proces wacht wel tot beide activiteiten zijn afgerond om verder te gaan ◆ - " : 33 CONCEPTUEEL VOORBEELD (II) “Welke reorganisatie vh proces wordt hier doorgevoerd? Wat is de impact op de procesefficiëntie?” Figuur 1 Figuur 2 Oplossing: Figuur 1 Figuur 2 Er wordt gewerkt met een exclusive gateway, Er wordt gewerkt met een parallel gateway waardoor je moet kiezen tussen pasta of steak → 10 minuten sneller dan figuur 1: salade wordt maken. Je doet er dus langer over dan figuur 2. op hetzelfde moment bereidt als steak/pasta “Stel: er is maar 1 chefkok, wanneer hij het slaatje en de steak/pasta tegelijk moet bereiden doet hij er 13 minuten over (ipv 10 minuten). Hoe passen we ons model hieraan aan?” Antwoord: vervang ’10 minuten’ door ’13 minuten’ waar van toepassing. De activiteiten zelf veranderen niet (enkel de timing), wat wordt gereflecteerd in de annotatie ◆ - " : INCLUSIVE GATEWAY = elke ‘arm’ is een vraag A) Splitten MINSTENS 1 pad wordt geactiveerd ↔ exclusive: 1 pad ↔ parallel: alle paden B) Mergen Proces vervolgt nadat alle GEACTIVEERDE paden binnen zijn gekomen Dit was identiek bij de parallel gateway ◆ - " : OEFENING “Wat is er mis met dit model?” Oplossing: dit model gaat ervan uit dat je altijd honger of dorst hebt Dit kunnen we oplossen door een derde pad toe te voegen: ‘niet thirstry/hungry’ 34 CONCEPTUEEL VOORBEELD (I) “Kunnen de 4 gateways (figuur 1) worden vervangen door 2 inclusive gateways (figuur 2)?” Figuur 1 Figuur 2 Oplossing: Figuur 1 Figuur 2 Er wordt gewerkt met een parallel gateway. Je Er wordt gewerkt met een inclusive gateway moet dus wachten tot alle recepten gemaakt zijn → Je kunt kiezen om enkel/geen sla te nemen (je vooraleer je kan eten. Er worden ook minder kan dus ook gewoon verder met 1 recept en niet mogelijkheden toegelaten: pasta & salade of perse wachten tot ze allemaal klaar zijn). steak en salade. 4.2.1.2.2 ENKELE AFSPRAKEN Afspraak 1: een gateway kan splitten of mergen, niet beiden Afspraak 2: we mergen en splitten altijd via een gateway 35 OEFENING “Hoeveel keer wordt taak 4 uitgevoerd?” Oplossing: dit is afhankelijk. Aangezien we werken met een inclusive gateway is het mogelijk dat zowel taak 2 als taak 3 worden uitgevoerd, of slechts 1 van beide → als beide opties worden geactiveerd dan wordt taak 4 2x uitgevoerd " ◆ : - “Wat zijn de verschillende opties bij de split?” Oplossing: MINSTENS 1 optie wordt geactiveerd (beide opties is dus ook mogelijk) 4.2.1.3 ELEMENTEN VOOR GEVORDERDEN Elementen: Event types Collaboration diagram Task types worden als volgt besproken : ◆ " - Subproces Event types We bespraken eerder verschillende events: startevent, intermediate event, eindevent MAAR we kunnen ook duidelijk maken of wij het event initiëren of wanneer iemand anders dit doet A) Catching (wit kern-icoon): Je hebt geen controle over de gebeurtenis, externe participant bepaald of de gebeurtenis plaatsvindt en wanneer → je hebt er geen controle over van buitenaf Passief (we moeten wachten) Het event komt voort uit een ander even (vb. een bericht) B) Throwing (zwart kern-icoon): Wij initiëren het event: wij kiezen of de gebeurtenis plaatsvindt en wanneer Actief (we zorgen ervoor dat iets gebeurt) Event wordt veroorzaakt of getriggerd door het proces zelf: je hebt er controle over → Het proces voert uit wat er gebeurt 36 START EVENT Er gebeurt iets waardoor het proces (of subproces) start !! Er vindt GEEN activiteit plaats binnen het startevent Soorten triggers: None start event Kan gebruikt worden bij elk type startevent MAAR indien mogelijk gebruik specifiek type Message start event = er is sprake van een boodschap/bestelling/… Voorbeeld: ‘wanneer de klant een order plaatst’ Timer start event = elk event dat tijdgerelateerd is Voorbeeld: ‘om 12u ’s nachts’ Multiple start event = er is een trigger op elke aparte conditie Voorbeeld: ‘als het stocklevel onder een bepaald niveau daalt, start het proces’ Conditional start event (start rule event) = er is sprake van een bepaalde conditie Voorbeeld: ‘als iets uit stok is, dan …’ !! Modelleer externe participanten die het event veroorzaken via een black box pool MAAR modelleer niet wat je niet (zeker) weet Voorbeeld: 37 EINDEVENT Er gebeurt iets waardoor het proces (of subproces) stopt !! Er vindt GEEN activiteit plaats binnen het eindevent Uitzondering: ‘iets’ wordt verstuurd (mail, error bericht, pakket, …) ‘Iets’ = iets eenvoudig, niet het resultaat van een complexe activiteit (Indien je twijfelt: splits op in activiteit + event) Soorten triggers: None end event Kan gebruikt worden bij elk type endevent MAAR indien mogelijk gebruik specifiek type (wordt gebruikt wanneer andere eindevents niet gebruikt kunnen worden) Message end event = gebruikt voor communicatie of levering → beëindigt het proces Voorbeeld: ‘zend pakket naar klant’ Terminate end event = als dit event wordt bereikt ergens in het proces dan stoppen ALLE paden Voorbeeld: ‘als je op restaurant gaat en niet zelf kookt, stopt het proces’ Error end event = er gaat iets mis in het proces Voorbeeld: ‘de professor vergeet de slides up te loaden voor de les begint’ Escalate end event = als het eigen proces stopt, start een ander proces (omdat je het uitbesteedt) Voorbeeld: ‘als de kredietaanvraag >5.000 is, moet de manager het bekijken’ Signal end event = er is sprake van een bepaalde conditie MAAR er is geen specifieke ontvanger Voorbeeld: ‘je plaatst een vacature online op verschillende websites’ !! Modelleer externe participanten die geïmpacteerd worden door een event in jouw proces (end-to- end): collaboration diagram Laat toe interacties met klanten/systemen te analyseren Interessant vanuit een business process management perspectief Voorbeeld: → Toon interactie met externe participanten via message flows tussen pools 38 INTERMEDIATE EVENT Er zijn interacties tijdens het proces Er gebeurt iets waardoor het proces (of subproces) gepauzeerd wordt → Gebeurtenissen die moeten/kunnen gebeuren tussen het begin en einde van het proces Soorten triggers: None intermediate event Kan gebruikt worden bij elk type endevent MAAR indien mogelijk gebruik specifiek type Message intermediate event Maak hier de keuze tussen throw (je hebt controle want je stuurt het) en receive (je hebt geen controle hierover) ◆ - " : Timer intermediate event = elke event dat tijdgerelateerd is → Dit is ALTIJD catching Error intermediate event = er gaat iets mis in het proces … CONCEPTUEEL VOORBEELD VAN TIMER EVENTS 39 CONCEPTUEEL VOORBEELD VAN INTERMEDIATE TIMER EVENT Je weet hier niet of de activiteiten tussen 13u en 18u effectief 5u in beslag te nemen → Oplossing = annotaties gebruiken (om te vermelden hoe lang iets precies duurt) OEFENING “Welk model verkies je?” Antwoord: het is afhankelijk → niet iedereen heeft zijn pizza graag 20 minuten gebakken 40 Task types Veel activiteiten worden niet meer door personen uitgevoerd → (deels) geautomatiseerd Het is belangrijk duidelijk te maken welke geautomatiseerd zijn & welke manueel worden gedaan Soorten taken: User task ▪ Mens voert uit a.d.h.v. systeem/applicatie → tussenvorm ▪ Voorbeeld: telefoonoperator die klantenbestanden update Manual task ▪ Zonder hulp van systeem/applicatie: er is geen automatisatie (manueel) ▪ Voorbeeld: arbeider die dozen verplaatst Service task ▪ Geautomatiseerde taak, uitgevoerd door het systeem ▪ Voorbeeld: elke nacht is er een geplande automatische update van de database Naamgeving: gebruik 2 woorden: werkwoord + zelfstandig naamwoord (vb. process order) Subproces Doel: zaken in een procesmodel wegabstraheren Symbool: 41 Waarom? Verduidelijken dat basisactiviteit is samengesteld uit meerdere activiteiten Vermindert complexiteit van procesmodel → eenvoudigere interpretatie, communicatie, … Details verbergen (maar subproces kan uitgeklapt worden indien nodig) - ◆ : " Gebruik: Startevent: enkel ‘none’ → slechts 1 Eindevent: kan van elk type zijn → meerdere zijn mogelijk Einde van het subproces is NOOIT het einde van het bovenliggende proces Einde van het subproces triggert de start van de volgende activiteit in bovenliggende proces Collapsed view vs. expanded view !! Geen flows van binnen het subproces naar buiten → Subproces is 1 geheel binnen het bovenliggende proces Er zijn geen flows van binnenin naar buiten, enkel vanaf de grens (zoals bij een gewone taak) CONCEPTUEEL VOORBEELD (I) CONCEPTUEEL VOORBEELD (II) 42 Ad hoc subproces Wanneer? Taken die uitgevoerd KUNNEN worden Volgorde is onbekend Bevat enkel ongeconnecteerde taken (expanded) Symbool (tilde naast plusje): CONCEPTUEEL VOORBEELD 43 4.2.1.4 TIEN ELEMENTAIRE REGELS BINNEN BPMN 10 regels: 1. Gebruik 1 startevent in een subproces Bij meerdere startgebeurtenissen: spaarzaam gebruik → gebruik meervoudige startgebeurtenis 2. Gebruik een eindevent om het einde van elk pad van een proces/subproces aan te geven Elk pad heeft een einde In een subproces kunnen meerdere eindevents worden gebruikt 3. Alle activiteiten, gateways en events moeten verbonden zijn via een ononderbroken keten van sequentiestromen die leiden van een startevent naar eindevent Taken worden gekoppeld met behulp van een sequentiestroom Gateways worden gebruikt om nieuwe paden te creëren (splitten + mergen) 4. Gebruik gedetailleerde events in plaats van algemene (non-type) 5. Sequentiestromen blijven altijd binnen een pool Uitzondering: message flows Communicatie is iets anders dan sequentiestromen 6. Gebruik message flows om pools te koppelen Externe participanten worden gemodelleerd via een pool 7. Geen message flows binnen een pool 8. Sequence flows moeten binnen een subproces blijven (= van child level naar parent level) 9. !! Het einde van het subproces betekent NOOIT het einde van het algemene proces 10. Messsage flows kunnen niet worden geconnecteerd met een gateway 44 EXAMENOGPAVE 2013-2014 “Wat loopt hier fout?” Oplossing: Sequence flows die tussen pools lopen → Moeten altijd binnen eenzelfde pool lopen (uitzondering: message flow) Mergen en splitten moet altijd verlopen via een gateway 1 pool = 1 proces (hier starten we met 3 pools) Het proces eindigt in een activiteit → Een proces moet altijd eindigen in een eindevent (in elke pool, dus in pool 1 is dit niet het geval) Geen persoonsnamen gebruiken en ipv “team member 2 & 3” de naam van het proces benoemen Lange zinnen Voor “Application” moet er een icoon gebruikt worden ipv volledig noteren 45 4.2.2 PROCESPERCPECTIEF IN MANAGEMENT “Wat is de rol/relevantie van processen binnen management?” Antwoord: processen lopen overheen departementen → Value stream: waar komt de waarde van het product/dienst tot stand? Verschillende departementen hebben verschillende perspectieven & objectieven → SILO structuur Elk departement heeft zijn eigen KPI’s die losstaan van die van andere departementen Voorbeeld: sales wil zoveel mogelijk verkopen, maar de productie kan niet volgen Alignering van departements-doelen met bedrijfsdoelen soms zoek ◆ : Oplossing: Business process management → procesperspectief 46 4.2.3 PROCESS MINING = het automatisch construeren van procesmodellen o.b.v. ‘event logs’ = het type data dat kan leiden tot een procesmodel Sporen van activiteiten geproduceerd door informatiesystemen (ERP’s, …) Log files Audit trails … MAAR event logs zijn vaak enorm groot Gevolg: informatiesystemen nodig die uit de data automatisch processen halen Voorbeeld: 4.2.3.1 THE NEXT STEP? “Wat is de volgende stap binnen process mining?” Antwoord: van descriptief naar prescriptief via machine-learning Klassieke mining process = descriptief (= beschrijft realiteit zoals het is) Nu richting prescriptief mining process (= wat moet je doen om iets te bereiken?) Gevolg: het proces wordt geoptimaliseerd CONCEPTUEEL VOORBEELD Case met Sepsis data: o.b.v. event logs van de spoed van een ziekenhuis voor patiënten met sepsis → Causaal machine-learning model: causaal verband inschatten van de behandeling Doel: procesmodellen optimaliseren & bepaalde acties prioritiseren 47 HOOFDSTUK 5: PROJECT MANAGEMENT Puur praktijkgericht: wordt besproken in WPO 8 5.1 WAT? Project management = beheersen van projecten zodanig dat alle projecten in een organisatie succesvol worden uitgevoerd = manier waarop projecten georganiseerd, voorbereid, gepland, uitgevoerd & afgerond worden Wat wordt allemaal ingebracht? Bepaal wanneer het project eindigt/begint Deel het project op in verschillende fasen/taken Bepaal de volgorde en duur van elke fase Welke werkkrachten/materiaal hebben we nodig? Kostenbepaling Time management: wanneer moeten we beginnen? Rapporteren … Verschil tussen een project en een proces: Project Proces Eenmalig Herhaaldelijk Sequentie van taken met aandacht voor tijd & Sequentie van gebeurtenissen en events, geeft resources GEEN aandacht voor tijd en resources Modeleren in MS Project/Project Libre Modeleren met BPMN - " ◆ : Voorbeeld: een bedrijf organiseert dit jaar een Voorbeeld: een evenementenbureau is thema “jaren 20” avond voor haar werknemers gespecialiseerd in het organiseren van feesten 5.2 HOE? Project Libre is de gratis versie Programma: MS Project of Project Libre van de betalende MS Project = Management-software packet Ondersteuning bij het maken van planningen Dynamisch: bij elke aanpassing wordt begindatum en/of einddatum aangepast Licentie nodig voor MS Project (betalend) Werkwijze: 48 Stappenplan in MS project 1. Implementeer elke taak Idendatie nodig: subtaken aanduiden 2. Specifieer de duurtijd voor elke taak Schrijf enkel de duurtijd van subtaken → Project berekent automatisch duurtijd over alle subprocessen 3. Specifieer het begin en einde van het project Mogelijkheid: enkel einddatum ingeven → MS project geeft uiteindelijk de maximale begindatum als sequentie weer " - : ◆ 4. Implementeer de volgorde van de taken & welke tegelijk worden uitgevoerd ‘Predecessors’: aanduiden welke taak voor een andere taak komt Geef parallelle taken dezelfde predecessors → hierdoor starten ze tegelijk Taak volgende op de parallel uitgevoerde taken mag pas beginnen nadat beide taken zijn uitgevoerd Mogelijk om aan te geven dat er tijd moet zitten tussen 2 taken 5. Voeg middelen (werknemers, materiaal, …) en kosten toe Stap 1: bepaal het type resource A) WORK: geld per dag/uur/week (vb. werknemers, iets huren, …) B) COST: kost voor een dienst (vb. reiskosten, catering, …) C) MATERIAL: materiaal gebruikt tijdens het project (vb. verf, computer, …) Stap 2: initialen aanduiden Stap 3: beschikbaarheid aanduiden (fulltime, halftime) Stap 4: kostprijs van elke resource (per uur/dag/week) 6. Link resources aan taken: voor welke taken heb je hoeveel resources nodig? Stap 1: vul aan welke/hoeveel resources je nodig hebt tijdens welke taak Stap 2: geef aan wanneer niet kan gewerkt worden aan het project Stap 3: geef aan wanneer specifieke resources niet beschikbaar zijn Opgelet! Gebruik nooit meer resources dan je werkelijk hebt ◆ - " : 7. Vat alles samen in een rapport 49 HOOFDSTUK 6: KLASSEN EN DATABASES DEEL 1: KLASSEN “Waarom is het inefficiënt om informatie op deze manier op te slaan?” Antwoord: dezelfde informatie wordt vaak meer dan 1 opgeslagen (vb. het land) Oplossing: databases slaan informatie 1 keer op → meer efficiëntie : " ◆ - → Er worden relaties tussen tabellen gecreëerd 6.1 INLEIDING Hiervoor gebruiken we geen Excel, wel database-software Querying o.b.v. relaties (= vragen stellen die je beantwoord wilt zien) 1x opslaan → redundancy voorkomen Vermijden van datafouten Slechts op 1 plaats data updaten Makkelijker databeheer 6.2 DATA MODELING 6.2.1 PRIMITIEVEN Basis van ieder database ontwerp = een beschrijving van de data die met een systeem bekeken en/of gewijzigd wordt → dit model kan gemaakt worden in de vorm van een UML klassendiagram Klassendiagram = statische beschrijving van een systeem & beschrijft de klasses, hun attributen & onderlinge relaties 3 primitieven: Klassen Attributen worden als volgt besproken Relaties Klasse = beschrijft een categorie objecten die een rol spelen in een applicatie → Een conceptuele groepering Voorbeeld: klant, product, bestelling Opgelet! De naam van de klasse ALTIJD in het enkelvoud ◆ - " : Object/instantie → Wordt gecreëerd van een klasse (behoren dus tot 1 klasse) Voorbeeld: Klasse = student → elke student apart = een instantie van die klasse Klasse = klant → klant nummer 12 ‘Sam Verboven BVBA’ !! EXAMEN: KEN GOED HET VERSCHIL TUSSEN EEN KLASSE EN OBJECT/INSTANTIE 50 Relatie/associatie = een relatie tussen de objecten van een klasse (weergegeven door een lijn) Voorbeeld: een klant plaatst een bestelling, in een bestelling worden producten besteld 6.2.2 MULTIPLICITEIT = geeft aan hoeveel objecten van de klasse geassocieerd KUNNEN zijn met 1 object van de klasse aan de andere kant van de associatie → dwingt systeem ertoe dat er bepaalde regels worden gevolgd Voorbeeld: 1 bestelling behoort aan 1 klant, maar 1 klant kan meerdere bestellingen plaatsen Geeft het minimum en maximum van het aantal objecten van de ene klasse die geassocieerd kunnen zijn met 1 object van de klasse aan de andere zijde van de relatie Een vast getal Een getal tussen minimum en maximum Minimum = 0 → ‘zero to many’ Minimum = niet 0 n = minimum → participatie U(( m = maximum → cardinaliteit ‘Many to many’-relatie CONCEPTUEEL VOORBEELD (I) Lees dit altijd op dezelfde manier: vertrek uit klasse waaruit je het bekijkt → “1 … kan, …” " - ◆ : 1 bestelling kan aan maximaal 1 klant toegewezen worden 1 klant kan 0 of meerdere bestellingen plaatsen → (“*” zetten aan het einde van de eerste relatie) 1 product kan 0 of meerdere bestellingen bevatten 1 bestelling kan 0 of meerdere producten bevatten In deze oefening is 0 dus het minimum 51 RECURSIEVE ASSOCIATIE/RELATIE CONCEPTUEEL VOORBEELD (II) = er wordt een relatie aangegaan tussen 2 objecten van dezelfde klasse Soms wordt bij relatie geschreven wat de relatie capteert (vb. works on, works in, is entrusted with’) Relatie tussen staff en department 1 staflid werkt in 1 departement (daarom staat er 1 links bij departement, betekent 1 staflid behoort tot slechts maar 1 departement) In 1 departement werken 1 of meerdere stafleden Relatie tussen project en department 1 project wordt uitgevoerd door 1 departement (niet meer of minder) 1 departement kan 0 of meerdere projecten uitvoeren Relatie tussen staff en project (many-to many relatie) Bij 1 project kunnen er 0 of meerdere stafleden zijn 1 staflid werkt mee aan 0 of meerdere projecten Recursieve associatie/relatie = wanneer 1 zelfde klassen een relatie kan hebben met zichzelf 1 supervisee kan 0 of 1 supervisor hebben (er zijn mensen zonder baas, vb. CEO) Supervisor superviseert 0 of meer supervisees 6.2.3 ATTRIBUUT/KARAKTERISTIEK = beschrijft een eigenschap die de objecten van de klasse hebben !! Belangrijk = eenduidige benaming “Wat is niet eenduidig in volgende oefening?” Antwoord: de prijs → valuta + exclusief/inclusief btw vermelden Attribuuttype = het soort data dat in een attribuut kan worden opgeslagen Hierdoor heb je een extra check of er geen datafouten zijn ◆ - " : → Word achter de attribuutnaam gezet, gescheiden door een dubbelpunt Voorbeeld: 52 Veelgebruikte attribuuttypen: Amount – geldbedrag in genoemde valuta Boolean – ja of neen/true or false Data – datum Float – getal dat cijfers achter de komma kan bevatten Integer – geheel getal String – tekst Waar nodig kunnen zelf geïntroduceerde attribuuttypen gebruikt worden (enkel als ze niet behoren tot deze types) ◆ : - " Opmerking: Als 2 klasses verbonden zijn met 1 op 1 multipliciteit, waarbij 1 van de 2 klasses geen andere associaties heeft, dan kan die klasse als attribuut van de andere klasse worden voorgesteld (altijd afvragen of ze samengevoegd kunnen worden aan 1 klasse) ‘Eigenschap’ (property) van een klasse verwijst naar attributen en associaties van die klasse 6.2.4 VERPLICHTE EN OPTIONELE ATTRIBUTEN Standaard: alle attributen zijn VERPLICHT om in te vullen om een valide object te hebben Bij optionele attributen maak je tussenhaakjes duidelijk dat het niet ingevuld moet worden → Optionele attributen hoeven niet in elk object van de klasse een waarde te hebben Voorbeeld: CONCEPTUEEL VOORBEELD (I) “Waar duurtijd van een specifieke stafmember of een specifiek project opslaan?” Antwoord: een ASSOCIATIEKLASSE toevoegen (zie volgend onderdeel) = beschrijft bijkomende data die bijgehouden wordt specifiek voor de associatie “Waarom voegen we de duurtijd niet toe bij staff?” Antwoord: 1 stafmember kan aan meerdere projecten werken → Hier moet een duurtijd worden gemeten op elk project “Waarom voegen we de duurtijd niet toe bij project?” Antwoord: er zijn verschillende stafmembers op 1 project met elk een verschillende duurtijd 53 Wanneer we de associatieklasse toevoegen ziet het er als volgt uit: Elke keer dat een werknemer begint aan een project, ontstaat die associatieklasse. Indien er bv een nieuwe werknemer is, is die associatieklasse niet nodig. 6.2.5 MEERVOUDIGE ASSOCIATIES Eerder bespraken we al een associatie binnen eenzelfde klasse = recursieve associatie MAAR er bestaan ook associaties tussen 2 klassen = meervoudige associatie → Elke associatie beschrijft een andere eigenschap Voorbeeld: 1 vervoer, 1 plaats → 1 plaats, meerdere vervoeren OEFENING 13 (ZIE OPGAVENBESTAND CANVAS) → EXAMENNIVEAU Een universiteit slaat gegevens op over haar studenten en de opleidingen die zij aanbiedt. Een opleiding heeft ten minste één verplicht vak, maar kan ook enkele keuzevakken hebben. Een student is ingeschreven voor een opleiding en geselecteerde keuzevakken. Een student krijgt een cijfer voor elk vak waarvoor hij is ingeschreven. Maak het conceptueel diagram (UML). 54 OEFENING 14 (ZIE OPGAVENBESTAND CANVAS) Een bibliotheek slaat gegevens op over haar leden en haar boeken. Er kunnen meerdere exemplaren van hetzelfde boek zijn. Een lid kan een boek lenen. Als er geen exemplaren beschikbaar zijn, kan een lid een boek reserveren. Het is belangrijk te weten in welke volgorde de leden de boeken hebben gereserveerd, zodat bij teruggave van een exemplaar het eerste lid in de rij kan worden verwittigd Moeilijkheid: van 1 boek zijn verschillende exemplaren met een verschillende barcode → Hierdoor moet er een extra klasse gemaakt worden ‘copy’ ◆ : ‘Borrowdate’ en ‘returndate’ kunnen ook worden opgenomen als attributen bij de klasse copy → 1 copy heeft 1 borrowdate en 1 returndate OEFENING 15 (ZIE OPGAVENBESTAND CANVAS) Een luchtvaartmaatschappij slaat informatie op over haar vliegtuigen en vluchten. De luchtvaartmaatschappij heeft vluchten op verschillende routes. Een route heeft een vertrek- en aankomstluchthaven. Een luchthaven heeft een naam en geografische coördinaten. Aan elke route is een specifiek type vliegtuig toegewezen. Elk vliegtuig behoort tot een vliegtuigtype. Aan elke vlucht is een vliegtuig toegewezen. 55 DEEL 2: DATABASES Gegevens worden eerst gemodelleerd met behulp van een klassendiagram (deel1), hierna wordt de relatie eenvoudig getransformeerd naar databasetabellen (deel2) Deel 1: klassen Conceptueel en logisch niveau: geen interesse in DBMS-specifieke implementatiedetails Statistische beschrijving van een systeem De klasses (entiteiten), hun attributen en hun onderlinge relaties weergeven Deel 2: databases Concreet niveau: een fysiek datamodel opstellen 6.1 INLEIDING Database: slaat data en relaties op Gegevens worden opgeslagen in tabellen, die rijen en kolommen hebben Elke rij in een tabel slaat gegevens op over een instantie 6.2 TRANSFORMATIE VAN KLASSE NAAR TABEL Hoe? De tabel de naam ‘klasse’ geven + voor elk attribuut van de klasse een kolom in de tabel maken MAAR hiervoor moet de klasse aan bepaalde vereisten voldoen (1 klasse = 1 tabel) Vereiste 1: first normal form (1NF) Kolommen zijn altijd getypeerd (~ attribuuttype) → 1 kolom komt overeen met 1 attribuut Elke rij heeft 1 waarde voor elke kolom van het overeenkomstige type Tabel bevat geen dubbele kolommen of rijen Volgorde van rijen of kolommen mag niet informatief zijn !! Vereiste 2: keys = combinatie van 1 of meer kolommen die wordt gebruikt om rijen in een relatie te identificeren Om 2 tabellen met elkaar te linken moet er in elke tabel een overeenkomstig iets zijn 2 soorten keys: A) Composite key: key die uit 2 of meer kolommen bestaat B) Candidate key: attribuut of combinatie kolommen die een unieke combinatie van waarden heeft in elke rij, met de bijkomende restrictie dat het verwijderen van een kolom dubbele rijen zou opleveren 56 Primary key = candidate key die wordt geselecteerd als de primaire manier om rijen in een relatie te identificeren Slechts 1 primaire key per relatie Primaire key kan ook een composite key zijn De ideale primary key = kort, numeriek en verandert nooit Surrogate key (niet heel belangrijk) = kunstmatige kolom die aan een relatie wordt toegevoegd om als primary key te dienen Door DBMS geleverd: wordt automatisch aangemaakt Kort, numeriek en verandert nooit (een ideale primary key) Heeft kunstmatige waarden die betekenisloos zijn voor gebruikers Normaal verborgen in formulieren en rapporten Als je klassen weergeeft als tabellen wijzigt er eigenlijk niet heel veel : ◆ - " Wat verandert wel? De kolommen worden altijd getypeerd Aangeven wat de primary key van elke tabel is (ookal moet je hiervoor een kolom toevoegen) OEFENING 16 (ZIE OPGAVENBESTAND CANVAS) Opgave: Een universiteit slaat gegevens op over haar studenten en de opleidingen die zij aanbiedt. Een opleiding heeft ten minste één verplicht vak, maar kan ook enkele keuzevakken hebben. Een student is ingeschreven voor een opleiding en geselecteerde keuzevakken. Een student krijgt een cijfer voor elk vak waarvoor hij is ingeschreven. → Zet het conceptueel diagram (oefening 13) om naar een fysiek model met power BI Oplossing: CourseID is de primary key van ‘course’ Waarom is ‘name’ niet de primary key? Antwoord: er bestaan vakken zoals ‘statistiek 1’, ‘statistiek 2’, … 57 6.3 ASSOCIATIES/RELATIES MAPPEN MET MULTIPLICITEIT 1 Relaties mappen in een database via foreign keys = de primary key van een relatie die in een andere relatie wordt geplaatst om een link tussen de relaties te vormen (foreign key kan 1 enkele kolom of een composite key zijn) Een associatie verbonden met een klasse multipliciteit 1 (of 0..1) wordt gemapt naar een relatie door een foreign key toe te voegen aan de tabel van de andere klasse ◆ - " : CONCEPTUEEL VOORBEELD (I) “Hoe vormen we dit model om van een conceptueel diagram naar een fysiek model met power BI?” Stap 1: kijk waar er multipliciteit 1 is (vb. bij department) Stap 2: kijken naar de andere kant van de associatie (vb. project of staff) Stap 3: voeg de primary key van department toe als foreign key aan de klasse project Opgelet! Doe dit ook als het dezelfde klasse betreft (vb. bij staff) ◆ - " : “Wat doen we met timetracking?” → wordt verder besproken onder puntje 6.4 OEFENING Opgave: maak de databasetabellen van de klassen en de associatie met multipliciteit 1, wanneer klanten producten van een bepaald type kunnen bestellen Oplossing: Primary key = customerID Bij ‘order’ wordt customer toegevoegd als foreign key → Hierdoor wordt de relatie tussen beiden gelegd Primary key = productCategory Bij ‘product’ wordt productCategory toegevoegd als foreign key → Hierdoor wordt de relatie tussen beiden gelegd 58 6.4 ASSOCIATIES MAPPEN Associatie met beide multipliciteiten verschillend van 1 + een many-to-many relatie Koppeltabel/tussentabel aanmaken Bevat beide foreign keys die verwijzen naar de klassen van de associatie Indien associatieklasse aanwezig: attributen worden toegevoegd aan koppeltabel CONCEPTUEEL VOORBEELD (I) “Hoe vormen we dit model om van een conceptueel diagram naar een fysiek model met power BI?” Koppeltabel/tussentabel ‘TimeTracking’ Verbind je met staff & project De 2 primary keys van staff en project zijn toegevoegd als foreign key bij TimeTracking Beide foreign keys tezamen zijn gebruikt als primary key → Het is niet omdat iets gebruikt wordt als primary key dat dit stopt met een foreign key te zijn ◆ - " : 59 OEFENING 16 (ZIE OPGAVENBESTAND CANVAS) Een bibliotheek slaat gegevens op over haar leden en haar boeken. Er kunnen meerdere exemplaren van hetzelfde boek zijn. Een lid kan een boek lenen. Als er geen exemplaren beschikbaar zijn, kan een lid een boek reserveren. Het is belangrijk te weten in welke volgorde de leden de boeken hebben gereserveerd, zodat bij teruggave van een exemplaar het eerste lid in de rij kan worden verwittigd → Zet het conceptueel diagram (oefening 14) om naar een fysiek model met power BI “Waarom kunnen we borrowdate en returndate niet Association class: bij copy of member steken?” eigenschappen van de Antwoord: eenzelfde member associatie bijhouden kan eenzelfde copy voor een tweede keer huren MAAR je wilt de borrowdate van de eerste keer wel nog bijhouden ◆ - " : Historische lijst: kan meerdere kopieën zelfde lid Oplossing: 5 tabellen (waarvan 2 koppeltabellen) De lijnen geven weer welke kolommen overeenkomen → Dit moet altijd een primary key en een foreign key zijn : ◆ " - “Welk detail is fout aan deze oplossing?” Antwoord: 1) Als memberID hetzelfde zou zijn als reservationID, dan zou je ze kunnen mergen 2) De relatie is verkeerd geïmplementeerd tussen member en reservation → Hier is er een relatie gemaakt tussen 2 primary keys 60 6.5 INSTANTIES (INSTANCES) Binnen een tabel wordt data opgeslagen in rijen: elke rij bevat de data voor 1 instantie De data komt overeen met het type van de kolommen !! Als een instantie geen waarde heeft voor een bepaalde kolom, is de waarde ‘NULL’ CONCEPTUEEL VOORBEELD Charles = De baas geeft leiding aan Elisa en Sandra Sandra geeft leiding aan Mike en Jerry “Hoe geven we dit weer in een tabel?” Antwoord: we hebben een tabel nodig waar een 0 (NULL) acceptabel is - ◆ : " → Charles heeft geen supervisor ID 61 OEFENING Een bibliotheek slaat gegevens op over haar leden en haar boeken. Er kunnen meerdere exemplaren van hetzelfde boek zijn. Een lid kan een boek lenen. Als er geen exemplaren beschikbaar zijn, kan een lid een boek reserveren. Het is belangrijk te weten in welke volgorde de leden de boeken hebben gereserveerd, zodat bij teruggave van een exemplaar het eerste lid in de rij kan worden verwittigd → Vorm het datamodel om naar tabellen en maak rijen zodat er: 3 leden zijn 4 exemplaren zijn van in totaal 3 boeken (= 1 boek heeft 2 exemplaren) ¾ exemplaren zijn geleend 3 reserveringen van een totaal van 2 boeken Oplossing:

Use Quizgecko on...
Browser
Browser