Block: A Block (notation: rectangle with keyword = «block») represents a system component, a modular structural unit that encapsulates its contents (Properties, Behaviors, Constraints) and supports first-class (i.e., can be drawn and directly manipulated in the model repository) Interfaces. Behaviors encapsulated by Blocks include: Operations, Signals, and State Machines. The unique interaction points for attaching and connecting ("wiring") Block Interfaces are called Ports.
Internal Block Diagram (ibd): An Internal Block Diagram is a static structural diagram owned by a particular Block that shows its encapsulated structural contents: Parts, Properties, Connectors, Ports, and Interfaces. Stated otherwise, an IBD is a "white-box" perspective of an encapsuated ("black-box") Block.
The purpose of Internal Block Diagrams (IBDs) is to show the encapsulated structural contents (Parts, Properties, Connectors, Ports, Interfaces) of Blocks so that they can be recursively decomposed and "wired" using Interface Based Design techniques. When used correctly BDDs + IBDs are recursively scalable and mathematically (parametrically) simulatable (See Executable Semantics below.)
Diagram Name | Diagram Type | UML 2 Analog | SDLC Usage | Essential AGILE SYSML? |
Dynamic Sim † |
Math Sim ‡ |
Auto Code Gen |
Rigor | Semi | Informal |
---|---|---|---|---|---|---|---|---|---|---|
Internal Block Diagram (ibd) | Static Structure [White Box Usage] |
Composite Structure [moderate mods] |
System Analysis, System Design |
BDDs and IBDs complement each other (cf. black-box vs. white-box) and support recursive structural decomposition techniques during System Analysis & Design.
BEST PRACTICE PATTERNS |
ANTI-PATTERNS |
---|---|
* Aggressively apply Object Triad Pattern triage techniques to Blocks in order to separate Control Objects, Interface Objects, and Data Objects. | * Conflate Control Object, Interface Object, and Data Object Blocks. |
* Recursively decompose ("nest") Block hierarchies by alternating between BDD definitions and IBD usages. | * SA/SD DFD Anti-Pattern (a.k.a., "Back to the Future circa 1980" Anti-Pattern) = Define Activity diagrams as Functional Flow diagrams without Parttions that represent Control Objects. |
* Allocate all Activities to Partitions that represent Control Object Blocks. | * Bloctivity Anti-Pattern = Conflate Block and Activity syntax and semantics. |
Made in RapidWeaver