Software Traceability for Multi-Agent Systems Implemented Using BDI Architecture (vol. 2)


Doctoral Thesis / Dissertation, 2011

266 Pages


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.

[...]

Excerpt out of 266 pages

Details

Title
Software Traceability for Multi-Agent Systems Implemented Using BDI Architecture (vol. 2)
College
City University London
Course
Computer Science
Author
Year
2011
Pages
266
Catalog Number
V278915
ISBN (eBook)
9783656718420
ISBN (Book)
9783656718444
File size
8719 KB
Language
English
Tags
software, traceability, multi-agent, systems, implemented, using, architecture
Quote paper
Gilberto Cysneiros Filho (Author), 2011, Software Traceability for Multi-Agent Systems Implemented Using BDI Architecture (vol. 2), Munich, GRIN Verlag, https://www.grin.com/document/278915

Comments

  • No comments yet.
Read the ebook
Title: Software Traceability for Multi-Agent Systems Implemented Using BDI Architecture (vol. 2)



Upload papers

Your term paper / thesis:

- Publication as eBook and book
- High royalties for the sales
- Completely free - with ISBN
- It only takes five minutes
- Every paper finds readers

Publish now - it's free