QUESTION How model properly my diagram - Application Layer

Started by vladap, October 05, 2018, 16:40:12 PM

Previous topic - Next topic

vladap

I am quite new to the Achrimate 3.0 and I am trying to make my model in it. I put an example below. My goal is to model this stream of data where I have a Source System which is creating output files in specific format -> next Step is Pulling the data by processing component and looking for some values in connected DB -> final step is then deliver this data (pushed by processing component) to Target Systems.

Q1: What relationship is correct to Application Component and Interface? In the picture is triggering (but maybe FLOW fits better) ?

Q2: Database is joined via Access relationship ?

Q3: For my purposes it will need to hold information about DB (columns+types+notes) structure in the diagram, any tips, how to manage it in Archimate ?

Diagram Example Here:

Hervé

Hi,

Sorry for this late answer, I was not available this weekend ...

My shot answer would be it depends on what you message you wish to pass on. More precisely,

Q1: You're using a triggering relationship. So do you explicitly wish to express a trigger (the source system triggers a sFTP interface which triggers the system responsible for data processing) or do you wish to express a data flow (the source system transfers data to the system responsible for data processing with a sFTP flow) ? I personally use the flow relationship, but both are correct from an Archimate point of view.

Q2: I personally use a flow relationship to keep the same arrows from end to end as the people who I show my diagrams would not understand, but I know this is a bad reason. In fact, if you wish to model the flow of data between your application and the database then you may use a flow relationhsip, and if you with to express that your application acts on (like reads data from and write data to) your database then you may use an access relationship.

Q3: You may use Archi, the open source Archimate Tool (https://www.archimatetool.com/) with my specialization plugin (https://github.com/archi-contribs/specialization-plugin) that allows to put any text as label (including "\n" as newlines and "\t" as tabs).

Hope this helps

Best regards
Hervé

Alberto

I'm going to throw my name out there, but I've only been using Archimate for a couple of months so still learning. I just wanted to expand on the second question a bit because I feel something is missing.

Components are Active structures, Data Objects are Passive structures, you need a Behaviour that acts on the D-O.  I'm using an Application Process as an internal behavior performed by the Data Processing and Access Read and Write to maintain arrow directions. (Sorry for the overlapping association, it was a quick sketch)


Jean-Baptiste Sarrodie

Hi,

Quote from: vladap on October 05, 2018, 16:40:12 PM
My goal is to model this stream of data where I have a Source System which is creating output files in specific format -> next Step is Pulling the data by processing component and looking for some values in connected DB -> final step is then deliver this data (pushed by processing component) to Target Systems.

Q1: What relationship is correct to Application Component and Interface? In the picture is triggering (but maybe FLOW fits better) ?
Q2: Database is joined via Access relationship ?
Q3: For my purposes it will need to hold information about DB (columns+types+notes) structure in the diagram, any tips, how to manage it in Archimate ?

Re Q1: In ArchiMate an Interface is composed into the active structure (ie. an Application Component in your case). In addition, and Interface is used to model the way a Service is being made available to the environment, so it both describe the protocol, but also any interchange format if any. In your case I'm sure SFTP should be considered an Interface, but more a way to describe the flow.

Re Q2: Database is not an ArchiMate concept, the real concept (close enough) is Data Object which should be understand as a particular piece of information (like a Customer, a Product, an Order...) structure in a way that makes it usable by a specific application (an Application Component accesses a Data Object). Ie. the same information can be structured differently by two applications, and reverse is also true: an application can manipulate an information expressed in several diffferent form. So a Database is in fact a Data Object that aggregate all Data Objects accessed by an Application Component and often stored in the same (relational or not) Database. The database itself (ie. the set of .dbf files managed by a DBMS like Oracle) is often modelled as an Artifact on Technology Layer. In addition, an Interchange File Format is Data Object that can be read/write y several applications.

Re Q3: ArchiMate has not been designed to do detailed data modelling. That being said, you can create a "light" data model using Data Object and use attributes (=properties in Archi) to keep track of columns/types/notes.

As noted by Alberto, I think it is important in to model the behavior, but I would go for an Application Service and would simply the whole thing by removing interfaces.

Regards,

JB
If you value and use Archi, please consider making a donation!
Ask your ArchiMate related questions to the ArchiMate Community's Discussion Board.