# Architecting an Agent-Based Fault Diagnosis Engine for IEC 61499 Industrial Cyber-Physical Systems
## 5 Conclusions and Future Work  
The model-based invalidation approach presented here addresses RQ1 by providing the agent with a way of distinguishing normal operation from misbehavior. The use of domain-specific agents in the GORITE framework also provides a scope for implementing model-free or machine-learning approaches during subsequent research. The proliferation of hybrid techniques encountered in the literature suggests that a blend of fault detection methods is viable. The use of the DPs addresses RQ2 by providing feeds of not only telemetry from FBs but also control over their operations during fault investigations.  
The application of Views and Beyond coupled with ADD was used to address RQ3. The ATAM evaluations that addressed RQ4 are usually performed after the first version of the architecture has been documented. Our approach demonstrated the value of performing brief, focused and iterative ATAMs that led to the findings presented in the evaluation section. Adhering to a sound architectural documentation methodology, rigorous evaluation with the ATAM and validation with prototypes led to important architectural refinements. These are continuing to improve the resilience, performance and reliability of the engine during the subsequent on-going development.  
Model-Driven Development with Diagnostics suggests a more collaborative and resilient approach to fault management needs early in the architectural design. The engine offers a way to automate many of the fault diagnostic tasks that are not possible in the current IEC 61499 IDEs. The dynamic nature of DPs capitalises on the existing reconfigurability features of the 4 diac FORTE runtime environment. Running the engine on its own platform with multiple agents addresses scalability concerns that traditional Built-In-Self-Test (BITS) approaches to fault diagnostics and testing do not. However, engines such as these need to deliver practical advantages if they are to see adoption in the IEC 61499 community. At present, the diagnosis presented by the agents to the engineers does not include deep reasoning about the evidence captured. The belief structures presented here suggest ways of doing that which is being investigated in our current research. This is leading to the implementation of _pragmatic_ agents that reason more deeply about the faults they have observed using their domain knowledge as a basis for their deliberations. There is also further work on a Domain Specific Language used to write the diagnostic routines [3]. A level of compliance with products such as Selenium would help to standardize the way diagnostic commands are expressed by the agents, making adoption easier for users [93].  
The architecture will continue to evolve through subsequent iterations as the engine is being implemented by our team. We intend to publish further articles that include empirical evaluations of the architecture supported by appropriate FB applications that illustrate the full scope of the engines' capabilities.  
Conceptualization, B.D. and R.S.; methodology, B.D., R.S. and S.G.M.; software, B.D.; validation, B.D. and R.S.; writing--original draft preparation, B.D.; review and editing, B.D. and R.S.; supervision, R.S. and S.G.M. All authors have read and agreed to the published version of the manuscript.  
This research received no external funding.  
The authors declare no conflict of interest.