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 4 ... 32
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

(cross post - I emailed Sparx support about this but I'm on deadline so also asking here)

I use both Sparx Office Integration MDG and the Bellekens excel importer to import thousands of database views and tables into EA to make ERD diagrams etc.

I can import everything I need except primary keys. I import the columns and if they are a PK, the import includes a Method of 'PK' stereotype owned by the <<table>> classifier: this would result in the column having PK properties in EA, *except* I cannot find a way to assign a column to the method during the import (I can import method parameters but the PK assignment is not a parameter).

After the import, if I manually assign the right column to the method using the table 'features' menu, everything works fine.  Does anyone know how to assign during the import (or after via a SQL UPDATE in the EA model database...).  Thanks!

General Board / Re: Using ChatGPT to create EA Scripts
« on: March 23, 2023, 06:49:35 pm »
HAHA OK!  Reality check for me.  Thanks Geert!

General Board / Re: Using ChatGPT to create EA Scripts
« on: March 23, 2023, 03:49:14 pm »
So I tried ChatGPT and I literally have chills in my spine.  Honestly my hair is standing on end.

Here's the full conversation (this is about my other posts about changing database type in an EA model).  What do you guys thing and is the script good to run on EA 16.1?

Code: [Select]
write a Sparx system architect script to change the database type for tables within a selected package, including all subpackages
To change the database type for tables within a selected package and all of its subpackages in Sparx System Architect, you can use the following script:

Copy code
Option Explicit

' Set the new database type for tables
Dim newDBType
newDBType = "SQLServer"

' Get the current project
Dim currentProject
Set currentProject = Repository.GetProjectInterface

' Get the current model
Dim currentModel
Set currentModel = currentProject.Models.GetCurrentModel

' Get the selected package and its subpackages
Dim selectedPackage
Set selectedPackage = currentModel.GetTreeSelectedPackage
Dim packages
Set packages = selectedPackage.Packages.GetAllEx

' Loop through each package and change the database type for tables
Dim package
For Each package In packages
    Dim elements
    Set elements = package.Elements
    Dim element
    For Each element In elements
        If element.Type = "Table" Then
            element.MiscData("DBMS") = newDBType
        End If

' Display a message when the script has finished
Session.Prompt "Finished updating database types for tables.", promptOK

In this script, you first set the new database type for the tables by assigning it to the newDBType variable. Then, you get the current project and model using the GetProjectInterface and GetCurrentModel methods, respectively.

Next, you get the selected package and its subpackages using the GetTreeSelectedPackage method, and the GetAllEx method to get all the subpackages. You then loop through each package and get its elements. If an element is a table, you update its database type by setting the DBMS property of its MiscData dictionary to the new database type, and then calling the Update method to save the changes.

Finally, you display a message to indicate that the script has finished running.

To execute this script, you can follow the same steps as outlined in my previous answer, with the difference being that you need to select the package (and its subpackages) that you want to update before running the script. The script will only update the tables within the selected package and its subpackages, and will not affect any other elements in the model.

For EA search (CTRL-F) I want to break down my custom queries into multiple categories instead of have them all bunched in 'My searches' menu.  And I want to hide or delete some other categories to reduce clutter.  Any way to do this?  Maybe there's some text or XMI file I can edit (I'd like this t be available in all my Sparx projects and be retained when I upgrade to new version of EA).  Thanks!

Hello Claudio I'm developing my own DDL templates and could benefit if you share your previous work will send you a pm!  Thanks!

I am also in same situation these I need to generate DDL for different databases from the same physical data model.
I'm thinking of just using
UPDATE t_object SET Gentype = 'XXX'
as a simple DML command on my model, does anyone know if this is safe?  I know we should use the APIs to update the model but don't have time to learn it right now

Hello I set up my own settings in project datatypes and in ddl templates to round trip engineer from/to SAP HANA.  But they only show in the one project file (*.qea on my hard disk) .  How can export them to other projects?  Without using MDG because I don't have time to muck around with it.  I remembered there was a metadata export menu but cannot find it.  And I don't think it will work for ddl templates.  Thanks for any advice!

Tere's yer problem right tha'r...

UML is not the same as SysML.  Related but different things - each in its place please....

If it's not in the UML spec, it's not in the UML spec.

Hi Eve, I'm suggesting that EA will prosper if it follows the UML standards exactly, with proprietary extensions and whatnot in separate MDGs so people can use them if they wish.  Specifically for Interaction Points, seems to be a duplicate to Part/Properties so it's even more puzzling of what is the value of having it.

Pages: 1 [2] 3 4 ... 32