P
US9268622B2ActiveUtilityPatentIndex 54

Message-based model verification

Assignee: MOORE ALAN JPriority: May 28, 2010Filed: May 27, 2011Granted: Feb 23, 2016
Est. expiryMay 28, 2030(~3.9 yrs left)· nominal 20-yr term from priority
Inventors:MOORE ALAN JMESTCHIAN EBRAHIM MEHRAN
G06F 8/34G06F 9/546
54
PatentIndex Score
1
Cited by
50
References
35
Claims

Abstract

A system and method may generate executable block diagrams having blocks that run in accordance with message-based execution semantics. A message may include an input data payload that does not change over time, and the message may persist for only a determined time interval during execution of block diagram. A verification engine may provide one or more tools for evaluating and verifying operation of message-based blocks. The verification engine may support one or more verification blocks that may be added to the block diagram and associated with the diagram's message-based blocks. The verification blocks may capture and present messages exchanged among the message-based blocks. The verification blocks may also specify an expected interaction of messages, and determine whether the actual messages are equivalent to the expected interaction.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A computer-implemented method comprising:
 accessing, from a memory, an executable block diagram, at least a portion of the executable block diagram having message-based execution semantics, the at least a portion of the executable block diagram
 including a plurality of interconnected message-based blocks, where the message-based blocks send and receive messages during execution of the block diagram, the messages
 including payloads that remain fixed while the messages travel between respective pairs of the interconnected message-based blocks, and 
 persisting for determined execution time intervals, the determined execution time intervals, during which the messages persist, being defined time periods occurring within a simulation time of the executable block diagram that starts with an execution start time and ends with an execution stop time of the block diagram; 
 
 
 adding an observer block to the executable block diagram, the observer block configured to observe one or more of the messages generated by the message-based blocks; 
 executing, by a processor coupled to the memory, the at least a portion of the executable block diagram, the executing producing information associated with the one or more messages being observed by the observer block; and 
 presenting, on a display coupled to the processor, the information associated with the one or more messages being observed by the observer block during the executing of the executable block diagram. 
 
     
     
       2. The computer-implemented method of  claim 1  further comprising:
 receiving, for the observer block, a configuration of the one or more messages to be observed by the observer block through either
 a dialog box associated with the observer block, or 
 a command line Application Programming Interface (API). 
 
 
     
     
       3. The computer-implemented method of  claim 1  further comprising:
 connecting the observer block to one or more of the message-based blocks, the connecting providing a visual indication in the block diagram of the one or more messages to be observed by the observer block. 
 
     
     
       4. The computer-implemented method of  claim 3  wherein the observer block is connected to the one or more of the message-based blocks:
 graphically, 
 textually, or 
 a combination of graphically and textually. 
 
     
     
       5. The computer-implemented method of  claim 1  wherein the information associated with the one or more messages is one or more of:
 an identifier of a message source block, 
 an identifier of one or more message destination blocks, 
 a message payload, 
 a message type, 
 a time sent of a message, and 
 a time received of a message. 
 
     
     
       6. The computer-implemented method of  claim 1  wherein the payload of a message includes input data, the method further comprising:
 receiving a given message by a destination message-based block during execution of the block diagram; and 
 processing, by the destination message-based block, the input data included in the payload of the received given message to produce one or more results. 
 
     
     
       7. A computer-implemented method comprising:
 accessing, from a memory, an executable block diagram, at least a portion of the executable block diagram having message-based execution semantics, the at least a portion of the executable block diagram
 including a plurality of interconnected message-based blocks, where the message-based blocks send and receive messages during execution of the block diagram, the messages
 including payloads that remain fixed while the messages travel between respective pairs of the interconnected message-based blocks, and 
 persisting for determined execution time intervals, the determined execution time intervals, during which the messages persist, being defined time periods occurring within a simulation time of the executable block diagram that starts with an execution start time and ends with an execution stop time of the block diagram; 
 
 
 adding a message source block to the executable block diagram, the message source block configured to generate one or more predetermined messages at one or more predetermined times during execution of the block diagram to verify at least a part the block diagram; 
 configuring one or more of the message-based blocks of the executable block diagram to receive the one or more predetermined messages generated by the message source block during execution of the block diagram; and 
 executing, by a processor coupled to the memory, the at least a portion of the executable block diagram, where the one or more predetermined messages are
 generated by the message source block, and 
 received by the one or more message-based blocks of the executable block diagram. 
 
 
     
     
       8. The computer-implemented method of  claim 7  wherein the one or more message-based blocks configured to receive the one or more predetermined messages generated by the message source block execute in response to receiving the one or more predetermined messages. 
     
     
       9. The computer-implemented method of  claim 8  wherein the one or more predetermined messages include a predetermined payload including input data, the method further comprising:
 processing the input data included in the payload of the one or more predetermined messages by the one or more message-based blocks upon receiving the one or more predetermined messages. 
 
     
     
       10. A computer-implemented method comprising:
 accessing, from a memory, an executable block diagram, at least a portion of the executable block diagram having message-based execution semantics, the at least a portion of the executable block diagram
 including a plurality of interconnected message-based blocks, where the message-based blocks send and receive messages during execution of the block diagram, the messages
 including payloads that remain unchanged while the messages are exchanged between respective pairs of the interconnected message based-blocks, and 
 persisting for determined execution time intervals, the determined execution time intervals, during which the messages persist, being defined time periods occurring within a simulation time of the executable block diagram that starts with an execution start time and ends with an execution stop time of the block diagram; 
 
 
 adding a message sink block to the executable block diagram, the message sink block configured to receive one or more messages generated by a selected one of the message-based blocks of the block diagram during execution of the block diagram to verify at least a part of the block diagram; 
 executing, by a processor coupled to the memory, the at least a portion of the executable block diagram, the executing producing information associated with the one or more messages generated by the selected message-based block; and 
 presenting, on a display coupled to the processor, the information associated with the one or more messages received by the message sink block during the executing of the executable block diagram. 
 
     
     
       11. The computer-implemented method of  claim 10  wherein the information associated with the one or more messages is at least one of:
 an identifier of a message source block, 
 a message payload, 
 a message type, 
 a time sent of a message, and 
 a time received of a message. 
 
     
     
       12. A computer-implemented method comprising:
 accessing, from a memory, an executable block diagram, at least a portion of the executable block diagram having message-based execution semantics, the at least a portion of the executable block diagram
 including a plurality of interconnected message-based blocks, where the message-based blocks send and receive messages during execution of the block diagram, the messages
 including payloads that remain fixed while the messages travel between respective pairs of the interconnected message-based blocks, and 
 persisting for determined execution time intervals, the determined execution time intervals, during which the messages persist, being defined time periods occurring within a simulation time of the executable block diagram that starts with an execution start time and ends with an execution stop time of the block diagram; 
 
 
 adding a scenario block to the executable block diagram, the scenario block configured with one or more expected messages, and further configured to receive one or more actual messages generated by at least one of the message-based blocks in the block diagram; 
 executing, by a processor coupled to the memory, the block diagram; 
 comparing, by the scenario block, the one or more actual messages received by the scenario block with the one or more expected messages with which the scenario block is configured; and 
 generating, by the scenario block, an alert if the one or more actual messages are not equivalent to the one or more expected messages. 
 
     
     
       13. The computer-implemented method of  claim 12  wherein the scenario block is configured with a plurality of expected messages and an expected order of the plurality of expected messages, the method further comprising:
 generating the alert if an order of the actual messages is not equivalent to the expected order. 
 
     
     
       14. The computer-implemented method of  claim 13  wherein the expected order is a sequential order. 
     
     
       15. The computer-implemented method of  claim 12  wherein the scenario block is configured with a plurality of expected messages and an expected set of arrival times for the plurality of expected messages, the method further comprising:
 generating the alert if one or more arrival times of the actual messages is not equivalent to the expected set of arrival times. 
 
     
     
       16. A computer-implemented method comprising:
 accessing, from a memory, an executable block diagram, at least a portion of the executable block diagram having message-based semantics, the at least a portion of the executable block diagram
 including a plurality of interconnected message-based blocks, where the message-based blocks send and receive messages during execution of the block diagram, the messages
 including payloads that remain unchanged while the messages are exchanged between respective pairs of the interconnected message-based blocks, and 
 persisting for determined execution time intervals, the determined execution time intervals, during which the messages persist, being defined time periods occurring within a simulation time of the executable block diagram that starts with an execution start time and ends with an execution stop time of the block diagram; 
 
 
 adding a scenario block to the executable block diagram, the scenario block configured with one or more expected messages, and further configured to receive one or more actual messages generated by at least one of the message-based blocks in the block diagram; 
 executing, by a processor coupled to the memory, the block diagram; 
 comparing, by the scenario block, the one or more actual messages received by the scenario block with the one or more expected messages with which the scenario block is configured; and 
 if the one or more actual messages is not equivalent to the one or more expected messages, generating, by the scenario block, a trace of the one or more actual messages. 
 
     
     
       17. The computer-implemented method of  claim 16  further comprising:
 generating an additional scenario block, the additional scenario block configured with the one or more actual messages received by the scenario block; and 
 adding the additional scenario block to the executable block diagram. 
 
     
     
       18. One or more non-transitory computer-readable media comprising program instructions, the program instructions when executed by a processing element operable to:
 access, from a memory, an executable model, at least a portion of the executable model having message-based execution semantics, the at least a portion of the executable model
 including a plurality of interconnected message-based objects, where the message-based objects are configured to send and receive messages during execution of the model, the messages
 including payloads that remain unchanged while the messages are exchanged between respective pairs of the interconnected message-based objects, and 
 persisting for determined model execution time intervals, the determined model execution time intervals, during which the messages persist, being defined time periods occurring within a simulation time of the executable model that starts with an execution start time and ends with an execution stop time of the model; 
 
 
 add an observer block to the model, the observer block configured to
 observe one or more of the messages generated by the message-based objects, and 
 display information associated with the one or more messages being observed by the observer block during execution of the model; 
 
 execute, by a processor coupled to the memory, the model, producing the information; and 
 present, on a display coupled to the processor, the information associated with the one or more messages being observed by the observer block. 
 
     
     
       19. The one or more non-transitory computer-readable media of  claim 18  wherein the information displayed by the observer block is at least one of:
 an identifier of a message source object, 
 an identifier of one or more message destination objects, 
 a message payload, 
 a message type, 
 a time sent of a message, and 
 a time received of a message. 
 
     
     
       20. One or more non-transitory computer-readable media comprising program instructions, the program instructions when executed by a processing element operable to:
 access, from a memory, an executable model, at least a portion of the executable model having message-based execution semantics, the at least a portion of the executable model
 including a plurality of interconnected message-based objects, where the message-based objects are configured to send and receive messages during execution of the model, the messages
 including payloads that remain unchanged while the messages are exchanged between respective pairs of the interconnected message-based objects, and 
 persisting for determined model execution time intervals, the determined model execution time intervals, during which the messages persist, being defined time periods occurring within a simulation time of the executable model that starts with an execution start time and ends with an execution stop time of the model; 
 
 
 add a message source block to the model, the message source block configured to generate one or more test messages at one or more predetermined times during execution of the model to verify at least a part of the model; and 
 configure, by a processor coupled to the memory, one or more of the message-based objects of the model to receive the one or more test messages generated by the message source block during execution of the model. 
 
     
     
       21. The one or more non-transitory computer-readable media of  claim 20  wherein the model represents a system and execution of the model simulates operation of the system. 
     
     
       22. The one or more non-transitory computer-readable media of  claim 20  wherein the one or more message-based objects configured to receive the one or more test messages generated by the message source block execute in response to receiving the one or more test messages. 
     
     
       23. The one or more non-transitory computer-readable media of  claim 22  wherein the one or more test messages include a predetermined payload including input data, the program instructions further operable to:
 process the input data included in the payload of the one or more test messages by the one or more message-based objects upon receiving the one or more test messages. 
 
     
     
       24. One or more non-transitory computer-readable media comprising program instructions, the program instructions when executed by a processing element operable to:
 access, from memory, an executable model, at least a portion of the executable model having message-based execution semantics, the at least a portion of the executable model
 including a plurality of interconnected message-based objects, where the message-based objects are configured to send and receive messages during execution of the model, the messages
 including payloads that remain fixed while the messages travel between respective pairs of the interconnected message-based objects, and 
 persisting for determined model execution time intervals, the determined model execution time intervals, during which the messages persist, being defined time periods that occur within a simulation time of the executable model that starts with an execution start time and ends with an execution stop time of the model; 
 
 
 add a message sink block to the model, the message sink block configured to receive one or more messages generated by a selected one of the message-based objects of the model during execution of the model to verify at least a part of the model; and 
 display, by a processor coupled to the memory, information from the one or more messages received by the message sink block during execution of the model. 
 
     
     
       25. One or more non-transitory computer-readable media comprising program instructions, the program instructions when executed by a processing element operable to:
 access, from a memory, an executable model, at least a portion of the executable model having message-based execution semantics, the at least a portion of the executable model
 including a plurality of interconnected message-based objects, where the message-based objects are configured to send and receive messages during execution of the model, the messages
 including payloads that remain unchanged while the messages are exchanged between respective pairs of the interconnected message-based objects, and 
 persisting for determined model execution time intervals, the determined model execution time intervals, during which the messages persist, being defined time periods occurring within a simulation time of the executable model that starts with an execution start time and ends with an execution stop time of the model; 
 
 
 add, by a processor coupled to the memory, a scenario block to the model, the scenario block configured with one or more expected messages, and further configured to receive one or more actual messages generated by at least one of the message-based objects in the model; 
 compare, through execution of the scenario block by the processor, the one or more actual messages received by the scenario block with the one or more expected messages with which the scenario block is configured; and 
 generate, through execution of the scenario block by the processor, an alert if the one or more actual messages is different from the one or more expected messages. 
 
     
     
       26. The one or more non-transitory computer-readable media of  claim 25  wherein the scenario block is configured with a plurality of expected messages and an expected order of the plurality of expected messages, the one or more non-transitory computer-readable media further comprising program instructions to:
 generate the alert if an order of the actual messages is not equivalent to the expected order. 
 
     
     
       27. The one or more non-transitory computer-readable media of  claim 25  wherein a difference between the one or more actual messages and the one or more expected messages is at least one of:
 a value of the payload of the one or more actual messages; 
 a type of message; and 
 a time of generation of the one or more actual messages. 
 
     
     
       28. An apparatus comprising:
 a memory including an executable model, at least a portion of the executable model having message-based execution semantics, the at least a portion of the executable model
 including a plurality of interconnected message-based objects, the message-based objects configured to send and receive messages during execution of the model, the messages
 including payloads that remain unchanged while the messages are exchanged between respective pairs of the interconnected message-based objects, and 
 persisting for determined model execution time intervals, the determined model execution time intervals, during which the messages persist, being defined time periods occurring within a simulation time of the executable model that starts with an execution start time and ends with an execution stop time of the executable model; and 
 
 
 a processor coupled to the memory, the processor configured to:
 add an observer block to the executable model, the observer block configured to observe one or more of the messages generated by the message-based objects, and 
 display information from the one or more messages being observed by the observer block during execution of the model. 
 
 
     
     
       29. The apparatus of  claim 28  wherein the displayed information is one or more of:
 an identifier of a message source block, 
 an identifier of one or more message destination blocks, 
 a message payload, 
 a message type, 
 a time sent of a message, and 
 a time received of a message. 
 
     
     
       30. An apparatus comprising:
 a memory including an executable model, at least a portion of the executable model having message-based execution semantics, the at least a portion of the executable model
 including a plurality of interconnected message-based objects, the message-based objects configured to send and receive messages during execution of the model, the messages
 including payloads that remain fixed while the messages travel between respective pairs of the interconnected message-based objects, and 
 persisting for determined model execution time intervals, the determined model execution time intervals, during which the messages persist, being defined time periods occurring within a simulation time of the executable model that starts with an execution start time and ends with an execution stop time of the model; and 
 
 
 a processor coupled to the memory, the processor configured to:
 add a message source block to the model, the message source block configured to generate one or more test messages at one or more predetermined times during execution of the model to verify at least a part of the model; and 
 configure one or more of the message-based objects of the model to receive the one or more test messages generated by the message source block during execution of the model. 
 
 
     
     
       31. The apparatus of  claim 30  wherein the one or more message-based objects configured to receive the one or more test messages generated by the message source block execute in response to receiving the one or more test messages. 
     
     
       32. The apparatus of  claim 31  wherein the one or more test messages include a predetermined payload including input data, the processor further configured to:
 process the input data included in the payload of the one or more test messages by the one or more message-based objects upon receiving the one or more test messages. 
 
     
     
       33. An apparatus comprising:
 a memory including an executable model, at least a portion of the executable model having message-based execution semantics, the at least a portion of the executable model
 including a plurality of interconnected message-based blocks, the message-based blocks configured to send and receive messages during execution of the model, the messages
 including payloads that remain fixed while the messages travel between respective pairs of the interconnected message-based blocks, and 
 persisting for determined model execution time intervals, the determined model execution time intervals, during which the messages persist, being defined time periods occurring within a simulation time of the executable model that starts with an execution start time and ends with an execution stop time of the model; and 
 
 
 a processor coupled to the memory, the processor configured to:
 add a scenario block to the model, the scenario block configured with one or more expected messages, and further configured to receive one or more actual messages generated by at least one of the message-based blocks during execution of the model; 
 compare the one or more actual messages received by the scenario block during execution of the model with the one or more expected messages with which the scenario block is configured; and 
 if the one or more actual messages is not equivalent to the one or more expected messages, generate a trace of the one or more actual messages. 
 
 
     
     
       34. The apparatus of  claim 33  wherein the scenario block is configured with a plurality of expected messages and an expected order of the plurality of expected messages, the processor further configured to:
 generate an alert if an order of the actual messages is not equivalent to the expected order. 
 
     
     
       35. The apparatus of  claim 33  wherein the scenario block is configured with a plurality of expected messages and an expected set of arrival times for the plurality of expected messages, the processor further configured to:
 generate an alert if one or more arrival times of the actual messages is not equivalent to the expected set of arrival times.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.