Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

From UML/OCL to natural language (using SBVR as pivot)


Published on

Validate your UML/OCL models by producing natural language descriptions that can be read by the stakeholder

Published in: Technology
  • Be the first to comment

  • Be the first to like this

From UML/OCL to natural language (using SBVR as pivot)

  1. 1. From UML/OCL to SBVR Specifications: a Challenging Transformation Information Systems 35 (4), June 2010, Pages 417-440 Jordi Cabot 1 , Raquel Pau 2 , Ruth Ravent ós 2 INRIA / École des Mines de Nantes 1 Universitat Politècnica de Catalunya 2
  2. 2. Introduction <ul><li>MDD/MDA/…. : Code generated from models Correctness of models more important than ever </li></ul><ul><li>Correctness= Verification + Validation </li></ul><ul><li>Verification: to make sure conceptual modelers “defined the CS right”  Satisfiability, redundancy,… </li></ul><ul><li>Validation: to make sure modelers “defined the right CS” </li></ul><ul><li>Many approaches dealing with verification: e.g. UMLtoCSP </li></ul><ul><li>Few ones focusing on validation </li></ul>
  3. 3. Goal To propose a method for the validation of UML/OCL models <ul><li>Stakeholders can directly validate the schema </li></ul><ul><li>SBVR can be used as intermediate representation for further analysis </li></ul><ul><li>Transformation UMLtoSBVR : The UML/OCL schema is expressed using the SBVR standard </li></ul><ul><li>Translation SBVRtoNaturalLanguage : The SBVR model is described using natural language sentences </li></ul>Steps Benefits
  4. 4. Goal Modeling Language BR Description Language Bill Customer Update Marketing Inventory Authorize Credit Order Entry Schedule Delivery Stakeholder Explains Designer Models UML CASE Tool UML Model Transf. M2M: UML to SBVR Transf M2T: SBVR to Natural Language SBVR Model Structured English RuleSpeak . . . Text Validates
  5. 5. Input UML Model SBVR intermediate representation M2M ATL Transf. product Concept type: object type Necessity: each price of product is greater than zero price Concept type: role Definition: integer that represents the value of a product product has price Concept type: is-property-of fact type Necessity: each product has exactly one price family has code Concept type: is-property-of fact type Necessity: each family has exactly one code product belongs to family Concept type: associative fact type Necessity: each product belongs to exactly one family Natural Langauge (Structured English) MOFScript Transf. context Product inv: price>0 Example
  6. 6. Semantics of Business Vocabulary and Business Rules (SBVR) <ul><li>SBVR is a standard specification proposed by the OMG to develop and structure the business vocabulary that is supplied by the domain expert (i.e., the customer) to express a set of business rules. </li></ul>
  7. 7. From UML to SBVR <ul><li>Pattern-based translation described using a kind of SBVR concrete syntax that describes the metamodel instantiation (used in the standard) </li></ul><ul><li>For each Class c  CL : </li></ul><ul><ul><li>The conceptual schema includes an object type, ob </li></ul></ul><ul><ul><li>. ob has a designation whose signifier is the text (i.e. the name of the class) </li></ul></ul><ul><li>For each attribute, a  ATT of type other than Boolean : </li></ul><ul><ul><li>The conceptual schema includes an is-property-of fact type, i, </li></ul></ul><ul><ul><li>. i has a designation, whose signifier is the text 'has', </li></ul></ul><ul><ul><li>. i has two fact type roles, fr1 and fr2, </li></ul></ul><ul><ul><li>.. The role fr1 has a designation whose signifier is the text </li></ul></ul><ul><ul><li>.. The role fr1 ranges over the object a.class (i.e. the object type created to represent the class owning the attribute), </li></ul></ul><ul><ul><li>.. The role fr2 has a designation whose signifier is the text, </li></ul></ul><ul><ul><li>.. The role fr2 ranges over a.type. </li></ul></ul><ul><li>The rest of the patterns in the article … </li></ul>
  8. 8. From OCL to SBVR <ul><li>Pattern-based translation, depending on the kind of OCL expression (invariants, derivation rules,…) </li></ul><ul><li>Integrity constraints are translated to SBVR logical formulations. Transformation not unique. </li></ul><ul><li>We first describe the skeleton translation for the invariant and afterwards the SBVR instantiation corresponding to its body </li></ul><ul><li>Given a constraint c defined over a context type t and with a body condition b, the equivalent SBVR rule for c would be: </li></ul><ul><ul><li>The rule is a proposition meant by a necessity formulation. </li></ul></ul><ul><ul><li>. The necessity formulation embeds a universal quantification. </li></ul></ul><ul><ul><li>. . The universal quantification introduces a variable. </li></ul></ul><ul><ul><li>. . . The variable ranges over the concept t. </li></ul></ul><ul><ul><li>. . The universal quantification scopes over …b condition…. </li></ul></ul>
  9. 9. From OCL to SBVR: some patterns <ul><li>not X </li></ul><ul><ul><li>The previous translation introduces a logical negation. </li></ul></ul><ul><ul><li>. The logical negation has a negand that is a… translation of X … </li></ul></ul><ul><li>X [< | > |= ] Y </li></ul><ul><ul><li>The previous translation introduces an atomic formulation </li></ul></ul><ul><ul><li>. The atomic formulation is based on the fact type quantity 1 [is less than | is greater than| is equal to] quantity 2 </li></ul></ul><ul><ul><li>. The atomic formulation has the first role binding. </li></ul></ul><ul><ul><li>. . The first role binding is of the role quantity 1 </li></ul></ul><ul><ul><li>. . The first role binding binds to the … translation of X … </li></ul></ul><ul><ul><li>. The atomic formulation has the second role binding. </li></ul></ul><ul><ul><li>. . The second role binding is of the role quantity 2 </li></ul></ul><ul><ul><li>. . The second role binding binds to the… translation of Y … </li></ul></ul>
  10. 10. From OCL to SBVR: some patterns <ul><li>C -> [exists | forAll] (v | boolean-condition-over-v) </li></ul><ul><ul><li>The previous translation of C introduces an [existential | universal] quantification </li></ul></ul><ul><ul><li>. The quantification introduces a variable (v) </li></ul></ul><ul><ul><li>. . The variable ranges over the concept ‘T' </li></ul></ul><ul><ul><li>. The quantification scopes over the boolean-condition-over-v </li></ul></ul><ul><li>C -> size() [>=| <=| = ] constant </li></ul><ul><ul><li>The previous translation of C introduces an [at-least-n quantification| at-most-n quantification| exactly-n quantification] </li></ul></ul><ul><ul><li>. The quantification has the [minimum|maximum|equal] cardinality constant </li></ul></ul><ul><ul><li>. The quantification introduces a variable </li></ul></ul><ul><ul><li>. . The variable ranges over the concept T </li></ul></ul><ul><ul><li>. The variable is restricted by … </li></ul></ul><ul><ul><li>. The quantification scopes over … </li></ul></ul>
  11. 11. From SBVR to Structured English <ul><li>We want to paraphrase the obtained SBVR representation in order to get natural language descriptions for the concepts and rules in it </li></ul><ul><li>The standard provides a description of the Structured English and RuleSpeak English notations to express SBVR specifications in natural language </li></ul><ul><li>Unfortunately, the standard does not provide a straightforward nor complete mapping from SBVR instances to such notations. </li></ul><ul><ul><li>E.g. Paraphrasing binary fact types is covered but not n-ary ones </li></ul></ul><ul><ul><li>Therefore, we have developed our own mapping strategy/extension </li></ul></ul>
  12. 12. From SBVR to Structured English <ul><ul><li>Basic idea: find the most inner quantification and go backwards from there </li></ul></ul>
  13. 13. Proposed SBVR extensions <ul><li>After our experience we belive that SBVR could be improved with the following extensions. </li></ul><ul><li>Note that SBVR has been defined as a self-extensible language, this is, the own metamodel expects these extensions </li></ul><ul><li>Ext1: Explicit support for data types </li></ul>
  14. 14. Proposed Extensions <ul><li>Distinction between association, aggregation and composition relationships </li></ul><ul><li>Support for arithmetic operations. </li></ul><ul><ul><li>Common OCL arithmetic operations as additions, multiplications, divisions,… cannot be mapped to existing SBVR fact types. </li></ul></ul><ul><ul><li>Most of these fact types can be represented as new associations over the predefined Quantity element </li></ul></ul>
  15. 15. Proposed Extensions <ul><li>Support for collections is also limited </li></ul><ul><li>A new collection metaclass facilitates the definition of common collection operations. New metaclasses for other collection types should also be added </li></ul>
  16. 16. Implementation
  17. 17. Implementation: ATL M2M
  18. 18. Implementation: MOFScript M2T
  19. 19. Conclusions and further work <ul><li>We have presented a new method for the validation of UML/OCL models </li></ul><ul><li>We believe our paper is a step towards a tighter integration of the business and UML/OCL communities as well </li></ul><ul><li>Using SBVR as pivot representation opens the possibility to other transformations: UML/OCL to OWL or to R2ML </li></ul><ul><ul><li>As future work we would like to provide transformations from SBVR to (new) Structured Spanish/French/….. </li></ul></ul><ul><ul><li>Concrete syntax for SBVR? (maybe not for stakeholders) </li></ul></ul><ul><li>Explore the SBVR to UML/OCL transformation. </li></ul><ul><ul><li>Partial transformation (not all SBVR concepts can be translated to UML) </li></ul></ul><ul><ul><li>SBVR specifications are at the CIM level and thus may include rules that are not aimed at being automated as part of a software system </li></ul></ul>
  20. 20. Questions? <ul><li>[email_address] </li></ul><ul><li> </li></ul><ul><li> </li></ul>