The complexity of modern software systems is continuously growing together with the communication capabilities and computational power of pervasive technology, embodied by a wide range of interacting heterogeneous smart devices; Internet of Things and Cyber Physical Systems, and complex distributed software based on Cloud, Fog, Mobile and Edge Computing, or supporting Distributed Ledgers or SCADA systems, pose serious challenges to the development of secure and reliable applications.
Such a problem involves several stages of the software development process, and its complexity calls for the adoption of complementary approaches that can be possibly integrated to achieve better results; to this aim, we strive to investigate different innovative techniques and methods for easing software development of secure and reliable complex systems, with particular focus on the requirement, design, implementation, testing, verification and validation phases.
The ability to cover both security and correctness aspects of a wide category of systems, as those mentioned above, requires several kinds of expertise which offer the opportunity to exploit synergistic collaborations for comparing and integrating different approaches. For instance, both static and dynamic techniques are adopted for the automatic analysis of security-sensitive distributed applications; verification and validation of reliable systems is improved by combining formal verification, testing and runtime verification; furthermore, new methods for requirement specifications and the design and implementation of novel programming abstractions simplify the testing, verification and validation phases.
PE6_3 Software engineering, operating systems, computer languages
PE6_4 Theoretical computer science, formal methods, and quantum computing
PE6_5 Cryptology, security, privacy, quantum crypto
Contact Person: Davide Ancona