The quality of software projects is measured by different attributes such as efficiency, security, robustness, or understandability, among others. In this paper, we focus on maintainability by ...studying the optimization of software modularity, which is one of the most important aspects in this regard. Specifically, we study two well-known and closely related multi-objective optimization problems: the Equal-size Cluster Approach Problem (ECA) and the Maximizing Cluster Approach Problem (MCA). Each of these two problems looks for the optimization of several conflicting and desirable objectives in terms of modularity. To this end, we propose a method based on the Multi-Objective Variable Neighborhood Search (MO-VNS) methodology in combination with a constructive procedure based on Path-Relinking. As far as we know, this is the first time that a method based on MO-VNS is proposed for the MCA and ECA problems. To enhance the performance of the proposed algorithm, we present three advanced strategies: an incremental evaluation of the objective functions, an efficient exploration of promising areas in the search space, and an analysis of the objectives that better serve as guiding functions during the search phase. Our proposal has been validated by experimentally comparing the performance of our algorithm with the best previous state-of-the-art method for the problem and three reference methods for multi-objective optimization. The experiments have been performed on a set of 124 real software instances previously reported in the literature.
Simulation of occupancy in buildings Feng, Xiaohang; Yan, Da; Hong, Tianzhen
Energy and buildings,
01/2015, Volume:
87, Issue:
C
Journal Article
Peer reviewed
Open access
•Occupancy models are categorized into four levels, from a building to an occupant.•Existing occupancy models were reviewed and compared in details.•Three types of occupancy models were selected and ...implemented in a software module.•The behavior module can be used standalone, called as DLL, and co-simulation.•The occupancy of an office building is simulated as an example use of the module.
Occupants are involved in a variety of activities in buildings, which drive them to move among rooms, enter or leave a building. In this study, occupancy is defined at four levels and varies with time: (1) the number of occupants in a building, (2) occupancy status of a space, (3) the number of occupants in a space, and (4) the space location of an occupant. Occupancy has a great influence on internal loads and ventilation requirement, thus building energy consumption. Based on a comprehensive review and comparison of literature on occupancy modeling, three representative occupancy models, corresponding to the levels 2–4, are selected and implemented in a software module. Main contributions of our study include: (1) new methods to classify occupancy models, (2) the review and selection of various levels of occupancy models, and (3) new methods to integrate these model into a tool that can be used in different ways for different applications and by different audiences. The software can simulate more detailed occupancy in buildings to improve the simulation of energy use, and better evaluate building technologies in buildings. The occupancy of an office building is simulated as an example to demonstrate the use of the software module.
In the area of Search-Based Software Engineering, software engineering issues are formulated and tackled as optimization problems. Among the problems within this area, the Software Module Clustering ...Problem (SMCP) consists of finding an organization of a software project that minimizes coupling and maximizes cohesion. Since modular code is easier to understand, the objective of this problem is to increase the quality of software projects, thus increasing their maintainability and reducing the associated costs. In this work we study a recently proposed objective function named Function of Complexity Balance (FCB). Since this problem has been demonstrated to be NP-hard, we propose a new heuristic algorithm based on the General Variable Neighborhood Search (GVNS) schema to tackle the problem. For the GVNS, we propose six different neighborhood structures and categorize them into three different groups. Then, we analyze their contribution to the results obtained by the algorithm. In order to improve the efficiency of the proposed approach, we leverage domain-specific information to perform incremental evaluations of the objective function and to explore only areas of interest in the search space. The proposed algorithm has been tested over a set of real world software repositories, achieving better results than the previous state-of-the-art method, a Hybrid Genetic Algorithm, in terms of both quality and computing times. Furthermore, the relevance of the improvement produced by our proposal has been corroborated by non-parametric statistical tests.
In the lifecycle of software projects, maintenance tasks usually entail 75% of the total costs, where most efforts are spent in understanding the program. To improve the maintainability of software ...projects, the code is often divided into components, which are then grouped in different modules following good design principles, lowering coupling and increasing cohesion. The Software Module Clustering Problem (SMCP) is an optimization problem that looks for maximizing the modularity of software projects in the context of Search-Based Software Engineering. In the SMCP, projects are often modeled as graphs. Therefore, the SMCP can be interpreted as a graph partitioning problem, which is proved to be NP-hard. In this work, we propose a new heuristic algorithm for software modularization, based on a Greedy Randomized Adaptive Search Procedure with Variable Neighborhood Descent. We present a three-fold categorization of neighborhoods for the SMCP and leverage domain-specific information to filter unpromising solutions. Our proposal has been successfully tested over a dataset of real software projects, outperforming the previous state-of-the-art approach in terms of Modularization Quality in very short computing times. Therefore, it could be integrated in software development tools to improve the quality of software projects in real time.
•A heuristic algorithm for software module clustering optimization.•A categorization of neighborhoods for the Software Module Clustering Problem.•Advanced strategies for the design of efficient optimization algorithms.•Application of GRASP and VNS metaheuristic methodologies.•Improvement of the previous state-of-the-art results.
Software module clustering is an unsupervised learning method used to cluster software entities (e.g., classes, modules, or files) of similar features. The obtained clusters may be used to study, ...analyze, and understand the structure and behavior of the software entities. Implementing software module clustering with optimal results is challenging. Accordingly, researchers have addressed many aspects of software module clustering in the last decade. Thus, it is essential to present research evidence that has been published in this area. In this study, 143 research papers that examined software module clustering from well-known literature databases were extensively reviewed to extract useful data. The obtained data were then used to answer several research questions regarding state-of-the-art clustering approaches, applications of clustering in software engineering, clustering process, clustering algorithms, and evaluation methods. Several research gaps and challenges in software module clustering are discussed in this paper to provide a useful reference for researchers in this field.
•Efficacy of hyper-heuristic approach for module clustering was studied.•Hyper-heuristic approach is effective in identifying “high quality” clusters.•Hyper-heuristic approach is “fast” enough to ...reach out to the optimum.•User-friendly framework for software module clustering is presented.
In the software maintenance phase of software development life cycle, one of the main concerns of software engineers is to group the modules into clusters with maximum cohesion and minimum coupling.
To analyze the efficacy of Multi-objective Hyper-heuristic Evolutionary Algorithm (MHypEA) in solving real-world clustering problems and to compare the results with the reported results in the literature for single as well as multi-objective formulations of the problem and also to present a CASE tool that assists software engineers in software module clustering process.
The paper reports on empirical evaluation of the performance of MHypEA with the reported results in the literature. The comparison is mainly based on two factors – quality of the obtained solutions and the computational effort.
On all the attempted problems, MHypEA reported good results in comparison to all the studies that were reported on multi-objective formulation of the problem, with a computational effort of nearly one-twentieth of the computational effort required by the other multi-objective algorithms.
The hyper-heuristic approach is able to produce high quality clustered systems with less computational effort.
The Kontsevich deformation quantization combines Poisson dynamics, noncommutative geometry, number theory, and calculus of oriented graphs. To manage the algebra and differential calculus of series ...of weighted graphs, we present software modules: these allow generating the Kontsevich graphs, expanding the noncommutative ⋆-product by using a priori undetermined coefficients, and deriving linear relations between the weights of graphs. Throughout this text we illustrate the assembly of the Kontsevich ⋆-product up to order 4 in the deformation parameter
Already at this stage, the ⋆-product involves hundreds of graphs; expressing all their coefficients via 149 weights of basic graphs (of which 67 weights are now known exactly), we express the remaining 82 weights in terms of only 10 parameters (more specifically, in terms of only 6 parameters modulo gauge-equivalence). Finally, we outline a scheme for computer-assisted proof of the associativity, modulo
for the newly built ⋆-product expansion.
In recent years, malware has grown faster than ever in volume, form and harmfulness. While existing static or dynamic analysis techniques can meet the common user needs for malware detection, ...analysts desire a more detailed overview to uncover the program architecture. Malware often force research into difficulties due to their complex anti-analysis techniques, which call for a quick analysis of program structure and components to clarify malware functional semantics. In this paper, we use community discovery methods to automate the malware program components analysis from the intuition of modular programing principles. Specifically, we design and implement DeMal, a solution to the malware module decomposition problem. It achieves remodularization by recovering program call relationships, extracting structure-related attributes, and applying an ensemble model of multiple community discovery algorithms. DeMal takes a malicious executable as input and predicts its code composition structure. In an evaluation with 155 malware samples, DeMal performs well on achieving an average F1-score of 71.3%, and 14.5% of the samples reach an average precision of 90%. The analysis time on each sample is about 19.79s. On extended experiments with 1,621 benign programs and over 10,000 stripped malware samples, we also verify DeMal's scalability on common programs as well as the large-scale performance, respectively. The visualization of the results also strongly demonstrates DeMal's module decomposition capabilities.
The paper deals with the automation of calculation of building structures, in particular, multilayered structures. When designing monolithic reinforced concrete slabs in fixed formwork, it is ...necessary to perform very complex calculations, with many parameters being calculated, and, accordingly, it is necessary to exclude calculation errors. The proposed solution is a software module, which, firstly, solves this problem, and secondly, has a unique opportunity to select the calculation mode, which takes into account the relevant functional problem. The system of functional calculation tasks of building constructions is formed. A description of the software module design is given. Automation of calculations of reinforced concrete structures due to the use of the program module provides reduction of time expenses of their performance, reduces labour and financial expenses, considerably raises the quality of calculations.