Turvallisuuskriittiset ohjelmistot konejärjestelmissä

[In English: Safety Critical Software in Machine Systems]

Implementation: Seppo Kuikka, Jari Seppälä, Timo Vepsäläinen, Mikko Salonen

Funding: TEKES, VTT TTY, John Deere Forestry, Bronto Skylift , ABB, Sandvik Mining and Construction, Metso, EPEC, Konecranes, Sundcon, Safety Advisor

Partners: VTT Techical Research Centre of finland

Duration of the project: 2009 - 2011

The project consists of seven tasks which are each aimed to support different phases of development of safety critical software in machine and machine automation systems. The Automation Software Engineering research group mainly contributes to tasks 2 and 4. These tasks will be presented in more detail.

Task 1: Concept and technology survey (Käsite- ja teknologiaselvitys)
This task focuses on finding and describing suitable, valued practices and methods for different phases of software development. The practices will be categorized based on the aimed task, the phase of the project the practice is aimed for and suitability for different safety integrity levels.

Task 2: Functional safety and security as components of overall safety (Toiminnallinen turvallisuus ja tietoturva turvallisuuden osatekijöinä)
Traditionally,  functional safety and development of safety related functionalities have constituted an important part of development of any machine or machine automation system. In addition to functional safety, another safety related aspect of the systems, importance of which have been understand during recent decades, is security and data security. However, although there are similarities and dependencies between these aspects of the systems and system development, they are usually designed, implemented and assessed at least partially separately from each other. The aim of the task is to unify the concepts of functional safety and security into a cohesive entity supporting the development of safety critical applications. To achieve the objective, the risk and threat analysis supporting the functional safety and security as well as information provided by the analysis methods will be unified into a modeling framework supporting both the development and quality assessment of the systems.

Task 3: Safety requirements of software development phases (Ohjelmistokehityksen vaiheiden turvallisuusvaatimukset)
Traditionally software development and especially safety critical software development has followed the well known water fall model. However, iterative and agile development processes offer nowadays considerable alternatives for the traditional development process. The aim of the task is to compare the traditional V-model suggested by the safety related standards to certain more agile process models from the point of view of the safety and safety related risks.

Task 4: Architectures of control systems and control applications (Ohjausjärjestelmien ja ohjelmistojen arkkitehtuurit)
In addition to aspects common to all software development, the development of safety related software contains challenges of special character, such as, isolating the safety critical code and functionality from non-safety-related-code. Another difficulty related to the development of safety related applications is that utilization of commercial or open source components or solutions, such as design patterns, as a part of an application is more difficult because of the responsibility over the whole application. In contrary to finding solutions to these challenges independently from each other, it is in our view that these difficulties could and should be met on the architectural level of the application. The aim of the task is, consequently, to collect, compose and describe practical examples of software architectures and patterns related to the aforementioned challenges as well as to safety critical applications in general.

Task 5: Development of an operations model for software engineering (Ohjelmistosuunnittelun toimintamallin kehittäminen)
This task focuses on development of an operations model for software engineering and development based on the results of the tasks 2, 3 and 4.

Task 6: Customer cases (Yrityscaset)
This tack covers empirical evaluation and application of the results of the project to selected applications of the project partners.

Task 7: Coordination and reporting (Koordinointi ja raportointi)