Software Certification: Methods and Tools

D. Cofer, J. Hatcliff, M. Huhn, M. Lawford

Dagstuhl Seminar 13051

With the pervasive deployment of software in dependable systems used in everyday life,society is increasingly demanding that software used in critical systems must meet minimum safety, security and reliability standards. Certification is the procedure by which an authorized person or agency assesses and verifies characteristics of a system or product in accordance with established requirements, standards, or regulations. For software, it encompasses traditional notions of verification, but also includes the evidence, tools, methods, and personnel qualifications that are needed to convince the certification authority that the system or product conforms to the relevant standard. Manufacturers of these systems need consistent and effective guidelines as to what constitutes acceptable evidence of software quality, and how to achieve it. Compared to process-oriented certification procedures, recent approaches provide evidence for dependability by the thorough evaluation of the product itself and the adequacy, coverage and maturity of design and quality assurance methods. Substantial progress has been made in areas including safety and assurance cases, the conceptual foundation of evidence and formal methods, and tooling for software design and verification. New approaches are necessary to develop holistic and cost-effective methodologies and to provide integrated tool support for creating certifiable software-intensive systems, as well as product-focused approaches to certifying these systems. Experts from academia and industrial practitioners met in the Dagstuhl Seminar 13051 "Software Certification: Methods and Tools" to discuss and software certification challenges, best practices, and the latest advances in certification technologies in several different software-intensive domains (automotive, aircraft, medical, nuclear, and rail).