首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 15 毫秒
1.
Reengineering complex software is a difficult task that requires the expenditure of significant resources. To reduce associated costs and improve resultant systems, automated techniques have been developed that can be used throughout all phases of the reengineering process. Three systems are described that have been used successfully for reengineering at The Johns Hopkins University Applied Physics Laboratory. The first system automatically transforms software written in CMS-2 to software written in Ada. The second system supports database design and automated query formulation, and employs conceptual-level intermediate representations for reverse and forward engineering as well as reengineering. The final system utilizes automated techniques to reengineer critical functions for performance enhancement. The systems described are evolving, and will provide a basis for future reengineering efforts.  相似文献   

2.
ContextSoftware networks are directed graphs of static dependencies between source code entities (functions, classes, modules, etc.). These structures can be used to investigate the complexity and evolution of large-scale software systems and to compute metrics associated with software design. The extraction of software networks is also the first step in reverse engineering activities.ObjectiveThe aim of this paper is to present SNEIPL, a novel approach to the extraction of software networks that is based on a language-independent, enriched concrete syntax tree representation of the source code.MethodThe applicability of the approach is demonstrated by the extraction of software networks representing real-world, medium to large software systems written in different languages which belong to different programming paradigms. To investigate the completeness and correctness of the approach, class collaboration networks (CCNs) extracted from real-world Java software systems are compared to CCNs obtained by other tools. Namely, we used Dependency Finder which extracts entity-level dependencies from Java bytecode, and Doxygen which realizes language-independent fuzzy parsing approach to dependency extraction. We also compared SNEIPL to fact extractors present in language-independent reverse engineering tools.ResultsOur approach to dependency extraction is validated on six real-world medium to large-scale software systems written in Java, Modula-2, and Delphi. The results of the comparative analysis involving ten Java software systems show that the networks formed by SNEIPL are highly similar to those formed by Dependency Finder and more precise than the comparable networks formed with the help of Doxygen. Regarding the comparison with language-independent reverse engineering tools, SNEIPL provides both language-independent extraction and representation of fact bases.ConclusionSNEIPL is a language-independent extractor of software networks and consequently enables language-independent network-based analysis of software systems, computation of design software metrics, and extraction of fact bases for reverse engineering activities.  相似文献   

3.
This report is a summary of the continuing efforts of several teams at the Naval Surface Warfare Center, Dahlgren Divsion (NSWCDD) to evaluate technologies and to define and refine a process to reengineer Navy legacy CMS-2 code into Ada. This effort involves tool and technology evaluation, methodology definition, and cost model definition.For systems developed in CMS-2, a Navy specific high order language, consideration must be given as to the most cost effective method of converting to the current high order language of choice, i.e., Ada, without losing the legacy lessons learned. NSWCDD engineers evaluated three translation tools, evaluated reverse engineering technologies, and defined both a process and a methodology to incrementally transition Navy CMS-2 code into Ada. The source code used for the evaluation is from the AEGIS Weapon System and the distributed, open environment is the High Performance Distributed Computing Program co-sponsored by the Advanced Research Projects Agency and the AEGIS Program Manager.Many of the issues identified throughout these studies are unresolved, but software engineers are continuing to evaluated the impacts of transitioning to commercial environments and Ada. Some of the issues that are being studied follow: testing of distributed systems; system level integration; lack of time-stamped instrumentation: and reliability in commercial-off-the shelf environments. The Navy is in the early stages of identifying impacts of transitioning to Ada, commercial environments, and distributed architectures. NSWCDD is gathering data to confirm that capturing legacy systems, whether it is code or design ideas, is essential to minimizing the cost and the risk of these transitions. It is also evident that technology is neither mature nor ideal yet to satisfy the identified needs for capturing the legacy of a proven system. Translation, while useful to a point, is not suitable alone as a solution to the transition equation.  相似文献   

