Creating Systems from
Concept Models
Jim Logan
Director of Semantic Technologies and Interoperability
Product Manager of the Cameo Concept Modeler
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
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
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!
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
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
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
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
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
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
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
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
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
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
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
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
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
Jim Logan
Director and Product Manager
jlogan@nomagic.com

Creating Systems from Concept Models

  • 1.
    Creating Systems from ConceptModels Jim Logan Director of Semantic Technologies and Interoperability Product Manager of the Cameo Concept Modeler
  • 2.
    Agenda • Why modelconcepts? • 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 ConceptModeling? • 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 WeKnow 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 CCMHelp? • 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 theCameo 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 YouCreate 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 WeCreate 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 aConcept 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 aConcept 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 aConcept 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 aConcept 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 LegacySystems? • 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 needto 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 TalksThis 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
  • 18.
    Jim Logan Director andProduct Manager jlogan@nomagic.com