A concept model is a concrete representation of the world that disambiguates concepts. This is not a design, but it can provide the basis for all system development phases, as well as generate schemas, code, and tests. This presentation describes how.
This is a presentation given at the No Magic World Symposium in May, 2017.
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Creating Systems from Concept Models
1. Creating Systems from
Concept Models
Jim Logan
Director of Semantic Technologies and Interoperability
Product Manager of the Cameo Concept Modeler
2. Agenda
• Why model concepts?
• What is concept modeling?
• How do we know when a concept model is correct?
• Why would you create a system from a concept model?
• How can we create a system from a concept model?
How does a concept model help analysis?
How does a concept model help design?
How does a concept model help implementation?
How does a concept model help testing?
• What about legacy systems?
2
3. Why Model Concepts?
• Designs often lose constraints, conflate things, simplify, and lose
meaning
• Systems therefore become difficult to integrate
• We want to describe the domain as it is, without coloring it
• Provides a “gold standard” for mapping designs to the domain
• Provides a basis for semantic interoperability
4. Why Model Concepts?
• Information is different from what exists in the world
• Information is something that exists in the world
• But, information is not the same as the thing it represents!
• Many ways to say what information represents
• EncodedIntoElementNames
• Data element descriptions
• Data dictionary
• Controlled vocabulary
• Taxonomy
• Ontology
• Concept Model!
• A reasoner can ensure logically consistency
• We can disambiguate roles (e.g., Pilot vs Pilot of a flight)
• We can untangle things from roles (e.g., Person vs. Customer)
4
A concept model
provides meaning!
5. What is Concept Modeling?
• A concept model is a concrete description of a domain
• A way of disambiguating things:
• What sort of thing is this? (i.e., taxonomy)
• What distinguishes it from other things? (i.e., ontology)
• A concept model is not an abstraction of a prescriptive design
• Things we avoid:
• Data structures (e.g., tables / columns)
• Computer representations (e.g., “int” vs “char”)
• Units of measure (e.g., pounds on planet Earth vs. kilograms on Mars)
• Specific identifiers
• Optimizations for any application
• The Cameo Concept Modeler has been supporting concept modeling
for ten releases!
5
6. How Do We Know A Concept Model Is Correct?
• Validation is critical!
• SMEs should own these concept models
• Three major rules for SME engagement:
Represent the realities of the domain
Use the language of the SME
Make models self-evident
6
7. How Does CCM Help?
• A natural language glossary explains a model in plain English
• High level diagrams omit computational concerns
• AutoStyler creates small, focused, hyperlinked defining diagrams
• CCM has been supporting this for ten releases!
7
8. How Does the Cameo Collaborator Help?
• Publishes glossaries and diagrams to the web
• Only a web browser is needed
• SMEs review and comment directly on diagrams and glossaries
• CC has been supporting CCM models for FIBO since Summer 2016!
8
9. Why Would You Create a System from a Concept
Model?
• Raises the level of abstraction above code and schemas
Business fundamentals are relatively stable
Business terminology should resonate through an organization
Requirements should use unambiguous terms
• Provides a backbone for a system
• Enables other capabilities
Querying across systems in the language of the business (coming in CCM
19.x!)
Semantic interoperability among systems (Future)
9
10. How Can We Create a System from a Concept Model?
• Continue with analysis, design, implementation, and testing
• Continue with waterfall, iterative, Agile, …
• But, raise the level of abstraction
• Favor “convention over configuration” (configure only
unconventional aspects)
• “Compile” high-level analysis-level models + action language
This has been done since the 1980’s!
No longer confined to proprietary meta-models
We now have fUML, precise state machine semantics, and Alf
The Cameo Simulation Toolkit has worked with Alf for over a year!
• Next, we’ll look at how a concept model helps in each phase
10
11. How Does a Concept Model Help Analysis?
• Provides a controlled vocabulary and meaning for:
Requirements
Use cases
User stories
Business processes
• Concepts are directly usable in business process models
• “Cherry picking” from a concept model implies information
requirements
• Provides a starting point for design in the language of the business
11
12. How Does a Concept Model Help Design?
• Provides a controlled vocabulary and meaning for designers
• Provides a first-cut of an information model:
Copy cherry-picked concepts into a new namespace
Retain traceability (i.e., information element «Represents» concept)
Adjust the information model to address non-functional requirements
Choose data types
Use “convention over configuration”
We are planning features to support all this in CCM 19.x!
• Provides a backbone for:
Interfaces (i.e., operations / signal receptions)
State transition models
The Alf plug-in already works this way!
Systems can already be simulated using the Cameo Simulation Toolkit!
12
13. How Does a Concept Model Help Implementation?
• Provides a controlled vocabulary and meaning for implementation of
interfaces
• First:
Implement interfaces using Alf
Configure model compiler to address non-functional requirements
(security, reliability, maintainability, scalability, and usability)
Configure model compiler for any unconventional aspects
• Second:
Compile the information model into schemas (We are planning features
to support this in CCM 19.x!)
Compile the model into executable components (Planned for Alf plug-in)
• A concept model explains the meaning of things in Alf
13
14. How Does a Concept Model Help Testing?
• Provides a controlled vocabulary and meaning for clearer
requirements and clearer description of bugs
• Some testing can happen in the Cameo Simulation Toolkit right
now!
• Hypothesis: Alf can be used to generate automated tests
14
15. What about Legacy Systems?
• A concept model can be used for semantic interoperability
• Short term: unidirectional mapping for querying across systems in
the language of the business (planned for CCM 19.x!)
• Long term: bidirectional mappings for full federation of data
15
16. Summary
• We need to know what information represents
• A concept model is a concrete representation of the world that
disambiguates concepts
• A concept model is not a design
• The SMEs should own a concept model
• A concept model provides the basis for all development phases
Expressing unambiguous requirements
Transforming a concept model into an information model / analysis
model
Augmenting with Alf
Simulation with the Cameo Simulation Toolkit
Generation of schemas, code, and tests
• CCM will be providing this functionality in 19.x
• A concept model paves the way for semantic interoperability
16
17. Other Related Talks This Week
• Data Federation and Integration Using Conceptual Reference Models
Cory Casanave
• Hands On with the Alf Action Language: Making Executable Modeling
Easier
Ed Seidewitz
• Future of Data Models
Rokas Bartkevicius and Jim Logan
17