Simos Gerasimou
University of York
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Simos Gerasimou.
software engineering for adaptive and self managing systems | 2014
Simos Gerasimou; Radu Calinescu; Alec Banks
Self-adaptive systems used in safety-critical and business-critical applications must continue to comply with strict non-functional requirements while evolving in order to adapt to changing workloads, environments, and goals. Runtime quantitative verification (RQV) has been proposed as an effective means of enhancing self-adaptive systems with this capability. However, RQV frequently fails to provide the fast response times and low computation overheads required by real-world self-adaptive systems. In this paper, we investigate how three techniques, namely caching, lookahead and nearly-optimal reconfiguration, and combinations thereof, can help address this limitation. Extensive experiments in a case study involving the RQV-driven self-adaptation of an unmanned underwater vehicle indicate that these techniques can lead to significant reductions in RQV response times and computation overheads.
fundamental approaches to software engineering | 2015
Radu Calinescu; Simos Gerasimou; Alec Banks
We present DECIDE, a rigorous approach to decentralising the control loops of distributed self-adaptive software used in missioncritical applications. DECIDE uses quantitative verification at runtime, first to agree individual component contributions to meeting systemlevel quality-of-service requirements, and then to ensure that components achieve their agreed contributions in the presence of changes and failures. All verification operations are carried out locally, using component-level models, and communication between components is infrequent. We illustrate the application of DECIDE and show its effectiveness using a case study from the unmanned underwater vehicle domain.
automated software engineering | 2015
Simos Gerasimou; Giordano Tamburrelli; Radu Calinescu
The formal verification of finite-state probabilistic models supports the engineering of software with strict quality-of-service (QoS) requirements. However, its use in software design is currently a tedious process of manual multiobjective optimisation. Software designers must build and verify probabilistic models for numerous alternative architectures and instantiations of the system parameters. When successful, they end up with feasible but often suboptimal models. The EvoChecker search-based software engineering approach and tool introduced in our paper employ multiobjective optimisation genetic algorithms to automate this process and considerably improve its outcome. We evaluate EvoChecker for six variants of two software systems from the domains of dynamic power management and foreign exchange trading. These systems are characterised by different types of design parameters and QoS requirements, and their design spaces comprise between 2E+14 and 7.22E+86 relevant alternative designs. Our results provide strong evidence that EvoChecker significantly outperforms the current practice and yields actionable insights for software designers.
international conference on tools with artificial intelligence | 2012
Constantinos Stylianou; Simos Gerasimou; Andreas S. Andreou
Software project managers are often faced with challenges when trying to effectively staff and schedule projects. Incorrectly planning and estimating the execution of tasks frequently causes software projects to be delivered late and/or over budget, whereas not selecting the appropriate developers to carry out tasks may produce lower-quality, defective software products. To combat these challenges, this paper presents IntelliSPM -- a tool aiming to support software project management activities consisting of several optimization mechanisms borrowed from the area of Computational Intelligence. The tool takes into account technical aspects but also significant human factors, which have been found to play a crucial role in software quality and developer productivity. The purpose of IntelliSPM is to offer suggestions to project managers containing a set of possible project schedules and staffing strategies that minimizes duration and maximizes resource usage. Several simulated and real-world projects were used during the validation process, with results showing that IntelliSPM is capable of providing that much-needed practical benefit to software companies to improve various aspects of development, such as performance and job satisfaction, whilst keeping within the general objectives and particular constraints of each software project.
2017 IEEE International Conference on Software Architecture (ICSA) | 2017
Radu Calinescu; Milan Češka; Simos Gerasimou; Marta Z. Kwiatkowska; Nicola Paoletti
We present a method for the synthesis of software system designs that satisfy strict quality requirements, are Pareto-optimal with respect to a set of quality optimisation criteria, and are robust to variations in the system parameters. To this end, we model the design space of the system under development as a parametric continuous-time Markov chain (pCTMC) with discrete and continuous parameters that correspond to alternative system architectures and to the ranges of possible values for configuration parameters, respectively. Given this pCTMC and required tolerance levels for the configuration parameters, our method produces a sensitivity-aware Pareto-optimal set of designs, which allows the modeller to inspect the ranges of quality attributes induced by these tolerances, thus enabling the effective selection of robust designs. Through application to two systems from different domains, we demonstrate the ability of our method to synthesise robust designs with a wide spectrum of useful tradeoffs between quality attributes and sensitivity.
international conference on software engineering | 2018
Radu Calinescu; Danny Weyns; Simos Gerasimou; M. Usman Iftikhar; Ibrahim Habli; Tim Kelly
Software systems are increasingly expected to cope with variable workloads, component failures and other uncertainties through self-adaptation. As such, self-adaptive software has been the subject of intense research over the past decade [3, 4, 9, 10].
software engineering for adaptive and self managing systems | 2017
Simos Gerasimou; Radu Calinescu; Stepan Shevtsov; Danny Weyns
Recent advances in embedded systems and underwater communications raised the autonomy levels in unmanned underwater vehicles (UUVs) from human-driven and scripted to adaptive and self-managing. UUVs can execute longer and more challenging missions, and include functionality that enables adaptation to unexpected oceanic or vehicle changes. As such, the simulated UUV exemplar UNDERSEA introduced in our paper facilitates the development, evaluation and comparison of self-adaptation solutions in a new and important application domain. UNDERSEA comes with predefined oceanic surveillance UUV missions, adaptation scenarios, and a reference controller implementation, all of which can easily be extended or replaced.
quantitative evaluation of systems | 2017
Radu Calinescu; Milan Češka; Simos Gerasimou; Marta Z. Kwiatkowska; Nicola Paoletti
We introduce RODES – a tool for the synthesis of probabilistic systems that satisfy strict reliability and performance requirements, are Pareto-optimal with respect to a set of optimisation objectives, and are robust to variations in the system parameters. Given the design space of a system (modelled as a parametric continuous-time Markov chain), RODES generates system designs with low sensitivity to required tolerance levels for the system parameters. As such, RODES can be used to identify and compare robust designs across a wide range of Pareto-optimal tradeoffs between the system optimisation objectives.
Self-Aware Computing Systems | 2017
Radu Calinescu; Marco Autili; Javier Cámara; Antinisca Di Marco; Simos Gerasimou; Paola Inverardi; Alexander Perucci; Nils Jansen; Joost-Pieter Katoen; Marta Z. Kwiatkowska; Ole J. Mengshoel; Romina Spalazzese; Massimo Tivoli
Self-aware computing systems are envisaged to exploit the knowledge of their own software architecture, hardware infrastructure and environment in order to follow high-level goals through proactively adapting as their environment evolves. This chapter describes two classes of key enabling techniques for self-adaptive systems: automated synthesis and formal verification. The ability to dynamically synthesize component connectors and compositions underpins the proactive adaptation of the architecture of self-aware systems. Deciding when adaptation is needed and selecting valid new architectures or parameters for self-aware systems often requires formal verification. We present the state of the art in the use of the two techniques for the development of self-aware computing systems and summarize the main research challenges associated with their adoption in practice.
automated software engineering | 2018
Simos Gerasimou; Radu Calinescu; Giordano Tamburrelli
An increasingly used method for the engineering of software systems with strict quality-of-service (QoS) requirements involves the synthesis and verification of probabilistic models for many alternative architectures and instantiations of system parameters. Using manual trial-and-error or simple heuristics for this task often produces suboptimal models, while the exhaustive synthesis of all possible models is typically intractable. The EvoChecker search-based software engineering approach presented in our paper addresses these limitations by employing evolutionary algorithms to automate the model synthesis process and to significantly improve its outcome. EvoChecker can be used to synthesise the Pareto-optimal set of probabilistic models associated with the QoS requirements of a system under design, and to support the selection of a suitable system architecture and configuration. EvoChecker can also be used at runtime, to drive the efficient reconfiguration of a self-adaptive software system. We evaluate EvoChecker on several variants of three systems from different application domains, and show its effectiveness and applicability.