Use of the UML «datastore» element

1,287 views
Skip to first unread message

avi-mak

unread,
May 26, 2021, 12:25:14 PM5/26/21
to SysML Forum

Hi,


I want to verify that the «datastore» element is what I need. If not then, then what? And if yes, then I want to verify I am using it correctly.


In the activity diagram below, I tried to describe what I mean, using «datastore» as I currently understand it. The diagram describes a sequence of algorithms, each algorithm working on the same data structures (which were originally input into the activity). Step n does not copy its output data set to Step n+1. The data set is kept as common data during the activity execution. Step 1 finishes and updates the data set, and then Step 2 starts processing the data set updated by Step 2, and so on. So I need some sort of data storage to act as a sort of “accumulator” of the latest values after each step.


On completion of all processing, the activity copies the data storage content to the output parameter.

The data storage exists only during the activity.

So … questions:

1: Is the UML datastore element the correct element to use for this?
    If not then, then what?

2: Assuming datastore is the appropriate element, have I used it correctly?

Demo Activity.png


Thanks
Avi


James Towers

unread,
May 26, 2021, 12:45:12 PM5/26/21
to SysML Forum
This may be correct, but it appears to be more complicated than it needs to be.
If the final output is a list, then create a Block which represents the list and pass it from action n to action n+1,

Each action can read the list, perform it’s calculation and append a new value to the end of the list

That way you don’t need the store and each action can simply have one input and one output. 
Cheers
James



<Demo Activity.png>


Thanks
Avi



--
--
You received this message because you are subscribed to the Google
Groups "SysML Forum" group.
Public website: http://www.SysMLforum.com
To post to this group, send email to sysml...@googlegroups.com
To unsubscribe from this group, send email to
sysmlforum+...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/sysmlforum?hl=en_US?hl=en
---
You received this message because you are subscribed to the Google Groups "SysML Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sysmlforum+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sysmlforum/295f6cac-a509-455b-a12e-25b6ef98ac32n%40googlegroups.com.
<Demo Activity.png>

Wolfgang Schlicker

unread,
May 26, 2021, 2:27:38 PM5/26/21
to SysML Forum
I agree that it's correct modeled cause the incoming object flows have OR semantic. But keep in mind that the objects are stored persistant in the datastore and a copy of the object remains in the store while it is released at the output. Best regards Wolfgang

avi-mak

unread,
May 28, 2021, 11:04:15 PM5/28/21
to SysML Forum
Hi,

Thank you, James and Wolfgang, for your responses.

Response to James:

(1)

>> Each action can read the list, perform its calculation and append a new value to the end of the list

Btw, the activity’s function is not to add values to the list. It is not key that the data structure is a list, or some other structure. Each process step of the activity updates the same structure, which I showed as a side data store, and I was asking whether the <<datastore>> element is appropriate for this purpose.

Since it seems I was not clear enough, I changed my example diagram slightly – below at end of post. Changes in blue text.

 

(2)

>>  Block … and pass it from action n to action n+1

 

I should clarify: my activity diagram is not for a general sketch or requirements analysis. Rather, my diagram is part of a large-scale reverse-engineering effort to document how my company’s system is structured and how it really works, at least at the top levels.

 

In this particular activity, the activity specifically does not copy the structure from to action to action (action n to action n+1), .i.e., it does not physically copy the output structure of action n to the input parameter of action n+1.

 

Question: However, maybe you mean you are letting me know that, nevertheless, it is system engineering custom to show things as if the data is copied and passed directly from action to action (and I can do without the datastore)?  (Assertion (A))

  

 

(3) Safety analysis:

My company’s product is mission critical, and thus ongoing formal and comprehensive safety analysis is a major obligation and effort. The safety teams need to know the exact paths of data. So even if your assertion (A) above, is true, would you still say that it is true given that my model provides the input diagrams to perform safety analyses?

 

(4) Safety analysis of flows that include specific hardware storage:

Further:  At time of writing my original question, I had in mind a specific high-level process entirely in software.

 

On the other hand: At meetings about the top-most system level (from a structural POV, including also hardware), we presented major data flow arteries as flowing directly from module to module – similar to what you write: “pass it from action n to action n+1.

