The Static Structural Complexity Metrics for Large-Scale Software System

2010 ◽  
Vol 44-47 ◽  
pp. 3548-3552 ◽  
Author(s):  
Hao Hua Zhang ◽  
Wen Jiang Feng ◽  
Li Juan Wu

Measuring the complexity of a large-scale software system has been a urgent demand in software development practices. The traditional software metrics can hardly describe the structural complexity in modern software. As the complex networks theory has been used to study the software structure, we analyzed a great many software systems. The analyzing results reveal the parameters in complex networks can be used to represent property of software structure. And this paper introduces some efficient metrics and measuring methods based on basic parameters in complex networks. A practice example was described to demonstrate the effectiveness of the metrics.

2020 ◽  
Vol 2020 ◽  
pp. 1-20
Author(s):  
Aihua Gu ◽  
Lu Li ◽  
Shujun Li ◽  
Qifeng Xun ◽  
Jian Dong ◽  
...  

Context. Coupling between classes is an important metric for software complexity in software systems. Objective. In order to overcome the shortcomings of the existing coupling methods and fully investigate the weighted coupling of classes in different cases in large-scale software systems, this study analyzed the relationship between classes at package level, class level, and method level. Method. The software system is considered as a set of special bipartite graphs in complex networks, and an effective method for coupling measurement is proposed as well. Furthermore, this method is theoretically proved to satisfy the mathematical properties of coupling measurement, leading to overcome the disadvantages of the majority of existing methods. In addition, it was revealed that the proposed method was efficient according to the analyses of existing methods for coupling measurement. Eventually, an algorithm was designed and a program was developed to calculate coupling between classes in three open-source software systems. Results. The results indicated the scale-free characteristic of complex networks in the statistical data. Additionally, the calculated power-law value was used as a metric for coupling measurement, so as to calculate coupling of the three open-source software. It indicated that coupling degrees of the open-source software systems contained a certain impact on evaluation of software complexity. Conclusions. It indicated that coupling degrees of the open-source software systems contained a certain impact on evaluation of software complexity. Moreover, statistical characteristics of some complex networks provided a reliable reference for further in-depth study of coupling. The empirical evidence showed that within a certain range, reducing the coupling was helpful to attenuate the complexity of the software, while excessively blindly pursuit of low coupling increases the complexity of software systems.


2021 ◽  
Vol 12 (7) ◽  
pp. 339-349
Author(s):  
A. A. Kodubets ◽  
◽  
I. L. Artemieva ◽  

This article contains a systematic literature review of requirements engineering for software systems. The literature published within last 5 years was included into the review. A research question was defined as requirements development process of large scale software system (with thousands of requirements) and an interaction problem during this process (communication, coordination and control). The problem is caused by the fact that large-scale software system requirements process is a cross-disciplinary task and it involves multiple parties — stakeholders, domain experts, and suppliers with own goals and constrains, and thus, the interaction between them seriously slows down the overall requirements development process than writing the requirements specification itself. The research papers were classified by several research directions: Natural Language Processing for Requirements Engineering (NLP4RE), Requirement Prioritization, Requirements Traceability, Quality of Software Requirements, Non-functional Requirements and Requirements Elicitation. Motivation and intensity of each direction was described. Each direction was structured and represented with the key references. A contribution of each research direction into the research question was analyzed and summarized including potential further steps. It was identified that some researchers had met a part of the described problem in different forms during their researches. At the end, other researches were described additionally in a short overview. To approach the research question further potential direction was described.


Author(s):  
Yingxu Wang ◽  
Vincent Chiew

