The software architecture design activity integrates the results of the process and class structuring activities. This integration combines both the dynamic and static views of the software system by identifying the interactions between processes and objects in a language-independent fashion. To identify an interaction between a process and an object, examine the process and class behaviour specifications. The process logic documents when a process is activated (i.e. via an event or message) and what the process does. To service the event or message, a process often needs to operate an object by invoking operations that define how the process logic is carried out. During this activity, you create and document the process interactions with objects and their operations. These interactions are recorded in a SAD.
The SAD shows the processes (with communications and synchronisation), objects (with dependencies), and the interactions among processes and objects.
SADs are not hierarchical.
SADs only appear in the Implementation Domain.
The numbering system for SADs is alphanumeric.
An example SAD is:
The symbols available in SADs are:
Symbol | Name | Description | Definition | Expansion |
---|---|---|---|---|
Comment | Makes a note anywhere in the diagram. Are always surrounded by * characters. Note: If you do not want Cradle to automatically add an * go to the Graphics Settings section of Project Setup and turn off the Automatically add asterisks to diagram's comment symbols option. | None | None | |
Boundary Point | A connection point for the initial transition to enter the initial state. | None | None | |
Environment | Represents external system or environment to this system. | Environment | None | |
Off-Page Connector | Means to connect any event or message or data link in two parts either on the same SAD or between SADs, where a linkage between SADs is effected by having off-page connectors on each SAD with the same name and where one is an input (has connectors entering it) and the other is an output (has connectors leaving it) and if both it is an input. | None | None | |
Picture | Allows you to choose the location of a GIF or JPEG image to be displayed as a diagram symbol or to be embedded in an existing diagram symbol. | None | None | |
Process or Task | Process or task element which can contain entries. | Task specification | None | |
Class or Object | Packaging element, typically within a task (but sometimes the other way round), can contain routines. | Class specification | None | |
Process/Task Entry | An entry in a process or task symbol. This can only exist within a process or task symbol. | None | None | |
Class/Object Routine | A routine (procedure or function) in a class or object symbol. This can only exist within a class or object symbol. | None | None | |
Data Store | Allows static data buffers to be depicted. It is only significant in the consistency checks of individual SADs in the tests of the inputs to, and outputs from, such stores. | Store data definition | None | |
FIFO Message Queue | A first-in-first-out buffer of messages between elements. | None | None | |
Prioritised FIFO Queue | A prioritised first-in-first-out buffer of messages between elements. | None | None | |
Event | The indication of an event. | Message data definition | None | |
Message | A data message between elements. | Message data definition | None | |
Message with Reply | A data message between elements which has an acknowledgement. | Message data definition | None | |
Data Link | A general purpose data connection between elements. | Flow data definition | None | |
Item | Represents a requirement or system note in the diagram. | None | None | |
Context Item | Represents a requirement or system note in a diagram and is a container within which other object symbols can be drawn or attached. | None | None | |
Cross Reference Link | Represents a cross reference that exists between a pair of system notes/requirements. It can also represent a cross reference between a system note/requirement and a specification or data definition or system that describes the objects symbols that it connects. | None | None |