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 - Richard Freggi

Pages: [1] 2 3 ... 32
General Board / Re: Linked Conceptual and Physical model
« on: September 06, 2023, 01:04:02 pm »
You can only do this one way, ie logical model -> physical model with forward engineering.  The procedure is described in the manual.
You can change the logical model and create a new physical model based on it.
You cannot do it the other way ie create a logical model based on physical.  The reason is that one physical model can be represented by many different logical models.
The workaround is to implement your physical model changes in a database then reverse engineer the database to a physical model, hide the datatypes in the ERD diagrams and call it a logical model.  Not perfect but it may help in some cases.

You may find it easier to forward engineer your EA data model to some DBMS, then reverse engineer from that DBMS to the other tool

More info as PSA
- The EA 'native' driver worked the same as the oracle ODBC driver
- I could not import sequences with either driver; I had to to exclude them from import
- I did not try to import triggers and packages because had no time to play around too much with import settings
- With both drivers import was super slow, 20 minutes for ~100 tables and their columns.  Columns are what slows down the import, eg import of views was very fast
- p.s. connecting with DBeaver and creating ERDs with DBeaver was effortless.  I use both DBeaver and Sparx for different tasks.

I've been reverse engineering PowerBI and PostgreSQL databases a lot in past few years, but it's been a long time since I worked on an Oracle one (this one is 19C 64 bit).  I remember it worked well when I did it.
The oracle help pages and various forums tell you how to install a client to query but not how to connect with EA.  Could anyone help me remember?  Are these steps correct:
1. Download instant client basic lite and instant client ODBC for windows 10 64 bit
2. Unzip instant client and ODBC to C:\ORACLE_HOME directory; the unzip adds C:\ORACLE_HOME\network and C:\ORACLE_HOME\network\admin. 
3. Unzip the odbc driver so that the odbc_install.exe file is in C:\ORACLE_HOME\ directory
4. Get the tsnames.ora file and paste it in C:\ORACLE_HOME\network\admin
5. Right click on odbc_install.exe and run as administrator
6. Open Windows 10 ODBC Data Sources (64-bit) and in System DSN tab, fill in the driver configuration.   However I'm not  getting the tsnames.ora data filled in in the ODBC driver configuration tab like I should
7. Open Windows environment variables and add a user variable Path with value C:\ORACLE_HOME.  Save.
8. Open EA 16, Settings / ODBC Data Sources, make sure the new data source is listed
9.  In EA, Develop / Import and reverse engineer.


I'm curious if the whole oracle client and tsnames.ora are needed or can I just download the driver file and run odbc_install.exe?  Then add the TSA file parameters directly in the Windows ODBC manager window.

I don't yet have a login to try so would appreciate if anyone can share experience thanks!

[EDIT: found the problem!  I needed to include system variable TNS_ADMIN with value C:\ORACLE_HOME\network\admin in my environment variables.  Works now.]

Bugs and Issues / Re: Can't open file
« on: July 21, 2023, 12:34:08 am »
You use Access files?  I too like to live dangereously

General Board / Re: [Ask]Use data from Power BI with Sparx
« on: July 19, 2023, 03:56:02 pm »
Hello ea0522
I understand from your post that you are able to import EA model metadata from *.qea file into Power BI
Would like to know if you are able to reverse engineer a Power BI data model into EA?  Thanks...

General Board / Re: Component State
« on: July 12, 2023, 02:41:57 am »
mmmmmyes afaik in UML 2.5 a component is just a class.  Whatever a class can do, a component can.
But I dont' know about Sparx implementation, never tried it (but I have used component objects as participants in sequence diagrams)

General Board / Re: [Ask] Import/Export attributes of each class
« on: July 07, 2023, 05:45:33 pm »
Maybe Geert is on holiday, need his input.
You need the Excel importer from the github respository for the 64 bit version of EA 16: the one in does not work in 64 bit.
Geert will fill in info when he's back.

General Board / Re: [Ask] Import/Export attributes of each class
« on: July 06, 2023, 02:25:28 pm »
it means you are not filling in the excel sheet with the correct values.  For example you need the eaguid to import attributes, so you would need to run the importer for classes only, then export the classes with their eaguid, add the attributes and then import the attributes.  The importer is very reliable and never had any issues (importing 400K total of objects and attributes)

Andre, the 1st issue is that 'an element inside another element' is not a valid UML concept, so you will need to define what you need conform to UML.  For example you could specify UML aggregation, composition, inheritance or nesting or something else.
As 2nd issue, now that you know what you need to import, set up the import using the appropriate connector stereotype in the Office MDG.
You cannot import diagrams with the MDG, so if you want to show it in a diagram you will have to create the diagram manually after you import the element.

Good luck!

I do like Geert says: copy/paste the *.qea project file, rename it, then open it

For business process modeling, attach any number of sequence diagrams to the use case.  Avoid activity diagrams unless you are describing procedural code (for example a class method at logical / physical level)

Hi Richard,

You seem to have a rather software centric view on things.

When we model business processes, we often don't even want to consider software, or systems.
A Use Case is a group of functionality that is to be automated (i.e. software), but business processes exist even without automation. (e.g. phone calls, paper documents, et...)

And frankly, if I wanted to validate my business process with the business, they would shoo me out of their office if I came to them with sequence diagrams.
Sequence diagrams are a very technical type of diagram, and are hard to understand by non-technical users.

