Sparx Systems Forum
Enterprise Architect => General Board => Topic started by: gcoleman0828 on June 11, 2022, 02:25:50 am
-
Hello all,
Wondering what the best process would be to connect a particular business process(s) to a system in the environment. I am not looking to incorporate it into the swim lane or anything as that would obviously violate the BPMN, but let's say I have a process for a financial institution for walking into a branch and signing up for a new product.
There are several systems that make this process happen and I was wondering if there is a best practice to accomplish linking the systems (core system, online application product etc..) that make up the actual process to make it happen.
If there are better ways of accomplishing this I'm open to it as well.
Thanks,
Gregg
-
Have you created business process/collaboration elements within which your process diagrams etc. exist?
If so, then from a simplistic point of view you can create relatonships between them and your system/application objects/elements without affecting the process definitions.
-
Yes I have. I have a business process using elements in the BPMN 2.0 Toolbox. 2 swim lanes that have various activities and decisions inside a diagram. When you say create relationships, how do I go about doing this? That's where I'm stuck. I have the systems added as components. These components are used in a heat map type layout by tiers, but I would like to reference these components or link them in some fashion. What is the best way to go about that? If there is a better way to add the systems to be used, I'm open to that as well, but I based it on this Sparx video for application portfolio usage: https://youtu.be/vpTDlL0UR1E?t=1573
As I've mentioned, very new to this tool, so any help is greatly appreciated. on another note, when you add a new process or pool for swim lanes, there us this concept of collaboration which you mentioned as well. What is the difference in creating a new collaboration? What features do you miss making a diagram without this?
Thanks,
Gregg
-
Rather than swimlanes which are pure graphics you should use pools/lanes and classify them.
q.
-
q- Not sure what you are referring to. I am using Pools and Lanes (I guess maybe those are not swim lanes). I'm not sure though how this has to do with linking a diagram to a system (Component)? I'm trying to tie a particular system with a process.
Can I please have a step process of how to take a diagram/business process and link it to a Component in a different model/package
Thanks,
Gregg
-
We link the activities in a BPMN diagram with our application components using a «trace» relation.
The easiest way to do this is to use the relationship matrix.
Geert
-
Thanks Geert Bellekens!
Really appreciate your quick responses and shared knowledge to a newbie :).
So this BPMN does not have that system in the diagram right because it would be mucking things up. So you are saying that if I change the diagram to a relationship matrix, I can then associate the component even if it isn't in that model diagram or that package?
Just want to make sure I am following.
Gregg
-
Thanks Geert Bellekens!
Really appreciate your quick responses and shared knowledge to a newbie :).
So this BPMN does not have that system in the diagram right because it would be mucking things up. So you are saying that if I change the diagram to a relationship matrix, I can then associate the component even if it isn't in that model diagram or that package?
Just want to make sure I am following.
Gregg
No, we don't put these system components in the diagram.
Each of our business processes has it's own package, and we use the package as the source when mapping to our components.
For each business process I create a matrix specification that stores the source, target and connector type.
All a user needs to do is doubleclick on this matrix specification to edit the links between activities and system components.
If you want to make it even more fancy, you can even put a model view on this (or another) diagram that shows the relation between the activities and the system components
Ours has this query, where we replace the GUID in the query with the GUID of the business process object.
select bpa.ea_guid AS CLASSGUID, bpa.Object_Type AS CLASSTYPE, bpa.name as Activity, apc.Name as SystemName
from t_object bp
left join t_object pl on pl.ParentID = bp.Object_ID
and pl.Stereotype = 'Pool'
left join t_object ln on ln.ParentID in (pl.Object_ID, bp.Object_ID)
and ln.Stereotype = 'Lane'
inner join t_object bpa on bpa.ParentID in (ln.Object_ID, pl.Object_ID, bp.Object_ID)
and bpa.Stereotype = 'Activity'
left join t_objectproperties tv on tv.Object_ID = bpa.Object_ID
and tv.Property = 'calledActivityRef'
left join t_object ca on ca.ea_guid = tv.Value
left join
(select aac.Start_Object_ID, apc.Object_ID, apc.Name
from t_connector aac
inner join t_object apc on apc.Object_ID = aac.End_Object_ID
and apc.Stereotype = 'EAM_ApplicationComponent'
where aac.Stereotype = 'trace') apc on apc.Start_Object_ID = bpa.Object_ID
inner join t_diagram d on d.ParentID = bp.Object_ID
inner join t_diagramobjects do on do.Diagram_ID = d.Diagram_ID
and do.Object_ID = bpa.Object_ID
where bp.ea_guid = '{68AE22E4-7DD2-4714-94CA-4FBE4BFE6FCB}'
order by do.RectLeft, do.RectTop desc, bpa.Name, apc.Name
Geert
-
Thanks. I think I might be getting tripped up with terminology for the tool. So if I am in the diagram that has the business process (with pools/lanes activities etc.) and I right click on the diagram, I have an option for Changing the view to Relationship matrix. Is that the one you are referring to? If so, how do I now reference it to a different package that contains systems as components? They are in a separate package that I used for creating an application portfolio. This has it's on diagrams to show heat maps and such.
I would like to take these application/system components and some how reference the other business diagrams. This way we can easily connect the dots to what systems provide what business value to which units and which products etc..
Thanks,
Gregg
-
No, I mean the regular relationship matrix.
The easiest is to create a Matrix Specification element, and right click on that. You can use that element to remember the matrix configuration.
Here's the documentation: https://sparxsystems.com/enterprise_architect_user_guide/16.0/the_application_desktop/elementrelationshipmatrix.html (https://sparxsystems.com/enterprise_architect_user_guide/16.0/the_application_desktop/elementrelationshipmatrix.html)
Geert
-
There are a few options to consider and it really depends on what you are trying to achieve and level of detail you need from your model.
If you are using BPMN only then I've seen examples of people using data store or pools to represent a system. See this url for examples.
https://camunda.com/bpmn/examples/ (https://camunda.com/bpmn/examples/)
If you are using BPMN and UML components for systems then Geert's suggestion is good by using trace relationship.
Depending on the level of detail you need then a third option might be to consider using ArchiMate which was designed to provide that traceability between business and applications. See an example here https://archimate.visual-paradigm.com/what-is-layers-and-aspects-in-archimate-core-framework/ (https://archimate.visual-paradigm.com/what-is-layers-and-aspects-in-archimate-core-framework/)
Noting ArchiMate also provides the concept of a product and is a more abstract modelling language than BPMN and so not meant to be used for Business Process execution/simulation as with BPMN.
You can of course blend ArchiMate, BPMN and UML in a model. This is what a number of companies I've worked at do. ArchiMate being used as the overarching framework where BPMN and UML are used to elaborate on more detailed implementation.
-
You can of course blend ArchiMate, BPMN and UML in a model. This is what a number of companies I've worked at do. ArchiMate being used as the overarching framework where BPMN and UML are used to elaborate on more detailed implementation.
Exactly what I see at many of my clients, including this particular example. We extended Archimate using our own stereotypes, hence the «EAM_ApplicationComponent» stereotype
Geert
-
Thank you both for your suggestions. So from what I see in the image below from the BPMN example, it looks like in my case the ERP would end up being the Application Component from another one of my packages/diagrams?
Example on site:
https://enterprisesarchitect.builders/wp-content/uploads/2022/06/BPMN-ERP-Example.png
Example in EA I have this far.
https://enterprisesarchitect.builders/wp-content/uploads/2022/06/Consumer-Deposit-BPMN.png
You will notice I circled in red the area I think would match.
Thanks again for everyone's assistance,
Gregg
-
Does this make sense to you guys? Or am I still off?
Thanks,
Gregg
-
Hi
I have followed an approach similar as the one described by Geert for one of my clients. To represent systems, we used UML Component elements and stereotyped them with either<mainsystem> or <subsystem> and linked them to activities using the Information Flow relation.
The more hands on approach was, for each activity:
- Dragged the system onto a BPMN Diagram
- linked it to the relevant Activities
- Removed the system from the diagram again, and went on to the next
- Continued until no more mapping was needed
To show the links, we added a table at the bottom of the diagram, populated by a custom SQL, that listed activities and the systems linked to them. We had similar tables on the systems diagrams, showing the 'opposite direction'.
We couldn't use relationship matrices, since we published the model as HTML.
We chose Information flows since we planned to also add the data/information being produced/consumed, but we never got that far.
Henrik
-
Thank you wivel. Appreciate the details. So when you say you linked it to the Activity, is that using a relationship arrow? Like using the Realization arrow in the toolbox? Or is it a property?
Thanks,
Gregg
-
Thank you wivel. Appreciate the details. So when you say you linked it to the Activity, is that using a relationship arrow? Like using the Realization arrow in the toolbox? Or is it a property?
Thanks,
Gregg
Hi Gregg
I'm using a relationship arrow, as Geert explained in a previous post. Just make sure you always use the same relationship type, for both consistency and to ensure that only the right relationships are shown in the table populated by the SQL.
Henrik
-
Got it. Thanks Henrik. I wish there was a way to do it without adding it and then removing it, but it sounds like doing what Geert did would basically accomplish the same thing.
Gregg
-
Got it. Thanks Henrik. I wish there was a way to do it without adding it and then removing it, but it sounds like doing what Geert did would basically accomplish the same thing.
Gregg
There is a way, that's the relationship matrix.
Both methods have the exact same result.
Geert
-
Ahhh. ok, it has the same effect. Got it. So what he is doing creates that matrix!
Thank you both for your information and patience.
Gregg