183,184 research outputs found
On the Feasibility of Transfer-learning Code Smells using Deep Learning
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
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
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
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
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
- …