Layered architecture represents the software structure in the form of layers. Every element in the software is assigned to one of the layers such that the relationship amongst the elements is maintained. A set of design principles rules the process of construction of the layered architecture. Various statistical measures have been defined to check whether the layered architecture of a given software is following these design principles or not. In this paper, we redefine the measures of layered architecture based on the relationship between the software components. The measures check for the violations committed regarding the back calls, skip calls, and cyclic structures. Further, we also introduce a new measure to verify the logical separation amongst the layers. The system's current architecture is extracted from the source code and represented using a three-tier layered structure, which is the defacto standard architecture of Java applications. The redefined measures are applied to determine the conformance of layering principles in the system. We evaluate five different software systems for their architecture consistency. The results obtained on our redefined measures are compared to those obtained by applying the standard set of measures. A quantitative analysis of the proposed measures is performed, and we conclude that they can determine the consideration of layering principles followed during the development of a software system.
翻译:层层结构代表以层为形式的软件结构。 软件中的每个元素都指定给一个层, 以便保持各元素之间的关系。 一套设计原则管理着层结构的构建过程。 定义了各种统计措施, 以检查某一软件的层结构是否遵循了这些设计原则。 在本文件中, 我们根据软件组件之间的关系重新定义了层结构的测量方法。 检查了背电话、 跳电话和循环结构的违规情况。 此外, 我们还引入了一项新措施, 以核查各层之间逻辑的分离情况。 系统目前的结构是从源代码中提取的, 代表了三层结构, 即 Java 应用程序的分层标准结构。 重新定义的措施用于确定系统中分层原则的兼容性。 我们评估了五个不同的软件系统的结构一致性。 我们重新定义的措施所取得的结果与通过应用一套标准措施获得的结果进行了比较。 对拟议措施进行了定量分析, 我们得出结论, 它们可以确定在开发过程中采用的分层原则的考虑。