However, a worker pointed out that that is good only as a simplification i.e., as a virtual flow. But from a safety-analysis POV, the design diagrams must eventually address the fact that some data flows do not physically pass directly from module to module, but rather via specific hardware intermediate data storage components. And the need to exactly show these physical flows is in order that the safety teams can perform complete and correct safety analyses of the data flows to provide proof of safety.

So in such cases (the need to show a complete data flow via specific hardware storage for safety analysis), would you agree I should show these storage components as explicit data stores (where in UML this is the <<datastore>> element)?

Again, thank you for your response and looking forward to your further comments on this.

 

Simplfied example diagram: 

Demo Activity num2.png


Avi


James Towers

unread,
May 29, 2021, 3:37:29 PM5/29/21
to SysML Forum
Hi Avi,
There’s a lot to unpack there, but lets try.

(1) OK, the answer is maybe - as it’s not clear what you are trying to depict, so let me instead describe what I believe the diagram shows:


a) The the activity is called (when there are sufficient parameters on the incoming parameter nodes), the ObjectFlows (along with the a ControlFlow from the Initial) are transmitted to the first Action. (I note this has two steps which are presumably described in a sub-Activity diagram?)
b) On Completion an ObjectToken of a structure to be defined (which I will call “x:X”) is sent to the DataStore, and a ControlToken is sent to the next Action “Processing Step 2"
c) On receipt of the ControlToken, "Processing Step 2” pulls a copy of the object x:X from the DataStore, and on completion it pushes an object x:X back to the DataStore and sends a ControlFlow to Action “Processing Step 3”

- First observations, is the object pushed back to the DataStore the same one that was previously pulled? If so then the DataStore just throws it away - Objects are contained uniquely, so the first object isn’t overwritten or updated - which I think is possibly what you intended.
- Secondly, I’ve implied by the names on the ObjectFlows “Struct Ptr” that you’re thinking of this in terms of software “pass by reference” rather than “pass by value”. “pass by reference” doesn’t work in SysML activity semantics. That’s because when you pass a pointer in software you have to ‘de-reference’ it to get the actual data - ‘de-referencing’ is actually another function performed by the storage (you pass a pointer and get a data structure). - in any case this doesn’t matter, as DataStores are typed ObjectNodes so they can only output ObjectTokens, not pointers to ObjectTokens
-Thirdly, you can model common storage as a value property owned by a Block which also owns this Activity as classifier behaviour - both this makes the ‘Data Flow’ less clear 

(2) Actually the only element with “copy” semantics is the DataStore. ObjectTokens flow from one Action to the next, they don’t copy them and send a copy, they send the original (so to speak) 

(3&4) There’s more than one element to Safety Analysis, and while your Activity Diagram may be adequet for Functional Safety you will need other information to perform Failure Mode analysis. As an example, if you have two Activities (functions) ‘A' & ‘B' and the output of ‘A' is and input to ‘B', there are several ways that this ‘functional chain’ can ‘break’ - ‘A' may produce the wrong (or no output), ‘B' may produce the wrong (or no output) or both might happen. If we then allocate these functions to a physical design ‘A'-> Component M and ‘B' -> Component N then we can now perform analysis on the various ways Component M and N can fail, and if so whether it will affect (or not) their ability to perform functions ‘A' & ‘B' (respectively)
- But there is potentially a third component, the transmission mechanism between M & N, this could be via a cable or similar (if these are electrical functions) or shared memory (in software) giving us even more Failure Modes. 

It is therefore necessary (for safety analysis) to model both the Physical Design as well as the Functional Breakdown (Activities) to get the full picture. 
The problem with making the functional architecture, follow the physical architecture (in order to support both forms of Safety Analysis) is that you will get many ’null’ functions, i.e. functions where the output is the same as the input without transformation - such as cables. Additionaly the diagram will have little abstraction and therefore be the same level of complexity as the physical design - which defeats the point of modelling it as an Activity diagram. 

Regards
James

Hi,

<Demo Activity num2.png>


Avi



--
--
You received this message because you are subscribed to the Google
Groups "SysML Forum" group.
Public website: http://www.SysMLforum.com
To post to this group, send email to sysml...@googlegroups.com
To unsubscribe from this group, send email to
sysmlforum+...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/sysmlforum?hl=en_US?hl=en
---
You received this message because you are subscribed to the Google Groups "SysML Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sysmlforum+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sysmlforum/2352a7b5-bdc7-420b-968b-6bc6262fd510n%40googlegroups.com.
<Demo Activity num2.png>

