Software implements a significant proportion of functionality in factory automation. Thus, efficient development and the reuse of software parts, so-called units, enhance competitiveness. Thereby, complex control software units are more difficult to understand, leading to increased development, testing and maintenance costs. However, measuring complexity is challenging due to many different, subjective views on the topic. This paper compares different complexity definitions from literature and considers with a qualitative questionnaire study the complexity perception of domain experts, who confirm the importance of objective measures to compare complexity. The paper proposes a set of metrics that measure various classes of software complexity to identify the most complex software units as a prerequisite for refactoring. The metrics include complexity caused by size, data structure, control flow, information flow and lexical structure. Unlike most literature approaches, the metrics are compliant with graphical and textual languages from the IEC 61131-3 standard. Further, a concept for interpreting the metric results is presented. A comprehensive evaluation with industrial software from two German plant manufacturers validates the metrics' suitability to measure complexity.
翻译:因此,高效开发和再利用软件部件、所谓的单位、增强竞争力。因此,复杂的控制软件单位更难理解,导致开发、测试和维护成本增加。然而,由于对这一专题有许多不同的主观观点,衡量复杂性具有挑战性。本文件比较了文献中不同的复杂定义,并用定性调查表研究域专家的复杂性,他们确认客观措施对比较复杂性的重要性。本文件提出一套衡量各种软件复杂程度的衡量标准,以确定最复杂的软件单位作为再设定的前提条件。衡量标准包括大小、数据结构、控制流程、信息流动和词汇结构造成的复杂程度。与大多数文献方法不同,衡量标准符合IEC 61131-3标准的图形和文字语言。此外,还提出了解释衡量结果的概念。两个德国工厂制造商对工业软件的全面评价证实了衡量标准的复杂性。