Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Jonathan E. Cook is active.

Publication


Featured researches published by Jonathan E. Cook.


ACM Transactions on Software Engineering and Methodology | 1998

Discovering models of software processes from event-based data

Jonathan E. Cook; Alexander L. Wolf

Many software process methods and tools presuppose the existence of a formal model of a process. Unfortunately, developing a formal model for an on-going, complex process can be difficult, costly, and error prone. This presents a practical barrier to the adoption of process technologies, which would be lowered by automated assistance in creating formal models. To this end, we have developed a data analysis technique that we term process discovery. Under this technique, data describing process events are first captured from an on-going process and then used to generate a formal model of the behavior of that process. In this article we describe a Markov method that we developed specifically for process discovery, as well as describe two additional methods that we adopted from other domains and augmented for our purposes. The three methods range from the purely algorithmic to the purely statistical. We compare the methods and discuss their application in an industrial case study.


business process management | 2012

Process Mining Manifesto

Wil M. P. van der Aalst; A Arya Adriansyah; Ana Karla Alves de Medeiros; Franco Arcieri; Thomas Baier; Tobias Blickle; R. P. Jagadeesh Chandra Bose; Peter van den Brand; Ronald Brandtjen; Joos C. A. M. Buijs; Andrea Burattin; Josep Carmona; Malu Castellanos; Jan Claes; Jonathan E. Cook; Nicola Costantini; Francisco Curbera; Ernesto Damiani; Massimiliano de Leoni; Pavlos Delias; Boudewijn F. van Dongen; Marlon Dumas; Schahram Dustdar; Dirk Fahland; Diogo R. Ferreira; Walid Gaaloul; Frank van Geffen; Sukriti Goel; Cw Christian Günther; Antonella Guzzo

Process mining techniques are able to extract knowledge from event logs commonly available in today’s information systems. These techniques provide new means to discover, monitor, and improve processes in a variety of application domains. There are two main drivers for the growing interest in process mining. On the one hand, more and more events are being recorded, thus, providing detailed information about the history of processes. On the other hand, there is a need to improve and support business processes in competitive and rapidly changing environments. This manifesto is created by the IEEE Task Force on Process Mining and aims to promote the topic of process mining. Moreover, by defining a set of guiding principles and listing important challenges, this manifesto hopes to serve as a guide for software developers, scientists, consultants, business managers, and end-users. The goal is to increase the maturity of process mining as a new tool to improve the (re)design, control, and support of operational business processes.


ACM Transactions on Software Engineering and Methodology | 1999

Software process validation: quantitatively measuring the correspondence of a process to a model

Jonathan E. Cook; Alexander L. Wolf

To a great extent, the usefulness of a formal model of a software process lies in its ability to accurately predict the behavior of the executing process. Similarly, the usefulness of an executing process lies largely in its ability to fulfill the requirements embodied in a formal model of the process. When process models and process executions diverge, something significant is happening. We have developed techniques for uncovering and measuring the discrepancies between models and executions, which we call process validation. Process validation takes a process execution and a process model, and measures the level of correspondence between the two. Our metrics are tailorable and give process engineers control over determining the severity of different types of discrepancies. The techniques provide detailed information once a high-level measurement indicates the presence of a problem. We have applied our processes validation methods in an industrial case study, of which a portion is described in this article.


foundations of software engineering | 1998

Event-based detection of concurrency

Jonathan E. Cook; Alexander L. Wolf

Understanding the behavior of a system is crucial in being able to modify, maintain, and improve the system. A particularly difficult aspect of some system behaviors is concurrency. While there are many techniques to specify intended concurrent behavior, there are few, if any, techniques to capture and model actual concurrent behavior. This paper presents a technique to discover patterns of concurrent behavior from traces of system events. The technique is based on a probabilistic analysis of the event traces. Using metrics for the number, frequency, and regularity of event occurrences, a determination is made of the likely concurrent behavior being manifested by the system. The technique is useful in a wide variety of software engineering tasks, including architecture discovery, reengineering, user interaction modeling, and software process improvement.


international conference on software engineering | 1999

Highly reliable upgrading of components

Jonathan E. Cook; Jeffrey A. Dage

After a system is deployed, fixes, enhancements, and modifications all occur that change the components that make up the system. Unfortunately, new versions of components can introduce new errors and break existing, depended-upon behavior. When this happens, the old component version could have provided the correct behavior, but it is no longer part of the system. We propose a framework, HERCULES, for upgrading system components that, instead of removing the old version of the component, keeps multiple versions of a component running. Doing so allows behavior to be utilized from all versions, and maintains system integrity and correctness even in the presence of newly introduced errors. This framework ensures that the move towards dynamic, configurable software systems does not lessen, but rather provides capabilities to enhance the reliability that software will achieve through the next century.


