共查询到20条相似文献,搜索用时 15 毫秒
1.
Santiago A. Vidal Claudia Marcos J. Andrés Díaz-Pace 《Automated Software Engineering》2016,23(3):501-532
Code smells are a popular mechanism to find structural design problems in software systems. Consequently, several tools have emerged to support the detection of code smells. However, the number of smells returned by current tools usually exceeds the amount of problems that the developer can deal with, particularly when the effort available for performing refactorings is limited. Moreover, not all the code smells are equally relevant to the goals of the system or its health. This article presents a semi-automated approach that helps developers focus on the most critical problems of the system. We have developed a tool that suggests a ranking of code smells, based on a combination of three criteria, namely: past component modifications, important modifiability scenarios for the system, and relevance of the kind of smell. These criteria are complementary and enable our approach to assess the smells from different perspectives. Our approach has been evaluated in two case-studies, and the results show that the suggested code smells are useful to developers. 相似文献
2.
When interacting with source control management system, developers often commit unrelated or loosely related code changes in a single transaction. When analyzing version histories, such tangled changes will make all changes to all modules appear related, possibly compromising the resulting analyses through noise and bias. In an investigation of five open-source Java projects, we found between 7 % and 20 % of all bug fixes to consist of multiple tangled changes. Using a multi-predictor approach to untangle changes, we show that on average at least 16.6 % of all source files are incorrectly associated with bug reports. These incorrect bug file associations seem to not significantly impact models classifying source files to have at least one bug or no bugs. But our experiments show that untangling tangled code changes can result in more accurate regression bug prediction models when compared to models trained and tested on tangled bug datasets—in our experiments, the statistically significant accuracy improvements lies between 5 % and 200 %. We recommend better change organization to limit the impact of tangled changes. 相似文献
3.
In typical human–computer interaction, users convey their intentions through traditional input devices (e.g. keyboards, mice, joysticks) coupled with standard graphical user interface elements. Recently, pen-based interaction has emerged as a more intuitive alternative to these traditional means. However, existing pen-based systems are limited by the fact that they rely heavily on auxiliary mode switching mechanisms during interaction (e.g. hard or soft modifier keys, buttons, menus). In this paper, we describe how eye gaze movements that naturally occur during pen-based interaction can be used to reduce dependency on explicit mode selection mechanisms in pen-based systems. In particular, we show that a range of virtual manipulation commands, that would otherwise require auxiliary mode switching elements, can be issued with an 88% success rate with the aid of users׳ natural eye gaze behavior during pen-only interaction. 相似文献
4.
Charles L. Isbell Jr Olufisayo Omojokun Jeffrey S. Pierce 《Personal and Ubiquitous Computing》2004,8(3-4):146-153
One of the driving applications of ubiquitous computing is universal appliance interaction: the ability to use arbitrary mobile devices to interact with arbitrary appliances, such as TVs, printers, and lights. Because of limited screen real estate and the plethora of devices and commands available to the user, a central problem in achieving this vision is predicting which appliances and devices the user wishes to use next in order to make interfaces for those devices available. We believe that universal appliance interaction is best supported through the deployment of appliance user interfaces (UIs) that are personalized to a users habits and information needs. In this paper, we suggest that, in a truly ubiquitous computing environment, the user will not necessarily think of devices as separate entities; therefore, rather than focus on which device the user may want to use next, we present a method for automatically discovering the users common tasks (e.g., watching a movie, or surfing TV channels), predicting the task that the user wishes to engage in, and generating an appropriate interface that spans multiple devices. We have several results. We show that it is possible to discover and cluster collections of commands that represent tasks and to use history to predict the next task reliably. In fact, we show that moving from devices to tasks is not only a useful way of representing our core problem, but that it is, in fact, an easier problem to solve. Finally, we show that tasks can vary from user to user. 相似文献
5.
ContextCode generators can automatically perform some tedious and error-prone implementation tasks, increasing productivity and quality in the software development process. Most code generators are based on templates, which are fundamentally composed of text expansion statements. To build templates, the code of an existing, tested and validated implementation may serve as reference, in a process known as templatization. With the dynamics of software evolution/maintenance and the need for performing changes in the code generation templates, there is a loss of synchronism between the templates and this reference code. Additional effort is required to keep them synchronized.ObjectiveThis paper proposes automation as a way to reduce the extra effort needed to keep templates and reference code synchronized.MethodA mechanism was developed to semi-automatically detect and propagate changes from reference code to templates, keeping them synchronized with less effort. The mechanism was also submitted to an empirical evaluation to analyze its effects in terms of effort reduction during maintenance/evolution templatization.ResultsIt was observed that the developed mechanism can lead to a 50% reduction in the effort needed to perform maintenance/evolution templatization, when compared to a manual approach. It was also observed that this effect depends on the nature of the evolution/maintenance task, since for one of the tasks there was no observable advantage in using the mechanism. However, further studies are needed to better characterize these tasks.ConclusionAlthough there is still room for improvement, the results indicate that automation can be used to reduce effort and cost in the maintenance and evolution of a template-based code generation infrastructure. 相似文献
6.
为解决克隆代码有害性预测过程中特征无关与特征冗余的问题,提出一种基于相关程度和影响程度的克隆代码有害性特征选择组合模型。首先,利用信息增益率对特征数据进行相关性的初步排序;然后,保留相关性排名较高的特征并去除其他无关特征,减小特征的搜索空间;接着,采用基于朴素贝叶斯等六种分类器分别与封装型序列浮动前向选择算法结合来确定最优特征子集。最后对不同的特征选择方法进行对比分析,将各种方法在不同选择准则上的优势加以利用,对特征数据进行分析、筛选和优化。实验结果表明,与未进行特征选择之前对比发现有害性预测准确率提高15.2~34个百分点以上;与其他特征选择方法比较,该方法在F1测度上提高1.1~10.1个百分点,在AUC指标上提升达到0.7~22.1个百分点,能极大地提高有害性预测模型的准确度。 相似文献
7.
在软件开发过程中,程序员的复制、粘贴活动会产生大量的克隆代码,而那些发生不一致变化的克隆代码往往对程序是有害的。为了解决该问题,有效地发现程序中的有害克隆代码,提出一种基于贝叶斯网络的克隆有害性预测方法。首先,结合软件缺陷研究领域与克隆演化领域的相关研究成果,提出了两大类表征克隆代码信息的特征,分别是静态特征和演化特征;其次,通过贝叶斯网络核心算法来构建克隆有害性预测模型;最后,预测有害克隆代码发生的可能性。在5款C语言开源软件共99个版本上对克隆有害性预测模型的性能进行评估,实验结果表明该方法能够有效地实现对克隆代码有害性的预测,降低有害克隆代码对软件的威胁,提高软件质量。 相似文献
8.
Cognitive flexibility and adaptability to environmental changes in dynamic complex problem-solving tasks 总被引:1,自引:0,他引:1
People who show good performance in dynamic complex problem-solving tasks can also make errors. Theories of human error fail to fully explain when and why good performers err. Some theories would predict that these errors are to some extent the consequence of the difficulties that people have in adapting to new and unexpected environmental conditions. However, such theories cannot explain why some new conditions lead to error, while others do not. There are also some theories that defend the notion that good performers are more cognitively flexible and better able to adapt to new environmental conditions. However, the fact is that they sometimes make errors when they face those new conditions. This paper describes one experiment and a research methodology designed to test the hypothesis that when people use a problem-solving strategy, their performance is only affected by those conditions which are relevant to that particular strategy. This hypothesis is derived from theories that explain human performance based on the interaction between cognitive mechanisms and environment. 相似文献
9.
《Ergonomics》2012,55(5):482-501
People who show good performance in dynamic complex problem-solving tasks can also make errors. Theories of human error fail to fully explain when and why good performers err. Some theories would predict that these errors are to some extent the consequence of the difficulties that people have in adapting to new and unexpected environmental conditions. However, such theories cannot explain why some new conditions lead to error, while others do not. There are also some theories that defend the notion that good performers are more cognitively flexible and better able to adapt to new environmental conditions. However, the fact is that they sometimes make errors when they face those new conditions. This paper describes one experiment and a research methodology designed to test the hypothesis that when people use a problem-solving strategy, their performance is only affected by those conditions which are relevant to that particular strategy. This hypothesis is derived from theories that explain human performance based on the interaction between cognitive mechanisms and environment. 相似文献
10.
针对现有单一预测策略不适用于所有异构任务的问题,提出一种基于本地任务与远程任务运行时间的组合预测方案(CPS)和预测精度保证(PAA)的概念。使用GridSim工具集来实现CPS,将PAA作为定量评价由某一特定预测策略提供的预测运行时间精度的标准。仿真实验表明:与本地任务预测策略如Last和滑动窗口中值(SM)相比,CPS的平均相对残差下降了1.58%、1.62%;与远程任务预测策略如平均运行时间(RM)和加权移动平均值(ES)相比,CPS的平均相对残差下降了1.02%、2.9%。因此,PAA能从综合策略所提供的结果中选择接近最优值的预测,CPS增强了计算环境中本地任务和远程任务运行时间的PAA。 相似文献
11.
Sharing attention between two tasks requiring the same mental resources is supposed to increase the resulting strain. Phoning while driving may elicit cognitive interference between driving operations and conversation and consequently, may affect driving efficiency. The road scene cues may thus be perceived late or even omitted, increasing the probability to be involved in a critical situation. The aim of the experiment was to study how the additional strain elicited by a secondary task may change drivers' arousal with potential consequences on driving performance. Electrodermal activity, heart rate and reaction time (RT) were the dependent variables. Listening to the radio, holding an in-vehicle or a cell-phone conversation were the secondary communication tasks, performed by 10 participants during a driving sequence on a private circuit. Within nominal driving, each communication task was requested at random to prevent any habituation or anticipation. The cell-phone conversation made RT increase by about 20%, by comparison to the nominal driving condition. Nevertheless, the in-vehicle conversation impacted RT almost in the same proportion. Physiological data showed that arousal level increased as a function of dual-tasks requirements, the in-vehicle conversation eliciting the same strain as the remote conversation. With caution due to contextual differences between these two communication tasks, conversing with a passenger was thus as detrimental as using a cell-phone. 相似文献
12.
Jiqiang Song Zuo Li Michael R Lyu Shijie Cai 《IEEE transactions on systems, man, and cybernetics. Part B, Cybernetics》2005,35(1):2-11
Merged characters are the major cause of recognition errors. We classify the merging relationship between two involved characters into three types: "linear," "nonlinear," and "overlapped." Most segmentation methods handle the first type well, however, their capabilities of handling the other two types are limited. The weakness of handling the nonlinear and overlapped types results from character segmentation by linear, usually vertical, cuts assumed in these methods. This paper proposes a novel merged character segmentation and recognition method based on forepart prediction, necessity-sufficiency matching and character-adaptive masking. This method utilizes the information obtained from the forepart of merged characters to predict candidates for the leftmost character, and then applies character-adaptive masking and character recognition to verifying the prediction. Therefore, the arbitrary-shaped cutting path will follow the right shape of the leftmost character so as to preserve the shape of the next character. This method handles the first two types well and greatly improves the segmentation accuracy of the overlapped type. The experimental results and the performance comparisons with other methods demonstrate the effectiveness of the proposed method. 相似文献
13.
针对克隆代码有害性预测中有害和无害数据分类不平衡的问题,提出一种基于随机下采样(RUS)的能够自动调整分类不平衡的K-Balance算法。首先对克隆代码提取静态特征和演化特征构建样本数据集;然后选取比例不同的分类不平衡新数据集;接着对已选取的新数据集进行有害性预测;最后,通过观察分类器的不同表现自动选择一个最适合的分类不平衡比例值。在7款C语言开源软件共170个版本上对克隆有害性预测模型的性能进行评估,并和其他分类不平衡解决方法进行对比,实验结果表明所提方法对有害和无害克隆的分类预测效果(受试者工作特征曲线下方面积(AUC)值)提高了2.62个百分点~36.70个百分点,能有效地改善分类不平衡的预测问题。 相似文献
14.
Library or framework APIs are difficult to learn and use,leading to unexpected software behaviors or bugs.Hence,various API mining techniques have been introduc... 相似文献
15.
为了克服单DSP码激励线性预测语音系统通用性差、双处理器系统(ARM和DSP)码激励线性预测语音设计成本高和硬件接口设计复杂及稳定性低等问题,提出使用单片S3c2410处理器芯片实现码激励线性预测语音系统;包括算法分析,系统硬件平台设计和系统软件设计.实验结果表明,在不降低系统语音性能的同时,采用单片S3c2410处理器,能够提高系统通用性和稳定性,降低设计的复杂性和成本. 相似文献
16.
Toward understanding the rhetoric of small source code changes 总被引:1,自引:0,他引:1
Purushothaman R. Perry D.E. 《IEEE transactions on pattern analysis and machine intelligence》2005,31(6):511-526
Understanding the impact of software changes has been a challenge since software systems were first developed. With the increasing size and complexity of systems, this problem has become more difficult. There are many ways to identify the impact of changes on the system from the plethora of software artifacts produced during development, maintenance, and evolution. We present the analysis of the software development process using change and defect history data. Specifically, we address the problem of small changes by focusing on the properties of the changes rather than the properties of the code itself. Our study reveals that 1) there is less than 4 percent probability that a one-line change introduces a fault in the code, 2) nearly 10 percent of all changes made during the maintenance of the software under consideration were one-line changes, 3) nearly 50 percent of the changes were small changes, 4) nearly 40 percent of changes to fix faults resulted in further faults, 5) the phenomena of change differs for additions, deletions, and modifications as well as for the number of lines affected, and 6) deletions of up to 10 lines did not cause faults. 相似文献
17.
18.
Kris Hauser 《Autonomous Robots》2013,35(4):241-254
The approach of inferring user’s intended task and optimizing low-level robot motions has promise for making robot teleoperation interfaces more intuitive and responsive. But most existing methods assume a finite set of candidate tasks, which limits a robot’s functionality. This paper proposes the notion of freeform tasks that encode an infinite number of possible goals (e.g., desired target positions) within a finite set of types (e.g., reach, orient, pick up). It also presents two technical contributions to help make freeform UIs possible. First, an intent predictor estimates the user’s desired task, and accepts freeform tasks that include both discrete types and continuous parameters. Second, a cooperative motion planner continuously updates the robot’s trajectories to achieve the inferred tasks by repeatedly solving optimal control problems. The planner is designed to respond interactively to changes in the indicated task, avoid collisions in cluttered environments, handle time-varying objective functions, and achieve high-quality motions using a hybrid of numerical and sampling-based techniques. The system is applied to the problem of controlling a 6D robot manipulator using 2D mouse input in the context of two tasks: static target reaching and dynamic trajectory tracking. Simulations suggest that it enables the robot to reach intended targets faster and to track intended trajectories more closely than comparable techniques. 相似文献
19.
Brian Chan King Chun Foo Lionel Marks Ying Zou 《International Journal on Software Tools for Technology Transfer (STTT)》2009,11(6):503-515
Business applications automate various business processes within an organization. Business analysts frequently modify business
processes to maintain a competitive edge. Estimating the time needed to modify a business process is not a trivial task, since
changes to the business process result in changes to the source code of which the business analyst has limited knowledge.
We propose a change impact metric which estimates the code to be modified as a result of a business process change. We demonstrate
the effectiveness of our proposed change impact metric through a case study, using seven large business applications from
the OFBiz open source project. 相似文献
20.
This paper addresses the problem of scheduling non-preemptive moldable tasks to minimize the stretch of the tasks in an online non-clairvoyant setting. To the best of the authors’ knowledge, this problem has never been studied before. To tackle this problem, first the sequential subproblem is studied through the lens of the approximation theory. An algorithm, called DASEDF, is proposed and, through simulations, it is shown to outperform the first-come, first-served scheme. Furthermore, it is observed that machine availability is the key to getting good stretch values. Then, the moldable task scheduling problem is considered, and, by leveraging the results from the sequential case, another algorithm, DBOS, is proposed to optimize the stretch while scheduling moldable tasks. This work is motivated by a task scheduling problem in the context of parallel short sequence mapping which has important applications in biology and genetics. The proposed DBOS algorithm is evaluated both on synthetic data sets that represent short sequence mapping requests and on data sets generated using log files of real production clusters. The results show that the DBOS algorithm significantly outperforms the two state-of-the-art task scheduling algorithms on stretch optimization. 相似文献