Book a Demo

Author Topic: How to use and maintain a common data model as source for all other models  (Read 2525 times)

mattlightbourn

  • EA Novice
  • *
  • Posts: 2
  • Karma: +0/-0
    • View Profile
I would like to find out if there is a standard or best practice way to maintain and use a centralised set of classes and attributes in Sparx Enterprise Architect (currently using v15 but the business is considering moving to the cloud version).

I asked this question to the stack overflow community and I had an excellent response from Bellekens however, it requires an add-in to schema composer; one of my users is using Sparx on a Mac on CrossOver which means it isn't a workable solution, I'm looking for an alternative to this - is there an out of the box way of doing this please?

Goal
I am trying to create a centralised data dictionary containing classes and attributes with their definitions and tags. I would then have domain specific conceptual and logical model diagrams where I would link either classes (with any inherited attributes) or attributes directly into classes I define in the diagrams.

My Current Approach
Within a model I created a package for data dictionary and then other packages for each of the domains (party, product, etc.) that contain both conceptual and logical models. I can drag into a diagram any attribute from the data dictionary package and it works fine, I can even see the definitions in the notes and the tags come across.

Limitations/Problems
  • When I generate documentation for a domain diagram, it does not include any definitions for any of the classes and attributes that reside in the data dictionary package.
  • Documentation aside, my hope was to maintain the definition of an attribute in the data dictionary and for it to be inherited everywhere that attribute is used. It instead, appears to make a duplicate

Richard Freggi

  • EA User
  • **
  • Posts: 498
  • Karma: +18/-7
    • View Profile
I recommend using UML inheritance instead of making copies of the CDM classes.  Create a NEW class for the entity your user is working on and set the CDM class as its generalization.  Ten click 'show inherited attributes, operations' etc. on the new class. It will show the CDM attributes without copying them.  Documentation should have a similar option to show inherited attributes and operations.

mattlightbourn

  • EA Novice
  • *
  • Posts: 2
  • Karma: +0/-0
    • View Profile
Hi @Richard, I just tried that out and realised that I have been using inherited attributes to create a person class which is generalised by classes that contain attributes such as person_name, demographics and psychographics.

For person, when I make them display inherited attributes on my diagram, they all show. However, if I change view to specification, it only shows the Notes for person, it does not list any of the inherited attributes and their notes.

If I do what you suggested which was to create a class on the diagram and then link to person from my data dictionary as a generalisation and then remove the data dictionary element from my diagram, then set to inherit attributes on that one and then go to specification view, it shows Person but the notes are blank and still no inherited attributes listed.

Thanks, Matt