4.
Scandura  J.M. 《Computer》1994,27(4):55-61
Describes a code conversion tool that helps programmers visualize and understand system design. The author first reviews current software reengineering tools and then describe a new cognitive approach to system (re)engineering based on code comprehension tools that provide a visual representation of code containing less cognitive noise. This better enables programmers to understand system design. The approach integrates code comprehension tools with current reengineering methodologies to create an integrated reengineering workbench for converting legacy code into newer languages such as Ada or C/C++  相似文献   

5.
Today, work collaboration is normal practice in developing modern products. Engineering collaborative work involves a number of team members that need to share and exchange design ideas while working with engineering analysis tools such as mechanical computer aided engineering systems. This work presents the M-Sync prototype system that uses an active database approach to enable exchange of engineering information among distributed team members in a timely manner. The distributed data is fully accessible by the local member and is automatically synchronised between different places using a database management system that support event-condition-action (ECA) database rules. Only updates introduced at one location are distributed to other locations, thereby minimizing information transfer and enhancing performance. Members working at different locations can therefore work in a peer-to-peer (P2P) manner and interactively manipulate the same set of information at the same time.  相似文献   

6.
7.
During the late 1980s, there was a widespread belief that engineering workstations, widely distributed through development organizations and connected through local area networks, would become the dominant, if not the only, platform for EDA tools and electronic design. Despite early skepticism, logic synthesis began making serious inroads into the design process in the late 1980s and has now entered the mainstream. The EDA industry also focused on behavioral-level design and synthesis as a future possibility. Despite some notable efforts to develop such tools and methodologies, it is still in the research phase. Functional verification, on the other hand, has continued to rise to higher levels of design abstraction with the availability of higher-level languages and verification tools and despite the enduring controversies surrounding the standardization of these languages.  相似文献   

8.
Model transformation is one of the pillars of model-driven engineering (MDE). The increasing complexity of systems and modelling languages has dramatically raised the complexity and size of model transformations as well. Even though many transformation languages and tools have been proposed in the last few years, most of them are directed to the implementation phase of transformation development. In this way, even though transformations should be built using sound engineering principles—just like any other kind of software—there is currently a lack of cohesive support for the other phases of the transformation development, like requirements, analysis, design and testing. In this paper, we propose a unified family of languages to cover the life cycle of transformation development enabling the engineering of transformations. Moreover, following an MDE approach, we provide tools to partially automate the progressive refinement of models between the different phases and the generation of code for several transformation implementation languages.  相似文献   

9.
Much of the research carried out by groups working at physically distributed sites is conducted over the Internet. This has given rise to the tendency to set up metalaboratories, comprising research personnel, machines and tools that are not physically present in the same geographical place. For instance, the term ‘Collaboratory’ combines the concept of ‘Collaboration’ between researchers who are located in different geographical areas, and the ‘Laboratory’ they use to carry out their work. This paper shows an application of the collaboration paradigm, in which a tool has been developed and has begun to be made available to users over Internet. This is a Prolog-Based tool for monitoring the quality of a program written in some of the most commonly used programming languages (Cobol and C). This is useful and, in many cases, indispensable during the reverse engineering phase: that is, the phase devoted to reconstructing the documentation from existing code, to check whether a program has a given level of quality, whether certain parts of it may turn out to be critical from a qualitative viewpoint if repeated maintenance interventions are carried out on it, and finally whether the program itself could be a candidate for reuse and, if so, whether it constitutes a single element of a catalog of reusable programs. The tool is set up in LPA Prolog on a Windows 3.11 platform, and is part of a larger environment dedicated to the activities of software understanding through reverse engineering. The user connects to an internet address, uses the tool (which may be remotely calibrated), and takes the desired reading before importing the measurement results.  相似文献   

