Service system domain understanding and modeling using connection-oriented approach

HIT data model as a tool for semantic modeling of service system. Lessons learnt from interim project in comparison with the theory.

= Connection-oriented approach =


 * objects don't keep the information, it is saved in the connection
 * analogy in service systems: there are C-P-T entities but they are not interesting without any interaction between them (relationships)
 * traditional modeling – object based, COA approach – relationship base
 * HIT method is a good example of COA – focus on functional dependencies and its semantics

= Conceptual modeling=


 * mutual understanding  is essential for any kind of effective teamwork
 * ​ a concept ('CAR' – real thing) may become meaning of given language expression ('car' / 'auto' / ...)
 * problem – different concepts under one language expression → specialized language expressions in medicine, technical / engineering disciplines, ...
 * desired result → agreement on key concepts (meanings) represented by words


 * essential in interdisciplinary cooperation as well as in team communication (consultants)


 * discipline focused on understanding (and not designing or specifying a database schema )


 * = The process of conceptual understanding and rendering modeled part of reality. The modeler tries to find out which objects of interest the system should keep and provide. Conceptual model should be totally independent of intended implementation and intelligible for users.

​


 * conceptual model 
 * ​ special case of data model
 * describes the objects and their mutual relationships in the domain by using concepts
 * ​ <span style="font-family: Arial, sans-serif; font-size: 11pt;">identifying objects
 * <span style="font-family: Arial, sans-serif; font-size: 11pt;">identifying attributes including relationships,
 * <span style="font-family: Arial, sans-serif; font-size: 11pt;">identifying consistency constraints (conditions which have to be met).
 * <span style="font-family: Arial, sans-serif; font-size: 11pt;">​ <span style="font-family: Arial, sans-serif; font-size: 11pt;">no attributes (unless an attribute is really necessary for the description )
 * <span style="font-family: Arial, sans-serif; font-size: 11pt;">many-to-many relationships are not decomposed into associative entities


 * <font size="2" style="font-size: 11pt">relationship with data modeling <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">:
 * <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​  logical models <span style="font-family: Arial, sans-serif; font-size: 11pt;"> describe the elements of the information system (IS) which is being built for the domain, but they are independent of any particular database or other means used to store IS data; a logical model contains entities which can be specific for the IS implementation, the entities have all their attributes defined, etc.
 *  physical models <span style="font-family: Arial, sans-serif; font-size: 11pt;"> define the data structures with all details necessary to create these structures in a particular database engine; in case of a SQL database, this involves assigning an SQL type to each attribute, decomposition of many-to-many relationships into associative entities, defining database indices, etc.

<span style="font-family: Arial, sans-serif; font-size: 11pt;">​

= <font face="Arial, sans-serif"> HIT method =


 * <span style="font-size: 11pt; font-family: Arial, sans-serif;">technique how to construct conceptual models


 * <span style="font-size: 11pt; font-family: Arial, sans-serif;">result is HIT conceptual model (base sorts + set of integrity constraints)

<span style="font-size: 11pt; font-family: Arial, sans-serif;">​


 * <font size="2" style="font-size: 11pt">Relationship with E-R model 
 * <font size="2" style="font-size: 11pt">​ <span style="font-family: Arial, sans-serif; font-size: 11pt;">E-R model is not modeling method, just standard notation for conceptual model
 * <span style="font-family: Arial, sans-serif; font-size: 11pt;">consists of E-R diagram and text description of each E-R diagram element

<span style="font-family: Arial, sans-serif; font-size: 11pt;">​


 * <font size="2" style="font-size: 11pt">Steps of modeling process: 
 * <font size="2" style="font-size: 11pt">​ <span style="font-family: Arial, sans-serif; font-size: 11pt;">the identification and definition of sorts,
 * <span style="font-family: Arial, sans-serif; font-size: 11pt;">the identification and definition of HIT attributes
 * <span style="font-family: Arial, sans-serif; font-size: 11pt;">normalizing the set of HIT attributes,
 * <span style="font-family: Arial, sans-serif; font-size: 11pt;">transforming the HIT conceptual model into ER model notation

