The design and development of aircraft and their systems is quite complex and requires high levels of security and other considerations. Designing avionics software follows several stages of planning, development and correctness which need to be carefully undertaken to ensure quality systems. Software engineers rely on the given standards and frameworks to guide them throughout the development process. The development assurance levels of the software being designed are concerned with the planning, design and correctness of the specific systems. There are five software development assurance levels determined by the types of aircrafts getting designed and their levels of complexity goes higher with increasing levels.
The five criticality levels expect the designers to specify unique objectives of the software to give direction when testing for fulfilment of the requirements. As the levels increase more objectives are needed to satisfy the requirements compared to objectives for the lower levels. Common to other forms of development, software development abides to a three phase approach comprised of planning, development and evaluation. Since the development process requires a number of tasks, planning helps in scheduling and assigning the tasks to various team members. Planning has five plans and standards associated with the complete cycle before the development process can be started.
The plan for software aspects of certification deals with ensuring that the systems comply to the provided software development requirements. 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 indicate fulfilment of baseline objectives and change management within the project.
The deployment of software requirements, code, design and integration to satisfy objectives is indicated using the software development plan. Tests to be used, the reviewing procedures, the analysis process and tools deployed in checking that the system meets objectives are included in the software verification plan. The software requirements standards describe how the system requirements will be translated into high level requirements and later to low level requirements.
The software design standard is used to define the criteria for defining and assessing the software design and architecture.
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. The ability of a system to perform the required tasks especially for critical level software is verified through continuous software correctness. It is necessary for software to have properly structured and defined requirements to reduce the time taken to verify and also saving costs. 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.