[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)