Several software network models are constructed based on the relationships between classes in the object-oriented software systems.Then,a variety of well-known open source software applications are statistically analy...Several software network models are constructed based on the relationships between classes in the object-oriented software systems.Then,a variety of well-known open source software applications are statistically analyzed by using these models.The results show that: (1) Dependency network does play a key role in software architecture;(2) The exponents of in-degree and total-degree distribution functions of different networks differ slightly,while the exponent of out-degree varies obviously;(3) Weak-coupling relationships have greater impact on software architecture than strong-coupling relationships.Finally,a theoretically analysis on these statistical phenomena is proposed from the perspectives of software develop technology,develop process and developer’s habits,respectively.展开更多
This paper describes a versatile and computationally efficient method for coupling several finite element analysis(FEA)programs together so that the unique modeling and analysis capabilities of each code can be utiliz...This paper describes a versatile and computationally efficient method for coupling several finite element analysis(FEA)programs together so that the unique modeling and analysis capabilities of each code can be utilized simultaneously to simulate the static or dynamic response of a complete numerical system.An arbitrary number of finite element analysis software packages can be coupled by adding two special types of elements,namely generic and adapter elements,to each of the finite element applications using their programming interface.These elements are inserted at the interfaces between the different sub-domains of the complete system modeled by each finite element analysis software package.Exchange of data between the coupled FEA codes is accomplished in a modular and synchronized manner using OpenFresco(Opensource Framework for Experimental Setup and Control).OpenFresco is an objectoriented,environment independent software framework initially developed for hybrid simulation in which certain aspects of a complete structure are simulated numerically and other aspects are simultaneously tested physically.An important practical advantage of this coupled analysis approach is that all of the connected FEA codes run concurrently and continuously,decreasing analysis time consumption by an order of magnitude or more compared to more traditional approaches that shut down and restart the coupled analysis codes at each integration time step.The implementation and accuracy of this approach to FE software coupling are demonstrated using dynamic analyses of three simple structural models from the field of earthquake engineering.展开更多
Measuring software quality requires software engineers to understand the system’s quality attributes and their measurements.The quality attribute is a qualitative property;however,the quantitative feature is needed f...Measuring software quality requires software engineers to understand the system’s quality attributes and their measurements.The quality attribute is a qualitative property;however,the quantitative feature is needed for software measurement,which is not considered during the development of most software systems.Many research studies have investigated different approaches for measuring software quality,but with no practical approaches to quantify and measure quality attributes.This paper proposes a software quality measurement model,based on a software interconnection model,to measure the quality of software components and the overall quality of the software system.Unlike most of the existing approaches,the proposed approach can be applied at the early stages of software development,to different architectural design models,and at different levels of system decomposition.This article introduces a software measurement model that uses a heuristic normalization of the software’s internal quality attributes,i.e.,coupling and cohesion,for software quality measurement.In this model,the quality of a software component is measured based on its internal strength and the coupling it exhibits with other component(s).The proposed model has been experimented with nine software engineering teams that have agreed to participate in the experiment during the development of their different software systems.The experiments have shown that coupling reduces the internal strength of the coupled components by the amount of coupling they exhibit,which degrades their quality and the overall quality of the software system.The introduced model can help in understanding the quality of software design.In addition,it identifies the locations in software design that exhibit unnecessary couplings that degrade the quality of the software systems,which can be eliminated.展开更多
To better evaluate the quality of software architecture,a metrics suite is proposed to measure the coupling of software architecture models,in which CBC is used to measure the coupling between components,CBCC is used ...To better evaluate the quality of software architecture,a metrics suite is proposed to measure the coupling of software architecture models,in which CBC is used to measure the coupling between components,CBCC is used to measure the coupling of transferring message between components,CBCCT is used to measure the coupling of software architecture,WCBCC is used to measure the coupling of transferring message with weight between components,and WCBCCT is used to measure the coupling of message transmission with weight in the whole software architecture. The proposed algorithm for the coupling metrics is applied to the design of serve software architecture. Analysis of an example validates the feasibility of this metrics suite.展开更多
A software component must be tested every time it is reused in order to assure quality of component itself and system in which it is to be integrated.So how to increase testability of component has become a key techno...A software component must be tested every time it is reused in order to assure quality of component itself and system in which it is to be integrated.So how to increase testability of component has become a key technology in the software engineering community.Here a method is introduced to increase component testability.And meanings of component testability and relative effective ways to increase testability are summarized.Then definitions of component coupling testing criterion,DU-I(Definition-Use Information) and OP-Vs(Observation-Point Values)are given.Base on these,a definition-use table is introduced,which includes DU-A and OP-Vs item,to help component testers to understand and observe interior details about component under test better.Then a framework of testable component based on above DU-table is given.These facilities provide ways to detect errors,observe state variables by observation-points based monitor mechanism.Moreover,above methods are applied to our application developed by ourselves before,and some test cases are generated.Then our method is compared with Orso method and Kan method using the same example,presenting the comparison results.The results illustrate the validity of our method,effectively generating test cases and killing more mutants.展开更多
Architectural design is a crucial issue in software engineering. It makes testing more effective as it contribute to carry out the testing in an early stage of the software development. To improve software testability...Architectural design is a crucial issue in software engineering. It makes testing more effective as it contribute to carry out the testing in an early stage of the software development. To improve software testability, the software architect should consider different testability metrics while building the software architecture. The main objective of this research is to conduct an early assessment of the software architecture for the purpose of its improvement in order to make the testing process more effective. In this paper, an evaluation model to assess software architecture (Architecture Design Testability Evaluation Model (ADTEM)) is presented. ADTEM is based on two different testability metrics: cohesion and coupling. ADTEM consists of two phases: software architecture evaluation phase, and component evaluation phase. In each phase, a fuzzy inference system is used to perform the evaluation process based on cohesion and coupling testing metrics. The model is validated by using a case study: Elders Monitoring System. The experimental results show that ADTEM is efficient and gave a considerable improvement to the software testability process.展开更多
Component-based software engineering is concerned with the develop-ment of software that can satisfy the customer prerequisites through reuse or inde-pendent development.Coupling and cohesion measurements are primaril...Component-based software engineering is concerned with the develop-ment of software that can satisfy the customer prerequisites through reuse or inde-pendent development.Coupling and cohesion measurements are primarily used to analyse the better software design quality,increase the reliability and reduced system software complexity.The complexity measurement of cohesion and coupling component to analyze the relationship between the component module.In this paper,proposed the component selection framework of Hexa-oval optimization algorithm for selecting the suitable components from the repository.It measures the interface density modules of coupling and cohesion in a modular software sys-tem.This cohesion measurement has been taken into two parameters for analyz-ing the result of complexity,with the help of low cohesion and high cohesion.In coupling measures between the component of inside parameters and outside parameters.Thefinal process of coupling and cohesion,the measured values were used for the average calculation of components parameter.This paper measures the complexity of direct and indirect interaction among the component as well as the proposed algorithm selecting the optimal component for the repository.The better result is observed for high cohesion and low coupling in compo-nent-based software engineering.展开更多
With progression of the digital age, the complexity of software continues to grow. AS a result, methods to quantitatively assess characteristics of software have attracted significant atten- tion. These efforts have l...With progression of the digital age, the complexity of software continues to grow. AS a result, methods to quantitatively assess characteristics of software have attracted significant atten- tion. These efforts have led to a large number of new measures such as coupling metrics, many of which seek to consider the impact of correlations between components and failures on ap- plication reliability. However, most of these approaches set the coupling parameters arbitrarily by making assumptions instead of utilizing experimental data and therefore may not accurately capture actual coupling between components of software applica- tion. Since the coupling matrix is often set arbitrarily, the existing approaches to assess software reliability considering component correlation fail to reflect the real degree of interaction and rela- tionships among software components. This paper presents an efficient approach to assess the software reliability considering Correlated component failures, incorporating software architec- ture while considering actual internal coupling of software with an efficient approach based on multivariate Bernoulli (MVB) distribu- tion. The unified framework for software Coupling measurement is' informed by a comprehensive survey of frameworks for object- oriented and procedure-oriented software. This framework enables the extraction of more accurate coupling among cornponents. The effectiveness of this method is illustrated through an exPerimental study bylapplying it to a real-time software application.展开更多
Complex networks are everywhere. A typical example is software network. How to measure and control coupling interactions of software components is a largely explored research problem in software network. In terms of g...Complex networks are everywhere. A typical example is software network. How to measure and control coupling interactions of software components is a largely explored research problem in software network. In terms of graph theory and linear algebra, this paper investigates a pair of coupling metrics to evaluate coupling interactions between the classes of object-oriented systems. These metrics differ from the majority of existing metrics in three aspects: Taking into account the strength that one class depends on other ones, reflecting indirect coupling, and distinguishing various coupling interaction. An empirical comparison of the novel measures with one of the most widely used coupling metrics is described. Specifically, an experiment about the relationships of this pair metrics is conducted. The result shows that software complexity derived from coupling interaction could not be accurately reflected by one dimension of coupling metric for negative correlation.展开更多
The grouping of correlated classes into a package helps in better organization of modern object-oriented software. The quality of such packages needs to be measured so as to estimate their utilization. In this paper, ...The grouping of correlated classes into a package helps in better organization of modern object-oriented software. The quality of such packages needs to be measured so as to estimate their utilization. In this paper, new package coupling metrics are proposed, which also take into consideration the hierarchical structure of packages and direction of connections among package elements. The proposed measures have been validated theoretically as well as empirically using 18 packages taken from two open source software systems. The results obtained from this study show strong correlation between package coupling and understandability of the package which suggests that proposed metrics could be further used to represent other external software quality factors.展开更多
基金The paper is supported by the National High Technology Research and Development Program of China (863 Program) (No.2009AA01Z439) and the National Natural Science Foundation of China (U0835001)
文摘Several software network models are constructed based on the relationships between classes in the object-oriented software systems.Then,a variety of well-known open source software applications are statistically analyzed by using these models.The results show that: (1) Dependency network does play a key role in software architecture;(2) The exponents of in-degree and total-degree distribution functions of different networks differ slightly,while the exponent of out-degree varies obviously;(3) Weak-coupling relationships have greater impact on software architecture than strong-coupling relationships.Finally,a theoretically analysis on these statistical phenomena is proposed from the perspectives of software develop technology,develop process and developer’s habits,respectively.
基金Funding for this work was provided in part by the National Science Foundation through a subaward from the NEES Consortium,Inc.under Cooperative Agreement CMS0402490.The authors appreciate the assistance of Dr.Frank McKenna of the University of California,Berkeley,Dr.John Hallquist of Livermore Software Technology Corporation,and Prof.Yoshikazu Takahashi of Kyoto University.The findings and conclusions are those of the authors alone,and may not reflect those of the sponsors.
文摘This paper describes a versatile and computationally efficient method for coupling several finite element analysis(FEA)programs together so that the unique modeling and analysis capabilities of each code can be utilized simultaneously to simulate the static or dynamic response of a complete numerical system.An arbitrary number of finite element analysis software packages can be coupled by adding two special types of elements,namely generic and adapter elements,to each of the finite element applications using their programming interface.These elements are inserted at the interfaces between the different sub-domains of the complete system modeled by each finite element analysis software package.Exchange of data between the coupled FEA codes is accomplished in a modular and synchronized manner using OpenFresco(Opensource Framework for Experimental Setup and Control).OpenFresco is an objectoriented,environment independent software framework initially developed for hybrid simulation in which certain aspects of a complete structure are simulated numerically and other aspects are simultaneously tested physically.An important practical advantage of this coupled analysis approach is that all of the connected FEA codes run concurrently and continuously,decreasing analysis time consumption by an order of magnitude or more compared to more traditional approaches that shut down and restart the coupled analysis codes at each integration time step.The implementation and accuracy of this approach to FE software coupling are demonstrated using dynamic analyses of three simple structural models from the field of earthquake engineering.
文摘Measuring software quality requires software engineers to understand the system’s quality attributes and their measurements.The quality attribute is a qualitative property;however,the quantitative feature is needed for software measurement,which is not considered during the development of most software systems.Many research studies have investigated different approaches for measuring software quality,but with no practical approaches to quantify and measure quality attributes.This paper proposes a software quality measurement model,based on a software interconnection model,to measure the quality of software components and the overall quality of the software system.Unlike most of the existing approaches,the proposed approach can be applied at the early stages of software development,to different architectural design models,and at different levels of system decomposition.This article introduces a software measurement model that uses a heuristic normalization of the software’s internal quality attributes,i.e.,coupling and cohesion,for software quality measurement.In this model,the quality of a software component is measured based on its internal strength and the coupling it exhibits with other component(s).The proposed model has been experimented with nine software engineering teams that have agreed to participate in the experiment during the development of their different software systems.The experiments have shown that coupling reduces the internal strength of the coupled components by the amount of coupling they exhibit,which degrades their quality and the overall quality of the software system.The introduced model can help in understanding the quality of software design.In addition,it identifies the locations in software design that exhibit unnecessary couplings that degrade the quality of the software systems,which can be eliminated.
基金Sponsored by the Science and Technology Department Term of Education of Heilongjiang Province(Grant No. 10541098)
文摘To better evaluate the quality of software architecture,a metrics suite is proposed to measure the coupling of software architecture models,in which CBC is used to measure the coupling between components,CBCC is used to measure the coupling of transferring message between components,CBCCT is used to measure the coupling of software architecture,WCBCC is used to measure the coupling of transferring message with weight between components,and WCBCCT is used to measure the coupling of message transmission with weight in the whole software architecture. The proposed algorithm for the coupling metrics is applied to the design of serve software architecture. Analysis of an example validates the feasibility of this metrics suite.
基金Natural Science Fund of Hubei Province (No2005ABA266)
文摘A software component must be tested every time it is reused in order to assure quality of component itself and system in which it is to be integrated.So how to increase testability of component has become a key technology in the software engineering community.Here a method is introduced to increase component testability.And meanings of component testability and relative effective ways to increase testability are summarized.Then definitions of component coupling testing criterion,DU-I(Definition-Use Information) and OP-Vs(Observation-Point Values)are given.Base on these,a definition-use table is introduced,which includes DU-A and OP-Vs item,to help component testers to understand and observe interior details about component under test better.Then a framework of testable component based on above DU-table is given.These facilities provide ways to detect errors,observe state variables by observation-points based monitor mechanism.Moreover,above methods are applied to our application developed by ourselves before,and some test cases are generated.Then our method is compared with Orso method and Kan method using the same example,presenting the comparison results.The results illustrate the validity of our method,effectively generating test cases and killing more mutants.
文摘Architectural design is a crucial issue in software engineering. It makes testing more effective as it contribute to carry out the testing in an early stage of the software development. To improve software testability, the software architect should consider different testability metrics while building the software architecture. The main objective of this research is to conduct an early assessment of the software architecture for the purpose of its improvement in order to make the testing process more effective. In this paper, an evaluation model to assess software architecture (Architecture Design Testability Evaluation Model (ADTEM)) is presented. ADTEM is based on two different testability metrics: cohesion and coupling. ADTEM consists of two phases: software architecture evaluation phase, and component evaluation phase. In each phase, a fuzzy inference system is used to perform the evaluation process based on cohesion and coupling testing metrics. The model is validated by using a case study: Elders Monitoring System. The experimental results show that ADTEM is efficient and gave a considerable improvement to the software testability process.
基金We deeply acknowledge Taif University for Supporting this research through Taif University Researchers Supporting Project number(TURSP-2020/231),Taif University,Taif,Saudi Arabia.
文摘Component-based software engineering is concerned with the develop-ment of software that can satisfy the customer prerequisites through reuse or inde-pendent development.Coupling and cohesion measurements are primarily used to analyse the better software design quality,increase the reliability and reduced system software complexity.The complexity measurement of cohesion and coupling component to analyze the relationship between the component module.In this paper,proposed the component selection framework of Hexa-oval optimization algorithm for selecting the suitable components from the repository.It measures the interface density modules of coupling and cohesion in a modular software sys-tem.This cohesion measurement has been taken into two parameters for analyz-ing the result of complexity,with the help of low cohesion and high cohesion.In coupling measures between the component of inside parameters and outside parameters.Thefinal process of coupling and cohesion,the measured values were used for the average calculation of components parameter.This paper measures the complexity of direct and indirect interaction among the component as well as the proposed algorithm selecting the optimal component for the repository.The better result is observed for high cohesion and low coupling in compo-nent-based software engineering.
基金supported by the National Aerospace Science Foundation of China(20140751008)
文摘With progression of the digital age, the complexity of software continues to grow. AS a result, methods to quantitatively assess characteristics of software have attracted significant atten- tion. These efforts have led to a large number of new measures such as coupling metrics, many of which seek to consider the impact of correlations between components and failures on ap- plication reliability. However, most of these approaches set the coupling parameters arbitrarily by making assumptions instead of utilizing experimental data and therefore may not accurately capture actual coupling between components of software applica- tion. Since the coupling matrix is often set arbitrarily, the existing approaches to assess software reliability considering component correlation fail to reflect the real degree of interaction and rela- tionships among software components. This paper presents an efficient approach to assess the software reliability considering Correlated component failures, incorporating software architec- ture while considering actual internal coupling of software with an efficient approach based on multivariate Bernoulli (MVB) distribu- tion. The unified framework for software Coupling measurement is' informed by a comprehensive survey of frameworks for object- oriented and procedure-oriented software. This framework enables the extraction of more accurate coupling among cornponents. The effectiveness of this method is illustrated through an exPerimental study bylapplying it to a real-time software application.
基金This research is supported by the National Key Basic Research and Development 973 Program of China under Grant No. 2007CB310805, Foundation for the Author of National Excellent Doctoral Dissertation of China under Grant No. 2007B4, the National Natural Science Foundation of China under Grant Nos. 60873083, 60803025, and the National High Technology Research and Development Program of China under Grant No. 2006AA04Z156.
文摘Complex networks are everywhere. A typical example is software network. How to measure and control coupling interactions of software components is a largely explored research problem in software network. In terms of graph theory and linear algebra, this paper investigates a pair of coupling metrics to evaluate coupling interactions between the classes of object-oriented systems. These metrics differ from the majority of existing metrics in three aspects: Taking into account the strength that one class depends on other ones, reflecting indirect coupling, and distinguishing various coupling interaction. An empirical comparison of the novel measures with one of the most widely used coupling metrics is described. Specifically, an experiment about the relationships of this pair metrics is conducted. The result shows that software complexity derived from coupling interaction could not be accurately reflected by one dimension of coupling metric for negative correlation.
文摘The grouping of correlated classes into a package helps in better organization of modern object-oriented software. The quality of such packages needs to be measured so as to estimate their utilization. In this paper, new package coupling metrics are proposed, which also take into consideration the hierarchical structure of packages and direction of connections among package elements. The proposed measures have been validated theoretically as well as empirically using 18 packages taken from two open source software systems. The results obtained from this study show strong correlation between package coupling and understandability of the package which suggests that proposed metrics could be further used to represent other external software quality factors.