Walter F. Tichy

dblp:t/WalterFTichy · DBLP profile ↗
← Back
70ranked-venue papers
12as first author
2since 2021 · last 2023
0000-0002-1288-454XORCID · verified

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

Software engineering, systems software and programming languages · 44 · 11 first-author · 1 since 2021Systems, architecture and hardware · 22 · 1 first-authorArtificial intelligence and machine learning · 4Computer networks · 1Databases, data management, data science and information retrieval · 1Graphics, computer vision, multimedia, augmented reality and games · 1 · 1 since 2021Applied, interdisciplinary, general and emerging computing · 1

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
21 papers
Empirical software engineering · 29% Program synthesis and code generation · 25% Requirements engineering and software design · 14%
Computer graphics and multimedia
1 paper
Rendering · 87% Geometric modeling and processing · 13%
Computer architecture, parallel and distributed computing, and storage systems
5 papers
Parallel and multicore computing · 66% Processor architecture and microarchitecture · 20% Storage systems · 10%
Human-computer interaction and pervasive computing
1 paper
Interaction techniques and input · 100%

Topics — the 30 heaviest of 63, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Rendering › ray tracing
acceleration structure
0.712023
Analysis of Acceleration Structure Parameters and Hybrid Autotuning for Ray Tracing · IEEE Trans. Vis. Comput. Graph. 2023
Rendering
ray tracing
0.712023
Analysis of Acceleration Structure Parameters and Hybrid Autotuning for Ray Tracing · IEEE Trans. Vis. Comput. Graph. 2023
Program synthesis and code generation
code generation from natural language
0.412020
Programming in Natural Language with fuSE: Synthesizing Methods from Spoken Utterances Using Deep Natural Language Understanding · ACL 2020
Empirical software engineering
end-user programming
0.412020
Programming in Natural Language with fuSE: Synthesizing Methods from Spoken Utterances Using Deep Natural Language Understanding · ACL 2020
Interaction techniques and input
voice interaction
0.212015
Poster: ProNat: An Agent-Based System Design for Programming in Spoken Natural Language · ICSE (2) 2015
Program synthesis and code generation
natural language programming
0.212015
Poster: ProNat: An Agent-Based System Design for Programming in Spoken Natural Language · ICSE (2) 2015
Parallel and multicore computing
parallel programming models
0.222010
Engineering parallel applications with tunable architectures · ICSE (1) 2010
Multicore software engineering: the next challenge in software engineering · ICSE (2) 2010
Geometric modeling and processing › spatial data structures
k-d tree
0.212023
Analysis of Acceleration Structure Parameters and Hybrid Autotuning for Ray Tracing · IEEE Trans. Vis. Comput. Graph. 2023
Concurrent programming › concurrency bug detection
data race detection
0.212014
Library-Independent Data Race Detection · IEEE Trans. Parallel Distributed Syst. 2014
Program analysis
dynamic analysis
0.212014
Library-Independent Data Race Detection · IEEE Trans. Parallel Distributed Syst. 2014
Requirements engineering and software design
software architecture
0.122010
Engineering parallel applications with tunable architectures · ICSE (1) 2010
Software Development Based on Module Interconnection · ICSE 1979
Requirements engineering and software design › software architecture › architecture description
architecture description language
0.112010
Engineering parallel applications with tunable architectures · ICSE (1) 2010
Processor architecture and microarchitecture
adaptive architecture
0.112010
Engineering parallel applications with tunable architectures · ICSE (1) 2010
Parallel and multicore computing › parallel computing › parallel software engineering
multicore software engineering
0.112010
Multicore software engineering: the next challenge in software engineering · ICSE (2) 2010
Empirical software engineering
controlled experiment
0.142003
Two Controlled Experiments Assessing the Usefulness of Design Pattern Documentation in Program Maintenance · IEEE Trans. Software Eng. 2002
A Controlled Experiment in Maintenance Comparing Design Patterns to Simpler Solutions · IEEE Trans. Software Eng. 2001
A Controlled Experiment to Assess the Benefits of Procedure Argument Type Checking · IEEE Trans. Software Eng. 1998
Software maintenance and evolution
software configuration management
0.122005
Impact of software engineering research on the practice of software configuration management · ACM Trans. Softw. Eng. Methodol. 2005
Impact of the research community for the field of software configuration management · ICSE 2002
Requirements engineering and software design
software process
0.122004
Agile Development: Evaluation and Experience · ICSE 2004
Case Study: Extreme Programming in a University Environment · ICSE 2001
Empirical software engineering
agile software development
0.012004
Agile Development: Evaluation and Experience · ICSE 2004
Empirical software engineering
experimental methodology
0.012003
Comments on "Formal Methods Application: An Empirical Tale of Software Development" · IEEE Trans. Software Eng. 2003
Empirical software engineering
software engineering research methodology
0.012003
Comments on "Formal Methods Application: An Empirical Tale of Software Development" · IEEE Trans. Software Eng. 2003
Requirements engineering and software design › design patterns
design pattern specification
0.012002
Two Controlled Experiments Assessing the Usefulness of Design Pattern Documentation in Program Maintenance · IEEE Trans. Software Eng. 2002
Software maintenance and evolution
program comprehension
0.012002
Two Controlled Experiments Assessing the Usefulness of Design Pattern Documentation in Program Maintenance · IEEE Trans. Software Eng. 2002
Parallel and multicore computing › many-core systems
many-core computing
0.012010
Multicore software engineering: the next challenge in software engineering · ICSE (2) 2010
Empirical software engineering › agile software development
extreme programming
0.012001
Case Study: Extreme Programming in a University Environment · ICSE 2001
Program analysis
program comparison
0.012000
Renaming Detection · ASE 2000
Software maintenance and evolution
software evolution
0.012000
Renaming Detection · ASE 2000
Software maintenance and evolution
software maintenance
0.012000
Renaming Detection · ASE 2000
Compilers and program optimization › incremental compilation
smart recompilation
0.041994
The Cost of Selective Recompilation and Environment Processing · ACM Trans. Softw. Eng. Methodol. 1994
Tichy's Response to R. W. Schwanke and G. E. Kaiser's "Smarter Recompilation" · ACM Trans. Program. Lang. Syst. 1988
Smart Recompilation · ACM Trans. Program. Lang. Syst. 1986
Software testing
test-driven development
0.022004
Agile Development: Evaluation and Experience · ICSE 2004
Case Study: Extreme Programming in a University Environment · ICSE 2001
Program analysis
static analysis
0.011998
A Controlled Experiment to Assess the Benefits of Procedure Argument Type Checking · IEEE Trans. Software Eng. 1998

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