Functional complexity is one of the most fundamental properties of software because almost all other software attributes and properties such as functional size, development effort, costs, quality, and project duration are highly dependent on it. The functional complexity of software is a macro-scope problem concerning the semantic properties of software and human cognitive complexity towards a given software system; while the computational complexity is a micro-scope problem concerning algorithmic analyses towards machine throughput and time/space efficiency. This paper presents an empirical study on the functional complexity of software known as cognitive complexity based on large-scale samples using a Software Cognitive Complexity Analysis Tool (SCCAT). Empirical data are obtained with SCCAT on 7,531 programs and five formally specified software systems. The theoretical foundation of software functional complexity is introduced and the metric of software cognitive complexity is formally modeled. The functional complexities of a large-scale software system and the air traffic control systems (ATCS) are rigorously analyzed. A novel approach to represent software functional complexities and their distributions in software systems is developed. The nature of functional complexity of software in software engineering is rigorously explained. The relationship between the symbolic and functional complexities of software is quantitatively analyzed.


Author(s):  
Yingxu Wang ◽  
Vincent Chiew

Functional complexity is one of the most fundamental properties of software because almost all other software attributes and properties such as functional size, development effort, costs, quality, and project duration are highly dependent on it. The functional complexity of software is a macro-scope problem concerning the semantic properties of software and human cognitive complexity towards a given software system; while the computational complexity is a micro-scope problem concerning algorithmic analyses towards machine throughput and time/space efficiency. This paper presents an empirical study on the functional complexity of software known as cognitive complexity based on large-scale samples using a Software Cognitive Complexity Analysis Tool (SCCAT). Empirical data are obtained with SCCAT on 7,531 programs and five formally specified software systems. The theoretical foundation of software functional complexity is introduced and the metric of software cognitive complexity is formally modeled. The functional complexities of a large-scale software system and the air traffic control systems (ATCS) are rigorously analyzed. A novel approach to represent software functional complexities and their distributions in software systems is developed. The nature of functional complexity of software in software engineering is rigorously explained. The relationship between the symbolic and functional complexities of software is quantitatively analyzed.


2010 ◽  
Vol 23 (2) ◽  
pp. 53-76 ◽  
Author(s):  
Sharif H. Melouk ◽  
Uzma Raja ◽  
Burcu B. Keskin

The authors use a simulation approach to determine effective management of resource allocation and task prioritization decisions for the development of open source enterprise solutions software in the context of a large scale collaborative development project (CDP). Unlike traditional software systems where users have limited access to the development team, in open source environments, the resolution of issues is a collaborative effort among users and the team. However, as the project grows in size, complexity, and usage, effective allocation of resources and prioritization of tasks become a necessity to improve the operational performance of the software system. In this paper, by mining an open source software repository, the authors analyze the effects of collaborative issue resolution in a CDP and its effects on resource allocation of the team developers. This article examines several scenarios to evaluate the effects of forum discussions, resource allocation, and task prioritization on operational performance of the software system.


2014 ◽  
Vol 543-547 ◽  
pp. 3260-3263
Author(s):  
Zheng Liu ◽  
Qian Zhang ◽  
Hai Zhao

According to the problem that traditional metric methods for software structure cannot reflect the structural features of software system on macro-view, the definition of Radiation Degree is presented based on software network that directed and weighted firstly, and the structural complexity of each node and the overall complexity of the system are measured by evaluating the outward Radiation Degree and inward Radiation Degree of the node. Secondly, because inward Radiation Degree and outward Radiation Degree are different reflection of structural features, Ratio of Radiation Cycle is presented to find the nodes have both high inward Radiation Degree and outward Radiation Degree. This method is detection for defects in software structure that can find the dangerous nodes in structure in time and provide guides during developing or maintaining of software system.


2013 ◽  
Vol 278-280 ◽  
pp. 2029-2032
Author(s):  
Hao Hua Zhang ◽  
Yu Ren Zhai ◽  
Wen Jiang Feng ◽  
Hai Shen

The networks of interdependencies in large-scale Object Oriented software systems are complex, visualization and understand become the important issues for developer. We propose that topology structure can be imaged to network and better understood via core structure decomposition based on complex networks. The core structure analysis allows characterizing networks beyond the degree distribution and uncovering some potential characteristics, Such as structural hierarchies, centrality and evolution. We analyze the core structure of some popular open source software and discuss the differences and similarities, get some noticeable properties, the result show the method provides an interesting view helping to comprehend and evaluate system in development.


Sign in / Sign up

Export Citation Format

Share Document