Hello! I have read the book “systems architecture modelling with arcardia method” and now I’m trying to employ the methodology used in my own model.
I am developing a system that must perform actions when an external entity requests it and at the end of that, send a response indicating the success (or not) of the operation.
During the system analysis phase I have created high level functions for the system that encompass the whole of the operations requested by the user (lets call them operation A and B).
Now going to the logical architecture phase: My system’s software shall have a service-driven architecture, and thus I will have a component coordinate the requests of services, and other components provide such services. To this end, I have broken down operation A and created a function “coordinate operation A” and then the services provided by internal components “service X” and “service Y”. Operation A is complete when those services are finished. After doing this I tried to create a functional chain that would express how:
-
Coordinate operation A sends a request to service X
-
Coordinate operation A receives a response from service X
-
Coordinate operation A sends a request to service Y
-
Coordinate operation A receives a response from service Y.
I cannot create a functional chain that includes “coordinate operation A” twice, so I thought about creating a functional chain of only requests to express the required sequence, but that fails to express how “coordinate operation A” needs to evaluate the response from each service before moving on.
For me there are three alternatives:
-
Break down “coordinate operation” into multiple functions (request service X, handle service X response), which I don’t want to do because I wan’t to keep the definition of the coordination function free from the underlying services.
-
Ignore functional chains and express the sequence of services requests and response in an (or several) exchange scenario diagram. I have not seen anyone do this so I don’t know if it is a valid approach and would like to know what this forum thinks. For me, the same information would be expressed but I could be missing something.
-
Am I doing this wrong and should use a completely different approach for modelling this system
Here is an LAB depicting this issue:
Thank you in advance!