Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Modesto Vega

Pages: 1 2 [3] 4 5 ... 11
31
General Board / Importing directly into an EA repository
« on: June 03, 2016, 05:55:11 pm »
Let me just start by saying that this sounds like complete heresy to me but I am going to ask about it. Other than the usual mechanisms, CSV imports or Excel macros, has anybody considered or even tried importing directly into the database tables of an EA repository?

The reason for such a heretical question is that the usual mechanisms, quoted above, are proving to be too "slow" to keep up with release cycles of a relatively large solution.

Hopefully nobody starts screaming "heresy".  ;) 

32
General Board / Re: Nesting classes (and generalization)
« on: April 23, 2016, 01:00:15 am »
Sometimes the automatic nesting is a good thing.
For example when using BPMN diagrams, or modelling user interfaces.

The option Tools|Options|Objects|Support for Composite Objects controls the automagical nesting behavior.

Geert
I will always learn something from you. Pity it cannot be done by type.

33
General Board / Re: Nesting classes (and generalization)
« on: April 22, 2016, 08:25:51 pm »
I wasn't expecting such a reply, thanks for the contributions.

Reading through the answers, I suppose an important part of the question is: when is it reasonable to use nested classes?
[SNIP]
AND you MUST distinguish visual embedding versus nesting.

For the record, Nesting is about access (as KP said) it's an inner-class which should not be able to be accessed without passing through the outer class.  Specialization (get into the habit of calling it Specialization rather than Generalization) is about creating a (specialized) sub-class with a structure similar to the base - whereas there is NO such requirement in the nested class
In our framework, we go to extreme lengths to stop Sparx "nesting things" and in fact if we find it has we un-nest them - automagically.
[SNIP]
Visual embedding is an exposition mechanism NOT a definition mechanism!

In our framework, we have instantiated the concept of the Generalization Set (Specialization Set) to allow multiple Set types.  We see NO reason why the metaphor should not be extended to ALL relationship types, SO LONG as the type is clearly communicated. 

The set element is interposed between the encompassing element and the set members - both within the repository and on the diagram.   You're not allowed to have a visually embedded element without having specified the relationship.

Paolo
Paolo is correct
1) I am looking at representing specialisation (rather than generalisation) at a conceptual/abstract level which is often close to typing; please note that not all conceptual/abstract classes have a code implementation
2) I am visually embedding conceptual/classes for exposition/presentation reasons: it communicates the message better and it reduces the size of the diagrams
3) All visually embedded elements have a specified relationship, which is always an specialisation (but could be anything else)

IMHO architects who habitually visually embed elements are very lazy and inconsistant modellers.
If you have never faced a situation where you had to use visual embedding you are not modelling something too complex, or you do not print your diagrams, or you are not very environmentally conscious.
Conclusion, get rid of a bad having (nesting) and stop Sparx from automagically “nesting things”.

34
General Board / Nesting classes (and generalization)
« on: April 22, 2016, 01:18:22 am »
I have been extensively using nested stereotyped classes each time that a generalisation is involved; for example:

Diagram
-----Structure Diagram
----------------Class Diagram
----------------Component Diagram
-----Behaviour Diagram
----------------Activity Diagram
----------------Use Case Diagram

In some diagrams I want to depict the generalised classes inside the generalising classes (to save space) and in other diagrams I want to depict a hierarchy. If the classes are nested, Sparx allows me to do the former but does not like me doing the later.

Other than not nesting the classes, is there anything I can do to be able to create both diagrams?


35
MOF, OWL, ArchiMate and IDEF5 are all languages that could be used to express ontologies. However, a class UML diagram can also be used to express an ontology.
Ontologies are not the languages used to express them. The languages are the means to an end, expressing an ontology.

I'd love to see you try and model a disjoint in Archimate :-)
You don't  ;)

I seem to have made a profession of modelling disjoints. Keep in mind disjoints are hindsight, while a well joined architecture is foresight. The difference between hindsight and foresight:  hindsight happens after the event, foresight before.

Disjointed architectures are architectures that already exist, they are not new designs. This is approaching the edge of consistency, similar to approaching the edge of chaos.

By the way the whole point of this thread was to understand what is involved in putting together an MDG to model disjoints. IMHO, you cannot model a disjoint using just one language, which in Sparkish, means multiple profiles.

