Tag: software-safety-training

  • Principles of Safe Software Course

    Principles of Safe Software Course

    The Principles of Safe Software Course – Learn how to develop safe software – and understand what the safety standards are really asking you to do.

    Software is everywhere. And increasingly, safety depends on it.

    Modern aircraft, vehicles, ships, railways, industrial systems and other safety-critical systems rely on software to perform functions that can affect human life.

    But software safety can be difficult to understand.

    Software engineers may understand software development extremely well, but have limited experience with safety engineering.

    Safety engineers may understand hazards, risk and safety assurance, but not the realities of software development.

    And engineers and managers who sit between the two disciplines can struggle to understand how software, safety and standards fit together.

    This course bridges that gap.

    Principles of Safe Software gives you a practical introduction to software safety, software development, and the major safety standards used in safety-critical industries.

    3+ hours of video • 38 lessons • Quizzes • Course resources • Self-paced online learning

    $495


    Why is software safety so difficult?

    Software is not physically dangerous in the same way as a failed structural component, leaking pipe or broken mechanical part.

    Yet software can control those things.

    A software defect can cause a system to:

    • issue the wrong command;
    • fail to issue a required command;
    • respond at the wrong time;
    • enter an unsafe state;
    • prevent a safety function from operating;
    • misinterpret sensor information; or
    • behave correctly according to its specification while the specification itself is unsafe.

    That creates a fundamental challenge:

    How do we gain confidence that software will contribute to system safety throughout its lifecycle?

    The answer is not simply “test the software”.

    Safe software requires an understanding of system hazards, safety requirements, software development, verification and validation, independence, assurance and the relationship between software and the wider system.

    This course introduces those principles and shows how they appear in major safety standards.


    Principles of Safe Software Course: What you will learn

    By the end of the course, you will have a practical understanding of:

    Software development

    Understand the fundamentals of software development and why the software lifecycle matters to safety.

    Software safety

    Understand what makes software safety different from conventional software engineering and why software assurance must be considered in the context of the complete system.

    Safe software principles

    Learn the core principles used to develop and assure safety-related software.

    Safety standards

    Understand why safety standards exist, what they are trying to achieve, and how different standards approach software safety.

    RTCA DO-178 / ED-12

    Understand the principles behind the internationally recognised software considerations used for airborne systems.

    IEC 61508

    Understand the role of IEC 61508 as a foundational functional-safety standard and how it addresses software within the overall safety lifecycle.

    ISO 26262

    Understand the principles of automotive functional safety and how ISO 26262 addresses software in safety-related road-vehicle systems.

    Comparing standards

    Learn to recognise the common principles shared by different safety standards — and the important differences between them.

    Lessons learned

    Consolidate the key ideas and consider what they mean when applying software safety in real projects.


    What’s inside the Principles of Safe Software Course?

    Introduction to the Principles of Safe Software Course

    The course contains 38 lessons organised into ten sections.

    1. Introduction

    Start with an overview of the course and explore free previews from the main chapters.

    2. Software Development Facts

    Explore the realities of software development and the implications for safety.

    3. Software Safety Facts

    Understand the characteristics of software that make safety assurance challenging.

    4. Safe Software Principles

    Learn the fundamental principles for developing and assuring safe software.

    5. Overview of Software Standards

    Explore the landscape of software and functional-safety standards.

    6. RTCA DO-178 / ED-12

    Examine the principles behind DO-178 and its approach to airborne software.

    7. IEC 61508

    Explore the software-safety principles within IEC 61508 and the wider functional-safety lifecycle.

    8. ISO 26262

    Understand the software-safety principles applied in automotive functional safety.

    9. Review of Standards

    Bring the standards together and compare their approaches.

    10. Lessons Learned

    Consolidate the key principles and consider how to apply them in practice.


    The Principles of Safe Software Course is for you if…

    You’re a software engineer

    You understand software development, but want to understand why safety engineers care about your software and what they need from you.

    You will gain a foundation in safety concepts, hazards, safety requirements, and software assurance.

    You’re a safety engineer

    You understand system safety, hazard analysis and risk, but want to understand how software development affects your safety argument.

    You will gain an introduction to software development and the principles used to assure safety-related software.

    You’re a systems engineer

    You need to understand how software fits into the overall system safety process.

    This course provides the bridge between system-level safety and software-level development and assurance.

    You’re an engineering or project manager

    You don’t need to become a software developer or software safety specialist.

    You do need to understand the issues well enough to ask the right questions, challenge assumptions and make informed decisions.


    Stop treating software as a black box

    A common mistake is to treat software safety as something that happens after software development.

    It doesn’t.

    Safety needs to influence the system lifecycle from the beginning.

    That means understanding the relationship between:

    System → Functions → Hazards → Safety Requirements → Software Requirements → Design → Implementation → Verification → Validation → Safety Assurance

    When these relationships are poorly understood, safety activities can become disconnected from software development.

    When they are understood properly, software safety becomes part of the engineering process rather than an additional compliance exercise.

    That’s the perspective this course is designed to provide.


    One Principles of Safe Software Course. Three major safety standards.

    You don’t need to learn three standards independently and hope that the principles eventually make sense.

    This course introduces:

    RTCA DO-178 / ED-12
    Airborne software

    IEC 61508
    Functional safety

    ISO 26262
    Automotive functional safety

    The objective isn’t simply to memorise clauses.

    It’s to understand the engineering principles behind the standards.

    Once you understand those principles, it becomes much easier to understand why different standards ask for particular processes, activities, evidence and assurance.


    What makes this Principles of Safe Software Course different?

    It focuses on principles, not clause memorisation.

    Standards change. Technologies change. Projects change.

    The underlying engineering principles are much more durable.

    It connects software engineering with system safety.

    Software cannot be considered safely in isolation from the system in which it operates.

    It is industry-aware.

    The course draws on approaches used across safety-critical industries rather than presenting software safety as an exclusively software-development problem.

    It is practical and accessible.

    You don’t need to be a software specialist to understand the course.

    And you don’t need to be a safety specialist.

    The course is designed to help people from both disciplines understand each other.

    It is self-paced.

    Work through the material when it suits you, revisit difficult topics, and learn at your own pace.


    Learn from decades of safety-critical engineering experience

    The Safety Artisan was created to make practical system safety and safety engineering knowledge accessible to engineers and professionals.

    The course material is informed by more than 30 years of experience working with safety-critical systems across aerospace, defence and other complex engineering environments.

    The objective is simple:

    Give engineers the knowledge they need to do better safety engineering.

    Not just understand the terminology.

    Not just pass an assessment.

    But understand what the principles mean when applied to real systems.


    What you’ll get

    Your course enrolment includes:

    • 38 lessons
    • More than 3 hours of video instruction
    • Software development lessons
    • Software safety lessons
    • Safe software principles
    • Coverage of major software safety standards
    • RTCA DO-178 / ED-12
    • IEC 61508
    • ISO 26262
    • Quizzes to reinforce learning
    • Course transcripts
    • Course slides
    • Lessons learned
    • Self-paced online access

    Don’t just learn the standards. Understand the engineering.

    A safety standard can tell you what activities and evidence are expected.

    It doesn’t automatically tell you how to think about the underlying engineering problem.

    That’s why understanding the principles matters.

    If you understand:

    why software can contribute to hazards,

    how safety requirements relate to software requirements,

    why verification and validation matter,

    how assurance provides confidence,

    and

    how different standards address these problems,

    you have a much stronger foundation for applying any particular software safety standard.


    Start learning Principles of Safe Software today

    Whether you’re a software engineer moving into safety, a safety engineer moving into software, a systems engineer working across both disciplines, or a manager responsible for safety-critical development, this course will give you a practical foundation in software safety.

    38 lessons.

    3+ hours of instruction.

    Three major safety standards.

    One practical introduction to the principles of safe software.

    Enrol today for $495

    Learn at your own pace. Build your understanding. Apply the principles to your own safety-critical systems.


    Frequently Asked Questions

    Do I need to be a software engineer?

    No.

    The course is designed for both software and non-software specialists. A basic understanding of engineering and software concepts will help, but the course introduces the relevant principles as it progresses.

    Do I need to be a safety engineer?

    No.

    If you are a software engineer, systems engineer or engineering manager who needs to understand software safety, this course provides a structured introduction.

    Does the course teach me how to comply with DO-178, IEC 61508 or ISO 26262?

    The course introduces the principles and approaches contained in these standards. It is not a clause-by-clause compliance course and should not be treated as a substitute for the applicable standard or your organisation’s compliance process.

    Is this course suitable for beginners?

    Yes.

    The course starts with the fundamentals and progressively introduces software safety concepts and standards.

    Is the course self-paced?

    Yes. The course is delivered online and can be completed at your own pace.

    How much video content is included?

    The course currently contains more than three hours of video content across 38 lessons.

    What standards are covered?

    The course covers the principles of RTCA DO-178 / ED-12, IEC 61508 and ISO 26262, together with an overview of software standards and a review comparing their approaches.

    What does the course cost?

    The current listed price is $495.


    Ready to understand safe software?

    Software safety doesn’t have to be a black box.

    Learn the principles. Understand the standards. Build better safety-critical software.

    Enrol in Principles of Safe Software

    $495

    38 lessons • 3+ hours of video • Self-paced online learning

  • Principles of Software Safety Assurance

    Principles of Software Safety Assurance

    This is the first in a new series of blog posts on Principles of Software Safety Assurance. In it, we look at the 4+1 principles that underlie all software safety standards.

    We outline common software safety assurance principles that are evident in software safety standards and best practices. You can think of these guidelines as the unchanging foundation of any software safety argument because they hold across projects and domains.

    The principles serve as a guide for cross-sector certification and aid in maintaining comprehension of the “big picture” of software safety issues while evaluating and negotiating the specifics of individual standards.

    In this first of six blog posts, we introduce the subject and the First Principle.

    Why Software Safety Principles?

    I’ve been involved with industrial-scale software projects since 1994, and the concept of ‘principles’ is valuable for two reasons.

    First, many technical people like detail and quickly bypass concepts to get to get to their comfort zone. This means that we often neglect the ‘big picture’ and are uncomfortable making high-level judgments. In turn, this makes it difficult for us to explain or justify our choices to management or other stakeholders.

    The second reason is similar to the first. In the guts of a standard, we can think in terms of compliance with detailed requirements and our choices become simple – black and white. This is easy, but it does not equip us to choose between standards or help us to argue that an alternative means of compliance is valid. Thus, ‘Is this good enough?’ is not a question that we find easy to answer.

    Introduction

    Software assurance standards have increased in number along with the use of software in safety-critical applications. There are now several software standards, including the cross-domain ‘functional safety’ standard IEC 61508, the avionics standard DO-178B/C, the railway application CENELEC-50128, and the automotive application ISO26262. (The last two are derivatives of IEC 61508.)

    Unfortunately, there are significant discrepancies in vocabulary, concepts, requirements, and suggestions among these standards. It could seem like there is no way out of this.

    However, the common software safety assurance principles that can be observed from both these standards and best practices are few (and manageable). These concepts are presented here together with their justification and an explanation of how they relate to current standards.

    These ideas serve as the unchanging foundation of any software safety argument since they hold across projects and domains. Of course, accepting these principles does not exempt one from adhering to domain-specific norms. However, they:

    • Provide a reference model for cross-sector certification; and
    • Aid in maintaining comprehension of the “big picture” of software safety issues;
    • While analyzing and negotiating the specifics of individual standards.

    Software Safety Principles

    Principle 1: Requirements Validity

    The first software safety assurance principle is:

    Principle 1: Software safety requirements shall be defined to address the software contribution to system hazards.

    ‘The Principles of Software Safety Assurance’, RD Hawkins, I Habli & TP Kelly, University of York.

    The evaluation and reduction of risks are crucial to the design of safety-critical systems. When specific environmental factors come into play, system-level dangers like unintentional braking release in cars and the absence of stall warnings in aircraft can result in accidents. Although conceptual, software can implement system control or monitoring features that increase these risks (e.g. software implementing antilock braking or aircraft warning functions).

    Typically, the system safety assessment process uses safety analysis methodologies like Fault Tree Analysis or Hazard and Operability (HAZOP) Studies to pinpoint how software, along with other components like sensors, actuators, or power sources, can contribute to risks.  The results of these methodologies ought to influence the formulation of safety requirements and their distribution among software components.

    It is crucial for us to remember that software is now considered a black box, utilized to enable specific functions, and with limited visibility into how these functions are implemented. The risk from some system hazards can rise to unacceptable levels if hazardous software failures are not identified and suitable safety standards are not defined and applied.

    Examples of software requirements not being adequately defined – and the effects thereof – were reported by the US Federal Drug Authority (FDA).

    Simply put, software is a fundamental enabling technology employed in safety-critical systems. Assessing how software might increase system risks should be a crucial component of the overall system safety process. We define safety standards to minimize hazardous software contributions that are discovered in a safety process, which addresses these contributions.

    These contributions must be described in a clear and testable way, namely by identifying the exact types of software failures that can result in risks. If not, we run the risk of creating generic software safety requirements—or even just correctness requirements—that don’t take into account the specific hazardous failure modes that have an impact on the system’s safety.

    Principles of Software Safety Assurance: End of Part 1 (of 6)

    I based this blog post on the paper ‘The Principles of Software Safety Assurance’, RD Hawkins, I Habli & TP Kelly, University of York. The original paper is available for free here. I learned safety engineering from Tim Kelly, and others, at the University of York. I am so glad that I can share their valuable work in a more accessible format.

    My name’s Simon Di Nucci. I’m a practicing system safety engineer, and I have been, for the last 25 years; I’ve worked in all kinds of domains, aircraft, ships, submarines, sensors, and command and control systems, and some work on rail air traffic management systems, and lots of software safety. So, I’ve done a lot of different things!

    Principles of Software Safety Training

    Learn more about this subject in my course ‘Principles of Safe Software’ here. The next post in the series is here.

    My course on Udemy, ‘Principles of Software Safety Standards’ is a cut-down version of the full Principles Course. Nevertheless, it still scores 4.42 out of 5.00 and attracts comments like:

    • “It gives me an idea of standards as to how they are developed and the downward pyramid model of it.” 4* Niveditha V.
    • “This was really good course for starting the software safety standareds, comparing and reviewing strengths and weakness of them. Loved the how he try to fit each standared with4+1 principles. Highly recommend to anyone that want get into software safety.” 4.5* Amila R.
    • “The information provides a good overview. Perfect for someone like me who has worked with the standards but did not necessarily understand how the framework works.” 5* Mahesh Koonath V.
    • “Really good overview of key software standards and their strengths and weaknesses against the 4+1 Safety Principles.” 4.5* Ann H.