Safety Critical Systems and Their Development Process
Aircrafts and the systems they use are a bit complicated and complex for individuals to understand fully and as such demands for great caution. Just like other systems, avionics software usually stick to specified development procedures including planning, development and correctness. Software engineers rely on the given standards and frameworks to guide them throughout the development process. Each software has to be compliant with the development assurance levels as they describe the planning, development and correctness phases. There are five levels of software development assurance with each depending on the type of aircraft being designed and the complexity increases as the levels go higher.
Specific objectives need to be defined when using the criticality levels so as to enable for assessment in complying and meeting the set requirements. Low software development assurance levels require lesser objectives as compared to higher levels. Software design is similar to other development processes since it is made up of planning, development and correctness performed in a specified order. The planning process involves creating a plan on how activities will be performed to produce satisfactory systems within the given timeframe. Certain standards and plans are associated to the planning process to ensure compliance and fulfillment of intended purpose.
A software being compliant to the software development requirements is approved through the plan for software aspects of certification. The second plan referred to as the software quality assurance plan describes how the objectives will be met for the particular project. Software configuration management plans describe how change management and baseline objectives are deployed and fulfilled.
Software development plan show the use of system requirements, code, design and integration are used to meet the given objectives. The software verification plan explains the various processes of testing, analyzing, and reviewing that will be used when verifying certification. The procedure used in decomposing system requirements to high level requirements and then into low level requirements is explained through the software requirements standard.
Software architecture and design is defined and its assessment detailed using the software design standard.
Software developments requires code to be written and the implementation and assessment of the code is provided in the software coding standard. When designing software, certain objectives must be met and correctness deals with verifying that all the objectives are actually satisfied. Correctness makes sure that security and critical level applications meet the integrity levels specified for such systems. When well structured and defined requirements are created, it becomes more cost effective and effective to check for issues and undertake necessary actions. If correctness is applied throughout, it becomes possible to identify issues much earlier and once noticed they are corrected appropriately to prevent cases of facing difficulties.