conceptual modeling - polito.ittypically, only three values are used: 0, 1 and the symbol * (many)...
TRANSCRIPT
![Page 1: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/1.jpg)
Conceptual Modeling
Version 2.0.1 - 2/10/2018
© Maurizio Morisio, Marco Torchiano, 2018
![Page 2: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/2.jpg)
IS Aspects
▪ Information
Conceptual modeling– UML Class diagrams
– (Entity-Relationships)
▪ Process flow
Process modeling– UML Activity Diagrams
– BPMN
▪ Interaction
Interaction modeling– Use cases
3
![Page 3: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/3.jpg)
UML
▪ Unified Modeling Language
▪ Standardized by OMG
▪ Several diagrams
Class diagrams
Activity diagrams
Use Case diagrams
(Sequence diagrams)
(Statecharts)
Conceptual modeling
Process modeling
Functional modeling
![Page 4: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/4.jpg)
CLASS DIAGRAMConceptual Modeling
![Page 5: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/5.jpg)
Conceptual Modeling
▪ Construction of model
Providing an optimal description
From the stakeholders perspective
▪ Is the formalization phase after
Requirements elicitation and collection
Requirements analysis
![Page 6: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/6.jpg)
Goal
▪ Capture
Main (abstract) concepts
Characteristics of the concepts
–Data associated to the concepts
Relationships between concepts
![Page 7: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/7.jpg)
Abstraction levels
Abstract
ConceptEntityClassCategoryType
Concrete
InstanceItemObjectExampleOccurrence
![Page 8: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/8.jpg)
Class
▪ A class represents a set of objects
Common properties
Autonomous existence
E.g. facts, things, people
▪ In an application for a commercial organization CITY, DEPARTMENT, EMPLOYEE, PURCHASE and SALE are typical classes.
Use a singular common noun
![Page 9: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/9.jpg)
Class - ExamplesClass Diagram0 2013/10/03 powered by Astah
pkg
Em ployee
Department
City
Sale
![Page 10: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/10.jpg)
Object
▪ Model of an item (physical or intangible within the software system)
ex.: a student, an exam, a window
▪ Characterized by
identity
attributes (or data or properties)
operations it can perform (behavior)
messages it can receive
![Page 11: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/11.jpg)
Object - Examples1.1 Objects 2014/10/01 powered by Astah
1.1 Objectssd
Computer and Control Engineering : Department
turin : City
john smith : Employee
![Page 12: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/12.jpg)
Attribute
▪ Elementary property of a class
Name
Type
▪ An attribute associates to each object (occurrence of a class) a value of the corresponding type
Surname: String
ID: Numeric
Salary: Currency
![Page 13: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/13.jpg)
Attribute – Example
14
4-Attributes 2015/09/22 powered by Astah
pkg
- Birthdate : Date
- Surname : String
- Name : String
- SID : String
Student
- CFU : float
- Title : String
- CID : String
Course
- Name : String
- Salary : Currency
Employee
- Inhabitants : int
- Name : String
City
![Page 14: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/14.jpg)
Attribute Types
Tipo Descrizione
int Numero intero
double Numero reale (singola prec.)
float Numero reale (doppia prec.)
boolean Valore logico (V/F, Si/No)
String Stringa di caratteri / Testo
Date Data (giorno-mese-anno)
Time Ora (ore:minuti:secondi)
![Page 15: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/15.jpg)
Association
▪ Represent logical links between two classes.
▪ An occurrence of an association is a pair of occurrences of entities, one for each involved class
Residence can be an association between the classes City and Employee;
Exam can be an association between the classes Student and Course.
![Page 16: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/16.jpg)
Association
Class
Student
Class
Course
Link
between objects
Association between classes
![Page 17: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/17.jpg)
Association - Examples2-Associations 2013/10/03 powered by Astah
Student Course
Attend
Employee City
Works_in
Residence
![Page 18: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/18.jpg)
Recursive association-Samples
3.a-Recursive associations 2013/10/04 powered by Astah
pkg
Employee
Friend
- employee
- manager
Supervise
Student
![Page 19: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/19.jpg)
Link
▪ Model of association between objects
![Page 20: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/20.jpg)
Multiplicity
▪ Describes the maximum and minimum number of links in which a class occurrence can participate
Undefined maximum expressed as *
▪ Should be specified for each class participating in an association
![Page 21: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/21.jpg)
Multiplicity - Example
0..4
MinMax
A car can mount none, up to four wheels
![Page 22: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/22.jpg)
Multiplicity - Example
0..1
A wheel can be mounted on none or at most one car
![Page 23: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/23.jpg)
Multiplicity
▪ Typically, only three values are used: 0, 1 and the symbol * (many)
▪ Minimum: 0 or 1
0 means the participation is optional,
1 means the participation is mandatory;
▪ Maximum: 1 or *
1: each object is involved in at most one link
*: each object is involved in many links
![Page 24: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/24.jpg)
Multiplicity
nExactly n
*Zero or more
0..1Zero or one (optional)
m..nBetween m and n (m,n included)
m..*From m up
![Page 25: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/25.jpg)
Multiplicity3-Multiplicity 2013/10/04 powered by Astah
Order Invoice
0..11Sale
Person City
10..*Residence
Tourist Trip
0..*1..*Reservation
![Page 26: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/26.jpg)
Operational interpretation
4a-Association+Attributes 2018/10/02 powered by Astah
pkg
- Birthdate : Date
- Surname : String
- Name : String
- SID : String
Student
0..10..*Attend
Works_in
Residence
- CFU : float
- Title : String
- CID : Str ing
Course
- Salary : Currency
- Name : String
Employee
- Inhabitants : int
- Name : String
City
SID Name Surname Birthdate
S2345 John Smith 1990-4-12
S1234 Jane Brown 1991-7-11
S5678 Mario Rossi 1991-11-5
CID Title CFU
C001 Information Systems 8
C002 Advanced Programming 10
C003 Calculus 10
C001 C002 C003
S2345 X
S1234 X
S5678 X
![Page 27: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/27.jpg)
Practical limitations
▪ The theoretical model of the association is that of a set relationship
i.e. a subset of the cartesian product
▪ An association can represent the presence (or absence) of a link between two objects
Not the presence of several links betwenthe same two objects– E.g. a student either attend or does not a
given course
![Page 28: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/28.jpg)
Derived attributes
Is everything ok?
Age is variable, birth date is better
The number of links is implicit
![Page 29: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/29.jpg)
Association Class
▪ The association class define the attributes related to the association
▪ A link between two object includes
The two linked objects
The attributes defined by the association class
![Page 30: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/30.jpg)
Association class - Equivalence
![Page 31: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/31.jpg)
Association Class Limitations
▪ Association class
Fee is a function of consultant and company
fee ( Consultant , Company )
▪ Intermediate class
Fee is a function of the contract
fee ( Contract )
![Page 32: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/32.jpg)
Association class limitation
▪ Case
Consultant working several times for the same Company
▪ Cannot be represented by association class
▪ Only representable through intermediate class
![Page 33: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/33.jpg)
Aggregation
▪ B is-part-of A means that objectsdescribed by class B can be seen asattributes of objects described by A
Typically objects of type B exist as long as the aggregate (container) object of type A exists
A B
![Page 34: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/34.jpg)
Aggregation Example
Car Engine
power
CD player
Tyre14
1
![Page 35: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/35.jpg)
Specialization / Generalization
▪ B specializes A means that objects described by B have the same properties of objects described by A
▪ Objects described by A may have additional properties
▪ B is a special case of A
▪ A is a generalization of B (and possible other classes)
![Page 36: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/36.jpg)
GeneralizationInheritance 2015/07/22 powered by Astah
- SSN : String
- Last : String
- First : String
Person
- ID : int
Student
- Salary : Currency
Employee
![Page 37: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/37.jpg)
38
Inheritance terminology
▪ Class one above
Parent class
▪ Class one below
Child class
▪ Class one or more above
Superclass, Ancestor class, Base class
▪ Class one or more below
Subclass, Descendent class, Derived class
![Page 38: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/38.jpg)
Set-Specialization Inheritance 2015/07/22 powered by Astah
- SSN : String
- Last : String
- First : String
Person
- ID : int
Student
- Salary : Currency
Employee
Person
Employee
Student
![Page 39: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/39.jpg)
40
Example of inheritance tree
Animal
salesman
Living species
vegetal
Flower
Human being
Flower seller
Customer
![Page 40: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/40.jpg)
Specialization types
▪ Totality
Total: derived classes form a partition
Partial
▪ Exclusion
Mutual exclusive: object cannot belong to two or more derived classes
Inclusive
![Page 41: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/41.jpg)
Exampe
Original
Reply
Citation
![Page 42: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/42.jpg)
Optional Recursive Associations
Dettaglio 2017/10/12 powered by Astah
Tuitterpkg
- timestamp : Time
- testo : String
Tweet- citante
- citato
0..*
0 ..1
citazioneDi
- originale
- risposta
0..1
0..*
rispostaA
![Page 43: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/43.jpg)
Optional Recursive Associations
original
reply
citation
Tweet
rispostaA
citazioneDi
![Page 44: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/44.jpg)
Optional Recursive Associations
original
reply
citation
other
TweetIl modello permette questasituazione (errata) in cui un
tweet è contemporaneamentesia risposta che citazione
rispostaA
citazioneDi
citazioneDi
![Page 45: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/45.jpg)
Specialization
Modello Concettuale 2017/10/12 powered by Astah
Tuitter 2pkg
- timetamp : Time
- testo : String
Tweet
Risposta Citazione
1
0..*
riferita a
1
0..*
risponde a
Semplice
Totale, esclusiva
![Page 46: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/46.jpg)
Specialization
original
reply
citation
Risposta Semplice
Citazione
Tweet
![Page 47: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/47.jpg)
Partial Specialization
Modello Concettuale (Variante) 2017/10/13 powered by Astah
Tuitter 2pkg
- timetamp : Time
- testo : String
Tweet
Risposta Citazione
1
0..*
riferita a
1
0..*
risponde a
Parziale, esclusiva
![Page 48: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/48.jpg)
Patial Specialization
original
reply
Risposta
Citazione
Tweet
citation
![Page 49: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/49.jpg)
NL Requirements Specification
▪ Requirements specifications are often written in natural language (NL)
At least in the first draft.
▪ NL is, by nature, subject to ambiguity and misinterpretation.
▪ Inaccuracies and ambiguous terms must be removed
Necessary an in-depth analysis of the specification document
![Page 50: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/50.jpg)
Essential guidelines
▪ If a concept has significant properties and/or describes types of objects with an autonomous existence, it can be represented by a class.
▪ If a concept has a simple structure, and has no relevant properties associated with it, it is likely an attribute of a class.
▪ If a concept provides a logical link between two (or more) entities, it is convenient to represent it by means of an association.
▪ If one or more concepts are particular cases of another concept, it is convenient to represent them by means of a generalization.
![Page 51: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/51.jpg)
Modeling strategies
▪ Top-down
Start with abstract concepts and perform successive refinements
▪ Bottom-up
Start with detailed concepts and proceed with integrating different pieces together
▪ Inside-out
Like bottom-up but beginning with most important concepts first
▪ Hybrid
![Page 52: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/52.jpg)
Conceptual model quality
▪ Correctness
No requirement is misrepresented
▪ Completeness
All requirements are represented
▪ Readability
It is easy to read and understand
▪ Minimality
There are no avoidable elements
![Page 53: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/53.jpg)
Example▪ We wish to create a IS for a company that runs training courses. For this, we must
store data about the trainees and the instructors.
▪ For each course participant (about 5000), identified by a code, we want to store the social security number, surname, age, gender, place of birth, employer’s name, address and telephone number, previous employers (and period employed), the courses attended (there are about 200 courses) and the final assessment of each course.
▪ We need also to represent the seminars that each participant is attending at present and, for each day, the places and times the classes are held. Each course has a code and a title and any course can be given any number of times. Each time a particular course is given, we will call it an ‘edition’ of the course. For each edition, we represent the start date, the end date, and the number of participants.
▪ If a trainee is a self-employed professional, we need to know his or her area of expertise, and, if appropriate, his or her title. For somebody who works for a company, we store the level and position held.
▪ For each instructor (about 300), we will show the surname, age, place of birth, the edition of the course taught, those taught in the past and the courses that the tutor is qualified to teach. All the instructors’ telephone numbers are also stored. An instructor can be permanently employed by the training company or can be freelance.
![Page 54: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/54.jpg)
Requirement analysis
▪ Choose the appropriate level of abstraction
Identify the main concepts
▪ Construct a glossary of terms
▪ Identify synonyms and homonyms, and standardize terms
▪ Make cross-references explicit
▪ Standardize sentence structure
▪ Avoid complex phrases
![Page 55: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/55.jpg)
▪ We wish to create a IS for a company that runs training courses. For this, we must store data about the trainees and the instructors.
▪ For each course participant (about 5000), identified by a code, we want to store the social security number, surname, age, gender, place of birth, employer’s name, address and telephone number, previous employers (and period employed), the courses attended (there are about 200 courses) and the final assessment of each course.
▪ We need also to represent the seminars that each participant is attending at present and, for each day, the places and times the classes are held. Each course has a code and a title and any course can be given any number of times. Each time a particular course is given, we will call it an ‘edition’ of the course. For each edition, we represent the start date, the end date, and the number of participants.
▪ If a trainee is a self-employed professional, we need to know his or her area of expertise, and, if appropriate, his or her title. For somebody who works for a company, we store the level and position held.
▪ For each instructor (about 300), we will show the surname, age, place of birth, the edition of the course taught, those taught in the past and the courses that the tutor is qualified to teach. All the instructors’ telephone numbers are also stored. An instructor can be permanently employed by the training company or can be freelance.
particpant
employer
instructortraineecourse
Main concepts
tutor
seminar
![Page 56: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/56.jpg)
Glossary
Term Description Synonym Links
Course Course offered. Can have various editions.
Seminar Instructor, Trainee
Trainee Participant in a course. Can be an employee or self- employed.
Participant Course, Employer
Instructor Course tutor. Can be freelance.
Tutor Course
Employer Company by which a trainee is employed or has been employed.
Trainee
![Page 57: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/57.jpg)
Standardize and simplify▪ We wish to create a IS for a company that runs training courses. For this, we must
store data about the trainees and the instructors.
▪ For each course participant (about 5000), identified by a code, we want to store the social security number, surname, age, gender, place of birth, employer’s name, address and telephone number, previous employers (and period employed), the courses attended (there are about 200 courses) and the final assessment of each course.
▪ We need also to represent the seminars that each participant is attending at present and, for each day, the places and times the classes are held. Each course has a code and a title and any course can be given any number of times. Each time a particular course is given, we will call it an ‘edition’ of the course. For each edition, we represent the start date, the end date, and the number of participants.
▪ If a trainee is a self-employed professional, we need to know his or her area of expertise, and, if appropriate, his or her title. For somebody who works for a company, we store the level and position held.
▪ For each instructor (about 300), we will show the surname, age, place of birth, the edition of the course taught, those taught in the past and the courses that the tutor is qualified to teach. All the instructors’ telephone numbers are also stored. An instructor can be permanently employed by the training company or can be freelance.
trainee
current employer start date and the end date of
record
editions
For each employer we store the name address and phone number.
![Page 58: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/58.jpg)
Example▪ We wish to create a IS for a company that runs training courses. For this, we must
store data about the trainees and the instructors.
▪ For each trainee (about 5000), identified by a code, we want to store the social security number, surname, age, gender, place of birth, current employer’s, previous employers (and start date and end date of the period employed), the courses editions attended (there are about 200 courses) and the final assessment of each course edition.
▪ For each employer we store the name, address, and phone number
▪ Each course has a code and a title and any course can be given any number of times. Each time a particular course is given, we will call it an ‘edition’ of the course. We need also to record for each day, the places and times the classes are held. For each edition, we represent the start date, the end date, and the number of participants.
▪ If a trainee is a self-employed professional, we need to know his or her area of expertise, and, if appropriate, his or her title. For somebody who works for a company, we store the level and position held.
▪ For each instructor (about 300), we will show the surname, age, place of birth, the edition of the course taught, those taught in the past and the courses that the tutor is qualified to teach. All the instructors’ telephone numbers are also stored. An instructor can be permanently employed by the training company or can be freelance.
![Page 59: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/59.jpg)
Example▪ We wish to create a IS for a company that runs training courses. For this, we must
store data about the trainees and the instructors.
▪ For each trainee (about 5000), identified by a code, we want to store the social security number, surname, age, gender, place of birth, current employer’s, previous employers (and start date and end date of the period employed), the courses editions attended (there are about 200 courses) and the final assessment of each course edition.
▪ For each employer we store the name, address, and phone number
▪ We need also to represent course editions and, for each day, the places and times the classes are held. Each course has a code and a title and any course can be given any number of times. Each time a particular course is given, we will call it an ‘edition’ of the course. For each edition, we represent the start date, the end date, and the number of participants.
▪ If a trainee is a self-employed professional, we need to know his or her area of expertise, and, if appropriate, his or her title. For somebody who works for a company, we store the level and position held.
▪ For each instructor (about 300), we will show the surname, age, place of birth, the edition of the course taught, those taught in the past and the courses that the tutor is qualified to teach. All the instructors’ telephone numbers are also stored. An instructor can be permanently employed by the training company or can be freelance.
Generic statements
We wish to create a IS for a company that runs training courses. For this, we must store data
about the trainees and the instructors.
![Page 60: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/60.jpg)
Example▪ We wish to create a IS for a company that runs training courses. For this, we must
store data about the trainees and the instructors.
▪ For each trainee (about 5000), identified by a code, we want to store the social security number, surname, age, gender, place of birth, current employer’s, previous employers (and start date and end date of the period employed), the courses editions attended (there are about 200 courses) and the final assessment of each course edition.
▪ For each employer we store the name, address, and phone number
▪ We need also to represent course editions and, for each day, the places and times the classes are held. Each course has a code and a title and any course can be given any number of times. Each time a particular course is given, we will call it an ‘edition’ of the course. For each edition, we represent the start date, the end date, and the number of participants.
▪ If a trainee is a self-employed professional, we need to know his or her area of expertise, and, if appropriate, his or her title. For somebody who works for a company, we store the level and position held.
▪ For each instructor (about 300), we will show the surname, age, place of birth, the edition of the course taught, those taught in the past and the courses that the tutor is qualified to teach. All the instructors’ telephone numbers are also stored. An instructor can be permanently employed by the training company or can be freelance.
Statements about Trainees
For each trainee (about 5000), identified by a code, we want to store the social security
number, surname, age, gender, place of birth, current employer’s, previous employers (and
start date and end date of the period employed), the courses editions attended (there
are about 200 courses) and the final assessment of each course edition.
![Page 61: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/61.jpg)
Example▪ We wish to create a IS for a company that runs training courses. For this, we must
store data about the trainees and the instructors.
▪ For each trainee (about 5000), identified by a code, we want to store the social security number, surname, age, gender, place of birth, current employer’s, previous employers (and start date and end date of the period employed), the courses editions attended (there are about 200 courses) and the final assessment of each course edition.
▪ For each employer we store the name, address, and phone number
▪ We need also to represent course editions and, for each day, the places and times the classes are held. Each course has a code and a title and any course can be given any number of times. Each time a particular course is given, we will call it an ‘edition’ of the course. For each edition, we represent the start date, the end date, and the number of participants.
▪ If a trainee is a self-employed professional, we need to know his or her area of expertise, and, if appropriate, his or her title. For somebody who works for a company, we store the level and position held.
▪ For each instructor (about 300), we will show the surname, age, place of birth, the edition of the course taught, those taught in the past and the courses that the tutor is qualified to teach. All the instructors’ telephone numbers are also stored. An instructor can be permanently employed by the training company or can be freelance.
Statements about employers
For each employer we store the name, address, and phone number
![Page 62: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/62.jpg)
Example▪ We wish to create a IS for a company that runs training courses. For this, we must
store data about the trainees and the instructors.
▪ For each trainee (about 5000), identified by a code, we want to store the social security number, surname, age, gender, place of birth, current employer’s, previous employers (and start date and end date of the period employed), the courses editions attended (there are about 200 courses) and the final assessment of each course edition.
▪ For each employer we store the name, address, and phone number
▪ Each course has a code and a title and any course can be given any number of times. Each time a particular course is given, we will call it an ‘edition’ of the course. We need also to represent course editions and, for each day, the places and times the classes are held. For each edition, we represent the start date, the end date, and the number of participants.
▪ If a trainee is a self-employed professional, we need to know his or her area of expertise, and, if appropriate, his or her title. For somebody who works for a company, we store the level and position held.
▪ For each instructor (about 300), we will show the surname, age, place of birth, the edition of the course taught, those taught in the past and the courses that the tutor is qualified to teach. All the instructors’ telephone numbers are also stored. An instructor can be permanently employed by the training company or can be freelance.
Statements about Courses
Each course has a code and a title and any course can be given any number of times. Each time a particular course is given, we will call it
an ‘edition’ of the course. We need also to record for each day, the places and times the
classes are held. For each edition, we represent the start date, the end date, and the number of
participants.
![Page 63: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/63.jpg)
Example▪ We wish to create a IS for a company that runs training courses. For this, we must
store data about the trainees and the instructors.
▪ For each trainee (about 5000), identified by a code, we want to store the social security number, surname, age, gender, place of birth, current employer’s, previous employers (and start date and end date of the period employed), the courses editions attended (there are about 200 courses) and the final assessment of each course edition.
▪ For each employer we store the name, address, and phone number
▪ We need also to represent course editions and, for each day, the places and times the classes are held. Each course has a code and a title and any course can be given any number of times. Each time a particular course is given, we will call it an ‘edition’ of the course. For each edition, we represent the start date, the end date, and the number of participants.
▪ If a trainee is a self-employed professional, we need to know his or her area of expertise, and, if appropriate, his or her title. For somebody who works for a company, we store the level and position held.
▪ For each instructor (about 300), we will show the surname, age, place of birth, the edition of the course taught, those taught in the past and the courses that the tutor is qualified to teach. All the instructors’ telephone numbers are also stored. An instructor can be permanently employed by the training company or can be freelance.
Statements about types of employers
If a trainee is a self-employed professional, we need to know his or her area of expertise, and, if appropriate, his or her title. For somebody who works for a company, we store the level
and position held.
![Page 64: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/64.jpg)
Example▪ We wish to create a IS for a company that runs training courses. For this, we must
store data about the trainees and the instructors.
▪ For each trainee (about 5000), identified by a code, we want to store the social security number, surname, age, gender, place of birth, current employer’s, previous employers (and start date and end date of the period employed), the courses editions attended (there are about 200 courses) and the final assessment of each course edition.
▪ For each employer we store the name, address, and phone number
▪ We need also to represent course editions and, for each day, the places and times the classes are held. Each course has a code and a title and any course can be given any number of times. Each time a particular course is given, we will call it an ‘edition’ of the course. For each edition, we represent the start date, the end date, and the number of participants.
▪ If a trainee is a self-employed professional, we need to know his or her area of expertise, and, if appropriate, his or her title. For somebody who works for a company, we store the level and position held.
▪ For each instructor (about 300), we will show the surname, age, place of birth, the edition of the course taught, those taught in the past and the courses that the tutor is qualified to teach. All the instructors’ telephone numbers are also stored. An instructor can be permanently employed by the training company or can be freelance.
Statements about types of instructors
For each instructor (about 300), we will show the surname, age, place of birth, the edition of the course taught, those taught in the past and the
courses that the tutor is qualified to teach. All the instructors’ telephone numbers are also stored. An instructor can be permanently employed by
the training company or can be freelance.
![Page 65: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/65.jpg)
![Page 66: Conceptual Modeling - polito.itTypically, only three values are used: 0, 1 and the symbol * (many) Minimum: 0 or 1 0 means the participation is optional, 1 means the participation](https://reader034.vdocuments.net/reader034/viewer/2022042216/5ebe8006e2c1694649185794/html5/thumbnails/66.jpg)
References
▪ Fowler, M. “UML Distilled: A Brief Guide to the Standard Object Modeling Language - 3rded.”, Addison-Wesley Professional (2003)
▪ Lindland, O.I., Sindre, G. and Solvberg, A.: Understanding quality in conceptual modeling. IEEE Software, 11(2):42-49, (1994).
▪ Bolloju, N. and Leung, F.: Assisting novice analysts in developing quality conceptual models with UML. Communications of the ACM, 49(7), (2006).