EDBT 2026 Demo / reviewers in the wild / expert
John Penix
dblp:84/3141
· DBLP profile ↗
20ranked-venue papers
10as first author
0since 2021 · last 2014
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 18 · 9 first-authorArtificial intelligence and machine learning · 1Theory of computation · 1 · 1 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
12 papers |
Software testing · 47% Software maintenance and evolution · 21% Empirical software engineering · 14% | |
| Computer architecture, parallel and distributed computing, and storage systems
3 papers |
Embedded and real-time systems · 100% |
Topics — the 19 heaviest of 24, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Software maintenance and evolution › release engineering
continuous integration |
0.2 | 2 | 2014 | Large-scale test automation in the cloud (Invited industrial talk) · ICSE 2012 Techniques for improving regression testing in continuous integration development environments · SIGSOFT FSE 2014 |
Software testing
regression testing |
0.2 | 1 | 2014 | Techniques for improving regression testing in continuous integration development environments · SIGSOFT FSE 2014 |
Software testing › regression testing
regression test selection |
0.2 | 1 | 2014 | Techniques for improving regression testing in continuous integration development environments · SIGSOFT FSE 2014 |
Software testing › regression testing
test case prioritization |
0.2 | 1 | 2014 | Techniques for improving regression testing in continuous integration development environments · SIGSOFT FSE 2014 |
Software testing
automated testing |
0.2 | 2 | 2012 | Large-scale test automation in the cloud (Invited industrial talk) · ICSE 2012 The First International Workshop on Automated Program Analysis, Testing and Verification · ICSE 2000 |
Software testing › regression testing
test selection |
0.1 | 1 | 2012 | Large-scale test automation in the cloud (Invited industrial talk) · ICSE 2012 |
Program analysis
static analysis |
0.1 | 1 | 2008 | Predicting accurate and actionable static analysis warnings: an experimental approach · ICSE 2008 |
Empirical software engineering
developer studies |
0.1 | 1 | 2014 | Experiences developing tools for developers (invited talk) · SIGSOFT FSE 2014 |
Requirements engineering and software design
software architecture |
0.0 | 2 | 1999 | Deductive Synthesis of Event-Based Software Architectures · ASE 1999 Declarative Specification of Software Architectures · ASE 1997 |
Concurrent programming
concurrency bugs |
0.0 | 1 | 2001 | Formal Analysis of a Space-Craft Controller Using SPIN · IEEE Trans. Software Eng. 2001 |
Concurrent programming
deadlock detection |
0.0 | 1 | 2001 | Formal Analysis of a Space-Craft Controller Using SPIN · IEEE Trans. Software Eng. 2001 |
Program synthesis and code generation
deductive program synthesis |
0.0 | 1 | 2001 | Amphion/NAV: Deductive Synthesis of State Estimation Software · ASE 2001 |
Automated reasoning and model checking › model checking
explicit-state model checking |
0.0 | 1 | 2001 | Formal Analysis of a Space-Craft Controller Using SPIN · IEEE Trans. Software Eng. 2001 |
Program verification
automated verification |
0.0 | 1 | 2000 | The First International Workshop on Automated Program Analysis, Testing and Verification · ICSE 2000 |
Program verification
model checking |
0.0 | 1 | 2000 | Verification of time partitioning in the DEOS scheduler kernel · ICSE 2000 |
Empirical software engineering
software defect prediction |
0.0 | 1 | 2008 | Predicting accurate and actionable static analysis warnings: an experimental approach · ICSE 2008 |
Requirements engineering and software design › software architecture › software architecture analysis
architecture verification |
0.0 | 1 | 1997 | Declarative Specification of Software Architectures · ASE 1997 |
Embedded and real-time systems
real-time scheduling |
0.0 | 1 | 2000 | Verification of time partitioning in the DEOS scheduler kernel · ICSE 2000 |
Software maintenance and evolution › software reuse
component reuse |
0.0 | 1 | 1999 | Deductive Synthesis of Event-Based Software Architectures · ASE 1999 |
Methods — techniques the papers use, named apart from their topics
dependency analysis · 0.3empirical study · 0.2model checking · 0.1PROMELA · 0.1screening methodology · 0.1logistic regression · 0.1graphical specification · 0.1fortran subroutine composition · 0.1promela · 0.1SPIN · 0.1automation · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2014 | Techniques for improving regression testing in continuous integration development environmentsabstractIn continuous integration development environments, software engineers frequently integrate new or changed code with the mainline codebase. This can reduce the amount of code rework that is needed as systems evolve and speed up development time. While continuous integration processes traditionally require that extensive testing be performed following the actual submission of code to the codebase, it is also important to ensure that enough testing is performed prior to code submission to avoid breaking builds and delaying the fast feedback that makes continuous integration desirable. In this work, we present algorithms that make continuous integration processes more cost-effective. In an initial pre-submit phase of testing, developers specify modules to be tested, and we use regression test selection techniques to select a subset of the test suites for those modules that render that phase more cost-effective. In a subsequent post-submit phase of testing, where dependent modules as well as changed modules are tested, we use test case prioritization techniques to ensure that failures are reported more quickly. In both cases, the techniques we utilize are novel, involving algorithms that are relatively inexpensive and do not rely on code coverage information -- two requirements for conducting testing cost-effectively in this context. To evaluate our approach, we conducted an empirical study on a large data set from Google that we make publicly available. The results of our study show that our selection and prioritization techniques can each lead to cost-effectiveness improvements in the continuous integration process. Sebastian G. Elbaum, Gregg Rothermel, John Penix |
SIGSOFT FSE | 3 |
| 2014 | Experiences developing tools for developers (invited talk)abstractSoftware Engineers are horrible customers for software tools. If they don't like your tools, they will just write their own. If your tool wastes a few minutes of a developer's day, good luck getting them to ever try your tool again. And if, after years of effort, you manage to develop tools they actually like, you are really in trouble. This is when they start building systems on top of your tools. No API? No problem! They will hack and scrape as needed to get their job done. In this talk I'll go through a number of examples of successes, non-successes and over-successes from the past 8 years of evolving the developer infrastructure at Google. I'll highlight the challenges we faced, our attempts to address the challenges and share our lessons learned. John Penix |
SIGSOFT FSE | 1 |
| 2013 | Big problems in industry (panel)abstractSoftware Engineering in practice deals with scale in a variety of dimensions. We build large scale systems operating on vast amount of data. We have millions of customers with billions of queries and transactions. We have distributed teams making thousands of changes, running millions of tests and releasing multiple times per day. These dimensions of scale interact to provide challenges for software development tools and processes. The panelists will describe the challenging aspects of scale in their specific problem domains and discuss which software engineering methods work and which leave room for improvement. John Penix |
ASE | 1 |
| 2012 | Large-scale test automation in the cloud (Invited industrial talk)abstractSoftware development at Google is big and fast. The code base receives 20+ code changes per minute and 50% of the files change every month! Each product is developed and released from head relying on automated tests verifying the product behavior. Release frequency varies from multiple times per day to once every few weeks, depending on the product team. With such a huge, fast-moving codebase, it is possible for teams to get stuck spending a lot of time just keeping their build green. A continuous integration system should help by providing the exact change at which a test started failing, instead of a range of suspect changes or doing a lengthy binary-search for the offending change. We have built a system that uses dependency analysis to determine all the tests a change transitively affects and then runs only those tests for every change. The system is built on top of Googles cloud computing infrastructure enabling many builds to be executed concurrently, allowing the system to run affected tests as soon as a change is submitted. The use of smart tools and cloud computing infrastructure in the continuous integration system enables quick, effective feedback to development teams. John Penix |
ICSE | 1 |
| 2008 | Predicting accurate and actionable static analysis warnings: an experimental approachabstractStatic analysis tools report software defects that may or may not be detected by other verification methods. Two challenges complicating the adoption of these tools are spurious false positive warnings and legitimate warnings that are not acted on. This paper reports automated support to help address these challenges using logistic regression models that predict the foregoing types of warnings from signals in the warnings and implicated code. Because examining many potential signaling factors in large software development settings can be expensive, we use a screening methodology to quickly discard factors with low predictive power and cost-effectively build predictive models. Our empirical evaluation indicates that these models can achieve high accuracy in predicting accurate and actionable static analysis warnings, and suggests that the models are competitive with alternative models built without screening. Joseph R. Ruthruff, John Penix, J. David Morgenthaler, Sebastian G. Elbaum, Gregg Rothermel |
ICSE | 2 |
| 2007 | Evaluating static analysis defect warnings on production softwareabstractStatic analysis tools for software defect detection are becoming widely used in practice. However, there is little public information regarding the experimental evaluation of the accuracy and value of the warnings these tools report. In this paper, we discuss the warnings found by FindBugs, a static analysis tool that finds defects in Java programs. We discuss the kinds of warnings generated and the classification of warnings into false positives, trivial bugs and serious bugs. We also provide some insight into why static analysis tools often detect true but trivial bugs, and some information about defect warnings across the development lifetime of software release. We report data on the defect warnings in Sun's Java 6 JRE, in Sun's Glassfish JEE server, and in portions of Google's Java codebase. Finally, we report on some experiences from incorporating static analysis into the software development process at Google. Nathaniel Ayewah, William W. Pugh, J. David Morgenthaler, John Penix, YuQian Zhou |
PASTE | 4 |
| 2006 | Guest Editors' Introduction
John Penix, John C. Grundy |
Autom. Softw. Eng. | 1 |
| 2005 | Design for Verification with Dynamic AssertionsabstractCompleted design and implementation are often regarded as prerequisites of any verification. While recent development methods establish testability as a design criterion, there is no corresponding design support for other verification methods like model checking and static analysis. Since these methods have inherent scalability problems, their application becomes more difficult where it is most needed - for complex systems. Our design-for-verification (D4V) approach attempts to close this gap using a variety of techniques, such as design patterns, APIs and source annotations. This paper presents a overview of D4V, and introduces dynamic assertions as one of the proposed D4V techniques. Dynamic assertions are dedicated, non-intrusive check objects that are dynamically activated, evaluated and deactivated via assertions of their target objects. Since these check objects can have their own state, they can be used to verify a broad range of properties. Properties can be expressed in the target programming language, and checked in a testing environment. In addition, dynamic assertions can be configured via call contexts, making them suitable for connector-specific verification of component based systems Peter C. Mehlitz, John Penix |
SEW | 2 |
| 2005 | Verifying Time Partitioning in the DEOS Scheduling Kernel
John Penix, Willem Visser, Seungjoon Park, Corina Pasareanu, Eric Engstrom, Aaron Larson, Nicholas Weininger |
Formal Methods Syst. Des. | 1 |
| 2001 | The Second International Workshop on Automated Program Analysis, Testing and Verification
Nigel Tracey, John Penix, Willem Visser |
ICSE | 2 |
| 2001 | Amphion/NAV: Deductive Synthesis of State Estimation SoftwareabstractPrevious work on domain-specific deductive program synthesis described the Amphion/NAIF system for generating Fortran code from high-level graphical specifications describing problems in space system geometry. Amphion/NAIF specifications describe input-output functions that compute geometric quantities (e.g., the distance between two planets at a point in time, or the time when a radio communication path between a spacecraft and earth is occluded) by composing together Fortran subroutines from the NAIF subroutine library developed at the Jet Propulsion Laboratory. In essence, Amphion/NAIF synthesizes code for glueing together the NAIF components in a way such that the generated code implements the specification, with a concurrently generated proof that this implementation is correct. Amphion/NAIF demonstrated the success of domain-specific deductive program synthesis and is still in use today within the space science community. However, a number of questions remained open that we will attempt to answer in this paper. Jon Whittle 0001, Jeffrey Van Baalen, Johann Schumann, Peter Robinson 0004, Thomas Pressburger, John Penix, Phil Oh, Michael R. Lowry, Guillaume Brat |
ASE | 6 |
| 2001 | Editorial: The First International Workshop on Automated Program Analysis, Testing and Verification (WAPATV 2000)
Nigel Tracey, John Penix, Willem Visser |
Softw. Test. Verification Reliab. | 2 |
| 2001 | Formal Analysis of a Space-Craft Controller Using SPINabstractThe paper documents an application of the finite state model checker SPIN to formally analyze a multithreaded plan execution module. The plan execution module is one component of NASA's New Millennium Remote Agent, an artificial intelligence-based spacecraft control system architecture which launched in October of 1998 as part of the DEEP SPACE 1 mission. The bottom layer of the plan execution module architecture is a domain specific language, named ESL (Executive Support Language), implemented as an extension to multithreaded COMMON LISP. ESL supports the construction of reactive control mechanisms for autonomous robots and spacecraft. For the case study, we translated the ESL services for managing interacting parallel goal-and-event driven processes into the PROMELA input language of SPIN. A total of five previously undiscovered concurrency errors were identified within the implementation of ESL. According to the Remote Agent programming team, the effort has had a major impact, locating errors that would not have been located otherwise and, in one case, identifying a major design flaw. In fact, in a different part of the system, a concurrency bug identical to one discovered by this study escaped testing and caused a deadlock during an in-flight experiment, 96 million kilometers from Earth. The work additionally motivated the introduction of procedural abstraction in terms of inline procedures into SPIN. Klaus Havelund, Michael R. Lowry, John Penix |
IEEE Trans. Software Eng. | 3 |
| 2000 | Verification of time partitioning in the DEOS scheduler kernelabstractThis paper describes an experiment to use the Spin model checking system to support automated verification of time partitioning in the Honeywell DEOS real-time scheduling kernel. The goal of the experiment was to investigate whether model checking could be used to find a subtle implementation error that was originally discovered and fixed during the standard formal review process. To conduct the experiment, a core slice of the DEOS scheduling kernel was first translated without abstraction from C++ into Promela (the input language for Spin). We constructed an abstract “test-driver” environment and carefully introduced several abstractions into the system to support verification. Several experiments were run to attempt to verify that the system implementation adhered to the critical time partitioning requirements. During these experiments, the known error was rediscovered in the time partitioning implementation. We believe this case study provides several insights into how to develop cost-effective methods and tools to support the software design and implementation review process. John Penix, Willem Visser, Eric Engstrom, Aaron Larson, Nicholas Weininger |
ICSE | 1 |
| 2000 | The First International Workshop on Automated Program Analysis, Testing and VerificationabstractProgram analysis, testing and verification are key techniques for building confidence in and increasing the quality of software systems. Such activities typically cost upwards of 50% of total development costs. Automation aims to allow both reduced costs and more thorough analysis, testing and verification and is vital to keep pace with increasing software complexity. Nigel Tracey, John Penix, Willem Visser |
ICSE | 2 |
| 1999 | Evaluation of Automated Software Engineering Systems? (Panel)
John Penix |
ASE | 1 |
| 1999 | Deductive Synthesis of Event-Based Software ArchitecturesabstractDescribes the application of the Rebound (REuse Based On UNDerstanding) framework to synthesize event-based software architectures. Within Rebound, deductive techniques are used to select components and wrap them for integration. The framework guides the selection of wrappers based on the problem specification and the components that are available for reuse. The wrapper specifications are used to generate matching conditions for component retrieval, creating a "retrieval for adaptation" scenario. The output of the synthesis activity is mapped to an event-based JavaBeans architecture. John Penix |
ASE | 1 |
| 1999 | Efficient Specification-Based Component Retrieval
John Penix, Perry Alexander |
Autom. Softw. Eng. | 1 |
| 1997 | Verification and Validation of AI Systems that Control Deep-Space Spacecraft
Michael R. Lowry, Klaus Havelund, John Penix |
ISMIS | 3 |
| 1997 | Declarative Specification of Software ArchitecturesabstractScaling formal methods to large, complex systems requires methods of modeling systems at high levels of abstraction. In this paper, we describe such a method for specifying system requirements at the software architecture level. An architecture represents a way breaking down a system into a set of interconnected components. We use architecture theories to specify the behavior of a system in terms of the behavior of its components via a collection of axioms. The axioms describe the effects and limits of component variation and the assumptions a component can make about the environment provided by the architecture. As a result of the method the verification of the basic architecture can be separated from the verification of the individual component instantiations. We present an example of using architecture theories to model the task coordination architecture of a multi-threaded plan execution system. John Penix, Perry Alexander, Klaus Havelund |
ASE | 1 |