4.7.5 Develop UML class diagram for your UML model

From Geostandards

Jump to: navigation, search

4.1 Introduction

4.1.1 Goal and scope of course
4.1.2 Pre-requisites: knowledge of OO-modeling, DBMS DDL/SQL and/or XML schema, specific domain/theme
4.1.3 Introduction of participants & teachers
4.1.4 Tools
4.1.5 Organization of course
4.1.6 Course reading material
4.1.7 Purpose IM: 1. enable communication, 2. built system
4.1.8 Inventory of participants' most favorite domains/themes

4.2 UML Class diagram

4.2.1 Basic principles
4.2.2 Advanced principles

4.3 Hands-on 1: basic tools

4.3.1 Explanation of initial model assignment
4.3.2 Create UML class diagram for model with 3 or 4 classes
4.3.3 Define database tables for these objects (by hand)
4.3.4 Create XML schema for these objects (by hand?)
4.3.5 Evaluation of the results
4.3.6 Use of Enterprise Architect

4.4 Frameworks

4.4.1 OGC/ISO/CEN/NEN
4.4.2 Focus on INSPIRE Generic Conceptual Model
4.4.3 GII context
4.4.4 Generic aspects: id's, references, time,etc
4.4.5 Reusable model patterns:
4.4.5.1 Topology (linear networks, partitions)
4.4.5.2 Observation data - resulting objects
4.4.5.3 Spatial object - relationship - person
4.4.6 Generic models, e.g. the 34 themes of INSPIRE

4.5 Methodology

4.5.1 User requirements, use cases
4.5.2 Inventory of available related data sets
4.5.3 Analyze the differences (data components, checklists)
4.5.4 Take initial decisions and develop model:
4.5.4.1 UML class diagram (with attributes, associations)
4.5.4.2 F&A catalogue with descriptions
4.5.4.3 Specific data types (enummerations, code lists and values)
4.5.5 Cost-benefit analysis
4.5.6 Review with stakeholders (and revise if needed)
4.5.7 Test model, develop prototype data (and revise if needed)

4.6 Example Information Model

4.6.1 xx
4.6.2 Real world example from INSPIRE cadastral parcels
4.6.3 Link to ISO 19152 LADM
4.6.4 In total 8 Categories of use cases identified
4.6.5 Closer look at 2 use cases
4.6.6 Check list with summary of all use cases
4.6.7 Conflicts of interest, feasibility
4.6.8 Vision within a model (growing options)
4.6.8.1 Optional elements (objects, attributes, associations,...)
4.6.8.2 Advanced geometries (3D, non-linear,...)
4.6.8.3 Multi-scale/representations vs. vario-scale

4.7 Hands-on 2: own model

4.7.1 Identify and create two use case descriptions
4.7.2 Go over the data components and describe needs
4.7.3 Explore information content
4.7.4 Analyze differences between needs and availables
4.7.5 Develop UML class diagram for your UML model

4.8 Implement the model

4.8.1 OMG MDA principles PIM, PSM
4.8.2 Generate implementations
4.8.3 Generic PIM - Specific PIM
4.8.3.1 - PSM1 (PostgreSQL/PostGIS) - SQL/DDL
4.8.3.2 - PSM2 (XML/GML schema) - XSD
4.8.3.3 - PSM3...
4.8.4 Run SQL/DDL within DBMS to set up model, load/create data
4.8.5 Generate XML/GML according to XSD

4.9 Adding more semantics

4.9.1 Add business rule, i.e. constraints on the data within the model
4.9.2 Classification main categories of constraint types
4.9.3 Describe in natural text using the literal entities from UML class diagrams (classes, attributes, associations)
4.9.4 Formalize the constraints into OCL (object constraint language)
4.9.5 Implementation/use of constraints ? non trivial
4.9.6.1 DBMS: either constraints views selection violations or triggers and procedures (heavy transform)
4.9.6.2 XML/XSD: literal encoding of OCL string

