Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Open access

MICOSE4aPS: Industrially Applicable Maturity Metric to Improve Systematic Reuse of Control Software

Published: 28 September 2021 Publication History

Abstract

automated Production Systems (aPS) are highly complex, mechatronic systems that usually have to operate reliably for many decades. Standardization and reuse of control software modules is a core prerequisite to achieve the required system quality in increasingly shorter development cycles. However, industrial case studies in aPS show that many aPS companies still struggle with strategically reusing software. This paper proposes a metric-based approach to objectively measure the maturity of industrial IEC 61131-based control software in aPS (MICOSE4aPS) to identify potential weaknesses and quality issues hampering systematic reuse. Module developers in the machine and plant manufacturing industry can directly benefit as the metric calculation is integrated into the software engineering workflow. An in-depth industrial evaluation in a top-ranked machine manufacturing company in food packaging and an expert evaluation with different companies confirmed the benefit of efficiently managing the quality of control software.

Supplementary Material

vogel-heuser (vogel-heuser.zip)
Supplemental movie, appendix, image and software files for, MICOSE4aPS: Industrially Applicable Maturity Metric to Improve Systematic Reuse of Control Software

References

[1]
1061–1992 IEEE Standard for a Software Quality Metrics Methodology. IEEE /Institute of Electrical and Electronics Engineers Incorporated, s.l.
[2]
3S-Smart Software Solutions GmbH. 2019. Data Sheet CODESYS Static Analysis — Product Data Sheet V0.0.0.1.
[3]
Florian Angerer, Herbert Prähofer, Rudolf Ramler, and Friedrich Grillenberger. 2013. Points-to analysis of IEC 61131-3 programs: Implementation and application. In IEEE 18th Conference on Emerging Technologies & Factory Automation (ETFA). IEEE, 1–8.
[4]
Barry C. Arnold. 2015. Pareto distributions second edition (2nd ed.). Chapman & Hall /CRC Monographs on Statistics & Applied Probability. Taylor and Francis, Hoboken.
[5]
Elvira M. Arvanitou, Apostolos Ampatzoglou, Alexander Chatzigeorgiou, Matthias Galster, and Paris Avgeriou. 2017. A mapping study on design-time quality attributes and metrics. JSS 127, 52–77.
[6]
Nathaniel Ayewah, William Pugh, David Hovemeyer, J. D. Morgenthaler, and John Penix. 2008. Using static analysis to find bugs. IEEE Software 25, 5 (2008), 22–29.
[7]
Giacomo Barbieri, Nicola Battilani, and Cesare Fantuzzi. 2015. A PackML-based design pattern for modular PLC code. IFAC-PapersOnLine 48, 10 (2015), 178–183.
[8]
Beckhoff Automation GmbH & Co. KG. 2019. Manual TC3 PLC Static Analysis.
[9]
Iwan Binanto, Harco L. Hendric Spits Warnars, Bahtiar S. Abbas, and Nesti F. Sianipar. 2018. Automation processing Halstead metrics application's results. In Indonesian Association for Pattern Recognition International Conference (INAPR). IEEE, 1–4.
[10]
Dimitri Bohlender, Hendrik Simon, Nico Friedrich, Stefan Kowalewski, and Stefan Hauck-Stattelmann. 2016. Concolic test generation for PLC programs using coverage metrics. In IEEE 13th International Workshop on Discrete Event Systems (WODES), Piscataway, NJ, 432–437.
[11]
Safa Bougouffa, Sebastian Diehm, Michael Schwarz, and Birgit Vogel-Heuser. 2017. Scalable cloud based semantic code analysis to support continuous integration of industrial PLC code. In IEEE 15th International Conference on Industrial Informatics (INDIN), 621–627.
[12]
G. A. Campbell, Patroklos P. Papapetrou, and Olivier Gaudin. 2014. SonarQube in action. Manning, Shelter Island.
[13]
Lorena Capitán and Birgit Vogel-Heuser. 2017. Metrics for software quality in automated production systems as an indicator for technical debt. In IEEE 13th IEEE Conference on Automation Science and Engineering (CASE). IEEE, 709–716.
[14]
Wenbin W. Dai, Valeriy Vyatkin, and James H. Christensen. 2013. Essential elements for programming of distributed automation and control systems. In IEEE 18th Conference on Emerging Technologies & Factory Automation (ETFA), 1–8.
[15]
Tom DeMarco. 1986. Controlling software projects: Management, measurement, and estimates.
[16]
Rickard Elsen, Inggriani Liem, and Saiful Akbar. 2016. Software versioning quality parameters: Automated assessment tools based on the parameters. In International Conference on Data and Software Engineering (ICoDSE). IEEE, 1–6.
[17]
Sascha El-Sharkawy, Nozomi Yamagishi-Eichler, and Klaus Schmid. 2019. Metrics for analyzing variability and its implementation in software product lines: A systematic literature review. Information and Software Technology 106, 1–30.
[18]
Emelie Engström and Per Runeson. 2011. Decision support for test management and scope selection in a software product line context. In 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops. IEEE, 262–265.
[19]
Alexander Fay, Birgit Vogel-Heuser, Timo Frank, Karin Eckert, Thomas Hadlich, and Christian Diedrich. 2015. Enhancing a model-based engineering approach for distributed manufacturing automation systems with characteristics and design patterns. JSS 101, 221–235.
[20]
Stefan Feldmann, Florian Hauer, Sebastian Ulewicz, and Birgit Vogel-Heuser. 2016. Analysis framework for evaluating PLC software: An application of semantic web technologies. In IEEE 25th International Symposium on Industrial Electronics (ISIE). IEEE, 1048–1054.
[21]
Juliane Fischer, Safa Bougouffa, Alexander Schlie, Ina Schaefer, and Birgit Vogel-Heuser. 2018. A qualitative study of variability management of control software for industrial automation systems. IEEE International Conference on Software Maintenance and Evolution (ICSME), 615–624.
[22]
M. Fischer, M. Pinzger, and H. Gall. 2003. Populating a release history database from version control and bug tracking systems. In IEEE International Conference on Software Maintenance (ICSM). IEEE Computer Society, 23–32.
[23]
H. Gall, M. Jazayeri, and J. Krajewski. 2003. CVS release history data for detecting logical couplings. In IEEE 6th International Workshop on Principles of Software Evolution. IEEE, 13–23.
[24]
Gui Gui and Paul D. Scott. 2007. Ranking reusability of software components using coupling metrics. JSS 80, 9 (2007), 1450–1459.
[25]
Maurice H. Halstead. 1977. Elements of software science (7th). Elsevier Computer Science Library: Operational Programming Systems Series. Elsevier, New York.
[26]
S. Henry and D. Kafura. 1981. Software structure metrics based on information flow. IIEEE Trans. Software Eng. SE-7, 5, 510–518.
[27]
Youssef A. Houaich and Mustapha Belaissaoui. 2015. Measuring the maturity of open source software. In 6th International Conference on Information Systems and Economic Intelligence (SIIE). IEEE, 133–140.
[28]
ANSI/ISA-88.00.01. 2010. Batch control - Part 1: Models and terminology.
[29]
ISO/IEC 25010:2011-03. 2011. Systems and software engineering --- Systems and software Quality Requirements and Evaluation (SQuaRE) --- System and software quality models.
[30]
Itris Automation Square. 2017. PLC Checker Data Sheet - Automatic analysis of PLC programs quality.
[31]
Karl H. John and Michael Tiegelkamp. 2010. IEC 61131-3: Programming industrial automation systems. Springer, Berlin.
[32]
Stephen C. Johnson, Ed. 1977. Lint, a C program checker. Bell Telephone Laboratories, Murray Hill.
[33]
Stamatis Karnouskos, Roopak Sinha, Paulo Leitao, Luis Ribeiro, and Thomas. I. Strasser. 2018. The Applicability of ISO/IEC 25023 measures to the integration of agents and automation systems. In 44th Annual Conference of the IEEE Industrial Electronics Society (IECON). IEEE, 2927–2934.
[34]
Krista M. Kcskemety, Zachary Dix, and Benjamin Kott. 2018. Examining software design projects in a first-year engineering course: The impact of the project type on programming complexity and programming. In IEEE Frontiers in Education Conference (FIE), 1–5.
[35]
Lov Kumar, Raoul Jetley, and Ashish Sureka. 2016. Source code metrics for programmable logic controller (PLC) ladder diagram (LD) visual programming language. In 7th International Workshop on Emerging Trends in Software Metrics (WETSoM). IEEE Computer Society, Conference Publishing Services; The Association for Computing Machinery, 15–21.
[36]
Lov Kumar and Ashish Sureka. 2017. Using structured text source code metrics and artificial neural networks to predict change proneness at code tab and program organization level. In 10th Innovations in Software Engineering Conference. ICPS: ACM International Conference Proceeding series. ACM, 172–180.
[37]
A. Lüder, A. Klostermeyer, J. Peschke, A. Bratoukhine, and T. Sauter. 2005. Distributed automation: PABADIS versus HMS. IEEE Trans. Ind. Inf 1, 1 (2005), 31–38.
[38]
Camelia R. Maga, Nasser Jazdi, and Peter Göhner. 2011. Reusable models in industrial automation: Experiences in defining appropriate levels of granularity. 18th World Congress - The International Federation of Automatic Control 44, 9145–9150.
[39]
T. J. McCabe. 1976. A complexity measure. IEEE Transactions on Software Engineering 4, 308–320.
[40]
Nachiappan Nagappan, Andreas Zeller, Thomas Zimmermann, Kim Herzig, and Brendan Murphy. 2010. Change bursts as defect predictors. In IEEE 21st International Symposium on Software Reliability Engineering (ISSRE). IEEE Computer Society, 309–318.
[41]
Anil Nair. 2012. Product metrics for IEC 61131-3 languages. In IEEE 17th Conference on Emerging Technologies & Factory Automation (ETFA). IEEE, 1–8.
[42]
Martin Obermeier, Steven Braun, and Birgit Vogel-Heuser. 2015. A model-driven approach on object-oriented PLC programming for manufacturing systems with regard to usability. IEEE Transactions on Industrial Informatics 11, 3 (2015), 790–800.
[43]
Marcio F. Oliveira, Ricardo M. Redin, Luigi Carro, Lu Lamb, and Fl Wagner. 042008. Software quality metrics and their impact on embedded software. In 2008 5th International Workshop on Model-based Methodologies for Pervasive and Embedded Software. IEEE, 68–77.
[44]
Herbert Prähofer, Florian Angerer, Rudolf Ramler, and Friedrich Grillenberger. 2017. Static code analysis of IEC 61131-3 programs: Comprehensive tool support and experiences from large-scale industrial application. IEEE TII 13, 1 (2017), 37–47.
[45]
Herbert Prähofer, Florian Angerer, Rudolf Ramler, Hermann Lacheiner, and Friedrich Grillenberger. 2012. Opportunities and challenges of static code analysis of IEC 61131-3 programs. In IEEE 17th Conference on Emerging Technologies & Factory Automation (ETFA). IEEE, 1–8.
[46]
Ralf Reussner, Michael Goedicke, Wilhelm Hasselbring, Birgit Vogel-Heuser, Jan Keim, and Lukas Märtin. 2019. Managed software evolution. Springer International Publishing, Cham.
[47]
J. Rosenberg. 1997. Some misconceptions about lines of code. In IEEE Fourth International Software Metrics Symposium. IEEE Comput. Soc, 137–142.
[48]
George Rzevski. 2003. On conceptual design of intelligent mechatronic systems. Mechatronics 13, 1029–1044.
[49]
Hendrik Simon and Stefan Kowalewski. 2016. Static analysis of sequential function charts using abstract interpretation. In IEEE 21st International Conference on Emerging Technologies & Factory Automation (ETFA). IEEE, 1–4.
[50]
Miroslaw Staron, Wilhelm Meding, Christoffer Hoglund, Peter Eriksson, Jimmy Nilsson, and Jorgen Hansson. 2013. Identifying implicit architectural dependencies using measures of source code change waves. In IEEE 39th EUROMICRO Conference on Software Engineering and Advanced Applications (SEAA). IEEE Computer Society, Conference Publishing Services, 325–332.
[51]
Kleanthis Thramboulidis. 2010. The 3+1 SysML view-model in model integrated mechatronics. JSEA 03, 02 (2010), 109–118.
[52]
Birgit Vogel-Heuser, Alexander Fay, Ina Schaefer, and Matthias Tichy. 2015. Evolution of software in automated production systems: Challenges and research directions. JSS 110 (2015), 54–84.
[53]
Birgit Vogel-Heuser, Juliane Fischer, Stefan Feldmann, Sebastian Ulewicz, and Susanne Rösch. 2017. Modularity and architecture of PLC-based software for automated production systems: An analysis in industrial companies. JSS 131, 35–62.
[54]
Birgit Vogel-Heuser, Juliane Fischer, Eva-Maria Neumann, and Sebastian Diehm. 2018. Key maturity indicators for module libraries for PLC-based control software in the domain of automated production systems. IFAC-PapersOnLine 51, 11 (2018), 1610–1617.
[55]
Birgit Vogel-Heuser, Juliane Fischer, Susanne Rösch, Stefan Feldmann, and Sebastian Ulewicz. 2015. Challenges for maintenance of PLC-software and its related hardware for automated production systems: Selected industrial case studies. In IEEE International Conference on Software Maintenance and Evolution (ICSME). IEEE, 362–371.
[56]
Birgit Vogel-Heuser and Felix Ocker. 2018. Maintainability and evolvability of control software in machine and plant manufacturing — An industrial survey. CEP 80, 157–173.
[57]
Birgit Vogel-Heuser, Susanne Rösch, Juliane Fischer, Thomas Simon, Sebastian Ulewicz, and Jens Folmer. 2016. Fault handling in PLC-based industry 4.0 automated production systems as a basis for restart and self-configuration and its evaluation. JSEA 09, 01 (2016), 1–43.
[58]
Sophia Voulgaropoulou, Georgios Spanos, and Lefteris Angelis. 2012. Analyzing measurements of the R statistical open source software. In IEEE 35th Annual Software Engineering Workshop (SEW). IEEE, 1–10.
[59]
Jan Wilch, Juliane Fischer, Eva-Maria Neumann, Sebastian Diehm, Michael Schwarz, Eric Lah, Matthias Wander, and Birgit Vogel-Heuser. 2019. Introduction and evaluation of complexity metrics for network-based, graphical IEC 61131-3 programming languages. In IEEE Annual Conference of the IEEE Industrial Electronics Society (IECON), 253–259.
[60]
Ian Wright and Albert Ziegler. 2019. The standard coder: A machine learning approach to measuring the effort required to produce source code change. In IEEE/ACM 7th International Workshop on Realizing Artificial Intelligence Synergies in Software Engineering (RAISE). IEEE, 1–7.

