Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Alan F. Karr

dblp:55/835 · DBLP profile ↗
← Back
9ranked-venue papers
0as first author
0since 2021 · last 2007
0000-0002-7253-0129ORCID · corroborated

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

Software engineering, systems software and programming languages · 5Artificial intelligence and machine learning · 2Security and privacy · 1Databases, data management, data science and information retrieval · 1Applied, 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
5 papers
Software maintenance and evolution · 39% Software testing · 24% Empirical software engineering · 23%
Network and information security
1 paper
Privacy and data protection · 100%

Topics — the 10 heaviest of 13, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program analysis
dynamic analysis
0.112007
Techniques for Classifying Executions of Deployed Software to Support Software Engineering Tasks · IEEE Trans. Software Eng. 2007
Software testing
test oracle
0.112005
Applying classification techniques to remotely-collected program execution data · ESEC/SIGSOFT FSE 2005
Privacy and data protection
privacy-preserving computation
0.012004
Privacy preserving regression modelling via distributed computation · KDD 2004
Privacy and data protection
privacy-preserving data analysis
0.012004
Privacy preserving regression modelling via distributed computation · KDD 2004
Privacy and data protection › privacy-preserving data analysis › privacy-preserving data mining
vertically partitioned data
0.012004
Privacy preserving regression modelling via distributed computation · KDD 2004
Empirical software engineering
mining software repositories
0.012001
Does Code Decay? Assessing the Evidence from Change Management Data · IEEE Trans. Software Eng. 2001
Empirical software engineering
fault prediction
0.012000
Predicting Fault Incidence Using Software Change History · IEEE Trans. Software Eng. 2000
Software maintenance and evolution › software evolution
software aging
0.012000
Predicting Fault Incidence Using Software Change History · IEEE Trans. Software Eng. 2000
Software maintenance and evolution › program comprehension
software visualization
0.012002
Visualizing Software Changes · IEEE Trans. Software Eng. 2002
Empirical software engineering › software fault analysis
fault distribution
0.012000
Predicting Fault Incidence Using Software Change History · IEEE Trans. Software Eng. 2000

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

