System integration testing is used to test the validity of the interactive interfaces among modules. In order to study the relationship among modules, test the interface information, this paper proposes an aspect orie...
详细信息
ISBN:
(纸本)9781538657850
System integration testing is used to test the validity of the interactive interfaces among modules. In order to study the relationship among modules, test the interface information, this paper proposes an aspect oriented integration testing method based on module dependency graph. In the light of characteristics of program dependencygraph, the paper defines the module-level control dependence and data dependence, and establishes the module dependency graph marked with module interaction information. Using the aspect oriented technology to encapsulate the test information, the test module is woven into the program module as an independent module, and tested the interaction information between modules. The case analysis shows that the method can help the testers to analyze the interaction information among modules, avoiding the use of test piles and saving cost.
Comprehension of the structure of software will facilitate maintaining the software more efficiently. Clustering software modules, as a reverse engineering technique, is assumed to be an effective technique in extract...
详细信息
Comprehension of the structure of software will facilitate maintaining the software more efficiently. Clustering software modules, as a reverse engineering technique, is assumed to be an effective technique in extracting comprehensible structural-models of software from the source code. Finding the best clustering model of a software system is regarded as a NP-complete problem. Minimizing the connections among the created clusters, maximizing the internal connections within the created clusters and maximizing the clustering quality are considered to be the most important objectives in software module clustering (SMC). Poor success rate, low stability and modularization quality are regarded as the major drawbacks of the previously proposed methods. In this paper, five different heuristic algorithms (Bat, Cuckoo, Teaching-Learning-Based, Black Widow and Grasshopper algorithms) are proposed for optimal clustering of software modules. Also, the effects of chaos theory in the performance of these algorithms in this problem have been experimentally investigated. The results of conducted experiments on the eight standard and real-world applications indicate that performance of the BWO, PSO, and TLB algorithms are higher than the other algorithms in SMC problem;also, the performance of these algorithm increased when their initial population were generated with logistic chaos method instead of random method. The average MQ of the generated clusters for the selected benchmark set by BWO, PSO and TLB are 3.155, 3.120 and 2.778, respectively.
The clustering problem has an important application in software engineering, which usually deals with large software systems with complex structures. To facilitate the work of software maintainers, components of the s...
详细信息
The clustering problem has an important application in software engineering, which usually deals with large software systems with complex structures. To facilitate the work of software maintainers, components of the system are divided into groups in such a way that the groups formed contain highly-interdependent modules and the independent modules are placed in different groups. The measure used to analyze the quality of the system partition is called Modularization Quality (MQ). Designers represent the software system as a graph where modules are represented by nodes and relationships between modules are represented by edges. This graph is referred in the literature as module dependency graph (MDG). The Software Clustering Problem (SCP) consists in finding the partition of the MDG that maximizes the MQ. In this paper we present three new mathematical programming formulations for the SCP. Firstly, we formulate the SCP as a sum of linear fractional functions problem and then we apply two different linearization procedures to reformulate the problem as Mixed-Integer Linear Programming (MILP) problems. We discuss a preprocessing technique that reduces the size of the original problem and develop valid inequalities that have been shown to be very effective in tightening the formulations. We present numerical results that compare the formulations proposed and compare our results with the solutions obtained by the exhaustive algorithm supported by the freely available Bunch clustering tool, for benchmark problems.
Software evolution is a natural phenomenon due to the changing requirements. Understanding the program structure is a significant and complicated factor in maintaining and evolving the software when software lacks the...
详细信息
Software evolution is a natural phenomenon due to the changing requirements. Understanding the program structure is a significant and complicated factor in maintaining and evolving the software when software lacks the appropriate design documents. Clustering software modules, as a reverse engineering method, can be used to create an abstract structural model of software. Clustering software modules is a method which decomposes software system modules into several clusters (subsystems) by using module dependency graph. Finding the best clustering for the modules of software is regarded as an NP-complete problem. The main purpose of this study is to develop a method for optimal clustering of software modules in such a way that dependent modules are grouped within a cluster. Software module clustering problem was designed as a hybrid/discrete optimization problem. In this paper, using ant colony optimization algorithm, we made an attempt to find a good clustering of software systems. Producing the high-quality clusters of software modules, generating more stable results compared with the previous heuristic methods and attaining higher convergence are the main merits of the proposed method over the previous methods.
One of the most important and costly stages in software development is maintenance. Understanding the structure of software will make it easier to maintain it more efficiently. Clustering software modules is thought t...
详细信息
One of the most important and costly stages in software development is maintenance. Understanding the structure of software will make it easier to maintain it more efficiently. Clustering software modules is thought to be an effective reverse engineering technique for deriving structural models of software from source code. In software module clustering, the most essential objectives are to minimize connections between produced clusters, maximize internal connections within created clusters, and maximize clustering quality. Finding the appropriate software system clustering model is considered an NP-complete task. The previously proposed approaches' key limitations are their low success rate, low stability, and poor modularization quality. In this paper, for optimal clustering of software modules, Chaotic based heuristic method using a forest optimization algorithm is proposed. The impact of chaos theory on the performance of the other SFLA-GA and PSO-GA has also been investigated. The results show that using the logistic chaos approach improves the performance of these methods in the software-module clustering problem. The performance of chaotic based FOA, SFLA-GA and PSO-GA is superior to the other heuristic methods in terms of modularization quality and stability of the results.
暂无评论