36,066 research outputs found

    A document-like software visualization method for effective cognition of c-based software systems

    Get PDF
    It is clear that maintenance is a crucial and very costly process in a software life cycle. Nowadays there are a lot of software systems particularly legacy systems that are always maintained from time to time as new requirements arise. One important source to understand a software system before it is being maintained is through the documentation, particularly system documentation. Unfortunately, not all software systems developed or maintained are accompanied with their reliable and updated documents. In this case, source codes will be the only reliable source for programmers. A number of studies have been carried out in order to assist cognition based on source codes. One way is through tool automation via reverse engineering technique in which source codes will be parsed and the information extracted will be visualized using certain visualization methods. Most software visualization methods use graph as the main element to represent extracted software artifacts. Nevertheless, current methods tend to produce more complicated graphs and do not grant an explicit, document-like re-documentation environment. Hence, this thesis proposes a document-like software visualization method called DocLike Modularized Graph (DMG). The method is realized in a prototype tool named DocLike Viewer that targets on C-based software systems. The main contribution of the DMG method is to provide an explicit structural re-document mechanism in the software visualization tool. Besides, the DMG method provides more level of information abstractions via less complex graph that include inter-module dependencies, inter-program dependencies, procedural abstraction and also parameter passing. The DMG method was empirically evaluated based on the Goal/Question/Metric (GQM) paradigm and the findings depict that the method can improve productivity and quality in the aspect of cognition or program comprehension. A usability study was also conducted and DocLike Viewer had the most positive responses from the software practitioners

    Reverse Engineering from Assembler to Formal Specifications via Program Transformations

    Full text link
    The FermaT transformation system, based on research carried out over the last sixteen years at Durham University, De Montfort University and Software Migrations Ltd., is an industrial-strength formal transformation engine with many applications in program comprehension and language migration. This paper is a case study which uses automated plus manually-directed transformations and abstractions to convert an IBM 370 Assembler code program into a very high-level abstract specification.Comment: 10 page

    A method for aspect mining using production rules, dependency graphs and two-level grammars

    Get PDF
    Adopting aspect-oriented technologies requires revisiting and restructuring the entire traditional software lifecycle in order to identify and represent occurrences of crosscutting during software requirements engineering and design, and to determine how these requirements are composed. In this research, we propose an aspect mining approach to identify and model crosscutting concerns (aspects) by restructuring the meta-level at the breakpoints of: requirements elicitation, analysis, design, and implementation activities. The main purpose of this research is twofold: (1) "isolation" of crosscutting concerns in the early steps of software life cycle (2) identification of crosscutting concerns in legacy systems. The proposal outlined in this research illustrates a method to reformulate existing object-oriented artifacts by mining and explicitly modeling crosscutting concerns. In this method of restructuring we represent the semantics of UML artifacts by using a set of production rules, which refer to object definitions and relationships metadata. The result of our proposed restructuring process is an aspect-oriented design whereby aspects may be introduced into the object-oriented design or certain classes may be restructured as aspects
    corecore