model building · 0.1instrumentation · 0.1statistical learning · 0.1classification · 0.1linear regression · 0.0distributed computation · 0.0visual metaphors · 0.0network visualization · 0.0matrix view · 0.0cityscape · 0.0statistical analysis · 0.0code decay indices · 0.0
YearPublicationVenuePosition
2007 Techniques for Classifying Executions of Deployed Software to Support Software Engineering Tasks
abstract
There is an increasing interest in techniques that support analysis and measurement of fielded software systems. These techniques typically deploy numerous instrumented instances of a software system, collect execution data when the instances run in the field, and analyze the remotely collected data to better understand the system's in-the-field behavior. One common need for these techniques is the ability to distinguish execution outcomes (e.g., to collect only data corresponding to some behavior or to determine how often and under which condition a specific behavior occurs). Most current approaches, however, do not perform any kind of classification of remote executions and either focus on easily observable behaviors (e.g., crashes) or assume that outcomes' classifications are externally provided (e.g., by the users). To address the limitations of existing approaches, we have developed three techniques for automatically classifying execution data as belonging to one of several classes. In this paper, we introduce our techniques and apply them to the binary classification of passing and failing behaviors. Our three techniques impose different overheads on program instances and, thus, each is appropriate for different application scenarios. We performed several empirical studies to evaluate and refine our techniques and to investigate the trade-offs among them. Our results show that 1) the first technique can build very accurate models, but requires a complete set of execution data; 2) the second technique produces slightly less accurate models, but needs only a small fraction of the total execution data; and 3) the third technique allows for even further cost reductions by building the models incrementally, but requires some sequential ordering of the software instances' instrumentation.
Murali Haran, Alan F. Karr, Michael Last, Alessandro Orso, Adam A. Porter, Ashish P. Sanil, Sandro Fouché
IEEE Trans. Software Eng.2
2006 Combinations of SDC Methods for Microdata Protection
Anna Oganian, Alan F. Karr
Privacy in Statistical Databases2
2005 Applying classification techniques to remotely-collected program execution data
abstract
There is an increasing interest in techniques that support measurement and analysis of fielded software systems. One of the main goals of these techniques is to better understand how software actually behaves in the field. In particular, many of these techniques require a way to distinguish, in the field, failing from passing executions. So far, researchers and practitioners have only partially addressed this problem: they have simply assumed that program failure status is either obvious (i.e., the program crashes) or provided by an external source (e.g., the users). In this paper, we propose a technique for automatically classifying execution data, collected in the field, as coming from either passing or failing program runs. (Failing program runs are executions that terminate with a failure, such as a wrong outcome.) We use statistical learning algorithms to build the classification models. Our approach builds the models by analyzing executions performed in a controlled environment (e.g., test cases run in-house) and then uses the models to predict whether execution data produced by a fielded instance were generated by a passing or failing program execution. We also present results from an initial feasibility study, based on multiple versions of a software subject, in which we investigate several issues vital to the applicability of the technique. Finally, we present some lessons learned regarding the interplay between the reliability of classification models and the amount and type of data collected.
Murali Haran, Alan F. Karr, Alessandro Orso, Adam A. Porter, Ashish P. Sanil
ESEC/SIGSOFT FSE2
2004 Privacy preserving regression modelling via distributed computation
abstract
Reluctance of data owners to share their possibly confidential or proprietary data with others who own related databases is a serious impediment to conducting a mutually beneficial data mining analysis. We address the case of vertically partitioned data -- multiple data owners/agencies each possess a few attributes of every data record. We focus on the case of the agencies wanting to conduct a linear regression analysis with complete records without disclosing values of their own attributes. This paper describes an algorithm that enables such agencies to compute the exact regression coefficients of the global regression equation and also perform some basic goodness-of-fit diagnostics while protecting the confidentiality of their data. In more general settings beyond the privacy scenario, this algorithm can also be viewed as method for the distributed computation for regression analyses.
Ashish P. Sanil, Alan F. Karr, Xiaodong Lin 0004, Jerome P. Reiter
KDD2
2002 Software Systems for Tabular Data Releases
abstract
We describe two classes of software systems that release tabular summaries of an underlying database. Table servers respond to user queries for (marginal) sub-tables of the "full" table summarizing the entire database, and are characterized by dynamic assessment of disclosure risk, in light of previously answered queries. Optimal tabular releases are static releases of sets of sub-tables that are characterized by maximizing the amount of information released, as given by a measure of data utility, subject to a constraint on disclosure risk. Underlying abstractions — primarily associated with the query space, as well as released and unreleasable sub-tables and frontiers, computational algorithms and issues, especially scalability, and prototype software implementations are discussed.
Adrian Dobra, Alan F. Karr, Ashish P. Sanil, Stephen E. Fienberg
Int. J. Uncertain. Fuzziness Knowl. Based Syst.2
2002 Visualizing Software Changes
abstract
A key problem in software engineering is changing the code. We present a sequence of visualizations and visual metaphors designed to help engineers understand and manage the software change process. The principal metaphors are matrix views, cityscapes, bar and pie charts, data sheets and networks. Linked by selection mechanisms, multiple views are combined to form perspectives that both enable discovery of high-level structure in software change data and allow effective access to details of those data. Use of the views and perspectives is illustrated in two important contexts: understanding software change by exploration of software change data and management of software development. Our approach complements existing visualizations of software structure and software execution.
Stephen G. Eick, Todd L. Graves, Alan F. Karr, Audris Mockus, Paul Schuster
IEEE Trans. Software Eng.3
2001 Does Code Decay? Assessing the Evidence from Change Management Data
abstract
A central feature of the evolution of large software systems is that change-which is necessary to add new functionality, accommodate new hardware, and repair faults-becomes increasingly difficult over time. We approach this phenomenon, which we term code decay, scientifically and statistically. We define code decay and propose a number of measurements (code decay indices) on software and on the organizations that produce it, that serve as symptoms, risk factors, and predictors of decay. Using an unusually rich data set (the fifteen-plus year change history of the millions of lines of software for a telephone switching system), we find mixed, but on the whole persuasive, statistical evidence of code decay, which is corroborated by developers of the code. Suggestive indications that perfective maintenance can retard code decay are also discussed.
Stephen G. Eick, Todd L. Graves, Alan F. Karr, J. S. Marron, Audris Mockus
IEEE Trans. Software Eng.3
2000 Predicting Fault Incidence Using Software Change History
abstract
This paper is an attempt to understand the processes by which software ages. We define code to be aged or decayed if its structure makes it unnecessarily difficult to understand or change and we measure the extent of decay by counting the number of faults in code in a period of time. Using change management data from a very large, long-lived software system, we explore the extent to which measurements from the change history are successful in predicting the distribution over modules of these incidences of faults. In general, process measures based on the change history are more useful in predicting fault rates than product metrics of the code: For instance, the number of times code has been changed is a better indication of how many faults it will contain than is its length. We also compare the fault rates of code of various ages, finding that if a module is, on the average, a year older than an otherwise similar module, the older module will have roughly a third fewer faults. Our most successful model measures the fault potential of a module as the sum of contributions from all of the times the module has been changed, with large, recent changes receiving the most weight.
Todd L. Graves, Alan F. Karr, J. S. Marron, Harvey P. Siy
IEEE Trans. Software Eng.2
1998 A Web Laboratory for Software Data Analysis
Stephen G. Eick, Todd L. Graves, Alan F. Karr, Audris Mockus
World Wide Web3