Cited By

View all
  • (2024)Change Categories Based on Mutable Artifacts in PLC Control Software Projects2024 IEEE 7th International Conference on Industrial Cyber-Physical Systems (ICPS)10.1109/ICPS59941.2024.10639988(1-7)Online publication date: 12-May-2024
  • (2023)Semi-automatic assessment of lack of control code documentation in automated production systemsat - Automatisierungstechnik10.1515/auto-2022-014671:8(670-689)Online publication date: 8-Aug-2023
  • (2022)Maturity Levels for Automation Software Engineering in automated Production Systems2022 IEEE 20th International Conference on Industrial Informatics (INDIN)10.1109/INDIN51773.2022.9976112(618-623)Online publication date: 25-Jul-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Software Engineering and Methodology
ACM Transactions on Software Engineering and Methodology  Volume 31, Issue 1
January 2022
665 pages
ISSN:1049-331X
EISSN:1557-7392
DOI:10.1145/3481711
  • Editor:
  • Mauro Pezzè
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 28 September 2021
Accepted: 01 May 2021
Revised: 01 April 2021
Received: 01 July 2020
Published in TOSEM Volume 31, Issue 1

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Automated production systems
  2. programmable logic controllers
  3. IEC 61131-3
  4. software quality

Qualifiers

  • Research-article
  • Refereed

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)179
  • Downloads (Last 6 weeks)29
