首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 187 毫秒
1.
近年,随着信息技术快速发展,软件重要性与日俱增,极大地推动了国民经济的发展.然而,由于软件业务形态越来越复杂和需求变化越来越快,软件的开发和维护成本急剧增加,迫切需要探索新的软件开发模式和技术.目前各行业在软件活动中积累了规模巨大的软件代码和数据,这些软件资产为软件智能化开发建立了数据基础.与此同时,深度学习等人工智能技术在多领域取得的成功应用,促使研究者考虑使用智能化技术与软件工程技术相结合解决程序自动生成问题.程序智能合成方法是程序自动生成的新途径,通过实现软件开发过程自动化,提高软件生产率.本文首先分析了软件工程发展历程及挑战.进而研究了智能化程序合成技术领域的研究布局,以及各方法的优势和劣势.最后,对程序智能合成技术加以总结并给出了未来研究建议.  相似文献   

2.
情感分析在软件工程领域具有广泛的应用场景,例如,从代码提交信息中检测开发者的情绪、从程序员问答论坛中识别开发者的观点等.但是,现有的“开箱即用”的情感分析工具无法在软件工程相关的任务中取得可靠的结果.已有研究表明,导致不可靠结果的最主要原因是,这些工具无法理解一些单词和短语在软件工程领域中的特定含义.此后,研究者们开始为软件工程领域定制监督学习和远程监督学习方法.为了验证这些方法的效果,研究者们使用软件工程相关的标注数据集来对它们进行数据集内验证,即,将同一数据集划分为训练集和测试集,分别用于方法的训练和测试.但是,对软件工程领域的某些情感分析任务来说,尚无标注数据集,且人工标注数据集耗时耗力.在此情况下,一种可选的方法就是使用为了相似任务从同一目标平台上提取的数据集或者使用从其他软件工程平台上提取的数据集.为了验证这两种做法的可行性,需要进一步以平台内设置和跨平台设置来验证现有情感分析方法.平台内设置指的是使用提取自同一平台的不同数据集作为训练集和测试集;跨平台设置指的是使用提取自不同平台的数据集作为训练集和测试集.目标旨在数据集内设置、平台内设置、跨平台设置这3种设置下,综合验证现...  相似文献   

3.
为了方便科研工作者了解本领域SCI(Science Citation Index)期刊的影响因子,编程实现了针对每年公布的11000余种SCI期刊某一领域数据的筛选,以得到与本学科相关期刊的影响因子情况.SCI收录的期刊涉及近百个研究领域,而每个研究者只关心其中的一个或两个研究领域.目前,科研工作者多利用Excel工具,人工手动处理这些期刊数据,其工作量巨大且准确性不能得到保障.用VB 6.0(Visual Basic6.0)编程实现对SCI期刊数据库工作簿的批量数据处理,其过程快速、便捷、准确率高且适用范围广.  相似文献   

4.
邱江涛  唐常杰  李庆 《软件学报》2013,24(4):798-809
在学术文献检索中,如果检索系统根据用户提交的查询返回相关领域的文献,并将文献按重要程度进行排序,可以帮助用户快速了解相关学术领域.提出一个面向领域的学术文献检索框架,结合引用网络分析和内容分析来发现并排序相关领域重要文献.该框架设计了一个评分函数进行检索,包含两个方面:(1)论文在所查询领域的重要性;(2)论文与该领域的相关性.首先研究了一个“社区核”发现算法,从引用网络上发现和查询领域相关的一个文献子集,并对论文计算重要性评分.设计了一种有监督非负矩阵分解算法,该算法使用确定的领域相关文献为先验知识对其他论文进行分类并给出一个评分,以确定论文和查询学术领域的相关性.在真实数据集和合成数据集上的实验,证实了方法的有效性.  相似文献   

5.
刘璘  周明辉  尹刚 《软件学报》2017,28(6):1327-1329
软件在人类社会生活中发挥着越来越重要的作用,软件工程研究软件系统构造、开发、运行、维护、演化的创新方法以提高效率和质量.从上世纪五六十年代起,软件工程经历了从结构化、到面向对象、到网络服务化的演进.软件工程研究内容和范围不断扩展,其应用和实践也不断延伸,正发展成为结合人工智能、社会计算、认知科学、数据科学与工程等多学科交叉的领域. 为及时反映我国学者在结合大数据技术的软件工程研究新进展,以及在大数据软件应用的开发方面的最新实践经验,“大数据时代的软件工程”专题围绕上述新兴热点问题,同时也兼顾经典问题的最新突破,征集本领域近期取得的原创性研究成果.专题的征文范围包括(但并不限于)面向特定领域的大数据应用开发、调试、部署及运行管理过程中的软件工程问题、软件工程数据质量问题、面向开源软件生态系统的数据分析、软件生命周期中的数据采集与分析、大规模群体协同的软件开发方法与平台环境、面向软件系统创新与产品线演化的模型、理论与工具、面向特定领域的大数据应用需求分析、用户行为数据收集与系统可用性分析、软件数据分析的代价与价值评估. 专题公开征文,共征得投稿22篇.特约编辑邀请了国内外在该领域有影响力的一组学者参与审稿工作,每篇投稿至少邀请2位专家进行初审.大部分稿件经过初审和复审两轮评审,部分稿件经过了两轮复审.通过初审的稿件还在NASAC 2016大会上进行了现场报告,作者现场回答了听众的问题,并听取了听众的修改建议.最终有13篇论文入选本专题.入选论文覆盖开源软件生态分析、软件分类检测与推荐、软件故障与缺陷预测、面向领域的大数据应用开发方法.  相似文献   