James Towers

unread,
May 29, 2021, 3:37:48 PM5/29/21
to SysML Forum
I have just cross-checked my understanding of DataStore in “A Practical Guide to SysML”, and there it says that they overwrite tokens if they receive a subsequent version. This appears to contradict the UML spec, so it’s not clear. Anyway, if the original value isn’t persisted, in this example it is simply transmitting the ObjectTokens from one Action to Another in the same way a direct ObjectFlow would.

avi-mak

unread,
May 31, 2021, 4:41:22 AM5/31/21
to SysML Forum

Hi James, 

Thank you so much for the time and effort you are giving.

I only now noticed I was just pushing and pulling the same item all the time. I should be pushing new values each time into the same object. I updated the diagram according to your comments, and as best as i could. Updated diagram is at end of this post. 

My apologies you are having to debug my logic, and not just the UML meaning/syntax. Further, my mistake detracts from the real question I asked and from your answers. As mentioned, I updated the diagram, and I respond and answer your other points and questions, as follows beloow.  (My responses below are in blue.)


>> I note this has two steps which are presumably described in a sub-Activity diagram?)

Correct.


>> “is the object pushed back to the DataStore the same one that was previously pulled?”

As above,  it was a mistake. I should be pushing a new value each time into the same object.

 

<< “pass by reference” doesn’t work in SysML activity semantics.

 Ok  - this is a very important basic concept you have just taught. I am just starting out in modeling with activity diagrams and you have just saved from ongoing mistakes.

 

>> a pointer in software you have to ‘de-reference’ it

Here you have given me something to think about… Question: Do you mean that anyway the ‘de reference’ is a (sort of) copy? 

As we know, programmers want to make it clear they want to pass only a reference/pointer – i.e., a reference to a ‘same’ already existing entity, and not to pass a new entity (not a copy). So languages provide special syntaxes to pass by reference. (Btw, I recently noticed articles presenting a difference between 'pass by reference' and 'pass by pointer'.)

Question: So are you saying that that the world’s programmers’ usage of pointers is just a nicety that high-level programming languages (such as ‘C’) provide for us -- but actually there is always a ‘copy’ there, because the ‘de reference’ is a (sort of) copy?

   -----------------------------------------


I have a feeling you would still say as before, that from a systems / SysML POV, I could simplify as you wrote earlier:

       “pass it from action n to action n+1 … Each action can read the list, perform it’s calculation and append a new value to the end of the list …

       That way you don’t need the store and each action can simply have one input and one output. 

But as I mentioned before, I need to teach how modules are designed.

 

>> I have just cross-checked my understanding of DataStore in “A Practical Guide to SysML”, and there it says that they overwrite tokens if they receive a subsequent version. 

So I prefer the version from “A Practical Guide to SysML” (rather than the UML spec version) 😊.  Otherwise it seems I cannot do what I wanted to do – and that is to teach the design of the module.

 

Concerning your responses to my Safety questions I will get back to you in a later post, if I may. 


Note on updated diagram draft below:  I initially moved the action pins to the bottoms of the actions to give a better impression that these are outputs. But it caused the diagram to be much less compact, i.e., to look way more complicated.


Below Draft 3 of Example Diagram:  
(changes in blue text)

Demo Activity.png


Thanks
Avi



James Towers

unread,
May 31, 2021, 12:16:22 PM5/31/21
to SysML Forum
Hi Avi,
I think I understand what you are trying to achieve, but actually each ’simplification’ of the diagram is moving you further away. 
The text on the ObejctFlow i.e. “Updated Values of Results Structure” is just the name of the ObjectFlow, and while it indicates what you are trying to do, it doesn’t actually change the semantics of the model.

In your latest example, since there is no “Results Structure” flowing into steps 1,2,3 & 4 they must all create a new ObjectToken for their output. Since they all ‘Push’ these to the DataStore. When you get to step 5, the DataStore has collection of 4 ObjectTokens (is this what you intended?)

Step 5 then ‘Pulls” one or more ObjectToken from the DataStore and passes one or more to the OutputPin. Obviously it could combine these 4 ObjectTokens if this is what you had in mind? 

Specific comments bellow. 
Thanks

James

On 31 May 2021, at 04:30, avi-mak <amak...@gmail.com> wrote:

Hi James, 

Thank you so much for the time and effort you are giving.

