
William B Frakes- Ph.D. Information Transfer
- IEEE TCSE committee on software reuse
William B Frakes
- Ph.D. Information Transfer
- IEEE TCSE committee on software reuse
About
169
Publications
41,583
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
5,676
Citations
Introduction
Bill Frakes chairs the IEEE TCSE committee on software reuse. He was an associate editor of IEEE Transactions on Software Engineering and editor of ACM SIGIR Forum. He has a B.L.S. from the University of Louisville, an M.S. from the University of Illinois at Urbana-Champaign, and an M.S. and Ph.D. from Syracuse University.
Current institution
IEEE TCSE committee on software reuse
Additional affiliations
Education
January 1980 - August 1982
August 1979 - August 1982
August 1978 - August 1979
Publications
Publications (169)
A study is reported on the consistency of the domain vocabularies created and the source documents selected by domain analysts for domain analysis using DARE (Domain Analysis and Reuse Environment). Consistency was analyzed by measuring the pairwise overlap scores between the domain analysts. The overlap scores of the vocabularies and the source do...
This paper describes an exploratory study of how software profilers can be used to help design, evaluate, and index reusable components. Testing of a program using a sampling profiler, gprof, showed that longer execution times are needed to obtain reliable measures of execution speed. We discuss how to use
profiling data for indexing reusable compo...
Though many reuse design principles have been proposed, there is no generally accepted list which are independent of programming language and domain. This paper provides a generic list of reuse design principles for component based software development based on a preliminary analysis of the literature of software reuse and reuse design over the pas...
Fourteen word frequency metrics were tested to evaluate their effectiveness in identifying vocabulary in a domain. Fifteen domain-engineering projects were examined to measure how closely the vocabularies selected by the fourteen word frequency metrics were to the vocabularies produced by domain engineers. Stemming and stopword removal were also ev...
In this presentation I will discuss the impact of software reuse and domain engineering on software practice and industry and discuss future directions.
We present a descriptive and exploratory study of factors that can affect the
success of COTS-based systems. Based on a review of the literature and industrial
experience, the choice of life cycle model and the amount of glueware required were
hypothesized as the main factors in predicting project success. In this study we examined
the relationship...
A study is reported on the relationship of complexity and reuse design principles with the reusability of code components. Reusability of a component is measured as the ease of reuse as perceived by the subjects reusing the component. Thirty-four subjects participated in the study with each subject reusing 5 components, resulting in 170 cases of re...
Mutation testing involves systematically generating and
introducing faults into an application to improve testing. A quasiexperimental
study is reported comparing the fault-detection
capabilities of real-world database application test suites to those
of an SQL vendor test suite (NIST SQL) based on mutation
scores. The higher the mutation score the...
This tutorial addresses issues and current practices regarding the important topic of the interaction of software reuse and
safety. This topic has become very relevant to modern embedded systems in domains from aerospace to automotive, as new architectures
are introduced that encourage the development and use of reusable components. The two section...
This paper presents the results of a survey of users of services of a computer support-based cross discipline research consortium. Usage statistics of the consortium resources is also presented. An ishikawa diagram and analysis for improving the services is also provided. The major challenge of the consortium is improving the visibility of its serv...
There is one domain in which software reuse is looked upon with suspicion: the domain of safety critical systems. This workshop
(http://www.favaro.net/john/RESAFE2011/) addresses the related issues, building upon the results of previous workshops. Updates to current activities in a number
of safety-critical domains are discussed, ranging from space...
We propose and analyze spillover-partitioning call admission control (CAC) for servicing multiple service classes in mobile
wireless networks for revenue optimization with quality of service (QoS) guarantees. We evaluate the performance of spillover-partitioning
CAC in terms of execution time and optimal revenue obtainable by comparing it with exis...
This paper describes the use of web based and freeware tools for a cross-discipline research consortium to support graduate education. The use of WordPress and Simple Machine Forums as the main environment to provide web support is discussed, as are the use of statistics tools such as R and SAS-JMP. Usage data for these tools are provided
In this study we used domain engineering as a method for gaining deeper formal understanding of a class of algorithms. Specifically, we analyzed 6 stemming algorithms from 4 different sub-domains of the conflation algorithms domain and developed formal domain models and generators based on these models. The application generator produces source cod...
DAREonline is a web-based tool for domain engineering. It supports the DARE framework in a centralized platform-independent environment. Our approach leverages concepts of Service-Oriented Architecture (SOA) to aggregate data and functionality from diverse sources that can be helpful in domain engineering. In this paper, we describe DAREonline’s ar...
In this demo we will show various implementations of RL (reuse level) and RF (reuse frequency) tools for measuring the
amount of reuse in software. We will also discuss how these metrics have been used in several studies.
This paper describes a repeatable method for reengineering a procedural system to an object-oriented system. The method uses coupling metrics to assist a domain expert in identifying candidate objects. An application of the method to a simple program is given, and the effectiveness of the various coupling metrics are discussed. We perform a detaile...
Reusable software is an important tool in improving the productivity of software development and the quality of the software that is produced. A number of metrics for measuring software reuse have been proposed, along with frameworks and tools for gathering these metrics. This paper extends one such framework, the Simple API for Object Oriented Cod...
This study empirically compared two methods for reengineering a procedural system to an object-oriented system. Our hypothesis
was that it is possible to support this process with a repeatable method. The first method was manual and was used as a baseline
for evaluating the second method, which was repeatable and based on analysis of procedure coup...
This paper introduces the Simple API for Object-Oriented Code Metrics or SAM. SAM has two distinct advantages over current application generators for metrics. First, SAM can collect a much larger set of metrics since it maintains context during metrics analysis. Second, SAM is completely language independent since it specifies the types of events a...
We propose and analyze spillover-partitioning call admission control (CAC) for servicing multiple service classes in mobile wireless networks for revenue optimization with quality of service (QoS) guarantees. We evaluate the performance of spillover-partitioning CAC in terms of execution speed and optimal revenue obtainable by comparing it with exi...
This paper describes a case study in reuse and reengineering. A C based metrics system was re-engineered to C++ using standard reusable components and a design pattern.
This paper presents a summary and analysis of data gathered from thirteen domain engineering projects, participant surveys, and demographic information. Taking a failure modes approach, project data is compared to an ideal model of the DARE methodology, revealing valuable insights into points of failure in the domain engineering process. This study...
Reliability modeling and quantitative reliability prediction for all but the simplest system architectures demands intensive computer support for the numerical computations required. Many commercial and academic reliability modeling software packages provide support for the Markov-chain state diagram system reliability model. Other system reliabili...
This study evaluates a method for reengineering a procedural system to an object-oriented system. Relationships between functions in the procedural system were identified using various coupling metrics. While the coupling metrics used for analysis were helpful in identifying candidate objects, domain expert analysis of the candidate objects was req...
Key to planning and managing a systematic reuse program is the formulation and evaluation of a competitive strategy, and subsequent monitoring and measurement of progress against the goals elucidated by that strategy.
The practical issues encountered in the creation, distribution and use of a reusable component collection of C function components in the domain of information retrieval (IR) are discussed. Software reuse is the use of existing software knowledge or artifacts to build new software. The reuse is primarily vertical which means domain focused, some of...
Abstract. This paper examines the question of whether increased software reuse can improve software reliability. One conclusion is that the assumed positive relationship between them depends on three different hypotheses, which this paper clarifies and makes testable. The intuitive concept of reusable and equivalent one-use components is clarified...
This study evaluated the strength of, and similarity among, four affix removal stemming algorithms. Strength and similarity were evaluated in different ways, including new metrics based on the Hamming distance measure. Data was collected on stemmer outputs for a list of 49,656 English words derived from the UNIX spelling dictionary and the Moby
cor...
This paper discusses the configuration management of reusable software, and proposes an architecture that incorporates configuration management with a software library.
The relationship between amount of reuse, quality, and productivity was studied using four sets of C and C++ modules collected from industrial organizations. The data domains are: text retrieval, user interface, distributed repository, medical records. Reuse in this paper is ad hoc, black box, compositional code reuse. The data generally show that...
This paper presents methods for helping users understand reusable software assets. We present a model and software architecture for visualizing reusable software assets. We described visualizations techniques based on design principles for helping the user understand and compare reusable components.
Software reuse is the use of existing software knowledge or
artifacts to build new software. There are many types of software reuse
(W. Frakes and C. Terry, 1996). The reuse described in the paper is
ad-hoc, black box, compositional, code reuse. Ad hoc means that the
reuse is not part of a repeatable mandated organizational process. The
paper is co...
The article argues that software reuse is practical and ever
evolving to accommodate programming with higher level assets and to
allow more direct modeling of domains. It is concluded that there is a
lot of industrial data that shows that reuse can significantly improve
software quality and productivity (W. Lim, 1998). Reuse is part of the
process...
This book constitutes the refereed proceedings of the 6th International Conference on Software Reuse, ICSR-6, held in Vienna, Austria, in June 2000. The 26 revised full papers presented were carefully reviewed and selected from numerous submissions. The book is divided into topical sections on generative reuse and formal description languages, obje...
Information retrieval is a sub-field of computer science that deals with the automated storage and retrieval of documents. Providing the latest information retrieval techniques, this guide discusses Information Retrieval data structures and algorithms, including implementations in C. Aimed at software engineers building systems with book processing...
DARE-COTS (Domain Analysis Research Environment for Commercial
Off-The-Shelf software) is a CASE tool that supports domain analysis-the
activity of identifying and documenting the commonalities and
variabilities in related software systems. DARE-COTS supports the
capture of domain information from experts, documents and code in a
domain. Captured d...
The existence of a domain model that formally describes the meaning of a piece of software can be helpful for re-use. We illustrate an approach, where by reengineering a formal domain model out of an existing system, one can generalize the existing system to an application generator: we map a domain model for program representations into the front...
DARE-COTS (Domain Analysis Research Environment for Commercial Off-The-Shelf software) is a CASE tool that supports domain analysis-the activity of identifying and documenting the commonalities and variabilities in related software systems. DARE-COTS supports the capture of domain information from experts, documents and code in a domain. Captured d...
As organizations implement systematic software reuse programs to improve productivity and quality, they must be able to measure their progress and identify the most effective reuse strategies. This is done with reuse metrics and models. In this article we survey metrics and models of software reuse and reusability, and provide a classification stru...
This paper describes a method for creating reusable processes and our experience using them in an industrial environment. A notation and process for creating and tailoring reusable processes is described and applied to the building of a 120 process library at PRC Inc. initial data collected on use of the library indicates large potential payo#s fro...
The paper presents a failure modes model of parts-based software
reuse, and shows how this model can be used to evaluate and improve
software reuse processes. The model and the technique are illustrated
using survey data about software reuse gathered from 113 people from 29
organizations
The purpose of this document is to describe the design and execution of the quasi-experiment conducted in the Department of Computer Science, Virginia Tech, in accordance with the procedures described in the document "An Experimental Design for Evaluating SEES" prepared for NASA under contract NAS1-19610, Task 17. (Hereafter, that report is called...
Software reuse as a technical topic has been around for over 25 years. The
purpose of this panel is to begin to define the software reuse business. Many
people and organizations make money from software reuse. Organizations in
the reuse business run the gamut from big corporations like AT&T, Hewlett-
Packard, and Microsoft to one person consulting...
This article reports strong correlations between reuse levels of software products across the life cycle and presents models of reuse levels across the life cycle. These models can be used to estimate reuse levels of one life cycle object given reuse levels of others, or to predict reuse levels of later life cycle objects given reuse levels of earl...
This article reports strong correlations between reuse levels of software products across the life cycle and presents models of reuse levels across the life cycle. These models can be used to estimate reuse levels of one life cycle object given reuse levels of others, or to predict reuse levels of later life cycle objects given reuse levels of earl...
Software reuse is the use of existing software knowledge or artifacts to build new software artifacts. Reuse is sometimes confused with porting. The two are distinguished as follows: Reuse is using an asset in different systems; porting is moving a system across environments or platforms. For example, in Figure 1 a component in System A is shown us...
DARE (Domain Analysis and Reuse Environment) is a CASE tool that supports domain analysis – the activity of identifying and documenting the commonalities and variabilities in related software systems. DARE supports the capture of domain information from experts, documents, and code in a domain. Captured domain information is stored in a domain book...
Software engineering is undergoing a fundamental change, what
philosophers of science call a paradigm shift. Such changes are rare.
The author discusses a new paradigm, systematic reuse, which is domain
focused, based on repeatable processes, and concerned primarily with the
reuse of higher level lifecycle artifacts such as requirements, designs,
s...
Reuse level is an abstract metric that can be applied to any
reusable asset. This paper presents extensions to the reuse level
metric, defines the metric formally, and discusses an implementation of
the abstract metric for C in an enhanced version of the reuse level
program
Summary form only. Systematic reuse represents a paradigm shift
for software engineering. Systematic reuse will have a major impact on
software engineering as a discipline, and on the software business as a
whole. We speculate on where software reuse is headed. Systematic reuse
will play a key role in the software industry in the next ten years and...
Systematic software reuse is a paradigm shift in software engineering from building single systems to building families of related systems. The goal of software reuse research is to discover systematic procedures for engineering new systems from existing assets. Implementing systematic reuse is risky. Not doing it is also risky. Trying systematic r...
An empirical study of methods for representing reusable software components is described. Thirty-five subjects searched for reusable components in a database of UNIX tools using four different representation methods: attribute-value, enumerated, faceted, and keyword. The study used Proteus, a reuse library system that supports multiple representati...
Process-centered computing environments are currently in their infancy, with notable exceptions [1][19][21][22]. Two important components of envisioned environments are the language used to describe the processes, and the architecture ...
Software engineering is undergoing a fundamental change. The new paradigm - systematic reuse - shifts from viewing software engineering as a discipline concerned with the construction of single systems to viewing it as concerned primarily with constructing related systems that share common parts and vary in certain regular and identifiable ways. Th...
The following topics are dealt with: design; libraries and environments; measurement and metrics; experiences and human factors; software reusability; formal specification; HLL; software retrieval; and object-oriented programming
keywords: {formal specification;high level languages;human factors;object-oriented programming;programming environments;...
Software reuse is a key technology for significantly improving software quality and productivity. This 93 page report summarizes the current status of software reuse practice based on a survey of 113 individuals from 29 organizations in the U.S. and Europe, and from other sources. The information presented can help your organization assess current...
Software reuse is widely believed to be the most promising technology for significantly improving software quality and productivity. In this paper, we discuss software reuse from an empirical perspective. We examine factors that affect reuse, reuse measurement, and techniques for tailoring a reuse program to a given organization via a failure modes...