SlideShare a Scribd company logo
1 of 48
DEMO® Fact Model
Opstellen DEMO® Fact Model
Introductie op het opstellen van een Fact Model
DEMO Platform bijeenkomst 18 mei 2015
Auteur: Jacob Vos @ImproNotion
DEMO® Fact Model
Relevantie van Fact Model
Wat is het resultaat van
de transactie? Wat voor
feiten mag ‘completer’
in het leven roepen?
Wat voor feiten
zitten er in de
feitenbank?
Wat voor
feiten
raadpleegt
‘completer’?
DEMO® Fact Model
Casus: Marktplaats
Opstellen Fact Model
Relatie met
Construction Model
Praktisch
communiceren
Business rules
Software
requirements
DEMO® Fact Model
Gestructureerd verwoorden van feiten
F1: Advertentie 925393160 staat in rubriek ‘Fietsen | Vouwfietsen’
F2: Advertentie 925393160 heeft als titel 'Riese und Muller Birdy vouwfiets 9 versn. als
Brompton‘
F3: Het aangebodene in advertentie 925393160 is in conditie 'Zo goed als nieuw'
F4: De manier van leveren van het aangebodene in advertentie 925393160 is 'Ophalen‘
F5: Het aangebodene in advertentie 925393160 heeft als vraagprijs € 700,00
F6: Advertentie 925393160 is geplaatst op 03-05-2015 15:17
F7: Advertentie 925393160 krijgt aandacht met opvalmogelijkheid 'Dagtopper'
F8: Advertentie 925393160 is geplaatst door Coen
F9: Coen woont in Voorburg, ZH
DEMO® Fact Model
Modelleren F1: Advertentie in rubriek (1)
Identificeert een object
van het type ‘rubriek’
Invulplaats voor referentie
naar een object van het type
‘rubriek’
Identificeert een object
van het type ‘advertentie’
Advertentie [advertentie] staat in rubriek [rubriek]
Invulplaats voor referentie
naar een object van het type
‘advertentie’
Advertentie 925393160 staat in rubriek ‘Fietsen | Vouwfietsen’
Feit
Feittype
DEMO® Fact Model
Modelleren F1: Advertentie in rubriek (2)
925393160 Fietsen | Vouwfietsen
916831416 Fietsen | Vouwfietsen
925991674 Fietsen | Jongens
925991663 Fietsen | Kinderfietsjes
Lezen: “Advertentie” + ‘925393160’ + “staat in” + “rubriek” + ‘Fietsen | Vouwfietsen’
Voorbeeld-
populaties
‘Reference law’Objecttype Feittype
925393160
916831416
925991674
925991663
Fietsen | Vouwfietsen
Fietsen | Jongens
Fietsen | Kinderfietsjes
ADVERTENTIE RUBRIEK
[advertentie] staat
in [rubriek]
DEMO® Fact Model
• Identificatie advertentie: (uniek) advertentienummer
• Identificatie rubriek: (unieke) naam
• In Object Role Modeling (ORM):
• Ontologisch gezien is de manier van identificeren
niet interessant; daarom in DEMO:
Advertentie
(.Nummer)
Rubriek
(.Naam)
staat in
Refereren naar objecten
ADVERTENTIE RUBRIEK
[advertentie] staat
in [rubriek]
DEMO® Fact Model
Benoemen van objecttypen
Er bestaat een advertentie [advertentie]
Drukt het bestaan
uit van een object
Identificeert een object
van het type ‘advertentie’
Invulplaats voor referentie
naar een object van het
type ‘advertentie’
Er bestaat een advertentie 925393160
Feit
Feittype
DEMO® Fact Model
Modelleren F2: Titel van advertentie
Advertentie 925393160 heeft als titel
'Riese und Muller Birdy vouwfiets 9 versn. als Brompton‘
Uitgangspunt:
Tekstvelden worden niet in het Fact Model gemodelleerd.
“Teksten en namen zijn aanduidingen van concepten. In
ontologie gaat het om wat iets is, niet hoe je er naar
verwijst.“
DEMO® Fact Model
Modelleren F3: Conditie van aangebodene
Het aangebodene in advertentie 925393160
is in conditie 'Zo goed als nieuw'
Het aangebodene in advertentie [advertentie]
is in conditie [conditie]
ADVERTENTIE RUBRIEK
[advertentie] staat
in [rubriek]
CONDITIE
het aangebodene in
[advertentie] is in [conditie]
Feit
Feittype
Object
Fact
Diagram
DEMO® Fact Model
Modelleren F4: Manier van leveren (1)
De manier van leveren van het aangebodene in advertentie
925393160 is 'Ophalen'
‘Manier van
leveren’ is benoemd
als ‘Leveringswijze’
Voor het aangebodene in advertentie [advertentie]
geldt leveringswijze [leveringswijze]
Feit
Feittype
DEMO® Fact Model
Modelleren F4: Manier van leveren (2)
ADVERTENTIE RUBRIEK
[advertentie] staat
in [rubriek]
CONDITIE
het aangebodene in
[advertentie] is in [conditie]
LEVERINGSWIJZE
voor het aangebodene in
[advertentie] geldt
[leveringswijze]
Object
Fact
Diagram
DEMO® Fact Model
Modelleren F5: Vraagprijs (1)
Het aangebodene in advertentie 925393160
heeft als vraagprijs € 700,00
Het aangebodene in advertentie [advertentie] heeft
als vraagprijs [geldbedrag]
Zie volgende
slide
Feit
Feittype
DEMO® Fact Model
Modelleren F5: Vraagprijs (2)
DEMO hanteert
‘scales’ voor bijv.
tijd, gewicht, geld,
temperatuur.
Zie DEMO-3
specificatie, v3.7.
Het geldbedrag wordt uitgedrukt in
euro’s; het scale sort = Ratio (‘R’).
ADVERTENTIE RUBRIEK
[advertentie] staat
in [rubriek]
CONDITIE
het aangebodene in
[advertentie] is in [conditie]
LEVERINGSWIJZE
voor het aangebodene in
[advertentie] geldt
[leveringswijze]
R
het aangebodene in
[advertentie] heeft als
vraagprijs [geldbedrag]
Geldbedrag: euro
Object
Fact
Diagram
DEMO® Fact Model
Modelleren F6: Datum plaatsing
Advertentie 925393160 is geplaatst op 03-05-2015 15:17
Uitgangspunt:
Momenten waarop resultaten tot stand komen, modelleer je
niet expliciet. Ze zijn in DEMO impliciet aanwezig. Namelijk
als coördinatiefeiten (‘…. is accepted’).
Ik ga ervan uit dat dit de datum is waarop de advertentie
is gepubliceerd. Dit is het moment waarop het resultaat
van de transactie tot stand is gekomen.
DEMO® Fact Model
Modelleren F7: Opvalmogelijkheid
Advertentie 925393160 krijgt
aandacht met
opvalmogelijkheid 'Dagtopper'
ADVERTENTIE RUBRIEK
[advertentie] staat
in [rubriek]
CONDITIE
het aangebodene in
[advertentie] is in
[conditie]
LEVERINGSWIJZE
voor het aangebodene in
[advertentie] geldt
[leveringswijze]
R
het aangebodene in
[advertentie] heeft als
vraagprijs [geldbedrag]
Geldbedrag: euro
OPVALMOGELIJKHEID
[advertentie] krijgt
aandacht met
[opvalmogelijkheid]
DEMO® Fact Model
Modelleren F8: Adverteerder (1)
Advertentie 925393160 is geplaatst door Coen
Advertentie [advertentie] is geplaatst door [persoon]
Bewust niet: ‘adverteerder’. Reden: we
weten dat er ook bieders zijn, en dat dit
dezelfde personen kunnen zijn als
adverteerders. ‘Adverteerder’ is dus een rol
die een persoon speelt, en die persoon kan
ook de rol ‘bieder’ spelen.
Feit
Feittype
DEMO® Fact Model
ADVERTENTIE RUBRIEK
[advertentie] staat
in [rubriek]
CONDITIE
het aangebodene in
[advertentie] is in
[conditie]
LEVERINGSWIJZE
voor het aangebodene in
[advertentie] geldt
[leveringswijze]
R
het aangebodene in
[advertentie] heeft als
vraagprijs [geldbedrag]
Geldbedrag: euro
OPVALMOGELIJKHEID
[advertentie] krijgt aandacht
met [opvalmogelijkheid]
PERSOON
[advertentie] is geplaatst
door [persoon]
ADVERTEERDER
Modelleren F8: Adverteerder (2)
‘ADVERTEERDER’ is een
afgeleid objecttype: een
persoon is een
adverteerder indien er
een advertentie is
geplaatst door die
persoon
DEMO® Fact Model
Modelleren F9: Woonplaats
Coen woont in Voorburg, ZH
Samengesteld feit!
[persoon] woont in [plaats]
Feit
Feittype
Coen woont in Voorburg Voorburg behoort tot Zuid-Holland
[plaats] behoort tot [provincie]
DEMO® Fact Model
Modelleren F9: Woonplaats
ADVERTENTIE RUBRIEK
[advertentie] staat
in [rubriek]
CONDITIE
het aangebodene in
[advertentie] is in
[conditie]
LEVERINGSWIJZE
voor het aangebodene in
[advertentie] geldt
[leveringswijze]
R
het aangebodene in
[advertentie] heeft als
vraagprijs [geldbedrag]
Geldbedrag: euro
OPVALMOGELIJKHEID
[advertentie] krijgt aandacht
met [opvalmogelijkheid]
PERSOON
[advertentie] is geplaatst
door [persoon]
ADVERTEERDER
PLAATS
PROVINCIE
[persoon] woont
in [plaats]
[plaats] behoort tot [provincie]
DEMO® Fact Model
Uniciteit aangeven (1)
925393160 Fietsen | Vouwfietsen
916831416 Fietsen | Vouwfietsen
925991674 Fietsen | Jongens
925991663 Fietsen | Kinderfietsjes
ADVERTENTIE RUBRIEK
[advertentie] staat
in [rubriek]
Het streepje geeft aan dat
‘advertentie’ maar één keer
mag voorkomen in de
populatie ‘[advertentie] staat
in [rubriek]’.
Dus: een advertentie staat in
maximaal één rubriek.
Het ontbreken van een streepje
geeft aan dat ‘rubriek’ een
onbeperkt aantal keren mag
voorkomen in de populatie
‘[advertentie] staat in [rubriek]’.
Dus: er kan een oneindig aantal
advertenties in een rubriek staan.
DEMO® Fact Model
Uniciteit aangeven (2)
ADVERTENTIEOPVALMOGELIJKHEID
[advertentie] krijgt
aandacht met
[opvalmogelijkheid]
Het streepje geeft aan dat iedere combinatie van
‘opvalmogelijkheid’ en ‘advertentie’ maar één keer
mag voorkomen in de populatie.
Dus: een advertentie kan aandacht krijgen met
meerdere opvalmogelijkheden, en een
opvalmogelijkheid kan gebruikt worden bij meerdere
advertenties.
DEMO® Fact Model
Uniciteit aangeven (3)
ADVERTENTIE RUBRIEK
[advertentie] staat
in [rubriek]
CONDITIE
het aangebodene in
[advertentie] is in
[conditie]
LEVERINGSWIJZE
voor het aangebodene in
[advertentie] geldt
[leveringswijze]
R
het aangebodene in
[advertentie] heeft als
vraagprijs [geldbedrag]
Geldbedrag: euro
OPVALMOGELIJKHEID
[advertentie] krijgt aandacht
met [opvalmogelijkheid]
PERSOON
[advertentie] is geplaatst
door [persoon]
ADVERTEERDER
PLAATS
PROVINCIE
[persoon] woont
in [plaats]
[plaats] behoort tot [provincie]
DEMO® Fact Model
Afhankelijkheid aangeven (1)
ADVERTENTIE RUBRIEK
[advertentie] staat
in [rubriek]
925393160 Fietsen | Vouwfietsen
916831416 Fietsen | Vouwfietsen
925991674 Fietsen | Jongens
925991663 Fietsen | Kinderfietsjes
De stip geeft aan dat iedere
advertentie voor dient te komen
in de populatie ‘[advertentie]
staat in [rubriek]’.
Dus: iedere advertentie staat in
een rubriek.
Het ontbreken van een stip geeft aan
dat een rubriek niet voor hoeft te
komen in de populatie ‘[advertentie]
staat in [rubriek]’.
Dus: een rubriek kan bestaan zonder
dat er een advertentie in staat.
DEMO® Fact Model
Afhankelijkheid aangeven (2)
ADVERTENTIE RUBRIEK
[advertentie] staat
in [rubriek]
CONDITIE
het aangebodene in
[advertentie] is in
[conditie]
LEVERINGSWIJZE
voor het aangebodene in
[advertentie] geldt
[leveringswijze]
R
het aangebodene in
[advertentie] heeft als
vraagprijs [geldbedrag]
Geldbedrag: euro
OPVALMOGELIJKHEID
[advertentie] krijgt aandacht
met [opvalmogelijkheid]
PERSOON
[advertentie] is geplaatst
door [persoon]
ADVERTEERDER
PLAATS
PROVINCIE
[persoon] woont
in [plaats]
[plaats] behoort tot [provincie]
DEMO® Fact Model
Fact Model m.b.t. het bieden
LEVERING
ADVERTENTIEPERSOON
[advertentie] is geplaatst
door [persoon]
ADVERTEERDER
R
[levering] heeft als biedprijs
[geldbedrag]
[levering] is gevraagd
door [persoon]
GEÏNTERESSERDE
[levering] betreft
aangebodene in
[advertentie]
Geldbedrag: euro
Een bod representeert een ingediend verzoek
tot levering. Dus een coördinatiefeit. Deze
modelleer je niet in het Fact Model. Maar wel
het object dat ontstaat wanneer het verzoek
wordt ingewilligd.
DEMO® Fact Model
• Voor ieder gemodelleerd objecttype en feittype
geldt:
– objecten / feiten ervan ontstaan binnen ‘de beschouwde
wereld’, nl. bij executie van een transactie; die transactie
dient dus gemodelleerd te zijn
– objecten / feiten ervan ontstaan buiten de ‘beschouwde
wereld’; dus: een externe feitenbank moet ervoor
gemodelleerd zijn
• We kijken hiervoor naar het Construction Model bij
de Marktplaats casus
Relatie met Construction Model (1)
DEMO® Fact Model
Relatie met Construction Model (2)
Transaction Product Kind
O-T01 O-R01 advertentiebeheer is uitgevoerd voor [periode]
O-T02 O-R02 [advertentie] is gepubliceerd
O-T04 O-R04 behoeftevervulling is uitgevoerd voor [periode]
O-T05 O-R05 [levering] is uitgevoerd
Transaction Product Table (TPT):
DEMO® Fact Model
Relatie met Construction Model (3)
ADVERTENTIE RUBRIEK
[advertentie] staat
in [rubriek]
CONDITIE
het aangebodene in
[advertentie] is in
[conditie]
LEVERINGSWIJZE
voor het aangebodene in
[advertentie] geldt
[leveringswijze]
R
het aangebodene in
[advertentie] heeft als
vraagprijs [geldbedrag]
Geldbedrag: euro
OPVALMOGELIJKHEID
[advertentie] krijgt aandacht
met [opvalmogelijkheid]
PERSOON
[advertentie] is geplaatst
door [persoon]
ADVERTEERDER
PLAATS
PROVINCIE
[persoon] woont
in [plaats]
[plaats] behoort tot [provincie]
LEVERING R
[levering] heeft als biedprijs
[geldbedrag]
[levering] is gevraagd
door [persoon]
GEÏNTERESSEERDE
[levering] betreft
aangebodene in
[advertentie]
Geldbedrag: euro
[advertentie] is gepubliceerd
O-R01
[levering] is uitgevoerd
O-R05
DEMO® Fact Model
• In het vorige schema zijn de feit-/objecttypen gekleurd
waarvan feiten tot stand komen bij de uitvoering van
gemodelleerde transactietypen (zie arcering in TPT)
• Voor overige feit-/objecttypen worden de feiten beschouwd
als ‘bestaand’, ofwel extern (en daarom grijs gekleurd)
• Mogelijke externe feitenbanken:
– Personen
– Plaatsen (incl. provincies)
– Opvalmogelijkheden
– Stamgegevens (rubrieken, condities, leveringswijzen)
Relatie met Construction Model (4)
DEMO® Fact Model
• ‘Rolboxen’, streepjes, stippen: wordt lastig gevonden
• Mogelijkheden (zie volgende slides):
– Voorbeeldpopulaties
– Uniciteit en afhankelijkheid: tekstueel uitdrukken
– SBVR structuurdiagram
– Glossary met begrippen
• Tijdens modelleren, als deliverable
Praktisch communiceren
DEMO® Fact Model
Voorbeeldpopulaties
ADVERTENTIE RUBRIEK
[advertentie] staat
in [rubriek]
925393160 Fietsen | Vouwfietsen
916831416 Fietsen | Vouwfietsen
925991674 Fietsen | Jongens
925991663 Fietsen | Kinderfietsjes
925991663 Fietsen | Jongens
925393160
916831416
925991674
925991663
924448135
Fietsen | Vouwfietsen
Fietsen | Jongens
Fietsen | Kinderfietsjes
Fietsen | Tandems
Rubriek
ontbreekt
Advertentie in
twee rubrieken
Rubriek zonder
advertenties (= OK)
DEMO® Fact Model
1) Iedere Advertentie staat in precies één Rubriek
2) Het aangebodene in iedere Advertentie is in precies
één Conditie
3) Iedere combinatie van Advertentie en
Opvalmogelijkheid komt slechts één keer voor
4) Iedere Advertentie is geplaatst door precies één
Persoon
5) Iedere Levering betreft precies één Advertentie
6) Iedere Levering is gevraagd door precies één
Persoon
Beperkingsregels tekstueel uitdrukken
DEMO® Fact Model
SBVR structuurdiagram
Advertentie
Levering
Rubriek
Conditie
Leveringswijze
Opval-
mogelijkheid
Provincie
Plaats
Persoon
geplaatst
door
t
geplaatst
doort
betreft
q
staat in u
woont in
q
behoort
tot
krijgt aandacht met
t
adverteerder
bieder
is gepubliceerd
Geldbedrag
vraagprijs
geldt voort
geldt voor
aangebodene in
t
t
Geldbedrag
biedprijs
is uitgevoerd
DEMO® Fact Model
Glossary
Term Definitie
adverteerder Persoon die een advertentie heeft geplaatst.
advertentie Bekendmaking van een persoon dat h/zij iets ter overname
aanbiedt.
advertentie is
gepubliceerd
Een advertentie is op een marktplaats zichtbaar gemaakt
zodat er biedingen op het erin aangebodene uitgebracht
kunnen worden.
bieder Persoon die een bod heeft uitgebracht.
bod Verzoek aan een adverteerder om voor een bepaald
geldbedrag het in een advertentie aangebodene te leveren.
aanvaarden bod Het beloven door een adverteerder aan een bieder om te
leveren volgens een bepaald bod van de bieder.
levering is
uitgevoerd
Het aangebodene in een advertentie is in handen gesteld
van een bieder.
DEMO® Fact Model
• Geldige toestanden en toestandsovergangen
• Regels w.b. uniciteit, afhankelijkheid = business rules
(m.b.t. toestanden)
• Handhaving business rules is verantwoordelijkheid
van actorrol die feit creëert
– Bijv. ‘CA02 – Advertentie publiceerder’ checkt of in het
verzoek om een advertentie te publiceren, de rubriek is
opgegeven (= actieregel)
Business rules (1)
ADVERTENTIE RUBRIEK
[advertentie] staat
in [rubriek]
[advertentie] is gepubliceerd
O-R01
DEMO® Fact Model
• Nauwkeurige definitie: volg naamgeving objecttypen
en feittypen uit feitenmodel
Business rules (2)
Informeel:
Iemand mag niet op z’n eigen advertentie bieden
Formeel:
Voor iedere Persoon en Advertentie geldt hoogstens één van het
volgende:
die Advertentie is geplaatst door die Persoon;
een Levering is gevraagd door die Persoon en die Levering betreft
het aangebodene in die Advertentie
DEMO® Fact Model
• Scope: gerelateerd aan Fact Model (‘data
requirements’)
• Uitwerken Fact Model + business rules
• Conceptueel gegevensmodel = requirements t.b.v. te
ontwerpen logisch datamodel (bijv. relationeel
model)
• Rules deels in datamodel, deels applicatielogica
• In gecontroleerde natuurlijke taal, voor gebruiker
begrijpelijk
• Met behulp van Object Role Modeling (ORM)
Software requirements (1)
DEMO® Fact Model
• Objecttypen en feittypen uit coördinatiewereld
– Bijv. objecttype ‘Bod’
• Momenten waarop coördinatiefeiten tot stand komen:
welke expliciet?
– Bijv. datum+tijd waarop bod is geplaatst, datum+tijd waarop
advertentie is gepubliceerd
• Referentiewijze per objecttype
– Bijv. advertentienummer, e-mailadres voor persoon, plaatsnaam
• Tekstvelden, ‘raw data’ velden
– Bijv. titel + beschrijving advertentie, advertentiefoto’s
Software requirements (2)
DEMO® Fact Model
Software requirements (3)
1
2
3
4
5
DEMO® Fact Model
• Rules in ORM zowel grafisch als tekstueel
• Complexe rules alleen tekstueel
– Bijv. (informeel!): ieder bod bij een advertentie dient hoger
te zijn dan enig eerder geplaatst bod bij die advertentie
– Bijv. (informeel!): bod bij advertentie mag alleen lager zijn
dan vraagprijs indien de adverteerder dat heeft toegestaan
voor die advertentie
• Diverse soorten rules ondersteund in ORM
– Bijv. subset constraint, frequency constraint, ring
constraint
Software requirements (4)
DEMO® Fact Model
Bijlagen
DEMO® Fact Model
Terry Halpin (2015). Object-Role Modeling
Fundamentals. A practical Guide to Data
Modeling with ORM.
Vers van de pers. Laagdrempelige introductie van ORM.
Inclusief uitleg over modelleren met behulp van NORMA
(zie slide over tools).
Literatuur over Fact Based Modeling (1)
Terry Halpin & Tony Morgan (2008). Information
Modeling and Relational Databases. Second
Edition.
Bijna 900 pagina’s diepgang over vooral ORM, maar ook
de relatie met ERD, UML, SQL, procesmodelleren. Beschrijft
in detail wat in ‘Fundamentals’ passeert.
DEMO® Fact Model
Literatuur over Fact Based Modeling (2)
Nijssen & Le Cat (2009). Kennis Gebaseerd
Werken. Dé manier om kennis productief te
maken.
Sjir Nijssen is de grondlegger van feit-gebaseerd
modelleren. Hij legt CogNIAM, een ‘familielid’ van ORM,
uit, inclusief de relatie met o.a. SBVR en BPMN.
Guido Bakema e.a. (2005). Volledig
Communicatiegeoriënteerde
Informatiemodellering FCO-IM.
Leerboek waarin stap-voor-stap een ander ‘familielid’ van
ORM wordt besproken. Als je door wilt graven in feit-
gebaseerd modelleren
DEMO® Fact Model
Andere aanbevolen literatuur
Rob van Haarst (2013). SBVR made easy.
Business Vocabulary and Rules as a Critical Asset.
Een perfecte introductie op SBVR. De auteur beschrijft hoe
de omvangrijke SBVR-standaard op een praktische manier
kan worden toegepast om bedrijfsvocabulaire vast te
leggen.
Ronald G. Ross (2013). Business Rule Concepts.
Getting to the Point of Knowledge. Fourth
Edition.
Een bondige introductie. Benadrukt het implementatie-
onafhankelijk beschrijven van business rules met behulp
van natuurlijke taal. Relateert aan SBVR.
DEMO® Fact Model
• Xemod
– Opstellen Fact Model, waaronder Object Fact Diagram, gerelateerd
aan Construction Model
– http://www.mprise.nl/xemod-productoverzicht.aspx
• MS Visio i.c.m. ORM2-stencil
– ‘Tekenen’ van ORM-diagrammen, ‘getweaked’ naar OFD’s
– https://www.ormfoundation.org/files/folders/visio_stencils/default.as
px
• NORMA, gratis add-on op gratis Visual Studio versie
– Opstellen ORM model, grafisch + tekstueel
– https://www.ormfoundation.org/files/folders/norma_the_software/d
efault.aspx
Tools gebruikt rond deze presentatie
DEMO® Fact Model
Personalia
Architectuur, analyse en ontwerp van
bedrijfsprocessen en informatievoorziening
Jacob Vos
 jacobvos@impronotion.nl
 (06) 53 27 73 41