I only now noticed I was just pushing and pulling the same item all the time. I should be pushing new values each time into the same object. I updated the diagram according to your comments, and as best as i could. Updated diagram is at end of this post. 

My apologies you are having to debug my logic, and not just the UML meaning/syntax. Further, my mistake detracts from the real question I asked and from your answers. As mentioned, I updated the diagram, and I respond and answer your other points and questions, as follows beloow.  (My responses below are in blue.)


>> I note this has two steps which are presumably described in a sub-Activity diagram?)

Correct.


>> “is the object pushed back to the DataStore the same one that was previously pulled?”

As above,  it was a mistake. I should be pushing a new value each time into the same object.

This is not how a DataStore works, you can’t manipulate the ObjectTokens already stored, all you can do is add new ObjectTokens. - You can however select which token (or tokens) you want when you ‘Pull’ them. 
 

<< “pass by reference” doesn’t work in SysML activity semantics.

 Ok  - this is a very important basic concept you have just taught. I am just starting out in modeling with activity diagrams and you have just saved from ongoing mistakes.

I should add that you could make it work, but you would need to define all the extra and unnecessary processing, such as you would need to define a ‘dereferencing’ operation to actually manipulator any data.
 

>> a pointer in software you have to ‘de-reference’ it

Here you have given me something to think about… Question: Do you mean that anyway the ‘de reference’ is a (sort of) copy? 

No - a pointer is a variable which holds the memory address of some data. De-referencing means "get me the data held at this address”, but it’s not a copy, it's the original data. This means that every bit of code that wants to use the pointer to access the data must have access to the memory where the data is stored. This only makes a difference if you are using shared memory for parallel processing, because in that scenario it makes a difference which order the location is accessed / updated, or if you are using pointers for input parameters, because in that case you can update the inputs as well as the outputs. 

As we know, programmers want to make it clear they want to pass only a reference/pointer – i.e., a reference to a ‘same’ already existing entity, and not to pass a new entity (not a copy). So languages provide special syntaxes to pass by reference. (Btw, I recently noticed articles presenting a difference between 'pass by reference' and 'pass by pointer'.)

Pass by reference and pass by pointer (variable) is aperculiarity of C++ (and possibly some other languages). In pass by reference all the pointer manipulation is done by the compiler, in C++ you can actually manipulate the value held in the pointer variable. i.e. if “My Age” is stored at memory location 100, and I assign a pointer P to “My Age” then P holds the value of 100, and *P (defrefencing) gives me the value stored at Memory location 100, but I can also manipulate P directly, so P++ increments P to 101 so it is now pointing at a different memory location. 

Question: So are you saying that that the world’s programmers’ usage of pointers is just a nicety that high-level programming languages (such as ‘C’) provide for us -- but actually there is always a ‘copy’ there, because the ‘de reference’ is a (sort of) copy?


No - when you deference a pointer you get the value stored at the location pointed at by the pointer, there is no copying going on. Similarly when you pass an ObjectToke from one Action to another Action, there is only one token, there is no copying going on. 

   -----------------------------------------


I have a feeling you would still say as before, that from a systems / SysML POV, I could simplify as you wrote earlier:

       “pass it from action n to action n+1 … Each action can read the list, perform it’s calculation and append a new value to the end of the list …
       That way you don’t need the store and each action can simply have one input and one output. 

But as I mentioned before, I need to teach how modules are designed.

I’m not sure I complete understand this comment, but designs is process, so you need at least two views (diagrams) one which is the specification and one which is the design and ana rationale how to transform from one into the other. 

 

>> I have just cross-checked my understanding of DataStore in “A Practical Guide to SysML”, and there it says that they overwrite tokens if they receive a subsequent version. 

So I prefer the version from “A Practical Guide to SysML” (rather than the UML spec version) 😊.  Otherwise it seems I cannot do what I wanted to do – and that is to teach the design of the module.

Actually the two views are comparable (I now realise). Because the DataStore always gives you a copy then if you push that ObjectToken back in it just adds it to the collection of ObjectTokens. 
 

Concerning your responses to my Safety questions I will get back to you in a later post, if I may. 


Note on updated diagram draft below:  I initially moved the action pins to the bottoms of the actions to give a better impression that these are outputs. But it caused the diagram to be much less compact, i.e., to look way more complicated.


Below Draft 3 of Example Diagram:  
(changes in blue text)

