diff --git a/docs/reading/OEMS.html b/docs/reading/OEMS.html index f158c1d..c8d2819 100644 --- a/docs/reading/OEMS.html +++ b/docs/reading/OEMS.html @@ -15,7 +15,7 @@ }/*]]>*/
Copyright © 2023-24 Gerd Wagner
Draft version, published - 2024-06-20.
This book explains how + 2024-06-25.
This book explains how to make models for Information Systems engineering and for Discrete Event Simulation engineering using the Unified Modeling Language (UML) and the Discrete Event Process Modeling @@ -26,9 +26,11 @@ Event Scheduling).
The modeling concepts of OEM&S, in particular the concepts of objects, events and activities, are ontologically grounded on corresponding categories - of the Unified Foundational Ontology (UFO).
Resource
Notice also the notation "/date" in the attribute - compartments of the activity classes BookLending and - BookTakeBack, where the slash prefix indicates that the attribute - date is a derived attribute (its value can be automatically computed - from the implicit occurrenceTime attribute).
The class model - expressed above with the visual modeling language of OE class diagrams can also be expressed - textually, following the syntax of SysML, in the following way:
1 + single-valued).
An OE class model is based on a - set of data types (such as Integer, String, etc.), which are - special types. Object types, event types and associations are - classifiers, which are also special types. +} |
An OE class model is based on a + set of data types (such as Integer, String, etc.). Data types, + object types, event types and associations are classifiers, which + are types. Also, features, such as attributes, are types. Specialization is a relationship between types that is subject to certain constraints (such as the constraint that object types can only - specialize other object types).
An OE class model (based on a set of data types DT) - is a 9-tuple ⟨ OT, ET, Attr, dom, rng, Ass, ends, mul, sup ⟩ specifying a - vocabulary consisting of a set of object and event type - names OT and ET, a set of attribute names Attr - and a set of association names Ass, as well as of functions - dom and rng for assigning a domain and a - range (or codomain) to an attribute, a function - ends for assigning a tuple of object types to each association (the - object types participating in it), a function mul for assigning - multiplicities both to attributes and associations, and a function - sup for assigning supertypes to types.
If an OE class model has only binary associations, it - can be reduced to an an association-free model ⟨ OT, ET, Attr, dom, - rng, mul, sup ⟩ by expressing/replacing the associations with the help of - corresponding reference attributes.
An interpretation of an - (association-free) OE class model is a ⟨ - O, E, Attr, dom, rng, Ass, ends, mul, sup ⟩
An OE class model is based on a - set of data types (such as Integer, String, etc.), which are - special types. Object types, event types and associations are - classifiers, which are also special types. - Specialization is a relationship between types that is subject to - certain constraints (such as the constraint that object types can only - specialize other object types).
A multiplicity is an - expression l..u consisting of a lower bound l being a - non-negative integer and an upper bound u being either a positive - integer or the special symbol ∗ standing for unbounded such that - either u = ∗ or l ≤ u. Whenever the lower bound - l of a multiplicity is greater than 0, it defines a minimum - cardinality constraint ("there must be at least l values"). Whenever - the upper bound u of a multiplicity is not ∗ (unbounded), it defines - a maximum cardinality constraint ("there must be at most u values"). -
An OE class model (based on a - finite set of data types DT) is a 9-tuple ⟨ OT, ET, attr, rng, - OAss, PAss, ends, mul, sup ⟩ specifying
A + multiplicity is an expression l..u consisting of a + lower bound l being a non-negative integer and an upper bound + u being either a positive integer or the special symbol ∗ standing + for unbounded such that either u = ∗ or l ≤ u. + Whenever the lower bound l of a multiplicity is greater than 0, it + defines a minimum cardinality constraint ("there must be at least l + values"). Whenever the upper bound u of a multiplicity is not ∗ + (unbounded), it defines a maximum cardinality constraint ("there must be at + most u values").
An OE class + model (based on a finite set of data types DT) is a 10-tuple
⟨ OT, ET, attr, rng, OAss, + PAss, ends, mul, muls, sup ⟩
specifying
If an OE class model has only binary object type associations, it can be reduced to an - association-free model ⟨ OT, ET, attr, rng, mul, sup ⟩ by - expressing/replacing all associations with the help of corresponding - reference attributes.
An - interpretation of an association-free OE class model is a sextuple ⟨ c, - Obj, Evt, type, occt, I ⟩ such that
⟨ OT, ET, attr, rng, mul, muls, + sup ⟩
by expressing/replacing all associations with the help of + corresponding reference attributes.
An + interpretation of an association-free OE class model is a septuple
I = ⟨ T, c, Obj, + Evt, type, occt, I ⟩
such that
An attribute T-a with multiplicity + mul(T-a) = ⟨ l, u ⟩ is + interpreted as a function from entities to value sets: + I(T-a) : I(T) → + 2I(R) for all attributes T-a with T ∈ OT ∪ ET, a ∈ attr(T) and R = rng(T-a), such that for any entity e ∈ - I(T), the cardinality of its attribute value - set I(T-a)(e) is greater than - l and smaller than u where ⟨ l, u ⟩ = - mul(T-a).
Together with a variable value assignment α : V → - Obj ∪ Evt for a finite set of variables V, an - interpretation I allows to interpret expressions of the form + Obj ∪ Evt for a finite set of entity variables V, an + interpretation I allows to interpret expressions of the form v.a where v is an entity variable and a is a (local) attribute name:
Iα(v.a) = I(T-a)(e) where e = α(v) - and T = type(e)
In a process design model for a process-supportive IS, + and T ∈ types(e) with a ∈ attr(T)
Whenever + the range of an attribute T-a is an entity type T', we + can interpret expressions of the form + v.a1.a2 where + a1 ∈ attr(T) and a2 ∈ + attr(T'), which are called path expressions, by iterating + the attribute function application. While it is obvious how this works for + the case of single-valued attributes a1, in the case of + multi-valued attributes a1, all resulting value sets are + simply merged together. In this way, we can form path expressions of any + length greater than zero.
Finally, we can define how an interpretation + of a class model Iα, together with a variable value + assignment α for a set of data and entity variables, satisfies a logical + formula F formed with atomic formulas that are connected with the + help of the usual logical operations, which is symbolically expressed as + Iα ⊨ F. The base case of atomic formulas includes + the following two forms:
Complex logical formulas formed with the logical operators ¬, ∧, + ∨, →, ∀, ∃ are satisfied by an interpretation in the usual way.
An + OE class model like the one presented in + Figure 3-1 defines the following types of + (integrity) constraints:
require that an attribute must have a value from the value space + of the type that has been defined as its range. For instance, a value of + the attribute Person::birthDate must be a date. These (implicit) + constraints are expressed in a class diagram by specifying a range for + all attributes.
require that an attribute must have a value. These constraints + are expressed in a class diagram with the help of an attribute + multiplicity with a lower bound greater than 0. For instance, in the + class diagram to the right, an instance of Person must have a + name and a birthDate, but need not have a + biography. Notice that the default multiplicity of an attribute + is [1], implying that it is mandatory and single-valued.
apply to multi-valued attributes, only, and require that the + cardinality of a multi-valued attribute's value set is not less than a + given minimum cardinality or not greater than a given maximum + cardinality, as expressed by the attribute's multiplicity.
In addition to these types of constraints, an OE class model may specify two further, more + general, types of constraints:
In a class diagram, classifier invariants are expressed within a + constraint rectangle that is attached to a classifier with the help of a + dashed line. Global invariants can be expressed within a constraint + rectangle in a corner of the diagram.
Interpretations of an OE class model are required to satisfy all of + its invariants:
There are several types of very common classifier invariants that + can be expressed in a class diagram in the simplified way of an attribute + annotation in curly braces appended to the attribute declaration:
are expressed with the keyword "key" and require that the value + of an attribute a is unique among all instances of its domain: + F(x) ≡ ∀y: C(y) → x.a ≠ + y.a.
are expressed with the keywords "min" and "max" and require that + the value of a numeric attribute a must be in a specific interval + [min,max]: F(x) ≡ min ≤ x.a ∧ x.a ≤ + max.
are expressed with the keyword "pattern" and require that a + string attribute's value must match a certain pattern defined by a + regular expression.
The attribute annotation keyword "id" implies that the attribute + is unique and mandatory, and that its values e.a are used as + standard identifiers for the entities e.
Examples of global + invariants are the following:
Each Departure event must be preceded by a corresponding + Arrival event:
∀x [ + Departure(x) → ∃y [ Arrival(y) ∧ + y.libraryUser = x.libraryUser ∧ occt(y) < + occt(x) ∧ ¬∃z [Departure(z) ∧ occt(z) + < occt(x) ∧ occt(z) > occt(y) ]]]
In a process design model for a process-supportive IS, we refine a conceptual process model by adding all details needed for obtaining a computationally complete definition of the business processes to be supported. An important question is whether these processes consist of @@ -848,13 +979,13 @@ average and maximal length of the waiting line at the service desk, then we can abstract away from the object type Person and the attributes Book::title, Book::year, and - Book::authors described in the domain model shown in Section 2.1.2). We may even drop the object types + Book::authors described in the domain model shown in Section 2.1.2. We may even drop the object types Book and BookCopy altogether, if we just count the number of books lended and taken back in the simulation design model.
The following basic DPMN diagram shows an OEG defining a process pattern that is instantiated by the above discrete event process - example.