scispace - formally typeset
Search or ask a question
Author

Will Tracz

Other affiliations: Stanford University
Bio: Will Tracz is an academic researcher from IBM. The author has contributed to research in topics: Software construction & Software. The author has an hindex of 16, co-authored 40 publications receiving 1047 citations. Previous affiliations of Will Tracz include Stanford University.

Papers
More filters
Journal ArticleDOI
TL;DR: A Domain-Specific Software Architecture has been defined as an assemblage of software components specialized for a particular type of task, generalized for effective use across that domain, composed in a standardized structure effective for building successful applications.
Abstract: A Domain-Specific Software Architecture (DSSA) has been defined as:• "an assemblage of software components, specialized for a particular type of task (domain), generalized for effective use across that domain, composed in a standardized structure (topology) effective for building successful applications" [Hay94] or, alternately• "a context for patterns of problem elements, solution elements, and situations that define mappings between them [Hid90].The following small example illustrates these definitions as well as provides the reader with some insight into the types of processes and tools needed to support the creation and use of a DSSA.

145 citations

Journal ArticleDOI
Will Tracz1
TL;DR: This paper analyzes nine commonly believed software reuse myths and reveals certain technical, organizational, and psychological software engineering research issues and trends.
Abstract: Reusing software is a simple, straightforward concept that has appealed to programmers since the first stored-program computer was created. Unfortunately, software reuse has not evolved beyond its most primitive forms of subroutine libraries and brute force program modification. This paper analyzes nine commonly believed software reuse myths. These myths reveal certain technical, organizational, and psychological software engineering research issues and trends.

113 citations

Book
Will Tracz1
03 Jan 1988

82 citations

Journal ArticleDOI
TL;DR: This paper provides a list of "Frequently Asked Questions" (FAQ) about the Domain-Specific Software Architecture Project (DSSA).
Abstract: The Advanced Research Projects Agency's Domain-Specific Software Architecture (DSSA) Project has been the focal point of much interest in the software engineering community. This paper provides a list of "Frequently Asked Questions" (FAQ)1. For a more thorough treatment of DSSA, the reader should consult "Architecture-Based Acquisition and Development of Software: Guidelines and Recommendations from the ARPA Domain-Specific Software Architecture (DSSA) Program by Dr. Frederick Hayes-Roth (see address below).

77 citations

Proceedings ArticleDOI
Will Tracz1
24 Mar 1993
TL;DR: The author describes key elements of the language and presents examples illustrating its applicability in support of a megaprogramming software development paradigm.
Abstract: LILEANNA, a language for formally specifying and generating Ada packages, extends Ada by introducing two entities, theories and views, and enhancing a third, package specifications. A LILEANNA package, with semantics specified either formally or informally, represents a template for actual Ada package specifications. It is used as the common parent for families of implementations and for version control. A theory is a higher-level abstraction, a concept (or a context), that describes a module's syntactical and semantic interface. A view is a mapping between types, operations, and exceptions. The author describes key elements of the language and presents examples illustrating its applicability in support of a megaprogramming software development paradigm. >

60 citations


Cited by
More filters
Journal ArticleDOI
TL;DR: A definition and a classification framework for architecture description languages are presented and the utility of the definition is demonstrated by using it to differentiate ADLs from other modeling notations, enabling us, in the process, to identify key properties ofADLs.
Abstract: Software architectures shift the focus of developers from lines-of-code to coarser-grained architectural elements and their overall interconnection structure. Architecture description languages (ADLs) have been proposed as modeling notations to support architecture-based development. There is, however, little consensus in the research community on what is an ADL, what aspects of an architecture should be modeled in an ADL, and which of several possible ADLs is best suited for a particular problem. Furthermore, the distinction is rarely made between ADLs on one hand and formal specification, module interconnection, simulation and programming languages on the other. This paper attempts to provide an answer to these questions. It motivates and presents a definition and a classification framework for ADLs. The utility of the definition is demonstrated by using it to differentiate ADLs from other modeling notations. The framework is used to classify and compare several existing ADLs, enabling us, in the process, to identify key properties of ADLs. The comparison highlights areas where existing ADLs provide extensive support and those in which they are deficient, suggesting a research agenda for the future.

2,148 citations

Journal ArticleDOI
TL;DR: In this article, the authors identify patterns in the decision, analysis, design, and implementation phases of DSL development and discuss domain analysis tools and language development systems that may help to speed up DSL development.
Abstract: Domain-specific languages (DSLs) are languages tailored to a specific application domain. They offer substantial gains in expressiveness and ease of use compared with general-purpose programming languages in their domain of application. DSL development is hard, requiring both domain knowledge and language development expertise. Few people have both. Not surprisingly, the decision to develop a DSL is often postponed indefinitely, if considered at all, and most DSLs never get beyond the application library stage.Although many articles have been written on the development of particular DSLs, there is very limited literature on DSL development methodologies and many questions remain regarding when and how to develop a DSL. To aid the DSL developer, we identify patterns in the decision, analysis, design, and implementation phases of DSL development. Our patterns improve and extend earlier work on DSL design patterns. We also discuss domain analysis tools and language development systems that may help to speed up DSL development. Finally, we present a number of open problems.

1,778 citations

Journal ArticleDOI
TL;DR: This paper surveys the different approaches to software reuse found in the research literature and uses a taxonomy to describe and compare the different approach and make generalizations about the field of software reuse.
Abstract: Software reuse is the process of creating software systems from existing software rather than building software systems from scratch. This simple yet powerful vision was introduced in 1968. Software reuse has, however, failed to become a standard software engineering practice. In an attempt to understand why, researchers have renewed their interest in software reuse and in the obstacles to implementing it.This paper surveys the different approaches to software reuse found in the research literature. It uses a taxonomy to describe and compare the different approaches and make generalizations about the field of software reuse. The taxonomy characterizes each reuse approach in terms of its reusable artifacts and the way these artifacts are abstracted, selected, specialized, and integrated.Abstraction plays a central role in software reuse. Concise and expressive abstractions are essential if software artifacts are to be effectively reused. The effectiveness of a reuse technique can be evaluated in terms of cognitive distance—an intuitive gauge of the intellectual effort required to use the technique. Cognitive distance is reduced in two ways: (1) Higher level abstractions in a reuse technique reduce the effort required to go from the initial concept of a software system to representations in the reuse technique, and (2) automation reduces the effort required to go from abstractions in a reuse technique to an executable implementation.This survey will help answer the following questions: What is software reuse? Why reuse software? What are the different approaches to reusing software? How effective are the different approaches? What is required to implement a software reuse technology? Why is software reuse difficult? What are the open areas for research in software reuse?

1,592 citations

Journal ArticleDOI
TL;DR: The literature available on the topic of domain-specific languages as used for the construction and maintenance of software systems is surveyed, and a selection of 75 key publications in the area is listed.
Abstract: We survey the literature available on the topic of domain-specific languages as used for the construction and maintenance of software systems. We list a selection of 75 key publications in the area, and provide a summary for each of the papers. Moreover, we discuss terminology, risks and benefits, example domain-specific languages, design methodologies, and implementation techniques.

1,538 citations