There is an increased reliance of our daily life on Complex Software Systems such as smart Cyber-Physical Systems and Internet of Things. Such systems are used in many safety/mission critical such as healthcare, autonomous cars, boats and underwater vehicles, maritime, energy, and smart roads, grids, buildings, and cities. Such systems are progressively turning into complex, heterogeneous, open, networked and “smart” systems that are composed of agents, sensors, actuators, information networks, and dedicated middleware and infrastructures. Given these complexities and high interaction with the physical environment, new, smart and efficient Software Engineering (SE) paradigms are needed to design, develop, test, and maintain such systems to ensure their dependability (e.g., safety) as well as other relevant quality attributes such as security and privacy.
Such systems are typically built by integrating various physical units, with known and uncertain assumptions on their physical operating environments, future deployments, middleware, and infrastructures. However, as the first dimension of the complexity and challenges, during a real operation of such a system, there is no guarantee that these (often flawed) assumptions will hold, which makes such a system vulnerable to unforeseen loopholes concerning one or more of the quality attributes. Therefore, a novel SE paradigm is expected to manage and handle uncertainty information (e.g., uncertain assumptions) throughout complex system development lifecycles in an intelligent manner. The second dimension is due to the increased deployment of Artificial Intelligence (AI) components for all kinds of reasoning and recognition tasks in modern complex systems. Current system development tools and techniques are not sufficient to cope with this complexity and challenge, and therefore a radical shift moving toward a novel SE paradigm is urgently expected. The third dimension concerns with the multi-disciplinary nature of developing, maintaining, and operating complex software systems, which concerns not only technical aspects but also ethical principles and address societal concerns especially when developing (AI-enabled) smart systems.
The aim of the Department of Engineering Complex Software Systems (ComplexSE) is to develop novel SE paradigms to address the challenges mentioned above to facilitate engineering of modern complex software systems. The ComplexSE department establishes itself with several well-established SE sub-disciplines including Model-Based Engineering, Model-Based Testing, Search-based Software Engineering, and Empirical Software Engineering.