<Demo Activity.png>


Thanks
Avi

avi-mak

unread,
Jun 2, 2021, 1:38:22 PM6/2/21
to SysML Forum

Hi James,

Again thank you for your responses, which again you write with great care and empathy.

>> I think I understand what you are trying to achieve, 

I think you do. I am trying to make the model’s diagrams to be also good as documentation. Documentation that is intuitive as possible also for people non-UML literate.

I had better spell it out:

So far on my MBSE journey I have identified three categories of “modelers” :

(A) Modelers who are System architects and also dedicated MBSE people using SysML for design. They are doing their very best to stick to “canonical” SysML (like the people on this forum…).

(B) Modelers who are system architects using SysML for design (under extreme project pressures ) but do not care at all about the SysML language definition – to the extreme (e.g., “if it suits me to “embed” an action inside an IBD part/property then that’s what I will do). I do not judge anybody.

(C) Modelers who are documentation service providers and also dedicated MBSE people using SysML to document an existing system (reverse engineering, and as a by-product the company also gets a good design model). They are doing their best to stick to “canonical” SysML.

(Are there more categories?)

I am one of the category (C). I use MBSE for documentation, i.e., knowledge transfer – ie to teach how the system works.

 

->>  but actually each ’simplification’ of the diagram is moving you further away.

Nevertheless, I am also still going forward: each deeper explanation you give improves my capability. And even if I find that SysML will not let me model the way I want, then knowing that is also excellent. 

Without yet reading the technical stuff, I can already feel that likely I am not going to be able to do what I wanted to do.

Now back to the technical stuff….

  

>> This is not how a DataStore works, you can’t manipulate the ObjectTokens already stored, all you can do is add new ObjectTokens. 

 

Ok – so now I understand why you originally thought the key characteristic of my data structure is that it is a list/set (of objects, and I was adding (new) objects). Because it seems that is what a datastore is for.

 

Disappointed.

 

Ok – so the UML DataStore element is not for what  I wanted to do. Is there a different UML element that does do what I want? I am starting to realize there is not… If so, is there a fundamental system engineering reason for that?

 

>> I should add that you could make it work, but you would need to define all the extra and unnecessary processing, such as you would need to define a ‘dereferencing’ operation to actually manipulator any data.

 

Yes.  I started to think of adding some ‘side’ actions to do ‘push value’ updates to the struct. But it is defeating the purpose of simplicity; it would vastly add to the number of elements on the diagram.

 

>> “De-referencing means "get me the data held at this address” “

>>” … when you deference a pointer you get the value stored at the location pointed at by the pointer, there is no copying going on.”

Ok. I had thought you wanted to point out to me that at the physical data-bus layer, when you do a ‘get’ you are always causing data to be ‘sent’ along the bus i.e., copied, so there is always a ‘copy’ involved. And this has relevance for safety analysis.

 

>> “I’m not sure I complete understand this comment, but designs is process, so you need at least two views (diagrams) one which is the specification and one which is the design and ana rationale how to transform from one into the other.

Indeed.  And thank you for pointing that out.

And that is for a separate thread, I guess.

  

>> Actually the two views are comparable (I now realise). Because the DataStore always gives you a copy then if you push that ObjectToken back in it just adds it to the collection of ObjectTokens. 

Either way, it has become clear that «datastore» is not what I need here.


Thank you for the explanations about pointers and de-referencing.

Will later follow up on your responses about safety analysis.

 

Bottom line, for now – what I will do:

I will delete the datastore element, obviously.

Instead , each action will display a ‘purpose caption’ as follows:

      “Do Processing Step n;  Update the Result struct.”

And the flow between actions will be control flows (rather than object flows).

 

Thank you,

Avi


Wolfgang Schlicker

unread,
Jun 2, 2021, 2:37:57 PM6/2/21
to SysML Forum
Hi Avi, 
have you considered to add additional semantics of type "datastore" by means of defining an UML profile that meets your requirement(s) of handling your datatypes?
There is additional effort to teach and document the new types but sometimes it will fit your needs better.

BR Wolfgang

James Towers

unread,
Jun 2, 2021, 11:44:12 PM6/2/21
to sysml...@googlegroups.com
This is all good, but I still don’t understand why outputting the results structure from one action (after it is updated) and inputting into the next action doesn’t describe what you are trying to do? 