in linkedin.com/in/jacobvos1
 www.impronotion.nl
DEMO® Fact Model
Refereren
naar
objecten
(bij slide 7)

More Related Content

What's hot

14773 chapter 07
14773 chapter 0714773 chapter 07
14773 chapter 07nayakq
 
Yr-1-Spring-Block-2-Place-Value.pptx
Yr-1-Spring-Block-2-Place-Value.pptxYr-1-Spring-Block-2-Place-Value.pptx
Yr-1-Spring-Block-2-Place-Value.pptxcaitlinlowe9
 
Tutorials--Multiplying Fractions
Tutorials--Multiplying FractionsTutorials--Multiplying Fractions
Tutorials--Multiplying FractionsMedia4math
 
Examples about order of operations
Examples about order of operationsExamples about order of operations
Examples about order of operationsMartha Ardila Ibarra
 
Factors and Common Factors
Factors and Common FactorsFactors and Common Factors
Factors and Common FactorsJohdener14
 
Year 4 equivalent fractions
Year 4 equivalent fractionsYear 4 equivalent fractions
Year 4 equivalent fractionsQwizdom UK
 
Solid Shapes
Solid ShapesSolid Shapes
Solid Shapesaazz0015
 
Cross sections of 3 d figures
Cross sections of 3 d figuresCross sections of 3 d figures
Cross sections of 3 d figureskaren wagoner
 
