共查询到20条相似文献,搜索用时 93 毫秒
1.
2.
3.
4.
模型转换中特性保持的描述与验证 总被引:2,自引:0,他引:2
模型转换主要用于模型的演化、求精以及重构.模型转换需要遵循一定的约束规则以保持模型的某些特性.模型演化通常要求保持已有的接口;模型重构则必须保证重构前后的软件具有相同的外部行为特性.为了严格证明某个模型转换规则是否满足这些约束,特性保持约束必须形式化地加以描述.为了实现证明过程的自动化,需要总结通用的证明过程并给出实现算法.提出了一种基于图转换的特性保持约束描述机制,将模型演化与重构中的转换规则以及特性保持约束都描述为图转换规则.借助图转换的冲突检测机制,给出了严格证明转换规则是否满足特性保持约束的算法. 相似文献
5.
6.
可重构硬件和指令集处理器构成的混成系统兼有运算速度高和编程灵活的优点,是近年来学术界研究的热点.已有的面向该类系统的操作系统由于受到传统抽象模型的制约,不能充分发挥可重构硬件的优势.文中在分析该类系统对操作系统的需求和已有运行模型缺陷的基础上,提出了一种基于服务体/执行流模型的操作系统SEF-OSHRS.它具有统一的系统对象抽象和通信接口,并可支持控制流的直接转换,因而能充分发挥混成系统的优势.文中详细介绍了该操作系统的基本抽象、系统结构和运行方式,并通过实验结果说明了该系统的可用性和高效性. 相似文献
7.
针对可重构系统中的数据流驱动应用,提出支持动态可重构的软/硬件统一多线程编程模型SHUMDR及其层次化实现.通过硬件线程接口设计、操作系统内核扩展,便于设计人员以统一的线程视图描述应用的软硬件划分.以数据加密/解密为例进行测试的结果表明,统一线程抽象带来的时间开销和空间资源占用率较小,该模型在探索编程灵活性的同时,能够有效地兼顾硬件的效率. 相似文献
8.
各种网络化实体或智能实体的嵌入将物理世界转变为智能世界,增加了基于物理世界统一抽象模型的推理复杂性.基于Saitta和Zucker定义的知识重构与抽象模型,提出一种新的表示智能世界的方法.通过感知重构过程,根据构成实体之间的通信关系自动构建3个可区分的、相互关联的子模型,即物理世界、网络化世界和虚拟世界,3个子模型之间的关系构成了智能世界的一个集成化模型.着重介绍了感知重构过程的形式化表示和推理机制.实际搭建的智能世界设计诊断推理实验表明,与基于知识重构和抽象一般物理世界模型相比,基于提出的智能世界模型的推理过程可以将系统故障限制在一个子模型中,从而较大程度地缩小了诊断的搜索空间. 相似文献
9.
10.
利用FME实现GIS与CAD的语义转换 总被引:11,自引:0,他引:11
论文分析了GIS和CAD的数据结构,介绍了如何利用FME实现GIS数据与CAD的语义转换及其优势所在,采用这种方法进行数据转换,可以在数据转换过程中重构数据实体,在一定程度上解决了以往数据转换中存在的问题。 相似文献
11.
多约束排序问题是生产调度中常遇到的问题,传统的优化模型及方法在适应约束改变等方面存在诸多不足。鉴于此,将多约束排序问题定义为约束满足问题,系统设计时将模型定义与求解算法分离,利用约束规划平台的基本约束构建特定领域的抽象约束库,形成可重构的多约束排序问题通用求解框架。应用时,根据问题需求不同可利用抽象约束库快速重构优化模型,针对重构的优化模型配置相应的求解算法即可实现问题求解。应用结果表明,提出的方法通用性强,可满足实际应用的要求。 相似文献
12.
为了实现代码缺陷与代码味道的自动探测与优化, 提升优化与重构的效率, 设计并开发了一套名为SCORT的源代码优化与重构工具。SCORT将源代码解析为抽象语法树, 再探测其中存在的代码缺陷和代码味道, 最后对缺陷和味道进行自动优化和重构。在SCORT中已经实现了对15种常见代码缺陷和六种常见代码味道的检测以及自动优化与重构, 提供了多种代码味道的自动重构算法, 且具有良好的可扩展性。通过对三个待测项目的探测和优化实验结果表明, 对于常见代码缺陷的探测和优化, SCORT的精确率、召回率和准确率均可达100%; 对于部分常见的代码味道, SCORT尚需进一步完善。SCORT有助于开发人员提高代码质量, 减少源代码中存在的缺陷和味道。 相似文献
13.
从单体系统迁移到微服务系统是当前业界对遗留系统实施再工程化的主流选项之一,基于单体遗留系统的微服务体系架构重构则是实现该迁移的关键步骤.目前学界多集中在微服务识别方法的研究上;业界虽有许多面向微服务架构的遗留系统重构的实践,但缺乏系统性的方法及高效鲁棒的工具.鉴于此,在微服务识别与模型驱动开发方法前期研究的基础上,研发一种模型驱动的、可用于单体遗留系统微服务化重构的集成设计平台MSA-Lab.它通过分析单体遗留系统运行日志中的方法调用序列,对其中的类和数据表进行类型识别和聚类以构造抽象微服务,同时生成包括微服务图和微服务序列图在内的系统架构设计模型.它包括用于微服务自动识别与设计模型自动生成的核心部件MSA-Generator,以及用于微服务静态结构模型与动态行为模型可视化展现、交互式建模、模型语法约束检验的核心部件MSA-Modeller.在MSA-Lab平台上,通过对4个开源项目实施有效性、鲁棒性、功能转换完备性等实验以及对3个同类型工具实施性能对比实验,结果表明:所提平台拥有很好的有效性、鲁棒性及实现面向日志的功能转换完备性,且性能更加优越. 相似文献
14.
15.
ContextIdentifying refactoring opportunities in object-oriented code is an important stage that precedes the actual refactoring process. Several techniques have been proposed in the literature to identify opportunities for various refactoring activities.ObjectiveThis paper provides a systematic literature review of existing studies identifying opportunities for code refactoring activities.MethodWe performed an automatic search of the relevant digital libraries for potentially relevant studies published through the end of 2013, performed pilot and author-based searches, and selected 47 primary studies (PSs) based on inclusion and exclusion criteria. The PSs were analyzed based on a number of criteria, including the refactoring activities, the approaches to refactoring opportunity identification, the empirical evaluation approaches, and the data sets used.ResultsThe results indicate that research in the area of identifying refactoring opportunities is highly active. Most of the studies have been performed by academic researchers using nonindustrial data sets. Extract Class and Move Method were found to be the most frequently considered refactoring activities. The results show that researchers use six primary existing approaches to identify refactoring opportunities and six approaches to empirically evaluate the identification techniques. Most of the systems used in the evaluation process were open-source, which helps to make the studies repeatable. However, a relatively high percentage of the data sets used in the empirical evaluations were small, which limits the generality of the results.ConclusionsIt would be beneficial to perform further studies that consider more refactoring activities, involve researchers from industry, and use large-scale and industrial-based systems. 相似文献
16.
17.
Trace-based derivation of a scalable lock-free stack algorithm 总被引:1,自引:1,他引:0
We show how a sophisticated, lock-free concurrent stack implementation can be derived from an abstract specification in a series of verifiable steps. The algorithm is based on the scalable stack algorithm of Hendler et al. (Proceedings of the sixteenth annual ACM symposium on parallel algorithms, 27–30 June 2004, Barcelona, Spain, pp 206–215), which allows push and pop operations to be paired off and eliminated without affecting the central stack, thus reducing contention on the stack, and allowing multiple pairs of push and pop operations to be performed in parallel. Our algorithm uses a simpler data structure than Hendler, Shavit and Yerushalmi’s, and avoids an ABA problem. We first derive a simple lock-free stack algorithm using a linked-list implementation, and discuss issues related to memory management and the ABA problem. We then add an abstract model of the elimination process, from which we derive our elimination algorithm. This allows the basic algorithmic ideas to be separated from implementation details, and provides a basis for explaining and comparing different variants of the algorithm. We show that the elimination stack algorithm is linearisable by showing that any execution of the implementation can be transformed into an equivalent execution of an abstract model of a linearisable stack. Each step in the derivation is either a data refinement which preserves the level of atomicity, an operational refinement which may alter the level of atomicity, or a refactoring step which alters the structure of the system resulting from the preceding derivation. We verify our refinements using an extension of Lipton’s reduction method, allowing concurrent and non-concurrent aspects to be considered separately. 相似文献
18.
Refactoring a software artifact is an embedded task in the maintenance phase of the software life cycle. To reduce the time and effort required for this task, researchers proposed methods to automate the software refactoring process at the design and code levels. In this paper, we conducted a systematic literature review of papers that suggest, propose, or implement an automated refactoring process. Using different phases, setting several quality measures, and snowballing, only 41 papers passed to the last stage to be analyzed and reviewed. We observe an increase in the number of papers that propose automatic refactoring. The results show that while most of the papers discuss code refactoring, only a few recent papers are focused on model refactoring. Search-based refactoring is gaining more popularity, and several researchers have used it to perform refactoring in a quick and efficient manner. 相似文献
19.
20.
Context: Feature model is an appropriate and indispensable tool for modeling similarities and differences among products of the Software Product Line (SPL). It not only exposes the validity of the products’ configurations in an SPL but also changes in the course of time to support new requirements of the SPL. Modifications made on the feature model in the course of time raise a number of issues. Useless enlargements of the feature model, the existence of dead features, and violated constraints in the feature model are some of the key problems that make its maintenance difficult.Objective: The initial approach to dealing with the above-mentioned problems and improving maintainability of the feature model is refactoring. Refactoring modifies software artifacts in a way that their externally visible behavior does not change.Method: We introduce a method for defining refactoring rules and executing them on the feature model. We use the ATL model transformation language to define the refactoring rules. Moreover, we provide an Alloy model to check the feature model and the safety of the refactorings that are performed on it.Results: In this research, we propose a safe framework for refactoring a feature model. This framework enables users to perform automatic and semi-automatic refactoring on the feature model.Conclusions: Automated tool support for refactoring is a key issue for adopting approaches such as utilizing feature models and integrating them into the software development process of companies. In this work, we define some of the important refactoring rules on the feature model and provide tools that enable users to add new rules using the ATL M2M language. Our framework assesses the correctness of the refactorings using the Alloy language. 相似文献