Professional Documents
Culture Documents
Introduction to SysML
Some slides Copyright 2006 by Object Management Group. Published and used by INCOSE and affiliated societies with permission.
Slide 1
Copyright 2006 ARTISAN Software Tools All Rights Reserved
Introduction to SysML
Caveat
This material is based on the Final Adopted SysML specification (ad-06-05-04) Adopted by OMG in May 06
Some of the slides are based on the OMG SysML tutorial and are used with permission.
OMG SysML Website http://www.omgsysml.org/
Slide 2
Introduction to SysML
Software Engineers who want to express systems concepts Familiarity with UML is not required, but it will help
Slide 3
Introduction to SysML
Agenda
Introduction Systems Engineering with SysML Requirements and Requirements Diagrams Structural Diagrams
Blocks and Block Diagrams
Behavioral Diagrams
Use Case modelling Activities and Activity Diagrams Sequence Diagrams State Machines
Cross-cutting Concepts
Requirements traceability Allocations Package Diagram Parametric Diagrams
Introduction to SysML
Future
Introduction to SysML
System Modeling
Requirements
Introduction to SysML
Improved communications Assists in managing complex system development Separation of concerns Hierarchical modeling Incremental development & evolutionary acquisition Improved design quality Reduced errors and ambiguity More complete representation Early and on-going verification & validation to reduce risk Other life cycle support (e.g., training) Enhanced knowledge capture
Slide 7
Introduction to SysML
What is SysML?
A graphical modelling language in response to the UML for Systems Engineering RFP developed by the OMG, INCOSE, and AP233 a UML Profile that represents a subset of UML 2 with extensions Supports the specification, analysis, design, verification, and validation of systems that include hardware, software, data, personnel, procedures, and facilities Supports model and data interchange via XMI and the evolving AP233 standard (in-process)
Introduction to SysML
Slide 9
Introduction to SysML
UML/SysML Status
UML V2.0
Updated version of UML that offers significant capability for systems engineering over previous versions Finalized in 2005 (formal/05-07-04)
SysML
Slide 10
Industry Response to the UML for SE RFP Addresses most of the requirements in the RFP Version 1.0 adopted by OMG in May 06 / In finalization Being implemented by multiple tool vendors
10
Introduction to SysML
Vendors
Artisan, EmbeddedPlus, Gentleware, IBM, Gentleware, I-Logix, Mentor Graphics, Motorola, PivotPoint Technology, Sparx Systems, Telelogic, Vitech Corp
Academia
Georgia Institute of Technology
Liaison Organizations
INCOSE, AP233 WG
Slide 11
11
Introduction to SysML
Introduction to SysML
Diagram Overview
Slide 12
12
Introduction to SysML
This workshop deals with the full set of SysML diagrams, both the inherited UML diagrams and the additional ones.
Slide 13
Copyright 2006 ARTISAN Software Tools All Rights Reserved
13
Introduction to SysML
Mechanisms for further customizing SysML Profiles represent extensions to the language
Stereotypes extend meta-classes with properties and constraints
Stereotype properties capture metadata about the model element
Profile is applied to user model Profile can also restrict the subset of the meta-model used when the profile is applied
Slide 14
14
Introduction to SysML
Stereotypes
Slide 15
15
Introduction to SysML
Tag Value
data value(s) for a specific tag definition for a specific model item
Slide 16
When you apply a stereotype to a model item, you often want to attach additional information to that element. In the example of a COTS stereotyped board you might want to specify the cost of that board. This is done by linking a tag definition (named, for example, cost) to the stereotype through which a tag value (for example, 24.50) can be specified for that board.
16
Introduction to SysML
Slide 17
17
Introduction to SysML
Structure
Requirements
Behavior
Package
Activity
Parametric
[1] Modified UML Class Diagram [2] Enhanced UML Composite Structure Diagram
Slide 18
SysML reuses many of the major diagram types of UML. In some cases, the UML diagrams are strictly re-used such as use case, sequence, state machine, and package diagram, whereas in other cases they are modified so that they are consistent with SysML extensions. For example, the block definition diagram and internal block diagram are similar to the UML class diagram and composite structure diagram respectively, but have extensions or omissions. Activity diagrams have also been modified. SysML does not use all of the UML diagram types such as the object diagram, communication diagram, interaction overview diagram, timing diagram, and deployment diagram. This is consistent with the approach that SysML represents a subset of UML. In the case of deployment diagrams, the deployment of software to hardware can be represented in the SysML internal block diagram. In the case of interaction overview and communication diagrams, it is felt that the SysML behavior diagrams provided adequate coverage for representing behavior without the need to include these diagram types. Two new diagram types have been added to SysML : the requirement diagram and the parametric diagram. [SysML v1.0]
18
Introduction to SysML
Slide 19
For many organizations, any approach to modeling needs to be customized, to include standards, notation and information relevant to the organization, its customers, and the projects it undertakes. This need to extend the modeling capability of the language is recognized within the UML by the specification of extension mechanisms. The UML provides a mechanism for extending or customizing modeling information. This mechanism uses the above concepts to label model elements and to define additional properties for them.
19
Introduction to SysML
2. Behavior
interaction
stm Tire [Traction]
act PreventLockup
state machine
Los s O fTrac tion/
Gripping
BlockProperty m1 : Brake Modulator
definition
par [constraint] StraightLineVehicleDynamics [Parametric Diagram]
{f = (tf*bf)*(1-tl)} {F = ma}
use
: BrakingForceEquation tf tl bf f F
: AccelerationEquation c
req [Package] Vehicle Specifications [Braking] Vehicle System Specification requirement Stopping Distance id# 102 txt The vehicle shall stop from 60 mph within 150ft on a clean dry surface.
3. Requirements
Braking Subsystem Specification requirement Anti-Lock Performance id# 337 txt The Braking subsystem shall prevent wheel lockup under all braking conditions.
4. Parametrics
: DistanceEquation x v v a
{v = dx/dt} {a = dv/dt}
: VelocityEquation
deriveReqt
Slide 20
Structure e.g., system hierarchies, interconnections behavior e.g., function-based behaviors, state-based behaviors Properties e.g., parametric models, time variable attributes Requirements e.g., requirements hierarchies, traceability
20
Introduction to SysML
Header
diagram usage
Contents
Slide 21
Copyright 2006 ARTISAN Software Tools All Rights Reserved
21
Introduction to SysML
Introduction to SysML
Requirements
Slide 22
22
Introduction to SysML
Structure
Requirements
Behavior
Block Definition
Internal Block
Package
Activity
Parametric
Slide 23
The Requirements diagram sits out side the Structure/behavior organization of the remaining SysML diagram types.
23
Introduction to SysML
Slide 24
24
Introduction to SysML
The Requirements diagram can be used for a variety of purposes throughout the system lifecycle:
Traditional text requirements and their properties (e.g., id, statement, criticality, etc) Grouping a set of requirements in a package Breaking down requirements into constituent elements Demonstrating traceability between derived and source requirements Showing which design elements satisfy which requirements Verification of a requirement, or design element by a test case Rationale for all of the above
Slide 25
How the requirements diagram is used will vary depending on the industry, company, project, and process. Its main strength is in its ability to graphically represent requirements and how they pertain to the rest of the UML model.
25
Introduction to SysML
Requirements
A requirement specifies a capability or condition that must (or should) be satisfied [SysML] Can specify function to be performed or performance criteria to be met Basic attributes of a Requirement
ID: Text: A unique identifier for the Requirement A Description of what is Required.
Users can create stereotypes and tags to add specific properties, e.g.
Requirement type (Performance , Safety, Functional, etc. ) Criticality requirement Test method REQ_A1 Status txt Etc.
The System shall do... reqtType function
Slide 26
26
Introduction to SysML
Requirement
requirement derivedFrom REQ_A1.1 requirement REQ_A1.1
Containment
requirement REQ_A1.2 deriveReqt requirement REQ_B1 testCase Model Element B Model Element A refine
Callout
requirement REQ_D txt same text copy
verify
Slide 27
The requirement diagram shows both requirements and the different types of relationship that can be specified between them. Requirement properties (such as the textual description) can be shown if required. Containment (sometimes referred to as flowdown) is used to show where requirements are decomposed into sub-requirements. The deriveReqt and copy relationships can only exist between requirements. trace, refine, satisfy and verify can exist between a requirement and any other model element. The verify relationship can only exist between a requirement and a behavioral model element stereotyped as a testCase. An alternative to these direct relationships is to use the callout notation only one example of the callout notation is shown here. problem and rationale comments can be added as required to any model element to capture issues and decisions.
27
Introduction to SysML
trace requirement Produce Distilled Water txt Distill dirty water into pure water
rationale
30 is deemed a safe output temperature
requirement Condenser Efficiency deriveReqt txt The condenser needs to cool the pure water to 30 C requirement Handle Overflow txt The system must have an overflow valve in the main heating vessel requirement Provide Input Protection txt The system shall have an input valve that is closed when the system is off
requirement Water Output txt The pure water output must be at a safe temperature requirement Water Input txt The system must be able to connect directly to mains water deriveReqt deriveReqt
rationale
High pressure w ater may overpow er the boiler so an overflow valve is needed
rationale
requirement Water Throughput txt The system shall handle 1 litre of water per minute
Direct connection to high pressure mains w hen the system is off might cause damage
satisfy
rationale
Analysis of this activity show s that the throughput is possible
Slide 28
28
Introduction to SysML
Problem and Rationale can be attached to any Model Element to Capture Issues and Decisions
Slide 29
Copyright 2006ARTISAN Software Tools All Rights Reserved
29
Introduction to SysML
An Automotive Example
The Business Process The Business Case Marketing have identified a niche inThe the market for a mid-range engine, high-specification vehicle Business Case (Named: XSV-2001). The eventual cost of the vehicle will be in the range of 16K-20K, with a proposed launch date of Spring 2003. Finance have made 300K available for Conception and Development Will (including specify any re-tooling the Requirement and training on the for production a System line).(e.g. The estimated a Car)profit margin is 10%-15% per production unit. Minimal changes will be made to existing production lines and tooling, and maximum use of existing components is mandated. A review wil l be held in 4- months to May include (solution-based) capabilities ofTarget the System (e.g. Cruise determine go- ahead of Development (and subsequent) phases. market: Executive Fleet and Family. Control, EMS, ABS) Feature- Set
Standard Front-Wheel Drive, Front-engine, 5-Door (hatch-back), 5-Seat three-point inertial seat -belts (standard options of colour & cover); 1999ccm Variable Valve Control Petrol Engine; Integrated Traction & Cruise Control; Engine Management System (EMS) (including both C ontrol and Diagnostics); Advanced Breaking System (ABS); Electric Windows & Seat Adjustment and Heating (Front seats only, Front windscreen only); Optional: Front and Rear proximity sensors (including distance read-out and audio warning); GPS Navigation System (including audio instructions); (Sports Option) Engine Management System;
Slide 30
The Business Case defines that a System is required and defines the requirements of the System from the Business perspective. This will include some high-level decisions regarding the Systems Capabilities and Usage. The Business Case will also identify business-level Constraints e.g. Development and Production time and cost limits.
30
Introduction to SysML
Introduction to SysML
SysML Structure
Slide 31
31
Introduction to SysML
Block Diagrams
Same as UML Modified from UML New for SysML Diagram
Structure
Requirements
Behavior
Block Definition
Internal Block
Package
Activity
Parametric
Slide 32
32
Introduction to SysML
Slide 33
33
Introduction to SysML
34
Introduction to SysML
Using Blocks
Block definition diagram describes the relationship among blocks (e.g., composition, association, classification) Internal block diagram describes the internal structure of a block in terms of its properties and connectors Behavior can be allocated to blocks
35
Introduction to SysML
Generalization Compartments
ValueType ValueType1 dimension Dimension1 unit Unit1
Block ::Block1
Block ::Block1::Block3
Namespace containment
Block Block2 parts myPart : Block4 refParts : Block6 [*] sharedPart : Block5 [0..1] references refParts : Block6 [*] values aValue : ValueType1 1 refParts * Block Block6
Part association
1 0..1 sharedPart
Multiplicity
Slide 36
Copyright 2006 ARTISAN Software Tools All Rights Reserved
Examples of blocks, and part, reference and value properties are shown here. The generalization relationship indicates that Block 2 inherits properties of Block 1. The reference association is used to indicate which parts are reference parts. A part association shows exclusively owned parts, a shared association indicates parts shared with other blocks. Multiplicity values indicate the number of parts.
36
Introduction to SysML
Enclosing Block
fPort1 BlockProperty myPart : Block4
Part
fPort2 ItemFlow ItemFlow1 : ItemType fPort3 0..1 BlockProperty sharedPart : Block5 pI/F sPort
Item Flow
ItemFlow ItemFlow2 : ValueType1
Reference Property
(in, (in, but but not not of) of)
Port
ItemFlow ItemFlow3 : DataType2
rI/F
Connector
Actor1
Note the consistency between this ibd and the previous bdd (part names, types and multiplicities).
37
Introduction to SysML
Parts
A Part is a property of a block that the block requires in order to exist Used to illustrate the hierarchical composition of a system and its components A part is normally typed by a block and represents an instance of that type within its enclosing block A referenced property is a part not owned by its enclosing block, but referenced by some other part of that enclosing block
Slide 38
Copyright 2006 ARTISAN Software Tools All Rights Reserved
38
Introduction to SysML
SysML Port
Specifies an interaction point on a block or a part
Supports integration of behavior and structure Linked by a connector to one or more other ports
Port types
Standard (UML) Port
Specifies a set of operations and/or signals Typed by a (UML) interface
Flow Port
Specifies what can flow in or out of block/part Atomic ports are:
Uni-directional Typed by the single item that flows in or out
39
Introduction to SysML
Port Notation
Interface1 Interface1
BlockProperty part1
sp1
sp2
BlockProperty part2
Standard Port
BlockProperty part1
fp1 : ItemType1
fp2 : ItemType1
BlockProperty part2
Standard ports are typed by one or more interfaces. A provided interface (lollipop) specifies the services provided through the port; a required interface (cup) specifies required services. Note the consistency of direction of the atomic flow ports. Flow port syntax is name : type, but what is actually shown may be either or both.
40
Introduction to SysML
Unit types normally based on Real SI Units and Dimensions defined in SysML appendix
valueType kg dimension = mass unit = kilogram valueType J unit = Joules valueType kg/m dimension = pressure unit = kilograms/square meter valueType kg/s unit = kilograms/second valueType C dimension = temperature unit = degrees Centigrade
block H2O values lh : J/kg = 520 m : kg = 0 press : Pa sh : J/kg/C = 1 t : C
Slide 41
41
Introduction to SysML
Port Typing
An atomic flow specifies a single item that flows in our out. A flow specification lists multiple items that flow.
bdd [package] Flow Specifications
Flow Specification
valueType C flowSpecification Digital flowPropertyList in Value : V Interface Set Throttle Set Throttle () block Liquid values MassFlowRate : gm/sec Press : kg/m Temp : C Temp valueType kg/m Press valueType gm/sec
MassFlowRate
valueType Analogue
Slide 42
42
Introduction to SysML
ibd [block]Block1[delegation]
Child1:
Child2:
Slide 43
43
Introduction to SysML
fp1 : FlowSpec1
fp2 : FlowSpec1
Connector
A connector is a link between parts that enables communication between them. The flow ports, through their type, define what sort of things can flow across the connector. This can be discrete items such as a data packet or an interrupt, or continuous flows like heat or fluids. What does actually flow in the specific context of a specific diagram is specified by one or more item flows, whose type must be consistent with that of the flow ports.
44
Introduction to SysML
Definition
Block is a definition/type Captures properties, etc. Reused in multiple contexts
Usage
Part is the usage in a particular context Typed by a block Also known as a role
Slide 45
45
Introduction to SysML
Parts compartment shows structural children Values compartment shows properties of the block Flowports compartment describes the interface to the block Operations compartment shows functional capabilities (a means of invoking block activities dealt with later)
Slide 46
The block definition diagram (bdd) shows block properties. Which specific block properties are shown is down to the choice of the modeler. Parts (part properties) are normally shown using the UML composition relationship (the filled in diamond), where the role names at the other end of the relationship specify the part name (the block name at that end specifying the type). Part properties can also be shown in the Parts compartment of the containing block. The Values compartment can be used to show any values (and their type) relevant to the block. The Flowports compartment (if shown) will list all flowports created on an internal block diagram (ibd) for the block or parts typed by the block. The Operations compartment (if shown) will list all block operations. An operation specifies a functional capability of the block, and acts as a means through which block activity can be invoked. This topic is dealt with in greater detail later in the course.
46
Introduction to SysML
: FlowValve op cnt
inValve ip
fIn : Fluid
hx : HeatExchanger HEC
hxWaterOut : H2O
tempWrn
SOut
IValve IValve
bl : Boiler IPower
UserIO User cnt
IValve IPower vI
wrn ui
IValve
vO blrPwr vD pwrIn PowerIn : Electricity extPower
RegPower : Electricity
Ocnt
PwrIn
controller : Controller
problem
Overflow water is very hot!
Slide 47
47
Introduction to SysML
HVHotDirty_In : H2O
BLHotDirty_In : H2O
Fluid_In : Fluid
Shows parts (structural children) and ports (interaction points on block and parts) Supports consistency of layers
Slide 48
The ports on the (enclosing) Boiler block can be automatically populated on this diagram from the information on the previous diagram.
48
Introduction to SysML
Introduction to SysML
Use Cases
Slide 49
49
Introduction to SysML
Structure
Requirements
Behavior
Block Definition
Internal Block
Package
Activity
Parametric
Slide 50
50
Introduction to SysML
Use Cases
Provide means for describing basic functionality in terms of usages/goals of the system by actors Common functionality can be factored out via include and extend relationships Generally elaborated via other behavioral representations to describe detailed scenarios No change to UML
Slide 51
51
Introduction to SysML
Subject Boundary
Use Case
Slide 52
The subject may be the entire system or a component of that system. SysML syntax use the prefix uc followed by the name of the diagram in the outer frame.
52
Introduction to SysML
Use Cases describe the goals that actors have in relation to the system. A Use Case meets a need or solves a problem for an actor. So, what is an Actor ? An Actor is an entity which is eternal to the system, which interacts with the system, but is not a part of the system. Actors should reflect the entire system lifecycle including: manufacture, test, installation, maintenance, etc.
Slide 53
53
Introduction to SysML
What is an Actor?
Expected Actors
A Person
Unexpected Actors
Unauthorized Users
An External System
Threats
An actor is anything outside the system to which the system interfaces. This may be a person, an external system or item of equipment, or some more abstract concept such as time. Examples: Person - Pilot, Operator, Maintainer, etc External System - EPOS, Mainframe, etc Time - Timeouts, Scheduled events
54
Introduction to SysML
Monitor System
Slide 55
55
Introduction to SysML
Actor Characteristics
Primary actor
Main beneficiary of use case Normally initiates use case
Secondary actor
Has interaction responsibilities, but does not initiate Actors represent roles operator, supervisor, Generalization of actors indicates inheritance of use case interactions
Supervisor
Slide 56
Copyright 2006 ARTISAN Software Tools All Rights Reserved
Primary Operator
Run Diagnostics
A primary actor uses the system to achieve one or more specific goals. A use case specifies what the system must do to satisfy a goal. Primary actors often initiate the use case that delivers the goal. It may be necessary for other actors to interact with the system in some welldefined manner in order for the primary actors goal to be realized by the system. These are referred to as secondary actors. Stereotypes can be used to indicate primary or secondary actors. An actor represents a role played by a user of the system. This is particularly relevant where the actor is human; the same person may be capable of playing more than one role with respect to the system. This situation may also imply a requirement for access controls to use case functionality. The UML Generalization relationship (shown using the triangle notation) can be used to indicate a situation where one actor inherits the same set of use case interactions shown for another actor. The specialized actor normally also has additional use case interactions.
56
Introduction to SysML
Withdraw Cash
Other Attributes
Pre-conditions Post-conditions (Guarantees) Constraints Intent Alternate courses Stakeholders Priority Complexity
When inserts Whenaacustomer customer insertsaacard, card,the themachine machinereads reads Transfer Funds the codefrom fromthe thecard cardand andchecks checksififititis isan an acceptable acceptablecard. card.IfIfso soititasks asksthe thecustomer customerfor foraaPIN PIN code code(4 (4digits). digits).IfIfnot, not,the thecard cardis isejected. ejected. When Whenthe thePIN PINcode codeis isreceived receivedthe themachine machinechecks checks whether the PIN code is correct for the whether the PIN code is correct for thespecific specific card. card. IfIfso, so,the themachine machineasks asksfor forwhat whattransaction transaction the thecustomer customerwishes wishesto toperform. perform. When Whenthe thecustomer customerselects selectscash cashwithdrawal withdrawalthe the machine machineasks asksfor forthe theamount. amount. Only Onlymultiples multiplesof of$20 $20 are allowed. ... are allowed. ...
Slide 57
It is very important to describe each use case thoroughly and in simple English. This description should be signed off by the user. This description also acts as a starting point for a more structured breakdown of the use case in later stages of development. For this it can be useful if the description employs a subject - verb - object format, e.g. customer inserts card.
57
Introduction to SysML
Slide 58
Basic use cases specify the main services the system provides for its actors, ignoring exception situations. Subordinate (to their base use cases) use cases can be specified for specifying exception handling or for specifying functional activity duplicated within more than one use case. We can show the relationships between any subordinate use cases and their base use cases on the use case diagram.
58
Introduction to SysML
Common behavior may be extracted from other use cases Defines a must be done relationship Simplifies change
Slide 59
An include relationship can be thought of as a subroutine type of relationship. In order to Withdraw Funds, Transfer Funds or Deposit Funds, it is essential to carry out a Card Insertion.
59
Introduction to SysML
Slide 60
In the example we have shown a base use case (Bank Card Transaction) and a subordinate extended use case (Reject Invalid Card). Reject Invalid Card will only be invoked from Bank Card Transaction in exceptional circumstances.
60
Introduction to SysML
Child use cases inherit from parent use case Child use cases can extend behavior of parent
Slide 61
A generalization relationship between use cases implies that the child use case contains all the attributes, sequences of behavior, and extension points defined in the parent use case, and participates in all relationships of the parent use case. The child use case may also define new behavior sequences, as well as add additional behavior into, and specialize existing behavior of, the inherited ones. One use case may have several parent use cases and one use case may be a parent to several other use cases. It is often possible to use include or extend relationships in place of generalization.
61
Introduction to SysML
Use Cases
Use Cases
Use Cases specify, satisfy, realise, and/or encapsulate functional Use Case Name requirements Provide efficient communication mechanism between end users and developers. Provide a basis for design activity. Use Cases define system requirements, and therefore system test requirements Define how a goal succeeds or fails. Provide a framework for constraints and modes models. Use UseCases Casesdefine definetestable testablesystem systemrequirements requirementsfrom from an external perspective an external perspective
Slide 62
Copyright 2006 ARTISAN Software Tools All Rights Reserved
A Use Case defines a service provided by a computer system for an actor. For instance, in using a word processor, some use cases would be : Make the text bold; Create an index; Spellcheck the document; The properties of a Use Case are that they : describe some coherent system function; may be large or small; achieve a discrete goal for the actor; Other possible properties include : specifying actor intention in using the system; capturing pre- and post-conditions; defining alternate courses to the main flow of actions;
62
Introduction to SysML
Start Up Plant
include
Shutdown Plant
include
Stop Compressor
Remote Operator
Slide 63
63
Introduction to SysML
Safety Engineer
System Installer
Safety Inspection
Install System
Ammonia System
include
Power Off
Remote Operator
Power On
Power Fail
Slide 64
64
Introduction to SysML
Multiple-Levels of Use Cases Use Case Diagrams can be organised around different levels of abstraction from the System of Systems perspective all the way to Use Cases supported by a specific Sub-System. Organisation by Domain The lowest level of abstraction (i.e. the Sub-System level) encapsulates all the services (Use Cases) provided by a specific domain.
Power Up Warm
include
Power Up Cold Primary Actor include Power include Power Up Power Up Built-In Test
include Primary Actor Pilot Shutdown include Information include Execute Mission Store
include
System of Systems
Store Information Primary Actor Equivalent Bombadier Navigator Primary Actor Pilot Primary Actor
Store Weapons Store Present Information Store Markpoint Store Navigation Information Store Target Destination Store Selected Weapon Type HUD Mark
Bombadier Use Cases
Position
System
RADAR Fix Store Fix Error HUD Fix
On-Top Mark
RADAR Mark
Any number of Use Case Diagrams can be created to keep the diagrams tidy. This diagram shows how different
On-Top Fix
types of information can be stored within the system and by whom. Navigator Use Cases
Pilot
include
include
SubSystem
Slide 65
65
Introduction to SysML
Introduction to SysML
Activity Diagrams
Slide 66
66
Introduction to SysML
Structure
Requirements
Behavior
Block Definition
Internal Block
Package
Activity
Parametric
Slide 67
67
Introduction to SysML
An activity diagram is owned by an activity and describes the detail of that activity Useful for many purposes, including:
Exploring system functionality Human/subsystem communication modelling Data/item flow modelling General flow of control modelling etc.
Slide 68
Activity modeling is one of the principal means for describing behavior in SysML. This behavior can be linked with structural modeling (blocks) through allocations which will be covered later in the course. In practice, activity diagrams can be used for a surprisingly wide variety of modeling purposes. For systems engineering, exploring system functionality is one of the principal uses of these diagrams.
68
Introduction to SysML
SysML activity modelling is based on, and inherits much from, UML 2.0 activity modelling Key SysML extensions are :
Stronger semantics for activity decomposition Control as data Continuous systems Probability
Slide 69
Although SysML adopts much of the UML activity model, in this section well consider SysML activity modeling as a whole, not distinguishing between which aspects are inherited and which are extensions.
69
Introduction to SysML
Activities
Represent a unit of behavior
Specifies sequencing of subordinate actions Can be parameterized activity
act name
parameter decision
An activity is the specification of parameterized behavior as the coordinated sequencing of subordinate units whose individual elements are actions. [UML]
70
Introduction to SysML
Activity Decomposition
Activity decomposition can be modeled on block definition diagrams Allows initial functional decomposition independent of physical structure Allocation of activities to blocks and parts can be done later
action name
1 1 a2
1 1 a3
a2 : A ctivity 2
a3 : Activity 3
activity Activity 2
activity Activity 3
Definition
Slide 71
Copyright 2006 ARTISAN Software Tools All Rights Reserved
Use
An important aspect of SysML activity modeling is the principle that activities can be treated like classes or blocks with decomposition and association relationships modeled on a block definition diagram. The activity diagram for that activity can then show instances of the sub-activities, where role names on the bdd become the instance names on the activity diagram. The meaning of activity decomposition is better defined in SysML (than in UML). For example, SysML specifies that if a composite activity is terminated then any currently executing part activities are also terminated.
71
Introduction to SysML
Action Node
Represents a single step within an activity
not further decomposed execution starts on entry to the action node and exit occurs when the execution is completed
action name
Callbehavior is a variant
an action node showing a behavior invocation typically a part activity (activity name may be hidden) can be linked to a Block operation
Slide 72
These are one of the principle components of activity diagrams. Each action node defines a single step within the owning activity. Because activity diagrams can be used in a variety of situations, the wording of the text can be whatever is best suited to the specific situation. In general, actions are atomic (i.e. not further decomposed). Where the action represents a complete sub-activity, typically a part activity on a bdd, a Callbehavior action is used. This normally has both the bdd role name and the part activity name displayed, although the latter can be hidden. Activities can be linked with Block operations these operations are then the mechanism through which the activity is invoked.
72
Introduction to SysML
Object Node
Represents an instance of a block or data type
helps to define flow in an activity (i.e. what flows) provides input to and/or is output from an action node if composite part of activity, then destroyed when activity completed multiplicity must include 0 instance may not exist throughout activity
act [activity] Activity 1 DataType dt1 : DataType1
1 1 a2 activity Activity 2
1 1 a3 activity Activity 3
a2 : A ctivity 2
a3 : A ctivity 3
0..1
dt1
DataType DataType1
Block b1 : B loc k1
Object nodes allow the modelling of flow of elements through an activity. Activities can be associated with both blocks and data types as well as other activities to indicate what type of flow elements relate to the activity. This can be by composition, where the flow element gets destroyed on completion of the activity.
73
Introduction to SysML
Control flow
A c tion 2
Control Flow
Solid or dashed arrow line showing flow of control Not in to or out from object nodes Can be named
Object Flow
Solid arrow line linking objects to other elements Can be named
Slide 74
Copyright 2006 ARTISAN Software Tools All Rights Reserved
Control Flows are another key component of activity diagrams, providing sequencing information. Object flows are only ever used with object nodes. Both type of flows can be named if required. Activity Edge is the formal name for both type of flow. For those familiar with UML activity diagram modeling, note that the solid/dashed convention is reversed in SysML.
74
Introduction to SysML
AJM4
Pins
ObjectNode
Slide 75
75
Slide 75 AJM4 right-hand diagram should have action:activity like the left-hand one.
Alan Moore, 5/17/2006
Introduction to SysML
Send Signal
Send Signal
shows a signal sent at completion of action node activity may also link to action object (receiver)
Accept Event
Accept Event
shows a signal that initiates activity in action node may also link to action object (sender)
Examples:
Door door interrupt
re-open door
Slide 76
Signal send and accept event boxes correspond to the concept of a signal event on a state diagram. The send represents a signal sent at completion of the activity in the preceding action node; an accept represents a signal that triggers the activity of the subsequent action node. A send may also have an object flow going to the object that receives the signal; an accept may have an object flow coming from the object that sends the signal. Dragging an RtS event onto an activity diagram creates a send signal; its properties can then be used to change it to an accept event if required.
76
Introduction to SysML
Slide 77
This feature, new to UML 2.0, allows you to explicitly identify areas of activity where interrupts are allowed to terminate the activity in the region before completion. In RtS the boundary is a frame box with View Options set to show dashed lines (strictly, it should have rounded corners). The interrupting edge is a control flow with waypoints added.
77
Introduction to SysML
Slide 78
Control Nodes are activity nodes used to provide coordination between other nodes. Note that an Activity Final Node denotes end of flow in the entire Activity, whereas a Flow Final Node only terminates one flow, and has no effect on other flows (which might still be in effect) in the Activity. The difference between a Decision Node and a Fork Node lies in the fact that in a Decision Node, a token arriving at the node will traverse only one of the multiple outgoing flows, whereas in a Fork Node, the arriving token is duplicated across the outgoing edges, each of which is traversed concurrently. Similarly, a Merge Node is not used to synchronize multiple incoming flows, but to accept one among several alternate flows, whereas a Join Node synchronizes multiple incoming flows.
78
Introduction to SysML
Slide 79
79
Introduction to SysML
Nested Swimlanes
Can be nested to any depth Can link to model item
uses model item name
Slide 80
80
Introduction to SysML
Activity Diagram
Tips:
Use swim lanes as placeholders for a role or responsibility. Allocate activities to each swim lane. Determine data and control flow between activities within and across swim lanes. Determine any synchronisation required across swim lanes. Determine communication infrastructure to facilitate data and control flow across swim lanes.
Slide 81
81
Introduction to SysML
Slide 82
82
Introduction to SysML
overwrite
applied to object nodes or parameters indicates that arriving item replaces previous item valid also for FIFO/LIFO queues
optional
applied to parameters indicates that action may begin even without parameter arriving
rate
applied to object flow or parameter specifies rate at which items sent/received over object flow or rate at which items arrive at parameter while action is executing
requires {streaming} type parameter
Slide 83
Copyright 2006 ARTISAN Software Tools All Rights Reserved
These additional stereotypes are provided to bring greater detail into the SysML model. Full details are provided in the SysML spec..
83
Introduction to SysML
Probability
probability stereotype applied to outgoing edges (flows) from decision or object nodes Defines value (range: 0 1) for probability of any flow being taken
Total of values from one node must equal 1
probability p (x )
ac tion 1
probability 1 -p (x )
ac tion 2a
ac tion 2b
Slide 84
When the probability stereotype is applied to edges coming out of decision nodes and object nodes, it provides an expression for the probability that the edge will be traversed. These must be between zero and one inclusive, and add up to one for edges with same source at the time the probabilities are used. When the probability stereotype is applied to output parameter sets, it gives the probability the parameter set will be given values at runtime. These must be between zero and one inclusive, and add up to one for output parameter sets of the same behavior at the time the probabilities are used. [SysML]
84
Introduction to SysML
a1 : Heat Water
coldDirty : H2O
BlockProperty cal/gm : specificHeat 1 1 BlockProperty cal/(gm*deg C) : latentHeat Remove Latent Heat of Vaporisation () Add Latent Heat of Vaporisation () 1 hotDirty : H20 1 steam : H2O
1 recovered : Heat external : Heat 1 Block Item Types::Heat values cal/sec : dQ/dt
1 hiPress : Residue Block 1 Item Types::Residue loPress : Residue values degrees C : temp gm/sec : massFlowRate kg/gm^2 : press
Slide 85
85
Introduction to SysML
steam : H2O [G a s ]
hiPress : Residue
fork
loPress : Residue a4 : Drain Residue a3 : Condense Steam pure : H2O [Liquid ]
join
Slide 86
The ephod stereotype implies this activity conforms to the constraints specified for Enhanced Functional Flow Block Diagrams (a non-normative SysML extension).
86
Introduction to SysML
recovered : Heat
a1 : Heat Water
a3 : Condense Steam
a4 : Drain Residue
steam : H2O [G a s ]
external : Heat
a2 : Boil Water
Slide 87
87
Introduction to SysML
recovered : Heat
continuous hotDirty : H20 [ Liquid] continuous external : Heat ShutDown streaming a2 : Boil Water continuous pure : H2O [Liquid ]
Slide 88
88
Introduction to SysML
Introduction to SysML
Interactions
Slide 89
89
Introduction to SysML
Structure
Requirements
Behavior
Block Definition
Internal Block
Package
Activity
Parametric
Slide 90
The Sequence Diagram is re-used from UML and captures certain aspects of behavior.
90
Introduction to SysML
Slide 91
91
Introduction to SysML
What is a scenario?
Success scenarios
Everything goes well and the actor achieves the Use Case goal Also called sunny day scenarios. Defines what is supposed to happen, so that the stakeholders can agree prior to investigating everything that can go wrong.
Failure scenarios
Models failure conditions and their consequences. May map to full blown Use Cases that will extend the main Use Case, or may involve a simple variation on the normal sequence.
Slide 92
92
Introduction to SysML
Sequence Diagrams
sd SD Concept
Describe use case or scenario sequence Specify timing budgets and constraints Define loops and conditional paths for system functionality Demonstrate parallel and synchronous functionality
Slide 93
Description
Actor1
seq par seq loop seq break seq end loop also par alt seq seq end alt seq end par
message 1
max.: {100ms}
93
Introduction to SysML
Interaction Fragment
a piece of interaction [UML] e.g. part of a sequence diagram no defined notation in UML/SysML represented by an interaction frame in Studio
Slide 94
Loosely defined in the UML as a piece of interaction, it has no specified notation. In Studio we have made use of the interaction frame element to allow the scoping of the required piece of interaction. By default, the name given to the fragment is taken from the first description step covered by the frame, but it can be renamed.
94
Introduction to SysML
These default names can be replaced by something more meaningful if required in Studio.
95
Introduction to SysML
seq par
signal2
96
Introduction to SysML
Interaction Use
a reference from a step on one sequence diagram to an interaction (represented by another sequence diagram in Studio) allows partitioning of the interaction model e.g. a single use case can be split over several diagrams
Slide 97
This is a powerful facility within UML 2.0 that provides behavioural decomposition. With Studio an interaction use can be represented as a reference frame linked to another diagram. The referenced diagram can be another sequence diagram, or it can be an activity diagram, and it can be opened through the context menu of the frame.
97
Introduction to SysML
Part Decomposition
a reference from an interaction entity (not necessarily a part) on one diagram to another diagram allows decomposition of the interaction model e.g. the internal interactions taking place within the entity, as a result of a message, can be shown separately
Slide 98
Similar in principle to an interaction occurrence, this form of decomposition reflects the structural decomposition represented on internal block diagrams. In the above example the referenced Start Boiler [detail] diagram would show the interactions taking place between the component parts within the Boiler part of the Distiller in order for the Boiler part to implement the powerOn operation. Typically then, there would be a internal block diagram (ibd) that would show the interaction entities shown above with connectors consistent with the above messaging, and there would be another internal block diagram showing the internal component parts of the Boiler and their connectors. It is these internal parts and their messaging that would be shown in the Start Boiler [detail] diagram.
98
Introduction to SysML
D escription
B lockP roperty B lock B lockP roperty D istiller.ui1:C o ntrol P anel :D istiller D istiller.b x1:B oiler ref S tart B oiler S tartU p T urnO n pow erO n
sd Start Boiler
Description Block BlockProperty BlockProperty BlockProperty :Boiler Boiler.heater:Element Boiler.vOverFlow:Valve Boiler.vResidue:Valve powerOn on open open
Slide 99
This example illustrates interaction modelling at 2 different levels of abstraction: black box (top diagram) and white box levels. The lower diagram is modelling what happens inside the boiler on receipt of the powerOn message. Note the names of the various BlockProperty parts, indicating their parent block, as well as their block type.
99
Introduction to SysML
Block Control Panel operations pwrLightON () opLightON () hghLightON () drnLightON () lowLightON () opLightOFF () pwrLightOFF ()
pres s s tart tu rn o n D is tille r s ho w p ow er on wa it fo r w a te r to b oil s ho w o pera ting re pea t a lt w ate r high e ls e alt d ra in in g e ls e alt w ate r low e nd a lt until... ...pres s s to p tu rn off D is tille r s ho w n ot ope ra tin g s ho w p ow er off
p w rL ig htO N op L ig htO N
Messages imply need for Block operations Block operations define functional requirements for block Operations can map to actions
Slide 100
Operation call messages require corresponding operations to be supported by the block typing the element owning the lifeline. Block operations can be linked with actions allocated to that block (e.g. via activity diagram swimlanes), whereby the arrival of the message triggers the action.
100
Introduction to SysML
Candidate Entities
Sequence Diagram
:Barrier Motor
Red :Light
entry beam detects car beam sensor signals controller controller checks for space If full suspend entry EndIf open barrier turn off red light turn on green light car passes through beam beam sensor signals controller increment car count close barrier turn off green light turn on red light car triggers pressure sensor pressure sensor signals controller decrement car count
break
isFull Car Waits open off on connect car_entered increment close off on detect car_exited decrement
{5ms}
Iterate
Slide 101
The principle of iteration is important not just in refining use cases and blocks, but also the ibds for blocks. For example, the messaging between the Controller and the Control Panel shown in the previous slide, implies that the Controller knows when the water level is high or low. This implies there must be some connector between the Controller and the Boiler with appropriate ports and flow spec. these would now be added to this ibd.
101
Introduction to SysML
not sensible to model the same behavior (e.g. a use case) with both
Slide 102
The choice whether to use activity diagrams or sequence diagrams to model behavior is not an easy one. It will largely depend whether you see it better to model action sequences or message sequences. It is unlikely that you will model both for a single aspect of behavior, such as a use case.
102
Introduction to SysML
Slide 103
It can be useful to see both a static view of interaction (as shown on IBDs) and a dynamic view (as shown on sequence diagrams). A useful additional feature of Studio is to allow item flows to be used as messages on sequence diagrams, as long as their use has already been specified on the same parts on an IBD.
103
Introduction to SysML
Introduction to SysML
State Machines
Slide 104
104
Introduction to SysML
Structure
Requirements
Behavior
Block Definition
Internal Block
Package
Activity
Parametric
Slide 105
The State Machine Diagram is re-used from UML and captures state-based behavior.
105
Introduction to SysML
How do you document the required states of a system or one of its components?
Use a State Machine Diagram. Almost identical to UML state machine semantics and notation. State machine is child diagram of parent block.
Slide 106
Copyright 2006 ARTISAN Software Tools All Rights Reserved
State machine are used to specify the state-based behavior of a block. The block may correspond to a complete system or subsystem, or it may type a component within a system/subsystem.
106
Introduction to SysML
Slide 107
107
Introduction to SysML
Slide 108
108
Introduction to SysML
State 1
State 2
Events
States
Guards Effects
Slide 109
The UML state diagram provides a rich syntax for describing behavior. The subset illustrated on this slide is normally sufficient to describe the system-level state modelling. The following slides cover these modelling elements in more detail. Well add a little detail later. The event [guard] / effect group is often referred to in Studio as an event-action block (EAB); an action being one type of effect (element of system behavior).
109
Introduction to SysML
Events
Signal - event name/ Call operation name/ Time - after(time period)/ Change - when(Boolean expression)/ Entry - Entry/ Exit - Exit/ None - empty
Copyright 2006 ARTISAN Software Tools All Rights Reserved
Signal events represent the receipt of an asynchronous signal (e.g. the receipt of a signal message on a sequence diagram). Call events represent the receipt of an operation call (a message arriving). The operation must belong to the block owning the state machine. Time events model the expiry of a specified period of time. Timing starts on entry to the source state. Time events are identified by the use of the after keyword followed by the time period in brackets, e.g. after(200ms). A change event models the occurrence of a specified Boolean expression becoming true. Change events use the keyword when preceding the Boolean expression in brackets, e.g. when(a=0). Conceptually, change events are continuously evaluated. An entry event is the event that completes an external transition and models the entry into the destination state. Entry events normally specify an effect (often as a set of actions) to be carried out when the event occurs, e.g. Entry/currentState=idle. Similarly an exit event occurs at the start of a external transition and models the exit from the source state. It also normally specifies an effect, e.g. Exit/clear display. If no event is shown on a transition, the transition is deemed to be taken on completion of any activity within the source state.
110
Introduction to SysML
Transitions
External transition
denotes exit from source state and entry to destination state invokes Exit, transition and Entry effects
Internal transition
no state transition invokes transition effect(s) but not Exit/Entry effects external transitions
internal transition
Slide 111
Copyright 2006 ARTISAN Software Tools All Rights Reserved
Transitions define the rules for responding to events. External transitions are shown as an arrowed line running from the current (source) state to the new (destination) state. The source and destination states may be the same. Internal transitions are represented by an event-action block within a state. Internal transitions will normally specify a set of actions to be carried out when the event (which may be guarded) occurs.
111
Introduction to SysML
Guard Conditions
A Boolean expression associated with a transition Transition only occurs if expression evaluates to true Guards conditions are enclosed by square brackets [ ] and may or may not be preceded by an event
Slide 112
Guard conditions allow transitions to be executed conditionally. If preceded by an event, the guard condition is evaluated when the event occurs and the transition only takes place if true. Where a guard is shown without a preceding event, the condition is evaluated, while in the source state, whenever any event occurs, and a transition takes place if true.
112
Introduction to SysML
State 1
Final State
Indicates completion of all state activity for the region containing the final state can be more than one in a region can be named and show completion action
/c om pletion ac tion
Final 1
Slide 113
The term region is used in the context of composite states (see later).
113
Introduction to SysML
A Simple Example
stm [Block] H2O1 Gas
Rem ove Latent Heat of V aporis ation/
Transitions States
Liquid
Events
Solid
Slide 114
114
Introduction to SysML
Junctions
Allow merging of multiple incoming transitions to a single outgoing transition Allow branching of single incoming transition into multiple outgoing (guarded) transitions
can use [else]
junction
Slide 115
Copyright 2006 ARTISAN Software Tools All Rights Reserved
Although the above illustration is quite valid, it is also common to see a junction used with several incoming transitions and only one outgoing one, or with only one incoming transition and several outgoing ones.
115
Introduction to SysML
Sequential State
Heater On
when( tem p= M ax )/ switch off heater
powerOff/s witc h off heater
Substates
Heater Off
Slide 116
UML defines a composite state as a state that, in contrast to a simple state, has a graphical decomposition. Composite states can be considered to be of two types, Sequential and Concurrent. Entry into a sequential state can be be specified either at the sequential state level (as illustrated), in which case one of its substates must be defined as the initial state, or directly to a substate, where for example, you want to show different transitions going to different substates. One of the benefits if using a sequential state here is that we can show the after(1min) once only, as an event-action block (EAB) of the sequential state. This now means that we can handle this event irrespective of which substate the system is in.
116
Introduction to SysML
Concurrent States
stm [block] Container
concurrent state
Processing
region
Routing
join
Moving Registering Idle
fork
synch state
Processing data
Slide 117
A concurrent state consists of two or more regions where each region describes concurrent behavior. A concurrent state can be used to model a situation when an object can be in two or more states simultaneously. In the above example a container can be scanned while it it being routed. Exit from the concurrent Processing state occurs only when both regions are in their final states. A synch state can be used to synchronize activity between regions. Here, for example, we can only capture data after a movement step has completed and previous data has been processed. It is possible to limit the number of outgoing transitions from a synch state by setting a bound on the difference between the number of times incoming and outgoing transitions fire. The synch state has been deprecated from UML 2.0 but will remain a part of Studio as it is an essential concept for capturing the synchronization mechanism (e.g. priority-ceiling protocol) used in the synchronization of data between two concurrent state regions. Synchronization bars are used with synch states. There are 2 types of these, fork and join as illustrated above.
117
Introduction to SysML
doActivity
Notation is do : activityname
do : Boil Water
Slide 118
118
Introduction to SysML
Off
Entry/pwrLightOFF
p w rO n /
[NO T b x LevelLow]/
Level Low
[NO T bx Leve lL ow]/
Warming Up
E ntry/bxHtrON
Purging Residue
Entry/Open Drain : IValve
Slide 119
119
Introduction to SysML
Introduction to SysML
Slide 120
120
Introduction to SysML
Structure
Requirements
Behavior
Block Definition
Internal Block
Package
Activity
Parametric
Slide 121
The Requirements Diagram is neither a type of Structure Diagram nor is it a type of behavior Diagram. However it is highly likely that we would want to relate requirements to model elements that might appear on other diagram types, and to clearly see these relationships in the model.
121
Introduction to SysML
requirement REQ_A1
requirement REQ_A1.1
verify
Slide 122
trace, refine, satisfy and verify can exist between a requirement and any other model element (as we have already seen). These relationships are clearly visible from the Requirements Diagrams, but can we see them from the diagrams that contain the relevant model elements?
122
Introduction to SysML
Use Case A
refines REQ_A1.2
Actor1
satisfies REQ_A1.1
Use Case B
Actor2
Traceability callouts can be added from model elements wherever they appear in other diagrams in the model
Slide 123
Copyright 2006 ARTISAN Software Tools All Rights Reserved
Once the traceability relationship has been established in the model, callouts can be added to show the relationship from the model element wherever that element appears. Note that we have created a new use case and a satisfy relationship between it and REQ_A1.1 to show in this illustration that all types of traceability relationship can be added.
123
Introduction to SysML
Slide 124
124
Introduction to SysML
Introduction to SysML
Slide 125
125
Introduction to SysML
Allocations
Represent general relationships that map one model element to another Different types of allocation are:
Behavioral (i.e., function to component) Structural (i.e., logical to physical) Software to Hardware .
Explicit allocation of actions to structure via swim lanes (i.e., activity partitions) Both graphical and tabular representations are specified
Slide 126
126
Introduction to SysML
allocate :ElementName
ActionName
Allocate Relationship
block BlockName
allocatedFrom elementTypeElementName
PartName
Compartment Notation
Slide 127
Callout Notation
127
Introduction to SysML
recovered : Heat
continuous hotDirty : H20 [ Liquid ] continuous external : Heat ShutDown streaming a2 : Boil Water continuous pure : H2O [ L iq uid]
Actions
Slide 128
Note the use of the allocate stereotype in the swimlanes, to indicate that any actions in that swimlane are being allocated to the relevant part.
128
Introduction to SysML
Allocate
BlockProperty Part5
BlockProperty Part3
Allocate
Slide 129
Systems engineers have a frequent need to allocate structural model elements (e.g., blocks, parts, or connectors) to other structural elements. For example, if a particular user model includes an abstract logical structure, it may be important to show how these model elements are allocated to a more concrete physical structure. The need also arises, when adding detail to a structural model, to allocate a connector (at a more abstract level) to a part (at a more concrete level). [SysML]
129
Introduction to SysML
concrete implementation
Power-CC System
abstract concept
Slide 130
Two fragments from IBDs have been used to illustrate this using the Cruise Control application. The lower fragment is from the initial Vehicle Main Subsystems IBD; the upper fragment is from the later Driver Interface Connections IBD, and shows implementation detail for the Power-CC System connector.
130
Introduction to SysML
SysML Allocation of SW to HW
ibd [node] SF Residence
2 hardware : Alarm
hardware : Site Processor allocatedFrom software Device Mgr software Event Mgr software Site Config Mgr software Site RDBMS software Site Status Mgr software User I/F software User Valid Mgr
In UML the deployment diagram is used to deploy artifacts to nodes In SysML allocation on ibd and bdd is used to deploy software/data to hardware
hardware : DVD-ROM Drive allocatedFrom data Video File hardware : User Console
Slide 131
131
Introduction to SysML
Slide 132
132
Introduction to SysML
Introduction to SysML
Slide 133
133
Introduction to SysML
Structure
Requirements
Behavior
Block Definition
Internal Block
Package
Activity
Parametric
Slide 134
134
Introduction to SysML
Package Diagram
Package diagram is used to organize the model
Groups model elements into a name space Often represented in tool browser
Slide 135
135
Introduction to SysML
By Diagram Type
Slide 136
By Hierarchy
Copyright 2006ARTISAN Software Tools All Rights Reserved
By IPT
136
Introduction to SysML
Model is organized in one hierarchy Viewpoints can provide insight into the model using another principle
E.g., analysis view that spans multiple levels of hierarchy Can specify diagram usages, constraints, and filtering rules Consistent with IEEE 1471 definitions
Slide 137
137
Introduction to SysML
Structure
Requirements
Behavior
Block Definition
Internal Block
Package
Activity
Parametric
Slide 138
138
Introduction to SysML
Parametrics
139
Introduction to SysML
Constraint Blocks
Defining reusable equations for Parametrics using constraint blocks on a block definition diagram
Slide 140
Copyright 2006 ARTISAN Software Tools All Rights Reserved
A constraint block is a block that packages the statement of a constraint so it may be applied in a reusable way to constrain properties of other blocks. A constraint block includes the definition of one or more parameters which can be bound to properties in a specific context where the constraint is used. In a containing block where the constraint is used, the constraint block is used to type a property that holds the usage. A constraint parameter is a property of a constraint block which may be bound to a property in a surrounding usage context. All properties of a constraint block define parameters of the constraint block, with the exception of constraint properties that hold internally nested usages of other constraint blocks. [SysML]
140
Introduction to SysML
Slide 141
A parametric diagram is defined as a restricted form of internal block diagram. A parametric diagram may contain constraint properties and their parameters, along with other properties from within the internal block context. All properties that appear, other than the constraints themselves, must either be bound directly to a constraint parameter, or contain a property that is bound to one (through any number of levels of containment). [SysML]
141
Introduction to SysML
The underlying datatypes of each constraintProperty are captured. In this example, Aircraft.Inertial Heading is a Vector [x, y, z]. The type Vector is defined elsewhere in the design (as part of the Data-Model).
Slide 142
142
Introduction to SysML
2. Behavior
act PreventLockup [Swimlane Diagram] allocate act PreventLockup [Activity Diagram ] :TractionDetector allocate :BrakeModulator
c1:modulator c1:modulator Interface Interface c1:modulator interface allocatedFrom ObjectNode TractionLoss TractionLoss: :
cate allo
value binding
v.chassis .tire. Friction: Friction:
DetectLossOf Traction
TractionLoss: TractionLoss:
Modulate BrakingForce
satisfy
req req [package] VehicleSpecifications [Requirements [Requirements Diagram Diagram -- Braking Requirements] Vehicle System Specification requirement StoppingDistance id= 102 id= 102 102 text= text =The The vehicle shall stop from 60 mph within 150 150ft ft on a clean dry surface. Braking Subsystem Specification requirement requirement Anti-LockPerformance AntiLockPerformance id= 337" id= 337" text =Braking subsystem shall prevent wheel lockup under all braking conditions .
par [constraintBlock] [ constraintBlock] StraightLineVehicleDynamics StraightLineVehicleDynamics [Parametric Diagram] Diagram ] v.brake .abs.m1. .abs.m 1. DutyCycle DutyCycle: : v. brake.rotor v.brake .rotor.. BrakingForce BrakingForce: :
v .Weight: v.Weight:
par [constraintBlock] StraightLineVehicleDynamics [Parametric Diagram] tf tf: : tl: tl : bf: f: f: F: m m: c: :Accelleration :Accelleration Equation Equation [[F F= = ma] a a: : a: v: v: v :
deriveReqt deriveReqt
v v.Position: .Position:
3. Requirements
Slide 143
verif y
4. Parametrics
Four types of cross-connecting principles: 1. Allocation 2. Requirement satisfaction/derivation 3. Value Binding/Parametrics 4. Requirement Verification
143
Introduction to SysML
Introduction to SysML
Slide 144
144
Introduction to SysML
145
Introduction to SysML
Introduction to SysML
Slide 146
146
Introduction to SysML
What is an Object ?
An Object
Is a software abstraction of a real-world concept or thing found in the problem domain Has a coherent set of responsibilities Provides a set of services (operations) consistent with its responsibilities Has a unique identity Maintains information (attributes) about itself Interacts with other objects
Slide 147
Objects represent some entity relevant to the real world problem we are dealing with. They may represent physical entities (e.g. devices), or non-physical entities. Each object must have a clearly defined and coherent set of responsibilities that distinguishes it from other objects. It must also have a unique identity. Objects are responsible for maintaining information they need in order to provide services consistent with their responsibilities.
147
Introduction to SysML
Object Oriented techniques use hierarchy where necessary, not as a fundamental principle of design.
Composition and Aggregation Hierarchies Inheritance Hierarchies
Objects can represent the roles they play within the network, and not a position in an artificial hierarchy.
Slide 148
The origin of the word hierarchy has its roots firmly planted in religious institutions. Originally used to describe the angelic host in the 4th century AD; three divisions of angels each comprising of three orders in a nine-fold celestial system. Later it became used to describe the system of ecclesiastical rule and only in its most recent application does it seem to have lost its religious meaning. When Darwin drew-up the hierarchy of living animals he put mankind at the top because the hierarchy was ordered according to the ability to control, if the hierarchy were ordered by ability to cooperate with other living animals, humans would be somewhere near the bottom. Hierarchies are an artificial mechanism to ascribe some subjective form of order or classification on something which is perceived to be chaotic perhaps it would not be chaotic if it were looked upon as a role-based network. Most organizations are hierarchically structured yet operate, at an individual level, as a network. Individuals create a network of co-workers with whom they work, so the hierarchy far from providing direction and control has no impact on an individual workers ability to perform their tasks. One could define a hierarchy as A partially-ordered structure of entities in which every entity but one is successor to at least one other entity; and every entity except the basic entities is a predecessor to at least one other entity. This definition elaborates the basic problem with hierarchies, each entity within the hierarchy must be connected to at least one other (either as successor or predecessor) therefore to modify or remove one node in a hierarchy you also have to take into account its predecessors and successors as these may be affected. Object oriented techniques do not impose a hierarchy (i.e. no artificial imposition of a predecessor or successor) on the evolving system; entities (or objects) can be modified, added and removed and the impact of these changes are apparent in the links (or associations) the object has with others in the network.
148
Introduction to SysML
Slide 149
149
Introduction to SysML
Types of things
You are all types of people (assumption) Car parks fill up with types of vehicle Libraries are full of types of publication A SysML Block is a type of system component However: It is particularly useful to classify something (i.e. identify its type ) when there is more than one of them - why? Because the type becomes a convenient way of describing the common characteristics of similar things.
Slide 150
Copyright 2006 ARTISAN Software Tools All Rights Reserved
150
Introduction to SysML
Slide 151
151
Introduction to SysML
Object and Instance are synonyms. Type and Class(ifier) are synonyms.
Slide 152
152
Introduction to SysML
In OO an Object is typed by a Class, but which comes first, the Class or the Object? In software engineering, they are both required at the same time. We design a system using Objects but we select the right Objects from their Class properties.
Slide 153
153
Introduction to SysML
Introduction to SysML
Slide 154
154
Introduction to SysML
A Simple Application
Pressure sensor Display Boards
Lot 1 Spaces Lot Lot 1 2 Spaces Full Lot Lot 2 3 FullSpaces Lot 3 Spaces
Serial Link
Entry
Safety barrier
IR beam sensor
Slide 155
The parking lot controller controls car access to the parking lot by keeping a dynamic count of the number of cars currently in the parking lot. It compares this value with an operator specified value for the total capacity of the parking lot to determine whether to admit cars. The system makes use of two sensors, an IR beam sensor at the entry point and a pressure sensor at the exit point. When a new car enters the parking lot the current car count is incremented. When a car leaves the parking lot the count is decremented. Access into the parking lot is controlled by a motorized safety barrier and pair of traffic lights, one red and one green (there is no amber light). The red light is illuminated until the entry beam sensor detects a car entering. The control system then checks for space. If there is space for the car, the red light is extinguished, the green light illuminated and the barrier motor opens the safety barrier. If the parking lot is full the red light stays illuminated until the pressure sensor detects a car leaving. When the car entering has passed through the entry beam sensor the red light is illuminated again, the green light extinguished and the barrier motor closes the safety barrier. An operator I/O unit is provided to enable initial setting of, and any subsequent changes to, the parking lot capacity value. This unit consists of a 4 digit display, two function buttons (one to display current capacity value, the other to reset this value), and a numeric keypad. To set up or change the capacity the operator presses the display button, this activates the display and shows the current value (zero for initial setting). The operator then uses the keypad to enter the new value, which is displayed as each key is pressed. When the display is showing the required value the operator presses the reset button to reset the value and de-activate the display. The system also needs to provide free space information, across a serial (RS422) data connection, for an external system that updates a number of remote display boards.
155
Introduction to SysML
requirement REQ_1 txt The System shall prevent a car from entering if the parking lot is full. deriveReqt
requirement REQ_1_SW1 txt The software shall input and store the maximum capacity value for the parking lot. requirement deriveReqt REQ_1_SW2 txt The software shall maintain a count of cars currently in the parking lot. deriveReqt requirement REQ_1_ SW3 txt On detecting a car arriving, the software shall compare current count value against maximum capacity to determine whether the car should be allowed to enter.
System Requirement
Slide 156
The SysML requirements diagram can show both system and (derived) software requirements. In Studio, requirements diagrams can also be held in a UML model.
156
Introduction to SysML
subsystem Operator I/O Unit interface device Entry Beam Sensor : clear display interface device Display
: car triggers sensor : display : break : detect : connect : key press Car interface device Pressure Sensor
Operator
: raise
: reset press : set full interface device Barrier Motor interface device Full Light :
Slide 157
A Context Diagram allows the software engineers to identify all inputs and outputs that the software (to reside in a black-box Control System) will need to handle. Essential details for each item of input or output can be captured through properties. SysML internal block diagrams and activity diagrams are the chief source of information for the construction of the Context Diagram.
157
Introduction to SysML
Set Capacity
Operator
Slide 158
Copyright 2006 ARTISAN Software Tools All Rights Reserved
This shows a simple use case diagram for the parking lot application, with the Description property for the Use Parking Lot use case visible. Other properties can be specified for each use case as required. These software use cases will be derived from wider system use cases, typically defined in a SysML model.
158
Introduction to SysML
Car Waits raise set red( off ) set green( on ) car passes through connect max. {50ms} lower set green( off ) set red( on ) car triggers sensor detect
{3ms}
timing constraint
Slide 159
system boundary
architectural boundary
This diagram specifies the required black-box behavior of the Control System for the Use Parking Lot use case. One system interaction diagram is produced for each software use case. The diagram defines the sequence of IO for the hardware elements defined on the Context diagram.
159
Introduction to SysML
entry beam detects car beam sensor signals controller controller checks for space If full suspend entry EndIf open barrier turn off red light turn on green light car passes through beam beam sensor signals controller increment car count close barrier turn off green light turn on red light car triggers pressure sensor pressure sensor signals controller decrement car count
break car_arrived isFull Car Waits open off on connect car_entered increment close off on detect car_exited decrement
This diagram is a further development of the previously created 'Use Parking Lot - analysis ' sequence diagram. This diagram illustrates the same use case, but this time as a sequence of software object interactions. The diagram could be used in the early stages of object definition and would contribute to the specification of the object model.
Slide 160
We now move into software design. A sequence diagram is produced for each use case, using candidate software objects. The purpose of these diagrams is to identify software objects and the operations they will need to support to deliver use case functionality. Detailed information (synchronicity, message parameters, data types, etc.) can be added as these diagrams are developed iteratively. The note on the diagram is referring to a previous system interaction diagram which captured implicit hardware interactions specified for this same use case.
160
Introduction to SysML
Pressure Sensor 1 - threshold : float + initialize () + read () : short 1 theExitSensor Notifies Notifies 1 Controller theController 1 + car_entered () 1 + car_exited () theController + car_arrived () 1 I/O Unit - capacity : long - num : short - newValue : long + reset () + activate () + key (in number) 1 theIOUnit theCarCount 1 Car Count 1 1 - capacity : long theCarCount - count : long = 0 + increment () + decrement () + isFull () : boolean + set_capacity (in value : long) + get_capacity () : long displayButton resetButton 1 1 + Car_Count () Button - ~Car_Count () + read () : short resets capacity 1
myDisplay 1
myKeypad
Keypad
Slide 161
As software interaction models are developed, a class model is also evolving to capture class properties and relationships.
161
Introduction to SysML
Idle
c ar_ arrived/
[theCarCount.is Full ]/ [e ls e ] /
Entry Suspended
C re ate /
Raising Barrier
Entry/theMotor.open; theRedLight.off; theGreenLight. on;
car_entered/ theCarCount.increment; theMotor.close; theGreenLight.off; theRedLight.on;
c ar_exited/ theCarCount.dec rement
Lowering Barrier
Slide 162
State diagrams can be produced to model the behavior of classes over their lifetime. This diagram specifies the dynamic behavior for the Controller class. Most of the events within the Able to Admit Cars' composite state represent operations defined against the Controller class. The 'after(2000)' event specifies a time period of 2 seconds from entry into the Lowering Barrier state. (note that this solution implies that another car will not arrive within this time frame).
162
Introduction to SysML
Model Concurrency
Display Button Pressure Sensor Entry Beam Sensor
display press()
detect()
break() connect()
Event direction is conceptual only; in fact all input devices are polled
decrement() release()
increment()
Green Light
set() Semaphore
This diagram represent an initial specification of the tasking model. It shows that three tasks have been identified and it defines how task intercommunication is to take place. It also shows which system devices are handled by which task.
reset press()
key press()
Reset Button
Keypad
Display
Slide 163
For multi-tasking processors a concurrency model can be developed that specifies the required tasks, their interaction and any mutual exclusion requirements. The production of the concurrency model may extend the object architecture model, especially the class model. Note that this example is not a standard UML diagram, but an ARTiSAN extension.
163
Introduction to SysML
Light
1 CRconcurrent Controller
pRTOS
1 1 theIO
resets capacity
1 theCarCount - capacity : long - count : long = 0 + increment () + decrement () + isFull () : boolean + set_capacity(invalue:... + get_capacity () : long 1 Display
Slide 164
As the software design becomes more detailed, implementation concerns start to appear in the class model. However these additions should not alter the fundamental (and traceable back to use cases) properties and relationships of the applications classes. Composition has been used to reflect the active objects owning their parts. Otherwise little has changed other than the addition of the RTOS wrapper classes and their restricted access via the active object classes that use them.
164
Introduction to SysML
Operation c ()
void Operation_a(); long Operation_b(const Typedef1 param); private: // private attributes Typedef1 Attribute1; // private roles Class2* rtheC2; };
Slide 165
C opyright 2006 ARTISAN Software Tools All Rights Reserved
The creation of the class model is often seen as key. Code can be generated or produced from information in the class model. Language profiles allow more code related information to be held within the model.
165
Introduction to SysML
Traceability/Impact Analysis
Requirements
Requirements Models
Design Models
Source Files
t if a Wh
Tests
?
Satisfies Satisfies
Satisfies
Tests
Tests
Wh y
is
Acceptance tests
Slide 166
System tests
166
Introduction to SysML
Valves
stop/start buttons Inlet V alv e Outlet Valve By-pass V alve Vent Valve
HP Tank
ACME RADAR
: Use r Displays
3 wir e RS232
HPT Switch
: RADAR Controller
Plant Contr oller
: Displa y
se ria l i/f
HP Switch
Starting Up System
Com pre ssor Unit Re mote M onitoring Unit
power down/
close()
: Array Antenna
LP T S witc h
system sto p() Local Indication Panel rese t() alarm () system start()
Remo te Operator
: Po wer Supp ly
system bus Compressor Motor
LP S witch
Compressor Sensors
alarm ()
: Transmitter
: Tx Rx Duplex
motherboard
: Azimuthal Actuato r
Coolant Flow Meter remote comms. Outlet Gas P res sure Tr ip Switch
rese t()
se ria l i/f
[ els e ]/
150 bar/ Start Compress or
Take-of f Valve
HPT Switch
HP S witch
LP Switch
LPT Switch
RS 422 A ll I/O board connections are 24V DC s ingle phas e. Valve c onnections are in fact 2 single 1-way connections rather one 2-way ...
Compressor Off
Context Diagram
P ilot
RMU Display
S top Button
T heSoftw are :Th eSo ftware T heSoftw are D ataE ntryPanel :Th eSo ftw are T heS oftw are K eyPress (K EYID) D ataEntryPanel :TheSo ftw are
K eyPress (K EYID)
S etM ode( N AV)
Networks ( for LIP and RMU) Write()
D ep lo ys W e ap on P ilot
Set()
Clear()
Check()
alarm status data Read() Alarms Status Alarm Inhibits /Enables Display and Communication Task (DCT) Read() Timer Requests Set() Write() Read() Write() Clear() Compressor Controller Task (CCT) Real World Devices Clear() Timeout Events Read() Read() Timer Task (TT) Post()
P erfo rm s S orte
Requirements
Equivalent Bombadier Pilot Secondary Actor Commander
Plant Status
ru n nin gdo wn after(40s)/ E ntry/mo n ito r. in hibit(L O P); va lve [ven t]. ope ... ; n time r. se t(40 ); m oto r. sto ; p
va lve [in le t].clo se; va lve [ou tle t]. clo se ; va lve [by-pa ss]. o pe n;
Strike Authorised
Authority
...
stopcom presso r/ time r. can cel (30 ); time r. can cel (40 );
Bombadier
w a itin gfo r oil p ress uretob u ild E n try/m o nitor inh . ib it(LO P );
Navigate to Target
Navigator
Test Scripts
m o tor . star ;t
o pe ratin g
afte r(10 s )/ valve[by-pass]. clo se; valve[in le t].o pe n; valve[ou tle t]. o pe ;n ...
Activity Diagram
Specification generalRequirem ent RequirementC id = "Name" satisfy text = "The system shall..." priority = High 1 status = "Assigned" Design SystemElementA
C usto m er
Em p lo yer N am e 1
Dynamic Model
Operational Parameters
0..1
Performance
1 ::D ev elopm e ntP lan M e anPe rfo rm an ce TrainingN ee ds C urren tS kills * U pd ate s
functionalRequirement Requirement A
performanceRequirement Requirement B
<<rationale>>
C o nstraintType{Inclusive}
Loader Speed
*
::Term
::C ondition
Reas on
functionalRequirement RequirementX
SystemElementB
Belt Speed
Test Cases verify test Case Test CaseA
Constraints Diagram
Parametric Diagram
The UML provides many diagram types. Each type of diagram focuses on unique perspective of the evolving system. Each perspective provides a unique view of all the linked information with the complete model. The green lines represent the same model element on different diagrams. The red lines represent links between different model elements. Systems today require a detailed analysis from many perspectives in order to describe the complete system. Within RtS we provide the following views of the system: Use Case view providing details of services provided by the system and which actors are involved with the service. Interaction view supported by both Scenario and Collaboration Diagrams which detail what entities are involved in delivering the service. Class view providing details of the static architecture of the software. State view provided at both system and software levels to detail the dynamic behavior of both the system and the software. Concurrency view providing detailed analysis of both system and software concurrency Constraints view providing a mechanism to capture and maintain non-functional requirements of the system and software. Contextual view providing details of user-system and system-software interfaces as well as an overall system context. Hardware view providing details of processing nodes, especially the details traditionally shared between hardware and software engineers e.g. hardware addresses.
167
Introduction to SysML
Introduction to SysML
Slide 168
168
Introduction to SysML
Summary
SysML sponsored by INCOSE/OMG with broad industry and vendor participation SysML provides a general purpose modeling language to support specification, analysis, design and verification of complex systems
Subset of UML 2 with extensions 4 Pillars of SysML include modeling of requirements, behavior, structure, and parametrics
OMG SysML Adopted in May 2006 Multiple vendor implementations announced Standards based modeling approach for SE expected to improve communications, tool interoperability, and design quality
Slide 169
169
Introduction to SysML
References
OMG SysML website
http://www.omgsysml.org
UML 2 Superstructure
OMG doc# formal/05-07-04
UML 2 Infrastructure
OMG doc# ptc/04-10-14
Slide 170
170
Introduction to SysML
Additional Reading
o The Unified Modeling Language Reference Manual (Addison-Wesley Object Technology Series) by James Rumbaugh, Ivar Jacobson, Grady Booch Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process (2nd Edition) by Craig Larman Writing Effective Use Cases by Alistair Cockburn Applying Use Cases: A Practical Guide by Geri Schneider, Jason P. Winters, Ivar Jacobson The Object-Oriented Thought Process by Matt Weisfeld, Bill McCarty Pattern-Oriented Software Architecture, Volume 2, Patterns for Concurrent and Networked Objects by Douglas Schmidt
o o o o
QuickTime and a TIFF (Uncompressed) decompressor are needed to see this picture. QuickTime and a TIFF (Uncompressed) decompressor are needed to see this picture.
QuickT imeand a T IFF (Uncompressed) decompressor are needed to see this picture. QuickT imeand a T IFF (Uncompressed) decompressor are needed to see this picture.
Slide 171
171
Introduction to SysML
Slide 172
172
Introduction to SysML
How To Contact Us
If you would like to arrange a customized Webex or demonstration on how ARTiSAN products & services can enhance your organizational processes capability and maturation contact us at (703) 771-8008. Speak with Mr. Phil Perri, Business Development Manager, North America
Slide 173
173
Introduction to SysML
Introduction to SysML
Slide 174
174
Introduction to SysML
System
A recursive V process that can be applied to multiple levels of the system hierarchy
There are many different process models in use by many organizations. The above outlines just one (reasonably common) approach. The main purpose of this section is not to define a process but to emphasize that, whatever the process, there will be important inter-relationships between various SysML diagrams that are evolved iteratively.
175
Introduction to SysML
Model structure
Capture implied inputs and outputs
segregate I/O from behavioral flows
Slide 176
The process used to evolve the Distiller diagrams is outlined above. Note that this does things in a quite different order from the order we have introduced topics on this course. This reinforces the point that SysML is process independent. The following slides will (hopefully) also reiterate the need for, and benefits of, creating links between various model elements, irrespective of the order in which they are created. It will also reiterate the iterative nature of SysML Model development.
176
Introduction to SysML
and
Problem statements come in many different forms. The systems engineer is often presented with informal diagrams and text for the initial concept requirements, and is asked to formalize them into a specification.
177
Introduction to SysML
Distiller Types
Batch Distiller
Continuous Distiller
Slide 178
178
Introduction to SysML
ValueType Real
ValueType Power
D istille r B e h a vio u r
D istille r S tru c tu re
ValueType efficiency
Unit N/M^2
Unit gm/sec
Unit cal/(gm*DegreeCelcius)
Slide 179
Unit cal/sec
Unit cal/gram
This diagram shows the structure used to build the distiller model, and emphasizes the units used.
179
Introduction to SysML
requirement Water Properties id# txt The water has properties: vol = 1 litre, density 1 gm/cm3, temp 20 deg C, specific heat 1cal/gm deg C, heat of vaporisation 540 cal/gm.
requirement Drain deriveReqt id# S4.0 txt Drain residue is performed by a Drain.
requirement Distill Water id# D1.0 txt The System shall purify water by boiling water.
Slide 180
This diagram shows the Distiller Specification (including some rationale for why a distiller is an appropriate way to purify water), and a formal documentation for related assumptions, which are treated as requirements in this example.
180
Introduction to SysML
text Describe a system for purifying dirty water. The system shall purify dirty water. Heat dirty water and condense steam are performed by a Boil dirty water is performed by a Boiler. Drain residue is performed by a Drain. water has properties: density 1 gm/cm3, temp 20 deg C, water has an initial temp 20 deg C
Slide 181
Tables will be used more often than requirements diagrams, because they are more compact and more scaleable.
181
Introduction to SysML
Control (Sequence)
external : Heat a2 : Boil Water
steam : H2O [G a s ]
hiPress : Residue
Batch Distiller
Slide 182
This activity diagram follows the optional SysML EFFBD profile, and formalizes the diagram in the problem statement.
182
Introduction to SysML
a1 : Heat Water
Activities (Functions)
1 a3 : Condense Steam Activity Condense Steam 1 a4 : Drain Residue 1 1 Activity Drain Residue
coldDirty : H2O
1 recovered : Heat external : Heat 1 Block Item Types::Heat values cal/sec : dQ/dt
1 hiPress : Residue Block Item Types::Residue 1 loPress : Residue values degrees C : temp gm/sec : massFlowRate kg/gm^2 : press
BlockProperty cal/gm : specificHeat BlockProperty cal/(gm*deg C) : latentHeat Remove Latent Heat of Vaporisation () Add Latent Heat of Vaporisation () 1 hotDirty : H20 1 steam : H2O
This block definition diagram defines all the elements used in the activity diagram. This allows some elaboration of properties of the water that flows through the system. This shows the need to consider the water in both liquid and gaseous phase the next diagram will formalize these phases in a finite state machine.
183
Introduction to SysML
Gas
States
Transitions
Liquid
Solid
Slide 184
This state machine diagram formalizes the states of H2O as it flows through the system. Change of state requires adding or removing latent heat.
184
Introduction to SysML
recovered : Heat
a1 : Heat Water
a3 : Condense Steam
a4 : Drain Residue
steam : H2O [ G a s]
external : Heat
a2 : Boil Water
Continuous Distiller
Slide 185
Copyright 2006 ARTISAN Software Tools All Rights Reserved
It makes sense for the distiller design to allow a continuous flow of water through the system, rather than only discrete increments of water. The previous activity diagram (EFFBD) has been recast to support continuous flow. Dirty H2O and Heat are inputs to the system, Pure H2O and Residue are outputs.
185
Introduction to SysML
recovered : Heat
a1 : Heat Water
a3 : Condense Steam
a4 : Drain Residue
Slide 186
This diagram is semantically equivalent to the previous diagram, but clearer and easier to read.
186
Introduction to SysML
The problem statement includes the initial product structure (Counter Flow Heat Exchanger, Boiler, Drain), which are defined in this Block Definition Diagram.
187
Introduction to SysML
recovered : Heat
continuous hotDirty : H20 [ L iqu id ] continuous external : Heat ShutDown streaming a2 : Boil Water continuous pure : H2O [Liquid ]
Slide 188
The previous Activity Diagram has been elaborated with AllocateActivityPartitions, showing how actions are allocated to blocks (parts).
188
Introduction to SysML
ItemFlow : H2O
ItemFlow : Residue
HEClean_Out : H2O
HEHotDirty_Out : H2O
BLHotDirty_In : H2O
Fluid_Out : Fluid
HESteam_In : H2O
BLPower_In : Power
DSPower_In : Power
ItemFlow : Power
ItemFlow : H2O
This internal block diagram now shows how the parts are connected in the distiller system. These flows are notional, and provide the initial basis for interface specifications note that they merely indicate direction of flow for each input/output they dont directly relate to the activity model yet. These flows will later be referenced in a parametric heat balance analysis. The flow ports can start to place restrictions on pressure, temperature, etc., which will be necessary to manufacture or procure these parts.
189
Introduction to SysML
m2 : H2O m4 : H2O s1 : Residue BlockProperty hx1 : Heat Exchanger allocatedFrom a3 : Condense Steam a1 : Heat Water BlockProperty bx1 : Boiler allocatedFrom a2 : Boil Water BlockProperty drain : Valve allocatedFrom a4 : Drain Residue
s2 : Residue
This internal block diagram is now annotated with allocations from the previous swimlane diagram, accounting for flow allocation.
190
Introduction to SysML
Value Properties
Value Bindings
Constraints
Constraint callouts
Slide 191
This parametric diagram helps the systems engineer to visualize the heat balance of an isobaric (constant pressure) distiller system. This is an appropriate firstorder approximation of the heat flow required to make the distiller function properly. The values referenced relate to the flows shown on the system internal block diagram.
191
Introduction to SysML
1 540
Not a SysML diagram Constructed from SysML diagram information Can be held in Studio a a text diagram
bx_steam_out
hx_water_out
bx_water_in
mass flow rate gm/sec temp C dQ/dt cooling water cal/sec dQ/dt steam-condensate cal/sec condenser efficency heat deficit dQ/dt condensate-steam cal/sec boiler efficiency dQ/dt in boiler cal/sec
6.75 6.75 1 1 1 20 100 100 100 100 540 540 1 0 540 1 540
Note: Cooling water needs to have 6x flow of steam! Need bypass between hx_water_out and bx_water_in!
Slide 192
This table was generated using the equations stated in the parametric diagram. It is important to note that, in order to get the heat equations to balance, that 6.75 times more water than steam is required to flow through the heat exchanger. The design shown on the previous internal block diagram doesnt allow this, so a modification must be made to the design in order to allow a bypass between the heat exchanger and the boiler.
water_out
water_in
192
Introduction to SysML
recovered : Heat
a4 : Drain Residue
continuous continuous external : Heat a5 : Divert Feed hotDirty1 : H2O [ Liquid] continuous hotDirty2 : H20 [ Liquid]
ShutDown
Slide 193
The Divert Feed activity has been allocated to the feed valve, hotDirty:H2O to the boiler has been updated to hotDirty1:H2O, and hotDirty2:H2O is now an additional output. hotDirty = hotDirty1+hotDirty2.
193
Introduction to SysML
m4 : H2O m1 : H2O m3 : H2O s1 : Residue BlockProperty hx1 : Heat Exchanger allocatedFrom a3 : Condense Steam a1 : Heat Water m2-1 : H2O BlockProperty feed : Valve allocatedFrom a5 : Divert Feed BlockProperty bx1 : Boiler allocatedFrom a2 : Boil Water m2-1 : H2O BlockProperty drain : Valve allocatedFrom a4 : Drain Residue
s2 : Residue
Q1 : Power
m2-2 : H2O
Slide 194
An additional port must be added to the HeatExchanger, allowing waste_water to flow out of the system. Note that the functional and flow allocations have been updated.
194
Introduction to SysML
press start turn on Distiller distill water press stop turn off Distiller
Slide 195
195
Introduction to SysML
p1 : Power
m4 : H2O IValve
b1 : Power blrSig
IPower
IPower
ILamp
ILamp
Slide 196
We now enhance our view of the Distiller structure by adding a Controller and associated Control Panel.
196
Introduction to SysML
Draining
Entry/Open Drain : IValve
Off Entry/pwrLightOFF
p w rO n /
[bx LevelHigh]/
[NO T bxLevelLow]/
Level Low
Entry/Open Feed : IValve
[bx LevelLow]/
Level High
Entry/Open Drain : IValve
[NO T bx LevelHigh]/
Purging Residue
Entry/ Open Drain : IValve
Slide 197
This final diagram capture the state based behavior of the Distiller through Controller detected events.
197
Introduction to SysML
Model structure
Capture implied inputs and outputs
segregate I/O from behavioral flows
Slide 198
198
Introduction to SysML
Logical Architecture
Logical architecture
Synthesize Physical Architecture
Test cases/procedures
Common Subactivities
Slide 199
Copyright Lockheed Martin Corporation 2000 Rights 2003 & INCOSE 2004-2006 C opyright 2006 ARTISAN Software Tools All Reserved
Use ISSEP chart for Design and Verify System activity. Note: Mention IPT. Try to show SE and software on same page -- Highlight differences.
199
Introduction to SysML
Slide 200
200
Introduction to SysML
Project Management
Engineering Performance Analysis Specialty Engineering Analysis
Requirements Management
Slide 201
201