36
There is a risk of confusing 2 things:

1) what an ontology is
2) the languages created by standard makers to express ontologies

I don't particularly enjoy quoting Wikipedia, but the following is a good definition and saves me having to consult my Kindle: “An ontology is a formal naming and definition of the types, properties, and interrelationships of the entities that really or fundamentally exist for a particular domain of discourse”.

An ontology is essentially a controlled vocabulary describing a particular business domain and the interrelationships between item in the vocabulary. The interrelationships are not just generalizations, which in this case are really types; there are also associations and information flows. With regards to the later, a Delivery happens after Payment, and Payment happens after Purchase.

MOF, OWL, ArchiMate and IDEF5 are all languages that could be used to express ontologies. However, a class UML diagram can also be used to express an ontology.
Ontologies are not the languages used to express them. The languages are the means to an end, expressing an ontology.

37

Conceptual:
 - Managed by business analysts
 - Models things/concepts in the real world as they are know by the business, regardless of later automation
 - Focusses only only on the definitions, not on any relations or attributes. Only taxonomy (Generalization) is allowed.

I would add Association to Generalisation, at least from a data point of view. If you are building an ontology, you need associations.

In utopia, business analysts should drive this but it is rarely the case. Typically I same seen this driven by a Business Architect or Data Architect or modeller with a business outlook.

Are the two models two different levels of models or two models at the same level that need to be separate, but linked, for reasons other than the level of the model.
I see them as 2 linked views of the same model. Furthermore, I will go as far as arguing that they have to be linked all the way down to physical level to map what I would described as the architectural continuum.

38
Just to clarify further what we are trying to do. We are trying to put an MDG together that covers the following:

1) Enterprise Data Architecture - covers both Abstract/Conceptual and Logical (can explain the difference if required) it has 3 levels

1.1) Subject Area Model - currently customised stereotype of Activity
[Note: I am still unclear to which part of Core UML Modelling Activity belongs to]

1.2) Domain Model - currently domain, not customised (can also explain why we are doing this if needed)

1.3) Conceptual Data Model - currently customised stereotype of Class

1.4) Logical Data Model (at the enterprise level) - undecided

2) Application Architecture

2.1) Logical data models for each application using Database Engineering

2.2) Physical data models for each application using Database Engineering although we want to customise this to better represent functional partitioning by scheme

In addition, for reference only we might want to something related to Application Architecture using non-customised Component models, and something about Requirements and Actors.
Like Paolo we have an in-flight project and some customisation has been made by manually adding UML stereotypes using Project/Settings/UML Types; hence the question about “reverse engineering” a project, well really repository. 

39
Thanks for replies.

Regarding
I think Modesto in his «DataModel» question is (as is often the case) confusing model with diagram.  He's actually asking: "Does that mean a «DataModel» diagram uses the Data Modelling MDG?"
<<DataModel>> is a model stereotype. It does not relate to a diagram, to confuse matters. To reproduce follow these steps:

Using the wizard create a model using Database as the Technology and pick anything under Database Engineering. This will create a model with an stereotype of <<DataModel>>, inside 2 packages are created one called 'Logical Data Model' with no sterortype and another with <<Database>> as the stereotype for the pacakge.

Are you saying this is created using a Data Modelling MDG, presumably Database Engineering and/or Entity Relationship Diagram (see Extensions\MDG Technologies)? I so, is there a way of customising this MDG?

40
1) Do I have to start the process of creating an MDG file by creating a package profile on an existing model?

No.  I recommend you start with a separate EAP file with nothing in it and use the wizard to create you the basic MDG structure.

Quote from: Modesto Vega
2) If I am using more than one profile in my project/programme and want to customise all, do I need to create a package profile for each
profile I want to use?

Each profile is saved as a separate file, as is the diagram extensions, and each set of toolboxes.
Thanks Glassboy this clearly answers both questions and the answer is really much appreciated. This essentially means that to do what we have in mind I need 4 or 5 profiles, which is more of less what I have being suspecting all the way through this thread.

1) a profile for a customised domain model,
2) a profile for a customised class model,
3) a profile for a customised component model,
4) a profile for a customised data model,
5) possibly a profile for a customised use case model.

4) assumes that any model with a <<DataModel>> stererotype uses the Data Modelling profile. Anybody can confirm this?