10.
Disaster management systems are complex applications due to their distributed and decentralized nature. Various components execute in parallel with high need of coordination with each other. In such applications, interaction and communication issues are difficult to model and implement. In this paper, we have proposed agent-based Earthquake Management System (EMS) which is modeled and analyzed using formal approach. Traditionally, such systems undergo through various transformations starting from requirement models and specification to analysis, design and implementation. A variety of formal approaches are available to specify systems for analyzing their structure and behavior; however, there are certain limitations in using these techniques due to their expressiveness and behavior requirements. We have adopted combination of Pi-calculus and Pi-ADL formal languages to model EMS from analysis to design. The formal approach helps to enhance reliability and flexibility of the system by reducing the redundant information. It reduces chances of errors by explicitly mentioning working flow of information. Additionally, a prototype application is presented as proof of concept in EMS context. We have also evaluated our formal specification by using ArchWare and ABC tools; also, comparison of prototype application with major existing techniques is highlighted.  相似文献   

11.
12.
分析了软件维护当中的问题,提出了一种针对Web系统的逆向工程方法.该方法以Web站点为输入分析页面的源码,从页面链接和交互进行逆向,构建出站点的部署和任务模型,从而直观地表示出对维护人员有帮助的系统信息,同时介绍了笔者自行开发的逆向工程辅助工具.通过该方法,维护人员能够直接得到系统信息, 而不必去分析源代码,克服了缺乏设计文档的困难.通过一个Web站点的逆向实例,演示了这种方法.  相似文献   

13.
王爽  华庆一 《微机发展》2008,(1):129-131
分析丁软件维护当中的问题,提出了一种针对Web系统的逆向工程方法。该方法以Web站点为输入分析页面的源码,从页面链接和交互进行逆向,构建出站点的部署和任务模型,从而直观地表示出对维护人员有帮助的系统信息,同时介绍了笔者自行开发的逆向工程辅助工具。通过该方法.维护人员能够直接得到系统信息,而不必去分析源代码,克服了缺乏设计文档的困难。通过一个web站点的逆向实例,演示了这种方法。  相似文献   

14.
A major thrust of modern software engineering methods, languages, and tools is to promote software visibility and to present information about the underlying software architecture. With large, complex software systems, automated tools are indispensable for identifying the architectural components, the structure that interconnects them, and other subtle dependencies. This article describes the construction of an Ada System Dependency Analyzer (SDA), a software architecture analysis tool that generates a quantitative snapshot of an Ada application's software architecture. The SDA can process thousands of Ada source files during a single run and report on them as a group of files comprising a single Ada system. Our SDA tool identifies Ada source code dependencies on COTS products such as operating systems, compilers, the X Window System, and on routines written in other languages, and can thus predict software portability and reliability problems. It rapidly and accurately processes 24,000 lines of code per minute (a time-consuming, if not impossible, operation if done manually) and has successfully processed more than seven million lines of code in eight complex systems. Although originally developed for Ada, our methods and the technology we adopted will let us construct analogous tools for other programming languages such as C, C++, Cobol; and PL/I  相似文献   

15.
The reverse mode of automatic differentiation executes the adjoint statements induced by each statement in the original program in the reverse order of the original program flow. This program flow reversal commonly requires storage of information on the control flow of the original program. In addition, intermediate values of variables that are overwritten have to be recorded, as these values may later be needed to compute the partial derivatives of the corresponding statement. The stored information will be accessed in reverse order of being written. This runs contrary to many assumptions made in standard implementations of file systems, operating systems, and input/output (I/O) libraries. A common buffering strategy aimed at speeding up future read requests is to employ read‐ahead. This strategy is useful for accesses in forward direction but is considered to be harmful to the performance of the reverse mode. To increase the performance of the reverse mode, it is also advantageous to interleave computations with the data storage and retrieval operations, which can be achieved using multithreading. To this end, we design and implement a novel software called reverse‐mode I/O stream (RIOS) that is adapted to these particular requirements of the reverse mode. We show the advantages of RIOS in two empirical case studies, an artificially constructed example of a typical I/O pattern in the reverse mode and a real‐world example arising from fluid mechanics, which is studied in Fortran90 and in Matlab where the reverse mode is generated via the automatic differentiation tools Tapenade and ADiMat, respectively. Copyright © 2014 John Wiley & Sons, Ltd.  相似文献   

