[
Back ]
type Client_Range is integer;
Num_Clients : Client_Range is 3;
type Diagram_ID is integer;
type Response_Type is enum Node_Added, NodeID_Inactive, New_GraphID,
List_Of_Titles, List_Of_Objects, Edge_Added,
Node_Updated, Node_Moved, EdgeID_Inactive,
Add_To_InBox end;
type post_statement_referencing_online_info is interface
action out
record_pointer_to_online_info(i:integer),
post_info_as_formal_statement(i:integer);
end;
type formal_discussion is interface
action out
post_formal_statement_from_scratch(i:integer),
post_on_line_reference_statement(i:integer),
relate_formal_statement_to_discussion(i:integer),
revise_formal_statement(i:integer),
retract_formal_statement(i:integer),
retract_formal_relationship(i:integer);
service PSROI : post_statement_referencing_online_info;
end;
type housekeeping is interface
action out
reposition_statement_object(i:integer);
end;
type contribute_to_discussion is interface
action out
informal_discussion(i:integer);
service FD : formal_discussion;
service H : housekeeping;
end;
type ask_for_advice_on_formal_discussion is interface
action out
unspecified_request_for_help(i:integer),
focus_on_particular_elements(i:integer),
focus_on_particular_questions(i:integer);
end;
-- In the following service, all actions are generated by the user
-- (intended to be observed by the concepts-of-operation).
type User_Interface_Layer is interface
action out
start_java(i:integer),
start_browser(i:integer),
pose_discussion_topic(i:integer),
join_discussion_session_1(i:integer),
join_discussion_session_2(D : Diagram_ID; i:integer),
browse_information(i:integer),
make_notes(i:integer),
summarize_discussion(i:integer);
service CD : contribute_to_discussion;
service AAFD : ask_for_advice_on_formal_discussion;
end;
--------------------------------------------
type inquiry_diagram_ADT is interface
action out
start_belvedere(i:integer),
reference_this(i:integer),
new_inquiry_diagram(i:integer),
list_inquiry_diagram(i:integer),
open_inquiry_diagram(D : Diagram_ID; i:integer),
add_node(i:integer),
add_edge(i:integer),
update_node(i:integer),
move_node(i:integer),
delete_node(i:integer),
delete_edge(i:integer),
exit_diagram(i:integer);
end;
type information_search is interface
action out
start_netscape(i:integer),
get_URL(i:integer);
end;
type advice_services is interface
action out
request_advice(i:integer);
end;
-- In the following service, all actions are generated by the
-- concepts-of-operation (intended to be observed by (1) the
-- abstract-implementation).
type Concepts_of_Operation_Layer is interface
service IDA : inquiry_diagram_ADT;
service I_S : information_search;
service AS : advice_services;
action out
user_modeling_services(i:integer);
end;
-----------------------------------------------------
-- In the following service, actions are generated by the
-- abstract-implementation and passed back to the
-- concepts-of-operation and then to the user.
type Pass_Back is interface
action out
HTMLPage(i:integer),
Advice(i:integer),
Response(r:response_type; i:integer),
WebStartup(i:integer),
JavaStartup(i:integer);
end;
-----------------------------------------------------
-----------------------------------------------------
type user_interface is interface
service UIL : User_Interface_Layer;
service COL : dual Concepts_Of_Operation_Layer;
service PB : dual Pass_Back;
behavior
web_pages : var integer := 0;
max_pages : integer is 1;
default_id : integer is 99;
begin
start ||>
UIL.start_java();;
PB.JavaStartup() ||>
UIL.join_discussion_session_1();;
PB.Response(List_Of_Titles) ||>
UIL.join_discussion_session_2(23);;
PB.Response(List_Of_Objects) ||>
UIL.start_browser();;
PB.WebStartup() ||>
UIL.browse_information();;
PB.HTMLPage() ||>
if $web_pages < max_pages then
web_pages := $web_pages + 1;
UIL.CD.FD.PSROI.record_pointer_to_online_info(default_id);
UIL.browse_information(default_id);
else
UIL.CD.FD.PSROI.post_info_as_formal_statement(default_id);
end if;;
PB.Response(Node_Added) ||>
UIL.CD.FD.relate_formal_statement_to_discussion();;
PB.Response(Edge_Added) ||>
UIL.AAFD.unspecified_request_for_help();;
PB.Advice() ||>
UIL.CD.FD.revise_formal_statement();;
-- PB.Response(Node_Updated) ||>
-- UIL events not yet used follow:
/*
UIL.pose_discussion_topic() ||
UIL.make_notes() ||
UIL.CD.FD.post_formal_statement_from_scratch() ||
UIL.CD.FD.retract_formal_statement() ||
UIL.CD.FD.retract_formal_relationship() ||
UIL.CD.H.reposition_statement_object() ||
UIL.CD.informal_discussion() ||
UIL.AAFD.focus_on_particular_elements() ||
-- user first highlights advice-constraining elements
UIL.AAFD.focus_on_particular_questions() ||
UIL.summarize_discussion();;
*/
end user_interface;
type concepts_of_operation_interface is interface
service UIL : dual User_Interface_Layer;
service COL : Concepts_Of_Operation_Layer;
service PB_IN : dual Pass_Back;
service PB_OUT : Pass_Back;
behavior
begin
UIL.start_java() ||> COL.IDA.start_belvedere();;
UIL.start_browser() ||> COL.I_S.start_netscape();;
UIL.pose_discussion_topic() ||>
COL.IDA.new_inquiry_diagram();;
UIL.join_discussion_session_1() ||>
COL.IDA.list_inquiry_diagram();;
(?D in Diagram_ID) UIL.join_discussion_session_2(?D) ||>
COL.IDA.open_inquiry_diagram(?D);;
UIL.browse_information() ||>
COL.I_S.get_URL();;
UIL.CD.FD.PSROI.record_pointer_to_online_info() ||>
COL.IDA.reference_this();;
UIL.CD.FD.post_formal_statement_from_scratch() OR
UIL.CD.FD.PSROI.post_info_as_formal_statement() ||>
COL.IDA.add_node();;
UIL.CD.FD.relate_formal_statement_to_discussion() ||>
COL.IDA.add_edge();;
UIL.CD.FD.revise_formal_statement() ||>
COL.IDA.update_node();;
UIL.CD.FD.retract_formal_statement() ||>
COL.IDA.delete_node();;
UIL.CD.FD.retract_formal_relationship() ||>
COL.IDA.delete_edge();;
UIL.CD.H.reposition_statement_object() ||>
COL.IDA.move_node();;
UIL.AAFD.unspecified_request_for_help() ||>
COL.AS.request_advice();;
PB_IN.HTMLPage() ||> PB_OUT.HTMLPage();;
PB_IN.Advice() ||> PB_OUT.Advice();;
(?R in Response_Type)PB_IN.Response(?R) ||>
PB_OUT.Response(?R);;
PB_IN.WebStartup() ||> PB_OUT.WebStartup();;
PB_IN.JavaStartup() ||> PB_OUT.JavaStartup();;
end concepts_of_operation_interface;
[
Back ]