Skip to main content
Log in

Software-Qualitätssicherung im Maschinen- und Anlagenbau: automatisierte Bewertung der technischen Qualität von SPS-Code

Software quality assurance in mechanical and plant engineering: automated assessment of the technical quality of PLC code

  • Originalarbeit
  • Published:
e & i Elektrotechnik und Informationstechnik Aims and scope Submit manuscript

Zusammenfassung

In der klassischen Softwareentwicklung ist die institutionalisierte Qualitätssicherung bereits seit Jahrzehnten etabliert. Systematisches Testen mit möglichst hoher Abdeckung, Continuous Integration and Delivery (CI/CD) – also das periodische Zusammenführen von SW-Bausteinen zu Anwendungen, verknüpft mit einem automatisierten Release-Management – sind heute Standard. Unter dem Buzzword DevOps hat sich die Weiterentwicklung der (teil-)automatisierten SW-Wertschöpfungskette auch auf die Optimierung der Zusammenarbeit zwischen Entwicklern, den Fachbereichen und dem IT-Infrastrukturbereich ausgedehnt.

Auch im Bereich des Engineering von Steuerungs-Software hat sich mit etwas Verzögerung sehr viel bewegt. Die verwendeten Programmiersprachen sind zwar stabil geblieben, aber mittlerweile sind die Entwicklung mithilfe von Anlagen- und/oder Prozess-Simulation oder die virtuelle Inbetriebnahme von Maschinen und Anlagen gängige Praxis. Und auch CI/CD halten immer mehr Einzug ins Engineering von Maschinen und Anlagen.

Ein wesentlicher Aspekt der Qualitätssicherung in den Prozessen von CI/CD ist die automatisierte Beurteilung der technischen Qualität des Codes und dessen Konformität zu Standards oder individuellen Programmierrichtlinien. Diese kann schon früh in den von den Programmierern verwendeten Entwicklungswerkzeugen ansetzen, aber auch ergänzend beim automatisierten Zusammenbau von Anwendungen in der Build- und Delivery-Phase eines Projekts.

In diesem Artikel beschreiben wir das Umfeld und den Einsatz dieser Systeme im Engineering und stellen ausgesuchte Werkzeuge zur Ergänzung und speziellen Unterstützung für automatisierte Qualitätsanalysen von SPS-Software vor. Mit technischen Einblicken und Erfahrungen, speziell bezüglich der notwendigen Art der Analysen und welche Fragestellungen in der Praxis entstehen, wollen wir die Relevanz dieser Methoden und Werkzeuge im Engineering von Maschinen und Anlagen zeigen.

Abstract

In classical software development, institutionalized quality assurance has been established for decades. Systematic testing with the highest possible coverage, continuous integration, and continuous delivery (CI/CD) – i.e., the periodic merging of software modules into applications linked with automated release management – are the norm today. Under the buzzword of DevOps, the further development of the (partially) automated software value chain has also extended to the optimization of cooperation between developers, departments, and the IT infrastructure sector.

With some delay, a great deal has also been done in control software engineering. The programming languages used have remained stable, but, in the meantime, development with the help of plant and/or process simulation or the virtual commissioning of machines and plants have become common practice. Also, CI/CD are more and more employed for engineering machines and plants.

An essential aspect of quality assurance in CI/CD processes is the automated assessment of the technical quality of the code and its conformity to standards or individual programming guidelines. The assessment can start early in the development tools used by programmers, but it can also complement the automated assembly of applications in the build and delivery phase of a project.

In this article, we describe the environment and the use of these systems in engineering and present selected tools to complement and specifically support automated quality analyses of PLC software. With technical insights and experience, particularly in the necessary type of analyses and in the questions arising in practice, we want to show the relevance of these methods and tools for engineering machines and plants.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Abb. 1.
Abb. 2.
Abb. 3.
Abb. 4.