4.10 Hands-on 3: convert model

4.10.1 Convert model from hands-on 1 to SQL/DDL
4.10.2 Load the script into the DBMS
4.10.3 Insert data and perform some queries
4.10.4 Convert model to XML schema and inspect resulting XSD
4.10.5 Create XML data document from DBMS export to XML
4.10.6 Validate XML data against XML schema (optional)
4.10.7 Same steps as above but now for own model of hands-on 2 (with spatial data), manual corrections...

4.11 Conclusion

4.11.1 Summarize main points
4.11.2 Presentation of participants' hands-on result
4.11.3 Additional tips&tricks
4.11.4 National modeling activities (NEN3610+IMxx)
4.11.5 Discussion on model mapping
4.11.6 Further reading/studying
4.11.7 Evaluation by participants


Exercise: Develop a first cut UML class diagram for your domain model. Use Enterpise Architect as the modeling environment. 


The previous exercises have provided a general understanding of the scope, requirements and all ready existing harmonization efforts. In this exercise you will make a UML class diagram that gives a first impression how the specific domain is structured in geographic features, that are characterized by attributes, that are constrained by datatypes and codelists.


Step 1) Do a quick brainstorm on classes that are potentially relevant for your specific domain


Step 2) Assign candidate classes. Analyze the result of step 1). Basic questions are:

  • Which elements are synonymous?
  • Which elements are more like objects?
  • Which elements can be grouped in classes?
  • Which elements are usable classes?


For the class question. One should all ways evaluate if the potential class provides independent objects that are relevant to the domain you are modeling. Do objects (instances) of the class really have an independent information content? Since we are modeling in the geo-information domain the boundary of objects is an important aspect of information content. Which objects do we want to distinguish in the simulated reality? Do these objects have different characteristics (attributes)?

  • Is there a grouping of classes? Which classes can be grouped into more general classes. Assign super classes and sub classes.


Step 4) Use Enterprise Architect to design a general UML diagram from the candidate classes that are chosen in step 3. Try to incorporate several super classes (GeoObject is a suggestion) and specialize subclasses.


Step 5) Assign basic definitions for the defined classes.


Step 6) Evaluate if there are relations (associations, aggregations, compositions) between classes (instances of classes). For instance between Building and Owner, Municipality and Province etc. Name the specific roles the classes can have in these associations.


Step 7) Specify for each class the attributes that belong to the class. When identifying candidate attributes try to evaluate if this information really is part of the ‘responsibility’ of the instances. Should instances be able to provide this kind of information? Or are there other classes that are more appropriate?


Step 8) For the attributes assign datatypes or enumerations. Examples are CharacterString, Integer, GM_Surface, Date, etc.


Step 9) Assign multiplicity to attributes and roles. Which attributes are mandatory (1), which are optional (0..). Which have a multiple cardinality. (x..n)?


Step 10) Evaluate if there are any constraints on model elements. Evaluate if there are dependencies between attributes or attribute values. Dependencies between roles of classes. Formulate the dependencies. Assign constraints with notes to the model elements.


Step 11) You have constructed a UML class diagram for the specified domain. Explain the class diagram to a fellow course participant. Explain the scope and modeling decisions. Discuss issues and discuss open issues in particular. Try to get useful feedback that can be use for improving the class diagram.
Remark:
In the practice of modeling a next step would be to present the results to the stakeholders. Feedback from that session will then lead to subsequent re-modeling. A process of several iterations will generally lead to a consensus on the class model.


Step 12) End. Congratulations. You have constructed a class diagram and presented it to your fellow course participant. You can use the received feedback and your improved vision on the domain to improve and or augment the class diagram. But for now this exercise has ended and hopefully provided you with a valuable experience designing an UML class diagram.


Example: Below a UML class diagram of the Land use model is presented that might be the result of a similar exercise.

Image:LandClassModel LR.PNG

previous Information modeling next
Personal tools