Sent from my iPhone

On 2 Jun 2021, at 19:37, Wolfgang Schlicker <wolli.s...@gmail.com> wrote:

Hi Avi, 
--
--
You received this message because you are subscribed to the Google
Groups "SysML Forum" group.
Public website: http://www.SysMLforum.com
To post to this group, send email to sysml...@googlegroups.com
To unsubscribe from this group, send email to
sysmlforum+...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/sysmlforum?hl=en_US?hl=en
---
You received this message because you are subscribed to the Google Groups "SysML Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sysmlforum+...@googlegroups.com.

avi-mak

unread,
Jun 3, 2021, 10:22:34 AM6/3/21
to SysML Forum

Hi James,

 

>> This is all good,

 

Finally … :)

 

>> but I still don’t understand why outputting the results structure from one action (after it is updated) and inputting into the next action doesn’t describe what you are trying to do?

 

And indeed this is where we came in. (And it is written somewhere, “the beginning is wedged in the end, and the end is wedged in the beginning”.)

 

In terms of generalized flow, what you write above does logically describe what I am trying to do. But the code does not exactly work that way.

 

It could be that you have a basic sys eng axiom that I don’t have yet, i.e., that the way you describe is the accepted system engineering practices and is complete and correct, although it is not exact.

 

Maybe the specific point of my misunderstanding is this:

 

To my understanding – and correct me if I am wrong – what you write “outputting the results structure from one action … and inputting into the next action”: would be complete and correct in the case where I have, for example, an action defined as a subroutine fn() with input & output parameters as follows:

   fn (in x, out y)

where x and y are of the same struct type.

 

However, each fn() subroutine in my subroutine sequence has no input or output parameters. Each fn() subroutine reads and updates the results structure directly from within its code body. So that is why I wanted to draw some data storage on the side. And that is the way that non-uml engineers would draw it with their traditional colored lego block diagrams.

 

But, as I mentioned above, maybe the sys eng norm is that it is complete and correct to draw it as a direct flow from one action to the next, as you say, although it does not seem to me to be a direct flow at all.

  

Thanks,

Avi


James Towers

unread,
Jun 3, 2021, 8:25:20 PM6/3/21
to SysML Forum
Ok, so what you need to do is to define the Output Structure as a part of the owning Block, so that each of the actions can read and update it. See example
The problem is that SysML is an OO language and so encourages you to enforce strong encapsulation.  




--
--
You received this message because you are subscribed to the Google
Groups "SysML Forum" group.
Public website: http://www.SysMLforum.com
To post to this group, send email to sysml...@googlegroups.com
To unsubscribe from this group, send email to
sysmlforum+...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/sysmlforum?hl=en_US?hl=en
---
You received this message because you are subscribed to the Google Groups "SysML Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sysmlforum+...@googlegroups.com.

avi-mak

unread,
Jun 4, 2021, 1:33:34 PM6/4/21
to SysML Forum
Hi James,

Thank you very much for your answer. It came just in time -- for me to carry on with my work to present a SysML diagram that is both correct with regards to technial content and also is in valid SysML notation.

Great thanks for all the clarifications, especiialy in what turned out to be an unexpectadly long thread.
Avi


 

avi-mak

unread,
Jun 6, 2021, 3:45:51 AM6/6/21
to SysML Forum

Please excuse me for the typos at the end, there. I guess I must have run out of energy.  

Should be: "Thank you very much for your answer. It came just in time -- for me to carry on with my work to present a SysML diagram that is both correct with regards to technical content and also is valid SysML notation. Great thanks for all the clarifications, especially in what turned out to be an unexpectedly long thread."

Again, thank you very much.

Avi

avi-mak

unread,
Jun 15, 2021, 8:49:28 PM6/15/21
to SysML Forum
Hi   Wolfgang, 

>> have you considered to add additional semantics of type "datastore" by means of defining an UML profile that meets your requirement(s) of handling your datatypes?

Thank you for your suggestion. 

What do I have to actually do to make a new UML profile meet my requirements? Can I just write to my colleagues that I have created a new profile and it means what I want it to mean? Or do I have to assign a specific / generic data type to it and and write an API?

(Easier would be as in the 'Alice in Wonderland' sequel : “When I use a word ... it means just what I choose it to mean — neither more nor less.").

Thanks
Avi


Reply all
Reply to author
Forward
0 new messages