Re: [SysML Forum] Towards understanding the UML analogs of SysML BDD and IBD diagram types

8 views
Skip to first unread message

kob...@gmail.com

unread,
Nov 9, 2020, 12:11:56 AM11/9/20
to sysml...@googlegroups.com, avi-mak, umlf...@googlegroups.com
Hello Avi,

> In general, I need to know what are the UML analogs of SysML BDD
> and IBD diagram types.

You will find a table that systematically compares and contrasts UML2 vs
SysML diagram types in the following FAQ:

"SysML FAQ: What is the relationship between SysML and UML?"
https://sysmlforum.com/sysml-faq/what-is-relation-between-sysml-and-uml.html

> Please forgive me for asking [what ]appears to be a UML question
> on a SysML forum.

Please don't apologize for your UML vs SysML question, since (as the FAQ
above indicates) numerous persons are confused about the *dialectical*
differences between the two languages. Consequently, I am cross-posting
my response to UMLf...@googlegroups.com.

(Disclosure: I am the Editor of both SysMLforum and UMLforum Google
Groups, and previously led the UML 1.x, UML 2, and SysML Open Source
design teams. I have ~25 years experience applying UML/SysML to
software-intensive Systems-of-Systems. So I know both languages and the
mainstream tools that implement and mis-implement them quite well.)

Back to your specific questions...

> However, it seems to be more correct to first ask about the UML
> Component diagram type: does the Component diagram type specify
> /types/ (like /classes/) or does it specify /instances/?

Short answer: Both!

Longer Answer:
Both the UML 2 Component diagram and UML 2 Composite Structure diagram
allow you to specify *types* and *instances* of Components and
Structured Classes, respectively.

Since SysML is a dialect (Profile) of UML 2, the same is true of a Block
Definition Diagram (BDD): you can specify both a Block *type* and a
Block *instance* on a BDD.

This shouldn't be surprising, since UML2 and SysML are essentially the
same language!

I hope your next questions have something to do with: "How are UML 2
Parts related to UML 2 Components and Instances? and "How are SysML
Parts related to SysML BDD Blocks and Instances?" If you are interested
in either of these questions you may want to check out the following FAQ:

"What is the difference between a Block Definition Diagram (BDD) and an
Internal Block Diagram (IBD)?"
https://sysmlforum.com/sysml-faq/what-is-diff-between-BDD-and-IBD.html

> The OMG UML Spec v1.6, writes a lot of definition text to explain
> components.

Yes, and it does a poor job of explaining them and their relationships
with Ports (Standard, Proxy, Full) and Interfaces ([Standard]
Interfaces, Interface Blocks).

> Section 11.6.1 writes: “A Component can always be considered an
> autonomous unit within a system or subsystem.” and “The Components
> package supports the specification of … physical Components.“
> For me, the use of the terms /autonomous unit/ and /physical/hardware
> units/ implies that the components are /instances/.

Although I agree with you that this explanation is poor, your inference
that "autonomous unit" and "physical/hardware unit" imply that
components = instances is a non sequitur.

