共查询到20条相似文献,搜索用时 93 毫秒
1.
2.
压缩感知是一种新型的信息论,打破了传统的Shannon-Nyquist采样定理,能够以少量数据完成信号采样。稀疏重构是压缩感知由理论到实际的关键环节,为了将压缩感知有效地应用于遥感成像领域,研究了稀疏重构对遥感成像过程的影响。针对稀疏重构理论模型,分析了重构误差的成因;同时,针对典型的凸优化类算法和贪婪类算法,利用峰值信噪比指标对遥感图像重构误差进行评价。在仿真实验中,定量考察遥感图像在不同压缩采样率、不同重构算法下的稀疏重构性能。结果表明,稀疏重构算法能够成功重构遥感图像,各算法在不同压缩采样率下均表现出了较好的重构质量,整体上能够满足遥感成像应用,验证了压缩感知稀疏重构方法在遥感成像中应用的可行性。 相似文献
3.
4.
5.
6.
7.
8.
9.
面向方面编程是一种新的编程范型,而面向方面重构则是当前面向方面软件开发中的一个研究热点。首先对面向方面重构进行了分类研究,然后引入基于角色的横切关注点重构方法,最后在此基础上提出一种基于模版的面向方面重构框架。 相似文献
10.
11.
在多核时代,为了发挥多核处理器最大性能,软件维护人员的一个重要任务是对代码进行面向并发重构,即将顺序代码重构为并发代码和将并发代码重构更优为并发代码。针对C++语言的三种并发设施:POSIX Pthread、Open MP、C++0x并发库,详细阐述了C++面向并发重构的三类重构模式,以及每种模式的重构方法。 相似文献
12.
软件体系结构中的横切关注点增加了软件体系结构的复杂性,从而加剧了体系结构演化与维护的困难.这种设计问题可以通过体系结构层面的重构来进行改善.在已有的横切特征分析方法基础上,提出了一种面向横切特征分析的体系结构自动重构方法.该方法首先基于特征与构件之间的追踪关系分析横切特征,然后将与横切特征有直接追踪关系的构件从初始体系结构中提取出来,实现方面构件,完成体系结构重构.在面向方面体系结构描述语言AO-ADL基础上开发了相应的体系结构重构工具,并针对一个业务系统进行了体系结构重构实验.实验结果表明,该方法能有效地实现体系结构横切特征的自动化重构. 相似文献
13.
针对目前正在运行中的部分遗留系统,通过面向对象的分析和设计方法,将其由面向过程的设计和实现重构改造成面向对象的实现,运用POSIX线程模式来取代遗留系统中的进程模式,以提升系统的功能、性能以及系统的可维护性,节省研发和维护成本。 相似文献
14.
Refactoring is a widely accepted technique to improve the structure of object-oriented software. Nevertheless, existing tool
support remains restricted to automatically applying refactoring transformations. Deciding what to refactor and which refactoring
to apply still remains a difficult manual process, due to the many dependencies and interrelationships between relevant refactorings.
In this paper, we represent refactorings as graph transformations, and we propose the technique of critical pair analysis
to detect the implicit dependencies between refactorings. The results of this analysis can help the developer to make an informed
decision of which refactoring is most suitable in a given context and why. We report on several experiments we carried out
in the AGG graph transformation tool to support our claims. 相似文献
15.
An intrinsic property of software in a real-world environment is its need to evolve, which is usually accompanied by the increase of software complexity and deterioration of software quality, making software maintenance a tough problem. Refactoring is regarded as an effective way to address this problem. Many refactoring approaches at the method and class level have been proposed. But the research on software refactoring at the package level is very little. This paper presents a novel approach to refactor the package structures of object oriented software. It uses software networks to represent classes and their dependencies. It proposes a constrained community detection algorithm to obtain the optimized community structures in software networks, which also correspond to the optimized package structures. And it finally provides a list of classes as refactoring candidates by comparing the optimized package structures with the real package structures. The empirical evaluation of the proposed approach has been performed in two open source Java projects, and the benefits of our approach are illustrated in comparison with the other three approaches. 相似文献
16.
Object evangelists have long heralded software reuse as a bonus for applying object-oriented analysis, design, and programming techniques, but the benefits have been less dramatic than anticipated. Designing reusable software systems is difficult because a complete understanding of the software under consideration is only available toward the project's end. An appropriate alternative, then, is to refactor for reuse, restructure the completed system without modifying or adding to its behavior. We describe a refactoring effort undertaken at a Delaware-Valley-based financial firm. This firm sought to reuse components from a large Web-based system. 相似文献
17.
Use Case modeling is a popular technique for documenting functional requirements of software systems. Refactoring is the process of enhancing the structure of a software artifact without changing its intended behavior. Refactoring, which was first introduced for source code, has been extended for use case models. Antipatterns are low quality solutions to commonly occurring design problems. The presence of antipatterns in a use case model is likely to propagate defects to other software artifacts. Therefore, detection and refactoring of antipatterns in use case models is crucial for ensuring the overall quality of a software system. Model transformation can greatly ease several software development activities including model refactoring. In this paper, a model transformation approach is proposed for improving the quality of use case models. Model transformations which can detect antipattern instances in a given use case model, and refactor them appropriately are defined and implemented. The practicability of the approach is demonstrated by applying it on a case study that pertains to biodiversity database system. The results show that model transformations can efficiently improve quality of use case models by saving time and effort. 相似文献
18.
The event-driven programming pattern is pervasive in a wide range of modern software applications. Unfortunately, it is not easy to achieve good performance and responsiveness when developing event-driven applications. Traditional approaches require a great amount of programmer effort to restructure and refactor code, to achieve the performance speedup from parallelism and asynchronization. Not only does this restructuring require a lot of development time, it also makes the code harder to debug and understand. We propose an asynchronous programming model based on the philosophy of OpenMP, which does not require code restructuring of the original sequential code. This asynchronous programming model is complementary to the existing OpenMP fork-join model. The coexistence of the two models has potential to decrease developing time for parallel event-driven programs, since it avoids major code refactoring. In addition to its programming simplicity, evaluations show that this approach achieves good performance improvements consistent with more traditional event-driven parallelization. 相似文献
19.
Sagar Sen Naouel Moha Vincent Mahé Olivier Barais Benoit Baudry Jean-Marc Jézéquel 《Software and Systems Modeling》2012,11(1):111-125
Model transformations written for an input metamodel may often apply to other metamodels that share similar concepts. For
example, a transformation written to refactor Java models can be applicable to refactoring UML class diagrams as both languages
share concepts such as classes, methods, attributes, and inheritance. Deriving motivation from this example, we present an
approach to make model transformations reusable such that they function correctly across several similar metamodels. Our approach relies on these principal steps: (1) We
analyze a transformation to obtain an effective subset of used concepts. We prune the input metamodel of the transformation
to obtain an effective input metamodel containing the effective subset. The effective input metamodel represents the true
input domain of transformation. (2) We adapt a target input metamodel by weaving it with aspects such as properties derived
from the effective input metamodel. This adaptation makes the target metamodel a subtype of the effective input metamodel. The subtype property ensures that the transformation can process models conforming to the
target input metamodel without any change in the transformation itself. We validate our approach by adapting well known refactoring transformations (Encapsulate Field, Move Method, and Pull Up Method) written for an in-house domain-specific modeling language (DSML) to three different industry standard metamodels (Java,
MOF, and UML). 相似文献
20.
MMRUC3: A recommendation approach of move method refactoring using coupling,cohesion, and contextual similarity to enhance software design 下载免费PDF全文
Md. Masudur Rahman Rashed Rubby Riyadh Shah Mostafa Khaled Abdus Satter Md. Rayhanur Rahman 《Software》2018,48(9):1560-1587
Placement of methods is one of the most important design activities for any object‐oriented application in terms of coupling and cohesion. Due to method misplacement, the application becomes tightly coupled and loosely cohesive, reflecting inefficient design. Therefore, a feature envy code smell emerges from the application, as many methods use more features of other classes than its current class. Hence, development and maintenance time, cost, and effort are increased. To refactor the code smell and enhance the design quality, move method refactoring plays a significant role through grouping similar behaviors of methods. This is because the manual refactoring process is infeasible due to the necessity of huge time and most of the existing techniques consider only coupling‐based and/or cohesion‐based information of nonstatic entities (methods and attributes) for the recommendation. However, this article proposes an approach that uses contextual information, based on information retrieval techniques, along with dependency (coupling and cohesion)‐based information of the application for the recommendation. In addition, the approach incorporates both static and nonstatic entities in the recommendation process. For validation, the approach is applied on seven well‐known open source projects. The results of the experimental evaluation indicate that the proposed approach provides better results with an average precision of 18.91%, a recall of 69.91%, and an F‐measure of 29.77% than the JDeodorant tool (a widely used eclipse plugin for refactorings). Moreover, this article establishes several relationships between the accuracy of the approach and project standards and sizes. 相似文献