Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
Preloaded Examples
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Monterey Phoenix
MP Model Collection
Preloaded Examples
Commits
26d7fa37
Commit
26d7fa37
authored
3 years ago
by
Giammarco, Kristin M
Browse files
Options
Downloads
Patches
Plain Diff
Upload New File
parent
3cb7e02b
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
models/Application_examples/Agile_Production_Platform_Customer_Interactions.mp
+300
-0
300 additions, 0 deletions
...amples/Agile_Production_Platform_Customer_Interactions.mp
with
300 additions
and
0 deletions
models/Application_examples/Agile_Production_Platform_Customer_Interactions.mp
0 → 100644
+
300
−
0
View file @
26d7fa37
/***********************************************************************************
Agile_Production_Platform_Customer_Interactions
created collaboratively in Teams by K.Giammarco, M. Collins and E.Griffor 08-20-2020
modified collaboratively in Teams by K.Giammarco and J.Beaver 09-17-2020
The "Agile Production Platform" (APP) represents the linkage platform being designed
to enable agile production / building of alternative supply chains.
The purpose of this model is to facilitate agreement on a baseline typical use case
for a Customer placing an order (for face shields, in this case) using the APP.
The model currently produces one (1) event trace at scope 1. Reviewers of this model
are invited to provide feedback for better-named events, other events that may occur
normally or as a disruption to the sequence, missing or incorrect interactions, and
the partitioning of the high level APP functions for architectural cohesion. Lower-
level (implementation) activities have been deliberately omitted for now in order to
reach consensus on intended use at the highest level of abstraction.
Also invited are direct edits to the model that suggest alternatives for Customer
behaviors (including misuse and possible nafarious actions) and APP behaviors that
would correspond to the new Customer behaviors.
Since there is no concurrent editing capability at present, feedback may be delivered
to kmgiamma@nps.edu, mdcolli@evoforge.org and edward.griffor@nist.gov as:
- comments in the body of an email
- updated MP model with editor intials appended
- may use SAY statements to attach comments directly to events in the event trace
as demonstrated herein
*************************************************************************************
The narrative for this baseline use case is as follows:
Precondition: A Customer has an urgent need for 5,000 medical face shields.
1. Customer logs into the APP linkage platform.
2. APP authenticates valid customer credentials and prompts the Customer for the need.
3. Customer inputs a need for 5,000 units of a medical face shield with desired
attributes.
4. APP identifies the individual components of the needed item.
5. APP determines which Sector Resources to search for equivalent components (prepares
component search parameters).
6. APP searches Sector Resources for available component matches and their attributes
(e.g., availability, timeliness, cost, reliability, quality, quantity).
7. APP assembles combinations of available components having intersecting
attributes (find component matches).
8. The APP constructs a list of valid supply chain elements.
8a. If the supply chain for the order is complete, the APP displays the order options to the
Customer along with soonest delivery time, total cost, and component attributes for
each participant in the chain (e.g., participant reputation, material specifications,
product dimensions, suitability for certification).
8b. Otherwise if one or more components is unavailable, the APP reprocesses the order with
a new search for equivalent alternatives to the missing component(s) (back to step 5).
9a. If the supply chain is complete, the Customer receives the order options from the APP
and filters, sorts, and inspects the presented solutions, selects a solution, and places
the order.
9a-1. The order is delivered to the Customer and meets their expectations.(Favorable
Outcome)
9a-2. The order is delivered to the Customer and does not meet their expectations.
(Unfavorable Outcome)
9a-3. The order is not delivered to the Customer (Unfavorable Outcome).
9b. If no alternative supply chain can be found, the Customer is notified by the APP that the
order cannot be completed at this time. (Unfavorable Outcome)
Assumptions/Abstractions:
The "Data for supply chain" event that is included in the APP and the Data Services/
Resources root represents asynchronous and continuous data for support to the
alternative supply chain construction. The individual interactions involved here
are another level of refinement reserved for a separate MP model that can be elaborated
separately from this model which focuses on the Customer-APP interactions.
Known ways to get to an unfavorable outcome:
- Customer asks for a disproportionately large amount of product and the system is strained
for other users
- Allow for aggregation
Questions:
- Does the APP prioritize orders?
- Can a customer get orders with "some assembly required" or does it come assembled from
some service provider?
Postcondition: The Customer receives 5,000 face shields (not shown in the model yet).
*************************************************************************************/
SCHEMA Agile_Production_Platform_Customer_Interactions
ROOT Customer: Log_into_APP
Input_a_need_for_5000_medical_face_shields
( Receive_potential_solutions
Filter_sort_inspect_presented_solutions
Select_solution
Place_order
( Receive_order
( Order_meets_expectations |
Order_does_not_meet_expectations ) |
Does_not_receive_order ) |
Unable_to_place_order );
ROOT APP: { Handle_User_Interactions,
Manage_Supply_Chain_Options};
Handle_User_Interactions: Authenticate_Customer_credentials
Prompt_Customer_for_need
Send_customer_order
( Alternative_supply_chain_found
Display_potential_solutions_with_attributes
Place_orders_on_behalf_of_Customer |
Alternative_supply_chain_NOT_found
Notify_customer_order_cannot_be_completed );
Manage_Supply_Chain_Options: { Identify_individual_components_of_needed_item
Prepare_component_search_parameters
Find_component_matches
Construct_list_of_valid_supply_chains
( Complete_supply_chain_available Provide_list_to_user |
Complete_supply_chain_unavailable ),
Data_for_supply_chain
};
COORDINATE $a: Log_into_APP FROM Customer,
$b: Authenticate_Customer_credentials FROM APP
DO ADD $a PRECEDES $b ; OD;
COORDINATE $a: Prompt_Customer_for_need FROM APP,
$b: Input_a_need_for_5000_medical_face_shields FROM Customer
DO ADD $a PRECEDES $b ; OD;
COORDINATE $a: Input_a_need_for_5000_medical_face_shields FROM Customer,
$b: Send_customer_order FROM APP
DO ADD $a PRECEDES $b ; OD;
COORDINATE $a: Send_customer_order FROM APP,
$b: Identify_individual_components_of_needed_item FROM APP
DO ADD $a PRECEDES $b ; OD;
COORDINATE $a: Provide_list_to_user FROM APP,
$b: Display_potential_solutions_with_attributes FROM APP
DO ADD $a PRECEDES $b ; OD;
COORDINATE $a: Display_potential_solutions_with_attributes FROM APP,
$b: Receive_potential_solutions FROM Customer
DO ADD $a PRECEDES $b ; OD;
COORDINATE $a: Place_order FROM Customer,
$b: Place_orders_on_behalf_of_Customer FROM APP
DO ADD $a PRECEDES $b ; OD;
COORDINATE $a: Notify_customer_order_cannot_be_completed FROM APP,
$b: Unable_to_place_order FROM Customer
DO ADD $a PRECEDES $b ; OD;
ROOT Data_Services_Resources: Data_for_supply_chain;
/* Abstracted out for now. Will elaborate in a separate MP model.
{ [ Suppliers ],
[ Shippers ],
[ Manufacturers ],
[ Distributers ],
[ Design_Engineering ],
[ Shipping_Distribution ],
[ Customer_Services ],
[ Market_Services ],
[ Purchase_Order_Contract_Payment ]
};
*/
Data_Services_Resources, APP SHARE ALL Data_for_supply_chain;
/*------------------------ TABLES, CHARTS & DIAGRAMS --------------------------*/
COORDINATE $a: $$EVENT
DO
/* Customer durations, placeholder values only */
IF $a IS Log_into_APP THEN SET $a.duration AT LEAST 1; FI;
IF $a IS Input_a_need_for_5000_medical_face_shields THEN SET $a.duration AT LEAST 5; FI;
IF $a IS Receive_potential_solutions THEN SET $a.duration AT LEAST 1; FI;
IF $a IS Filter_sort_inspect_presented_solutions THEN SET $a.duration AT LEAST 20; FI;
IF $a IS Select_solution THEN SET $a.duration AT LEAST 1; FI;
IF $a IS Place_order THEN SET $a.duration AT LEAST 3; FI;
/* APP durations, placeholder values only */
IF $a IS Authenticate_Customer_credentials THEN SET $a.duration AT LEAST 1; FI;
IF $a IS Prompt_Customer_for_need THEN SET $a.duration AT LEAST 1; FI;
IF $a IS Send_customer_order THEN SET $a.duration AT LEAST 1; FI;
IF $a IS Identify_individual_components_of_needed_item THEN SET $a.duration AT LEAST 5; FI;
IF $a IS Prepare_component_search_parameters THEN SET $a.duration AT LEAST 5; FI;
IF $a IS Find_component_matches THEN SET $a.duration AT LEAST 60; FI;
IF $a IS Construct_list_of_valid_supply_chains THEN SET $a.duration AT LEAST 10; FI;
IF $a IS Provide_list_to_user THEN SET $a.duration AT LEAST 1; FI;
IF $a IS Display_potential_solutions_with_attributes THEN SET $a.duration AT LEAST 1; FI;
IF $a IS Place_orders_on_behalf_of_Customer THEN SET $a.duration AT LEAST 1; FI;
OD;
/* Durations Table */
TABLE Durations_Table {
TABS string Event_name,
number Start_time,
number Duration_time;
};
/* Gantt Chart */
BAR CHART Gantt_Chart { TITLE("Gantt Chart");
FROM Durations_Table;
X_AXIS Event_name;
ROTATE; /* to place the X_AXIS vertical */
};
COORDINATE $e: $$EVENT
DO /* add this event to the Table */
Durations_Table <|
Event_name: SAY($e),
Start_time: $e.start.smallest,
Duration_time: $e.duration.largest;
OD;
/* Display on Output */
/*SHOW Durations_Table;
SHOW Gantt_Chart;
SHOW ACTIVITY DIAGRAM APP;*/
/*----------------------------------- QUESTIONS ------------------------------------*/
COORDINATE $x: Customer
DO ADD SAY("What additional interactions for the Customer may be needed "
"while the Customer is waiting for the order?")
PRECEDES $x;
OD;
/*----------------------------------- COMMENTS -------------------------------------*/
SAY("Partitioned the APP into user-facing " "and back end-facing functionality.");
COORDINATE $x: Data_for_supply_chain
DO ADD SAY("Represents asynchronous and continuous data "
"for support to the alternative supply chain construction.")
PRECEDES $x;
OD;
IF #Order_meets_expectations > 0 THEN
SAY("Favorable Outcome");
FI;
IF #Order_does_not_meet_expectations > 0 THEN
SAY("Unfavorable Outcome");
FI;
IF #Does_not_receive_order > 0 THEN
SAY("Unfavorable Outcome");
FI;
IF #Unable_to_place_order > 0 THEN
SAY("Unfavorable Outcome");
FI;
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment