Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

Václav Rajlich

dblp:r/VaclavRajlich · DBLP profile ↗
← Back
64ranked-venue papers
37as first author
0since 2021 · last 2018
0000-0001-9761-4583ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 52 · 26 first-authorTheory of computation · 8 · 8 first-authorApplied, interdisciplinary, general and emerging computing · 3 · 1 first-authorArtificial intelligence and machine learning · 1Systems, architecture and hardware · 1 · 1 first-authorHuman-computer interaction and ubiquitous computing · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
8 papers
Software maintenance and evolution · 76% Program analysis · 10% Empirical software engineering · 9%
Interdisciplinary, comprehensive, and emerging computing
1 paper
Computing education · 100%

Topics — the 19 heaviest of 22, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Software maintenance and evolution
feature location
0.432017
Reflective feature location: knowledge in mind meets information in system · Sci. China Inf. Sci. 2017
Feature Location Using Probabilistic Ranking of Methods Based on Execution Scenarios and Information Retrieval · IEEE Trans. Software Eng. 2007
Feature location via information retrieval based filtering of a single scenario execution trace · ASE 2007
Computing education
software engineering education
0.212013
Teaching developer skills in the first software engineering course · ICSE 2013
Software maintenance and evolution › feature location
information retrieval-based feature location
0.122007
Feature Location Using Probabilistic Ranking of Methods Based on Execution Scenarios and Information Retrieval · IEEE Trans. Software Eng. 2007
Feature location via information retrieval based filtering of a single scenario execution trace · ASE 2007
Empirical software engineering
developer studies
0.112017
Reflective feature location: knowledge in mind meets information in system · Sci. China Inf. Sci. 2017
Program analysis › dynamic analysis › trace analysis
execution trace analysis
0.112007
Feature location via information retrieval based filtering of a single scenario execution trace · ASE 2007
Software maintenance and evolution › software evolution
principles of software evolution
0.012002
Principles of software evolution: 5th international workshop on principles of software evolution (IWPSE 2002) · ICSE 2002
Software maintenance and evolution
software evolution
0.012002
Principles of software evolution: 5th international workshop on principles of software evolution (IWPSE 2002) · ICSE 2002
Software maintenance and evolution › software evolution
software change
0.011999
Software Change and Evolution (SCE'99) · ICSE 1999
Program analysis
dynamic analysis
0.012007
Feature Location Using Probabilistic Ranking of Methods Based on Execution Scenarios and Information Retrieval · IEEE Trans. Software Eng. 2007
Requirements engineering and software design
software architecture
0.011996
Evolution and Reuse of Orthogonal Architecture · IEEE Trans. Software Eng. 1996
Requirements engineering and software design › software architecture
software architecture evolution
0.011996
Evolution and Reuse of Orthogonal Architecture · IEEE Trans. Software Eng. 1996
Software maintenance and evolution
program comprehension
0.011997
Comprehension and Evolution of Legacy Software (Tutorial) · ICSE 1997
Software maintenance and evolution
reverse engineering
0.011996
Evolution and Reuse of Orthogonal Architecture · IEEE Trans. Software Eng. 1996
Requirements engineering and software design › software design principles
information hiding
0.011987
Refinement Methodology for Ada · IEEE Trans. Software Eng. 1987
Programming languages and type systems › programming paradigms › imperative languages
ada
0.011987
Refinement Methodology for Ada · IEEE Trans. Software Eng. 1987
Programming languages and type systems
language design
0.011987
Refinement Methodology for Ada · IEEE Trans. Software Eng. 1987
Electronic design automation
hardware/software co-design
0.011975
A CAD system for unified hardware-software design · DAC 1975
Automata and formal languages
transducers
0.011975
Bounded-Crossing Transducers · Inf. Control. 1975
Automata and formal languages
grammar formalisms
0.011977
Theory of Data Structures by Relational and Graph Grammars · ICALP 1977

Methods — techniques the papers use, named apart from their topics

reflective practice · 0.3probabilistic ranking · 0.1latent semantic indexing · 0.1information retrieval · 0.1expert combination · 0.1dynamic analysis · 0.1case study · 0.0stepwise refinement · 0.0relational grammars · 0.0graph grammar · 0.0
YearPublicationVenuePosition
2018 Cover Image
abstract
The cover image, by Vaclav Rajlich, is based on the Perspective Paper Five recommendations for software evolvability, https://doi.org/10.1002/smr.1949.
Václav Rajlich
J. Softw. Evol. Process.1
2018 Five recommendations for software evolvability
abstract
Abstract Evolvability of software lies in intersection of 3 factors: evolving system properties, human factors present in the developer team, and evolution demands. The paper presents 5 recommendations that enhance software evolvability: defined processes of software change, distinction between evolving and stabilized part of the code, analyzable code segments, significant concept encapsulation, and avoidance of wrapping.
Václav Rajlich
J. Softw. Evol. Process.1
2017 Reflective feature location: knowledge in mind meets information in system
Xin Peng 0001, Zhengchang Xing, Sen Pan, Wenyi Qian, Václav Rajlich, Wenyun Zhao
Sci. China Inf. Sci.5
2015 Impact analysis based on a global hierarchical Object Graph
abstract
During impact analysis on object-oriented code, statically extracting dependencies is often complicated by subclassing, programming to interfaces, aliasing, and collections, among others. When a tool recommends a large number of types or does not rank its recommendations, it may lead developers to explore more irrelevant code. We propose to mine and rank dependencies based on a global, hierarchical points-to graph that is extracted using abstract interpretation. A previous whole-program static analysis interprets a program enriched with annotations that express hierarchy, and over-approximates all the objects that may be created at runtime and how they may communicate. In this paper, an analysis mines the hierarchy and the edges in the graph to extract and rank dependencies such as the most important classes related to a class, or the most important classes behind an interface. An evaluation using two case studies on two systems totaling 10,000 lines of code and five completed code modification tasks shows that following dependencies based on abstract interpretation achieves higher effectiveness compared to following dependencies extracted from the abstract syntax tree. As a result, developers explore less irrelevant code.
Marwan Abi-Antoun, Yibin Wang 0010, Ebrahim Khalaj, Andrew Giang, Václav Rajlich
SANER5
2013 Education impact of evolutionary software development
abstract
The paradigm shift from waterfall to evolutionary software development (that includes agile development) has been widespread in industry, but academia is still struggling with it. This position paper reiterates the reasons for the paradigm shift that illustrate the importance of the shift. The position paper then discusses what the shift means for the software engineering education. As an example, it briefly presents how software engineering is taught at Wayne State University.
Václav Rajlich
CSEE&T1
2013 Teaching developer skills in the first software engineering course
abstract
Both employers and graduate schools expect computer science graduates to be able to work as developers on software projects. Software engineering courses present the opportunity in the curriculum to learn the relevant skills. This paper presents our experience from Wayne State University and reviews challenges and constraints that we faced while trying to teach these skills. In our first software engineering course, we teach the iterative software development that includes practices of software change, summarized in the phased model of software change. The required resources for our software engineering course are comparable to the other computer science courses. The students - while working in teams - are graded based on their individual contribution to the team effort rather than on the work of the other team members, which improves the fairness of the grading and considerably lessens the stress for the best students in the course. Our students have expressed a high level of satisfaction, and in a survey, they indicated that the skills that they learned in the course are highly applicable to their careers.
Václav Rajlich
ICSE1
2013 Which Practices Are Suitable for an Academic Software Project?
abstract
This paper presents the practices observed in successful academic projects. It classifies them by the software lifecycle stage they belong to, most of the academic projects are in stage of evolution. It also classifies them by their purpose into the organizational and code development practices. The classification may help academic project managers and developers, who are often specialist in fields other than software engineering, to select the appropriate practices for their project.
Václav Rajlich, Jing Hua 0001
ICSM1
2013 Concept location using program dependencies and information retrieval (DepIR)
Maksym Petrenko, Václav Rajlich
Inf. Softw. Technol.2
2012 A retrospective view on: The role of concepts in program comprehension: (MIP award)
abstract
This retrospective briefly recapitulates highlights of the original paper that was published at IWPC 2002. Then it overviews research directions of the last 10 years: research in tools and techniques of concept location a that aim to support software developer, research of integrated model of software change, creation of software engineering course that emphasizes the role of software developer in iterative and agile software processes, and further basic research into the role and properties of concepts.
Václav Rajlich, Norman Wilde
ICPC1
2011 In memory of Manny Lehman, 'Father of Software Evolution'
abstract
The definitive version can be found at : http://onlinelibrary.wiley.com/ Copyright Wiley [Full text of this article is not available in the UHRA]
Gerardo Canfora, Darren Dalcher, David Raffo, Victor R. Basili, Juan Fernández-Ramil, Václav Rajlich, Keith H. Bennett, Elizabeth Burd, Malcolm Munro, Sophia Drossopoulou, Barry W. Boehm, Susan Eisenbach, Greg J. Michaelson, Peter Ross, Paul Wernick, Dewayne E. Perry
J. Softw. Maintenance Res. Pract.6
2010 Teaching undergraduate software engineering
abstract
During the last decade, software engineering changed rapidly, from the emphasis on waterfall lifecycle to the emphasis on software evolution and agile programming. This tutorial provides a brief introduction and overview of the results of this development. It presents agile programming, Personal and Team Software Process, software change, concept location, refactoring, and so forth. The organizing principle is an outline of an undergraduate software engineering course that is based on these results. The audience interested in this tutorial may be teachers of software engineering, and also software practitioners who want learn how these results fit together and how to apply them in software projects.
Václav Rajlich
ICSM1
2010 Hidden dependencies in software systems
abstract
In this paper, we study the hidden dependencies that are a special kind of data flows. They play an important role in software maintenance and evolution because they propagate changes among the classes and they are hard to detect. We propose a technique that finds hidden dependencies through the computation of an “execute completely after” relation that is filtered using dynamically generated preconditions and postconditions. We show that these hidden dependencies exist even in well-structured software, like the open source programs JUnit, Drawlets, and Apache FtpServer. We also discuss the precision of this technique.
Radu Vanciu, Václav Rajlich
ICSM2
2010 Case Study of Feature Location Using Dependence Graph, after 10 Years
abstract
This retrospective briefly recapitulates the original paper that was published at IWPC 2000, overviews selected papers that were published in its wake, presents recent clarifications and updates of the topic, and mentions the still unfinished agenda and future work.
Kunrong Chen, Václav Rajlich
ICPC2
2009 Variable granularity for improving precision of impact analysis
abstract
Impact analysis is a specialized process of program comprehension that investigates the nature and extent of a planned software change. Traditionally, impact analysis involves inspecting dependencies among the software components of a fixed granularity; these components constitute a dependency graph. In this paper, we argue that a single granularity is insufficient and leads to imprecise analysis. We explain how the precision can be improved by variable granularity, where the programmers choose among the granularity of classes, the granularity of class members, and the granularity of code fragments. We assess the resulting precision in a case study on open-source software.
Maksym Petrenko, Václav Rajlich
ICPC2
2009 Intensions are a key to program comprehension
abstract
The classical comprehension theories study relations between extensions, intensions, and names. Originally developed in linguistics and mathematics, these theories are applicable to program comprehension as well. While extensions are present in the program, the intensions are usually missing, and evolution and maintenance programmers have to recover them as the program cannot be successfully comprehended and changed without them.
Václav Rajlich
ICPC1
2008 Static Execute After/Before as a replacement of traditional software dependencies
abstract
The paper explores Static Execute After (SEA) dependencies in the program and their dual Static Execute Before (SEB) dependencies. It empirically compares the SEA/SEB dependencies with the traditional dependencies that are computed by System Dependence Graph (SDG) and program slicers. In our case study we use about 30 subject programs that were previously used by other authors in empirical studies of program analysis. We report two main results. The computation of SEA/SEB is much less expensive and much more scalable than the computation of the SDG. At the same time, the precision declines only very slightly, by some 4% on average. In other words, the precision is comparable to that of the leading traditional algorithms, while intuitively a much larger difference would be expected. The paper then discusses whether based on these results the computation of the SDG should be replaced in some applications by the computation of the SEA/SEB.
Judit Jász, Árpád Beszédes, Tibor Gyimóthy, Václav Rajlich
ICSM4
2008 Partial Domain Comprehension in Software Evolution and Maintenance
abstract
Partial comprehension is a necessity in the evolution and maintenance of very large software systems. The programmers form not only partial comprehension of the code, but also partial comprehension of the application domain. To describe the comprehension process, we introduce ontology fragments and investigate how programmers form, use and extend them before and during concept location; concept location is a prerequisite of code changes. We conducted case studies of concept location in two large systems, Eclipse and Mozilla, that both have more than 50,000 methods. Using grep search and ontology fragments, the programmers were able to locate the concepts after inspecting on average less than 10 methods and operating with ontology fragments of around 14 concepts, a very small fraction of the total.
Maksym Petrenko, Václav Rajlich, Radu Vanciu
ICPC2
2008 Extended firewall for regression testing: an experience report
abstract
Abstract Testing firewalls have proven to be a useful approach for regression testing in both functional and object‐oriented software. They involve only the modules that are closely related to the changed modules. They lead to substantially reduced regression tests but still are very effective in detecting regression faults. This paper investigates situations when data‐flow paths are longer, and the testing of modules and components only one level away from the changed elements may not detect certain regression faults; an extended firewall considers these longer data paths. We report empirical studies that show the degree to which an extended firewall detected more faults, and how much more testing was required to achieve this increased detection. Copyright © 2008 John Wiley & Sons, Ltd.
Lee J. White, Khaled Jaber, Brian Robinson, Václav Rajlich
J. Softw. Maintenance Res. Pract.4
2007 Computation of Static Execute After Relation with Applications to Software Maintenance
abstract
In this paper, we introduce static execute after (SEA) relationship among program components and present an efficient analysis algorithm. Our case studies show that SEA may approximate static slicing with perfect recall and high precision, while being much less expensive and more usable. When differentiating between explicit and hidden dependencies, our case studies also show that SEA may correlate with direct and indirect class coupling. We speculate that SEA may find applications in computation of hidden dependencies and through it in many maintenance tasks, including change propagation and regression testing.
Árpád Beszédes, Tamás Gergely, Judit Jász, Gabriella Tóth, Tibor Gyimóthy, Václav Rajlich
ICSM6
2007 Feature location via information retrieval based filtering of a single scenario execution trace
abstract
The paper presents a semi-automated technique for feature location in source code. The technique is based on combining information from two different sources: an execution trace, on one hand and the comments and identifiers from the source code, on the other hand.
Andrian Marcus, Denys Poshyvanyk, Václav Rajlich
ASE4
2007 Feature Location Using Probabilistic Ranking of Methods Based on Execution Scenarios and Information Retrieval
abstract
This paper recasts the problem of feature location in source code as a decision-making problem in the presence of uncertainty. The solution to the problem is formulated as a combination of the opinions of different experts. The experts in this work are two existing techniques for feature location: a scenario-based probabilistic ranking of events and an information-retrieval-based technique that uses latent semantic indexing. The combination of these two experts is empirically evaluated through several case studies, which use the source code of the Mozilla Web browser and the Eclipse integrated development environment. The results show that the combination of experts significantly improves the effectiveness of feature location as compared to each of the experts used independently
Denys Poshyvanyk, Yann-Gaël Guéhéneuc, Andrian Marcus, Giuliano Antoniol, Václav Rajlich
IEEE Trans. Software Eng.5
2006 Teaching Evolution of Open-Source Projects in Software Engineering Courses
abstract
In the traditional software engineering courses, the students develop small programs from scratch. This does not correspond to industry practice where programmers spend most of their time evolving medium to large systems. In order to narrow this gap, we developed a course where students practice software evolution through the implementation of change requests on medium-sized open-source software systems. The results of the course show that this type of software engineering course gives students a more realistic experience than traditional software engineering courses. In the survey at the end of the course, the students expressed a higher level of satisfaction with both rating the course and assessing how much they learned. Additionally, the resources required by such a course are not excessive
Joseph Buchta, Maksym Petrenko, Denys Poshyvanyk, Václav Rajlich
ICSM4
2006 Combining Probabilistic Ranking and Latent Semantic Indexing for Feature Identification
abstract
The paper recasts the problem of feature location in source code as a decision-making problem in the presence of uncertainty. The main contribution consists in the combination of two existing techniques for feature location in source code. Both techniques provide a set of ranked facts from the software, as result to the feature identification problem. One of the techniques is based on a scenario based probabilistic ranking of events observed while executing a program under given scenarios. The other technique is defined as an information retrieval task, based on the latent semantic indexing of the source code. We show the viability and effectiveness of the combined technique with two case studies. A first case study is a replication of feature identification in Mozilla, which allows us to directly compare the results with previously published data. The other case study is a bug location problem in Mozilla. The results show that the combined technique improves feature identification significantly with respect to each technique used independently
Denys Poshyvanyk, Andrian Marcus, Václav Rajlich, Yann-Gaël Guéhéneuc, Giuliano Antoniol
ICPC3
2006 IEEE International Conference on Software Maintenance (ICSM2005)
Václav Rajlich, Tibor Gyimóthy
J. Softw. Maintenance Res. Pract.1
2006 Guest Editors' Introduction to the Special Issue on the International Conference on Software Maintenance and Evolution
abstract
THE International Conference on Software Maintenance and Evolution (ICSM) is the leading research conference in software maintenance and evolution. It provides a widely recognized international forum for discussions and exchange of ideas between researchers and experts. ICSM 2005 was held in Budapest on 26-29 September 2005. In cooperation with the ICSM conference, several collocated workshops were organized. These included the Seventh IEEE International Symposium on Web Site Evolution (WSE), the Fifth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM), the Third International Workshop on Visualizing Software for Understanding and Analysis (VISSOFT), the Software Evolvability Workshop, and the 13th International Workshop on Software Technology and Engineering Practice (STEP). For ICSM 2005, 180 research papers were submitted. From this record number of papers the program committee selected 55 full papers for inclusion in the proceedings. Of these 55 papers, eight were extended from their conference version, passed through the standard TSE review process involving three anonymous reviewers per paper, and are contained in this special issue. The first paper, “Feature Identification: An Epidemiological Metaphor” by G. Antoniol and Y.-G. Gueheneuc, presents an epidemiology inspired approach to feature identification. The approach relies on statistical analysis of static and dynamic data and identifies features of large, multithreaded object-oriented programs: the Firefox e-mail tool and the Mozilla Web browser. The results suggest that the epidemiological analysis overcomes the limitations of existing methods and increases the accuracy of the feature identification. Extracted microarchitectures consist of variables, structures, classes, and methods, and support the maintenance and program understanding. The second paper, “Toward the Reverse Engineering of UML Sequence Diagrams for Distributed Java Programs” by L.C. Briand, Y. Labiche, and J. Leduc, provides a methodology to reverse engineer sequence diagrams from dynamic analysis data. Because of inheritance, polymorphism, and dynamic binding, reverse engineering and understanding the behavior of an object-oriented system is difficult. Multithreading and distribution further complicate the analysis. In order to separate the instrumentation from the application code, aspect-oriented programming was used. The approach is illustrated on a distributed library management system developed in Java, using RMI as the distribution middleware. The third paper, “Static Analysis of Object References in RMI-Based Java Software” by M. Sharp and A. Rountev, presents a points-to analysis of distributed Java programs that contain the Remote Method Invocation (RMI). Points-to information is often a prerequisite for program understanding, testing, and code optimizations. The existing points-to analysis techniques cannot be applied directly to RMI-based distributed applications. The approach presented in this paper allows us to represent the flow of remote objects, the effects of remote invocations, and the remote propagation of object graphs through serialization. The result of an experimental study suggests that the approximate version of the analysis could be a good option for a relatively precise and practical points-to analysis of RMI-based Java applications. The fourth paper, “Incremental Maintenance of Software Artifacts” by S.P. Reiss, presents a software development tool (CLIME) that identifies potential problems and inconsistencies between software design, specification, documentation, source code, test cases, and other artifacts. The approach is based on constraints implemented as database queries that describe the association of the different software artifacts. These constraints are maintained and checked incrementally during the evolution of a system and the inconsistencies are reported to the developers. The approach is validated on several software development projects where many language and documentation problems and inconsistencies between the code and documentation have been identified. The fifth paper, “Tool-Supported Refactoring of ObjectOriented Code into Aspects” by D. Binkley, M. Ceccato, M. Harman, F. Ricca, and P. Tonella, presents refactoring Object-Oriented Programs (OOP), written in Java, into equivalent Aspect-Oriented Programs (AOP) written in AspectJ. The approach relies on six refactorings to support migration from OOP to AOP. These refactorings are combined with existing OO transformations into a tool, AOP-Migrator, which is implemented as an Eclipse plug-in. The approach is applied to several Java systems: JHotDraw, IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 32, NO. 9, SEPTEMBER 2006 625
Tibor Gyimóthy, Václav Rajlich
IEEE Trans. Software Eng.2
2005 Identifications of Concepts, Features, and Concerns in Source Code
abstract
Software development process transforms requirements into source code. These requirements are formulated as concepts from the problem domain or the solution domain; among them, features are the concepts that describe user selectable behavior. During software evolution, existing concepts and features of the system are changed, deleted, or new ones are added. In order to solve any of these change tasks, the existing concepts need to be precisely identified in the source code. This identification process was initially defined as the concept assignment (location) problem [2]. It is of no surprise that searching and browsing the software artifacts with the goal to identify parts of the source code that implement a concept from the software domain is one of the most common activities during software evolution. The existing methods of concept and feature location fall into two broad categories, based on the information from the software used during the location process: static [3] and dynamic [4]. Concerns of the software system are closely related to the concepts. A major issue during software design is the separation of these concerns [1] from one another through the modularization mechanisms available in the chosen program language. The goal is to implement each concern as one module in the software. The limitations of existing programming paradigms and languages, often combined with the lack of design expertise, result in a sad reality, where concerns are implemented in several modules, often cross-cutting the primary decomposition of the system. 2. Discussion topics
Andrian Marcus, Václav Rajlich
ICSM2
2004 A Case Study on the Long-Term Effects of Software Redocumentation
abstract
This work presents data from a long-term (four year) case study of the effects of incremental software redocumentation of data communications services software that is a part of a check processing system. It presents data on the relative cost and completeness of the incremental redocumentation and its impact on programmer productivity and cost of the software change. The break-even point occurred after 1.5 years of effort, which means that the extra investment in redocumentation started paying off after 1.5 years of redocumentation activity.
Alexander J. Rostkowycz, Václav Rajlich, Andrian Marcus
ICSM2
2003 A comparison of methods for locating features in legacy software
Norman Wilde, Michelle Buckellew, Henry Page, Václav Rajlich, LaTreva Pounds
J. Syst. Softw.4
2002 Principles of software evolution: 5th international workshop on principles of software evolution (IWPSE 2002)
abstract
We present an overview of the 5th International Workshop on Principles of Software Evolution (IWPSE 2002).
Mikio Aoyama, Katsuro Inoue, Václav Rajlich
ICSE3
2002 A Case Study of Unanticipated Incremental Change
abstract
Incremental changes add new functionality and properties to software. They are the core of software evolution, maintenance, iterative development, agile development, and similar software processes. This paper presents a technique for unanticipated incremental software change and a case study. The technique uses programming concepts as the foundation, and contains steps of concept location, actualization, incorporation, and change propagation. The case study presents an unanticipated change in the open source software "Drawlets".
Václav Rajlich, Prashant Gosavi
ICSM1
2001 Software Evolution: A Road Map
abstract
The aim of the panel session is to clarify issues involved in software evolution, but more particularly, to identify and explore promising solutions and research directions, in order to identify strategic goals for the research community and solution visions for practitioners.By evolution, we mean a stage of software lifecycle where the software undergoes substantial changes and this also includes iterative software development and/or agile software processes.
Keith H. Bennett, Václav Rajlich
ICSM2
2001 RIPPLES: Tool for Change in Legacy Software
abstract
Key parts of software change are concept location and change propagation. We introduce a tool called RIPPLES that supports both. It uses the Abstract System Dependence Graph (ASDG) of the program, enriched by conceptual dependencies. A case study of NCSA Mosaic demonstrates the use of the tool. Precision and recall are used to evaluate the quality of support provided by RIPPLES.
Kunrong Chen, Václav Rajlich
ICSM2
2001 Software Evolution: A Road Map
abstract
Software change is the basic building block of software evolution, and problems of software evolution can be solved by research into software change. There is a need to develop reactive methodologies, tools, and techniques. This will solve the problems posed by unexpected changes and also address the issues of ultrafast software evolution.
Václav Rajlich
ICSM1
2000 Perceptions of contribution in software teams
Václav Rajlich, Waseed Abdul Syed, James Martinez
J. Syst. Softw.1
1999 Software Change and Evolution (SCE'99)
abstract
No abstract available.
Václav Rajlich
ICSE1
1999 Restructuring Legacy C Code into C++
abstract
In this paper, we describe restructuring of C code into new C++ classes. Such restructuring is done to facilitate both software reuse and software evolution. The restructuring is accomplished by restructuring tools and scenarios. We discuss the transformation tool-set and the design of the individual tools. The approach is demonstrated on a case study We also discuss how this tool-set could be enhanced in the future.
Richard Fanta, Václav Rajlich
ICSM2
1999 Software Change and Evolution
Václav Rajlich
SOFSEM1
1999 Using the Web for Software Annotations
abstract
The purpose of software redocumention is to recover comprehension of software and to record it for future use. This paper describes Partitioned Annotations of Software (PAS), where comprehension is recorded in hypertext and browsed by web browsers. The annotations for each code component are partitioned in order to keep different explanations separate, leverage the advantages of hypertext, and better support the processes of program comprehension. The paper describes a tool that parses code and generates PAS skeletons. The paper also describes a process of incremental redocumentation where comprehension of software is recorded incrementally during normal maintenance. The experience with PAS in an industrial project is summarized.
Václav Rajlich, Srikant Varadarajan
Int. J. Softw. Eng. Knowl. Eng.1
1999 Removing clones from the code
abstract
This paper reports on a process for eliminating function clones and class clones from industrial object-oriented code. Clone removal can decrease system code size and facilitate maintenance. We eliminate clones by re-engineering scenarios that are based on using automated restructuring tools. The clone elimination process described includes function insertion, function expulsion, function encapsulation, function and variable renaming, and argument reordering. The paper presents examples of clones, re-engineering scenarios and restructuring tools. The usefulness of the approach is demonstrated by experience from a case study. Copyright © 1999 John Wiley & Sons, Ltd.
Richard Fanta, Václav Rajlich
J. Softw. Maintenance Res. Pract.2
1998 Reengineering Object-Oriented Code
abstract
In this paper, we describe the reengineering of a deteriorated object-oriented industrial program written in C++. The main problem of the program was misplaced code, most often functions that were members of the wrong class. In order to deal with this problem, we designed and implemented several restructuring tools and used them in specific reengineering scenarios. We also discuss how this set of tools could be enhanced in the future, and the importance of restructuring for object-oriented software maintenance.
Richard Fanta, Václav Rajlich
ICSM2
1998 A case study of evolution in object oriented and heterogeneous architectures
Václav Rajlich, Shivkumar Ragunathan
J. Syst. Softw.1
1997 Comprehension and Evolution of Legacy Software (Tutorial)
abstract
No abstract available.
Václav Rajlich
ICSE1
1997 A Model for Change Propagation Based on Graph Rewriting
abstract
This paper presents a model of change propagation during software maintenance and evolution. Change propagation is modeled as a sequence of snapshots, where each snapshot represents one particular moment in the process, with some software dependencies being consistent and others being inconsistent. A snapshot is changed into the next one by a change in one software entity and the dependencies related to it. The formalism for this process is based on graph rewriting. The paper discusses two basic processes of change propagation: change-and-fix, and top-down propagation. It also describes a prototype tool “Ripples 2” which supports both processes, and an example of the use of the tool
Václav Rajlich
ICSM1
1997 MSE: A Methodology for Software Evolution
abstract
Every program must continuously evolve, or it will become obsolete. This paper explores a methodology for software evolution within the setting of object-orientated programming. The methodology is based on the top–down propagation of change, and it is remotely related to stepwise refinement. To present the methodology, this paper uses one small example (Gregorian calendar) and one medium-sized example (calendar maintainer). This paper also explores an algorithm for scheduling object classes for update, and introduces a tool, ‘Ripples’, which helps programmers work with the process of software evolution. © 1997 by John Wiley & Sons, Ltd. J. Software Maintenance 9: 103–124, 1997.
Václav Rajlich
J. Softw. Maintenance Res. Pract.1
1996 VIFOR 2: a tool for browsing and documentation
abstract
During the maintenance of legacy systems, the structure and the documentation of the system usually deteriorates, and hence the maintenance becomes progressively harder and harder. In order to reverse this deterioration, it is essential to record the understanding of the system continually, before it is forgotten. It is also important to structure it in such a way that it can be easily accumulated and retrieved. The authors present a tool called VIFOR 2, which is oriented rewards this situation. The tool combines two technologies: browsing and hypertext documentation. The browser supports rapid navigation around the code. The layered hypertext supports the incremental recording and retrieval of the documentation on the desired level of abstraction (domain, algorithm, representation, etc.). They briefly discuss their own experience with the tool.
Václav Rajlich, Sridhar Reddy Adnapally
ICSM1
1996 Evolution and Reuse of Orthogonal Architecture
abstract
We present a case study of evolution (or vertical reuse) in the domain of visual interactive software tools. We introduce an architecture suitable for this purpose, called orthogonal architecture. The paper describes the architecture itself, the reverse engineering process by which it was obtained, and the forward engineering process by which it was evolved.
Václav Rajlich, João H. Silva
IEEE Trans. Software Eng.1
1995 Evolution Based Approaches to Software Engineering: Culturing Software
Robert G. Reynolds, Victor R. Basili, Václav Rajlich, Nikolaos G. Bourbakis
SEKE3
1994 Decomposition /generalization methodology for object-oriented Programming
Václav Rajlich
J. Syst. Softw.1
1992 Guest Editor's Introduction: Special Issue on Software Maintenance
Václav Rajlich
IEEE Trans. Software Eng.1
1990 VIPEG: a generator of environments for software maintenance
abstract
The authors present the design and implementation of VIPEG, a generator of environments for software maintenance. Environments generated by VIPEG extract information about software components and their interconnections, store it in a database, and make it available to software maintainers in a form which is easy to understand and work with. The generated environments consist of a graphical display, editing tools, a database to store programs, and a query system to retrieve information. The generator accepts specification of the target language in the Data Model Specification Language. An example of C language specification is described.>
Wafa Khorshid, Václav Rajlich
COMPSAC2
1990 Algorithm for graphic layout in VIFOR
abstract
VIFOR is a software tool for maintenance of large Fortran programs. The distinguishing feature of VIFOR layouts is the placement of all nodes into two columns depending on their class, which is referred to as a two-column graph (2CG). The 2CG consists of two subgraphs, the call graph and the reference graph. The algorithm proposed first builds the call graph by determining the positions of the nodes in the process column, and then it appends the reference graph to the drawing. The part of the algorithm that builds the layout of the call graph is described. The algorithm tries to communicate as much information about the call graph as possible. The space optimization is considered to be secondary.>
Václav Rajlich, Nicolas Damaskinos
ICSM1
1990 VIFOR: A Tool for Software Maintenance
abstract
Abstract VIFOR is a software tool oriented towards maintenance of medium‐to‐large Fortran77 programs. With VIFOR, programs can be displayed and edited in two forms: as the code and as the graph. VIFOR also contains transformations in both directions, i.e. from code to graph and from graph to skeletons of code. Hence, it is suitable for re‐engineering and maintenance of existing code. Specially designed browsers implement the graphical interface. VIFOR contains a database that is based on a simple but effective data model of Fortran programs. The model contains only four entity classes and three relations, which makes the tool small, and easy to implement and use. A simple query language allows browsing through the database.
Václav Rajlich, Nicolas Damaskinos, Panagiotis K. Linos, Wafa Khorshid
Softw. Pract. Exp.1
1988 Visual support for programming-in-the-large
abstract
A brief description of the VIFOR (visual interactive Fortran) environment is given. VIFOR is based on a simple, but effective data model of Fortran programs containing three entity classes and three relation classes only. Programs can be displayed and edited in two forms: the traditional one (i.e., code) and the visual form. VIFOR contains transformation tools for both directions, i.e., from code to visual form and from visual form to skeletons of code. Hence, it is suitable for reverse engineering and maintenance of existing code. Specially designed browsers implement the graphical interface.>
Václav Rajlich, Nicolas Damaskinos, Panagiotis K. Linos, João H. Silva, Wafa Khorshid
ICSM1
1987 Refinement Methodology for Ada
abstract
This paper presents Refinement Methodology (RM) for the design of Ada® programs. The methodology combines stepwise refinement and the information hiding principle. The steps of the methodology are explained and illustrated by an example. A part of the methodology is a collection of rules by which procedures acquire parameters (called first and second rules for parameters).
Václav Rajlich
IEEE Trans. Software Eng.1
1985 Stepwise refinement revisited
Václav Rajlich
J. Syst. Softw.1
1983 Determinism in Parallel Systems
Václav Rajlich
Theor. Comput. Sci.1
1977 Theory of Data Structures by Relational and Graph Grammars
Václav Rajlich
ICALP1
1975 A CAD system for unified hardware-software design
Václav Rajlich
DAC1
1975 Relational definition of Computer Languages
Václav Rajlich
MFCS1
1975 Bounded-Crossing Transducers
Václav Rajlich
Inf. Control.1
1975 Dynamics of Discrete Systems and Pattern Reproductions
Václav Rajlich
J. Comput. Syst. Sci.1
1973 Relational Structures and Dynamics of Certain Discrete Systems
Václav Rajlich
MFCS1
1972 Absolutely Parallel Grammars and Two-Way Finite State Transducers
Václav Rajlich
J. Comput. Syst. Sci.1
1971 Absolutely Parallel Grammars and Two-Way Deterministic Finite-State Transducers
abstract
Absolutely parallel grammars are defined and it is shown that the family of languages generated is equal to the family of languages generated by two-way deterministic finite-state transducers. Furthermore it is shown that this family forms a full AFL [4], is properly contained in the family of languages generated by two-way nondeterministic finite-state transducers (which is equal to the family of checking automata languages [8]) and properly contains the family of nonexpansive context-free languages [7].
Václav Rajlich
STOC1