The selection of software architecture style is an important decision of design stage, and has a significant impact on various system quality attributes. To determine software architecture based on architectural style selection, the software functionalities have to be distributed among the components of software architecture. In this paper, a method based on the clustering of use cases is proposed to identify software components and their responsibilities. To select a proper clustering method, first the proposed method is performed on a number of software systems using different clustering methods, and the results are verified by expert opinion, and the best method is recommended. By sensitivity analysis, the effect of features on accuracy of clustering is evaluated. Finally, to determine the appropriate number of clusters (i.e. the number of software components), metrics of the interior cohesion of clusters and the coupling among them are used. Advantages of the proposed method include; 1) no need for weighting the features, 2) sensitivity analysis of the effect of features on clustering accuracy, and 3) presentation of a clear method to identify software components and their responsibilities.
Software testing is an important and complicated phase of software development cycle. Software test process acquires test cases as input for the system under test to evaluate the behavior of the product. If test cases are prepared before coding, it will help the developers to control their code to conform to specification. White box testing requires a set of predefined test paths to generate test cases, therefore generating a set of reliable test paths is a critical task. The most common approach in white box testing is to generate test paths from source code while the generation process must be delayed until completion of source code. Using sequence diagram as an input artifact for generating test path is cost and time efficient due to the fact that test process starts before implementation phase. Furthermore, tester involvement in source code complexity is reduced to a minimum. Test paths are generated from the control flow graph, which is extracted from sequence diagrams. Among all graph based coverage criteria, Prime path coverage subsumes different graph based coverage criteria that lead us to complete path coverage. Also, prime path coverage concentrates on visiting all nodes and edges in the control flow graph rather than traversing all existing paths, which results in test effort reduction. Genetic algorithm is applied minimize the number of test cases required to reach the highest coverage.In this paper, we proposed a model to generate all prime paths automatically and extract minimum paths with shortest possible length, which covers all prime paths by means of genetic algorithm. The experimental results show the generated paths can easily turn into optimal test paths with the best prime path coverage having the least number of test paths.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.