Results 1 -
4 of
4
Software Architecture in Industrial Applications
, 1995
"... To help us identify and focus on pragmatic and concrete issues related to the role of software architecture in the design and development of large systems, we conducted a survey of a variety of software systems used in industrial applications. Our premise, which guided the examination of these sy ..."
Abstract
-
Cited by 57 (1 self)
- Add to MetaCart
To help us identify and focus on pragmatic and concrete issues related to the role of software architecture in the design and development of large systems, we conducted a survey of a variety of software systems used in industrial applications. Our premise, which guided the examination of these systems, was that software architecture is concerned with capturing the structures of a system and the relationships among the elements both within and between structures. The structures we found fell into several broad categories: conceptual structure, module structure, code structure, and execution structure. These categories address different engineering concerns. The separation of such concerns, combined with specialized implementation techniques, decreased the complexity of implementation, and improved reuse and reconfiguration. We observed that in practice, software architecture played an important role throughout the development process: specification, design, functional decompo...
Querying Source Code using an Algebraic Query Language
- In Proceedings of the International Conference on Software Maintenance
, 1994
"... Querying and analyzing source code interactively is a critical task in reverse engineering and program understanding. Current source code query systems lack sufficient formalism and offer limited query capabilities. In this paper, we introduce the formal framework of Source Code Algebra (SCA), and o ..."
Abstract
-
Cited by 13 (0 self)
- Add to MetaCart
Querying and analyzing source code interactively is a critical task in reverse engineering and program understanding. Current source code query systems lack sufficient formalism and offer limited query capabilities. In this paper, we introduce the formal framework of Source Code Algebra (SCA), and outline a source code query system based on it. SCA provides a formal data model for source code, an algebraic expression-based query language, and opportunities for query optimization. An algebraic model of source code addresses the issues of conceptual integrity, expressive power, and performance of a source code query system within a unified framework. Keywords: Reverse engineering, source code query, query language, many-sorted algebra. 1 Overview The answers are in the source code. Mark Weiser, in Source Code [28]. Software reverse engineering, code re-engineering, and program understanding have begun to emerge as the latest challenges in the field of software engineering. Interest in ...
Program Restructuring via Design-Level Manipulation
, 1993
"... . A meaning-preserving program restructuring tool can be used by a software engineer to change a program's structure to better support modifications during maintenance. Our implementation of such a tool performs restructuring transformations on code fragments that are selected using a text-based int ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
. A meaning-preserving program restructuring tool can be used by a software engineer to change a program's structure to better support modifications during maintenance. Our implementation of such a tool performs restructuring transformations on code fragments that are selected using a text-based interface. However, a text representation does not represent program structure well because some component relationships that we conceptualize as structure are not readily observable in the program text. For example, structural properties such as module uses or procedure calls are represented by references to names rather than by proximity or direct linkage. Since restructuring is primarily a design-oriented activity, this design information must be readily available. Although the program text may be the wrong representation to manipulate, we still want transformations to directly affect the implementation. To solve both these problems, we use a graphical representation of the program design th...