Factors and Multiples
Factors and MultiplesFactors and Multiples
Factors and Multipleschstokes
 
Addition and subtraction
Addition and subtractionAddition and subtraction
Addition and subtractionSobira Ahmed
 
math morning starters year 1 and 2
math morning starters year 1 and 2math morning starters year 1 and 2
math morning starters year 1 and 2misscunningham
 
Improper fraction
Improper fractionImproper fraction
Improper fractionMrsGlover
 
Addition within 20
Addition within 20Addition within 20
Addition within 20kungfumath
 
Fractions Power Point
Fractions Power PointFractions Power Point
Fractions Power Pointkamstrak
 
Naskah Video Pendidikan "Stereotype"
Naskah Video Pendidikan "Stereotype"Naskah Video Pendidikan "Stereotype"
Naskah Video Pendidikan "Stereotype"Maharani Pratiwi
 

What's hot (20)

14773 chapter 07
14773 chapter 0714773 chapter 07
14773 chapter 07
 
Yr-1-Spring-Block-2-Place-Value.pptx
Yr-1-Spring-Block-2-Place-Value.pptxYr-1-Spring-Block-2-Place-Value.pptx
Yr-1-Spring-Block-2-Place-Value.pptx
 
DIVISION
DIVISIONDIVISION
DIVISION
 
