diff --git a/models/Application_examples/Application_Process.mp b/models/Application_examples/Application_Process.mp index f7bbc77ff52c360322191fc0e767022b4882a1f3..cdb1bcef39f4d38298ccfaed215cdcb1640422e5 100644 --- a/models/Application_examples/Application_Process.mp +++ b/models/Application_examples/Application_Process.mp @@ -1,5 +1,7 @@ /* Model of Application Process +Created by Mikhail Auguston in 2018 + Purpose: To provide a template for an application approval process involving multiple levels of approval. diff --git a/models/Application_examples/Aspect_Oriented_Paradigm.mp b/models/Application_examples/Aspect_Oriented_Paradigm.mp index 63c36459f1aa6072b21365baf8ad894483280cb0..3813144b17705952dae925ca1b63e1d3f0aac8bd 100644 --- a/models/Application_examples/Aspect_Oriented_Paradigm.mp +++ b/models/Application_examples/Aspect_Oriented_Paradigm.mp @@ -1,5 +1,7 @@ /* Model of Aspect Oriented Paradigm +Created by Mikhail Auguston in 2018 + Purpose: To demonstrate the Aspect-Oriented Programming paradigm in MP. @@ -17,8 +19,8 @@ The COORDINATE operation in MP supports a "cause-effect" refinement for the behavior of two components and it bears a certain similarity to the AOP paradigm. For example, an AOP pattern could be modeled in an MP schema where event -coordination implements AOP join point -and advice coordination. +coordination implements AOP join point and advice +coordination. Suppose that the main stream of execution (Main) contains calls to methods M1 and M2 as join points, and the aspect diff --git a/models/Application_examples/Authentication.mp b/models/Application_examples/Authentication.mp index 8f24f86ea673bcd29fd62191d7991902ff99445e..276ac8e5dc7c9764f637c5dc31cf7ef28ff07f7c 100644 --- a/models/Application_examples/Authentication.mp +++ b/models/Application_examples/Authentication.mp @@ -1,10 +1,8 @@ /* Model of Authentication -Created by Kristin Giammarco on the 16th of May, 2017. -Modified by Kristin Giammarco on the 7th of August, 2017 - to add capitalization to state events. -Modified by Kristin Giammarco on the 7th of August, 2017 - to add ENSURE constraints. +Created by Kristin Giammarco on 2017-05-16. +Modified by Kristin Giammarco on 2017-08-07 to add + capitalization to state events and ENSURE constraints. Edited by Keane Reynolds in July, 2021. Edited by Pamela Dyer in July and August, 2021. @@ -16,13 +14,20 @@ a simple user authentication system with ENSURE statements. ENSURE statements in this model are used to lock the account if 3 or more incorrect passwords are input, and guarantee that the account will not be locked if a correct password is -input within the maximum number of attempts. This provides a -maximum and prevents unwanted traces (ex. correct password -leading to lock account), demonstrating how users can remove -unwanted traces in their models using ENSURE. +input within the maximum number of attempts. These +constraints provide a maximum number of allowable attempts +and prevent unwanted traces (ex. correct password leading to +lock account), respectively. The model demonstrates how users +can remove unwanted traces in their models using ENSURE. References: +Giammarco, Kristin. (2017). “Practical Modeling Concepts for + Engineering Emergence in Systems of Systems.†In + Proceedings of the 12th Annual System of Systems Engineering + Conference, IEEE, pp. 1-6. + https://ieeexplore.ieee.org/abstract/document/7994977 + Search terms: behavior, authentication system; coordination, event; ENSURE condition; event sharing diff --git a/models/Application_examples/Autonomous_Car.mp b/models/Application_examples/Autonomous_Car.mp index 1d6b92e6383752c2db8b070fab2de0361d0c7008..973b895c506231168a5252540f94b146eb3d675b 100644 --- a/models/Application_examples/Autonomous_Car.mp +++ b/models/Application_examples/Autonomous_Car.mp @@ -3,27 +3,33 @@ Created by Gregory Kaminski in November, 2015. Edited by Keane Reynolds in July, 2021. Edited by Pamela Dyer in July and August, 2021. +Edited by Kristin Giammarco in September, 2021. Purpose: To illustrate the use of COORDINATE statements to improve the quality of trace analysis. Description: This is a model of an autonomous car that -was used to support a failure mode analysis of autonomous -automobile technology (student project). It applies -COORDINATE statements to link the content under the roots -"Car" and "User" together. This is important as, without -the COORDINATE statements, the events under each root are -random and confusing, making understanding the traces much -more difficult. Users should keep this in mind and use -COORDINATE statements in their models to improve clarity. +was developed as part of a student project to support a +failure mode analysis of autonomous automobile technology. +It applies COORDINATE statements to add dependencies +between the events within the roots "Car" and "User". +Without the COORDINATE statements, the event traces +produce invalid or erroneous combinations of events from +different roots, such as the car behaving as if it had +arrived at its destination when in fact it had not. References: Search terms: behavior, autonomous car; autonomous; failure mode analysis; coordination, event -Instructions: Run for Scope 1. - Scope 1: 8 traces in less than 1 sec. +Instructions: Run for Scope 1. Inspect the traces, then + remove one or more of the constraints. Run again, and + inspect the traces for potential invalid or erroneous + behaviors. + + Scope 1: 8 traces in less than 1 sec. (with all + constraints) ==========================================================*/ diff --git a/models/Application_examples/Beginner_Use_of_MP.mp b/models/Application_examples/Beginner_Use_of_MP.mp index 1b52f889bb638eb1d715ecb714ddb735094eb7d8..3091bc87e4b1d4f81b8ab753aea16b0457dc1518 100644 --- a/models/Application_examples/Beginner_Use_of_MP.mp +++ b/models/Application_examples/Beginner_Use_of_MP.mp @@ -1,26 +1,23 @@ /* Model of Beginner Use of MP -Created by Kristin Giammarco on the 8th of February, 2021. +Created by Kristin Giammarco on 2021-02-08. Edited by Keane Reynolds in July, 2021. Edited by Pamela Dyer in July and August, 2021. +Edited by Kristin Giammarco in September, 2021. -Purpose: To use traces to provide a simple example of -how to use MP-Firebird as a beginner. +Purpose: To provide a simple example of 1) the operational +process of using MP-Firebird as a beginner, and 2) the +modeling process of formalizing a previously unstated +assumption. Description: This model provides an orientation for those -just getting started using MP-Firebird. This text editor +just getting started using MP-Firebird. The text editor pane allows you to compose and edit code in the high-level MP language. Press the Run button to generate event traces from the code, then inspect the results in the center pane. Use the far right pane to navigate the resulting traces. Use the scope slider bar next to the Run button to control -the number of loop iterations. This model incorporates -COORDINATE, ENSURE, and IF-THEN-ELSE statements, so -beginner users will want to look at the whole model to -learn about all of these statements, while more -experienced users can skip to the parts that are more -relevant to their specific goals. See the instructions -section for additional advice. +the number of loop iterations. ROOT A: B C; A is a root event that includes events B followed by C @@ -36,11 +33,8 @@ trace annotation; SAY statement Instructions: Run for Scopes 1 and up. You may also make changes to this model and run it with your changes. Save -your model using the EXPORT button ("Code" exports a .mp -text file of the contents of the text editor, and "Code -and Event Trace" exports the contents of the text editor -plus the graphs and any changes you made to the graph -element positions). +your model using the EXPORT button. + Scope 1: 2 traces in less than 1 sec. Scope 2: 3 traces in less than 1 sec. Scope 3: 4 traces in less than 1 sec. diff --git a/models/Application_examples/CargoScreening.mp b/models/Application_examples/CargoScreening.mp index e4daf917c72488f6b89baf0019f342c31c054b97..b3184e10afb4031920ab82e62fe2d49e38c17dce 100644 --- a/models/Application_examples/CargoScreening.mp +++ b/models/Application_examples/CargoScreening.mp @@ -1,7 +1,6 @@ /* Model of Cargo Screening -Draft written by Mikhail Auguston on the 6th of May, 2011 - (NPS, Monterey, CA). +Created by Mikhail Auguston on 2011-05-06 Edited by Keane Reynolds in July, 2021. Edited by Pamela Dyer in July and August, 2021. @@ -17,10 +16,10 @@ these actions, but use composite statements when one action leads to several more. An error that was found was that the original flowchart does -not specify what happens if selection_has_not_been_accepted, +not specify what happens if selection_has_not_been_accepted; I've added PhysicalExamination and AnomalyResolution as a -follow-up, but this scenario should be approved by -the customer. +possible follow on events in this case but this scenario +should be approved by the customer. MP-Firebird may be used at least for the following: - generate all possible scenarios and inspect them manually, @@ -39,15 +38,6 @@ Uncertain (OIG-10-52)." Office of Inspector General, Department of Homeland Security. February 3, 2010. https://www.oig.dhs.gov/assets/Mgmt/OIG_10-52_Feb10.pdf - -**** Remove this part **** -Department of Homeland Security -Ofï¬ce of Inspector General -CBP's Container Security Initiative Has -Proactive Management and Oversight but Future Direction -Is Uncertain OIG-10-52 February 2010 -******** - Search terms: behavior, cargo screening process; graph, flowchart