Almost all software projects at SYSTEC are customer-driven. Many customers refer in their specification sheets to internal software engineering guidelines as the basis for order placement. In such cases, SYSTEC employees apply the guidelines as defined in the specifications. One example that can be mentioned here is the DO178 RTCA guideline applied in the aerospace industry.
For all other projects (major projects without any customer-defined specifications for software engineering), SYSTEC uses a first-level documented procedure.
The key document in the field of software engineering is the software quality management plan. The three-level V-model is the preferred option for complex systems solutions in the field of specialized mechanical engineering or in embedded projects, but can also be applied for projects confined purely to software.
The specification sheet provided by the customer is the basis on which system requirements are then analyzed. The aim of that analysis is to draw up the system specification. The system specification contains all the requirements specified in the specification sheet and can be adapted if requirements change. It makes sense to take the specification sheet provided by the customer, if suitable, as the basis for preparing the system specifications. In the process of designing the system, the higher-level design specifications and the basis for parts of the documentation of preliminary and final acceptance are created.
If necessary (due to customer requirements, for example), the “Software Requirement Description” and “Software Design Description” are prepared. In the aerospace industry, these documents are obligatory (separate files, see DO178 RTCA).
Documentation of preliminary and final acceptance procedures includes the requirement keys from the specification sheet. The results of analysis and the design of the subsystem level are the basis for the software concept and for the documentation of testing and validation on this level. It is mandatory to conduct a hazard analysis in the case of software covering safety aspects (e.g., in the medical field).
Various methods may be applied simultaneously in the software engineering process. In many cases, it makes sense to develop smaller modules (e.g., driver for measuring equipment) in advance (bottom-up method), in order to prevent problems from arising in the respective integration phases. The decision on which approach to adopt for the main structures of the software (e.g., template-based programming) may be taken at the same time, of course. Due to the wide range of customers, industries and applications, SYSTEC uses a variety of software engineering methods.
When developing a new application, it makes sense to check whether software for such a project has already been developed by SYSTEC. If so, the decision has to be taken whether components or perhaps even the whole framework of the existing software can be utilized. If the application is completely new, it is firstly necessary to confer and reach agreement with the customer on which software engineering method will be adopted.
Selection of the optimal programming language, the toolset, the template, framework or test sequencer is the basis for further procedure, due to the characteristics of the selected elements.
When selecting the software engineering tools and platforms, various aspects need to be taken into consideration:
- license available (if necessary, e.g., FDA, DO178RTCA, etc.)
- deployment at the customer
- serviceable by the customer
- multiplatform capability
- life cycle aspects
- serviceability and availability
- driver aspects (availability, validation capability)
- costs (e.g., runtime licenses)
- communications aspects (methods)
- capability of integration in existing environments
- test scenarios
- hardware used
- simulation options
- templates/frameworks/toolsets available
- revision management