# Development of a Modular Software Architecture for Underwater Vehicles Using Systems Engineering
###### Abstract  
This paper addresses the development of a modular software architecture for the design/construction/operation of a remotely operated vehicle (ROV), based on systems engineering. First, systems engineering and the Vee model are presented with the objective of defining the interactions of the stakeholders with the software architecture development team and establishing the baselines that must be met in each development phase. In the development stage, the definition of the architecture and its connection with the hardware is presented, taking into account the use of the actor model, which represents the high-level software architecture used to solve concurrency problems. Subsequently, the structure of the classes is defined both at high and low levels in the instruments using the object-oriented programming paradigm. Finally, unit tests are developed for each component in the software architecture, quality assessment tests are implemented for system functions fulfillment, and a field sea trial for testing different modules of the vehicle is described. This approach is well suited for the development of complex systems such as marine vehicles and those systems which require scalability and modularity to add functionalities. marine robotics; remotely operated vehicle; systems engineering; software architecture; marine engineering +
Footnote †: journal: Marine Science and Engineering  
0000-0001-9993-3341][PERSON]  
1 School of Engineering, Universidad Pontificia Bolivariana, Medellin 050031, Colombia; [EMAIL_ADDRESS]  
1 School of Engineering, Universidad Pontificia Bolivariana, Medellin 050031, Colombia; carlos. developments include low-cost ROV prototypes [23], fault-tolerant control systems [2], small ROV for assessing radiation [24], deep-ocean research [25], energy-efficient vehicles [26], hybrid vehicles that can work either as ROV or AUV [27], and motion feasibility frameworks based on industry standards [28]. Systems engineering (SE) has been defined by NASA [29] as \"a methodical, multidisciplinary approach for the design, realization, technical management, operations, and retirement of a system\" and has been identified to be a key discipline to enable the interactions of components that provide functionality within a complex system [30; 31] that is expected to meet several requirements [29]. Some robotic systems developments that have used SE by considering functional requirements [32; 33] include, among others, unmanned aerial systems [34], quadrotor aerial vehicles [35], and specific frameworks regarding the maritime domain [36]. The development of software systems, based on the functional decomposition started at the beginning of the 1990s, with object-oriented approaches proposed to replace the traditional software life cycle [37]. In the decade of the 2000s, software development for underwater vehicles was focused on the implementation of real-time platforms to be used with hierarchical control structures [38; 39]. Later, in the 2010s, embedded systems were frequently used within the hardware architecture for robotic systems [40; 41; 42], which required more advanced software architectures in order to allow integrating new components [43] into the vehicles while guaranteeing real-time operation and the execution of several tasks [44] and more challenging missions [45; 46]. More recently, because of the sophistication of autonomous systems, new opportunities for maritime activities have appeared in the scenario [47] and more advanced and flexible software systems are being required. Regarding this matter, [PERSON] et al. [48] performed an extensive review from a software engineering perspective on solutions for mobile robotic systems that will need to be able to operate in uncontrollable and unknown environments. For instance, [PERSON] et al. [49] proposed a two-layer software architecture for a hybrid underwater vehicle that exhibited a satisfactory multi-task processing performance.