Flow charts on the other hand is something they know and understand. BPMN looks a lot like flowcharts, so that tends to go a lot better.
Your remark about BPMN and Activity diagrams being not object oriented illustrates my point about the software centric view.

I can understand that your approach works for your environment, but modelling if often done for a much broader scope than just the software or systems.


Not so Geert Sir.

I've never worked in software development.  My work is in Supply Chain - building new factories, moving logistics centers etc.  I work with procurement managers, manufacturing managers, development managers, site managers and local government agencies.
I always use UML (as described in above post) to coordinate business process, contractual agreements and system changes between these parties.  I start my workshops with 15 minutes training on the diagrams of the day (use case, sequence, class, component).  The simple reason is that other languages (flowcharts, IDEF etc.) don't do the job.

Case in point: can you think about integrating the roles/responsibilities, contractual agreements and system data exchanges needed to support the R&R and contractual obligations between the Chongqing finance bureau and a german logistics service provider?  Based on a few flowcharts from each?  Good luck.  But a good round of use cases with (1) actor definition, (2) sequence diagrams integrating the roles from each party, (3) how they exchange information to perform the contractual obligations, and (4) a class diagram (logical level) built from the sequence diagram did the job and ended up as attachment to the signed contract.  This is just one of dozens of examples in my experience.  (ps all done in Sparx EA!  Yay!)

One of the sad reasons why UML failed is because big industry players pushed it as a programming language which never made sense (but it looked good in the management brochures).  They were hoping to make money selling CASE tools that could generate better code than a guy sitting in front of a text editor.  That never worked out (maybe 20 years from now with AI... possibly).

UML is great for talking to people with different backgrounds and integrating process-data-systems in a single model that can be changed easily.  The big consultants are pushing flowchart-like languages for the simple reason that they can easily generate hundreds of powerpoints for the customers and bill lots of hours (been there, done that).  These flowcharts are better than nothing but vastly inferior to a decent UML model.

The books, videos and talks about UML as a business modeling tool are out there: it works fine for me.  If you are interested  you can google my name + UML: you'll find a few invited talks at The Open Group and Data Modeling Zone.

Anyways, I'm for whatever works for you: my point is that there is always a better way to skin the cat.

Hi Richard,

Thanks for the response.

Do you mean to use UML Activity Diagrams?

Indeed I was thinking of that. But I wanted to be "professional" and use a language that is targeted for business processes.

(Btw, I guess that using a different tool for BPMN e.g., Eclipse UML, might not have text problem (but could have different problems.

Btw #2, I will have to use act diag actions rather than activities, because activities do not let you legally connect them with control flows for some reason. And apparently that is the correct practice according to the UML spec.)

Also occurred to me that UML activity diagrams offer the streaming feature, i.e., outputs partial results to share with concurrent activities. This is very useful to me. (BPMN does not offer streaming, AFAIR.)

Now you said it, I think I will take you up on it.

Cheers ! :)


UML is the easiest and most effective business language.

For requirement modeling, use case diagrams
For business process modeling, attach any number of sequence diagrams to the use case.  Avoid activity diagrams unless you are describing procedural code (for example a class method at logical / physical level)
For data modeling, use the classes generated by the sequence diagrams to define domain object models and ERDs (database data models) at logical or physical level
For system architecture, use component diagrams.  The residents of the components are classes and database objects from the DOM / ERDs
For system infrastructure, use deployment diagrams whose artifacts are the components of the component diagrams at physical level

You have a full system architecture with traceability from user requirements to deployed systems and back.  You can change anything in any of above steps (requirements, users, classes, components, nodes) and quickly propagate the change to all other levels.

(BPMN and activity diagrams are not object oriented so they don't really fit into the architecture)

It takes experience to get it right but that's why all architects have white hair in their head

UML is the easiest and most effective business language.

Fight me.

I submitted below requests, please submit similar ones to support it!
(Note: I use the MDG to reverse engineer several databases for which we have no CASE tool - in my case HANA and Databricks.  Usually 500K to 1 M rows extracted from RDBMS metadata and imported into EA)

1. Add precision to the Additional properties > Attributes profile.  Length is already there so by adding precision we can import full datatype details
2. Add the ability to import connectors details by source/target Alias in the connector import profile.  Currently you are forcing the user to import objects, then export so we can know the object and connector eaguid, and finally import connectors: this is very cumbersome for large models.  We can assign a suitable alias to objects and connectors when we import, then we can use the same alias to import the connector details right away without needing to export the model just to get the eaguids.  Import connectors by Alias is already available in the object import profile so the connector detail profile should have the same capability.

Clean up the MDG code so imports are much faster. I routinely import from 500K rows of Excel and it takes several hours.
In the current Office MDG it's impossible to set primary/Foreign key constraint on import of classifiers of type <<table>>.  This is a pity because the MDG allows us to reverse engineer any database using the DBMS object metadata.  My suggestion is:
3. Add capability to assign primary key constraint to any column to the classifier import profile (keep in mind composite keys)
4. Add capability to assign primary and foreign key constraint to any column to the connector detail profile (keep in mind composite foreign keys and primary key that include a FK)

Today the options of connector detail profile are not available in the classifier import profile for Excel.  This forces us to break down imports into at least 2 steps.  Having all options in 1 profile means we can create one Excel sheet, import it and be done (instead of creating one Excel, import, save the synchronization Excel, update it with connector details, re-import).  I don't see the benefit of having 2 different profiles for classifier and connector details

Pages: [1] 2 3 ... 32