36,066 research outputs found
Recommended from our members
Improving the build architecture of legacy C/C++ software systems
The build architecture of legacy C/C++ software systems, groups program files in directories to represent logical components. The interfaces of these components are loosely defined by a set of header files that are typically grouped in one common include directory. As legacy systems evolve, these interfaces decay, which contribute to an increase in the build time and the number of conflict in parallel developments. This paper presents an empirical study of the build architecture of large commercial software systems, introduces a restructuring approach, based on Reflexion models and automatic clustering, and reports on a case study using VIM open source editor
A document-like software visualization method for effective cognition of c-based software systems
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
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
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
Recommended from our members
Towards a methodology for the development of integrated IT infrastructures
In this paper, the authors propose and validate
a methodology for the development of integrated
Information Technology (IT) infrastructures. The
motivation for putting forward a new methodology is
grounded on the limitations of the various software
engineering methodologies (traditional) that exist
today. Despite that the traditional methodologies result
in the development of Information Systems (IS) from
scratch, Enterprise Application Integration (EAI)
builds integrated IT infrastructures using existing
applications. This significant difference is associated
with many issues needed to be realised and addressed
like: (a) the changes that such an infrastructure brings
to organisations, (b) the resistance to change and (c)
the extension of IS lifecycle’s. The proposed
methodology consist of eight stages and aims at
supporting software engineers, organisations and
researchers to build integrated IT infrastructures. As a
result the methodology seeks to contribute to the body
of knowledge
- …