Excerpt
Contents
Volume
Figures
Tables
Appendix A - Extended Functions
A.1.1 Completeness checking functions
A.1.2 XQuery functions
A.1.3 XQueryJACKFunctions
A.1.4 XQueryPDTFunctions
A.1.4.1 ActorHasCapability function
A.1.4.2 FieldTokenizer function
A.1.4.3 GetAttributeValue function
A.1.4.4 GetIncludedFields function
A.1.4.5 GetInformationCarried function
A.1.4.6 GetPDTFileName
A.1.4.7 GetPrometheusElements
A.1.4.8 GetPrometheusSubElements
A.1.4.9 GetPrometheusStepScenarios
A.1.4.10 GetPrometheusSubGoalsElements
A.1.4.11 GetPrometheusSubGoalElements
A.1.4.12 GetPrometheusUsesData
A.1.4.13 IsACapabilityThatTheAgentIncludes
A.1.4.14 IsADataProducedByTheRole
A.1.4.15 IsADataThatTheAgentReads
A.1.4.16 IsADataThatTheAgentWrites
A.1.4.17 IsADataThatTheCapabilityReads
A.1.4.18 IsADataThatTheCapabilityWrites
A.1.4.19 IsADataThatThePlanReads
A.1.4.20 IsADataThatThePlanWrites
A.1.4.21 IsADataUsedByTheRole
A.1.4.22 IsADataThatTheAgentAchieves
A.1.4.23 IsAGoalThatTheCapabilityAchieves
A.1.4.24 IsAGoalThatThePlanAchieves
A.1.4.25 IsAGoalThatTheAgentAchieves
A.1.4.26 IsAGoalThatTheCapabilityAchieves
A.1.4.27 IsAMessageThatTheAgentReceives
A.1.4.28 IsAMessageThatTheAgentSends
A.1.4.29 IsAMessageThatTheCapabilityReceives
A.1.4.30 IsAMessageThatTheCapabilitySends
A.1.4.31 IsAMessageThatTheReceives
A.1.4.32 IsAMessageThatThePlanReceives
A.1.4.33 IsAMessageThatThePlanSends
A.1.4.34 IsAMessageThatTriggersThePlan
A.1.4.35 IsAnActionThatTheAgentPerforms
A.1.4.36 IsAnActionThatTheCapabilityPerforms
A.1.4.37 IsAnActionThatThePlanPerforms
A.1.4.38 IsAPerceptThatTheAgentResponds
A.1.4.39 IsAPerceptThatTheCapabilityResponds
A.1.4.40 IsAPerceptThatThePlanResponds
A.1.4.41 IsAPerceptThatTheCapabilityResponds
A.1.4.42 IsAPerceptThatThePlanResponds
A.1.4.43 IsAPerceptThatTheCapabilityResponds
A.1.4.44 IsAPerceptThatThePlanResponds
A.1.4.45 IsAPlanThatTheAgentIncludes
A.1.4.46 IsAPlanThatTheCapabilityIncludes
A.1.4.47 IsAPlanTheRoleUses
A.1.4.48 IsARoleThatTheAgentIncludes
A.1.4.49 IsTrigger
A.1.5 XQuerySimilarityFunctions
A.1.6 XQuerySynonymsFunctions
A.1.7 XQueryTAOMFunctions
Appendix B – Automated Teller Machine
B.1 Introduction
B.2 Organizational Models
B.3 Prometheus Models
B.4 JACK Code
B.5 JACK Code in XML
B.6 Evaluation
Appendix C – Air Traffic Control Environment
C.1 Introduction
C.2 Organizational Models
C.3 Prometheus Models
C.4 JACK Code
C.5 Code in XML
C.6 Evaluation
Appendix D – Electronic Bookstore Case Study
D.1 JACK Agent vs Prometheus Goal
D.2 JACK Agent vs Prometheus Role
D.3 JACK Agent vs Prometheus Agent
D.4 JACK Agent vs Prometheus Capability
D.5 JACK Agent vs Prometheus Plan
D.6 JACK Agent vs Prometheus Percept
D.7 JACK Agent vs Prometheus Action
D.8 JACK Agent vs Prometheus Message (sends)
D.9 JACK Agent vs Prometheus Message (receives)
D.10 JACK Agent vs Prometheus Data (uses)
D.11 JACK Agent vs Prometheus Data (creates)
D.12 JACK Plan vs Prometheus Goal
D.13 JACK Plan vs Prometheus Role
D.14 JACK Plan vs Prometheus Agent
D.15 JACK Plan vs Prometheus Capability
D.16 JACK Plan vs Prometheus Plan
D.17 JACK Plan vs Prometheus Percept
D.18 JACK Plan vs Prometheus Action (Sends)
D.19 JACK Plan vs Prometheus Message (Sends)
D.20 JACK Plan vs Prometheus Message (Receives)
D.21 JACK Plan vs Prometheus Data (Uses)
D.22 JACK Plan vs Prometheus Data (Creates)
D.23 JACK BeliefSet vs Prometheus Role (Creates)
D.24 JACK BeliefSet vs Prometheus Role (Uses)
D.25 JACK BeliefSet vs Prometheus Role (Creates)
D.26 JACK BeliefSet vs Prometheus Agent (Uses)
D.27 JACK BeliefSet vs Prometheus Capability (Creates)
D.28. JACK BeliefSet vs Prometeus Capabilitity (Uses)
D.29 JACK BeliefSet vs Prometheus Plan (Creates)
D.30 JACK BeliefSet vs Prometheus Plan (Uses)
D.31 JACK BeliefSet vs Prometheus Data
D.32 JACK Event vs Prometheus Agent (sends)
D.33 JACK Event vs Prometheus Agent (receives)
D.34 JACK Event vs Prometheus Capability (sends)
D.35. JACK Event vs Prometheus Capability (receives)
D.36 JACK Event vs Prometheus Plan (sends)
D.37 JACK Event vs Prometheus Plan (receives)
D.38 JACK Event vs Prometheus Message
Appendix E – Introduction to BDI architecture
E.1 Agent Architectures
E.2 BDI Architecture
Appendix F - Traceability Relations between i* and Prometheus
Appendix G - Traceability Relations between Prometheus and JACK
Figures
Figure A.1 Calling getPDTFileName extended function in Java
Figure A.2 List of strings
Figure A.3 getDocSourceMissingElement function
Figure A.4 getIDMissingElement function example
Figure A.5 getNameMissingElement function example
Figure A.6 getNumberOfMissingElement function example
Figure A.7 Arrival Sequencing Capability and ATL SD Resource
Figure A.8 capabilityUsesSDResource function example
Figure A.9 hasUses function example
Figure A.10 contains function example
Figure A.11 Using contains function
Figure A.12 getAttributeValue function example
Figure A.13 hasRelation function example
Figure A.14 stringTokenizer function example
Figure 4.15 stringTokenizerByUpperCase function example
Figure A.16 getBeliefSetFields function example
Figure A.17 ActorHasCapability function example
Figure A.18 fieldTokenizer function example
Figure A.19 getAttributeValue function example
Figure A.20 getIncludesFields function example
Figure A.21 getInformationCarried function example
Figure A.22 getPrometheusElements function example
Figure A.23 getPrometheusSubElements function example
Figure A.24 getPrometheusStepScenarios function example
Figure A.25 getPrometheusSubGoals function example
Figure A.26 getPrometheusSubGoalsElements function example
Figure A.27 hasUses function example
Figure A.28 hasUses function example
Figure A.29 creates function example
Figure A.30 creates function example
Figure A.31 overlaps function example
Figure A.32 overlaps function example
Figure A.33 isPositiveSimilar function example
Figure A.34 isSimilar function example
Figure A.35 isSimilarByOverlaps function example
Figure A.36 isSimilarDataAndBeliefSet function example
Figure A.37 isSimilarSDResourceAndMessage function example
Figure A.38 SomeOverlap function example
Figure A.39 stringTokenizerByUpperCase function example
Figure A.40 contains function example
Figure A.41 isSynonyms function
Figure A.42 stringTokenizer function example
Figure A.43 isSynonyms function example
Figure A.44 getSubGoalsAndTask function example
Figure A.45 getSubGoalsAndTask function example
Figure A.46 getAttributeValue function example
Figure B.1 Strategic Dependency model for the Automatic Teller Machine
Figure B.2 Strategic Rationale Model for the Automatic Teller Machine
Figure B.3 ATM Goal diagram
Figure B.4 ATM System Overview diagram
Figure B.5 – Atm Agent Overview Diagram
Figure B.6 Bank Agent Overview diagram
Figure B.7 Atm agent
Figure B.8 BankAgent agent
Figure B.9 Accounts beliefSet
Figure B.10 Accounts beliefSet
Figure B.11 Withdraw event
Figure B.12 WithdrawResponse event
Figure B.13 WithdrawRequest event
Figure B.14 WithdrawApproved plan
Figure B.15 WithdrawCash plan
Figure B.16 WithdrawRejected plan
Figure B.17 WithdrawApproved plan
Figure B.18 Atm agent in XML
Figure B.19 BankAgent in XML
Figure B.20 Accounts beliefSet in XML
Figure B.21 Balances beliefSet in XML
Figure B.22 ProcessWithdraw plan in XML
Figure B.23 WithdrawApproved plan in XML
Figure B.24 WithdrawCash plan in XML
Figure B.25 WithdrawRejected plan in XML
Figure B.26 Withdraw event in XML
Figure B.27 WithdrawResponse in XML
Figure B.29 Fields of the Accounts beliefSet
Figure B.30 Accounts beliefSet
Figure B.31 Balances beliefSet
Figure B.32 Balances descriptor
Figure B.33 ProcessWithdraw plan
Figure B.34 Process Withdraw descriptor
Figure B.35 WithdrawApproved plan
Figure B.36 Withdraw Approved descriptor
Figure B.37 WithdrawCash plan
Figure B.38 Withdraw Cash descriptor
Figure B.39 WithdrawReject plan
Figure B.40 Withdraw Rejected descriptor
Figure C.1 Strategic Dependency model for Air Traffic Environment
Figure C.2 Strategic Rationale model for Air Traffic Environment
Figure C.3 Goal diagram for Air Traffic Environment
Figure C.4 Traffic Feeding Capability
Figure C.5 Arrival Sequencing Capability
Figure C.6 Runway Assigning Capability
Figure C.7 Flying Capability
Figure C.8 Traffic Feeding Capability
Figure C.9 Arrival Sequencing Capability
Figure C.10 Runway Assigning Capability
Figure C.11 Flying Capability
Figure C.12 Aircraft agent
Figure C.13 Airport agent
Figure C.14 Feeder agent
Figure C.15 Runway agent
Figure C.16 LandingInfo beliefSet
Figure C.17 RunwayInfo beliefSet
Figure C.18 ArrivalSequencing capability
Figure C.19 Flying Capability
Figure C.20 Runway Assigning Capability
Figure C.21 TrafficFeeding capability
Figure C.22 AircraftEvent event
Figure C.23 Approaching event
Figure C.24 EnterControlArea
Figure C.25 TrafficEvent event
Figure C.26 AssignSlot plan
Figure C.27 FollowApproach plan
Figure C.28 InitialApproach plan
Figure C.29 MonitorAircraft plan
Figure C.30 RequestSlot plan
Figure C.31 RunwayAssign plan
Figure C.32 RunwayRequest plan
Figure C.33 Takeoff plan
Figure C.34 TakeoffDiscard plan
Figure C.35 Traffic plan
Figure C.36 Aircraft agent in XML
Figure C.37 Airport agent in XML
Figure C.38 TrafficFeeding agent in XML
Figure C.39 Runway agent in XML
Figure C.40 LandingInfo beliefSet in XML
Figure C.41 RunwayInfo beliefSet in XML
Figure C.42 AssignSlot plan in XML
Figure C.43 FollowApproach plan in XML
Figure C.44 InitialApproach plan in XML
Figure C.45 MonitorAircraft plan in XML
Figure C.46 RequestSlot plan in XML
Figure C.47 RunwayAssign plan in XML
Figure C.48 Takeoff plan in XML
Figure C.49 TakeoffDiscard plan in XML
Figure C.50 Traffic plan in XML
Figure C.51 RunwayRequest plan in XML
Figure C.52 AircraftEvent event in XML
Figure C.53 Approaching event in XML
Figure C.54 EnterControlArea event in XML
Figure C.55 TrafficEvent event in XML
Figure C.56 ArrivalSequencing capability in XML
Figure C.57 Flying capability in XML
Figure C.58 RunwayAssigning capability in XML
Figure C.59 TrafficFeeding capability in XML
Figure C.60 Air Traffic Control Environment i* model version 1
Figure C.61 Prometheu goal diagram
Figure E.1 A generic BDI architecture
Figure F.1 Prometheus Goal vs SD Goal overlaps dependency
Figure F.2 Monitor Shipment task dependency
Figure F.3 Monitor delivery goal in Prometheus
Figure F.4 Prometheus Goal vs Actor depends on traceability relation
Figure F.5 Prometheus Goal vs SR Goal overlaps traceability relation
Figure F.6 Prometheus Goal vs SR Task overlaps traceability relation
Figure F.7 Prometheus Role vs SD Goal uses traceability relation
Figure F.8 Prometheus Role vs SD Resources uses relation
Figure F.9 Prometheus Role vs SD Task contributes relation
Figure F.10 Prometheus Role vs Actor contributes relation
Figure F.11 Prometheus Role vs SR Goal achieves traceability relation
Figure F.12 Prometheus Role vs SR Resource uses relation
Figure F.13 Prometheus Role vs SR Resource creates relation
Figure F.14 Prometheus Role vs SR Task achieves traceability relation
Figure F.15 Prometheus Agent vs SD Goal achieves traceability relation
Figure F.16 Prometheus Agent vs SR Resource uses traceability relation
Figure F.17 Prometheus Agent vs SD Task achieves traceability relation
Figure F.18 Prometheus Agent vs Istar Actor overlaps traceability relation
Figure F.19 Prometheus Agent vs SR Goal achieves traceability relation
Figure F.20 Prometheus Agent vs SR Resource uses traceability relation
Figure F.21 Prometheus Agent vs SR Resource creates traceability relation
Figure F.22 Prometheus Agent vs SR Task achieves traceability relation
Figure F.23 Prometheus Capability vs SD Goal contributes traceability relation
Figure F.24 Prometheus Capability vs SD Resource uses traceability relation
Figure F.25 Prometheus Capability vs SD Task contributes traceability relation
Figure F.26 Prometheus Capability vs Actor composed relation
Figure F.27 Prometheus Capability vs SR Goal contributes traceability relation
Figure F.28 Prometheus Capability vs SR Resource uses traceability relation
Figure F.29 Prometheus Capability vs SR Resoource creates traceability relation
Figure F.30 Prometheus Capability vs SR Resource uses traceability relation
Figure F.31 Prometheus Plan vs SD Goal contributes traceability relation
Figure F.32 Prometheus Plan vs SD Resource uses traceability relation
Figure F.33 Prometheus Plan vs SD Task achieves traceability relation
Figure F.34 Prometheus vs Actor creates traceability relation
Figure F.35 Prometheus Plan vs SR Goal achieves traceability relation
Figure F.36 Prometheus Plan vs SR Resource uses traceability relation
Figure F.37 Prometheus Plan vs SR Resource creates traceability relation
Figure F.38 Prometheus Plan vs SR Task achieves traceability relation
Figure F.39 Prometheus Percept vs SD Resource overlaps traceability relation
Figure F.40 Prometheus Action vs SR Task overlaps traceability relation
Figure F.41 Prometheus Data vs SD Goal contributes traceability relation
Figure F.42 Prometheus Data vs SD Task contributes traceability relation
Figure F.43 Prometheus Data vs Actor uses traceability relation
Figure F.44 Prometheus Data vs SR Goal uses traceability relation
Figure F.45 Prometheus Data vs SR Resource overlaps traceability relation
Figure F.46 Prometheus Data vs SR Task uses traceability relation
Figure F.47 Order Book Scenario
Figure F.48 Strategic Rationale Diagram for the Electronic Bookstore actor
Figure F.49 Prometheus Scenario vs SD Task depends traceability relation
Figure F.50 Prometheus Scenario vs Actor depends traceability relation
Figure F.51 Prometheus Scenario vs SR Goal compose traceability relation
Figure F.52 Prometheus Scenario vs SR Resource creates traceability relation
Figure F.53 Prometheus Scenario vs SR Resource uses traceability relation
Figure F.54 Prometheus Scenario vs SR Task composed traceability relation
Figure F.55 Prometheus Message vs SD Resource overlaps traceability relation
Figure G.1 JACK Agent vs Prometheus Goal achieves traceability relation
Figure G.2 JACK Agent vs Prometheus Role uses traceability relation
Figure G.3 JACK Agent vs Prometheus Agent overlaps traceability relation
Figure G.4 JACK Agent vs Prometheus Capability uses traceability relation
Figure G.5 JACK Agent vs Prometheus Plan uses traceabilty relation
Figure G.6 JACK Agent vs Prometheus Percept uses traceability relation
Figure G.7 JACK Agent vs Prometheus Action creates traceability relation
Figure G.8 JACK Agent vs Prometheus Message sends traceability relation
Figure G.9 JACK Agent vs Prometheus Message receives traceability relation
Figure G.10 JACK Agent vs Prometheus Message receives traceability relation
Figure G.11 JACK Agent vs Prometheus Date creates traceability relation
Figure G.12 JACK Plan vs Prometheus Goal
Figure G.13 JACK Plan vs Prometheus Role uses traceability relation
Figure G.14 JACK Plan vs Prometheus Agent uses traceability relation
Figure G.15 JACK Plan vs Prometheus Capability uses traceability relation
Figure G.16 JACK Plan vs Prometheus Plan overlaps traceability relation
Figure G.17 JACK Plan vs Prometheus Percept uses traceability relation
Figure G.18 JACK Plan vs Prometheus Action creates traceability relation
Figure G.19 JACK Plan vs Prometheus Message sends traceability relation
Figure G.20 JACK Plan vs Prometheus Message receives traceability relation
Figure G.21 JACK Plan vs Prometheus Data uses traceability relation
Figure G.22 JACK Plan vs Prometheus Data creates traceability relation
Figure G.23 JACK Belief vs Prometheus Role creates relation
Figure G.24 JACK Belief vs Prometheus Role uses traceability relation
Figure G.25 JACK BeliefSet vs Prometheus Agent creates traceability relation
Figure G.26 JACK BeliefSet vs Prometheus Agent uses traceability relation
Figure G.27 JACK BeliefSet vs Prometheus Capability creates traceability relation
Figure G.28 JACK BeliefSet vs Prometheus Capability uses traceability relation
Figure G.29 JACK BeliefSet vs Prometheus Plan creates traceability relation
Figure G.30 JACK BeliefSet vs Prometheus uses traceability relation
Figure G.31 JACK BeliefSet vs Prometheus Data overlaps traceability relation
Figure G.32 JACK Event vs Prometheus Agent receives traceability relation
Figure G.33 JACK Event vs Prometheus Agent sends traceability relation
Figure G.34 JACK Event vs Prometheus Capability
Figure G.35 JACK Event vs Prometheus Capability receives relation
Figure G.36 JACK Event vs Prometheus Plan sends traceability relation
Figure G.37 JACK Event vs Prometheus Plan receives traceability relation
Figure G.38 JACK Event vs Prometheus Message overlaps traceability relation
Tables
Table A.1- Completeness checking functions
Table A.2 XQuery functions
Table A.3 XQueryJACKFunctions
Table A.4 XQueryPDTFunctions
Table A.5 XQuerySimilarityFunctions
Table A.6 XQuerySynonyms Function example
Table A.7 XQueryTAOMFunctions
Table B.1 Traceability relations identified manually
Table B.2 Traceability relations identified by the tool
Table B.3 Missing Information
Table C.1 Traceability relations identified manually
Table C.2 Traceability relations identified by the tool
Table C.3 Missing relations identified by the tool
Table C.4 Missing relations between SD Goal and Prometheus Goal
Table C.5 Missing relations between SR Goal and Prometheus Goal
Table C.6 Missing relations between SR Plan and Prometheus Goal
Table C.7 Missing relations between Prometheus Goal and SD/SR Task or SD/SR Goal
Table C.8 Missing relations between SD Resource and Prometheus Percept
Table C.9 Missing relations between SD Goal and a Prometheus Agent
Table C.10 Missing relation between a SR Goal and an Agent
Table C.11 Missing relations between a SR Task and an Agent
Table C.12 Missing relations between a SD Goal and a Prometheus Plan
Table C.13 Missing relations between a SR Goal and a Prometheus Plan
Table C.14 Missing relations between a SR Task and Prometheus Plan
Table C.15 Missing links between a SD Goal and Prometheus Capability
Table C.16 Missing links between a SR Goal and Prometheus Capability
Table C.17 Missing relations between a SR Task and Prometheus Capability
Table C.18 Traceability relations between i* and Prometheus
Table C.19 Missing relations between JACK and Prometheus
Table D.1 Relations identified manually between Prometheus Goal and JACK Agent
Table D.2 Relations identified by the tool between Prometheus Goal and JACK Agent
Table D.3 Relations identified manually between Prometheus Role and JACK Agent
Table D.4 Relations identified by the tool between Prometheus Role and JACK Agent
Table D.5 Relations identified manually between Prometheus Agent and JACK Agent
Table D.6 Relations identified by the tool between Prometheus Agent and JACK Agent
Table D.7 Relations identified manually Prometheus Capability and JACK Agent
Table D.8 Relations identified by the tool between Prometheus Capability and JACK Agent
Table D.9 Relations identified manually between Prometheus Plan and JACK Agent
Table D.10 Relations identified by the tool between Prometheus Plan and JACK Agent
Table D.11 Relations identified manually between Prometheus Percept and JACK Agent
Table D.12 Relations identified by the tool between Prometheus Percept and JACK Agent
Table D.13 Missing traceability relations between Prometheus Percept and JACK Agent
Table D.14 Relations identified manually between Prometheus Action and JACK Agent
Table D.15 Relations identified by the tool between Prometheus Action and JACK Agent
Table D.16 Relations identified manually between Prometheus Message and JACK Agent
Table D.17 Relations identified by the tool between Prometheus Message and JACK Agent
Table D.18 Relations identified manually between Prometheus Message and JACK Agent
Table D.19 Relations identified by the tool between Prometheus Message and JACK Agent
Table D.20 Relations identified manually between Prometheus Data and JACK Agent
Table D.21 Relations identified by the tool between Prometheus Data and JACK Agent
Table D.22 Relations identified manually between Prometheus Data and JACK Agent
Table D.23 Relations identified by the tool between Prometheus Data and JACK Agent
Table D.24 Relations identified manually between JACK Plan and Prometheus Goal
Table D.25 Relations identified by the tool between Prometheus Goal and JACK Plan
Table D.26 Relations identified manually between JACK Plan and Prometheus Role
Table D.27 Relations identified by the tool between Prometheus Role and JACK Plan
Table D.28 Relations identified manually between JACK Plan and Prometheus Agent
Table D.29 Relations identified by the tool between Prometheus Agent and JACK Plan
Table D.30 Relations identified manually between JACK Plan and Prometheus Capability
Table D.31 Relations identified by the tool between Prometheus Capability and JACK Plan
Table D.32 Relations identified manually between Prometheus Plan and JACK Plan
Table D.33 Relations identified by the tool between Prometheus Plan and JACK Plan
Table D.34 Missing relation
Table D.35 Missing relation
Table D.36 Wrong relation
Table D.37 Missing relation
Table D.38 Wrong relation
Table D.39 Missing relations
Table D.40 Missing relation
Table D.41 Relations not identified by the tool
Table D.42 Relations identified manually between JACK Plan and Prometheus Percept
Table D.43 Relations identified by the tool between Prometheus Percept and JACK Plan
Table D.44 Relations identified manually between JACK Plan and Prometheus Action
Table D.45 Relations identified by the tool between Promehteus Action and JACK Plan
Table D.46 Relations identified manually between JACK Plan and Prometheus Message
Table D.47 Relations identified by the tool between Prometheus Message and JACK Plan
Table D.48 Relations identified manually between JACK Plan and Prometheus Message
Table D.49 Relations identified by the tool between Prometheus Message and JACK Plan
Table D.50 Relations identified manually between JACK Plan and Prometheus Data
Table D.51 Relations identified by tool between JACK Plan and Prometheus Data
Table D.52 Relations identified manually between JACK Plan and Prometheus Data
Table D.53 Relations identified manually between JACK BeliefSet and Promtheus Role
Table D.54 Relations identified by the tool between Prometheus Role and JACK BeliefSet
Table D.55 Relations identified manually between JACK BeliefSet and Prometheus Role
Table D.56 – Relations identified by the tool between JACK BeliefSet and Prometheus Role
Table D.57 Relations identified manually between JACK BeliefSet and Prometheus Agent
Table D.58 Relations identified by the tool between Prometheus Role
Table D.59 Relations identified manually between JACK BeliefSet and Prometheus Agent
Table D.60 Relations identified by the tool between Prometheus Agent and JACK BeliefSet
Table D.61 Relations identified manually between Prometheus Capability and JACK BeliefSet
Table D.62 Relations identified by the tool between Prometheus Capability and JACK BeliefSet
Table D.63 Relations identified manually between Prometheus Capability and JACK BeliefSet
Table D.64 Relations identified by the tool between Prometheus Capability and JACK BeliefSet
Table D.65 Relations identified manually between Prometheus Plan and JACK
Table D.66 Relations identified by the tool between Prometheus Plan and JACK BeliefSet
Table D.67 Relations identified manually between Prometheus Plan and JACK BeliefSet
Table D.68 Relations identified by the tool between Prometheus Plan and JACK BeliefSet
Table D.69 Relations between JACK BeliefSet and Prometheus Data
Table D.70 Relations between Prometheus Data and JACK BeliefSet
Table D.71 Relations between JACK Event and Prometheus Agent
Table D.72 Relations between JACK Event and Prometheus Agent
Table D.73 Relations between JACK Event and Prometheus Capability
Table D.74 Relations identified manually between JACK Event and Prometheus Capability
Table D.75 Relations identified manually between JACK Event and Prometheus Plan
Table D.76 Relations identified by the tool between Prometheus Message and Prometheus Plan
Table D.77 Relations identified manually between JACK Event and Prometheus Plan
Table D.78 Relations identified by the tool between Prometheus Plan and JACK Event
Table D.79 Relations between JACK Event and Prometheus Message
Table D.80 Relations between Prometheus Message and JACK Event
Table F.1 Relations between Prometheus and i* SD
Table F.2 Relations between Prometheus and i*SR elements
Table G.1 Traceability Relations Types between Prometheus and JACK Artefacts
Table G.2 Traceability Relations Types between Prometheus and JACK Artefacts
Appendix A - Extended Functions
The lists of functions are grouped in seven classes:
- XQueryCompletenessCheckingFunctions - contains a list of methods in Java that extend XQuery to perform completeness checking.
- XQueryFunctions – contains a list of methods in Java that extend XQuery with general functionalities.
- XQueryJACKFunctions - provides a list of methods in Java that that extends XQuery with functions to manipulate elements in the JACK XML file.
- XQueryPDTFunctions - provides a list of methods in Java that extends XQuery with functions to manipulate elements created by the PDT tool version 3.2.
- XQuerySimilarityFunctions – includes a list of methods in Java that extends XQuery with functions to compare the similarity between elements in the models.
- XQuerySynonymsFunctions – contains a list of methods in Java that extends XQuery with functions to verify if names of elements in the models are synonyms.
- XQueryTAOMFunctions – provides a list of methods in Java that extends XQuery with functions to manipulate elements in the i* model created using the TAOM tool.
To use an XQuery extended function implemented in a Java class, it is necessary first to declare the class name that includes the function and then call the function wanted. For instance, before to be able to call getPDTFileName function included in the XQueryPDTFunctions class the user has first to define a namespace and associated it with XQueryPDTFunctions class and then call the function wanted using the namespace given. Figure A.1 shows an example when the pdt namespace is associated to the XQueryPDTFunction class in Java (declare namespace pdt = java:retratos.XQueryPDTFunctions). The getPDTFileName function is invoked using the namespace followed by colon and the function name (pdt:getPDTFileName( )).
illustration not visible in this excerpt
Figure A.1 Calling getPDTFileName extended function in Java
The next sections describe functions implemented in Java to extend XQuery in more detail.
A.1.1 Completeness checking functions
Table A.1 shows a list of methods in the XQueryCompletenessCheckingFunctions class that extend XQuery with functions to perform completeness checking. We are going to describe in detail and give some examples of the most complex and important functions in next sections.
illustration not visible in this excerpt
Table A.1- Completeness checking functions
A.1.1.1 CompletenessChecking functions
The completenessCheching function can be used to verify the similiraty between two lists of elements. The function receives two lists of element and compares if names of the elements are synonyms. For instance, in the Figure A.2, we have the ListA that contains “Login outgoing delivery”, “Calculate delivery time estimates”, and “Get delivery options” and the ListB that contains “Obtain Delivery Options”, “Compute Delivery Estimates” and “Place Delivery Request”. The function completenessCheching checks if each element of the ListA has a synonyms in the ListB. In the Figure A.5, “Get delivery options” is synonyms to “Obtain Delivery Options”, and “Calculate delivery time estimates” is synonyms to “Compute Delivery Time Estimates”. The “Login outgoing delivery” does not have synonyms in the List B. The “Login outgoing delivery” element is added to a list the missing elements.
illustration not visible in this excerpt
Figure A.2 List of strings
A.1.1.2 GetDegreeOfCompleteness function
The getDegreeOfCompleteness function returns the value of degreeOfCompleteness field.
A.1.1.3 GetDocSourceMissingElement
The getDocSourceMissingElement function receives as parameter an integer that represents the index of the missing element and returns a String with the name of the document that contains the element that is missing. For instance, in the Figure A.3 the Element0 (index equal 0) is part of the ElectronicBookstore.pd document. If the getDocSourceMissingElement function is called passing the value equal 0 then getDocSourceMissingElement function returns the “ElectronicBookstore.pd” string value.
illustration not visible in this excerpt
Figure A.3 getDocSourceMissingElement function
A.1.1.4 GetIDMissingElement
The getIDMissingElement function receives as parameter an integer that represents the index of the missing element and returns a String with the id of the element that is missing. For instance, in the Figure A.4 the Element0 (index equal 0) has id equal to 0. If the getIDMissingElement function is called passing the value equal 0 then function returns the value 55.
illustration not visible in this excerpt
Figure A.4 getIDMissingElement function example
A.1.1.5 GetNameMissingElement
The getNameMissingElement function receives as parameter an integer that represents the index of the missing element and returns a String with the name of the element that is missing. For instance, in the Figure A.5 if the getNameMissingElement function is called passing the value equal 0 then function returns the “Login outgong delivery” string value.
illustration not visible in this excerpt
Figure A.5 getNameMissingElement function example
A.1.1.6 GetNumberOfMissingElement
The getNumberOfMissingElement function returns the size of ArrayList missingElement minus one. For instance, in the Figure A.6 the getNumberOfMissingElement function returns the value n-1.
illustration not visible in this excerpt
Figure A.6 getNumberOfMissingElement function example
A.1.1.7 GetDocSourceMissingElementA
return XQueryFunctions. sourceMissingElements.get(i).getDoc();
A.1.2 XQuery functions
illustration not visible in this excerpt
Table A.2 XQuery functions
A.1.2.1 CapabilityUsesSDResource function
The capabilityUsesSDResource function checks if a capability uses a SD Resource. The function receives as a parameterTinyNodeImpl capabilityandTinyNodeImpl resource that represents a XML Node in the Saxon tool. For instance, the Figure A.7 shows the Arrival Sequencing Capability and the ATL SD Resource. The Arrival Sequencial Capability contains the Aircraft Event message. If you call the capabilityUsesSDResource function (see Figure A.8) and pass as argument the Arrival Sequencing Capability TinyNodeImpl and the ATL TinyNodeImpl, the function recovers all messages that the capability contains and then checks if there is some overlaps relation between the id of a message and the id of the SD resource using the isOverlap function.
illustration not visible in this excerpt
Figure A.7 Arrival Sequencing Capability and ATL SD Resource
illustration not visible in this excerpt
Figure A.8 capabilityUsesSDResource function example
A.1.2.2 CapabilityUsesSRResource function
The capabilityUsesSRResource function checks if a capability uses a SR Resource. The function receives as a parameterTinyNodeImpl capabilityandTinyNodeImpl resource that represents a XML Node in the Saxon tool. For instance, the Figure A.9 shows the Flying Capability and the Landing Information SR Resource. If you call the capabilityUsesSRResource function and pass as argument the Flying Capability TinyNodeImpl and the LandingInformation TinyNodeImpl.
Figure
illustration not visible in this excerpt
A.9 hasUses function example
A.1.2.3 Contains function
Contains function receives as parameter a String word and an ArrayList of String wordList and check if the Arraylist wordList contains the String word. The function uses the WordNet dictionary to check for synonyms words. Figure A.10 shows that the contains function returns true when it is invoked passing as parameter the String “Get” and the list of Strings wordList that consists of “Obtain”, “Delivery” and “Options”. The list of Strings wordList contains the “Get” string because “Get” and “Obtain” are synonyms.
illustration not visible in this excerpt
Figure A.10 contains function example
A.1.2.4 Contains function
Contains function check if the ArrayList of Strings List A contains all the strings in the ArrayList of Strings List B. To each String in the List A the contains function call the other contains function explained in the section A.1.2.3 passing the String in the List A and the List B as parameter. If all the Strings in the List A are contained in the List B then function returns true. For instance, in the Figure A.11 List B does not contain List A. List B contains “Get delivery options”, and “Calculate Delivery time estimates” Strings, but not contain “Login outgoing delivery” string.
illustration not visible in this excerpt
Figure A.11 Using contains function
A.1.2.4 GetAttributeValue function
The getAttributeValue function returns the value of an attribute of an XML Element in Saxon. The function receives two parameters a TinyNodeImpl node and String attributeName. The node represents a XML element in the Saxon. For instance, the Figure A.12 shows a TinyNodeImpl node in Saxon that represents the object element in XML. If you call the getAttributeValue function and pass as parameter node and the String “type” then the function returns the value “Agent” as result
illustration not visible in this excerpt
Figure A.12 getAttributeValue function example
A.1.2.5 GetTraceabilityFileName function
The getTraceabilityFileName function returns the output filename defined in the project definition and that is used to store the traceability relations.
A.1.2.6 HasRelation function
The hasRelation function checks if two elements have a traceability relation. The function receives the id of the elements to be checked and the type of traceability relation. Figure A.13 shows an example when the hasRlation function is called to check if elements with id = "_ PsspBiQyEd6fbcmFsKI3Cw" and id = "40" have a uses traceability relation.
illustration not visible in this excerpt
Figure A.13 hasRelation function example
A.1.2.7 stringTokenizer function
The stringTokenizer function receives as parameter a String and break down the string into tokens using as delimiters spaces, ‘_’, ‘-‘, ‘(‘, and ‘)’. In the Figure A.14 a list contained “Get”, “Delivery” and “Options” String is returned as result when function stringTokenizer function is called passing as parameter “Get Delivery Options” String.
illustration not visible in this excerpt
Figure A.14 stringTokenizer function example
A.1.2.8 stringTokenizerByUpperCase function
The stringTokenizerByUpperCase function receives as parameter a String and break down the String into tokens using spaces and upper case letters as delimiters. Figure A.15 shows an example when the stringTokenizerByUpperCase function is called and “GetDeliveryOptiions” String is passed as parameter. As result the stringTokenizerByUpperCase function returns a list of S
illustration not visible in this excerpt
Figure 4.15 stringTokenizerByUpperCase function example
A.1.3 XQueryJACKFunctions
illustration not visible in this excerpt
Table A.3 XQueryJACKFunctions
A.1.3.1 getBeliefSetFields function
illustration not visible in this excerpt
Figure A.16 getBeliefSetFields function example
The getBeliefSetFields function receives as parameter an id of a beliefSet in Prometheus created using the PDT tool and returns a list of Field elements. Figure A.16 shows an example when the getBeliefSetFields function is called and integer 58 is passed as parameter. The getBeliefSetFields function returns a list with the included fields.
A.1.3.2 getJACKFileName function
The getJACKFileName function returns the filename that contains the xml representation of the JACK code. The JACK filename is defined during the creation of project.
A.1.4 XQueryPDTFunctions
illustration not visible in this excerpt
Table A.4 XQueryPDTFunctions
A.1.4.1 ActorHasCapability function
The actorHasCapability function checks if an actor in i * has a traceability relation with a capability in Prometheus. The function receives as parameter the id of an actor and the id of a capability then retrieves all agents that implement the capability. If any of the agents that implement the capability has an overlap traceability with the actor then the actorHasCapability function returns true. In the Figure the actorHasCapability function is invoked by passing 44 and ,"_8pRv4FyvEd6qIOGYcZQlag" as parameter. The function retrieves all the agents that includes the capability and then call isOverlap function to check if there is an overlaps traceability relation between the Aircraft agent in Prometheus (id = 43) and the Aircraft actor i*.
illustration not visible in this excerpt
Figure A.17 ActorHasCapability function example
A.1.4.2 FieldTokenizer function
The fieldTokenizer function receives two Strings as parameter, s that contains information about the field and token that contains information how the field is structured and therefore can be divided into tokens. Figure shows an example when the fieldTokenizer function is called using as parameter the Strings “long ATL” and “space” as parameter. The fieldTokenizer function break down the String using spaces as delimiter and returns a Field element.
illustration not visible in this excerpt
Figure A.18 fieldTokenizer function example
A.1.4.3 GetAttributeValue function
illustration not visible in this excerpt
Figure A.19 getAttributeValue function example
The getAttributeValue function returns the value of an attribute of an XML Element in Saxon. The function receives two parametersa TinyNodeImpl node and String attributeName.The node represents a XML element in the Saxon. For instance, the Figure shows a TinyNodeImpl node in Saxon that represents the object element in XML. If you call the getAttributeValue function and pass as parameter node and the String “type” then the function returns the value “Agent” as result.
A.1.4.4 GetIncludedFields function
The getIncludedFieds function receives the id of an element in Prometheus and returns the included fields Strings as parameter, s contains information about the fields and token contains information how the fields are structured and can be divided into tokens. The shows an example when the getIncludedFields function is called by passing the parameter 35 that is the id of the runway _ info Data in Prometheus. The function retrieves the information that contains the included fields of the Data and then call the fieldTokenizer function. The fieldTokenizer function returns a list with the Fields of the Data.
illustration not visible in this excerpt
Figure A.20 getIncludesFields function example
illustration not visible in this excerpt
A.1.4.5 GetInformationCarried function
The getInformationCarried function receives the id of an element in Prometheus and returns the information carried by the element. Figure A.21 shows an example when the getInformationCarried function is called passing as an argument the id equal 7 that is related to the Aircraft Event message. The function retrieves the information carried by the message and returns a list with the Strings “ATL”, and “Slot Allocated”.
illustration not visible in this excerpt
Figure A.21 getInformationCarried function example
illustration not visible in this excerpt
A.1.4.6 GetPDTFileName
The getPDTFileName function returns the name of the PDT filename that has been defined during the creation of the project.
A.1.4.7 GetPrometheusElements
The getPrometheusElements function receives as parameter a String with the id of an element, a String with the types of sub-elements to be retrieved, and a list with sub-elements in case the function has been called recursively or null. The getPrometheusElements function returns an ArrayList of sub-elements of an element in Prometheus created using PDT tool.
illustration not visible in this excerpt
Figure A.22 getPrometheusElements function example
illustration not visible in this excerpt
A.1.4.8 GetPrometheusSubElements
The getPrometheusSubElements function receives TinyNodeImpl node that represents an XML Element in Prometheus and a String type that represents the type of subelements to be retrieved. If the type is equal to “step” the getPrometheusStepScenarios function is called. If the type is equal to “readBy” the getPrometheusUsesData function is called, otherwise the getPrometheusElements function is called. The function returns a list of sub-elements.
illustration not visible in this excerpt
Figure A.23 getPrometheusSubElements function example
illustration not visible in this excerpt
A.1.4.9 GetPrometheusStepScenarios
illustration not visible in this excerpt
Figure A.24 getPrometheusStepScenarios function example
illustration not visible in this excerpt
The getPrometheusStepScenarios function receives as parameter a String with the id of an element and a list of TraceElement in case the function has been called recursively, otherwise null.
illustration not visible in this excerpt
A.1.4.10 GetPrometheusSubGoalsElements
The getPrometheusSubGoalsElements function receives as parameter a String with the id of a goal element and a list with sub-elements in case the function has been called recursively otherwise null. The getPrometheusSubGoalsElements function returns an ArrayList of sub-goals of an element in Prometheus created using PDT tool.
illustration not visible in this excerpt
Figure A.25 getPrometheusSubGoals function example
illustration not visible in this excerpt
A.1.4.11 GetPrometheusSubGoalElements
The getPrometheusSubGoals function receives a TinyNodeImpl node that represents a XML Element in Prometheus.The getPrometheusSubGoals calls getPrometheusSubGoals and pass the id of goal which sub-elements are required. The function returns a list of sub-goals.
illustration not visible in this excerpt
Figure A.26 getPrometheusSubGoalsElements function example
illustration not visible in this excerpt
A.1.4.12 GetPrometheusUsesData
The getPrometheusUsesData function retrieves a list of data used by an element (e.g. Agent, Capability, and Plan) in Prometheus. The getPrometheusUsesData function receveis a String id as parameter that identify the element (e.g. Agent, Capability and Plan) and ArrayList of sub-elements that is used when the function is called recursively.
A.1.4.13 IsACapabilityThatTheAgentIncludes
The isACapabilityThatTheAgentIncludes function verifies if an agent includes a Capability. The isACapabilityThatTheAgentIncludes receives an id that identifies an Agent and the id that identifies the capability. If the agent includes the capability then isACapabilityThatTheAgentIncludes function returns true .
A.1.4.14 IsADataProducedByTheRole
The isADataProducedByTheRole function verifies if a data is produced by a role in Prometheus. The isADataProducedByTheRole function receives as parameter the id of a data in Prometheus, the id of a role in Prometheus. The isADataProducedByTheRole function returns ture if the data has been produced by the role
A.1.4.15 IsADataThatTheAgentReads
The isADataThatTheAgentReads function verifies if a data is read by a plan in Prometheus. The function receives the id of a data in Prometheus and the id of a plan in Prometheus. The isADataThatTheAgentReads function returns true if the data is read by a plan.
A.1.4.16 IsADataThatTheAgentWrites
The isADataThatTheAgentWrites function verifies if an agent writes a data in Prometheus. The isADataThatTheAgentWrites function receives as parameter the id of data in Prometheus and the id of an agent in Prometheus. The isADataThatTheAgentWrites function returns true if the agent writes a data.
[...]