Decomposing Ports and Connectors with Association Blocks


This article was written when SysML v1.3 specification is in releasing process. If you are a big fan of SysML and keep in touch with SysML RTF, you may have seen some documents or books about SysML v1.3 such as [1] and [2]. One of many things that I am impressed in those books and documents, is the way they use SysML to describe nested ports and specify compatibility between connected ports using association blocks. 


When two ports connected by a connector, they may have nested ports which themselves can be connected. An association block has been suggested for defining the internal structure of the connector. It could contain a set of connectors that define the connectors between nested ports of association ends. When a connector is typed by an association block, the interaction between roles at both ends of connector will be handled by the internal structure of the association block [1]. This approach give us not only the ability to decompose ports and connectors but also the ability to define multiple types of connection between the same pair of ports' types. 


For easy to understand, RS 232 communication via DB-9 connectors will be used as an example. From wikipedia [3], RS-232 (Recommended Standard 232) is the traditional name for a series of standards for serial binary single-ended data and control signals connecting between a DTE (Data Terminal Equipment) and a DCE (Data Circuit-terminating Equipment). It is commonly used in computer serial ports. DB-9 is the popular connector for using with RS 232.

There are several ways to connect both DTE and DCE together using DB-9 Male and DB-9 Female connectors, e.g. null modem connection, 3-lines connection. It depends on the DTE and DCE devices. Each connection can be defined using an association block as shown in Figure 1.

Figure 1 -- Blocks and association blocks
Note: A full port is a new port type introduced in SysML v1.3. It represents a port that could be considered as a part on a boundary of a block.

In the internal block diagram of each association block, the internal structure of the association block will be defined with its owned participant properties, as shown in Figure 2 and Figure 3. These participant properties are used to reference to association ends of the association block.
Figure 2 -- Shows a null modem connection between DB-9 Male and DB-9 Female ports

Figure 3 -- Shows a 3-lines connection between DB-9 Male and DB-9 Female ports
Now, we don’t have to connect pins and sockets together, one-by-one, every places in the model. We can reuse the defined connection by typing connectors with association blocks as shown in Figure 4. That save us a lot of time.

Figure 4 -- Shows the using of null modem connection between DB-9 Male and DB-9 Female ports.
For the SysML users who don't have the SysML v1.3 profile, don't worry. This approach can be applied to the models that use the SysML v1.2. SysML v1.3 was mentioned because the using of association blocks for decomposing ports and connectors have been introduced just only in the books and documents about SysML v1.3.

References:
[1] Friedenthal S., Moore A., and Steiner R. "A Practical Guide to SysML: The Systems Modeling Language", 2nd ed. The MK/OMG Press.
[2] Friedenthal S., "Modeling System Interfaces with SysML v1.3" [Presentation, Online -  http://www.pslm.gatech.edu/events/frontiers2011/1.3_Friedenthal.pdf ]
[3] Wikipedia http://en.wikipedia.org/wiki/RS-232


Kritsana Uttamang, PhD.

Analyst Manager / SysML Domain Expert
No Magic Inc.

Comments

  1. Great, thanks for sharing this post. Want more.

    Mathematica

    ReplyDelete
  2. Within RS232 block how can you choose the direction for a value: e.g. CTS: Data IF{readonly, direction=in}

    ReplyDelete
  3. Respect and that i have a swell offer you: Renovation House Company split level renovations

    ReplyDelete

Post a Comment

Popular posts from this blog

Simple Clock Modeling with SysML

A Common Misunderstanding in Using Connectors