The quality of a software system is partially determined by its structure(topological structure),so the need to quantitatively analyze the quality of the structure has become eminent.In this paper a novel metric cal...The quality of a software system is partially determined by its structure(topological structure),so the need to quantitatively analyze the quality of the structure has become eminent.In this paper a novel metric called software quality of structure(SQoS) is presented for quantitatively measuring the structural quality of object-oriented(OO) softwares via bug propagation analysis on weighted software networks(WSNs).First,the software systems are modeled as a WSN,weighted class dependency network(WCDN),in which classes are nodes and the interaction between every pair of classes if any is a directed edge with a weight indicating the probability that a bug in one class will propagate to the other.Then we analyze the bug propagation process in the WCDN together with the bug proneness of each class,and based on this,a metric(SQoS) to measure the structural quality of OO softwares as a whole is developed.The approach is evaluated in two case studies on open source Java programs using different software structures(one employs design patterns and the other does not) for the same OO software.The results of the case studies validate the effectiveness of the proposed metric.The approach is fully automated by a tool written in Java.展开更多
Software systems are a typical kind of man-made complex systems. Understanding their evolutions can lead to better software engineering practices. In this paper, the authors use complex network theory as a tool to ana...Software systems are a typical kind of man-made complex systems. Understanding their evolutions can lead to better software engineering practices. In this paper, the authors use complex network theory as a tool to analyze the evolution of object-oriented (OO) software from a multi-granularity perspective. First, a multi-granularity software networks model is proposed to represent the topological structures of a multi-version software system from three levels of granularity. Then, some parameters widely used in complex network theory are applied to characterize the software networks. By tracing the parameters' values in consecutive software systems, we have a better understanding about software evolution. A case study is conducted on an open source OO project, Azureus, as an example to illustrate our approach, and some underlying evolution characteristics are uncovered. These results provide a different dimension to our understanding of software evolutions and also are very useful for the design and development of OO software systems.展开更多
Large-scale object-oriented(OO) software systems have recently been found to share global network characteristics such as small world and scale free,which go beyond the scope of traditional software measurement and ...Large-scale object-oriented(OO) software systems have recently been found to share global network characteristics such as small world and scale free,which go beyond the scope of traditional software measurement and assessment methodologies.To measure the complexity at various levels of granularity,namely graph,class(and object) and source code,we propose a hierarchical set of metrics in terms of coupling and cohesion-the most important characteristics of software,and analyze a sample of 12 open-source OO software systems to empirically validate the set.Experimental results of the correlations between cross-level metrics indicate that the graph measures of our set complement traditional software metrics well from the viewpoint of network thinking,and provide more effective information about fault-prone classes in practice.展开更多
An open source software (OSS) ecosystem refers to an OSS development community composed of many software projects and developers contributing to these projects. The projects and developers co-evolve in an ecosystem....An open source software (OSS) ecosystem refers to an OSS development community composed of many software projects and developers contributing to these projects. The projects and developers co-evolve in an ecosystem. To keep healthy evolution of such OSS ecosystems, there is a need of attracting and retaining developers, particularly project leaders and core developers who have major impact on the project and the whole team. Therefore, it is important to figure out the factors that influence developers' chance to evolve into project leaders and core developers. To identify such factors, we conducted a case study on the GNOME ecosystem. First, we collected indicators reflecting developers' subjective willingness to contribute to the project and the project environment that they stay in. Second, we calculated such indicators based on the GNOME dataset. Then, we fitted logistic regression models by taking as independent variables the resulting indicators after eliminating the most collinear ones, and taking as a dependent variable the future developer role (the core developer or project leader). The results showed that part of such indicators (e.g., the total number of projects that a developer joined) of subjective willingness and project environment significantly influenced the developers' chance to evolve into core developers and project leaders. With different validation methods, our obtained model performs well on predicting developmental core developers, resulting in stable prediction performance (0.770, F-value).展开更多
基金supported by the National Basic Research 973 Program of China under Grant No.2007CB310801the National Natural Science Foundation of China under Grant Nos.60873083,60803025,60703009 and 60703018+3 种基金the Natural Science Foundation of Hubei Province under Grant No.2008ABA379the Natural Science Foundation of Hubei Province for Distinguished Young Scholars under Grant No.2008CDB351the Research Fund for the Doctoral Program of Higher Education of China under Grant Nos.20070486065 and 20090141120022the Fundamental Research Funds for the Central Universities of China under Grant No.6082005
文摘The quality of a software system is partially determined by its structure(topological structure),so the need to quantitatively analyze the quality of the structure has become eminent.In this paper a novel metric called software quality of structure(SQoS) is presented for quantitatively measuring the structural quality of object-oriented(OO) softwares via bug propagation analysis on weighted software networks(WSNs).First,the software systems are modeled as a WSN,weighted class dependency network(WCDN),in which classes are nodes and the interaction between every pair of classes if any is a directed edge with a weight indicating the probability that a bug in one class will propagate to the other.Then we analyze the bug propagation process in the WCDN together with the bug proneness of each class,and based on this,a metric(SQoS) to measure the structural quality of OO softwares as a whole is developed.The approach is evaluated in two case studies on open source Java programs using different software structures(one employs design patterns and the other does not) for the same OO software.The results of the case studies validate the effectiveness of the proposed metric.The approach is fully automated by a tool written in Java.
基金This research is supported by the National Basic Research 973 Program of China under Grant No 2007CB310801, the National Natural Science Foundation of China under Grant Nos. 60873083 and 61003073 the Research Fund for the Doctoral Program of Higher Education of China under Grant No. 20090141120022 the Fundamental Research Funds for the Central Universities of China under Grant Nos. 114013 and 6082005 and the Scientific Research Fund of Zhejiang Provincial Education Department under Grant No. Y201018008.
文摘Software systems are a typical kind of man-made complex systems. Understanding their evolutions can lead to better software engineering practices. In this paper, the authors use complex network theory as a tool to analyze the evolution of object-oriented (OO) software from a multi-granularity perspective. First, a multi-granularity software networks model is proposed to represent the topological structures of a multi-version software system from three levels of granularity. Then, some parameters widely used in complex network theory are applied to characterize the software networks. By tracing the parameters' values in consecutive software systems, we have a better understanding about software evolution. A case study is conducted on an open source OO project, Azureus, as an example to illustrate our approach, and some underlying evolution characteristics are uncovered. These results provide a different dimension to our understanding of software evolutions and also are very useful for the design and development of OO software systems.
基金Supported by the National Grand Fundamental Research 973 Program of China under Grant No.2007CB310800the National Natural Science Foundation of China under Grant Nos.60873083 and 60803025+2 种基金the Research Fund for the Doctoral Program of Higher Education of China under Grant No.20090141120022the Natural Science Foundation of Hubei Province of China under Grant Nos.2008ABA379 and 2008CDB351the Fundamental Research Funds for the Central Universities of China under Grant No.6082005
文摘Large-scale object-oriented(OO) software systems have recently been found to share global network characteristics such as small world and scale free,which go beyond the scope of traditional software measurement and assessment methodologies.To measure the complexity at various levels of granularity,namely graph,class(and object) and source code,we propose a hierarchical set of metrics in terms of coupling and cohesion-the most important characteristics of software,and analyze a sample of 12 open-source OO software systems to empirically validate the set.Experimental results of the correlations between cross-level metrics indicate that the graph measures of our set complement traditional software metrics well from the viewpoint of network thinking,and provide more effective information about fault-prone classes in practice.
基金This work is supported by the National Key Research and Development Program of China under Grant No. 2016YFB0800400, the National Basic Research 973 Program of China under Grant No. 2014CB340404, the National Natural Science Foundation of China under Grant Nos. 61572371, 61273216, and 61272111, the China Postdoctoral Science Foundation (CPSF) under Grant No. 2015M582272, the Natural Science Foundation of Hubei Province of China under Grant No. 2016CFB158, and the Fundamental Research Funds for the Central Universities of China under Grant No. 2042016kf0033.
文摘An open source software (OSS) ecosystem refers to an OSS development community composed of many software projects and developers contributing to these projects. The projects and developers co-evolve in an ecosystem. To keep healthy evolution of such OSS ecosystems, there is a need of attracting and retaining developers, particularly project leaders and core developers who have major impact on the project and the whole team. Therefore, it is important to figure out the factors that influence developers' chance to evolve into project leaders and core developers. To identify such factors, we conducted a case study on the GNOME ecosystem. First, we collected indicators reflecting developers' subjective willingness to contribute to the project and the project environment that they stay in. Second, we calculated such indicators based on the GNOME dataset. Then, we fitted logistic regression models by taking as independent variables the resulting indicators after eliminating the most collinear ones, and taking as a dependent variable the future developer role (the core developer or project leader). The results showed that part of such indicators (e.g., the total number of projects that a developer joined) of subjective willingness and project environment significantly influenced the developers' chance to evolve into core developers and project leaders. With different validation methods, our obtained model performs well on predicting developmental core developers, resulting in stable prediction performance (0.770, F-value).