Wat hebben Bedrijfsvoering, Wiskunde en Beleidsinformatica met elkaar te maken ? Een verkenning… 6 maart 2008 Prof. Dr. Guido Dedene Katholieke Universiteit Leuven Faculty of Business and Economics FBE Decision Sciences & Information Management (DSIM) Naamsestraat 69 B-3000 Leuven E-mail [email protected] 1 INHOUD 1. Bedrijfsvoering met eenvoudige processen 2. Processen beschrijven met algebra 3. Processen doen werken en samenwerken 4. Vragen 2 Bedrijfsgebeurtenissen • Bedrijfsvoering betekent ondermeer het kunnen omgaan met wat relevant is voor een bedrijf – Wat dus binnen of rond een bedrijf gebeurt… • Wat gebeurt wordt beschreven met “gebeurtenissen” – In het Engels ook “event” genoemd… • Gebeurtenissen gebeuren in de werkelijkheid – Een foutenboodschap in een computer is geen bedrijfsgebeurtenis… • Gebeurtenissen gebeuren op een punt in de tijd – Of worden als dusdanig onderkend 3 Objecten in Bedrijven • In en rond bedrijven leven objecten, entiteiten, partijen die relevant zijn voor een onderneming – en dus op zijn minst een verband hebben met het bedrijf • Objecten zijn entiteiten die deelnemen aan of betrokken zijn bij bedrijfsgebeurtenissen – Het onderscheid is niet belangrijk voor deze les… • Bedrijfsobjecten leven in de werkelijkheid – Een knop op een scherm is geen bedrijfsobject • Objecten bestaan gedurende een tijdsinterval – Dat soms erg lang kan duren… 4 Gebeurtenissen en Objecten • Objecten nemen dus deel aan gebeurtenissen – Meerdere objecten kunnen deelnemen aan meerdere gebeurtenissen… • Objecten zonder relevante gebeurtenissen hebben geen zin… – Objecten zijn dus betrokken in minstens 1 gebeurtenis… • Gebeurtenissen zonder relevante objecten hebben ook geen zin… – Gebeurtenissen hebben minstens 1 object dat er bij betrokken is… • Een tabel geeft de betrokkenheid weer… 5 De Object/Event Tabel OET • Met een tabel wordt de beschrijving opgemaakt – met een rekenblad op de computer… 6 De Object/Event Tabel OET kan ook opgeschreven worden… α(CARTITEM)={AddITEM, RemoveITEM, ArchITEM} α(SHOPCART)={CrCART, PAYCART, DeliverCART, AddITEM, RemoveITEM, ArchITEM} α(PRODUCT)={CrPRODUCT, ChPRODUCT, EndPRODUCT, AddITEM, RemoveITEM, ArchITEM} α(CUSTOMER)={CrCUSTOMER, ChCUSTOMER, EndCUSTOMER, CrCART, PAYCART, DeliverCART, AddITEM, RemoveITEM, ArchITEM} 7 Objecten en verbanden (Relaties) • Objecten kunnen relaties/verbanden hebben met elkaar CAR PERSON 8 Objecten en verbanden (Relaties) • Verbanden hebben alleen zin als objecten SAMEN iets ondernemen – en dus samen een verband hebben in de tijd…niet alleen door 1 (vluchtige) gebeurtenis… • Verbanden tussen objecten ontstaan dus door het gemeenschappelijk delen van minstens twee gebeurtenissen – Een “relatie” is een stukje “gemeenschappelijk leven” • Objecten kunnen dus gezien worden als verzamelingen van gebeurtenissen waaraan ze deelnemen – en de verbanden zijn de “doorsnedes” (overlappingen) 9 Grafische voorstelling van Relaties • De OET toont de relaties… CUSTOMER 1 0..* SHOPCART PRODUCT 1 1 0..* 0..* CARTITEM 10 Grafische voorstelling van Relaties • De OET toont de relaties… – Door op zoek te gaan naar niet geregelde overlappingen ? 11 Grafische voorstelling van Relaties RESERVATION 0..* 0..* 1 1 MEMBER BOOK 1 1 0..* 0..* LOAN 12 Gebeurtenissen gebeuren niet zomaar, lukraak…, maar in processen… • Vaak houden gebeurtenissen verband met elkaar – het verband wordt eigenlijk gelegd in de objecten • Dus moet eerst onderzocht worden hoe gebeurtenissen verbonden zijn binnen een object – dus binnen een kolom in de OET • Gebeurtenissen hebben dus structuurverbanden – binnen de levensloop van een object • Maar ook over de objecten heen… – Dat komt aan bod in het derde deel… 13 Voorbeelden van processen in Objecten CrCART PayCART DeliverCART AddITEM, RemoveITEM ArchITEM Wat gebeurt er in de levensloop van een shopping Cart ? • Items kunnen alleen toegevoegd worden nadat een CART is gemaakt en nog niet is betaald ! • Betaling moet VOOR de levering • De levering is het einde van een CART 14 INHOUD 1. Bedrijfsvoering met eenvoudige processen 2. Processen beschrijven met algebra 3. Processen doen werken en samenwerken 4. Vragen 15 Verbanden ontstaan door deelverzamelingen… α(CARTITEM)={AddITEM, RemoveITEM, ArchITEM} α(SHOPCART)={CrCART, PAYCART, DeliverCART, AddITEM, RemoveITEM, ArchITEM} α(PRODUCT)={CrPRODUCT, ChPRODUCT, EndPRODUCT, AddITEM, RemoveITEM, ArchITEM} α(CUSTOMER)={CrCUSTOMER, ChCUSTOMER, EndCUSTOMER, CrCART, PAYCART, DeliverCART, AddITEM, RemoveITEM, ArchITEM} α(CARTITEM) α(SHOPCART) , α(CARTITEM) α(PRODUCT) , α(SHOPCART) α(CUSTOMER), α(CARTITEM) = α(SHOPCART) ∩ α(PRODUCT) 16 Er zijn drie structuurverbanden tussen gebeurtenissen • Een opeenvolging van gebeurtenissen is een sequentie – Een sequentie van een is dus geen… • Een keuze tussen gebeurtenissen is een selectie – die exhaustief en exclusief moet zijn • Een herhaling van gebeurtenissen is een iteratie – waarin een gebeurtenis nul, een of meerdere keren herhaald kan worden • De structuurverbanden kunnen vermengd worden – wat gestructureerde processen oplevert… 17 Bijvoorbeeld… Sequentie CrCART PayCART DeliverCART AddITEM, RemoveITEM, ArchITEM Iteratie Selectie 18 Deze structuurverbanden voldoen aan bepaalde basiseigenschappen (axioma’s)… • Dit zijn de basiseigenschappen voor een sequentie (x): • ax(bxc) = (axb)xc = axbxc – De sequentie is associatief… • ax1 = 1xa = a – Er is een neutraal element: 1 = “doe niets” 19 Deze structuurverbanden voldoen aan bepaalde basiseigenschappen (axioma’s)… • Dit zijn de basiseigenschappen voor een selectie (+): • a+(b+c) = (a+b)+c = a+b+c – De selectie is associatief… • a+b = b+a – De selectie is commutatief… • a+a = a – De selectie is idempotent… 20 Deze structuurverbanden voldoen aan bepaalde basiseigenschappen (axioma’s)… • ax(b+c) = axb + axc – Linkse distributiviteit van de sequentie tov. de selectie… • (a+b)xc = axc + bxc – Rechtse distributiviteit van de sequentie tov. de selectie… • Een iteratie is eigenlijk een soort “veelterm”: – a* = 1 + a + axa + axaxa + … 21 Processen kunnen nu opgeschreven worden als formules… CrCART PayCART DeliverCART AddITEM, RemoveITEM, ArchITEM SHOPCART = CrCARTx(AddITEM+ RemoveITEM + ArchITEM)*xPayCARTxDeliverCART 22 Formules kunnen “deler” zijn van elkaar… • Een formule kan “geprojecteerd” worden op een verzameling gebeurtenissen – door de niet-betrokken gebeurtenissen te vervangen door het neutraal element “1” • Voorbeeld: – P = ax(b+c)*xdxc – Beschouw een deelverzameling A = {a,b,c} – De projectie P|A = ax(b+c)*x1xc = ax(b+c)*xc • De definitie van “deling” is als volgt: – P ≤ Q als en slechts als P + Q|α(P) = Q|α(P) 23 Een voorbeeld… Q = ax(bxe + cxd)x(cxe + bxd) P = axbxc α(P) = {a,b,c} Q|α(P) = ax(bx1 + cx1)x(cx1 + bx1) = ax(b + c)x(c + b) = axbxc + axbxb + axcxb + axcxc P + Q|α(P) = axbxc + axbxc + axbxb + axcxb + axcxc = axbxc + axbxb + axcxb + axcxc = Q|α(P) Wat betekent dit nu ? 24 Delers zijn de bouwstenen van verbanden CARTITEM ≤ SHOPCART CARTITEM ≤ PRODUCT SHOPCART ≤ CUSTOMER CARTITEM = AddITEMx(RemoveITEM+ArchITEM) SHOPCART = CrCARTx(AddITEM+RemoveITEM+ArchITEM)*xPayITEMxDeliverITEM CUSTOMER = CrCUSTOMERx(ChCUSTOMER+CrCART+AddITEM+ArchITEM+ RemoveITEM+PayITEM+DeliverITEM)*xEndCUSTOMER PRODUCT = CrPRODUCTx(ChCUSTOMER+AddITEM+RemoveITEM+ ArchITEM)*xEndPRODUCT 25 INHOUD 1. Bedrijfsvoering met eenvoudige processen 2. Processen beschrijven met algebra 3. Processen doen werken en samenwerken 4. Vragen 26 Processen vertalen zich (bijvoorbeeld) naar Webpagina’s in een WebPortal CrCART PayCART DeliverCART AddITEM, RemoveITEM, ArchITEM RemoveITEM CrCART AddITEM ArchITEM PayCART DeliverCART 27 Processen kunnen alleen samenwerken als ze elkaar “begrijpen” • Bedrijven werken in toenemende mate samen via informaticatoepassingen – die de processen in een bedrijf automatiseren • Dan moeten de samenwerkende processen op zijn minst praten over gemeenschappelijke gebeurtenissen – wat samenwerkingsverbanden mogelijk maakt… • Maar ook elkaar niet tegenspreken bij die gemeenschappelijke gebeurtenissen – en dus gemeenschappelijke delers hebben… 28 Een voorbeeld van een samenwerkingsconflict CrCART PayCART DeliverCART Bestellingsproces aan de zijde van de leverancier… CrOrder RecieveORDER PayORDER Bestellingsproces aan de zijde van de “klant”… 29 Een realistisch voorbeeld: AMAZON 30 Waar situeert zich BELEIDSINFORMATICA ? 32 Oefening: De Donation Bank Gevallenstudie De Donation Bank is een non-profit organisatie die giften verzamelt van bedrijven en personen. Giften moeten op jaarbasis gecertifieerd worden om ze aftrekbaar te maken van de belastingen. De Donation Bank zoekt en administreert geschikte projecten. Giften kunnen geheel of gedeeltelijk worden toegewezen aan projecten. Alleen mag het totaal bedrag van de giften het budget van een project niet overschrijden. Dat projectbudget wordt vastgelegd bij de definitie van een project, maar kan nadien nog bijgestuurd worden. Wanneer een gift, of een gedeelte daarvan gedoneerd wordt aan een project moet er ook een bevestiging gestuurd worden naar de schenker, bij voorkeur binnen de twee maanden na de gift. Het moet mogelijk zijn om personen, giften en projecten te archiveren wanneer dat nodig mocht zijn. Giften mogen slechts één maal gecertifiëerd worden. De donaties die op het moment van de certifiëring bekend zijn mogen vermeld worden op het certificatiedocument. De bevestiging van donaties is echter éénmalig. 33 www.cfp.be 34 Oefeningen • Bewijs de volgende gelijkheden: – (axb)*xa = ax(bxa)* – (axa)*x(1+a) = a* • Zij gegeven een verzameling gebeurtenissen {a,b,c}. Bewijs dat voor ALLE processen P waarvoor α(P) {a,b,c} , geldt: P ≤ (a + b + c)* 35