## 6 Underwater Object Localization Service Case Study Relying on Multi-Sensor Data Fusion
### Compilation and Simulation  
An XMI file is generated using the enhanced ArchiMO design tool to reflect the graphical design. This facilitates the design model's interaction with other tools. The simulation code is generated by our own domain-specific model compiler using the XMI file as an input (Figure 15). This saves a significant amount of development time by concealing from the designer the complexity involved in building simulation programs. Figure 14: An excerpt of the technology view from the underwater object (dolphin) localization model [16; 21]—ArchiMate Technology Layer. Figure 13: Application view from the underwater object (dolphin) localization model [16]—ArchiMate Application Layer. For UEC, the code generator requires the input model generated by the ArchiMO design tool in addition to the meta-model containing the abstract syntax of DSML. The mapping rules between the model elements and their representations in NS-3 are contained in the XPAND template in (Figure 15) [45]. The code is prone to errors, as evidenced by the compilation and execution results when we ran the resulting code in NS-3 (version 3.13). To analyze the results of the simulation, traces and logs (such as PCAP files) were created. The architecture of the system design created by NS-3 for the specified design model is displayed in Figure 16. For each design model element, NS-3 produced a hardware representation (nodes, interfaces, and wires). A message that is transmitted and received at any given time between two nodes is represented by the blue stream. This attests to the behavioral aspects being mapped in the anticipated manner. This model compiler has an error section in addition to code generation. When used, the defined MO model is used as input to build a simulation code that is ready for simulation. For this reason, we give an illustration of an error that might be found prior to turning the MO model, which was established in the preceding section into a simulation code. To demonstrate the iterative process when we face an error, we have chosen an example that contains an error. We identified a communication failure between the P-CSCF1 IMS node and a Smart Sensor interface. There is a conflicting IP address causing this problem. We change one of the P2P link's network addresses (Figure 17). A log file including an explanation of this problem is generated by the model compiler (Figure 17). Figure 16: The network topology for the underwater object (dolphin) localization example is represented by a snapshot taken from the NS-3 simulator’s Net Animator tool [2]. Figure 15: The code generator workflow in XPAND language [2]. This is where the following question can be posed: How is the model compiler able to identify these errors? Actually, according to [16], some error detection rules are implemented using the XPAND code generator template. The generating rules that are in charge of creating the simulation situation come before these rules. The procedure in question is accountable for producing a log file that includes an explanation of the problems found in the design model (Figure 17). Since there is a mistake in this figure, we repeat the relevant task until the fault is fixed and a new version of the MO model is created to be simulated. Next, we use the model compiler to iterate the validation task on the updated version, and the outcome is free of architectural design errors. It is challenging to predict the number of iterations required to produce a reliable model, though. Our approach has been used to several application domains and network simulators (Video Conferencing System [44; 45] and MO Context [16]). The underlying platform (IMS), which represents the Platform Specific Model (PSM), is the common design concept shared by all of these use cases [48]. Put differently, by addressing the underlying platform that is represented in the technology layer, we might modify the application domain while still relying on ArchiMate and our extensions (DSML) if we were to use a single tool (such as NS-3).