Tutorials--Multiplying Fractions
Tutorials--Multiplying FractionsTutorials--Multiplying Fractions
Tutorials--Multiplying Fractions
 
Examples about order of operations
Examples about order of operationsExamples about order of operations
Examples about order of operations
 
Factors and Common Factors
Factors and Common FactorsFactors and Common Factors
Factors and Common Factors
 
Year 4 equivalent fractions
Year 4 equivalent fractionsYear 4 equivalent fractions
Year 4 equivalent fractions
 
Solid Shapes
Solid ShapesSolid Shapes
Solid Shapes
 
Cross sections of 3 d figures
Cross sections of 3 d figuresCross sections of 3 d figures
Cross sections of 3 d figures
 
Factors and Multiples
Factors and MultiplesFactors and Multiples
Factors and Multiples
 
Addition and subtraction
Addition and subtractionAddition and subtraction
Addition and subtraction
 
math morning starters year 1 and 2
math morning starters year 1 and 2math morning starters year 1 and 2
math morning starters year 1 and 2
 
Improper fraction
Improper fractionImproper fraction
Improper fraction
 
Equal Parts
Equal PartsEqual Parts
Equal Parts
 
Addition within 20
Addition within 20Addition within 20
Addition within 20
 
Fractions Power Point
Fractions Power PointFractions Power Point
Fractions Power Point
 