Computers in Industry | 2004

Discovering models of behavior for concurrent workflows

Jonathan E. Cook; Zhidian Du; Chongbing Liu; Alexander L. Wolf

Understanding the dynamic behavior of a workflow is crucial for being able to modify, maintain, and improve it. A particularly difficult aspect of some behavior is concurrency. Automated techniques which seek to mine workflow data logs to discover information about the workflows must be able to handle the concurrency that manifests itself in the workflow executions. This paper presents techniques to discover patterns of concurrent behavior from traces of workflow events. The techniques are based on a probabilistic analysis of the event traces. Using metrics for the number, frequency, and regularity of event occurrences, a determination is made of the likely concurrent behavior being manifested by the system. Discovering this behavior can help a workflow designer better understand and improve the work processes they are managing.


international conference on software maintenance | 2001

Measuring behavioral correspondence to a timed concurrent model

Jonathan E. Cook; Cha He; Changjun Ma

Research in formal methods has produced fruitful techniques that can verify global properties of a design of a real-time system, or exact behavioral correspondence to the design. Exactness is often not achieved, however, and yet understanding how close the design and system correspond still would be very valuable to direct further efforts in achieving exactness or to modify the design where the system simply cannot achieve the requirements. The paper describes a method and tool that fills this niche, by quantitatively measuring how closely the behavior of a real-time system corresponds to its specification, given in a timed, concurrent model.


international workshop on dynamic analysis | 2009

Using AOP for detailed runtime monitoring instrumentation

Amjad Nusayr; Jonathan E. Cook

Although AOP has long been used for monitoring purposes, the level of detail that virtually all AOP frameworks support is not enough to support broad classes of monitoring applications. Often the method or function call is the basic unit of code weaving, and if some data access weaving is supported it is usually very limited, e.g., to object field access. In this paper we demonstrate the need for AOP to be extended if it is to support broad runtime monitoring needs, and then present two new joinpoint types for AspectJ, the basic block and loop back edge types. These allow much more fine-grained weaving of advice, which in turn supports a much larger category of runtime monitoring applications. We demonstrate the feasibility of these extensions with example prototype implementations using the AspectBench Compiler (abc).


Journal of Systems and Software | 2005

Discovering thread interactions in a concurrent system

Jonathan E. Cook; Zhidian Du

Understanding the behavior of a system is a central reverse engineering task, and is crucial for being able to modify, maintain, and improve the system. An often difficult aspect of some system behaviors is concurrency, in particular identifying those areas that exhibit mutual exclusion and those that exhibit synchronization. In this paper we present a technique that builds on our previous work in behavior discovery to find the points in the system that demonstrate mutually exclusive and synchronized behavior. Finding these points in the behavior of the system is an important aid in reverse engineering a complete and correct model of the system.


IEEE Transactions on Knowledge and Data Engineering | 1998

A highly effective partition selection policy for object database garbage collection

Jonathan E. Cook; Alexander L. Wolf; Benjamin G. Zorn

We investigate methods to improve the performance of algorithms for automatic storage reclamation of object databases. These algorithms are based on a technique called partitioned garbage collection, in which a subset of the entire database is collected independently of the rest. We evaluate how different application, database system, and garbage collection implementation parameters affect the performance of garbage collection in object database systems. We focus specifically on investigating the policy that is used to select which partition in the database should be collected. Three of the policies that we investigate are based on the intuition that the values of overwritten pointers provide good hints about where to find garbage. A fourth policy investigated chooses the partition with the greatest presence in the I/O buffer. Using simulations based on a synthetic database, we show that one of our policies requires less I/O to collect more garbage than any existing implementable policy. Furthermore, that policy performs close to a locally optimal policy over a wide range of simulation parameters, including database size, collection rate, and database connectivity. We also show what impact these simulation parameters have on application performance and investigate the expected costs and benefits of garbage collection in such systems.

Collaboration


Dive into the Jonathan E. Cook's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Amjad Nusayr

New Mexico State University

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Omar Aaziz

New Mexico State University

View shared research outputs
Top Co-Authors

Avatar

Hadi Sharifi

New Mexico State University

View shared research outputs
Top Co-Authors

Avatar

Jeanine Cook

New Mexico State University

View shared research outputs
Top Co-Authors

Avatar

Mustafa Hammad

New Mexico State University

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Waleed Alkohlani

New Mexico State University

View shared research outputs
Researchain Logo
Decentralizing Knowledge