183,184 research outputs found

    On the Feasibility of Transfer-learning Code Smells using Deep Learning

    Full text link
    Context: A substantial amount of work has been done to detect smells in source code using metrics-based and heuristics-based methods. Machine learning methods have been recently applied to detect source code smells; however, the current practices are considered far from mature. Objective: First, explore the feasibility of applying deep learning models to detect smells without extensive feature engineering, just by feeding the source code in tokenized form. Second, investigate the possibility of applying transfer-learning in the context of deep learning models for smell detection. Method: We use existing metric-based state-of-the-art methods for detecting three implementation smells and one design smell in C# code. Using these results as the annotated gold standard, we train smell detection models on three different deep learning architectures. These architectures use Convolution Neural Networks (CNNs) of one or two dimensions, or Recurrent Neural Networks (RNNs) as their principal hidden layers. For the first objective of our study, we perform training and evaluation on C# samples, whereas for the second objective, we train the models from C# code and evaluate the models over Java code samples. We perform the experiments with various combinations of hyper-parameters for each model. Results: We find it feasible to detect smells using deep learning methods. Our comparative experiments find that there is no clearly superior method between CNN-1D and CNN-2D. We also observe that performance of the deep learning models is smell-specific. Our transfer-learning experiments show that transfer-learning is definitely feasible for implementation smells with performance comparable to that of direct-learning. This work opens up a new paradigm to detect code smells by transfer-learning especially for the programming languages where the comprehensive code smell detection tools are not available

    Data quality: Some comments on the NASA software defect datasets

    Get PDF
    Background-Self-evidently empirical analyses rely upon the quality of their data. Likewise, replications rely upon accurate reporting and using the same rather than similar versions of datasets. In recent years, there has been much interest in using machine learners to classify software modules into defect-prone and not defect-prone categories. The publicly available NASA datasets have been extensively used as part of this research. Objective-This short note investigates the extent to which published analyses based on the NASA defect datasets are meaningful and comparable. Method-We analyze the five studies published in the IEEE Transactions on Software Engineering since 2007 that have utilized these datasets and compare the two versions of the datasets currently in use. Results-We find important differences between the two versions of the datasets, implausible values in one dataset and generally insufficient detail documented on dataset preprocessing. Conclusions-It is recommended that researchers 1) indicate the provenance of the datasets they use, 2) report any preprocessing in sufficient detail to enable meaningful replication, and 3) invest effort in understanding the data prior to applying machine learners

    Software Engineering Timeline: major areas of interest and multidisciplinary trends

    Get PDF
    Ingeniería del software. EvolucionSociety today cannot run without software and by extension, without Software Engineering. Since this discipline emerged in 1968, practitioners have learned valuable lessons that have contributed to current practices. Some have become outdated but many are still relevant and widely used. From the personal and incomplete perspective of the authors, this paper not only reviews the major milestones and areas of interest in the Software Engineering timeline helping software engineers to appreciate the state of things, but also tries to give some insights into the trends that this complex engineering will see in the near future

    Evaluation of electric and magnetic fields distribution and SAR induced in 3D models of water containers by radiofrequency radiation using FDTD and FEM simulation techniques

    Full text link
    In this study, two software packages using different numerical techniques FEKO 6.3 with Finite-Element Method (FEM) and XFDTD 7 with Finite Difference Time Domain Method (FDTD) were used to assess exposure of 3D models of square, rectangular, and pyramidal shaped water containers to electromagnetic waves at 300, 900, and 2400 MHz frequencies. Using the FEM simulation technique, the peak electric field of 25, 4.5, and 2 V/m at 300 MHz and 15.75, 1.5, and 1.75 V/m at 900 MHz were observed in pyramidal, rectangular, and square shaped 3D container models, respectively. The FDTD simulation method confirmed a peak electric field of 12.782, 10.907, and 10.625 V/m at 2400 MHz in the pyramidal, square, and rectangular shaped 3D models, respectively. The study demonstrated an exceptionally high level of electric field in the water in the two identical pyramid shaped 3D models analyzed using the two different simulation techniques. Both FEM and FDTD simulation techniques indicated variations in the distribution of electric, magnetic fields, and specific absorption rate of water stored inside the 3D container models. The study successfully demonstrated that shape and dimensions of 3D models significantly influence the electric and magnetic fields inside packaged materials; thus, specific absorption rates in the stored water vary according to the shape and dimensions of the packaging materials.Comment: 22 pages, 30 figures and 2 table

    Should I Bug You? Identifying Domain Experts in Software Projects Using Code Complexity Metrics

    Full text link
    In any sufficiently complex software system there are experts, having a deeper understanding of parts of the system than others. However, it is not always clear who these experts are and which particular parts of the system they can provide help with. We propose a framework to elicit the expertise of developers and recommend experts by analyzing complexity measures over time. Furthermore, teams can detect those parts of the software for which currently no, or only few experts exist and take preventive actions to keep the collective code knowledge and ownership high. We employed the developed approach at a medium-sized company. The results were evaluated with a survey, comparing the perceived and the computed expertise of developers. We show that aggregated code metrics can be used to identify experts for different software components. The identified experts were rated as acceptable candidates by developers in over 90% of all cases
    corecore