Naskah Video Pendidikan "Stereotype"
Naskah Video Pendidikan "Stereotype"Naskah Video Pendidikan "Stereotype"
Naskah Video Pendidikan "Stereotype"
 
Inequalities
InequalitiesInequalities
Inequalities
 
Nets of 3D Shapes
Nets of 3D ShapesNets of 3D Shapes
Nets of 3D Shapes
 
Rounding Powerpoint
Rounding PowerpointRounding Powerpoint
Rounding Powerpoint
 

Introductie opstellen Fact Model - DEMO Platform Bijeenkomst 18 mei 2015

  • 1. DEMO® Fact Model Opstellen DEMO® Fact Model Introductie op het opstellen van een Fact Model DEMO Platform bijeenkomst 18 mei 2015 Auteur: Jacob Vos @ImproNotion
  • 2. DEMO® Fact Model Relevantie van Fact Model Wat is het resultaat van de transactie? Wat voor feiten mag ‘completer’ in het leven roepen? Wat voor feiten zitten er in de feitenbank? Wat voor feiten raadpleegt ‘completer’?
  • 3. DEMO® Fact Model Casus: Marktplaats Opstellen Fact Model Relatie met Construction Model Praktisch communiceren Business rules Software requirements
  • 4. DEMO® Fact Model Gestructureerd verwoorden van feiten F1: Advertentie 925393160 staat in rubriek ‘Fietsen | Vouwfietsen’ F2: Advertentie 925393160 heeft als titel 'Riese und Muller Birdy vouwfiets 9 versn. als Brompton‘ F3: Het aangebodene in advertentie 925393160 is in conditie 'Zo goed als nieuw' F4: De manier van leveren van het aangebodene in advertentie 925393160 is 'Ophalen‘ F5: Het aangebodene in advertentie 925393160 heeft als vraagprijs € 700,00 F6: Advertentie 925393160 is geplaatst op 03-05-2015 15:17 F7: Advertentie 925393160 krijgt aandacht met opvalmogelijkheid 'Dagtopper' F8: Advertentie 925393160 is geplaatst door Coen F9: Coen woont in Voorburg, ZH
  • 5. DEMO® Fact Model Modelleren F1: Advertentie in rubriek (1) Identificeert een object van het type ‘rubriek’ Invulplaats voor referentie naar een object van het type ‘rubriek’ Identificeert een object van het type ‘advertentie’ Advertentie [advertentie] staat in rubriek [rubriek] Invulplaats voor referentie naar een object van het type ‘advertentie’ Advertentie 925393160 staat in rubriek ‘Fietsen | Vouwfietsen’ Feit Feittype
  • 6. DEMO® Fact Model Modelleren F1: Advertentie in rubriek (2) 925393160 Fietsen | Vouwfietsen 916831416 Fietsen | Vouwfietsen 925991674 Fietsen | Jongens 925991663 Fietsen | Kinderfietsjes Lezen: “Advertentie” + ‘925393160’ + “staat in” + “rubriek” + ‘Fietsen | Vouwfietsen’ Voorbeeld- populaties ‘Reference law’Objecttype Feittype 925393160 916831416 925991674 925991663 Fietsen | Vouwfietsen Fietsen | Jongens Fietsen | Kinderfietsjes ADVERTENTIE RUBRIEK [advertentie] staat in [rubriek]
  • 7. DEMO® Fact Model • Identificatie advertentie: (uniek) advertentienummer • Identificatie rubriek: (unieke) naam • In Object Role Modeling (ORM): • Ontologisch gezien is de manier van identificeren niet interessant; daarom in DEMO: Advertentie (.Nummer) Rubriek (.Naam) staat in Refereren naar objecten ADVERTENTIE RUBRIEK [advertentie] staat in [rubriek]
  • 8. DEMO® Fact Model Benoemen van objecttypen Er bestaat een advertentie [advertentie] Drukt het bestaan uit van een object Identificeert een object van het type ‘advertentie’ Invulplaats voor referentie naar een object van het type ‘advertentie’ Er bestaat een advertentie 925393160 Feit Feittype
  • 9. DEMO® Fact Model Modelleren F2: Titel van advertentie Advertentie 925393160 heeft als titel 'Riese und Muller Birdy vouwfiets 9 versn. als Brompton‘ Uitgangspunt: Tekstvelden worden niet in het Fact Model gemodelleerd. “Teksten en namen zijn aanduidingen van concepten. In ontologie gaat het om wat iets is, niet hoe je er naar verwijst.“
  • 10. DEMO® Fact Model Modelleren F3: Conditie van aangebodene Het aangebodene in advertentie 925393160 is in conditie 'Zo goed als nieuw' Het aangebodene in advertentie [advertentie] is in conditie [conditie] ADVERTENTIE RUBRIEK [advertentie] staat in [rubriek] CONDITIE het aangebodene in [advertentie] is in [conditie] Feit Feittype Object Fact Diagram
  • 11. DEMO® Fact Model Modelleren F4: Manier van leveren (1) De manier van leveren van het aangebodene in advertentie 925393160 is 'Ophalen' ‘Manier van leveren’ is benoemd als ‘Leveringswijze’ Voor het aangebodene in advertentie [advertentie] geldt leveringswijze [leveringswijze] Feit Feittype
  • 12. DEMO® Fact Model Modelleren F4: Manier van leveren (2) ADVERTENTIE RUBRIEK [advertentie] staat in [rubriek] CONDITIE het aangebodene in [advertentie] is in [conditie] LEVERINGSWIJZE voor het aangebodene in [advertentie] geldt [leveringswijze] Object Fact Diagram
  • 13. DEMO® Fact Model Modelleren F5: Vraagprijs (1) Het aangebodene in advertentie 925393160 heeft als vraagprijs € 700,00 Het aangebodene in advertentie [advertentie] heeft als vraagprijs [geldbedrag] Zie volgende slide Feit Feittype
  • 14. DEMO® Fact Model Modelleren F5: Vraagprijs (2) DEMO hanteert ‘scales’ voor bijv. tijd, gewicht, geld, temperatuur. Zie DEMO-3 specificatie, v3.7. Het geldbedrag wordt uitgedrukt in euro’s; het scale sort = Ratio (‘R’). ADVERTENTIE RUBRIEK [advertentie] staat in [rubriek] CONDITIE het aangebodene in [advertentie] is in [conditie] LEVERINGSWIJZE voor het aangebodene in [advertentie] geldt [leveringswijze] R het aangebodene in [advertentie] heeft als vraagprijs [geldbedrag] Geldbedrag: euro Object Fact Diagram
  • 15. DEMO® Fact Model Modelleren F6: Datum plaatsing Advertentie 925393160 is geplaatst op 03-05-2015 15:17 Uitgangspunt: Momenten waarop resultaten tot stand komen, modelleer je niet expliciet. Ze zijn in DEMO impliciet aanwezig. Namelijk als coördinatiefeiten (‘…. is accepted’). Ik ga ervan uit dat dit de datum is waarop de advertentie is gepubliceerd. Dit is het moment waarop het resultaat van de transactie tot stand is gekomen.
  • 16. DEMO® Fact Model Modelleren F7: Opvalmogelijkheid Advertentie 925393160 krijgt aandacht met opvalmogelijkheid 'Dagtopper' ADVERTENTIE RUBRIEK [advertentie] staat in [rubriek] CONDITIE het aangebodene in [advertentie] is in [conditie] LEVERINGSWIJZE voor het aangebodene in [advertentie] geldt [leveringswijze] R het aangebodene in [advertentie] heeft als vraagprijs [geldbedrag] Geldbedrag: euro OPVALMOGELIJKHEID [advertentie] krijgt aandacht met [opvalmogelijkheid]
  • 17. DEMO® Fact Model Modelleren F8: Adverteerder (1) Advertentie 925393160 is geplaatst door Coen Advertentie [advertentie] is geplaatst door [persoon] Bewust niet: ‘adverteerder’. Reden: we weten dat er ook bieders zijn, en dat dit dezelfde personen kunnen zijn als adverteerders. ‘Adverteerder’ is dus een rol die een persoon speelt, en die persoon kan ook de rol ‘bieder’ spelen. Feit Feittype
  • 18. DEMO® Fact Model ADVERTENTIE RUBRIEK [advertentie] staat in [rubriek] CONDITIE het aangebodene in [advertentie] is in [conditie] LEVERINGSWIJZE voor het aangebodene in [advertentie] geldt [leveringswijze] R het aangebodene in [advertentie] heeft als vraagprijs [geldbedrag] Geldbedrag: euro OPVALMOGELIJKHEID [advertentie] krijgt aandacht met [opvalmogelijkheid] PERSOON [advertentie] is geplaatst door [persoon] ADVERTEERDER Modelleren F8: Adverteerder (2) ‘ADVERTEERDER’ is een afgeleid objecttype: een persoon is een adverteerder indien er een advertentie is geplaatst door die persoon
  • 19. DEMO® Fact Model Modelleren F9: Woonplaats Coen woont in Voorburg, ZH Samengesteld feit! [persoon] woont in [plaats] Feit Feittype Coen woont in Voorburg Voorburg behoort tot Zuid-Holland [plaats] behoort tot [provincie]
  • 20. DEMO® Fact Model Modelleren F9: Woonplaats ADVERTENTIE RUBRIEK [advertentie] staat in [rubriek] CONDITIE het aangebodene in [advertentie] is in [conditie] LEVERINGSWIJZE voor het aangebodene in [advertentie] geldt [leveringswijze] R het aangebodene in [advertentie] heeft als vraagprijs [geldbedrag] Geldbedrag: euro OPVALMOGELIJKHEID [advertentie] krijgt aandacht met [opvalmogelijkheid] PERSOON [advertentie] is geplaatst door [persoon] ADVERTEERDER PLAATS PROVINCIE [persoon] woont in [plaats] [plaats] behoort tot [provincie]
  • 21. DEMO® Fact Model Uniciteit aangeven (1) 925393160 Fietsen | Vouwfietsen 916831416 Fietsen | Vouwfietsen 925991674 Fietsen | Jongens 925991663 Fietsen | Kinderfietsjes ADVERTENTIE RUBRIEK [advertentie] staat in [rubriek] Het streepje geeft aan dat ‘advertentie’ maar één keer mag voorkomen in de populatie ‘[advertentie] staat in [rubriek]’. Dus: een advertentie staat in maximaal één rubriek. Het ontbreken van een streepje geeft aan dat ‘rubriek’ een onbeperkt aantal keren mag voorkomen in de populatie ‘[advertentie] staat in [rubriek]’. Dus: er kan een oneindig aantal advertenties in een rubriek staan.
  • 22. DEMO® Fact Model Uniciteit aangeven (2) ADVERTENTIEOPVALMOGELIJKHEID [advertentie] krijgt aandacht met [opvalmogelijkheid] Het streepje geeft aan dat iedere combinatie van ‘opvalmogelijkheid’ en ‘advertentie’ maar één keer mag voorkomen in de populatie. Dus: een advertentie kan aandacht krijgen met meerdere opvalmogelijkheden, en een opvalmogelijkheid kan gebruikt worden bij meerdere advertenties.
  • 23. DEMO® Fact Model Uniciteit aangeven (3) ADVERTENTIE RUBRIEK [advertentie] staat in [rubriek] CONDITIE het aangebodene in [advertentie] is in [conditie] LEVERINGSWIJZE voor het aangebodene in [advertentie] geldt [leveringswijze] R het aangebodene in [advertentie] heeft als vraagprijs [geldbedrag] Geldbedrag: euro OPVALMOGELIJKHEID [advertentie] krijgt aandacht met [opvalmogelijkheid] PERSOON [advertentie] is geplaatst door [persoon] ADVERTEERDER PLAATS PROVINCIE [persoon] woont in [plaats] [plaats] behoort tot [provincie]
  • 24. DEMO® Fact Model Afhankelijkheid aangeven (1) ADVERTENTIE RUBRIEK [advertentie] staat in [rubriek] 925393160 Fietsen | Vouwfietsen 916831416 Fietsen | Vouwfietsen 925991674 Fietsen | Jongens 925991663 Fietsen | Kinderfietsjes De stip geeft aan dat iedere advertentie voor dient te komen in de populatie ‘[advertentie] staat in [rubriek]’. Dus: iedere advertentie staat in een rubriek. Het ontbreken van een stip geeft aan dat een rubriek niet voor hoeft te komen in de populatie ‘[advertentie] staat in [rubriek]’. Dus: een rubriek kan bestaan zonder dat er een advertentie in staat.
  • 25. DEMO® Fact Model Afhankelijkheid aangeven (2) ADVERTENTIE RUBRIEK [advertentie] staat in [rubriek] CONDITIE het aangebodene in [advertentie] is in [conditie] LEVERINGSWIJZE voor het aangebodene in [advertentie] geldt [leveringswijze] R het aangebodene in [advertentie] heeft als vraagprijs [geldbedrag] Geldbedrag: euro OPVALMOGELIJKHEID [advertentie] krijgt aandacht met [opvalmogelijkheid] PERSOON [advertentie] is geplaatst door [persoon] ADVERTEERDER PLAATS PROVINCIE [persoon] woont in [plaats] [plaats] behoort tot [provincie]
  • 26. DEMO® Fact Model Fact Model m.b.t. het bieden LEVERING ADVERTENTIEPERSOON [advertentie] is geplaatst door [persoon] ADVERTEERDER R [levering] heeft als biedprijs [geldbedrag] [levering] is gevraagd door [persoon] GEÏNTERESSERDE [levering] betreft aangebodene in [advertentie] Geldbedrag: euro Een bod representeert een ingediend verzoek tot levering. Dus een coördinatiefeit. Deze modelleer je niet in het Fact Model. Maar wel het object dat ontstaat wanneer het verzoek wordt ingewilligd.
  • 27. DEMO® Fact Model • Voor ieder gemodelleerd objecttype en feittype geldt: – objecten / feiten ervan ontstaan binnen ‘de beschouwde wereld’, nl. bij executie van een transactie; die transactie dient dus gemodelleerd te zijn – objecten / feiten ervan ontstaan buiten de ‘beschouwde wereld’; dus: een externe feitenbank moet ervoor gemodelleerd zijn • We kijken hiervoor naar het Construction Model bij de Marktplaats casus Relatie met Construction Model (1)
  • 28. DEMO® Fact Model Relatie met Construction Model (2) Transaction Product Kind O-T01 O-R01 advertentiebeheer is uitgevoerd voor [periode] O-T02 O-R02 [advertentie] is gepubliceerd O-T04 O-R04 behoeftevervulling is uitgevoerd voor [periode] O-T05 O-R05 [levering] is uitgevoerd Transaction Product Table (TPT):
  • 29. DEMO® Fact Model Relatie met Construction Model (3) ADVERTENTIE RUBRIEK [advertentie] staat in [rubriek] CONDITIE het aangebodene in [advertentie] is in [conditie] LEVERINGSWIJZE voor het aangebodene in [advertentie] geldt [leveringswijze] R het aangebodene in [advertentie] heeft als vraagprijs [geldbedrag] Geldbedrag: euro OPVALMOGELIJKHEID [advertentie] krijgt aandacht met [opvalmogelijkheid] PERSOON [advertentie] is geplaatst door [persoon] ADVERTEERDER PLAATS PROVINCIE [persoon] woont in [plaats] [plaats] behoort tot [provincie] LEVERING R [levering] heeft als biedprijs [geldbedrag] [levering] is gevraagd door [persoon] GEÏNTERESSEERDE [levering] betreft aangebodene in [advertentie] Geldbedrag: euro [advertentie] is gepubliceerd O-R01 [levering] is uitgevoerd O-R05
  • 30. DEMO® Fact Model • In het vorige schema zijn de feit-/objecttypen gekleurd waarvan feiten tot stand komen bij de uitvoering van gemodelleerde transactietypen (zie arcering in TPT) • Voor overige feit-/objecttypen worden de feiten beschouwd als ‘bestaand’, ofwel extern (en daarom grijs gekleurd) • Mogelijke externe feitenbanken: – Personen – Plaatsen (incl. provincies) – Opvalmogelijkheden – Stamgegevens (rubrieken, condities, leveringswijzen) Relatie met Construction Model (4)
  • 31. DEMO® Fact Model • ‘Rolboxen’, streepjes, stippen: wordt lastig gevonden • Mogelijkheden (zie volgende slides): – Voorbeeldpopulaties – Uniciteit en afhankelijkheid: tekstueel uitdrukken – SBVR structuurdiagram – Glossary met begrippen • Tijdens modelleren, als deliverable Praktisch communiceren
  • 32. DEMO® Fact Model Voorbeeldpopulaties ADVERTENTIE RUBRIEK [advertentie] staat in [rubriek] 925393160 Fietsen | Vouwfietsen 916831416 Fietsen | Vouwfietsen 925991674 Fietsen | Jongens 925991663 Fietsen | Kinderfietsjes 925991663 Fietsen | Jongens 925393160 916831416 925991674 925991663 924448135 Fietsen | Vouwfietsen Fietsen | Jongens Fietsen | Kinderfietsjes Fietsen | Tandems Rubriek ontbreekt Advertentie in twee rubrieken Rubriek zonder advertenties (= OK)
  • 33. DEMO® Fact Model 1) Iedere Advertentie staat in precies één Rubriek 2) Het aangebodene in iedere Advertentie is in precies één Conditie 3) Iedere combinatie van Advertentie en Opvalmogelijkheid komt slechts één keer voor 4) Iedere Advertentie is geplaatst door precies één Persoon 5) Iedere Levering betreft precies één Advertentie 6) Iedere Levering is gevraagd door precies één Persoon Beperkingsregels tekstueel uitdrukken
  • 34. DEMO® Fact Model SBVR structuurdiagram Advertentie Levering Rubriek Conditie Leveringswijze Opval- mogelijkheid Provincie Plaats Persoon geplaatst door t geplaatst doort betreft q staat in u woont in q behoort tot krijgt aandacht met t adverteerder bieder is gepubliceerd Geldbedrag vraagprijs geldt voort geldt voor aangebodene in t t Geldbedrag biedprijs is uitgevoerd
  • 35. DEMO® Fact Model Glossary Term Definitie adverteerder Persoon die een advertentie heeft geplaatst. advertentie Bekendmaking van een persoon dat h/zij iets ter overname aanbiedt. advertentie is gepubliceerd Een advertentie is op een marktplaats zichtbaar gemaakt zodat er biedingen op het erin aangebodene uitgebracht kunnen worden. bieder Persoon die een bod heeft uitgebracht. bod Verzoek aan een adverteerder om voor een bepaald geldbedrag het in een advertentie aangebodene te leveren. aanvaarden bod Het beloven door een adverteerder aan een bieder om te leveren volgens een bepaald bod van de bieder. levering is uitgevoerd Het aangebodene in een advertentie is in handen gesteld van een bieder.
  • 36. DEMO® Fact Model • Geldige toestanden en toestandsovergangen • Regels w.b. uniciteit, afhankelijkheid = business rules (m.b.t. toestanden) • Handhaving business rules is verantwoordelijkheid van actorrol die feit creëert – Bijv. ‘CA02 – Advertentie publiceerder’ checkt of in het verzoek om een advertentie te publiceren, de rubriek is opgegeven (= actieregel) Business rules (1) ADVERTENTIE RUBRIEK [advertentie] staat in [rubriek] [advertentie] is gepubliceerd O-R01
  • 37. DEMO® Fact Model • Nauwkeurige definitie: volg naamgeving objecttypen en feittypen uit feitenmodel Business rules (2) Informeel: Iemand mag niet op z’n eigen advertentie bieden Formeel: Voor iedere Persoon en Advertentie geldt hoogstens één van het volgende: die Advertentie is geplaatst door die Persoon; een Levering is gevraagd door die Persoon en die Levering betreft het aangebodene in die Advertentie
  • 38. DEMO® Fact Model • Scope: gerelateerd aan Fact Model (‘data requirements’) • Uitwerken Fact Model + business rules • Conceptueel gegevensmodel = requirements t.b.v. te ontwerpen logisch datamodel (bijv. relationeel model) • Rules deels in datamodel, deels applicatielogica • In gecontroleerde natuurlijke taal, voor gebruiker begrijpelijk • Met behulp van Object Role Modeling (ORM) Software requirements (1)
  • 39. DEMO® Fact Model • Objecttypen en feittypen uit coördinatiewereld – Bijv. objecttype ‘Bod’ • Momenten waarop coördinatiefeiten tot stand komen: welke expliciet? – Bijv. datum+tijd waarop bod is geplaatst, datum+tijd waarop advertentie is gepubliceerd • Referentiewijze per objecttype – Bijv. advertentienummer, e-mailadres voor persoon, plaatsnaam • Tekstvelden, ‘raw data’ velden – Bijv. titel + beschrijving advertentie, advertentiefoto’s Software requirements (2)
  • 40. DEMO® Fact Model Software requirements (3) 1 2 3 4 5
  • 41. DEMO® Fact Model • Rules in ORM zowel grafisch als tekstueel • Complexe rules alleen tekstueel – Bijv. (informeel!): ieder bod bij een advertentie dient hoger te zijn dan enig eerder geplaatst bod bij die advertentie – Bijv. (informeel!): bod bij advertentie mag alleen lager zijn dan vraagprijs indien de adverteerder dat heeft toegestaan voor die advertentie • Diverse soorten rules ondersteund in ORM – Bijv. subset constraint, frequency constraint, ring constraint Software requirements (4)
  • 43. DEMO® Fact Model Terry Halpin (2015). Object-Role Modeling Fundamentals. A practical Guide to Data Modeling with ORM. Vers van de pers. Laagdrempelige introductie van ORM. Inclusief uitleg over modelleren met behulp van NORMA (zie slide over tools). Literatuur over Fact Based Modeling (1) Terry Halpin & Tony Morgan (2008). Information Modeling and Relational Databases. Second Edition. Bijna 900 pagina’s diepgang over vooral ORM, maar ook de relatie met ERD, UML, SQL, procesmodelleren. Beschrijft in detail wat in ‘Fundamentals’ passeert.
  • 44. DEMO® Fact Model Literatuur over Fact Based Modeling (2) Nijssen & Le Cat (2009). Kennis Gebaseerd Werken. Dé manier om kennis productief te maken. Sjir Nijssen is de grondlegger van feit-gebaseerd modelleren. Hij legt CogNIAM, een ‘familielid’ van ORM, uit, inclusief de relatie met o.a. SBVR en BPMN. Guido Bakema e.a. (2005). Volledig Communicatiegeoriënteerde Informatiemodellering FCO-IM. Leerboek waarin stap-voor-stap een ander ‘familielid’ van ORM wordt besproken. Als je door wilt graven in feit- gebaseerd modelleren
  • 45. DEMO® Fact Model Andere aanbevolen literatuur Rob van Haarst (2013). SBVR made easy. Business Vocabulary and Rules as a Critical Asset. Een perfecte introductie op SBVR. De auteur beschrijft hoe de omvangrijke SBVR-standaard op een praktische manier kan worden toegepast om bedrijfsvocabulaire vast te leggen. Ronald G. Ross (2013). Business Rule Concepts. Getting to the Point of Knowledge. Fourth Edition. Een bondige introductie. Benadrukt het implementatie- onafhankelijk beschrijven van business rules met behulp van natuurlijke taal. Relateert aan SBVR.
  • 46. DEMO® Fact Model • Xemod – Opstellen Fact Model, waaronder Object Fact Diagram, gerelateerd aan Construction Model – http://www.mprise.nl/xemod-productoverzicht.aspx • MS Visio i.c.m. ORM2-stencil – ‘Tekenen’ van ORM-diagrammen, ‘getweaked’ naar OFD’s – https://www.ormfoundation.org/files/folders/visio_stencils/default.as px • NORMA, gratis add-on op gratis Visual Studio versie – Opstellen ORM model, grafisch + tekstueel – https://www.ormfoundation.org/files/folders/norma_the_software/d efault.aspx Tools gebruikt rond deze presentatie
  • 47. DEMO® Fact Model Personalia Architectuur, analyse en ontwerp van bedrijfsprocessen en informatievoorziening Jacob Vos  jacobvos@impronotion.nl  (06) 53 27 73 41 in linkedin.com/in/jacobvos1  www.impronotion.nl

