SlideShare une entreprise Scribd logo
1  sur  109
Executable UML and SysML Ed Seidewitz
Agenda ,[object Object],[object Object],[object Object],[object Object]
I. Introduction ,[object Object],[object Object],[object Object]
I. Introduction ,[object Object],[object Object],[object Object],[object Object],[object Object]
A. Why Model? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
B. Why Execute Models? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Modeling for Software Development ,[object Object],[object Object],[object Object],[object Object],How it usually works without executable models Developers provide feedback to the architects (maybe) Architects give models to developers Developers create artifacts based on the models (maybe) Architects create the models
Executable Modeling for Software Development The models  are  the source code. Using a standard-conforming UML modeling tool Using a standard-conforming UML execution tool How it works with executable models Architects validate the models by executing them in a simulated test environment Technologists specify the implementation platform The models are provisioned as executing artifacts on the target platform Architects create the models
Executable Modeling for System Engineering Using a standard-conforming SysML modeling tool Using a standard-conforming SysML execution tool ,[object Object],[object Object],[object Object],[object Object],Models can include  both  hardware and software components. ,[object Object],[object Object],System engineers analyze, simulate and validate the system design, and allocate requirements to components. System engineers create the models
C. Why Standardize? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Unified Modeling Language (UML) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Systems Modeling Language (SysML) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Executable UML Foundation (fUML) ,[object Object],[object Object],[object Object],[object Object],[object Object]
UML Action Language (Alf) ,[object Object],[object Object],[object Object],[object Object],[object Object]
D. A Motivating Example ,[object Object],[object Object],[object Object],[object Object],[object Object]
Hybrid SUV Operational States A  state machine  abstracts system behavior into a finite number of  states. The system is modeled as having discrete  transitions  between the states. A transition may trigger further system behavior… … or system behavior may be dependent on the current state/
“Accelerate” Activity An  activity  specifies behavior as the coordinated execution of a set of subordinate  actions. An action in one activity may  call  another activity. Data and control  flow  between the various actions.
“Provide Power” Activity Other actions provide various data and computational functions.
“Proportion Power” Activity Full executability requires  complete  specification of all behavior and computation. However, after a certain level of detail, it is much more convenient to use a textual rather than graphical notation (whether mathematical constraints or procedural action language.)
The Goal: Automated Analysis
II. Foundation for Executable UML ,[object Object],[object Object],[object Object],[object Object]
II. Foundation for Executable UML ,[object Object],[object Object],[object Object],[object Object]
A. Executable UML Foundation Standard ,[object Object],[object Object],[object Object],[object Object],[object Object],Semantics of a Foundational Subset for Executable UML Models
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Submitters and Supporters (Foundation)
Submitters and Supporters (Action Language) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Objectives ,[object Object],[object Object]
Key Components ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Semantics Composite Structure Semantics Complete Activity Model Semantics State Machine Semantics Non-Executable Model Semantics The semantics of fUML provide the foundation for formally specifying the (execution) semantics of the rest of UML. Some areas of UML (e.g., use case and requirements models) may not be best formalized based on an executable semantics foundation. Interaction Model Semantics Foundational Semantics fUML operational semantics are specified as an  execution model  written in fUML itself. Base Semantics The  base semantics  of the subset of fUML used in the execution model are specified using formal logic.
Conformance ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
B. The fUML Subset ,[object Object],[object Object],[object Object],[object Object]
i. Activities ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Activities and Parameters An  activity  is a specification of behavior as the coordinated execution of subordinate  actions,  using a control and data flow model. An activity may have input, output and return parameters . The parameters have corresponding  activity parameter node  on the boundary of the diagrammatic representation of an activity.
Actions and Flows An  action  is a fundamental unit of executable behavior within an activity. A  pin  is an activity node that either accepts input to or provides output from an action. An  object flow  provides a path for passing objects or data. A  control flow  specifies the sequencing of actions. An  activity diagram  is a graph structure consisting of  activity nodes  connected by  activity edges.
Textual Notation activity DoSomething(in input: Integer, out output Integer): Integer { output = A(input); return B(); } Alf behavioral notation  maps  to fUML activity models. The semantics of the Alf notation is  defined  by its mapping to fUML
Tokens a = DoSomething(1, b); A  token  is a container for an object, datum or locus of control that may be present at an activity node. The activity is invoked with an argument of 1 for its input parameter. An  object token  with a value of 1 is placed on the input activity parameter node. The object token flows to the input pin of action A along the object flow. Action A fires and produces an object token on its output pin. The object token flows to the output activity parameter node along the object flow. When it is done, action A produces a  control token,  which flows to action B along the control flow. Action B accepts the control token and fires, producing an object token on its output pin. The object token flows to the output activity parameter node along the object flow. Values on the output activity parameter nodes are copied to the output arguments.
Offers An output pin  offers  its tokens to the targets of  all  outgoing object flows. A single token can only flow to  one  target. If two competing targets are both ready to  accept  an offer for the same token, it is  indeterminate  which will get the token. Note:  fUML semantics do  not  guarantee “liveliness” or “fairness” in the execution of actions competing for tokens. Actions with no control constraints execute  concurrently.  This means that they  may  execute in parallel –  or  they may execute sequentially in any order.
Fork and Join Nodes order = 'Create Order'(); @parallel { 'Fulfill Order'(order); 'Invoice Order'(order); } 'Close Out Order'(order); A  fork node  copies the tokens it is offered, and offers a copy on each outgoing flow. A  join node  waits for a token to be offered on  all  incoming flows and then offers tokens on its outgoing flow. In the Alf textual notation, forks and joins are implicit in the  parallel block  notation. Note:  Alf does not actually provide any notation for competition for tokens on output pins. A fork node is always inserted for multiple flows out of any output pin.
Control Nodes An  initial node  generates a single control token. A  merge node  passes on any tokens it receives. A  decision node  routes tokens based on a  decision input  value. An  activity final node  terminates the activity when it receives a token. A  control node  is an activity node used to coordinate the flow of (the offers for) tokens between other nodes. Note:  This construction is necessary so a “card” token is available for each iteration. Note:  Since the decision node “gates” control flow, it must be provided with an incoming control token.
Structured Nodes card = 'Select Credit Card'(); do { charge = 'Create Credit Card Charge'(card); if ('Check Charge Approval'(charge)) { declined = false; 'Notify Customer of Approval'(charge); } else { declined = true; 'Notify Customer of Denial'(charge); } } while (declined); A  structured node  is an activity node used to group subordinate nodes into a control structure. An  loop node  iterates the execution of its body while a condition is true. By default, the condition is tested  after  execution of the body. A  conditional node  executes one  clause  or another based on the result of a test (or tests). Inputs to the loop node initialize  loop variables  available across all iterations of the loop. Note:  There is no normative UML graphical notation for loop or conditional nodes.
Expansion Regions 'Get Outstanding Orders'(customer) -> select order ('Is Delinquent?'(order)) -> iterate order ('Refer for Collection'(order)); An  expansion region  is used to apply subordinate actions on all members of an input collection A  parallel  expansion region applies nested behavior  concurrently  to all collection elements. An  iterative  expansion region applies nested behavior  sequentially  to all collection elements. Alf provides specialized notation that maps to typical uses of expansion regions.
ii. Actions ,[object Object],[object Object],[object Object],[object Object],NOTE:  Some of these actions will be discussed in more detail later.
Invocation Actions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],PlaceOrder(customer, product) Max(throttle, limit)  count + quantity order.addProduct(product, quantity) vehicle.EngageBrake(pressure) accept (signal: EngageBrake)
Object Actions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],1  true  "Hello" new Order() order.destroy() order == myOrder  name != customerName this Order.allInstances() vehicle instanceof Car  car hastype Hatchback reclassify order from PendingOrder to ClosedOrder
Structural Feature Actions ,[object Object],[object Object],[object Object],[object Object],order.customer order.lineItems->add(item) order.lineItems->remove(item) order.card = null
Link Actions ,[object Object],[object Object],[object Object],[object Object],Owns->select person (house=>thisHouse) Owns->add(person=>jack, house=>newHouse) Owns->remove(person=>jack, house=>oldHouse) Owns->clear(jack)
iii. Structure ,[object Object],[object Object],[object Object]
Structural and Behavioral Models ,[object Object],[object Object],[object Object],[object Object]
Classes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],A  class  is a  classifier  of  objects  that persist in the  extent  of the class, with an identity that is independent of the value of their  attributes  at any one time.
Classes and Attributes A class may have  attributes  whose types are primitive, data types or other classes. A  referential attribute,  whose type is a class, is conventionally notated as an association with a  class-owned  association end . A bidirectional association results in corresponding referential attributes on  both  associated classes.
Data Types A  data type  is a  classifier  of transient  data values  whose identity is based on the values of their attributes. Data types may have  attributes , but not operations.
Primitive Types ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Classes: Operations and Methods An  operation  specifies a behavior that may be synchronously invoked on an instance of a class. A  method  defines that actual behavior that is invoked.
Classes: Structural Semantics Structural semantics  specify how a structural model constrains allowable instances. Objects  are instances of classes with values for each attribute. Class-owned association ends are structural features with values, like attributes. fUML does not actually give semantics to an association with class-owned ends, only to the ends as structural features. Note:  fUML does provide “reified” semantics for associations that own their own ends, as will be discussed later.
Classes: Behavioral Semantics ,[object Object],[object Object],[object Object],Behavioral semantics  specify how a behavioral model changes the state of instances over time.
Creating an Order order = new Order (customer, today) Before After @create public Order (customer: Customer, in datePlaced: Date) { this.datePlaced = datePlaced; this.totalAmount = new Money(dollars=>0, cents=>0); this.customer = customer; this.customer.orders->add(this); } A new object is created and the constructor operation is invoked. The constructor initializes the new order’s attribute values… … and adds the order to the customer’s list.
Adding a Line Item Before After order.addProduct (product, 2) public addProduct  (in product: Product, in quantity: Integer) { lineItem = new LineItem(product, quantity); this.lineItems->add(lineItem); this.totalAmount = MoneyFunctions::Add (this.totalAmount, lineItem.amount); } The method for the operation creates a new line item object… The addProduct operation is invoked on an existing Order object. … adds the new object to the list of line items for the order… … and updates the total order amount.
Canceling an Order Before After order.cancel() @destroy public cancel() { this.customer.orders->remove(this); } A destructor operation is invoked, after which the order object is destroyed. Because line items are aggregated by composition, they are destroyed, too. References to the destroyed object must be explicitly removed.
Associations ,[object Object],[object Object],[object Object],An  association  is a  classifier  whose instances are  links  that relate other instances.
Classes and Associations An  association  (that owns its ends) is a classifier of persistent  links  between the associated classes, which exist in the  extent  of the association.
Associations: Structural Semantics Links  are now semantic instances of the indicated associations. Structural semantics  specify how a structural model constrains allowable instance models.
Associations: Behavioral Semantics ,[object Object],[object Object],Behavioral semantics  specify how a behavioral model changes the state of instances over time.
Creating an Order (revised) order = new Order (customer, today) Before After @create public Order (customer: Customer, in datePlaced: Date) { this.datePlaced = datePlaced; this.totalAmount = new Money(dollars=>0, cents=>0); Customer_Order->add(customer, this); } A single action creates a bidirectional link.
Canceling an Order (revised) Before After order.cancel() @destroy public cancel() { } A destructor operation is invoked, after which the order object is destroyed.  Links in which the destroyed object participates are now also automatically destroyed.
iv. Asynchronous Communication ,[object Object],[object Object],[object Object]
Signals and Receptions A  signal  is a classifier whose instances may be communicated  asynchronously.   A  reception  is a declaration of the ability to receive a signal.  A signal may have  attributes  that represent transmittable data.  More than one class can receive the same signal.
Classifier Behaviors An  active  class is one that has a  classifier behavior.  Only active class may receive signals. A  classifier behavior  is an autonomous behavior started when an active class is instantiated.
Asynchronous Behavior accept (submission: SubmitCharge); card = submission.card; do { new CreditCardCharge(card, this); accept (response: ChargeApproved) { declined = false; this.customer.ChargeApproved(response.charge); } or accept (response: ChargeDeclined) { declined = true; this.customer.ChargeDeclined(response.charge); } while (declined); The order object accepts a signal to submit a charge. The order object creates a new credit card charge object, which begins its asynchronous behavior. Note:  UML semantics require a separate action to start the behavior of a new object. However, Alf notation for creating an active class maps to  both  create and start object behavior actions. The order object accepts a signal from the charge object that the charge is approved. The order object sends a signal to the customer that the charge is approved.
C. Foundational Model Library ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Boolean Functions Converts  x  to a Boolean value. Pre: (lower(x) = “true”) or (lower(x) = “false”) Post: if lower(x) = “true” then result = true else result = false endif Note: The notation  “lower(x)”  above is  not  intended to be an invocation of a Foundation Model Library primitive behavior but, rather, is intended to denote that value of the string  x  with any uppercase letters converted to the corresponding lowercase letters. ToBoolean(x: String): Boolean[0..1] Converts  x  to a String value. Post: if x then result = “true” else result = “false” endif ToString(x: Boolean): String True if  x  is false, or if  x  is true and  y  is true. Post: result = Not(x) Or (x And y) Implies(x: Boolean, y: Boolean): Boolean True is  x  is false. Post: if x then result = false else result = true endif Not(x: Boolean): Boolean True if both  x  and  y  are true. Post: if x then result = y else result = true endif And(x: Boolean, y: Boolean):Boolean True if either  x  or  y  is true, but not both. Post: result = (x Or y) And Not(x And y) Xor(x: Boolean, y: Boolean): Boolean True if either  x  or  y  is true. Post: if x then result = true else result = y endif Or(x: Boolean, y: Boolean): Boolean Description Function Signature
Integer Functions Converts  x  to an Integer value. Pre: x has the form of a legal integer value ToInteger(x: String): Integer[0..1] Converts  x  to an UnlimitedNatural value. Pre: x >= 0 Post: ToInteger(result) = x ToUnlimitedNatural(x: Integer): UnlimitedNatural[0..1] Converts  x  to a String value. Post: ToInteger(result) = x ToString(x: Integer): String True if x is greater than or equal to  y. Post: result = (x = y) Or (x > y) >=(Integer, Integer): Boolean True if  x  is less than or equal to  y . Post: result = (x = y) Or (x < y) <=(Integer, Integer): Boolean True if x is greater than y. Post: result = Not(x <= y) >(x: Integer, y: Integer): Boolean True if x is less than y. <(x: Integer, y: Integer): Boolean The minimum of  x  and  y. Post: if x <= y then result = x else result = y endif Min(x: Integer, y: Integer): Integer The maximum of  x  and  y. Post: if x >= y then result = x else result = y endif Max(x: Integer, y: Integer): Integer The result is  x  modulo  y. Post: result = x – (x Div y) * y Mod(x: Integer, y: Integer): Integer The number of times that  y  fits completely within  x. Pre: y<>0 Post:  if (x * y) >= 0 then ((result * y) <= x) And ((result+1) * y) >x) else ((Neg(result) * y) <= Neg(x)) And ((Neg(result)+1) * y) > Neg(x)) endif Div(x: Integer, y: Integer): Integer[0..1] The absolute value of x. Post: if x < 0 then result = Neg(x) else result = x endif Abs(x: Integer): Integer The value of the multiplication of  x  and  y. Post: if y < 0 then result =Neg (x * Neg(y)) else if y = 0 then result = 0  else result = (x * (y-1)) + x endif endif *(x:Integer, y:Integer): Integer The value of the subtraction of  x  and  y. Post: result + y = x -(x: Integer, y: Integer): Integer The value of the addition of  x  and  y. +(x: Integer, y: Integer): Integer The negative value of  x. Neg(x: Integer): Integer Description Function Signature
Unlimited Natural Functions Converts  x  to an Integer value. Pre: (x has the form of a legal integer value) Or (x = “*”) Post: if x = “*” then result = unbounded else result = ToUnlimitedNatural(ToInteger(x)) ToUnlimitedNatural(x: String): Integer[0..1] Converts  x  to an Integer value. Pre: x <> unbounded ToInteger(x: UnlimitedNatural): Integer[0..1] Converts  x  to a String value. The value “unbounded” is represented by the string “*”. Post: ToUnlimitedNatural(result) = x ToString(x: UnlimitedNatural): String True if x is greater than or equal to  y. Post: result = (x = y) Or (x > y) >=(UnlimitedNatural, UnlimitedNatural): Boolean True if  x  is less than or equal to  y . Post: result = (x = y) Or (x < y) <=(UnlimitedNatural, UnlimitedNatural): Boolean True if x is greater than y. Post: result = Not(x <= y) >(x: UnlimitedNatural, y: UnlimitedNatural): Boolean True if x is less than y. Every value other than “unbounded” is less than “unbounded”. <(x: UnlimitedNatural, y: UnlimitedNatural): Boolean The minimum of  x  and  y. Post: if x <= y then result = x else result = y endif Min(x: UnlimitedNatural, y: UnlimitedNatural): UnlimitedNatural The maximum of  x  and  y. Post: if x >= y then result = x else result = y endif Max(x: UnlimitedNatural, y: UnlimitedNatural): UnlimitedNatural Description Function Signature
String Functions The substring of  x  starting at character number  lower , up to and including character number  upper.  Character numbers run from 1 to  Size(x). Pre: (1 <= lower) And  (lower <= upper) And  (upper <= Size(x)) Substring(x: String, lower: Integer, upper: Integer): String[0..1] The number of characters in  x. Size(x: String):Integer The concatenation of  x  and  y . Post: (Size(result) = Size(x) + Size(y)) And (Substring(result, 1, Size(x)) = x) And (Substring(result, Size(x)+1, Size(result)) = y) Concat(x: String, y: String):String Description Function Signature
Common Classes
Channels
Reading and Writing Lines activity ReadLine  (out errorStatus: Status[0..1]): String { return StandardIntputChannel.allInstances().readLine(status); } activity WriteLine  (in value: String, out errorStatus: Status[0..1]) { StandardOutputChannel.allInstances().writeLine(result, status); }
Hello World activity Hello() { WriteLine(&quot;Hello World!&quot;); }
III. Extensions for Executable SysML ,[object Object],[object Object],[object Object]
III. Extensions for Executable SysML ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
A. SysML Semantics Composite Structure Semantics Complete Activity Model Semantics State Machine Semantics Non-Executable Model Semantics Interaction Model Semantics Foundational Semantics SysML also defines a  profile  consisting of  stereotypes  used to tag standard UML model elements to give them SysML-specialized meaning. SysML is base on a UML subset that does not include all of fUML (e.g., it does not include structured activity nodes), but it includes capabilities not in fUML (e.g., composite structure, state machines, streaming, etc.) UML for SysML
Building on the Foundation ,[object Object],[object Object],[object Object],[object Object],[object Object]
B. Streaming ,[object Object],[object Object],[object Object]
Execution without Streaming … [execute] Activity ProvidePower completed. [addToken] node = out drivePower [addToken] node = out drivePower [addToken] node = out transModeCmd [receiveOffer] node = drivePower [fire] Output activity parameter node drivePower... [addToken] node = drivePower [removeToken] node = out drivePower [addToken] node = drivePower [removeToken] node = out drivePower [receiveOffer] node = transModeCmd [fire] Output activity parameter node transModeCmd... [addToken] node = transModeCmd [removeToken] node = out transModeCmd [execute] Activity Accelerate... [run] Node MeasureVehicleConditions is enabled. [run] Node PushAccelerator is enabled. [run] Sending offer to node MeasureVehicleConditions. [fire] Action MeasureVehicleConditions... [execute] Activity MeasureVehicleConditions... … [execute] Activity MeasureVehicleConditions completed. [addToken] node = out vehCond [receiveOffer] node = ProvidePower [run] Sending offer to node PushAccelerator. [receiveOffer] node = PushAccelerator [fire] Action PushAccelerator... [addToken] node = out accelPosition [receiveOffer] node = ProvidePower [addToken] node = in accelPosition [removeToken] node = out accelPosition [addToken] node = in vehCond [removeToken] node = out vehCond [fire] Action ProvidePower... [execute] Activity ProvidePower... output parameter 'drivePower' has 2 value(s) value[0] = Reference to (Object_@130be8c: GasPower throttle  = 6) value[1] = Reference to (Object_@12df081: ElecPower current  = 3) output parameter 'transModeCmd' has 1 value(s) value[0] = Reference to (Object_@108d3eb: TransmissionModeCommand) The execution of the activity is shown by its  execution trace. Based on the sample activity in Annex B.4.8.1 of the SysML Specification
Execution with streaming … [fire] Action ProvidePower... [execute] Activity ProvidePower... … [addToken] node = out drivePower [receiveOffer] node = drivePower [fire] Output activity parameter node drivePower... [addToken] node = drivePower [removeToken] node = out drivePower output parameter 'drivePower' posts 1 value(s) value[0] = Reference to  (Object_@130be8c: GasPower throttle  = 6) … [addToken] node = out transModeCmd [receiveOffer] node = transModeCmd [fire] Output activity parameter node transModeCmd... [addToken] node = transModeCmd [removeToken] node = out transModeCmd output parameter 'transModeCmd' posts 1 value(s) value[0] = Reference to  (Object_@108d3eb: TransmissionModeCommand) … … [addToken] node = out drivePower [receiveOffer] node = drivePower [fire] Output activity parameter node drivePower... [addToken] node = drivePower [removeToken] node = out drivePower output parameter 'drivePower' posts 1 value(s) value[0] = Reference to   (Object_@12df081: ElecPower current  = 3) ProvidePower is still executing at this point…
C. Timing ,[object Object],[object Object],[object Object]
Execution with timing [fire] Action MeasureVehicleConditions… [execute] Activity MeasureVehicleConditions… … [addToken] node = out vehCond … [fire] Action PushAccelerator... [execute] Activity PushAccelerator… … [addToken] node = out accelPosition … [fire] Action ProvidePower... [execute] Activity ProvidePower... … [addToken] node = out drivePower A  duration constraint  on the duration between the firing of the action and the placing of tokens on its output pin.  2 sec 1 sec 3 sec Duration t = 0 t = 2 t = 2 t = 3 t = 3 t = 6 Sequential execution t = 0 t = 2 t = 0 t = 1 t = 2 t = 5 Parallel execution
Timing: Additional Considerations ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
D. Blocks and Partitions ,[object Object],[object Object],[object Object],[object Object],[object Object]
Allocating Activities to Blocks Flows across partitions define interfaces between blocks
Allocated Block Structure An  internal block diagram  shows the composite structure of the Power Subsystem. Each component block has behavior as allocated from the activity model. Connections between  flow ports  on the blocks are derived from flows that cross partition boundaries.
Blocks and Partitions: Considerations ,[object Object],[object Object],[object Object]
E. State Machines ,[object Object],[object Object],[object Object],[object Object],[object Object]
Appendix: Specifying Execution Semantics ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Models A  model  makes statements in a  modeling language  about a  system under study. First order statements “ There is a person whose name is Jack.” ” There is a house. The person is the owner of the house.” Second order statements “ Every person has a name.” “ Some people own houses.” UML Instance Model UML Class Model
Metamodeling and Semantics X : anX anX X.java &quot;instance of&quot; Class InstanceSpecification : InstanceSpecification : Class +classifier &quot;interpretation&quot; <<instanceOf>> &quot;interpretation&quot; <<instanceOf>> &quot;interpretation&quot; &quot;interpretation&quot; <<instanceOf>> +classifier &quot;interpretation&quot; “ representation&quot; ,[object Object],[object Object],[object Object],M1 M0 M2 M1 “ interpretation” “ interpretation”
Denotational Mapping evaluate(specification: ValueSpecification): Value Abstract Syntax Element (Representation) Semantic Model Element (Interpretation)
Abstract Syntax: Value Specifications
Semantics: Values
Representation: Instance Model
Interpretation: Instance Model j = evaluate(v)
Semantics: Extensional Values There are concepts in the semantic model that have no explicit representation in the abstract syntax.
Abstract Syntax/Semantics: Behavior
Abstract Syntax: Activities
Semantics: Activities  Additional semantic concepts have specifically to do with dynamic behavior.
Model: Simple Activity
Representation: Simple Activity
Interpretation: Simple Activity Execution (1)
Interpretation: Simple Activity Execution (2)
Execution Semantics and Base Semantics (forall (n a xa f xn) (if (and (ExecutableNode n) (buml:activity n a) (classifies a xa f) (property-value xa n xn f) (ipc:subactivity_occurrence-neq xn xa)) (forall (n a xal xa2 xn) (if (and (ExecutableNode n) (buml:activity n a) (classifies a xa1 f) (classified a xa2 f) (property-value xa1 n xn f) (property-value xa2 n xn f) (= (psl:root occ xa1) (psl:root occ xa2)))) Execution Semantics (Operational Specification) Base Semantics (Axiomatic Specification) ,[object Object],[object Object]
Execution Environment ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Contenu connexe

Tendances

Multi domain product architecture: start integrated, stay integrated
Multi domain product architecture: start integrated, stay integratedMulti domain product architecture: start integrated, stay integrated
Multi domain product architecture: start integrated, stay integratedObeo
 
Model-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical SoftwareModel-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical Softwaregjuljo
 
Using the IVI (Innovation Value Institute) IT CMF (IT Capability Maturity Fra...
Using the IVI (Innovation Value Institute) IT CMF (IT Capability Maturity Fra...Using the IVI (Innovation Value Institute) IT CMF (IT Capability Maturity Fra...
Using the IVI (Innovation Value Institute) IT CMF (IT Capability Maturity Fra...Alan McSweeney
 
Digitally assisted design for safety analysis
Digitally assisted design for safety analysisDigitally assisted design for safety analysis
Digitally assisted design for safety analysisObeo
 
Unleash the power of functional chains with Capella 1.3.1
Unleash the power of functional chains with Capella 1.3.1Unleash the power of functional chains with Capella 1.3.1
Unleash the power of functional chains with Capella 1.3.1Obeo
 
LML to SysML and Back - Systems Engineering Languages
LML to SysML and Back - Systems Engineering LanguagesLML to SysML and Back - Systems Engineering Languages
LML to SysML and Back - Systems Engineering LanguagesElizabeth Steiner
 
From Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems ArchitecturesFrom Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems ArchitecturesObeo
 
[ Capella Day 2019 ] Model-based safety analysis on Capella using Component F...
[ Capella Day 2019 ] Model-based safety analysis on Capella using Component F...[ Capella Day 2019 ] Model-based safety analysis on Capella using Component F...
[ Capella Day 2019 ] Model-based safety analysis on Capella using Component F...Obeo
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven ArchitectureMajong DevJfu
 
[ Capella Day 2019 ] Capella integration with Teamcenter
[ Capella Day 2019 ] Capella integration with Teamcenter[ Capella Day 2019 ] Capella integration with Teamcenter
[ Capella Day 2019 ] Capella integration with TeamcenterObeo
 
[Capella Day 2019] Integrating Capella, SCADE and medini analyze, for MBSE, E...
[Capella Day 2019] Integrating Capella, SCADE and medini analyze, for MBSE, E...[Capella Day 2019] Integrating Capella, SCADE and medini analyze, for MBSE, E...
[Capella Day 2019] Integrating Capella, SCADE and medini analyze, for MBSE, E...Obeo
 
Simplifying MBSE Tasks with Capella and MapleMBSE
Simplifying MBSE Tasks with Capella and MapleMBSESimplifying MBSE Tasks with Capella and MapleMBSE
Simplifying MBSE Tasks with Capella and MapleMBSEObeo
 
System Architect and Rhapsody
System Architect and RhapsodySystem Architect and Rhapsody
System Architect and RhapsodyMartin Owen
 
Design patterns creational patterns
Design patterns creational patternsDesign patterns creational patterns
Design patterns creational patternsMalik Sajid
 
ISO/IEC 42010 Recommended Practice for Architectural description
ISO/IEC 42010 Recommended Practice for Architectural descriptionISO/IEC 42010 Recommended Practice for Architectural description
ISO/IEC 42010 Recommended Practice for Architectural descriptionHongseok Lee
 
IBM Rational Rhapsody and Qt Integration
IBM Rational Rhapsody and Qt IntegrationIBM Rational Rhapsody and Qt Integration
IBM Rational Rhapsody and Qt Integrationgjuljo
 
Yazılım kalitesi ve Standartları
Yazılım kalitesi  ve Standartları Yazılım kalitesi  ve Standartları
Yazılım kalitesi ve Standartları İbrahim ATAY
 
TOGAF Sample Matrices, Catalogs and Diagrams from the Open Group
TOGAF Sample Matrices, Catalogs and Diagrams from the Open GroupTOGAF Sample Matrices, Catalogs and Diagrams from the Open Group
TOGAF Sample Matrices, Catalogs and Diagrams from the Open GroupMichael Sukachev
 
People soft workflow by surya 2
People soft workflow by surya 2People soft workflow by surya 2
People soft workflow by surya 2meghamystic
 
Rhapsody reverseengineering
Rhapsody reverseengineeringRhapsody reverseengineering
Rhapsody reverseengineeringScott Althouse
 

Tendances (20)

Multi domain product architecture: start integrated, stay integrated
Multi domain product architecture: start integrated, stay integratedMulti domain product architecture: start integrated, stay integrated
Multi domain product architecture: start integrated, stay integrated
 
Model-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical SoftwareModel-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical Software
 
Using the IVI (Innovation Value Institute) IT CMF (IT Capability Maturity Fra...
Using the IVI (Innovation Value Institute) IT CMF (IT Capability Maturity Fra...Using the IVI (Innovation Value Institute) IT CMF (IT Capability Maturity Fra...
Using the IVI (Innovation Value Institute) IT CMF (IT Capability Maturity Fra...
 
Digitally assisted design for safety analysis
Digitally assisted design for safety analysisDigitally assisted design for safety analysis
Digitally assisted design for safety analysis
 
Unleash the power of functional chains with Capella 1.3.1
Unleash the power of functional chains with Capella 1.3.1Unleash the power of functional chains with Capella 1.3.1
Unleash the power of functional chains with Capella 1.3.1
 
LML to SysML and Back - Systems Engineering Languages
LML to SysML and Back - Systems Engineering LanguagesLML to SysML and Back - Systems Engineering Languages
LML to SysML and Back - Systems Engineering Languages
 
From Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems ArchitecturesFrom Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems Architectures
 
[ Capella Day 2019 ] Model-based safety analysis on Capella using Component F...
[ Capella Day 2019 ] Model-based safety analysis on Capella using Component F...[ Capella Day 2019 ] Model-based safety analysis on Capella using Component F...
[ Capella Day 2019 ] Model-based safety analysis on Capella using Component F...
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture
 
[ Capella Day 2019 ] Capella integration with Teamcenter
[ Capella Day 2019 ] Capella integration with Teamcenter[ Capella Day 2019 ] Capella integration with Teamcenter
[ Capella Day 2019 ] Capella integration with Teamcenter
 
[Capella Day 2019] Integrating Capella, SCADE and medini analyze, for MBSE, E...
[Capella Day 2019] Integrating Capella, SCADE and medini analyze, for MBSE, E...[Capella Day 2019] Integrating Capella, SCADE and medini analyze, for MBSE, E...
[Capella Day 2019] Integrating Capella, SCADE and medini analyze, for MBSE, E...
 
Simplifying MBSE Tasks with Capella and MapleMBSE
Simplifying MBSE Tasks with Capella and MapleMBSESimplifying MBSE Tasks with Capella and MapleMBSE
Simplifying MBSE Tasks with Capella and MapleMBSE
 
System Architect and Rhapsody
System Architect and RhapsodySystem Architect and Rhapsody
System Architect and Rhapsody
 
Design patterns creational patterns
Design patterns creational patternsDesign patterns creational patterns
Design patterns creational patterns
 
ISO/IEC 42010 Recommended Practice for Architectural description
ISO/IEC 42010 Recommended Practice for Architectural descriptionISO/IEC 42010 Recommended Practice for Architectural description
ISO/IEC 42010 Recommended Practice for Architectural description
 
IBM Rational Rhapsody and Qt Integration
IBM Rational Rhapsody and Qt IntegrationIBM Rational Rhapsody and Qt Integration
IBM Rational Rhapsody and Qt Integration
 
Yazılım kalitesi ve Standartları
Yazılım kalitesi  ve Standartları Yazılım kalitesi  ve Standartları
Yazılım kalitesi ve Standartları
 
TOGAF Sample Matrices, Catalogs and Diagrams from the Open Group
TOGAF Sample Matrices, Catalogs and Diagrams from the Open GroupTOGAF Sample Matrices, Catalogs and Diagrams from the Open Group
TOGAF Sample Matrices, Catalogs and Diagrams from the Open Group
 
People soft workflow by surya 2
People soft workflow by surya 2People soft workflow by surya 2
People soft workflow by surya 2
 
Rhapsody reverseengineering
Rhapsody reverseengineeringRhapsody reverseengineering
Rhapsody reverseengineering
 

En vedette

Programming in UML: An Introduction to fUML and Alf
Programming in UML: An Introduction to fUML and AlfProgramming in UML: An Introduction to fUML and Alf
Programming in UML: An Introduction to fUML and AlfEd Seidewitz
 
Friedenthal.sandford
Friedenthal.sandfordFriedenthal.sandford
Friedenthal.sandfordNASAPMC
 
Steve.hoffman
Steve.hoffmanSteve.hoffman
Steve.hoffmanNASAPMC
 
AADL: Architecture Analysis and Design Language
AADL: Architecture Analysis and Design LanguageAADL: Architecture Analysis and Design Language
AADL: Architecture Analysis and Design LanguageIvano Malavolta
 
سيستم‌هاي اطلاعاتي مديريت پيشرفته سرلك فراتي فصل يك_ محسن ترابي كمال
سيستم‌هاي اطلاعاتي مديريت پيشرفته سرلك فراتي فصل يك_ محسن ترابي كمالسيستم‌هاي اطلاعاتي مديريت پيشرفته سرلك فراتي فصل يك_ محسن ترابي كمال
سيستم‌هاي اطلاعاتي مديريت پيشرفته سرلك فراتي فصل يك_ محسن ترابي كمالمحسن ترابي كمال
 
Safety Model and Systems Model - GSN/MARTE/SysML/SafeML integration in Robo...
Safety Model and Systems Model - GSN/MARTE/SysML/SafeML  integration in Robo...Safety Model and Systems Model - GSN/MARTE/SysML/SafeML  integration in Robo...
Safety Model and Systems Model - GSN/MARTE/SysML/SafeML integration in Robo...Kenji Hiranabe
 
Ingénierie dirigée par les modèles RTaW
Ingénierie dirigée par les modèles RTaWIngénierie dirigée par les modèles RTaW
Ingénierie dirigée par les modèles RTaWRealTime-at-Work (RTaW)
 
Using SysML in a RTC-based Robotics Application : a case study with a demo
Using SysML in a RTC-based Robotics Application : a case study with a demoUsing SysML in a RTC-based Robotics Application : a case study with a demo
Using SysML in a RTC-based Robotics Application : a case study with a demoKenji Hiranabe
 
Louise Anderson - INCOSE CubeSat Challenge Team (SSWG): Developing a Model Ba...
Louise Anderson - INCOSE CubeSat Challenge Team (SSWG): Developing a Model Ba...Louise Anderson - INCOSE CubeSat Challenge Team (SSWG): Developing a Model Ba...
Louise Anderson - INCOSE CubeSat Challenge Team (SSWG): Developing a Model Ba...INCOSE Colorado Front Range Chapter
 
System Engineering Project - Team 2
System Engineering Project - Team 2System Engineering Project - Team 2
System Engineering Project - Team 2Chawal Ukesh
 
Automation of SysML Activity Diagram Simulation with Model-Driven Engineering...
Automation of SysML Activity Diagram Simulation with Model-Driven Engineering...Automation of SysML Activity Diagram Simulation with Model-Driven Engineering...
Automation of SysML Activity Diagram Simulation with Model-Driven Engineering...Daniele Gianni
 
Introduction à Sysml
Introduction à SysmlIntroduction à Sysml
Introduction à SysmlYassine SIDKI
 

En vedette (15)

Programming in UML: An Introduction to fUML and Alf
Programming in UML: An Introduction to fUML and AlfProgramming in UML: An Introduction to fUML and Alf
Programming in UML: An Introduction to fUML and Alf
 
Friedenthal.sandford
Friedenthal.sandfordFriedenthal.sandford
Friedenthal.sandford
 
Steve.hoffman
Steve.hoffmanSteve.hoffman
Steve.hoffman
 
AADL: Architecture Analysis and Design Language
AADL: Architecture Analysis and Design LanguageAADL: Architecture Analysis and Design Language
AADL: Architecture Analysis and Design Language
 
سيستم‌هاي اطلاعاتي مديريت پيشرفته سرلك فراتي فصل يك_ محسن ترابي كمال
سيستم‌هاي اطلاعاتي مديريت پيشرفته سرلك فراتي فصل يك_ محسن ترابي كمالسيستم‌هاي اطلاعاتي مديريت پيشرفته سرلك فراتي فصل يك_ محسن ترابي كمال
سيستم‌هاي اطلاعاتي مديريت پيشرفته سرلك فراتي فصل يك_ محسن ترابي كمال
 
1 system view and system structure
1 system view and system structure1 system view and system structure
1 system view and system structure
 
Safety Model and Systems Model - GSN/MARTE/SysML/SafeML integration in Robo...
Safety Model and Systems Model - GSN/MARTE/SysML/SafeML  integration in Robo...Safety Model and Systems Model - GSN/MARTE/SysML/SafeML  integration in Robo...
Safety Model and Systems Model - GSN/MARTE/SysML/SafeML integration in Robo...
 
Ingénierie dirigée par les modèles RTaW
Ingénierie dirigée par les modèles RTaWIngénierie dirigée par les modèles RTaW
Ingénierie dirigée par les modèles RTaW
 
Using SysML in a RTC-based Robotics Application : a case study with a demo
Using SysML in a RTC-based Robotics Application : a case study with a demoUsing SysML in a RTC-based Robotics Application : a case study with a demo
Using SysML in a RTC-based Robotics Application : a case study with a demo
 
Overview of RTaW SysML-Companion
Overview of RTaW SysML-Companion Overview of RTaW SysML-Companion
Overview of RTaW SysML-Companion
 
Louise Anderson - INCOSE CubeSat Challenge Team (SSWG): Developing a Model Ba...
Louise Anderson - INCOSE CubeSat Challenge Team (SSWG): Developing a Model Ba...Louise Anderson - INCOSE CubeSat Challenge Team (SSWG): Developing a Model Ba...
Louise Anderson - INCOSE CubeSat Challenge Team (SSWG): Developing a Model Ba...
 
System Engineering Project - Team 2
System Engineering Project - Team 2System Engineering Project - Team 2
System Engineering Project - Team 2
 
Introduction to SysML af Finn Overgaard Hansen, AU
Introduction to SysML af Finn Overgaard Hansen, AUIntroduction to SysML af Finn Overgaard Hansen, AU
Introduction to SysML af Finn Overgaard Hansen, AU
 
Automation of SysML Activity Diagram Simulation with Model-Driven Engineering...
Automation of SysML Activity Diagram Simulation with Model-Driven Engineering...Automation of SysML Activity Diagram Simulation with Model-Driven Engineering...
Automation of SysML Activity Diagram Simulation with Model-Driven Engineering...
 
Introduction à Sysml
Introduction à SysmlIntroduction à Sysml
Introduction à Sysml
 

Similaire à EXECUTABLE TITLE

UML: Once More with Meaning
UML: Once More with MeaningUML: Once More with Meaning
UML: Once More with MeaningEd Seidewitz
 
UML: This Time We Mean It!
UML: This Time We Mean It!UML: This Time We Mean It!
UML: This Time We Mean It!Ed Seidewitz
 
06-unit-iintrouml25sep2015-160901172758.pptx
06-unit-iintrouml25sep2015-160901172758.pptx06-unit-iintrouml25sep2015-160901172758.pptx
06-unit-iintrouml25sep2015-160901172758.pptxSindhu Mani
 
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015Luca Berardinelli
 
UNIFIED MODELING LANGUAGE
UNIFIED MODELING LANGUAGEUNIFIED MODELING LANGUAGE
UNIFIED MODELING LANGUAGERaval Chirag
 
Executable UML Roadmap (as of September 2014)
Executable UML Roadmap (as of September 2014)Executable UML Roadmap (as of September 2014)
Executable UML Roadmap (as of September 2014)Ed Seidewitz
 
Introduction To Uml
Introduction To UmlIntroduction To Uml
Introduction To Umlguest514814
 
xUMLFinalPresentation.ppt
xUMLFinalPresentation.pptxUMLFinalPresentation.ppt
xUMLFinalPresentation.pptssuser2ef938
 
Executable UML – UML2
Executable UML – UML2Executable UML – UML2
Executable UML – UML2elliando dias
 
What is UML (Unified Modeling Language)?
What is UML (Unified Modeling Language)?What is UML (Unified Modeling Language)?
What is UML (Unified Modeling Language)?Eliza Wright
 
Programming in UML: An Introduction to fUML 1.3 and Alf 1.1
Programming in UML: An Introduction to fUML 1.3 and Alf 1.1Programming in UML: An Introduction to fUML 1.3 and Alf 1.1
Programming in UML: An Introduction to fUML 1.3 and Alf 1.1Ed Seidewitz
 
SysML Tutorial
SysML TutorialSysML Tutorial
SysML TutorialTonex
 
Code Generation 2014 - ALF, the Standard Programming Language for UML
Code Generation 2014  - ALF, the Standard Programming Language for UMLCode Generation 2014  - ALF, the Standard Programming Language for UML
Code Generation 2014 - ALF, the Standard Programming Language for UMLJürgen Mutschall
 
Uml Omg Fundamental Certification 1
Uml Omg Fundamental Certification 1Uml Omg Fundamental Certification 1
Uml Omg Fundamental Certification 1Ricardo Quintero
 

Similaire à EXECUTABLE TITLE (20)

UML: Once More with Meaning
UML: Once More with MeaningUML: Once More with Meaning
UML: Once More with Meaning
 
UML: This Time We Mean It!
UML: This Time We Mean It!UML: This Time We Mean It!
UML: This Time We Mean It!
 
06-unit-iintrouml25sep2015-160901172758.pptx
06-unit-iintrouml25sep2015-160901172758.pptx06-unit-iintrouml25sep2015-160901172758.pptx
06-unit-iintrouml25sep2015-160901172758.pptx
 
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
 
UNIFIED MODELING LANGUAGE
UNIFIED MODELING LANGUAGEUNIFIED MODELING LANGUAGE
UNIFIED MODELING LANGUAGE
 
Executable UML Roadmap (as of September 2014)
Executable UML Roadmap (as of September 2014)Executable UML Roadmap (as of September 2014)
Executable UML Roadmap (as of September 2014)
 
l1_introuml.pdf
l1_introuml.pdfl1_introuml.pdf
l1_introuml.pdf
 
Introduction To Uml
Introduction To UmlIntroduction To Uml
Introduction To Uml
 
xUMLFinalPresentation.ppt
xUMLFinalPresentation.pptxUMLFinalPresentation.ppt
xUMLFinalPresentation.ppt
 
Apostila UML
Apostila UMLApostila UML
Apostila UML
 
Executable UML – UML2
Executable UML – UML2Executable UML – UML2
Executable UML – UML2
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Language
 
What is UML (Unified Modeling Language)?
What is UML (Unified Modeling Language)?What is UML (Unified Modeling Language)?
What is UML (Unified Modeling Language)?
 
Chapter1
Chapter1Chapter1
Chapter1
 
Programming in UML: An Introduction to fUML 1.3 and Alf 1.1
Programming in UML: An Introduction to fUML 1.3 and Alf 1.1Programming in UML: An Introduction to fUML 1.3 and Alf 1.1
Programming in UML: An Introduction to fUML 1.3 and Alf 1.1
 
SysML Tutorial
SysML TutorialSysML Tutorial
SysML Tutorial
 
3.UML Diagrams.pptx
3.UML Diagrams.pptx3.UML Diagrams.pptx
3.UML Diagrams.pptx
 
Uml1 concepts
Uml1 conceptsUml1 concepts
Uml1 concepts
 
Code Generation 2014 - ALF, the Standard Programming Language for UML
Code Generation 2014  - ALF, the Standard Programming Language for UMLCode Generation 2014  - ALF, the Standard Programming Language for UML
Code Generation 2014 - ALF, the Standard Programming Language for UML
 
Uml Omg Fundamental Certification 1
Uml Omg Fundamental Certification 1Uml Omg Fundamental Certification 1
Uml Omg Fundamental Certification 1
 

Plus de Ed Seidewitz

Leveraging Alf for SysML, Part 2: More Effective Trade Study Modeling
Leveraging Alf for SysML, Part 2: More Effective Trade Study ModelingLeveraging Alf for SysML, Part 2: More Effective Trade Study Modeling
Leveraging Alf for SysML, Part 2: More Effective Trade Study ModelingEd Seidewitz
 
Leveraging Alf for SysML, Part 1: Better Simulation Modeling
Leveraging Alf for SysML, Part 1: Better Simulation ModelingLeveraging Alf for SysML, Part 1: Better Simulation Modeling
Leveraging Alf for SysML, Part 1: Better Simulation ModelingEd Seidewitz
 
Precise Semantics Standards at OMG: Executing on the Vision
Precise Semantics Standards at OMG: Executing on the VisionPrecise Semantics Standards at OMG: Executing on the Vision
Precise Semantics Standards at OMG: Executing on the VisionEd Seidewitz
 
Model Driven Architecture without Automation
Model Driven Architecture without AutomationModel Driven Architecture without Automation
Model Driven Architecture without AutomationEd Seidewitz
 
Using Alf with Cameo Simulation Toolkit - Part 1: Basics
Using Alf with Cameo Simulation Toolkit - Part 1: BasicsUsing Alf with Cameo Simulation Toolkit - Part 1: Basics
Using Alf with Cameo Simulation Toolkit - Part 1: BasicsEd Seidewitz
 
Standards-Based Executable UML: Today's Reality and Tomorrow's Promise
Standards-Based Executable UML: Today's Reality and Tomorrow's PromiseStandards-Based Executable UML: Today's Reality and Tomorrow's Promise
Standards-Based Executable UML: Today's Reality and Tomorrow's PromiseEd Seidewitz
 
A Unified View of Modeling and Programming
A Unified View of Modeling and ProgrammingA Unified View of Modeling and Programming
A Unified View of Modeling and ProgrammingEd Seidewitz
 
UML as a Programming Language
UML as a Programming LanguageUML as a Programming Language
UML as a Programming LanguageEd Seidewitz
 
Essence: A Common Ground for Flexible Methods
Essence: A Common Ground for Flexible MethodsEssence: A Common Ground for Flexible Methods
Essence: A Common Ground for Flexible MethodsEd Seidewitz
 
Succeeding with Agile in the Federal Government: A Coach's Perspective
Succeeding with Agile in the Federal Government: A Coach's PerspectiveSucceeding with Agile in the Federal Government: A Coach's Perspective
Succeeding with Agile in the Federal Government: A Coach's PerspectiveEd Seidewitz
 
UML 2.5: Specification Simplification
UML 2.5: Specification SimplificationUML 2.5: Specification Simplification
UML 2.5: Specification SimplificationEd Seidewitz
 
Models, Programs and Executable UML
Models, Programs and Executable UMLModels, Programs and Executable UML
Models, Programs and Executable UMLEd Seidewitz
 
Architecting Your Enterprise
Architecting Your EnterpriseArchitecting Your Enterprise
Architecting Your EnterpriseEd Seidewitz
 
Programming in UML: Why and How
Programming in UML: Why and HowProgramming in UML: Why and How
Programming in UML: Why and HowEd Seidewitz
 

Plus de Ed Seidewitz (14)

Leveraging Alf for SysML, Part 2: More Effective Trade Study Modeling
Leveraging Alf for SysML, Part 2: More Effective Trade Study ModelingLeveraging Alf for SysML, Part 2: More Effective Trade Study Modeling
Leveraging Alf for SysML, Part 2: More Effective Trade Study Modeling
 
Leveraging Alf for SysML, Part 1: Better Simulation Modeling
Leveraging Alf for SysML, Part 1: Better Simulation ModelingLeveraging Alf for SysML, Part 1: Better Simulation Modeling
Leveraging Alf for SysML, Part 1: Better Simulation Modeling
 
Precise Semantics Standards at OMG: Executing on the Vision
Precise Semantics Standards at OMG: Executing on the VisionPrecise Semantics Standards at OMG: Executing on the Vision
Precise Semantics Standards at OMG: Executing on the Vision
 
Model Driven Architecture without Automation
Model Driven Architecture without AutomationModel Driven Architecture without Automation
Model Driven Architecture without Automation
 
Using Alf with Cameo Simulation Toolkit - Part 1: Basics
Using Alf with Cameo Simulation Toolkit - Part 1: BasicsUsing Alf with Cameo Simulation Toolkit - Part 1: Basics
Using Alf with Cameo Simulation Toolkit - Part 1: Basics
 
Standards-Based Executable UML: Today's Reality and Tomorrow's Promise
Standards-Based Executable UML: Today's Reality and Tomorrow's PromiseStandards-Based Executable UML: Today's Reality and Tomorrow's Promise
Standards-Based Executable UML: Today's Reality and Tomorrow's Promise
 
A Unified View of Modeling and Programming
A Unified View of Modeling and ProgrammingA Unified View of Modeling and Programming
A Unified View of Modeling and Programming
 
UML as a Programming Language
UML as a Programming LanguageUML as a Programming Language
UML as a Programming Language
 
Essence: A Common Ground for Flexible Methods
Essence: A Common Ground for Flexible MethodsEssence: A Common Ground for Flexible Methods
Essence: A Common Ground for Flexible Methods
 
Succeeding with Agile in the Federal Government: A Coach's Perspective
Succeeding with Agile in the Federal Government: A Coach's PerspectiveSucceeding with Agile in the Federal Government: A Coach's Perspective
Succeeding with Agile in the Federal Government: A Coach's Perspective
 
UML 2.5: Specification Simplification
UML 2.5: Specification SimplificationUML 2.5: Specification Simplification
UML 2.5: Specification Simplification
 
Models, Programs and Executable UML
Models, Programs and Executable UMLModels, Programs and Executable UML
Models, Programs and Executable UML
 
Architecting Your Enterprise
Architecting Your EnterpriseArchitecting Your Enterprise
Architecting Your Enterprise
 
Programming in UML: Why and How
Programming in UML: Why and HowProgramming in UML: Why and How
Programming in UML: Why and How
 

Dernier

What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 

Dernier (20)

What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 

EXECUTABLE TITLE

  • 1. Executable UML and SysML Ed Seidewitz
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8. Executable Modeling for Software Development The models are the source code. Using a standard-conforming UML modeling tool Using a standard-conforming UML execution tool How it works with executable models Architects validate the models by executing them in a simulated test environment Technologists specify the implementation platform The models are provisioned as executing artifacts on the target platform Architects create the models
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16. Hybrid SUV Operational States A state machine abstracts system behavior into a finite number of states. The system is modeled as having discrete transitions between the states. A transition may trigger further system behavior… … or system behavior may be dependent on the current state/
  • 17. “Accelerate” Activity An activity specifies behavior as the coordinated execution of a set of subordinate actions. An action in one activity may call another activity. Data and control flow between the various actions.
  • 18. “Provide Power” Activity Other actions provide various data and computational functions.
  • 19. “Proportion Power” Activity Full executability requires complete specification of all behavior and computation. However, after a certain level of detail, it is much more convenient to use a textual rather than graphical notation (whether mathematical constraints or procedural action language.)
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28. Semantics Composite Structure Semantics Complete Activity Model Semantics State Machine Semantics Non-Executable Model Semantics The semantics of fUML provide the foundation for formally specifying the (execution) semantics of the rest of UML. Some areas of UML (e.g., use case and requirements models) may not be best formalized based on an executable semantics foundation. Interaction Model Semantics Foundational Semantics fUML operational semantics are specified as an execution model written in fUML itself. Base Semantics The base semantics of the subset of fUML used in the execution model are specified using formal logic.
  • 29.
  • 30.
  • 31.
  • 32. Activities and Parameters An activity is a specification of behavior as the coordinated execution of subordinate actions, using a control and data flow model. An activity may have input, output and return parameters . The parameters have corresponding activity parameter node on the boundary of the diagrammatic representation of an activity.
  • 33. Actions and Flows An action is a fundamental unit of executable behavior within an activity. A pin is an activity node that either accepts input to or provides output from an action. An object flow provides a path for passing objects or data. A control flow specifies the sequencing of actions. An activity diagram is a graph structure consisting of activity nodes connected by activity edges.
  • 34. Textual Notation activity DoSomething(in input: Integer, out output Integer): Integer { output = A(input); return B(); } Alf behavioral notation maps to fUML activity models. The semantics of the Alf notation is defined by its mapping to fUML
  • 35. Tokens a = DoSomething(1, b); A token is a container for an object, datum or locus of control that may be present at an activity node. The activity is invoked with an argument of 1 for its input parameter. An object token with a value of 1 is placed on the input activity parameter node. The object token flows to the input pin of action A along the object flow. Action A fires and produces an object token on its output pin. The object token flows to the output activity parameter node along the object flow. When it is done, action A produces a control token, which flows to action B along the control flow. Action B accepts the control token and fires, producing an object token on its output pin. The object token flows to the output activity parameter node along the object flow. Values on the output activity parameter nodes are copied to the output arguments.
  • 36. Offers An output pin offers its tokens to the targets of all outgoing object flows. A single token can only flow to one target. If two competing targets are both ready to accept an offer for the same token, it is indeterminate which will get the token. Note: fUML semantics do not guarantee “liveliness” or “fairness” in the execution of actions competing for tokens. Actions with no control constraints execute concurrently. This means that they may execute in parallel – or they may execute sequentially in any order.
  • 37. Fork and Join Nodes order = 'Create Order'(); @parallel { 'Fulfill Order'(order); 'Invoice Order'(order); } 'Close Out Order'(order); A fork node copies the tokens it is offered, and offers a copy on each outgoing flow. A join node waits for a token to be offered on all incoming flows and then offers tokens on its outgoing flow. In the Alf textual notation, forks and joins are implicit in the parallel block notation. Note: Alf does not actually provide any notation for competition for tokens on output pins. A fork node is always inserted for multiple flows out of any output pin.
  • 38. Control Nodes An initial node generates a single control token. A merge node passes on any tokens it receives. A decision node routes tokens based on a decision input value. An activity final node terminates the activity when it receives a token. A control node is an activity node used to coordinate the flow of (the offers for) tokens between other nodes. Note: This construction is necessary so a “card” token is available for each iteration. Note: Since the decision node “gates” control flow, it must be provided with an incoming control token.
  • 39. Structured Nodes card = 'Select Credit Card'(); do { charge = 'Create Credit Card Charge'(card); if ('Check Charge Approval'(charge)) { declined = false; 'Notify Customer of Approval'(charge); } else { declined = true; 'Notify Customer of Denial'(charge); } } while (declined); A structured node is an activity node used to group subordinate nodes into a control structure. An loop node iterates the execution of its body while a condition is true. By default, the condition is tested after execution of the body. A conditional node executes one clause or another based on the result of a test (or tests). Inputs to the loop node initialize loop variables available across all iterations of the loop. Note: There is no normative UML graphical notation for loop or conditional nodes.
  • 40. Expansion Regions 'Get Outstanding Orders'(customer) -> select order ('Is Delinquent?'(order)) -> iterate order ('Refer for Collection'(order)); An expansion region is used to apply subordinate actions on all members of an input collection A parallel expansion region applies nested behavior concurrently to all collection elements. An iterative expansion region applies nested behavior sequentially to all collection elements. Alf provides specialized notation that maps to typical uses of expansion regions.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49. Classes and Attributes A class may have attributes whose types are primitive, data types or other classes. A referential attribute, whose type is a class, is conventionally notated as an association with a class-owned association end . A bidirectional association results in corresponding referential attributes on both associated classes.
  • 50. Data Types A data type is a classifier of transient data values whose identity is based on the values of their attributes. Data types may have attributes , but not operations.
  • 51.
  • 52. Classes: Operations and Methods An operation specifies a behavior that may be synchronously invoked on an instance of a class. A method defines that actual behavior that is invoked.
  • 53. Classes: Structural Semantics Structural semantics specify how a structural model constrains allowable instances. Objects are instances of classes with values for each attribute. Class-owned association ends are structural features with values, like attributes. fUML does not actually give semantics to an association with class-owned ends, only to the ends as structural features. Note: fUML does provide “reified” semantics for associations that own their own ends, as will be discussed later.
  • 54.
  • 55. Creating an Order order = new Order (customer, today) Before After @create public Order (customer: Customer, in datePlaced: Date) { this.datePlaced = datePlaced; this.totalAmount = new Money(dollars=>0, cents=>0); this.customer = customer; this.customer.orders->add(this); } A new object is created and the constructor operation is invoked. The constructor initializes the new order’s attribute values… … and adds the order to the customer’s list.
  • 56. Adding a Line Item Before After order.addProduct (product, 2) public addProduct (in product: Product, in quantity: Integer) { lineItem = new LineItem(product, quantity); this.lineItems->add(lineItem); this.totalAmount = MoneyFunctions::Add (this.totalAmount, lineItem.amount); } The method for the operation creates a new line item object… The addProduct operation is invoked on an existing Order object. … adds the new object to the list of line items for the order… … and updates the total order amount.
  • 57. Canceling an Order Before After order.cancel() @destroy public cancel() { this.customer.orders->remove(this); } A destructor operation is invoked, after which the order object is destroyed. Because line items are aggregated by composition, they are destroyed, too. References to the destroyed object must be explicitly removed.
  • 58.
  • 59. Classes and Associations An association (that owns its ends) is a classifier of persistent links between the associated classes, which exist in the extent of the association.
  • 60. Associations: Structural Semantics Links are now semantic instances of the indicated associations. Structural semantics specify how a structural model constrains allowable instance models.
  • 61.
  • 62. Creating an Order (revised) order = new Order (customer, today) Before After @create public Order (customer: Customer, in datePlaced: Date) { this.datePlaced = datePlaced; this.totalAmount = new Money(dollars=>0, cents=>0); Customer_Order->add(customer, this); } A single action creates a bidirectional link.
  • 63. Canceling an Order (revised) Before After order.cancel() @destroy public cancel() { } A destructor operation is invoked, after which the order object is destroyed. Links in which the destroyed object participates are now also automatically destroyed.
  • 64.
  • 65. Signals and Receptions A signal is a classifier whose instances may be communicated asynchronously. A reception is a declaration of the ability to receive a signal. A signal may have attributes that represent transmittable data. More than one class can receive the same signal.
  • 66. Classifier Behaviors An active class is one that has a classifier behavior. Only active class may receive signals. A classifier behavior is an autonomous behavior started when an active class is instantiated.
  • 67. Asynchronous Behavior accept (submission: SubmitCharge); card = submission.card; do { new CreditCardCharge(card, this); accept (response: ChargeApproved) { declined = false; this.customer.ChargeApproved(response.charge); } or accept (response: ChargeDeclined) { declined = true; this.customer.ChargeDeclined(response.charge); } while (declined); The order object accepts a signal to submit a charge. The order object creates a new credit card charge object, which begins its asynchronous behavior. Note: UML semantics require a separate action to start the behavior of a new object. However, Alf notation for creating an active class maps to both create and start object behavior actions. The order object accepts a signal from the charge object that the charge is approved. The order object sends a signal to the customer that the charge is approved.
  • 68.
  • 69. Boolean Functions Converts x to a Boolean value. Pre: (lower(x) = “true”) or (lower(x) = “false”) Post: if lower(x) = “true” then result = true else result = false endif Note: The notation “lower(x)” above is not intended to be an invocation of a Foundation Model Library primitive behavior but, rather, is intended to denote that value of the string x with any uppercase letters converted to the corresponding lowercase letters. ToBoolean(x: String): Boolean[0..1] Converts x to a String value. Post: if x then result = “true” else result = “false” endif ToString(x: Boolean): String True if x is false, or if x is true and y is true. Post: result = Not(x) Or (x And y) Implies(x: Boolean, y: Boolean): Boolean True is x is false. Post: if x then result = false else result = true endif Not(x: Boolean): Boolean True if both x and y are true. Post: if x then result = y else result = true endif And(x: Boolean, y: Boolean):Boolean True if either x or y is true, but not both. Post: result = (x Or y) And Not(x And y) Xor(x: Boolean, y: Boolean): Boolean True if either x or y is true. Post: if x then result = true else result = y endif Or(x: Boolean, y: Boolean): Boolean Description Function Signature
  • 70. Integer Functions Converts x to an Integer value. Pre: x has the form of a legal integer value ToInteger(x: String): Integer[0..1] Converts x to an UnlimitedNatural value. Pre: x >= 0 Post: ToInteger(result) = x ToUnlimitedNatural(x: Integer): UnlimitedNatural[0..1] Converts x to a String value. Post: ToInteger(result) = x ToString(x: Integer): String True if x is greater than or equal to y. Post: result = (x = y) Or (x > y) >=(Integer, Integer): Boolean True if x is less than or equal to y . Post: result = (x = y) Or (x < y) <=(Integer, Integer): Boolean True if x is greater than y. Post: result = Not(x <= y) >(x: Integer, y: Integer): Boolean True if x is less than y. <(x: Integer, y: Integer): Boolean The minimum of x and y. Post: if x <= y then result = x else result = y endif Min(x: Integer, y: Integer): Integer The maximum of x and y. Post: if x >= y then result = x else result = y endif Max(x: Integer, y: Integer): Integer The result is x modulo y. Post: result = x – (x Div y) * y Mod(x: Integer, y: Integer): Integer The number of times that y fits completely within x. Pre: y<>0 Post: if (x * y) >= 0 then ((result * y) <= x) And ((result+1) * y) >x) else ((Neg(result) * y) <= Neg(x)) And ((Neg(result)+1) * y) > Neg(x)) endif Div(x: Integer, y: Integer): Integer[0..1] The absolute value of x. Post: if x < 0 then result = Neg(x) else result = x endif Abs(x: Integer): Integer The value of the multiplication of x and y. Post: if y < 0 then result =Neg (x * Neg(y)) else if y = 0 then result = 0 else result = (x * (y-1)) + x endif endif *(x:Integer, y:Integer): Integer The value of the subtraction of x and y. Post: result + y = x -(x: Integer, y: Integer): Integer The value of the addition of x and y. +(x: Integer, y: Integer): Integer The negative value of x. Neg(x: Integer): Integer Description Function Signature
  • 71. Unlimited Natural Functions Converts x to an Integer value. Pre: (x has the form of a legal integer value) Or (x = “*”) Post: if x = “*” then result = unbounded else result = ToUnlimitedNatural(ToInteger(x)) ToUnlimitedNatural(x: String): Integer[0..1] Converts x to an Integer value. Pre: x <> unbounded ToInteger(x: UnlimitedNatural): Integer[0..1] Converts x to a String value. The value “unbounded” is represented by the string “*”. Post: ToUnlimitedNatural(result) = x ToString(x: UnlimitedNatural): String True if x is greater than or equal to y. Post: result = (x = y) Or (x > y) >=(UnlimitedNatural, UnlimitedNatural): Boolean True if x is less than or equal to y . Post: result = (x = y) Or (x < y) <=(UnlimitedNatural, UnlimitedNatural): Boolean True if x is greater than y. Post: result = Not(x <= y) >(x: UnlimitedNatural, y: UnlimitedNatural): Boolean True if x is less than y. Every value other than “unbounded” is less than “unbounded”. <(x: UnlimitedNatural, y: UnlimitedNatural): Boolean The minimum of x and y. Post: if x <= y then result = x else result = y endif Min(x: UnlimitedNatural, y: UnlimitedNatural): UnlimitedNatural The maximum of x and y. Post: if x >= y then result = x else result = y endif Max(x: UnlimitedNatural, y: UnlimitedNatural): UnlimitedNatural Description Function Signature
  • 72. String Functions The substring of x starting at character number lower , up to and including character number upper. Character numbers run from 1 to Size(x). Pre: (1 <= lower) And (lower <= upper) And (upper <= Size(x)) Substring(x: String, lower: Integer, upper: Integer): String[0..1] The number of characters in x. Size(x: String):Integer The concatenation of x and y . Post: (Size(result) = Size(x) + Size(y)) And (Substring(result, 1, Size(x)) = x) And (Substring(result, Size(x)+1, Size(result)) = y) Concat(x: String, y: String):String Description Function Signature
  • 75. Reading and Writing Lines activity ReadLine (out errorStatus: Status[0..1]): String { return StandardIntputChannel.allInstances().readLine(status); } activity WriteLine (in value: String, out errorStatus: Status[0..1]) { StandardOutputChannel.allInstances().writeLine(result, status); }
  • 76. Hello World activity Hello() { WriteLine(&quot;Hello World!&quot;); }
  • 77.
  • 78.
  • 79. A. SysML Semantics Composite Structure Semantics Complete Activity Model Semantics State Machine Semantics Non-Executable Model Semantics Interaction Model Semantics Foundational Semantics SysML also defines a profile consisting of stereotypes used to tag standard UML model elements to give them SysML-specialized meaning. SysML is base on a UML subset that does not include all of fUML (e.g., it does not include structured activity nodes), but it includes capabilities not in fUML (e.g., composite structure, state machines, streaming, etc.) UML for SysML
  • 80.
  • 81.
  • 82. Execution without Streaming … [execute] Activity ProvidePower completed. [addToken] node = out drivePower [addToken] node = out drivePower [addToken] node = out transModeCmd [receiveOffer] node = drivePower [fire] Output activity parameter node drivePower... [addToken] node = drivePower [removeToken] node = out drivePower [addToken] node = drivePower [removeToken] node = out drivePower [receiveOffer] node = transModeCmd [fire] Output activity parameter node transModeCmd... [addToken] node = transModeCmd [removeToken] node = out transModeCmd [execute] Activity Accelerate... [run] Node MeasureVehicleConditions is enabled. [run] Node PushAccelerator is enabled. [run] Sending offer to node MeasureVehicleConditions. [fire] Action MeasureVehicleConditions... [execute] Activity MeasureVehicleConditions... … [execute] Activity MeasureVehicleConditions completed. [addToken] node = out vehCond [receiveOffer] node = ProvidePower [run] Sending offer to node PushAccelerator. [receiveOffer] node = PushAccelerator [fire] Action PushAccelerator... [addToken] node = out accelPosition [receiveOffer] node = ProvidePower [addToken] node = in accelPosition [removeToken] node = out accelPosition [addToken] node = in vehCond [removeToken] node = out vehCond [fire] Action ProvidePower... [execute] Activity ProvidePower... output parameter 'drivePower' has 2 value(s) value[0] = Reference to (Object_@130be8c: GasPower throttle = 6) value[1] = Reference to (Object_@12df081: ElecPower current = 3) output parameter 'transModeCmd' has 1 value(s) value[0] = Reference to (Object_@108d3eb: TransmissionModeCommand) The execution of the activity is shown by its execution trace. Based on the sample activity in Annex B.4.8.1 of the SysML Specification
  • 83. Execution with streaming … [fire] Action ProvidePower... [execute] Activity ProvidePower... … [addToken] node = out drivePower [receiveOffer] node = drivePower [fire] Output activity parameter node drivePower... [addToken] node = drivePower [removeToken] node = out drivePower output parameter 'drivePower' posts 1 value(s) value[0] = Reference to (Object_@130be8c: GasPower throttle = 6) … [addToken] node = out transModeCmd [receiveOffer] node = transModeCmd [fire] Output activity parameter node transModeCmd... [addToken] node = transModeCmd [removeToken] node = out transModeCmd output parameter 'transModeCmd' posts 1 value(s) value[0] = Reference to (Object_@108d3eb: TransmissionModeCommand) … … [addToken] node = out drivePower [receiveOffer] node = drivePower [fire] Output activity parameter node drivePower... [addToken] node = drivePower [removeToken] node = out drivePower output parameter 'drivePower' posts 1 value(s) value[0] = Reference to (Object_@12df081: ElecPower current = 3) ProvidePower is still executing at this point…
  • 84.
  • 85. Execution with timing [fire] Action MeasureVehicleConditions… [execute] Activity MeasureVehicleConditions… … [addToken] node = out vehCond … [fire] Action PushAccelerator... [execute] Activity PushAccelerator… … [addToken] node = out accelPosition … [fire] Action ProvidePower... [execute] Activity ProvidePower... … [addToken] node = out drivePower A duration constraint on the duration between the firing of the action and the placing of tokens on its output pin. 2 sec 1 sec 3 sec Duration t = 0 t = 2 t = 2 t = 3 t = 3 t = 6 Sequential execution t = 0 t = 2 t = 0 t = 1 t = 2 t = 5 Parallel execution
  • 86.
  • 87.
  • 88. Allocating Activities to Blocks Flows across partitions define interfaces between blocks
  • 89. Allocated Block Structure An internal block diagram shows the composite structure of the Power Subsystem. Each component block has behavior as allocated from the activity model. Connections between flow ports on the blocks are derived from flows that cross partition boundaries.
  • 90.
  • 91.
  • 92.
  • 93. Models A model makes statements in a modeling language about a system under study. First order statements “ There is a person whose name is Jack.” ” There is a house. The person is the owner of the house.” Second order statements “ Every person has a name.” “ Some people own houses.” UML Instance Model UML Class Model
  • 94.
  • 95. Denotational Mapping evaluate(specification: ValueSpecification): Value Abstract Syntax Element (Representation) Semantic Model Element (Interpretation)
  • 96. Abstract Syntax: Value Specifications
  • 100. Semantics: Extensional Values There are concepts in the semantic model that have no explicit representation in the abstract syntax.
  • 103. Semantics: Activities Additional semantic concepts have specifically to do with dynamic behavior.
  • 108.
  • 109.

Notes de l'éditeur

  1. Basic actions