Results 1 - 10
of
22
Towards an Engineering Discipline for GRAMMARWARE
- ACM Transactions on Software Engineering Methodology
, 2003
"... Grammarware comprises grammars and all grammar-dependent software, i.e., software artifacts that directly involve grammar knowledge. The term grammar is meant here in the widest sense to include XML schemas, syntax definitions, interface descriptions, APIs, and interaction protocols. The most obv ..."
Abstract
-
Cited by 91 (7 self)
- Add to MetaCart
Grammarware comprises grammars and all grammar-dependent software, i.e., software artifacts that directly involve grammar knowledge. The term grammar is meant here in the widest sense to include XML schemas, syntax definitions, interface descriptions, APIs, and interaction protocols. The most obvious examples of grammar-dependent software are document processors, parsers, import/export functionality, and generative programming tools. Even though grammarware is so omnipresent, it is somewhat neglected --- from an engineering point of view. We lay out an agenda that is meant to promote research on improving the quality of grammarware and on increasing the productivity of grammarware development.
An XMLbased lightweight C++ fact extractor
- in Proceedings of 11th IEEE International Workshop on Program Comprehension (IWPC'03
, 2003
"... A lightweight fact extractor is presented that utilizes XML tools, such as XPath and XSLT, to extract static information from C++ source code programs. The source code is first converted into an XML representation, srcML, to facilitate the use of a wide variety of XML tools. The method is deemed lig ..."
Abstract
-
Cited by 45 (18 self)
- Add to MetaCart
A lightweight fact extractor is presented that utilizes XML tools, such as XPath and XSLT, to extract static information from C++ source code programs. The source code is first converted into an XML representation, srcML, to facilitate the use of a wide variety of XML tools. The method is deemed lightweight because only a partial parsing of the source is done. Additionally, the technique is quite robust and can be applied to incomplete and non-compile-able source code. The trade off to this approach is that queries on some low level details cannot be directly addressed. This approach is applied to a fact extractor benchmark as comparison with other, abet heavier weight, fact extractors. Fact extractors are widely used to support understanding tasks associated with maintenance, reverse engineering and various other software engineering tasks. 1.
Source Code Files as Structured Documents
- in Proceedings of 10th IEEE International Workshop on Program Comprehension (IWPC'02
, 2002
"... A means to add explicit structure to program source code is presented. XML is used to augment source code with syntactic information from the parse tree. More importantly, comments and formatting are preserved and identified for future use by development environments and program comprehension tools. ..."
Abstract
-
Cited by 36 (12 self)
- Add to MetaCart
A means to add explicit structure to program source code is presented. XML is used to augment source code with syntactic information from the parse tree. More importantly, comments and formatting are preserved and identified for future use by development environments and program comprehension tools. The focus is to construct a document representation in XML instead of a more traditional data representation of the source code. This type of representation supports a programmer centric view of the source rather than a compiler centric view. Our representation is made relevant with respect to other research on XML representations of parse trees and program code. The highlights of the representation are presented and the use of queries and transformations discussed.
Supporting Document and Data Views of Source Code
, 2002
"... The paper describes the use of an XML format to store and represent program source code. A new XML application, srcML (SouRCe Markup Language), is presented. srcML presumes a document view of source code where information about the syntactic structure is layered over the original source code documen ..."
Abstract
-
Cited by 32 (13 self)
- Add to MetaCart
The paper describes the use of an XML format to store and represent program source code. A new XML application, srcML (SouRCe Markup Language), is presented. srcML presumes a document view of source code where information about the syntactic structure is layered over the original source code document. The resultant multi-layered document has a base layer of all the original text (and formatting). The second layer is the syntactic information, derived from the grammar of the programming language, and is encoded in XML. This multilayered view supports both the creation and viewing of the source code in its original form and the use of XML technologies (for tasks such as analysis and transformation of the source). Although directed at source code documents, (particularly C++) srcML is also applicable to other programming languages and to languages with a strict syntax. srcML represents a departure from the compiler centric manner in which source code is commonly stored, instead a document point of view is taken thus better supporting the manipulation and management of the large numbers of source documents typical in modern software systems.
A Framework for Migrating Procedural Code to Object-Oriented Platforms
, 2001
"... With the rapid growth of the Internet and pervasive computing activities, the migration of back-end legacy systems to network centric environments has become a focal point for researchers and practitioners alike. To leverage back-end legacy services into Web-enabled environments, this paper proposes ..."
Abstract
-
Cited by 21 (6 self)
- Add to MetaCart
With the rapid growth of the Internet and pervasive computing activities, the migration of back-end legacy systems to network centric environments has become a focal point for researchers and practitioners alike. To leverage back-end legacy services into Web-enabled environments, this paper proposes an incremental and iterative migration framework where legacy procedural source code is reengineered into an object-oriented platform. The reengineering framework allows for the representation of the legacy source in t he form of XML based Annotated Abstract Syntax Trees. Consequently, the extraction of an object-oriented model from the original source code is based on the analysis of source code features in the original system that can be used to identify classes, associations, aggregations, and polymorphic patterns in the new target system. 1.
Towards a standard schema for C/C++
- IN WORKING CONFERENCE ON REVERSE ENGINEERING
, 2001
"... Developing a standard schema at the abstract syntax tree level for C/C++ to be used by reverse engineering and reengineering tools is a complex and difficult problem. In this paper, we present a catalogue of issues that need to be considered in order to design a solution. Three categories of issues ..."
Abstract
-
Cited by 17 (4 self)
- Add to MetaCart
Developing a standard schema at the abstract syntax tree level for C/C++ to be used by reverse engineering and reengineering tools is a complex and difficult problem. In this paper, we present a catalogue of issues that need to be considered in order to design a solution. Three categories of issues are discussed. Lexical structure is the first
Data Exchange with the Columbus Schema for C
, 2002
"... To successfully carry out a software maintenance or reengineering task, a suitably assembled set of tools is required, which interoperate seaminglessly. To achieve this goal, an exchange format is needed that can be used to represent the facts extracted from a software system in a standardized way; ..."
Abstract
-
Cited by 16 (10 self)
- Add to MetaCart
To successfully carry out a software maintenance or reengineering task, a suitably assembled set of tools is required, which interoperate seaminglessly. To achieve this goal, an exchange format is needed that can be used to represent the facts extracted from a software system in a standardized way; serving as an output of one tool and as an input for other tools. In this paper we propose a modular schema for C++, called the Columbus Schema. The schema has been implemented in the Columbus/CAN front end framework tool and is already utilized in several usages, one of which is its representation in the GXL form. Keywords: Tool interoperability, standard exchange format, C++ schema, front end, AST, Columbus/CAN, GXL
Static analysis of students’ java programs
- In Proceedings of the sixth conference on Australian computing education
, 2004
"... A recent industry survey (Townhidnejad and Hilburn, 2002) has reported that more than fifty percent of a software project’s budget is spent on activities related to improving software quality. Industry leaders claim that this is caused by the inadequate attention paid to software quality in the deve ..."
Abstract
-
Cited by 14 (2 self)
- Add to MetaCart
A recent industry survey (Townhidnejad and Hilburn, 2002) has reported that more than fifty percent of a software project’s budget is spent on activities related to improving software quality. Industry leaders claim that this is caused by the inadequate attention paid to software quality in the development phase. This paper introduces a static analysis framework which can be used to give beginning students practice in writing better quality Java programs and to assist teaching staff in the marking process. The framework uses both software engineering metrics and relative comparison to judge the quality of students ’ programs and provide feedback about how solutions might be improved..
Leveraging XML technologies in developing program analysis tools
- in Proceedings of 4th International Workshop on Adoption-Centric Software Engineering (ACSE'04
, 2004
"... XML technologies are quickly becoming ubiquitous within all aspects of computer and information sciences. Both industry and academics have accepted the XML standards and the large number of tools that support manipulation, transformation, querying, and storage of XML objects. Thus, tools and represe ..."
Abstract
-
Cited by 7 (1 self)
- Add to MetaCart
XML technologies are quickly becoming ubiquitous within all aspects of computer and information sciences. Both industry and academics have accepted the XML standards and the large number of tools that support manipulation, transformation, querying, and storage of XML objects. Thus, tools and representations based on XML are very attractive with respect to adoption. This paper describes the experiences of the authors in the development and application of srcML, a XML application to support explicit markup of syntactic information within source code. Additionally, XML technologies are leveraged along with srcML to support various program analysis, fact extraction, and reverse engineering tasks. A short description of these tools is given along with the motivation behind using an adoption centric XML approach. 1.
Experiments in the Use of XML to Enhance Traceability Between Object-Oriented Design Specifications and Source Code
- AND SOURCE CODE,” PROC. OF THE 35TH HAWAII INTL. CONF. ON SYSTEM SCIENCES
, 2002
"... In this paper we explain how we implemented traceability between a UML design specification and its implementing source code using XML technologies. In our linking framework an XMI file represents a detaileddesign specification and a JavaML file represents its source code. These XML-derivative repre ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
In this paper we explain how we implemented traceability between a UML design specification and its implementing source code using XML technologies. In our linking framework an XMI file represents a detaileddesign specification and a JavaML file represents its source code. These XML-derivative representations were linked using another XML file, an Xlink link-base, containing our linking information. This link-base states which portions of the source code implement which portions of a design specification and vice-versa. We also rendered those links to an HTML file using XSL and traversed from our design specification to its implementing source code. This is the first step in our traceability endeavors where we aim to achieve total traceability among software life-cycle deliverables form requirements to source code.

