Detailed Recipe
- Preparation
- Open the template TismTemplate.xml for using the stereotypes and the predefined packages.
- Repository
- create a sub-package for the main component in the Repository
- create a UML Component for the main component in that package
- create a sub-package Terminators in the Repository
- create UML components for the terminator components
- Protocols
- create a sub-package for a protocol in package Protocols
- set the stereotype of this sub-package to TismProtocol
- in this package: create a Class Diagram
- in this class diagram: create a class having the server role
- create a class having the client role
- create an interface representing the API of the server class
- add the functions in that interface
- create a port at the client class, typed to that class
- create a connection from the client’s port to the interface, selecting Usage
- create a port at the server class, typed to that class
- create a connection from the server’s port to the interface, selecting Interface Realization
- for an active state machine protocol:
- create a callback interface
- add the functions in that interface
- create a connection from the client’s port to the callback interface, selecting Interface Realization
- create a connection from the server’s port to the callback interface, selecting Usage
- for the server class, create and design a State Machine Diagram
- for the client class, create and design a State Machine Diagram
- Context
- create an Execution Environment for your system (this type of element is an anchor for TismTool)
- create in this Execution Environment a Composite Structure Diagram, named Context
- drag instances of all involved components to this Context
- for each connection:
- create a provided port with the intended type at a component with the server role
- create a required port with the conjugate type at a component with a client role
- draw a connection from the required port to the provided port
- Decomposition
- in case of decomposing into subcomponents, recursively apply the steps 2 - 6
- in case of decomposing into classes:
- create the component's class(es)
- for each class, create its ports
- draw (delegated) connections
- Scenarios
- Finite state machines