<span style="font-family: Arial, sans-serif; font-size: 11pt;">​


 * <font size="2" style="font-size: 11pt">Functional approach <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">– relationship can have many kinds, function is more natural and its definition specifies the type of relationship, e.g.: function which has been given seminar and returns the collection of all students who have enrolled in given seminar (relationship student-seminar)
 * <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​ <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;"> intensions  <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;"> = function depending on the current state-of-affairs (= infinite list of facts which are currently valid), can access list of facts, closely connected with <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">Entity sorts
 * <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;"> extensions  <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;"> = functions which are independent on current state-of-affairs, can't access empirical facts, connected with <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">Descriptive sorts

<font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​


 * <font size="2" style="font-size: 11pt">Concepts <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">:
 * <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​ <u style="font-size: large; font-family: Arial, sans-serif;"><font size="2" style="font-size: 11pt">sort <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;"> = set of objects having a common property distinguishing it
 * <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​ <font size="2" style="font-size: 11pt">Entity sort <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">... (#Car)
 * <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​ <span style="font-family: Arial, sans-serif; font-size: 11pt;">defined using function which, being applied to an object (or an individual ) and the current state-of-affairs, returns true, if the given object is an instance of the sort being defined, false otherwise
 * <span style="font-family: Arial, sans-serif; font-size: small;">e.g.: An object of category (#Car) is every road vehicle, typically with four wheels, powered by an internal combustion engine and able to carry a small number of people.
 * <span style="font-family: Arial, sans-serif; font-size: small;">​ <font size="2" style="font-size: 11pt">Descriptive sorts <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">... (Phone number) – descriptive attributes
 * <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​ <span style="font-family: Arial, sans-serif; font-size: 11pt;">defined using a function which, being applied to an object (or an element) returns true, if the given object is an instance of the sort being defined, false otherwise. this function can be viewed as a characteristic function of the sort D
 * <span style="font-family: Arial, sans-serif; font-size: small;">e.g.: An element of category (Phone number) is every string value having the maximal length of 13, containing only digits and optionally a plus sign as the first character.
 * <span style="font-family: Arial, sans-serif; font-size: small;">​ <span style="font-family: Arial, sans-serif; font-size: small;">​ <u style="font-size: large; font-family: Arial, sans-serif;"><font size="2" style="font-size: 11pt">relationships <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;"> = HIT attributes
 * <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​ <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​ <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">sorts T <sub style="font-family: Arial, sans-serif;"><font size="2" style="font-size: 11pt">1 <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">, ..., T <sub style="font-family: Arial, sans-serif;"><font size="2" style="font-size: 11pt">n <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">, S (at least one entity sort) → <font size="2" style="font-size: 11pt">function <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">given parameters t <sub style="font-family: Arial, sans-serif;"><font size="2" style="font-size: 11pt">1 <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">, ..., t <sub style="font-family: Arial, sans-serif;"><font size="2" style="font-size: 11pt">n <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">returns single s ∈ S, a set <span style="font-size: 11pt; font-family: Arial, sans-serif;">S' ⊆ S, or is undefined. (all in current state-of-affairs)
 * <font size="2" style="font-size: 11pt">complexity <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">= n + 1
 * <font size="2" style="font-size: 11pt">graphical: <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">circles = sorts, crossed circle = entity sort, empty circle = descriptive sort, rectangle = HIT attribute
 * <font size="2" style="font-size: 11pt">linear: <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">(#Student) <u style="font-size: large; font-family: Arial, sans-serif;"><font size="2" style="font-size: 11pt">-s <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;"> who have passed the <u style="font-size: large; font-family: Arial, sans-serif;"><font size="2" style="font-size: 11pt">given <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;"> (#Course) with <u style="font-size: large; font-family: Arial, sans-serif;"><font size="2" style="font-size: 11pt">given <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;"> (Grade) / 0,M:0,M

<font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​ <ul style="margin-left: 40px;"> <li><font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​ <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​ <font size="2" style="font-size: 11pt">HIT attribute rotation  </ul>
 * <font size="2" style="font-size: 11pt">​ <font size="2" style="font-size: 11pt">​ <span style="font-family: Arial, sans-serif; font-size: 11pt;">every HIT attribute that is constructed from the original HIT attribute by swapping the result sort with one of the input argument sorts </li>

<span style="font-family: Arial, sans-serif; font-size: 11pt;">​ <ul style="margin-left: 40px;"> <li><span style="font-family: Arial, sans-serif; font-size: 11pt;">​ <span style="font-family: Arial, sans-serif; font-size: 11pt;">​ <font size="2" style="font-size: 11pt">Cardinality  </ul>
 * <font size="2" style="font-size: 11pt">​ <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">minimal and maximal number of objects that can be involved in a single instance of the relationship... <font size="2" style="font-size: 11pt">J,K : M,N <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">:
 * <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​ <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​ <span style="font-family: Arial, sans-serif; font-size: 11pt;">J... how many results at least function returns: 0 (partial func.) and 1 (total func.)
 * <span style="font-family: Arial, sans-serif; font-size: 11pt;">K... f returns signle result or a set: 1 (single) and M (set)
 * <span style="font-family: Arial, sans-serif; font-size: 11pt;">M,N... cardinality of reversed function (swapped input and output arg.) </li>

<span style="font-family: Arial, sans-serif; font-size: 11pt;">​ <ul style="margin-left: 40px;"> <li><span style="font-family: Arial, sans-serif; font-size: 11pt;">​ <font size="2" style="font-size: 11pt">Normalization  </ul>
 * <font size="2" style="font-size: 11pt">​ <span style="font-family: Arial, sans-serif; font-size: 11pt;">problem – HIT attributes can compose of more basic HIT attributes
 * <u style="font-size: large; font-family: Arial, sans-serif;"><font size="2" style="font-size: 11pt">Definability <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;"> = <font size="2" style="font-size: 11pt">A ← {B <font size="2" style="font-size: 11pt">1<font size="2" style="font-size: 11pt">, ..., B <font size="2" style="font-size: 11pt">n<font size="2" style="font-size: 11pt">} <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">... A is definable (redundant) when exists analytical function that is able to compute values of A by using HIT attr. B <sub style="font-family: Arial, sans-serif;"><font size="2" style="font-size: 11pt">1 <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">, ..., B <sub style="font-family: Arial, sans-serif;"><font size="2" style="font-size: 11pt">n
 * <sub style="font-family: Arial, sans-serif;"><font size="2" style="font-size: 11pt">​ <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">analytical func <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">= independent on any empirical knowledge (state-of-affairs), means only with mathematical and logical functions → there is no hidden HIT attributes
 * <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​  <font size="2" style="font-size: 11pt">Decomposability 
 *  <font size="2" style="font-size: 11pt">​ <span style="font-family: Arial, sans-serif; font-size: 11pt;">original HIT attr into set of its subattributes without loosing information
 * <span style="font-family: Arial, sans-serif; font-size: 11pt;">​ <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">subattribute <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">= every HIT attr. from A without 1 or more sorts of A
 * <font size="2" style="font-size: 11pt">A ⋄ {B <font size="2" style="font-size: 11pt">1<font size="2" style="font-size: 11pt">, ..., B <font size="2" style="font-size: 11pt">n<font size="2" style="font-size: 11pt">}  <font size="2" style="font-size: 11pt">⇔ <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">every B <font size="2" style="font-size: 11pt">i<font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">is subattr of A <font size="2" style="font-size: 11pt">∧ <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">A ← {B <sub style="font-family: Arial, sans-serif;"><font size="2" style="font-size: 11pt">1 <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">, ..., B <sub style="font-family: Arial, sans-serif;"><font size="2" style="font-size: 11pt">n <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">}
 * <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​ <u style="font-size: large; font-family: Arial, sans-serif;"><font size="2" style="font-size: 11pt">Kernel <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;"> of a set of HIT attr.  <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">= <font size="2" style="font-size: 11pt">K is kernel ⇔ <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">normalized variant of the original set A
 * <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​ <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">K, A are inform. equiv. <font size="2" style="font-size: 11pt">∧ <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">all attr. in K are elementary <font size="2" style="font-size: 11pt">∧ <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">K has no redundant attr. </li>

<font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​


 * <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​ <font size="2" style="font-size: 11pt">HIT conceptual model <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">= triple (B, K, C)
 * <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​ <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">B = base of identified <u style="font-size: large; font-family: Arial, sans-serif;"><font size="2" style="font-size: 11pt">sorts
 * <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">K = <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;"> kernel <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;"> of the set of relevant identified <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;"> HIT attributes
 * <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">C = set of <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;"> integrity constraints <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;"> identified over K
 * <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​ <span style="font-family: Arial, sans-serif; font-size: 11pt;">integrity constraint = condition on the population model, must be fulfilled; e.g. (Age) of a given (#Student) must be 18+

<span style="font-family: Arial, sans-serif; font-size: 11pt;">​


 * <font size="2" style="font-size: 11pt">Transformation into ER model 
 * <font size="2" style="font-size: 11pt">​ <span style="font-family: Arial, sans-serif; font-size: 11pt;">reasons: visual well-known tool for later usage in software design
 *  <font size="2" style="font-size: 11pt">Binarization principle 
 *  <font size="2" style="font-size: 11pt">​ <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">non-decomposable HIT attribute with complexity > 2 into one new created sort (called <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">concatenated type <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">) and a set of the so-called <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">projection (P)  <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">HIT attributes
 * <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">concated type  <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">represents the original HIT attribute (#Grading)
 * <span style="font-size: 11pt; font-family: Arial, sans-serif;">An object of category (#Grading) is every representation of a relationship between (#Student) and (#Course) with the following meaning: <span style="font-size: 11pt; font-family: Arial, sans-serif;">(#Student)-s who have passed the given (#Course) with given (Grade) / 0,M:0,M
 * <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">projections –  <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">no textual description, always the same cardinality of all projection attr.

<font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​ <ul style="margin-left: 40px;"> <li><font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​ <font size="2" style="font-size: 11pt">Procedure:  </ul>
 * <font size="2" style="font-size: 11pt">​ <u style="font-size: large; font-family: Arial, sans-serif;"><font size="2" style="font-size: 11pt">Derive entities <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;"> (binarization principle + update constraints)
 * <font size="2" style="font-family: Arial, sans-serif; font-size: 11pt;">​ <span style="font-family: Arial, sans-serif; font-size: 11pt;">entity sort → kernel entity
 * <span style="font-family: Arial, sans-serif; font-size: 11pt;">concated type → associative entity
 * <span style="font-size: 11pt; font-family: Arial, sans-serif;">descriptive sort (with plural rotation) → characteristic entity <span style="font-size: 11pt; font-family: Arial, sans-serif;">(characteristic of another already known entity)
 * <span style="font-size: 11pt; font-family: Arial, sans-serif;">​  <font size="2" style="font-size: 11pt">Derive relationships 
 * <span style="font-family: Arial, sans-serif; font-size: 11pt;">HIT attribute → relationship
 * <span style="font-family: Arial, sans-serif; font-size: 11pt;">​  <font size="2" style="font-size: 11pt">Derive attributes 
 *  <font size="2" style="font-size: 11pt">​ <span style="font-family: Arial, sans-serif; font-size: 11pt;">descriptive HIT attr. with singular rotation → attribute of corresp. entity
 * <span style="font-family: Arial, sans-serif; font-size: 11pt;">​  <font size="2" style="font-size: 11pt">Provide definitions </li>

= <font face="Arial, sans-serif"> Literature =

Offline PDF document: http://www.jaromircoufal.cz/tmp/06_dum.pdf (same information, just different formatting)

Main source: http://kirlab.fi.muni.cz/documents/study_materials/HIT_tutorial.pdf

= Related courses =
 * PA116 Domain Understanding and Modeling