Results 1 - 10
of
38
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.
Java Quality Assurance by Detecting Code Smells
- in Proceedings of the 9th Working Conference on Reverse Engineering. IEEE Computer
, 2002
"... Software inspection is a known technique for improving software quality. It involves carefully examining the code, the design, and the documentation of software and checking these for aspects that are known to be potentially problematic based on past experience. Code smells are a metaphor to describ ..."
Abstract
-
Cited by 86 (5 self)
- Add to MetaCart
Software inspection is a known technique for improving software quality. It involves carefully examining the code, the design, and the documentation of software and checking these for aspects that are known to be potentially problematic based on past experience. Code smells are a metaphor to describe patterns that are generally associated with bad design and bad programming practices. Originally, code smells are used to find the places in software that could benefit from refactoring. In this paper, we investigate how the quality of code can be automatically assessed by checking for the presence of code smells and how this approach can contribute to automatic code inspection. We present an approach for the automatic detection and visualization of code smells and discuss how this approach can be used in the design of a software inspection tool. We illustrate the feasibility of our approach with the development of jCOSMO, a prototype code smell browser that detects and visualizes code smells in JAVA source code. Finally, we show how this tool was applied in a case study. Keywords: software inspection, quality assurance, Java, refactoring, code smells.
Generating Robust Parsers using Island Grammars
- IN PROCEEDINGS OF THE 8TH WORKING CONFERENCE ON REVERSE ENGINEERING
, 2001
"... Source model extraction---the automated extraction of information from system artifacts---is a common phase in reverse engineering tools. One of the major challenges of this phase is creating extractors that can deal with irregularities in the artifacts that are typical for the reverse engineering d ..."
Abstract
-
Cited by 78 (5 self)
- Add to MetaCart
Source model extraction---the automated extraction of information from system artifacts---is a common phase in reverse engineering tools. One of the major challenges of this phase is creating extractors that can deal with irregularities in the artifacts that are typical for the reverse engineering domain (for example, syntactic errors, incomplete source code, language dialects and embedded languages). This paper
Generation of Components for Software Renovation Factories from Context-free Grammars
"... We present an approach for the generation of components for a software renovation factory. These components are generated from a context-free grammar definition that recognizes the code that has to be renovated. We generate analysis and transformation components that can be instantiated with a speci ..."
Abstract
-
Cited by 73 (27 self)
- Add to MetaCart
We present an approach for the generation of components for a software renovation factory. These components are generated from a context-free grammar definition that recognizes the code that has to be renovated. We generate analysis and transformation components that can be instantiated with a specific transformation or analysis task. We apply our approach to COBOL and we discuss the construction of realistic software renovation components using our approach.
Generation of Formatters for Context-free Languages
- ACM Transactions on Software Engineering and Methodology
, 1995
"... Good documentation is important for the production of reusable and maintainable software. For the production of accurate documentation it is necessary that the original program text is not copied manually to obtain a typeset version. Aside of being tedious, this will invariably lead to errors. Tools ..."
Abstract
-
Cited by 64 (19 self)
- Add to MetaCart
Good documentation is important for the production of reusable and maintainable software. For the production of accurate documentation it is necessary that the original program text is not copied manually to obtain a typeset version. Aside of being tedious, this will invariably lead to errors. Tools that support the production of legible and accurate documentation are essential in software engineering. The production of such tools is a software engineering challenge in itself. We present an algebraic approach to the generation of tools that produce typographically effective presentations of computer programs. A specification of a formatter is generated from the context-free grammar of a programming language. These genererated formatters translate abstract syntax trees of programs into box expressions. These box expressions are translated by language independent interpreters of the box language into ascii or T E X. The formatting rules that are generated can easily be fine tuned in orde...
Current Parsing Techniques in Software Renovation Considered Harmful
- Proceedings of the Sixth International Workshop on Program Comprehension
, 1998
"... We evaluate the parsing technology used by people working in the reengineering industry. We discuss parser generators and complete systems like Yacc, TXL, TAMPR, REFINE, CobolTransformer, COSMOS, and ASF+SDF. We explain the merits and drawbacks of the various techniques. We conclude that current tec ..."
Abstract
-
Cited by 52 (15 self)
- Add to MetaCart
We evaluate the parsing technology used by people working in the reengineering industry. We discuss parser generators and complete systems like Yacc, TXL, TAMPR, REFINE, CobolTransformer, COSMOS, and ASF+SDF. We explain the merits and drawbacks of the various techniques. We conclude that current technology may cause problems for the reengineering industry and that modular and/or compositional parsing techniques are a possible solution. Categories and Subject Description: D.2.6 [Software Engineering ]: Programming Environments---Interactive; D.2.7 [Software Engineering]: Distribution and Maintenance--- Restructuring; D.3.4. [Processors]: Parsing. Additional Key Words and Phrases: Reengineering, System renovation, Parsing, Generalized LR parsing, compositional grammars, modular grammars. 1 Introduction A hardly controversial statement in the reengineering community is that in order to reengineer software it is convenient to parse it. Maybe due to the overall agreement on this issue, ...
The Requirement and Design Specification Language SPECTRUM -- An Informal Introduction
, 1993
"... This paper gives a short introduction to the algebraic specification language Spectrum. Using simple, well-known examples, the objectives and concepts of Spectrum are explained. The Spectrum language is based on axiomatic specification techniques and is oriented towards functional programs. Spectru ..."
Abstract
-
Cited by 36 (3 self)
- Add to MetaCart
This paper gives a short introduction to the algebraic specification language Spectrum. Using simple, well-known examples, the objectives and concepts of Spectrum are explained. The Spectrum language is based on axiomatic specification techniques and is oriented towards functional programs. Spectrum includes the following features: ffl partial functions, definedness logic and fixed point theory ffl higher-order elements and typed -abstraction ffl non-strict functions and infinite objects ffl full first-order predicate logic with induction principles ffl predicative polymorphism with sort classes ffl parameterization and modularization Spectrum is based on the concept of loose semantics.
Lightweight Impact Analysis using Island Grammars
- In Proceedings of the 10th International Workshop on Program Comprehension (IWPC 2002). IEEE Computer
, 2002
"... Impact analysis is needed for the planning and estimation of software maintenance projects. Traditional impact analysis techniques tend to be too expensive for this phase, so there is need for more lightweight approaches. ..."
Abstract
-
Cited by 29 (2 self)
- Add to MetaCart
Impact analysis is needed for the planning and estimation of software maintenance projects. Traditional impact analysis techniques tend to be too expensive for this phase, so there is need for more lightweight approaches.
A Pretty-Printer for Every Occasion
- Proceedings of the 2nd International Symposium on Constructing Software Engineering Tools (CoSET2000). University of Wollongong
, 2000
"... Tool builders dealing with many di#erent languages, and language designers require sophisticated pretty-print techniques to minimize the time needed for constructing and adapting pretty-printers. We combined new and existing pretty-print techniques in a generic pretty-printer that satisfies modern ..."
Abstract
-
Cited by 27 (10 self)
- Add to MetaCart
Tool builders dealing with many di#erent languages, and language designers require sophisticated pretty-print techniques to minimize the time needed for constructing and adapting pretty-printers. We combined new and existing pretty-print techniques in a generic pretty-printer that satisfies modern pretty-print requirements. Its features include language independence, customization, and incremental pretty-printer generation.
Obtaining a COBOL Grammar from Legacy Code for Reengineering Purposes
, 1997
"... We argue that maintenance and reengineering tools need to have a thorough knowledge of the language that the code is written in. More specifically, for the family of COBOL languages we present a general method to define COBOL dialects that are based on the actual code that has to be reengineered or ..."
Abstract
-
Cited by 27 (16 self)
- Add to MetaCart
We argue that maintenance and reengineering tools need to have a thorough knowledge of the language that the code is written in. More specifically, for the family of COBOL languages we present a general method to define COBOL dialects that are based on the actual code that has to be reengineered or maintained. Subsequently, we give some typical examples of maintenance and reengineering tools that have been specified on top of such a COBOL grammar in order to show that our approach is useful and leads to accurate and relatively simple maintenance and reengineering tools. Categories and Subject Description: D.2.6 [Software Engineering]: Programming Environments---Interactive; D.2.7 [Software Engineering]: Distribution and Maintenance ---Restructuring; D.2.m [Software Engineering]: Miscellaneous---Rapid prototyping Additional Key Words and Phrases: Reengineering, System renovation, COBOL 1 Introduction There is a constant need for updating and renovating business-critical software sys...