Please keep in mind that you are reading a language specification, not
an Object Primer or User Manual! You are expected to fully understand
the following Object paradigm basics (using Miller Analogies notation:
https://en.wikipedia.org/wiki/Miller_Analogies_Test):

Classifier/Type : Instance :: Definition : Usage

- OR (more fundamentally) -

Classifier/Type : Instance :: Abstraction : Reification

(BTW, a UML2/SysML "Part" fits in between "Classifier/Type" and
"Instance" (indeed, it is sometimes referred to as a "Propotypical
Instance"), but I will defer details to a future FAQ.)

For example, in a System Design for a "Ethereum CryptoCurrency Mining
Rig" System you might *define* the following "physical/hardware
components", which are also "autonomous units", Blocks on a BDD:

"MiningRigFrame <Block>" w/ mult = 1; "MotherBoard <Block>" w/ mult = 1;
"SSD <Block>" with mult = 1; ... ; and "GPU Card" <Block> w/ mult = 9.
Note that the various multiplicities define the numerical constraints
for the number of *instances* that can be specified on the same, or some
other, BDD. So in this "Ethereum CryptoCurrency Mining Rig" System
example, you would expect to find nine (9) instances of "GPU Card"
<Block> "physical/hardware components", each of whose ValueProperty
"Slot Values" may vary at any point of time.

> However, section 11.6.3 writes: “A Component is a self-contained unit
> that encapsulates the state and behavior of a number
> of /Classifiers/.”

I agree that this is poorly written and misleading ...

> For me, the use of the term /Classifiers/ implies that a Component
> is a /type/.

... but you are incorrect about your inference for the reasons explained
above.

> An important point here therefore seems to be: can I create /multiple
> instances /of a component? ...

Yes, of course.

You *need* to be able to define *both* Components and multiple Component
Instances to DYNAMICALLY SIMULATE any non-trivial UML2/SysML model. I
strongly recommend that you start Dynamically Simulating UML2/SysML
models as soon as practical, so that you sort out the basic similarities
and differences between Components and Component Instances. I know of no
more efficient or faster way to learn this. (Please keep in mind that
the first Object language was called Simula [1967] for good reason!)

Please confirm receipt and let me know your thoughts.

/Cris

_____________________________________________________________________

PivotPoint Technology - Model-Based Digital Engineering(sm) Solutions
_____________________________________________________________________

Cris Kobryn
PivotPoint Technology Corp.
Tel: +1.760.728.9747 (O) | +1.760.672.0862 (M)
Net: Cris....@pivotpt.com
Web: www.pivotpt.com
_____________________________________________________________________

CONFIDENTIALITY NOTICE
This e-mail is confidential and may also be legally privileged.
If you have received it in error, please notify us immediately by
reply e-mail and then delete this message from your system. Do not
copy it, use it, or disclose its contents to any other person;
to do so could be a breach of confidence. Please contact PivotPoint
Technology Corp. at in...@pivotpt.com if you need assistance.

=====================================================================

On 11/8/2020 3:37 PM, avi-mak wrote:
> Hi,
>
>
> I have been learning and using SysML for a while (BDDs, IBDs, and
> Activity diagrams). However, due to certain company constraints I might
> now have to move (“down”) to UML (i.e., use diagram types offered by
> ‘non-SysML, generic UML’).
>
>
> In general, I need to know what are the UML analogs of SysML BDD and IBD
> diagram types.
>
>
> However, it seems to be more correct to first ask about the UML
> Component diagram type: does the Component diagram type specify
> /types/ (like /classes/) or does it specify /instances/? Please forgive
> me for asking wat appears to be a UML question on a SysML forum.
>
>
> The OMG UML Spec v1.6, writes a lot of definition text to explain
> components. Some selected quotes:
>
> Section 11.6.1 writes: “A Component can always be considered an
> autonomous unit within a system or subsystem.” and “The Components
> package supports the specification of … physical Components.“
> For me, the use of the terms /autonomous unit/ and /physical/hardware
> units/ implies that the components are /instances/.
>
> However, section 11.6.3 writes: “A Component is a self-contained unit
> that encapsulates the state and behavior of a number of /Classifiers/.”
> For me, the use of the term /Classifiers/ implies that a Component is a
> /type/.
>
>
> So to repeat the question: is a Component diagram a /type /(like a
> /class/) or an /instance/?**
>
>
> To try to answer my own question: from the fact there exists the
> isDirectlyInstantiated property, it seems that a Component is both a
> class and an instance, and /by that same name/.
>
>
> An important point here therefore seems to be: can I create /multiple
> instances /of a component?  I get the feeling the answer is no, and in
> this lies the difference between a component and a class.
>
>
> Comments?
>
>
> Thanks
>
> Avi
>
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "SysML Forum" group.
> Public website: http://www.SysMLforum.com <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
> <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
> <mailto:sysmlforum+...@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sysmlforum/fbd2f7b5-a2e7-4770-8a7d-d9f32cecd010o%40googlegroups.com
> <https://groups.google.com/d/msgid/sysmlforum/fbd2f7b5-a2e7-4770-8a7d-d9f32cecd010o%40googlegroups.com?utm_medium=email&utm_source=footer>.

Avraham Makeler

unread,
Nov 10, 2020, 2:55:05 AM11/10/20
to UML Forum
Hi Cris,

Thank you so much for your quick response.  

>  > does the Component diagram type specify /types/ (like /classes/) or does it specify /instances/?

> Short answer: Both!

Great! So there is some logic there.

 

> Since SysML is a dialect (Profile) of UML 2, the same is true of a Block Definition Diagram (BDD): you can specify both a Block *type* and a  Block *instance* on a BDD.

When I first saw such an example where a BDD specs an instance, it surprised me. In books and articles, the general approach seems to be that BDD are the definitions – types (as implied by the name – def), and IBDs define the instance of one block (and often it is the only instance of the block that the system “uses”).

 

> Longer Answer:


> I hope your next questions have something to do with: "How are UML 2
Parts related to UML 2 Components and Instances? and

 

Almost. I wanted to see a full SyML-> UML mapping. But it is lacking. (Hence my first question is what is a Component: a class or instance.)  I saw https://sysmlforum.com/sysml-faq/what-is-relation-between-sysml-and-uml.html  but it says SysML is N/A to UML:


Indeed…?


Anyway, ...


Questions:



1.     My next question is indeed ... 

      1. "How are UML 2 Parts related to UML 2 Components and Instances?”  

      2. Components and instances  

2.     (a) Are UML Component definition (class?) trees defined like SysML Block trees? And with the black diamonds for whole composites etc?  I have not seen that yet – but then again, I am a UML beginner. 


(b) And if so, is a Component instantiated by representing it as a Composite Structure diagram (like an IBD)?


       3.     Is there a good article on UML Components: covering Component classes and Component instances?

   4. 4.     The MBSE  platform I use is Sparx EA. My next challenge obviously would be “so how do you do it in EA…?” But that is for a different forum…

Thanks

Avi

> For more options, visit this group at
> http://groups.google.com/group/sysmlforum?hl=en_US?hl=en
> <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
Reply all
Reply to author
Forward
0 new messages