6.
开源数据集加速了深度学习的发展, 但存在许多不合理使用数据集的现象. 为保护数据集的知识产权, 近期工作提出数据集水印算法, 在数据集发布前预先植入水印, 当模型在此数据集上训练时该水印会被附着在模型中, 之后通过验证可疑模型是否存在水印来追溯数据集的非法使用. 但已有数据集水印算法无法在小扰动下提供有效并且隐蔽的黑盒水印验证. 为解决这一问题, 本文首次提出利用独立于图像内容与标签的风格属性来植入水印, 并限制对原数据集的扰动不涉及标签的修改. 通过不引入图像内容与标签的不一致性和额外的代理模型保证水印隐蔽性和有效性. 在水印验证阶段仅使用可疑模型的预测结果通过假设检验给出判断. 本文在CIFAR-10数据集上与现有5种方法相比较, 实验结果验证了本文提出的基于风格的数据集水印算法的有效性与功能不变性. 此外, 本文开展的消融实验验证了本文所提的风格优化模块的必要性, 算法在不同超参设定以及不同数据集下的有效性.  相似文献   

7.

针对一类线性系统,分析数据丢失对迭代学习控制算法的影响.首先基于lifting方法给出跟踪误差渐近收敛和单调收敛的条件,并分析收敛速度与数据丢失率的关系,结果表明收敛速度随着数据丢失程度的增加而变慢.其次,为抑制迭代变化扰动的影响,给出一种存在数据丢失时的鲁棒迭代学习控制器设计方法,并将控制器设计问题转化为求取线性矩阵不等式的可行解.仿真示例验证了理论分析的结果以及鲁棒迭代学习控制算法的有效性.

  相似文献   

8.

研究存在未知短时延、丢包和系统不确定性的网络化切换控制系统故障检测与时域优化问题. 首先基 于观测器构建残差发生器, 结合Lyapunov 函数方法和平均驻留时间方法分析系统的稳定性, 并以线性矩阵不等式(LMI) 形式给出故障检测滤波器的求解方法; 然后为了改善故障检测系统的性能, 采用后置滤波器对残差信号进行时域优化, 并利用奇偶空间方法给出其最优解; 最后设计并推导出自适应阈值. 仿真结果验证了所提出方法的有效性.

  相似文献   

9.
差别矩阵约简表示及其快速算法实现   总被引:1,自引:0,他引:1  

差别矩阵可以拥有不同的信息, 根据差别矩阵描述的区分信息量不同, 给出4 种差别矩阵定义, 并提出相应H-约简、S-约简、B-约简和P-约简的概念; 研究4 种约简之间的关系, 构建通用约简算法模型. 为了提高约简算法的效率, 给出相对分辨能力约简定义(RD-约简), 揭示相对分辨能力约简与4 种差别矩阵约简之间的等价性, 进而设计相对分辨能力快速约简算法. 最后, 通过实例和UCI 数据集验证了所提出约简算法的有效性和时空性能.

  相似文献   

10.
黄璜  张贺  邵栋 《软件学报》2019,30(10):3056-3070
DevOps作为一次软件工程领域的变革,近10年迅速发展的原因是多方面的.关注了中国DevOps的发展历程中自动化工具带来的实际影响以及自动化工具产生的一系列问题.使用系统化文献评价获取了目前DevOps实践中被研究者分析最多的自动化支持工具,从50篇文献中识别出包括Docker、Chef、Jenkins和Puppet等69个自动化工具;然后通过灰色文献评价从一些中文博客文章中分析出自动化工具在中国DevOps实践中出现的3个层次的问题;最后通过民族志访谈方法分析了在中国环境下各方对待3个层次问题的看法和建议,得出自动化工具对中国DevOps实践的两个影响:(1)自动化工具在DevOps实践的前期作用明显,可以认为DevOps实践就是使用自动化工具;(2)软件组织实现DevOps转型以后需要减少对自动化工具的依赖,形成自己的DevOps文化.对于自动化工具在中国DevOps实践中产生的问题,整合访谈内容后形成了解决问题的3个建议,并给出了一个转型范例.  相似文献   

