Keynotes
BlackBerry QNX
At least since the industrial revolution, we have been building systems that can hurt humans and the environment. We have assumed that a system becomes dangerous only when one of its components malfunctions, and have assessed its safety by analysing its failure rates. We now know that, in almost all dangerous situations, every component of the system behaved exactly as designed - nothing failed. This observation undermines the techniques traditionally used to justify that the system is adequately safe, and is just one of the many storms gathering around the design and development of such systems. Many current systems, particularly digital, socio-technical ones are “accidental”, exhibit unanticipated emergent behaviour and are encased in intellectual debt. This presentation describes some of these storms and asks how sufficient assurance can be obtained to allow a modern system to be deployed.
Amazon Web Services
I’ll present our experience applying lightweight formal methods to check correctness of key components within Amazon S3, the industry-leading cloud object storage service. Our “lightweight” approach enables seamless integration of formal models and tools into production pipelines where specifications and code are continuously evolving. We’ve been using our approach for over three years to check correctness of components at different layers of the software stack, from individual storage nodes to software running on an entire fleet of hosts. We check complex properties (such as serializability and crash consistency), using tools that run continuously in production pipelines, helping prevent numerous subtle bugs from reaching production. Notably, our framework has been adopted by engineers without formal methods expertise, allowing them to update specifications and develop tests to check new features and properties as S3 evolves. Our experience shows that formal methods can play a critical role in building confidence in the development of large-scale, mission-critical storage systems.
Stellantis
In a modern software development organization, one of the key metrics for success is the effective management and integration of design information throughout the development lifecycle. This is particularly challenging in the automotive domain, where the software development process is inherently complex and structured across distinct stages. These stages include requirements elicitation and definition, software architecture design, functional development, and multiple layers of virtual and on-target testing. Each stage operates as a specialized domain, employing unique tools and methodologies tailored to its specific objectives. Consequently, design information often becomes fragmented, confined to siloed domains and stored within specialized tools that lack transparency and accessibility across the broader organization. This fragmentation can hinder collaboration, reduce visibility, and compromise traceability. The critical challenge, therefore, is to establish a cohesive flow of information that seamlessly connects these domains. By creating a unified, transparent framework for information sharing and traceability, organizations can enable better collaboration, enhance decision-making, and ensure alignment across the entire software development process.
MDA Space
A spacecraft or space robot is designed to fly and operate in outer space. Spacecrafts or space robots are used for a variety of purposes, including communications, Earth observation, meteorology, navigation, space colonization, planetary exploration, helping astronauts for space walk, relocate space modules etc. Software plays an important part in developing such complex safety critical systems. The Agile methodology is gaining popularity over traditional waterfall-style methodology because it produces ‘working’ software from the very beginning. To support safety critical software development for space domain, incremental safety analyses performed on incremental artefacts requires the elaboration of novel methodologies for complying with applicable safety standards. Safe Agile concept defines safety strategies for Agile development lifecycle for space domain.