Reflects downloads up to 06 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Change Categories Based on Mutable Artifacts in PLC Control Software Projects2024 IEEE 7th International Conference on Industrial Cyber-Physical Systems (ICPS)10.1109/ICPS59941.2024.10639988(1-7)Online publication date: 12-May-2024
  • (2023)Semi-automatic assessment of lack of control code documentation in automated production systemsat - Automatisierungstechnik10.1515/auto-2022-014671:8(670-689)Online publication date: 8-Aug-2023
  • (2022)Maturity Levels for Automation Software Engineering in automated Production Systems2022 IEEE 20th International Conference on Industrial Informatics (INDIN)10.1109/INDIN51773.2022.9976112(618-623)Online publication date: 25-Jul-2022
  • (2022)Metric-based Identification of Target Conflicts in the Development of Industrial Automation Software Libraries2022 IEEE International Conference on Industrial Engineering and Engineering Management (IEEM)10.1109/IEEM55944.2022.9989691(1493-1499)Online publication date: 7-Dec-2022
  • (2022)Automation Software Architecture in CPPS - Definition, Challenges and Research Potentials2022 IEEE 5th International Conference on Industrial Cyber-Physical Systems (ICPS)10.1109/ICPS51978.2022.9816893(01-08)Online publication date: 24-May-2022

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media