11.
Empirical research is playing a significant role in software engineering (SE), and it has been applied to evaluate software artifacts and technologies. There have been a great number of empirical research articles published recently. There is also a large research community in empirical software engineering (ESE). In this paper, we identify both the overall landscape and detailed implementations of ESE, and investigate frequently applied empirical methods, targeted research purposes, used data sources, and applied data processing approaches and tools in ESE. The aim is to identify new trends and obtain interesting observations of empirical software engineering across different sub-fields of software engineering. We conduct a mapping study on 538 selected articles from January 2013 to November 2017, with four research questions. We observe that the trend of applying empirical methods in software engineering is continuously increasing and the most commonly applied methods are experiment, case study and survey. Moreover, open source projects are the most frequently used data sources. We also observe that most of researchers have paid attention to the validity and the possibility to replicate their studies. These observations are carefully analyzed and presented as carefully designed diagrams. We also reveal shortcomings and demanded knowledge/strategies in ESE and propose recommendations for researchers.  相似文献   

12.
In this paper we explore how the software engineering research community is currently dealing with the ethical issues that some empirical research presents. We discuss how the immaturity of the software engineering discipline is reflected in an approach to ethical issues that compares unfavourably with other more mature disciplines.We show that an analysis of recent published work measures an increase in empirical software engineering research currently being undertaken. We also discuss our survey of UK University Department Heads which explores how the software engineering research community is dealing with the ethical issues related to empirical work. Overall we found that whilst some UK Universities have taken ethical issues very seriously, others have not considered the issues.  相似文献   

13.
Qualitative methods in empirical studies of software engineering   总被引:1,自引:0,他引:1  
While empirical studies in software engineering are beginning to gain recognition in the research community, this subarea is also entering a new level of maturity by beginning to address the human aspects of software development. This added focus has added a new layer of complexity to an already challenging area of research. Along with new research questions, new research methods are needed to study nontechnical aspects of software engineering. In many other disciplines, qualitative research methods have been developed and are commonly used to handle the complexity of issues involving human behaviour. The paper presents several qualitative methods for data collection and analysis and describes them in terms of how they might be incorporated into empirical studies of software engineering, in particular how they might be combined with quantitative methods. To illustrate this use of qualitative methods, examples from real software engineering studies are used throughout  相似文献   

14.
The popularity of empirical methods in software engineering research is on the rise. Surveys, experiments, metrics, case studies, and field studies are examples of empirical methods used to investigate both software engineering processes and products. The increased application of empirical methods has also brought about an increase in discussions about adapting these methods to the peculiarities of software engineering. In contrast, the ethical issues raised by empirical methods have received little, if any, attention in the software engineering literature. This article is intended to introduce the ethical issues raised by empirical research to the software engineering research community and to stimulate discussion of how best to deal with these ethical issues. Through a review of the ethical codes of several fields that commonly employ humans and artifacts as research subjects, we have identified major ethical issues relevant to empirical studies of software engineering. These issues are illustrated with real empirical studies of software engineering.  相似文献   

15.
Machine learning (ML) techniques and algorithms have been successfully and widely used in various areas including software engineering tasks. Like other software projects, bugs are also common in ML projects and libraries. In order to more deeply understand the features related to bug fixing in ML projects, we conduct an empirical study with 939 bugs from five ML projects by manually examining the bug categories, fixing patterns, fixing scale, fixing duration, and types of maintenance. The results show that (1) there are commonly seven types of bugs in ML programs; (2) twelve fixing patterns are typically used to fix the bugs in ML programs; (3) 68.80% of the patches belong to micro-scale-fix and small-scale-fix; (4) 66.77% of the bugs in ML programs can be fixed within one month; (5) 45.90% of the bug fixes belong to corrective activity from the perspective of software maintenance. Moreover, we perform a questionnaire survey and send them to developers or users of ML projects to validate the results in our empirical study. The results of our empirical study are basically consistent with the feedback from developers. The findings from the empirical study provide useful guidance and insights for developers and users to effectively detect and fix bugs in MLprojects.  相似文献   