Together with any profiles for custom diagrams, and toolboxes, developing the metamodel we have in mind becomes a project in its own.



41
(The need for multiple profiles as such is rare.)
Have you ever done Enterprise Architecture with just 1 profile? I haven't.

Unless you buy the TOGAF MDG or Zachman Framework MDG you need more than one profile and I will even go futher and argue that you need more than 1 profile even with both of them as physical data modelling is not covered by any of them.

For me, the whole point of using EA is that it can use many profiles within the same root node.

42
I give up here. wrt your original question I can not see what your issue is. Maybe you should do the same and start over with a new thread and a clear question.

q.
The questions we have arrived to cannot be clearer:

1) Do I have to start the process of creating an MDG file by creating a package profile on an existing model?
2) If I am using more than one profile in my project/programme and want to customise all, do I need to create a package profile for each profile I want to use?

Based on Geert's last contribution I think the answer is Yes to both.

43
The steps you list do not seem to make any sense in creating a MDG.

q.
Step1 is where you have an issue.

You have to model the metamodel (e.g. stereotypes extending metaclasses)
Start reading here: http://sparxsystems.com/enterprise_architect_user_guide/12.1/building_models/createprofile.html
So, you are saying that the 1st step is to create profile package needs to be created. Correct?
Gentlemen,

With all my due respects, I think that some contributors  might have missed a trick with the original question.

If, as I expect, I have to start by creating a Profile Package, thanks to Geert who as usual might have just hit the nail on the head, the only way I can do that is by creating a profile package inside a Model.

This is likely to mean that if I have a complex project containing various models all using different customised profiles within the same root node, I need to create a profile package for each customised profile.

In other words, if I have the following structure

Root node
-----Model 1 - Customised BPMN 2.0
-----Model 2 - Customised UML 2.0
-----Model 3 - Customised Oracle Data Model
-----Model 4 - Customised PostGRES Data Model

I need to create 4 package profiles, one per model and not one package profile. This is, of course, assuming that I can customised the data models.

Once I have done that, I am assuming that I can Generate an MDG Technology file including the 4 customised profiles.

44
(also notice the learning centre reference)
LOL

Step1 is where you have an issue.

You have to model the metamodel (e.g. stereotypes extending metaclasses)
Start reading here: http://sparxsystems.com/enterprise_architect_user_guide/12.1/building_models/createprofile.html
So, you are saying that the 1st step is to create profile package needs to be created. Correct?

45

Quote
And please don't tell me again to follow the online help because I have and is rubish.

Well I have to disagree. I've found online help very useful when creating an MDG. I've managed to successfully extend ArchiMate MDG. The online help for Sparx EA is head and shoulders above other tools I've used in this space.
Let's start with this and test the process step-by-step with a simple example, the goal of this example is to extend UML:

Step 1) Step one create a project called SimpleUMLTest using Core Modelling/UML 2/Class
Step 2) Leave the project unchanged
Step 3) Whit this project open, from the Tools menu choose MDG technology file
Step 4) On 2nd screen Use an MTS file choose don't use an MTS file at all for the creation of this technology
Step 5)
i - Enter the following; Documentation ID="Sue" Technology ="SimpleUMLExtension" Version="0.5" Notes="Simple UML Extension"
ii - When choosing a file name create a folder called SimpleUMLExtension, and name the file SimpleUMLExtension.xml
Step 6) Under Metamodel just tick Profiles
Step 7) Next screen appears blank, so I leave it blank
Step 8) Choose next and EA starts generating the MDG Technology file
Step 9) Look into SimpleUMLExtension folder, there is only one file there, it is called SimpleUMLExtension.xml and look like

Code: [Select]
  <?xml version="1.0" encoding="windows-1252" ?>
- <MDG.Technology version="1.0">
  <Documentation id="Sue" name="SimpleUMLExtension" version="0.5" notes="Simple UML Extension" />
  </MDG.Technology>

Have I a miss something? If so, what? Where have I gone wrong?

Once we sort that out, we can try more complicated things; in particular, working around EA self inconsistency, which I presume is playing a factor.

P.S.: I tried http://sparxsystems.com/enterprise_architect_user_guide/12.1/building_models/umlprofiles_2.html that and it works.
P.S. 2: No need for AI at all, hopefully everybody in the forum can do NI

Pages: 1 2 [3] 4 5 ... 11