model-based prediction · 0.7autotuning · 0.7natural language understanding · 0.4agent-based architecture · 0.4knowledge-based methods · 0.4information retrieval · 0.4BiLSTM · 0.4BERT · 0.4parallel patterns · 0.2auto-tuning · 0.2dynamic synchronization detection · 0.2code pattern analysis · 0.2compile-time checking · 0.1code generation · 0.1ziv-lempel compression · 0.0diff · 0.0simulation · 0.0markov chain modeling · 0.0
YearPublicationVenuePosition
2023 Analysis of Acceleration Structure Parameters and Hybrid Autotuning for Ray Tracing
abstract
Finding optimal parameters for acceleration structures for raytracing is key to improved performance. Previous research has shown that a speedup of over 10% of rendering time is possible. Some parameters are interdependent which complicates the process of finding an optimal configuration. It is hence interesting to find them efficiently. Autotuning is an automatic optimization scheme able to search for optimal configurations and has been applied successfully to kD-trees in the past, which we apply today on BVHs. The more parameters to optimize, the more difficult it is to find optimal solutions. In this article, we analyze in detail the behavior of the parameters and their impact on acceleration structure building and rendering time. We show the interdependence and context sensitivity (i.e., scene, viewpoint) of the parameters. Based on the use case, this allows to target only crucial parameters. Convergence speed towards an optimal configuration is essential. To find better parameters, the autotuner needs to build the acceleration structure over and over, changing parameters every time. We introduce a hybrid model-based prediction and online autotuning method to address this issue. The prediction model allows for both instantaneous near-optimal configurations when inputs are known or similar, and efficient search of the configuration space when inputs are completely new. Online autotuning outperforms configurations recommended in literature by up to 11% median. The prediction model achieves 95% of the maximum speedup of the autotuner while reducing 90% of its overhead. Thus, hybrid online autonuning enables always-on tuning in ray tracing.
Killian Herveau, Philip Pfaffe, Martin Peter Tillmann, Walter F. Tichy, Carsten Dachsbacher
IEEE Trans. Vis. Comput. Graph.4
2021 Improving Traceability Link Recovery Using Fine-grained Requirements-to-Code Relations
abstract
Traceability information is a fundamental prerequisite for many essential software maintenance and evolution tasks, such as change impact and software reusability analyses. However, manually generating traceability information is costly and error-prone. Therefore, researchers have developed automated approaches that utilize textual similarities between artifacts to establish trace links. These approaches tend to achieve low precision at reasonable recall levels, as they are not able to bridge the semantic gap between high-level natural language requirements and code. We propose to overcome this limitation by leveraging fine-grained, method and sentence level, similarities between the artifacts for traceability link recovery. Our approach uses word embeddings and a Word Mover's Distance-based similarity to bridge the semantic gap. The fine-grained similarities are aggregated according to the artifacts structure and participate in a majority vote to retrieve coarse-grained, requirement-to-class, trace links. In a comprehensive empirical evaluation, we show that our approach is able to outperform state-of-the-art unsupervised traceability link recovery approaches. Additionally, we illustrate the benefits of fine-grained structural analyses to word embedding-based trace link generation.
Tobias Hey 0001, Sebastian Weigelt, Walter F. Tichy
ICSME4
2020 Programming in Natural Language with fuSE: Synthesizing Methods from Spoken Utterances Using Deep Natural Language Understanding
abstract
The key to effortless end-user programming is natural language.We examine how to teach intelligent systems new functions, expressed in natural language.As a first step, we collected 3168 samples of teaching efforts in plain English.Then we built fu SE , a novel system that translates English function descriptions into code.Our approach is three-tiered and each task is evaluated separately.We first classify whether an intent to teach new functionality is present in the utterance (accuracy: 97.7% using BERT).Then we analyze the linguistic structure and construct a semantic model (accuracy: 97.6% using a BiLSTM).Finally, we synthesize the signature of the method, map the intermediate steps (instructions in the method body) to API calls and inject control structures (F 1 : 67.0% with information retrieval and knowledge-based methods).In an end-to-end evaluation on an unseen dataset fu SE synthesized 84.6% of the method signatures and 79.2% of the API calls correctly.
Sebastian Weigelt, Vanessa Steurer, Tobias Hey 0001, Walter F. Tichy
ACL4
2020 NoRBERT: Transfer Learning for Requirements Classification
abstract
Classifying requirements is crucial for automatically handling natural language requirements. The performance of existing automatic classification approaches diminishes when applied to unseen projects because requirements usually vary in wording and style. The main problem is poor generalization. We propose NoRBERT that fine-tunes BERT, a language model that has proven useful for transfer learning. We apply our approach to different tasks in the domain of requirements classification. We achieve similar or better results F1-scores of up to 94%) on both seen and unseen projects for classifying functional and non-functional requirements on the PROMISE NFR dataset. NoRBERT outperforms recent approaches at classifying non-functional requirements subclasses. The most frequent classes are classified with an average F1-score of 87%. In an unseen project setup on a relabeled PROMISE NFR dataset, our approach achieves an improvement of 15 percentage points in average F1score compared to recent approaches. Additionally, we propose to classify functional requirements according to the included concerns, i.e., function, data, and behavior. We labeled the functional requirements in the PROMISE NFR dataset and applied our approach. NoRBERT achieves an F1-score of up to 92%. Overall, NoRBERT improves requirements classification and can be applied to unseen projects with convincing results.
Tobias Hey 0001, Jan Keim, Anne Koziolek, Walter F. Tichy
RE4
2019 Automatic Generation of Virtual Assistants from Databases using Active Ontologies
abstract
Virtual assistants such as Siri or Google Assistant are omnipresent.However, their development remains costly.One must either manually model the problem domain or provide thousands of labeled samples.We propose to automatically create virtual assistants based on Active Ontologies for interacting with databases.Our approach generates Active Ontologies; we use the database structure to derive a concept hierarchy and database values together with synonyms to extract information from user queries.Our approach also learns common phrases from samples, e.g. from existing Dialogflow agents.We extract pre-and postfixes and attach them to concepts, e.g. at to detect a succeeding location.The generated Active Ontologies reply to previously unseen and composed requests.The approach is not limited to virtual assistants but can be applied to any system with a textual or voice-based conversational interface such as chatbots.We evaluate our approach in three domains: tourism, hotel, and web cams.The study shows that automatically generated Active Ontologies extract relevant information from user utterances with a precision of 58%.The precision increases to 79% (recall 46%, F1 58%) when we use sample utterances.Our approach successfully transfers between domains, e.g.we learn phrases from the tourism domain and use them to reply to hotel requests without any adjustments.
Martin Blersch, Sebastian Weigelt, Walter F. Tichy, Kevin Angele
SEKE3
2017 Context Model Acquisition from Spoken Utterances
abstract
Current systems with spoken language interfaces do not leverage contextual information.Therefore, they struggle with understanding speakers' intentions.We propose a system that creates a context model from user utterances to overcome this lack of information.It comprises eight types of contextual information organized in three layers: individual, conceptual, and hierarchical.We have implemented our approach as a part of the project PARSE.It aims at enabling laypersons to construct simple programs by dialog.Our implementation incrementally generates context including occurring entities and actions as well as their conceptualizations, state transitions, and other types of contextual information.Its analyses are knowledge-or rulebased (depending on the context type), but we make use of many well-known probabilistic NLP techniques.In a user study we have shown the feasibility of our approach, achieving F1 scores from 72% up to 98% depending on the type of contextual information.The context model enables us to resolve complex identity relations.However, quantifying this effect is subject to future work.Likewise, we plan to investigate whether our context model is useful for other language understanding tasks, e.g., anaphora resolution, topic analysis, or correction of automatic speech recognition errors.
Sebastian Weigelt, Tobias Hey 0001, Walter F. Tichy
SEKE3
2017 NLCI: a natural language command interpreter
Mathias Landhäußer, Sebastian Weigelt, Walter F. Tichy
Autom. Softw. Eng.3
2017 Context Model Acquisition from Spoken Utterances
abstract
Current systems with spoken language interfaces do not leverage contextual information. Therefore, they struggle with understanding speakers’ intentions. We propose a system that creates a context model from user utterances to overcome this lack of information. It comprises eight types of contextual information organized in three layers: individual, conceptual, and hierarchical. We have implemented our approach as a part of the project PARSE. It aims at enabling laypersons to construct simple programs by dialog. Our implementation incrementally generates context including occurring entities and actions as well as their conceptualizations, state transitions, and other types of contextual information. Its analyses are knowledge- or rule-based (depending on the context type), but we make use of many well-known probabilistic NLP techniques. In a user study we have shown the feasibility of our approach, achieving [Formula: see text] scores from 72% up to 98% depending on the type of contextual information. The context model enables us to resolve complex identity relations. However, quantifying this effect is subject to future work. Likewise, we plan to investigate whether our context model is useful for other language understanding tasks, e.g. anaphora resolution, topic analysis, or correction of automatic speech recognition errors.
Sebastian Weigelt, Tobias Hey 0001, Walter F. Tichy
Int. J. Softw. Eng. Knowl. Eng.3
2017 Editorial of special issue on Software Engineering for Parallel Systems
Ali Jannesari, Felix Wolf 0001, Walter F. Tichy
J. Syst. Softw.3
2016 Online-Autotuning of Parallel SAH kD-Trees
abstract
We explore the benefits of using online-autotuning to find an optimal configuration for the parallel construction of Surface Area Heuristic (SAH) kD-trees. Using a quickly converging autotuning mechanism, we achieve a significant performance improvement of up to 1.96x. The SAH kD-tree is a spatial data structure and a fundamental tool in the domain of computer graphics and simulations. The parallel construction of these trees is influenced by several parameters, controlling various aspects of the algorithm. However, the parameter configurations advocated in the literature are hardly ever portable. To boost portability, we apply online-autotuning to four state-of-the-art variants of parallel kD-tree construction. We show that speedups over the variants' standard configurations are possible with low programmer effort. We further demonstrate the performance portability of our approach by evaluating performance on varying multicore platforms and both static and dynamic geometries.
Martin Peter Tillmann, Philip Pfaffe, Christopher Kaag, Walter F. Tichy
IPDPS4
2015 Poster: ProNat: An Agent-Based System Design for Programming in Spoken Natural Language
abstract
The emergence of natural language interfaces has led to first attempts of programming in natural language. We present ProNat, a tool for script-like programming in spoken natural language (SNL). Its agent-based architecture unifies deep natural language understanding (NLU) with modular software design. ProNat focuses on the extraction of processing flows and control structures from spoken utterances. For evaluation we have begun to build a speech corpus. First experiments are conducted in the domain of domestic robotics, but ProNat's architecture makes domain acquisition easy. Test results with spoken utterances in ProNat seem promising, but much work has to be done to achieve deep NLU.
Sebastian Weigelt, Walter F. Tichy
ICSE (2)2
2014 Locating Parallelization Potential in Object-Oriented Data Structures
abstract
The free lunch of ever increasing single-processor performance is over. Software engineers have to parallelize software to gain performance improvements. But not every software engineer is a parallel expert and with millions of lines of code that have not been developed with multicore in mind, we have to find ways to assist in identifying parallelization potential. This paper makes three contributions: 1) An empirical study of more than 900,000 lines of code reveals five use cases in the runtime profile of object-oriented data structures that carry parallelization potential. 2) The study also points out frequently used data structures in realistic software in which these use cases can be found. 3) We developed DSspy, an automatic dynamic profiler that locates these use cases and makes recommendations on how to parallelize them. Our evaluation shows that DSspy reduces the search space for parallelization by up to 77% and engineers only need to consider 23% of all data structure instances for parallelization.
Korbinian Molitorisz, Thomas Karcher, Alexander Biele, Walter F. Tichy
IPDPS4
2014 From requirements to UML models and back: how automatic processing of text can support requirements engineering
Mathias Landhäußer, Sven J. Körner, Walter F. Tichy
Softw. Qual. J.3
2014 Library-Independent Data Race Detection
abstract
Data races are a common problem on shared-memory parallel computers, including multicores. Analysis programs called race detectors help find and eliminate them. However, current race detectors are geared for specific concurrency libraries. When programmers use libraries unknown to a given detector, the detector becomes useless or requires extensive reprogramming. We introduce a new synchronization detection mechanism that is independent of concurrency libraries. It dynamically detects synchronization constructs based on a characteristic code pattern. The approach is non-intrusive and applicable to various concurrency libraries. Experimental results confirm that the approach identifies synchronizations and detects data races regardless of the concurrency libraries involved. With this mechanism, race detectors can be written once and need not be adapted to particular libraries.
Ali Jannesari, Walter F. Tichy
IEEE Trans. Parallel Distributed Syst.2
2013 An Evaluation of Data Race Detectors Using Bug Repositories
Jochen Schimmel, Korbinian Molitorisz, Walter F. Tichy
FedCSIS3
2013 Detecting Correlation Violations and Data Races by Inferring Non-deterministic Reads
abstract
With the introduction of multicore systems and parallel programs concurrency bugs have become more common. A notorious class of these bugs are data races that violate correlations between variables. This happens, for example, when the programmer does not update correlated variables atomically, which is needed to maintain their semantic relationship. The detection of such races is challenging because correlations among variables usually escape traditional race detectors which are oblivious of semantic relationships. In this paper, we present an effective method for dynamically identifying correlated variables together with a race detector based on the notion of non-deterministic reads that identifies malicious data races on correlated variables. In eight programs and 190 micro benchmarks, we found more than 100 races that were overlooked by other race detectors. Furthermore, we identified about 300 variable correlations which were violated by these races.
Ali Jannesari, Nico Koprowski, Jochen Schimmel, Felix Wolf 0001, Walter F. Tichy
ICPADS5
2011 Dynamic Data Race Detection for Correlated Variables
Ali Jannesari, Markus Westphal-Furuya, Walter F. Tichy
ICA3PP (1)3
2010 A Language-Based Tuning Mechanism for Task and Pipeline Parallelism
Frank Otto, Christoph A. Schaefer, Matthias Dempe, Walter F. Tichy
Euro-Par (2)4
2010 Multicore software engineering: the next challenge in software engineering
abstract
Due to stagnating clock rates, future increases in processor performance will have to come from parallelism. Inexpensive multicore processors with several cores on a chip have become standard in PCs, laptops, servers, and embedded devices will follow; manycore chips with hundreds of processors on a single chip are predicted. Software engineers are now asked to write parallel applications of all sorts, and need to quickly grasp the relevant aspects of general-purpose parallel programming. This tutorial at ICSE 2010 prepares them for this challenge.
Victor Pankratius, Walter F. Tichy, Peter Hinsbeeck
ICSE (2)2
2010 Engineering parallel applications with tunable architectures
abstract
Current multicore computers differ in many hardware characteristics. Software developers thus hand-tune their parallel programs for a specific platform to achieve the best performance; this is tedious and leads to non-portable code. Although the software architecture also requires adaptation to achieve best performance, it is rarely modified because of the additional implementation effort. The Tunable Architectures approach proposed in this paper automates the architecture adaptation of parallel programs and uses an auto-tuner to find the best-performing software architecture for a particular machine. We introduce a new architecture description language based on parallel patterns and a framework to express architecture variants in a generic way. Several case studies demonstrate significant performance improvements due to architecture tuning and show the applicability of our approach to industrial applications. Software developers are exposed to less parallel programming complexity, thus making the approach attractive for experts as well as inexperienced parallel programmers.
Christoph A. Schaefer, Victor Pankratius, Walter F. Tichy
ICSE (1)3
2010 Identifying ad-hoc synchronization for enhanced race detection
abstract
Parallel programs contain a surprising number of ad-hoc synchronization operations. Ad-hoc synchronization operations are loops that busy-wait on condition variables. Current race detectors produce unnecessary warnings (false positives) when ad-hoc synchronization is used. False positives are also generated when programmers use synchronization primitives that are unknown to race detectors, for instance when programmers switch libraries. These shortcomings may result in an overwhelming number of false positives, dissuading programmers from using race detectors. This paper shows that ad-hoc synchronization operations can be detected automatically. The method requires no user intervention such as annotations and has been implemented in the race detector Helgrind+. Evaluation results on various benchmarks confirm that Helgrind+is aware of all synchronizations in programs, reliably reports true races, and produces few false alarms. A surprising result is that with the new technique, Helgrind+can analyze synchronization libraries, so special knowledge about these libraries is not needed in the detector.
Ali Jannesari, Walter F. Tichy
IPDPS2
2009 XJava: Exploiting Parallelism with Object-Oriented Stream Programming
Frank Otto, Victor Pankratius, Walter F. Tichy
Euro-Par3
2009 Atune-IL: An Instrumentation Language for Auto-tuning Parallel Applications
Christoph A. Schaefer, Victor Pankratius, Walter F. Tichy
Euro-Par3
2009 Helgrind+: An efficient dynamic race detector
abstract
Finding synchronization defects is difficult due to non-deterministic orderings of parallel threads. Current tools for detecting synchronization defects tend to miss many data races or produce an overwhelming number of false alarms. In this paper, we describe Helgrind+, a dynamic race detection tool that incorporates correct handling of condition variables and a combination of the lockset algorithm and happens-before relation. We compare our techniques with Intel Thread Checker and the original Helgrind tool on two substantial benchmark suites. Helgrind+ reduces the number of both false negatives (missed races) and false positives. The additional accuracy incurs almost no performance overhead.
Ali Jannesari, Kaibin Bao, Victor Pankratius, Walter F. Tichy
IPDPS4
2008 Mapping functions and data redistribution for parallel files
Florin Isaila, Walter F. Tichy
J. Supercomput.2
2006 Programming Language Inherent Support for Constrained XML Schema Definition Data Types and OWL DL
abstract
Recently, the Web Ontology Language (OWL) and XML schema definition (XSD) have become ever more important when it comes to conceptualize knowledge and to define programming language independent type systems. However, writing software that operates on ontological data and on XML instance documents still suffers from a lack of compile time support for OWL and XSD. Especially, obeying lexical- and value space constraints that may be imposed on XSD simple data types and preserving the consistency of assertional ontological knowledge is still error prone and laborious. Validating XML instance documents and checking the consistency of ontological knowledge bases according to given XML schema definitions and ontological terminologies, respectively, requires significant amounts of code. This paper presents novel compile time- and code generation features, which were implemented as an extension of the C# programming language. Zhi# provides compile time-and runtime support for constrained XML schema definition simple data types and it guarantees terminological validity for modifications of assertional ontological data
Alexander Paar, Walter F. Tichy
ASE2
2006 Logging kernel events on clusters
Jürgen Reuter, Walter F. Tichy
Future Gener. Comput. Syst.2
2005 On the design and performance of kernel-level TCP connection endpoint migration in cluster-based servers
abstract
The TCP connection endpoint migration allows arbitrary server-side connection endpoint assignments to server nodes in cluster-based servers. The mechanism is client-transparent and supports back-end level request dispatching. It has been implemented in the Linux kernel and can be used as part of a policy-based software architecture for request distribution. We show that the TCP connection end-point migration can be successfully used for request distribution in cluster-based Web servers, both for persistent and non-persistent HTTP connections. We present locality-aware policies using TCP connection migration that outperform Round Robin by factors as high as 2.79 in terms of the average response time for certain classes of requests.
Vlad Olaru, Walter F. Tichy
CCGRID2
2005 Impact of software engineering research on the practice of software configuration management
abstract
Software Configuration Management (SCM) is an important discipline in professional software development and maintenance. The importance of SCM has increased as programs have become larger, more long lasting, and more mission and life critical. This article discusses the evolution of SCM technology from the early days of software development to the present, with a particular emphasis on the impact that university and industrial research has had along the way. Based on an analysis of the publication history and evolution in functionality of the available SCM systems, we trace the critical ideas in the field from their early inception to their eventual maturation in commercially and freely available SCM systems. In doing so, this article creates a detailed record of the critical value of SCM research and illustrates how research results have shaped the functionality of today's SCM systems.
Jacky Estublier, David B. Leblang, André van der Hoek, Reidar Conradi, Geoffrey Clemm, Walter F. Tichy, Darcy Wiborg Weber
ACM Trans. Softw. Eng. Methodol.6
2004 Integrating collective I/O and cooperative caching into the "clusterfile" parallel file system
abstract
This paper presents the integration of two collective I/O techniques into the Clusterfile parallel file system: disk-directed I/O and two-phase I/O. We show that global cooperative cache management improves the collective I/O performance. The solution focuses on integrating disk parallelism with other types of parallelism: memory (by buffering and caching on several nodes), network (by parallel I/O scheduling strategies) and processors (by redistributing the I/O related computation over several nodes). The performance results show considerable throughput increases over ROMIO's extended two-phase I/O.
Florin Isaila, Guido Malpohl, Vlad Olaru, Gabor Szeder, Walter F. Tichy
ICS5
2004 Agile Development: Evaluation and Experience
abstract
Agile methods such as Extreme Programming, Crystal, Scrum, and others have attracted a lot of attention recently. Agile methods stress early and continuous delivery of software, welcome changing requirements, and value early feedback from customers. Agile methods seek to cut out inefficiency, bureaucracy, and anything that adds no value to a software product. Proponents of agile methods often see software specification and documentation as adding no value, which has led observers to conclude that agile development is nothing but unprincipled hacking, perhaps even an anarchic counter-reaction to bureaucratic, heavyweight software processes that demand ever more intermediate deliverables from developers. The purpose of this panel is to discuss under what circumstances agile methods work and don't work. Some of the key practices of agile methods are: scheduling according to feature priorities, incremental delivery of software, feedback from expert users, emphasis on face-to-face communication, pair development, minimalist design combined with refactoring, test-driven development, automated regression testing, daily integration, self-organizing teams, and periodic tuning of the methods. Working software is the primary measure of success. Find out what the latest practical experience with agile methods is and learn about the latest thinking in this area.
Walter F. Tichy
ICSE1
2004 Request Distribution-Aware Caching in Cluster-Based Web Servers
abstract
This work presents a performance analysis of request distribution-aware caching in cluster-based Web servers. We use the Zipf-like request distribution curve to guide static Web document caching. A combination of cooperative caching and exclusive caching provides for a cluster-wide caching system that avoids document replication accross the cluster. We explore the benefits of cooperative caching algorithms that use request distribution information to steer their behavior over general purpose cooperative caching algorithms. Exclusive caching exercises a fine-grained control over replication of data blocks across the cluster. The performance of the system has been assessed by using the WebStone benchmark. Our cluster-based server employs Linux kernel-level implementations of cooperative caching and exclusive caching. Current results show that request distribution-aware caching outperforms general-purpose caching algorithms, makes up for the performance loss of non-replicated data solutions and compares favorably to fully-replicated solutions.
Vlad Olaru, Walter F. Tichy
NCA2
2004 A Controlled Experiment Comparing the Maintainability of Programs Designed with and without Design Patterns-A Replication in a Real Programming Environment
Marek Vokác, Walter F. Tichy, Dag I. K. Sjøberg, Erik Arisholm, Magne Aldrin
Empir. Softw. Eng.2
2004 Guest Editors' Introduction: 2003 International Conference on Software Engineering
Laura K. Dillon, Walter F. Tichy
IEEE Trans. Software Eng.2
2003 CARDs: Cluster-Aware Remote Disks
abstract
This paper presents Cluster-Aware Remote Disks (CARDs), a Single System I/O architecture for cluster computing. CARDs virtualize accesses to remote cluster disks over a System Area Network. Their operation is driven by cooperative caching policies that implement a joint management of the cluster caches. All the CARDS of a given disk employ a common policy, independently of other CARD sets. CARD drivers have been implemented as Linux kernel modules which can flexibly accommodate various cooperative caching algorithms. We designed and implemented a decentralized policy called Home-based Serverless Cooperative Caching (HSCC). HSCC showed cache hit ratios over 50% for workloads that go beyond the limit of the global cache. The best speedup of a CARD over a remote disk interface was 1.54.
Vlad Olaru, Walter F. Tichy
CCGRID2
2003 View I/O: Improving the Performance of Non-Contiguous I/O
abstract
This paper presents view I/O, a non-contiguous parallel I/O technique. We show that the linear file model may be an unsuitable abstraction for non-contiguous I/O optimizations. Additionally, the poor cooperation between a file system and an I/O library like MPI-IO may drastically affect the performance. View I/O has detailed knowledge about parallel structure of a file and about the potential access pattern and exploits it in order to improve performance. The access overhead is reduced by using a strategy "declare once, use several times" and by file off-set compaction. We compare and contrast view I/O with other non-contiguous I/O methods. Our measurements on a cluster of computers indicate a significant performance improvement over other approaches.
Florin Isaila, Walter F. Tichy
CLUSTER2
2003 Panel: Empirical Validation-What, Why, When, and How
Robert J. Walker, Lionel C. Briand, David Notkin, Carolyn B. Seaman, Walter F. Tichy
ICSE5
2003 Renaming Detection
Guido Malpohl, James J. Hunt, Walter F. Tichy
Autom. Softw. Eng.3
2003 Clusterfile: a flexible physical layout parallel file system
abstract
Abstract This paper presents Clusterfile, a parallel file system that provides parallel file access on a cluster of computers. We introduce a file partitioning model that has been used in the design of Clusterfile. The model uses a data representation that is optimized for multidimensional array partitioning while allowing arbitrary partitions. The paper shows how the file model can be employed for file partitioning into both physical subfiles and logical views. We also present how the conversion between two partitions of the same file is implemented using a general memory redistribution algorithm. We show how we use the algorithm to optimize non‐contiguous read and write operations. The experimental results include performance comparisons with the Parallel Virtual File System (PVFS) and an MPI‐IO implementation for PVFS. Copyright © 2003 John Wiley & Sons, Ltd.
Florin Isaila, Walter F. Tichy
Concurr. Comput. Pract. Exp.2
2003 A controlled experiment on inheritance depth as a cost factor for code maintenance
Lutz Prechelt, Barbara Unger 0001, Michael Philippsen, Walter F. Tichy
J. Syst. Softw.4
2003 Comments on "Formal Methods Application: An Empirical Tale of Software Development"
abstract
We comment on the experimental design and the result of the paper mentioned in the title. Our purpose is to show interested readers examples of what can go wrong with experiments in software research and how to avoid the attending problems.
Daniel M. Berry, Walter F. Tichy
IEEE Trans. Software Eng.2
2002 Impact of the research community for the field of software configuration management
abstract
Software configuration management (SCM) is an important discipline in professional software development and maintenance. The importance of SCM has increased as programs have become larger, more complex, and more mission/life-critical. This paper presents a brief summary of a full report that discusses the evolution of SCM technology from the early days of software development to present, and the specific impact university and industrial research has had along the way.
Jacky Estublier, David B. Leblang, Geoffrey Clemm, Reidar Conradi, André van der Hoek, Walter F. Tichy, Darcy Wiborg Weber
ICSE6
2002 Extensible Language-Aware Merging
abstract
Parallel development has become standard practice in software development and maintenance. Though almost every revision control and configuration management system provides some form of merging for combining changes made in parallel, these mechanisms often yield unsatisfactory results. The authors present a new merging algorithm, that uses a fast differencing algorithm and renaming analysis to provide better merge results. The system is language aware, but not language dependent and does not require a special editor so it can be easily integrated in current development environments.
James J. Hunt, Walter F. Tichy
ICSM2
2002 Two Controlled Experiments Assessing the Usefulness of Design Pattern Documentation in Program Maintenance
abstract
Using design patterns is claimed to improve programmer productivity and software quality. Such improvements may manifest both at construction time (in faster and better program design) and at maintenance time (in faster and more accurate program comprehension). The paper focuses on the maintenance context and reports on experimental tests of the following question: does it help the maintainer if the design patterns in the program code are documented explicitly (using source code comments) compared to a well-commented program without explicit reference to design patterns? Subjects performed maintenance tasks on two programs ranging from 360 to 560 LOC including comments. The experiments tested whether pattern comment lines (PCL) help during maintenance if patterns are relevant and sufficient program comments are already present. This question is a challenge for the experimental methodology: A setup leading to relevant results is quite difficult to find. We discuss these issues in detail and suggest a general approach to such situations. A conservative analysis of the results supports the hypothesis that pattern-relevant maintenance tasks were completed faster or with fewer errors if redundant design pattern information was provided. The article provides the first controlled experiment results on design pattern usage and it presents a solution approach to an important class of experiment design problems for experiments regarding documentation.
Lutz Prechelt, Barbara Unger 0001, Michael Philippsen, Walter F. Tichy
IEEE Trans. Software Eng.4
2001 Clusterfile: A Flexible Physical Layout Parallel File System
abstract
This paper presents Clusterfile, a parallel file system that provides parallel file access on a cluster of computers. Existing parallel file systems offer little control over matching the I/O access patterns and file data layout. Without this matching the applications may face the following problems: contention at I/O nodes, fragmentation of file data, false sharing, small network messages, high overhead of scattering/gathering the data. Clusterfile addresses some of these inefficiencies. Parallel applications can physically partition a file in arbitrary patterns. They can also set arbitrary views on a file. Views hide the parallel structure of the file and ease the programmer's burden of computing complex access indices. The intersections between views and layouts are computed by a memory redistribution algorithm. Read and write operations are optimized by pre-computing the direct mapping between access patterns and disks. Clusterfile uses the same data representation for file layouts, access patterns, and the mappings between each other.
Florin Isaila, Walter F. Tichy
CLUSTER2
2001 Case Study: Extreme Programming in a University Environment
abstract
Extreme programming (XP) is a new and controversial software process for small teams. A practical training course at the University of Karlsruhe led to the following observations about the key practices of XP. First, it is unclear how to reap the potential benefits of pair programming, although pair programming produces high-quality code. Second, designing in small increments appears to be problematic but ensures rapid feedback about the code. Third, while automated testing is helpful, writing test cases before coding is a challenge. Last, it is difficult to implement XP without coaching. This paper also provides some guidelines for those starting out with XP.
Matthias M. Müller 0002, Walter F. Tichy
ICSE2
2001 A Controlled Experiment in Maintenance Comparing Design Patterns to Simpler Solutions
abstract
Software design patterns package proven solutions to recurring design problems in a form that simplifies reuse. We are seeking empirical evidence whether using design patterns is beneficial. In particular, one may prefer using a design pattern even if the actual design problem is simpler than that solved by the pattern, i.e., if not all of the functionality offered by the pattern is actually required. Our experiment investigates software maintenance scenarios that employ various design patterns and compares designs with patterns to simpler alternatives. The subjects were professional software engineers. In most of our nine maintenance tasks, we found positive effects from using a design pattern: either its inherent additional flexibility was achieved without requiring more maintenance time or maintenance time was reduced compared to the simpler alternative. In a few cases, we found negative effects: the alternative solution was less error-prone or required less maintenance time. Overall, we conclude that, unless there is a clear reason to prefer the simpler solution, it is probably wise to choose the flexibility provided by the design pattern because unexpected new requirements often appear. We identify several questions for future empirical research.
Lutz Prechelt, Barbara Unger 0001, Walter F. Tichy, Peter Brössler, Lawrence G. Votta
IEEE Trans. Software Eng.3
2000 Renaming Detection
abstract
Finding changed identifiers in programs is important for program comparison and merging. Comparing two versions of a program is complicated if renaming has occurred. Textual merging is highly unreliable if, in one version, identifiers were renamed, while in the other version, code using the old identifiers was added or modified. A tool that automatically detects renamed identifiers between pairs of program modules is presented. The detector is part of a suite of intelligent differencing and merging programs that exploit the static semantics of programming languages. No special editor is needed for tracking changes. The core of the renaming detector is language independent. The detector works with multiple file pairs, taking into account renamings that affect multiple files. Renaming detectors for Java and Scheme have been implemented. A case study is presented that demonstrates proof of concept. With renaming detection, a higher quality of program comparison and merging is achievable.
Guido Malpohl, James J. Hunt, Walter F. Tichy
ASE3
2000 Hints for Reviewing Empirical Work in Software Engineering
Walter F. Tichy
Empir. Softw. Eng.1
1998 Prefetching on the Cray-T3E
abstract
In many parallel applications, network latency causes a dramatic loss in processor utilization.This paper examines software controlled access pipelining (SCAP) as a technique for hiding network latency.An analytic model of SCAP describes basic operation techniques and predicts performance.Results are validated with benchmarks on the Cray-T3E.They show vectorized version of SCAP (V-SCAP) to be at least as fast as the highly optimized shared memory system functions.SCAP on the Cray-T3E improves performance compared to a blocking execution between 35% and 900%, while V-SCAP performs better with a factor of 2.1 to 62. SCAP achieves a performance speed-up against HPF between 48% to a factor of 9.2 dependent on the data access pattern.It also performs well on irregular access patterns which are not, supported by the standard library.
Matthias M. Müller 0002, Thomas M. Warschko, Walter F. Tichy
International Conference on Supercomputing3
1998 The ParaStation Project: Using Workstations as Building Blocks for Parallel Computing
Thomas M. Warschko, Joachim M. Blum, Walter F. Tichy
Inf. Sci.3
1998 ParaStation: Efficient parallel computing by clustering workstations: Design and evaluation
Thomas M. Warschko, Joachim M. Blum, Walter F. Tichy
J. Syst. Archit.3
1998 Addendum to "Delta Algorithms: An Empirical Analysis"
abstract
The authors supply machine configurations for experiments reported in “Delta Algorithms: An Empirical Analysis,” by Hunt et al. (ACM Trans. Softw. Eng. Methodol. 7, 2 (Apr. 1998), pp. 192-214).
James J. Hunt, Walter F. Tichy
ACM Trans. Softw. Eng. Methodol.2
1998 Delta Algorithms: An Empirical Analysis
abstract
Delta algorithms compress data by encoding one file in terms of another. This type of compression is useful in a number of situations: strong multiple versions of data, displaying differences, merging changes, distributing updates, storing backups, transmitting video sequences, and others. This article studies the performance parameters of several delta algorithms, using a benchmark of over 1,300 pairs of files taken from two successive releases of GNU software. Results indicate that modern delta compression algorithms based on Ziv-Lempel techniques significantly outperform diff , a popular but older delta compressor, in terms of compression ratio. The modern compressors also correlate better with the actual difference between files without sacrificing performance.
James J. Hunt, Kiem-Phong Vo, Walter F. Tichy
ACM Trans. Softw. Eng. Methodol.3
1998 A Controlled Experiment to Assess the Benefits of Procedure Argument Type Checking
abstract
Type checking is considered an important mechanism for detecting programming errors, especially interface errors. This report describes an experiment to assess the defect-detection capabilities of static, intermodule type checking. The experiment uses ANSI C and Kernighan & Ritchie (K&R) C. The relevant difference is that the ANSI C compiler checks module interfaces (i.e., the parameter lists calls to external functions), whereas K&R C does not. The experiment employs a counterbalanced design in which each of the 40 subjects, most of them CS PhD students, writes two nontrivial programs that interface with a complex library (Motif). Each subject writes one program in ANSI C and one in K&R C. The input to each compiler run is saved and manually analyzed for defects. Results indicate that delivered ANSI C programs contain significantly fewer interface defects than delivered K&R C programs. Furthermore, after subjects have gained some familiarity with the interface they are using, ANSI C programmers remove defects faster and are more productive (measured in both delivery time and functionality implemented).
Lutz Prechelt, Walter F. Tichy
IEEE Trans. Software Eng.2
1995 Experimental evaluation in computer science: A quantitative study
Walter F. Tichy, Paul Lukowicz, Lutz Prechelt, Ernst A. Heinz
J. Syst. Softw.1
1995 Authors' Response
abstract
article Free Access Share on Authors' response Authors: Walter Tichy Univ. of Karlsruhe, Karlsruche, Germany Univ. of Karlsruhe, Karlsruche, GermanyView Profile , Rolf Adams Univ. of Karlsruhe, Karlsruche, Germany Univ. of Karlsruhe, Karlsruche, GermanyView Profile , Annette Weinert Univ. of Karlsruhe, Karlsruche, Germany Univ. of Karlsruhe, Karlsruche, GermanyView Profile Authors Info & Claims ACM Transactions on Software Engineering and MethodologyVolume 4Issue 2April 1995 pp 217–219https://doi.org/10.1145/210134.210438Published:01 April 1995Publication History 0citation277DownloadsMetricsTotal Citations0Total Downloads277Last 12 Months2Last 6 weeks1 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF
Rolf Adams, Walter F. Tichy, Annette Weinert
ACM Trans. Softw. Eng. Methodol.2
1994 The Cost of Selective Recompilation and Environment Processing
abstract
When a single software module in a large system is modified, a potentially large number of other modules may have to be recompiled. By reducing both the number of compilations and the amount of input processed by each compilation run, the turnaround time after changes can be reduced significantly. Potential time savings are measured in a medium-sized, industrial software project over a three-year period. The results indicate that a large number of compilations caused by traditional compilation unit dependencies may be redundant. On the available data, a mechanism that compares compiler output saves about 25 percent, smart recompilation saves 50 percent, and smartest recompilation may save up to 80 percent of compilation work. Furthermore, all compilation methods other than smartest recompilation process large amounts of unused environment data. In the project analyzed, the average environment symbols are actually used. Reading only the actually used symbols would reduce total compiler input by about 50 percent. Combining smart recompilation with a reduction in environment processing might double to triple perceived compilation speed and double linker speed, without sacrificing static type safety.
Rolf Adams, Walter F. Tichy, Annette Weinert
ACM Trans. Softw. Eng. Methodol.2
1992 Programming-in-the-Large: Past, Present, and Future
abstract
Article Free Access Share on Programming-in-the-large: past, present, and future Author: Walter F. Tichy View Profile Authors Info & Claims ICSE '92: Proceedings of the 14th international conference on Software engineeringJune 1992 Pages 362–367https://doi.org/10.1145/143062.143153Published:01 June 1992Publication History 10citation383DownloadsMetricsTotal Citations10Total Downloads383Last 12 Months16Last 6 weeks2 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF
Walter F. Tichy
ICSE1
1990 EDGE: An Extendible Graph Editor
Frances Paulisch, Walter F. Tichy
Softw. Pract. Exp.2
1989 NLH/E: A Natural Language Help System
abstract
A natural language help (NLH) system answers questions that are entered as typed, natural language sentences.Compared to traditional keyword lookup, natural language input allows greater flexibility and precision.This report describes such a help system, NLH/E, which answers questions formulated in English.Currently, it can process questions about a substantial domain: over 130 functions described in five chapters of the Common Lisp manual.NLH/E is built with a novel caseframe parser that operates with a thesaurus, case inheritance, and noun/verb phrase unifica tion.These features reduce the size of the grammer considerably, making it feasible to build realistic NLH systems.Statistical data about the grammar are included.NLH is a first step towards a reusability expert, i.e., a program that helps a client find reusable software components by engaging in a natural language dialogue.
Walter F. Tichy, Rolf Adams, Lars Holter
ICSE1
1988 Tichy's Response to R. W. Schwanke and G. E. Kaiser's "Smarter Recompilation"
abstract
Schwanke and Kaiser's extension of smart recompilation is an intriguing idea. Their mechanism aims at delaying recompilation work by permitting “harmless” compilation inconsistencies to remain after changes. Full consistency can be reestablished at a later time, after the change has been tested in a subpart of the system. If the change was inadequate, then no needless compilation work was performed. This strategy is used frequently in practice, by exploiting loopholes in system generation tools. Schwanke and Kaiser's mechanism is novel in that it makes this practice safe. The compiler is aware of the inconsistencies, and will not overlook dangerous ones. Furthermore, it can help reestablish full consistency once a change is deemed acceptable. Smarter recompilation defines a harmless inconsistency as follows. If a declaration is changed, this action is treated as introducing a new version of the declaration. The coexistence of both the old and new versions in the same configuration is a harmless inconsistency as long as the uses of the two versions do not conflict. The system must be separable into two partitions, one that uses the old version and the other the new one, such that the interface between the two depends on neither. Since the inconsistent declarations do not cross the interface, the two partitions may even communicate with each other. Of course, inconsistencies not captured by the type system cannot be treated in this way. Schwanke and Kaiser's note leaves a few minor questions unanswered. For instance, a new or changed declaration might cause a redeclaration or overloading error that can only be detected by recompilation. Is this potential problem left undetected until full consistency is desired, or is it checked immediately? If a declaration is deleted that is still in use, is the deletion treated as an error or as a delayed deletion that will take effect after the last use disappears? If the old and new versions of a procedure operate on the same data structure, is it always desirable to let both versions coexist, or can the programmer indicate that the old version should be eliminated before the next program execution? Perhaps a future paper about an implementation will clarify these points. Smarter recompilation also opens the door for more powerful programming tools. For example, since the mechanism maintains cross-reference information, a tool like Masterscope [1] could be built relatively easily. The tool would have the advantage that cross-reference information is immediately available once a module has been compiled. Only little additional data would be needed to classify the uses of symbols. The information could also be exploited by a Maintainer's Assistant. This program helps with reestablishing consistency after changes by suggesting corrections of the affected program parts. For example, it could attempt to make call sites of changed procedures consistent with their headers, update operations on changed record fields, or perform some simple program transformations in response to data structure changes.
Walter F. Tichy
ACM Trans. Program. Lang. Syst.1
1987 Performance Analysis of File Replication Schemes in Distributed Systems
abstract
In distributed systems the efficiency of the network file system is a key performance issue. Replication of files and directories can enhance file system efficiency, but the choice of replication techniques is crucial. This paper studies a number of replication techniques, including remote access, prereplication, weighted voting, and two demand replication schemes: polling and staling. It develops a Markov chain model, which is capable of characterizing properties of file access sequences, including access locality and access bias. The paper compares the replication techniques under three different network file system architectures. The results show that, under reasonable assumptions, demand replication requires fewer file transfers than remote access, especially for files that have a high degree of access locality. Among the demand replication schemes, staling requires fewer auxiliary messages than polling.
Zuwang Ruan, Walter F. Tichy
SIGMETRICS2
1986 Smart Recompilation
abstract
With current compiler technology, changing a single line in a large software system may trigger massive recompilations. If the change occurs in a file with shared declarations, all compilation units depending upon that file must be recompiled to assure consistency. However, many of those recompilations may be redundant, because the change may affect only a small fraction of the overall system. Smart recompilation is a method for reducing the set of modules that must be recompiled after a change. The method determines whether recompilation is necessary by isolating the differences among program modules and analyzing the effect of changes. The method is applicable to languages with and without overloading. A prototype demonstrates that the method is efficient and can be added with modest effort to existing compilers.
Walter F. Tichy
ACM Trans. Program. Lang. Syst.1
1985 Smart Recompilation
abstract
With current compiler technology, changing a single line in a large software system may trigger massive recompilations. If the change occurs in a file with shared definitions, all compilation units depending upon that file must be recompiled to assure consistency. However, many of those recompilations may be redundant, because the change may actually affect only a small fraction of the overall system.
Walter F. Tichy, Mark C. Baker
POPL1
1985 RCS - A System for Version Control
abstract
Abstract An important problem in program development and maintenance is version control, i.e. the task of keeping a software system consisting of many versions and configurations well organized. The Revision Control System (RCS) is a software tool that assists with that task. RCS manages revisions of text documents, in particular source programs, documentation, and test data. It automates the storing, retrieval, logging and identification of revisions, and it provides selection mechanisms for composing configurations. This paper introduces basic version control concepts and discusses the practice of version control using RCS. For conserving space, RCS stores deltas, i.e. differences between successive revisions. Several delta storage methods are discussed. Usage statistics show that RCS's delta method is space and time efficient. The paper concludes with a detailed survey of version control tools.
Walter F. Tichy
Softw. Pract. Exp.1
1984 The String-to-String Correction Problem with Block Moves
abstract
The string-to-string correction problem is to find a minimal sequence of edit operations for changing a given string into another given string.Extant algorithms compute a longest common subsequence (LCS) of the two strings and then regard the characters not included in the LCS as the differences.However, an LCS does not necessarily include all possible matches, and therefore does not produce the shortest edit sequence.An algorithm that produces the shortest edit sequence transforming one string into another is presented.The algorithm is optimal in the sense that it generates a minimal covering set of common substrings of one string with respect to another.Two improvements of the basic algorithm are developed.The first improvement performs well on strings with few replicated symbols.The second improvement runs in time and space linear to the size of the input.Efficient algorithms for regenerating a string from an edit sequence are also presented.
Walter F. Tichy
ACM Trans. Comput. Syst.1
1983 Stork: An Experimental Migrating File System for Computer Networks
Jehan-François Pâris, Walter F. Tichy
INFOCOM2
1982 Design, Implementation, and Evaluation of a Revision Control System
Walter F. Tichy
ICSE1
1979 Software Development Based on Module Interconnection
Walter F. Tichy
ICSE1