16.
PACT: an experiment in integrating concurrent engineering systems   总被引:3,自引:0,他引:3  
The Palo Alto Collaborative Testbed (PACT), a concurrent engineering infrastructure that encompasses multiple sites, subsystems, and disciplines, is discussed. The PACT systems include NVisage, a distributed knowledge-based integration environment for design tools; DME (Device Modeling Environment), a model formulation and simulation environment; Next-Cut, a mechanical design and process planning system; and Designworld, a digital electronics design, simulation, assembly, and testing system. The motivations for PACT and the significance of the approach for concurrent engineering is discussed. Initial experiments in distributed simulation and incremental redesign are reviewed, and PACT's agent-based architecture and lessons learned from the PACT experiments are described  相似文献   

17.
面向对象软件度量工具的软件结构   总被引:11,自引:0,他引:11  
利用软件度量工具度量程序源码的各类质量属性是提高程序质量的一个重要方法.目前,面向对象语言已逐渐成为主流编程语言,度量基于对象技术的软件成为必然的需求.然而,由于面向对象语言数目众多,许多面向对象语言又都在发展中,用户所需要的度量也不尽相同,各种分散的需求对度量工具的灵活性与通用性提出了挑战.首先给出了一个适用于OO语言软件度量工具的一个灵活的软件结构,然后在分析了各类软件度量的基础上,解析了该结  相似文献   

18.
分布式问题求解方案的模糊综合评价模型及其算法实现   总被引:1,自引:0,他引:1  
为解决现阶段大型复杂工程方案评价缺少实用理论分析工具的问题,文章应用“主因素突出型”和“因素加权型”两种多阶段模糊评判模型,实现了一种适合大型工程分布式协同设计的方案模糊综合评价算法。文中首先分析了大型工程分布式问题求解过程,提出了一种面向工程的分布式问题求解逻辑结构;其次详细分析了多阶段方案模糊评价模型以及模糊综合评价算法的流程框图及其实现过程。  相似文献   

19.
Java 对现代企业信息集成的技术支持   总被引:1,自引:0,他引:1  
现代企业信息系统是跨单一企业集成的分布式信息系统,其支撑环境和开发工具的研究是现代企业信息系统的研究重点之一.文章结合工程实践探讨了 Java 独具的分布对象技术特点及其对现代企业信息系统集成的技术支持.  相似文献   

20.
Several inherent constraints remain in the model development process, even though modern enhancements to simulation environments have provided tools for code generation, debugging, and tracing. To develop a simulation model, the simulation analyst still needs to have expertise in a number of different fields, e.g., probability, statistics, design of experiments, modeling, systems engineering, software engineering, and computer programming. Although several simulation packages implement syntactic-checks and semantic-consistency-checks, typically, the simulation analyst needs to possess output-analysis-knowledge specifically aimed at verifying and checking the simulation code.Reverse engineering a graphical model, e.g., an event graph, from general purpose simulation code demonstrates an enhancement to the model development process. A reverse engineering step allows an analyst to check, both, the static and dynamic properties of the coded simulation model. Even though the reverse engineering produces an event-oriented view, the enhanced model development process provides a systematic approach for conversion from other world views. Overall, this enhanced process provides a framework which yields better analysis techniques.Better diagnostic assistance is achieved when viewing a combination of static and dynamic properties of the simulation code. Now, the analyst is able to find logical/execution errors, e.g., errors related to resource deadlocks, before running simulation experiments. Since the graphical model is generated from the simulation code, and the process combines views, the analyst also has a better framework for verifying the coded simulation model. Also, the reverse engineering step provides a structural model useful in converting between different simulation languages or systems. Improvements to the techniques for conversion between languages will facilitate reuse of existing programmed models.  相似文献   

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

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