Literatur

  1. Vogel-Heuser, B., Diedrich, C., Fay, A., Jeschke, S., Kowalewski, S., Wollschlaeger, M., Göhner, P. (2014): Challenges for software engineering in automation. J. Softw. Eng. Appl., 7, 440–451. https://doi.org/10.4236/jsea.2014.75041.

    Article  Google Scholar 

  2. Shahin, M., Babar, M. A., Zhu, L. (2017): Continuous integration, delivery and deployment: a systematic review on approaches, tools, challenges and practices. IEEE Access, 5, 3909–3943. https://doi.org/10.1109/ACCESS.2017.2685629.

    Article  Google Scholar 

  3. Johnson, S. C. (1977): Lint, a C program checker. Murray Hill: Bell Telephone Laboratories. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.56.1841.

  4. Mäntylä, M. V., Lassenius, C. (2006): Subjective evaluation of software evolvability using code smells: an empirical study. Empir. Softw. Eng., 11, 395–431. https://doi.org/10.1007/s10664-006-9002-8.

    Article  Google Scholar 

  5. Sharma, T., Spinellis, D. (2018): A survey on software smells. J. Syst. Softw., 138, 158–173. https://doi.org/10.1016/j.jss.2017.12.034.

    Article  Google Scholar 

  6. Sharma, T., Singh, P., Spinellis, D. (2020): An empirical investigation on the relationship between design and architecture smells. Empir. Softw. Eng., 25(5), 4020–4068. https://doi.org/10.1007/s10664-020-09847-2.

    Article  Google Scholar 

  7. Ebert, C., Cain, J., Antoniol, G., Counsell, S., Laplante, P. (2016): Cyclomatic complexity. IEEE Softw., 33(6), 27–29. https://doi.org/10.1109/MS.2016.147.

    Article  Google Scholar 

  8. Wang, Y. (2006): Cognitive complexity of software and its measurement. In 2006 5th IEEE international conference on cognitive informatics (S. 226–235). https://doi.org/10.1109/COGINF.2006.365701.

    Chapter  Google Scholar 

  9. Dorninger, B., Moser, M. (2017): Multi-language re-documentation to support a COBOL to Java migration project. In 2017 IEEE 24th international conference on software analysis, evolution and reengineering (SANER) (Vol. 2, S. 536–540). https://doi.org/10.1109/SANER.2017.7884669.

    Chapter  Google Scholar 

  10. Kirchmayr, W., Moser, M., Nocke, L., Tober, R. (2016): Integration of static and dynamic code analysis for understanding legacy source code. In 2016 IEEE international conference on software maintenance and evolution (ICSME) (Vol. 10, S. 543–552). https://doi.org/10.1109/ICSME.2016.70.

    Chapter  Google Scholar 

  11. Moser, M., Pfeiffer, M. (2017): Towards reverse engineering of intermediate code for documentation generators. In 2017 IEEE 24th international conference on software analysis, evolution and reengineering (SANER) (Vol. 2, S. 553–554). https://doi.org/10.1109/SANER.2017.7884673.

    Chapter  Google Scholar 

  12. Buchgeher, G., Weinreich, R., Huber, H. (2018): A platform for the automated provisioning of architecture information for large-scale service-oriented software systems. In 12th European conference on software architecture, ECSA 2018 (Vol. 11048, S. 203–218). https://doi.org/10.1007/978-3-030-00761-4_14.

    Chapter  Google Scholar 

  13. Buchgeher, G., Weinreich, R., Miesbauer, C., Kriechbaum, T. (2012): Extracting and facilitating architectures in service-oriented software systems. In 2012 joint working IEEE/IFIP conference on software architecture and European conference on software architecture (S. 81–90).

    Google Scholar 

  14. Pichler, J. (2013): Specification extraction by symbolic execution. In 2013 20th working conference on reverse engineering (WCRE) (S. 462–466). https://doi.org/10.1109/WCRE.2013.6671323.

    Chapter  Google Scholar 

  15. Beckhoff TwinCat3 Static Code Analysis: https://infosys.beckhoff.com/content/1031/tc3_plc_intro/2527107467.html?id=5050808163740073114. (Abgerufen am 28.4.2021).

  16. CODESYS Static Analysis: https://store.CODESYS.com/CODESYS-static-analysis.html. (Abgerufen am 28.4.2021).

  17. CQSE Teamscale: https://www.cqse.eu/en/teamscale/features/#c529. (Abgerufen am 29.4.2021).

  18. Schneider Electric ExoStruxure: https://shop.exchange.se.com/en-US/apps/69697/ecostruxure-control-engineering---verification/overview. (Abgerufen am 29.4.2021).

  19. OMG Abstract Syntax Tree Metamodel Specification 1.0: https://www.omg.org/spec/ASTM/About-ASTM/. (Abgerufen am 04.05.2021).

  20. Juergens, E., Deissenboeck, F., Hummel, B., Wagner, S. (2009): Do code clones matter? In 2009 IEEE 31st international conference on software engineering (S. 485–495). New York: IEEE.

    Chapter  Google Scholar 

  21. IEC 61131-3:2013 Programmable controllers – Part 3. Programming languages.

  22. IEC 61499-1:2012 Function blocks – Part 1: Architecture.

  23. SonarQube: https://www.sonarqube.org/. (Abgerufen am 5.5.2021).

  24. PLCOpen Software Construction Guildelines (2016): https://plcopen.org/software-construction-guidelines. (Abgerufen am 5.5.2021).

  25. Rechenberg, P. (1986): Ein neues Maß für die softwaretechnische Komplexität von Programmen. Inform. Forsch. Entwickl., 1(1), 26–37.

    Google Scholar 

Download references

Danksagung

Die in diesem Artikel präsentierten Ergebnisse resultieren aus Forschungsarbeiten, die vom Bundesministerium für Klimaschutz, Umwelt, Energie, Mobilität, Innovation und Technologie (BMK), Bundesministerium für Digitalisierung und Wirtschaftsstandort (BMWD) und dem Land Oberösterreich im Rahmen des COMET – Competence Centers for Excellent Technologies gefördert wurden.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Thomas Ziebermayr.

Additional information

Hinweis des Verlags

Der Verlag bleibt in Hinblick auf geografische Zuordnungen und Gebietsbezeichnungen in veröffentlichten Karten und Institutsadressen neutral.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Dorninger, B., Ziebermayr, T. Software-Qualitätssicherung im Maschinen- und Anlagenbau: automatisierte Bewertung der technischen Qualität von SPS-Code. Elektrotech. Inftech. 138, 315–320 (2021). https://doi.org/10.1007/s00502-021-00917-x

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00502-021-00917-x

Schlüsselwörter

Keywords

Navigation