16.
ContextFormal methods, and particularly formal verification, is becoming more feasible to use in the engineering of large highly dependable software-based systems, but so far has had little rigorous empirical study. Its artefacts and activities are different to those of conventional software engineering, and the nature and drivers of productivity for formal methods are not yet understood.ObjectiveTo develop a research agenda for the empirical study of productivity in software projects using formal methods and in particular formal verification. To this end we aim to identify research questions about productivity in formal methods, and survey existing literature on these questions to establish face validity of these questions. And further we aim to identify metrics and data sources relevant to these questions.MethodWe define a space of GQM goals as an investigative framework, focusing on productivity from the perspective of managers of projects using formal methods. We then derive questions for these goals using Easterbrook et al.’s (2008) taxonomy of research questions. To establish face validity, we document the literature to date that reflects on these questions and then explore possible metrics related to these questions. Extensive use is made of literature concerning the L4.verified project completed within NICTA, as it is one of the few projects to achieve code-level formal verification for a large-scale industrially deployed software system.ResultsWe identify more than thirty research questions on the topic in need of investigation. These questions arise not just out of the new type of project context, but also because of the different artefacts and activities in formal methods projects. Prior literature supports the need for research on the questions in our catalogue, but as yet provides little evidence about them. Metrics are identified that would be needed to investigate the questions. Thus although it is obvious that at the highest level concepts such as size, effort, rework and so on are common to all software projects, in the case of formal methods, measurement at the micro level for these concepts will exhibit significant differences.ConclusionsEmpirical software engineering for formal methods is a large open research field. For the empirical software engineering community our paper provides a view into the entities and research questions in this domain. For the formal methods community we identify some of the benefits that empirical studies could bring to the effective management of large formal methods projects, and list some basic metrics and data sources that could support empirical studies. Understanding productivity is important in its own right for efficient software engineering practice, but can also support future research on cost-effectiveness of formal methods, and on the emerging field of Proof Engineering.  相似文献   

17.
Techniques for detecting defects in source code are fundamental to the success of any software development approach. A software development organization therefore needs to understand the utility of techniques such as reading or testing in its own environment. Controlled experiments have proven to be an effective means for evaluating software engineering techniques and gaining the necessary understanding about their utility. This paper presents a characterization scheme for controlled experiments that evaluate defect-detection techniques. The characterization scheme permits the comparison of results from similar experiments and establishes a context for cross-experiment analysis of those results. The characterization scheme is used to structure a detailed survey of four experiments that compared reading and testing techniques for detecting defects in source code. We encourage educators, researchers, and practitioners to use the characterization scheme in order to develop and conduct further instances of this class of experiments. By repeating this experiment we expect the software engineering community will gain quantitative insights about the utility of defect-detection techniques in different environments.This work was conducted while the author was with the Department of Computer Science, University of Kaiserslautern, 67653 Kaiserslautern, Germany.  相似文献   

18.
Before technology is transferred to the market, it must be validated empirically by simulating future practical use of the technology. Technology prototypes are first investigated in simplified contexts, and these simulations are scaled up to conditions of practice step by step as more becomes known about the technology. This paper discusses empirical research methods for scaling up new requirements engineering (RE) technology.When scaling up to practice, researchers want to generalize from validation studies to future practice. An analysis of scaling up technology in drug research reveals two ways to generalize, namely inductive generalization using statistical inference from samples, and analogic generalization using similarity between cases. Both are supported by abductive inference using mechanistic explanations of phenomena observed in the simulations. Illustrations of these inferences both in drug research and empirical RE research are given. Next, four kinds of methods for empirical RE technology validation are given, namely expert opinion, single-case mechanism experiments, technical action research and statistical difference-making experiments. A series of examples from empirical RE will illustrate the use of these methods, and the role of inductive generalization, analogic generalization, and abductive inference in them. Finally, the four kinds of empirical validation methods are compared with lists of validation methods known from empirical software engineering. The lists are combined to give an overview of some of the methods, instruments and data analysis techniques that may be used in empirical RE.  相似文献   

19.
Bayesian analysis of empirical software engineering cost models   总被引:1,自引:0,他引:1  
Many parametric software estimation models have evolved in the last two decades (L.H. Putnam and W. Myers, 1992; C. Jones, 1997; R.M. Park et al., 1992). Almost all of these parametric models have been empirically calibrated to actual data from completed software projects. The most commonly used technique for empirical calibration has been the popular classical multiple regression approach. As discussed in the paper, the multiple regression approach imposes a few assumptions frequently violated by software engineering datasets. The paper illustrates the problems faced by the multiple regression approach during the calibration of one of the popular software engineering cost models, COCOMO II. It describes the use of a pragmatic 10 percent weighted average approach that was used for the first publicly available calibrated version (S. Chulani et al., 1998). It then moves on to show how a more sophisticated Bayesian approach can be used to alleviate some of the problems faced by multiple regression. It compares and contrasts the two empirical approaches, and concludes that the Bayesian approach was better and more robust than the multiple regression approach  相似文献   

20.
软件工程领域的一个重要问题是预测软件开发项目的规模、工作量和成本,即软件项目估算问题。基于机器学习的方法在软件项目估算领域具有优势地位,本文提出了基于决策树的聚类分析预测方法,通过对目标项目的目标属性进行正确分类,预测目标属性的取值范围。通过对502个ISBSG v9项目数据集中的项目进行基于C4.5算法的分类预测,正确率达到82.4701%,满足了软件项目估算的指标要求。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号