Editor's Notes

  1. Vanuit implementatie terug naar ontologie.
  2. Verwoording in elementaire feitexpressies, zinnen Elementair = zonder verlies van informatie op te splitsen Natuurlijke taal Identificatie: niet te zien, bij doorklikken zie je ‘t Beschrijving: weggelaten; kom ik nog op terug ‘van het aangebodene’: ik limiteer me bewust tot aangeboden zaken, dus niet: gezochte zaken (“In iedere Advertentie voor producten mag maar één concreet product worden aangeboden of worden gezocht.” Hoe feiten benoemd: bij doorklikken te zien Datum plaatsing: ‘Vandaag’ versus de echte datum (die niet per se ‘vandaag’ hoeft te zijn! Marktplaats werkt met ‘omhoog plaatsen’) Plaats: is niet bijv. de plaats waar het product is op te halen, maar gerelateerd aan adverteerder Afstand: berekend veld, geen origineel feit; op dat onderwerp ga ik niet in Hier maar één voorbeeld genomen; dat kan riskant zijn. Bijv. als de enige opvalmogelijkheid ‘Dagtopper’ is, dan zou dat een boolean kunnen zijn, in tegenstelling tot wanneer er meerdere mogelijkheden zijn Qua modelleringsproces: het uitdrukken in zinnen (expressies) door een domeindeskundige.
  3. reference law: ORM = role connection
  4. Uitgangspunt DEMO: Ieder object kan uniek geïdentificeerd worden, hoe dat doet er niet toe. Al is een object ‘gestript’ van al z’n eigenschappen, dan is het nog steeds identificeerbaar. Mario Bunge: ‘bare individual’ Lezen ORM: Advertentie met het nummer … staat in rubriek met de naam …
  5. unicity law (ORM: uniqueness constraint)
  6. dependency law (ORM: mandatory role constraint)
  7. Dus bijv. NIET: ‘bod is geplaatst’: daarmee loop je vast als je initiator en executor gaat definiëren die daarbij horen.
  8. N.B.: In het Object Fact Diagram zijn vanaf nu enkele feittypen weggelaten om het grafisch passend te maken
  9. In het rood: ‘tegenvoorbeelden’.
  10. JD: ‘business law’ = a declaratively formulated rule that determines the lawfulness of states and state transitions in the coordination and/or production world of an organisation. JD: ‘business rule’ = synoniem voor action rule = the bueinss rules in an organisation constitute the procedural equivalent of its business laws Actorrol moet checken of gegevens aanwezig zijn in het verzoek (= assess truth, p. 57 + 72 TEOO) – en dan afwijzen indien niet compleet - of kan ze zelf bepalen (? wrs. kan dat theoretisch niet). Bijv. toestandsovergang: nieuw salaris van iemand mag niet lager zijn dan huidige salaris.
  11. Nadenken over exacte definitie is check of business rule wel klopt of kan, gezien het conceptueel model. Maak eventueel gebruik van ‘sample population’. Welke ‘gereserveerde termen’ gebruiken: Jan Dietz gebruikt in z’n publicatie ‘The Essence of Organisation’ termen. Ook aanwezig in FORML – Formal Object Role Modeling Language.
  12. NIET: performance, gebruikersvriendelijkheid, systeemkoppelingen Gecontroleerde natuurlijke taal – controlled natural language Grosso modo: toevoegen van objecttypen, feittypen, rules Ik presenteer geen methodiek om vanaf ontologie tot requirements te komen, maar geef handvatten.
  13. n.b.: moment P-fact == moment C-fact ‘accepted’
  14. Gemaakt in NORMA, ORM tool binnen Microsoft Visual Studio 2013 Community Edition. Gratis.