Derek Rayside

dblp:65/5877 · DBLP profile ↗
← Back
27ranked-venue papers
7as first author
7since 2021 · last 2026
—ORCID · none

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

Software engineering, systems software and programming languages · 17 · 6 first-authorArtificial intelligence and machine learning · 6 · 4 since 2021Applied, interdisciplinary, general and emerging computing · 5 · 3 since 2021Systems, architecture and hardware · 2 · 2 since 2021Databases, data management, data science and information retrieval · 2Human-computer interaction and ubiquitous computing · 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.

Artificial intelligence
2 papers
Motion planning and robot control · 70% Robot navigation and mapping · 25% Planning, search and constraint satisfaction · 6%
Software engineering, system software, and programming languages
9 papers
Requirements engineering and software design · 46% Empirical software engineering · 21% Programming languages and type systems · 11%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Parallel and multicore computing · 100%
Theoretical computer science
4 papers
Mathematical optimization · 51% Automated reasoning and model checking · 46% Logic in computer science · 2%

Topics — the 25 heaviest of 33, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Robotics › Motion planning and robot control › robot control architecture
integrated planning and control
0.712023
Real-Time Unified Trajectory Planning and Optimal Control for Urban Autonomous Driving Under Static and Dynamic Obstacle Constraints · ICRA 2023
Robotics › Motion planning and robot control › robot control
model predictive control
0.712023
Real-Time Unified Trajectory Planning and Optimal Control for Urban Autonomous Driving Under Static and Dynamic Obstacle Constraints · ICRA 2023
Robotics › Motion planning and robot control
trajectory planning
0.712023
Real-Time Unified Trajectory Planning and Optimal Control for Urban Autonomous Driving Under Static and Dynamic Obstacle Constraints · ICRA 2023
Robotics › Robot navigation and mapping › robot mapping
environment modeling
0.612022
DRG: A Dynamic Relation Graph for Unified Prior-Online Environment Modeling in Urban Autonomous Driving · ICRA 2022
Requirements engineering and software design › software architecture › software architecture analysis
software architecture recovery
0.522018
Measuring the Impact of Code Dependencies on Software Architecture Recovery Techniques · IEEE Trans. Software Eng. 2018
Comparing Software Architecture Recovery Techniques Using Accurate Dependencies · ICSE (2) 2015
Empirical software engineering
mining software repositories
0.312018
Measuring the Impact of Code Dependencies on Software Architecture Recovery Techniques · IEEE Trans. Software Eng. 2018
Requirements engineering and software design
software architecture
0.312018
Measuring the Impact of Code Dependencies on Software Architecture Recovery Techniques · IEEE Trans. Software Eng. 2018
Robotics › Motion planning and robot control
motion planning
0.212023
Real-Time Unified Trajectory Planning and Optimal Control for Urban Autonomous Driving Under Static and Dynamic Obstacle Constraints · ICRA 2023
Robotics › Robot navigation and mapping
obstacle avoidance
0.212023
Real-Time Unified Trajectory Planning and Optimal Control for Urban Autonomous Driving Under Static and Dynamic Obstacle Constraints · ICRA 2023
Parallel and multicore computing
parallel algorithms
0.212014
Scaling exact multi-objective combinatorial optimization by parallelization · ASE 2014
Parallel and multicore computing › parallel algorithms
parallel combinatorial optimization
0.212014
Scaling exact multi-objective combinatorial optimization by parallelization · ASE 2014
Mathematical optimization › multi-objective optimization
multi-objective combinatorial optimization
0.212014
Scaling exact multi-objective combinatorial optimization by parallelization · ASE 2014
Knowledge, reasoning and agents › Planning, search and constraint satisfaction › planning › agent planning
action planning
0.212022
DRG: A Dynamic Relation Graph for Unified Prior-Online Environment Modeling in Urban Autonomous Driving · ICRA 2022
Requirements engineering and software design
model-driven engineering
0.212013
Example-driven modeling: model = abstractions + examples · ICSE 2013
Requirements engineering and software design › software modeling
structural modeling
0.212013
Example-driven modeling: model = abstractions + examples · ICSE 2013
Programming languages and type systems
object-oriented programming
0.232009
Equality and hashing for (almost) free: Generating implementations from abstraction functions · ICSE 2009
On the Syllogistic Structure of Object-Oriented Programming · ICSE 2001
An Aristotelian understanding of object-oriented programming · OOPSLA 2000
Programming languages and type systems › language design
declarative and imperative language integration
0.112011
Unifying execution of imperative and declarative code · ICSE 2011
Software maintenance and evolution › software dependencies
code dependencies
0.112018
Measuring the Impact of Code Dependencies on Software Architecture Recovery Techniques · IEEE Trans. Software Eng. 2018
Program analysis
dynamic analysis
0.112007
Object ownership profiling: a technique for finding and fixing memory leaks · ASE 2007
Program analysis › error detection
memory leak detection
0.112007
Object ownership profiling: a technique for finding and fixing memory leaks · ASE 2007
Operating systems › resource management
memory management
0.112007
Object ownership profiling: a technique for finding and fixing memory leaks · ASE 2007
Program analysis › dynamic analysis
memory profiling
0.112007
Object ownership profiling: a technique for finding and fixing memory leaks · ASE 2007
Compilers and program optimization › dependence analysis
commutativity analysis
0.012004
Automating commutativity analysis at the design level · ISSTA 2004
Automated reasoning and model checking
constraint solving
0.012004
Automating commutativity analysis at the design level · ISSTA 2004
Program analysis › static analysis › interprocedural analysis
call graph analysis
0.012001
On the Syllogistic Structure of Object-Oriented Programming · ICSE 2001

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

optimal control problem · 0.7model predictive control · 0.7relational mapping · 0.6graph-based modeling · 0.6symbol dependency analysis · 0.5sub module-based technique · 0.5off-the-shelf solvers · 0.4divide-and-conquer · 0.4collaborative communication · 0.4first-order relational logic · 0.2constraint solving · 0.2examples · 0.2abstraction · 0.2alloy · 0.1reflection · 0.1abstraction function · 0.1constraint solver · 0.1OCL · 0.1
YearPublicationVenuePosition
2026 Autonomous Driving at Unsignalized Intersections: A Review of Decision-Making Challenges and Reinforcement Learning-Based Solutions
abstract
Autonomous driving at unsignalized intersections is still considered a challenging application for machine learning due to the complications associated with handling complex multi-agent scenarios characterized by a high degree of uncertainty. Automating the decision-making process in these safety-critical environments involves comprehending multiple levels of abstraction associated with learning robust driving behaviors to enable the vehicle to navigate efficiently. In this survey, we aim at exploring the state-of-the-art techniques implemented for decision-making applications, with a focus on algorithms that combine Reinforcement Learning (RL) and deep learning for learning traversing policies at unsignalized intersections. The reviewed schemes vary in the proposed driving scenario, in the assumptions made for the used intersection model, in the tackled challenges, and in the learning algorithms that are used. We have presented comparisons for these techniques to highlight their limitations and strengths. Based on our in-depth investigation, it can be discerned that a robust decision-making scheme for navigating real-world unsignalized intersection has yet to be developed. Along with our analysis and discussion, we recommend potential research directions encouraging the interested players to tackle the highlighted challenges. By adhering to our recommendations, decision-making architectures that are both non-overcautious and safe, yet feasible, can be trained and validated in real-world unsignalized intersections environments.
Mohammad K. Al-Sharman, Luc Edes, Bert Sun, Vishal Jayakumar, Hasan Tahir, Mohamed A. Daoud, Bara J. Emran, Derek Rayside, William W. Melek
IEEE Trans Autom. Sci. Eng.8
2025 RALACs: Action Recognition in Autonomous Vehicles Using Interaction Encoding and Optical Flow
abstract
When applied to autonomous vehicle (AV) settings, action recognition can enhance an environment model's situational awareness. This is especially prevalent in scenarios where traditional geometric descriptions and heuristics in AVs are insufficient. However, action recognition has traditionally been studied for humans, and its limited adaptability to noisy, un-clipped, un-pampered, raw RGB data has limited its application in other fields. To push for the advancement and adoption of action recognition into AVs, this work proposes a novel two-stage action recognition system, termed RALACs. RALACs formulates the problem of action recognition for road scenes, and bridges the gap between it and the established field of human action recognition. This work shows how attention layers can be useful for encoding the relations across agents, and stresses how such a scheme can be class-agnostic. Furthermore, to address the dynamic nature of agents on the road, RALACs constructs a novel approach to adapting Region of Interest (ROI) alignment to agent tracks for downstream action classification. Finally, our scheme also considers the problem of active agent detection, and utilizes a novel application of fusing optical flow maps to discern relevant agents in a road scene. We show that our proposed scheme can outperform the baseline on the ICCV2021 Road Challenge dataset (Singh et al., 2023) algorithm and by deploying it on a real vehicle platform, we provide preliminary insight to the usefulness of action recognition in decision making. The code is publicly available at https://github.com/WATonomous/action-classification.
Eddy Zhou, Owen Leather, Alex Zhuang, Alikasim Budhwani, Rowan Dempster, Quanquan Li, Mohammad K. Al-Sharman, Derek Rayside, William W. Melek
IEEE Trans. Cybern.8
2023 Real-Time Unified Trajectory Planning and Optimal Control for Urban Autonomous Driving Under Static and Dynamic Obstacle Constraints
abstract
Trajectory planning and control have historically been separated into two modules in automated driving stacks. Trajectory planning focuses on higher-level tasks like avoiding obstacles and staying on the road surface, whereas the controller tries its best to follow an ever changing reference trajectory. We argue that this separation is (1) flawed due to the mismatch between planned trajectories and what the controller can feasibly execute, and (2) unnecessary due to the flexibility of the model predictive control (MPC) paradigm. Instead, in this paper, we present a unified MPC-based trajectory planning and control scheme that guarantees feasibility with respect to road boundaries, the static and dynamic environment, and enforces passenger comfort constraints. The scheme is evaluated rigorously in a variety of scenarios focused on proving the effectiveness of the optimal control problem (OCP) design and real-time solution methods. The prototype code will be released at github.com/WATonomous/control.
Rowan Dempster, Mohammad K. Al-Sharman, Derek Rayside, William W. Melek
ICRA3
2023 Self-Learned Autonomous Driving at Unsignalized Intersections: A Hierarchical Reinforced Learning Approach for Feasible Decision-Making
abstract
Reinforcement learning-based techniques, empowered by deep-structured neural nets, have demonstrated superiority over rule-based methods in terms of making high-level behavioral decisions due to qualities related to handling large state spaces. Nonetheless, their training time, sample efficiency and the feasibility of the learnt behaviors remain key concerns. In this paper, we propose a novel hierarchical reinforcement learning-based decision-making architecture for learning left-turn policies at unsignalized intersections with feasibility guarantees. The proposed technique is comprised of two layers; a high-level learning-based behavioral planning layer which adopts soft actor-critic (SAC) principles to learn high-level, non-conservative yet safe, driving behaviors, and a low-level motion planning layer that uses Model Predictive Control (MPC) framework to ensure feasibility of the two-dimensional left-turn maneuver. The high-level layer generates reference signals of velocity and yaw angles for the ego vehicle taking into account safety and collision avoidance with the intersection vehicles, whereas the low-level motion planning layer solves an optimization problem to track these reference commands taking into account several vehicle dynamic constraints and ride comfort. While training the behavioral SAC-based planning layer, We develop an adaptive entropy regularization technique that results in faster convergence, higher mean rewards, and lower collision rates. We validate the proposed decision-making scheme in simulated environments and compare with other model free Reinforcement Learning (RL) baselines. The results demonstrate that the proposed integrated framework possesses better training and navigation capabilities.
Mohammad K. Al-Sharman, Rowan Dempster, Mohamed A. Daoud, Mahmoud Nasr, Derek Rayside, William W. Melek
IEEE Trans. Intell. Transp. Syst.5
2022 DRG: A Dynamic Relation Graph for Unified Prior-Online Environment Modeling in Urban Autonomous Driving
abstract
Environment modeling is the backbone of how autonomous agents understand the world, and therefore has significant implications for decision-making and verification. Motivated by the success of relational mapping tools such as Lanelet2, we present the Dynamic Relation Graph (DRG). The DRG is a novel method for extending prior relational maps to include online observations, creating a unified en-vironment model which incorporates both prior and online data sources. Our prototype implementation models a finite set of heterogeneous features including road signage and pedestrian movement. However, the methodology behind the DRG can be expanded to a wider range of features in a fashion that does not increase the complexity of behavioral planning. Simulated stress tests indicate the DRG's effectiveness in decreasing decision-making complexity, and deployment on the University of Waterloo's WATonomous research vehicle demonstrates its practical utility. The prototype code will be released at github.com/WATonomous/DRG.
Rowan Dempster, Mohammad K. Al-Sharman, Yeshu Jain, Jeffery Li, Derek Rayside, William W. Melek
ICRA5
2022 Sim-to-Real Domain Adaptation for Lane Detection and Classification in Autonomous Driving
abstract
While supervised detection and classification frameworks in autonomous driving require large labelled datasets to converge, Unsupervised Domain Adaptation (UDA) approaches, facilitated by synthetic data generated from photoreal simulated environments, are considered low-cost and less time-consuming solutions. In this paper, we propose UDA schemes using adversarial discriminative and generative methods for lane detection and classification applications in autonomous driving. We also present Simulanes dataset generator to create a synthetic dataset that is naturalistic utilizing CARLA’s vast traffic scenarios and weather conditions. The proposed UDA frameworks take the synthesized dataset with labels as the source domain, whereas the target domain is the unlabelled real-world data. Using adversarial generative and feature discriminators, the learnt models are tuned to predict the lane location and class in the target domain. The proposed techniques are evaluated using both real-world and our synthetic datasets. The results manifest that the proposed methods have shown superiority over other baseline schemes in terms of detection and classification accuracy and consistency. The ablation study reveals that the size of the simulation dataset plays important roles in the classification performance of the proposed methods. Our UDA frameworks are available at github.com/anita-hu/sim2real-lane-detection and our dataset generator is released at github.com/anita-hu/simulanes.
Chuqing Hu, Sinclair Hudson, Martin Ethier, Mohammad K. Al-Sharman, Derek Rayside, William W. Melek
IV5
2022 Simultaneous Feasible Local Planning and Path-Following Control for Autonomous Driving
abstract
In this paper, a new approach for lane change and double-lane change planning and following for autonomous driving is proposed. Herein, we introduce a novel technique, based on exponential functions, to generate online and feasible lane change maneuvers; these maneuvers satisfy the constraints on the maximum allowable curvature a given vehicle can handle. In addition, a simultaneous local path planning and path-following control framework is adapted. The framework utilizes a multi-threading architecture to run the local planner module concurrently with the control module. The planning module generates parametric reference paths based on the proposed lane change and double-lane change maneuvers. The control module is based on a Model Predictive Path-following Control (MPFC) scheme, which achieves the path following objective while satisfying vehicle’s state and control limits. To validate the proposed framework, several real-time simulation scenarios are designed and tested on CARLA soft real-time vehicle simulator. The results show the effectiveness of the proposed framework in generating and smoothly following lane change maneuvers.
Mohamed A. Daoud, Mohamed W. Mehrez, Derek Rayside, William W. Melek
IEEE Trans. Intell. Transp. Syst.3
2018 Improving construction industry process interoperability with Industry Foundation Processes (IFP)
Behrooz Golzarpoor, Carl T. Haas, Derek Rayside, Seokyoung Kang, Matthew Weston
Adv. Eng. Informatics3
2018 Measuring the Impact of Code Dependencies on Software Architecture Recovery Techniques
abstract
Many techniques have been proposed to automatically recover software architectures from software implementations. A thorough comparison among the recovery techniques is needed to understand their effectiveness and applicability. This study improves on previous studies in two ways. First, we study the impact of leveraging accurate symbol dependencies on the accuracy of architecture recovery techniques. In addition, we evaluate other factors of the input dependencies such as the level of granularity and the dynamic-bindings graph construction. Second, we recovered the architecture of a large system, Chromium, that was not available previously. Obtaining the ground-truth architecture of Chromium involved two years of collaboration with its developers. As part of this work, we developed a new submodule-based technique to recover preliminary versions of ground-truth architectures. The results of our evaluation of nine architecture recovery techniques and their variants suggest that (1) using accurate symbol dependencies has a major influence on recovery quality, and (2) more accurate recovery techniques are needed. Our results show that some of the studied architecture recovery techniques scale to very large systems, whereas others do not.
Thibaud Lutellier, Devin Chollak, Joshua Garcia, Lin Tan 0001, Derek Rayside, Nenad Medvidovic, Robert Kroeger
IEEE Trans. Software Eng.5
2017 Bordeaux: A Tool for Thinking Outside the Box
Vajih Montaghami, Derek Rayside
FASE2
2016 Improving process conformance with Industry Foundation Processes (IFP)
Behrooz Golzarpoor, Carl T. Haas, Derek Rayside
Adv. Eng. Informatics3
2015 Comparing Software Architecture Recovery Techniques Using Accurate Dependencies
abstract
Many techniques have been proposed to automatically recover software architectures from software implementations. A thorough comparison among the recovery techniques is needed to understand their effectiveness and applicability. This study improves on previous studies in two ways. First, we study the impact of leveraging more accurate symbol dependencies on the accuracy of architecture recovery techniques. Previous studies have not seriously considered how the quality of the input might affect the quality of the output for architecture recovery techniques. Second, we study a system (Chromium) that is substantially larger (9.7 million lines of code) than those included in previous studies. Obtaining the ground-truth architecture of Chromium involved two years of collaboration with its developers. As part of this work we developed a new sub module-based technique to recover preliminary versions of ground-truth architectures. The other systems that we study have been examined previously. In some cases, we have updated the ground-truth architectures to newer versions, and in other cases we have corrected newly discovered inconsistencies. Our evaluation of nine variants of six state-of-the-art architecture recovery techniques shows that symbol dependencies generally produce architectures with higher accuracies than include dependencies. Despite this improvement, the overall accuracy is low for all recovery techniques. The results suggest that (1) in addition to architecture recovery techniques, the accuracy of dependencies used as their inputs is another factor to consider for high recovery accuracy, and (2) more accurate recovery techniques are needed. Our results show that some of the studied architecture recovery techniques scale to the 10M lines-of-code range (the size of Chromium), whereas others do not.
Thibaud Lutellier, Devin Chollak, Joshua Garcia, Lin Tan 0001, Derek Rayside, Nenad Medvidovic, Robert Kroeger
ICSE (2)5
2015 Pattern-based debugging of declarative models
abstract
Pattern-based debugging compares the engineer's model to a pre-computed library of patterns, and generates discriminating examples that help the engineer decide if the model's constraints need to be strengthened or weakened. A number of tactics are used to help connect the generated examples to the text of the model. This technique augments existing example/counter-example generators and unsatisfiable core analysis tools, to help the engineer better localize and understand defects caused by complete overconstraint, partial overconstraint, and underconstraint. The technique is applied to localizing, understanding, and fixing a defect in an Alloy model of Dijkstra's Dining Philosopher's problem. Automating the search procedure remains as essential future work.
Vajih Montaghami, Derek Rayside
MoDELS2
2014 Scaling exact multi-objective combinatorial optimization by parallelization
abstract
Multi-Objective Combinatorial Optimization (MOCO) is fundamental to the development and optimization of software systems. We propose five novel parallel algorithms for solving MOCO problems exactly and efficiently. Our algorithms rely on off-the-shelf solvers to search for exact Pareto-optimal solutions, and they parallelize the search via collaborative communication, divide-and-conquer, or both. We demonstrate the feasibility and performance of our algorithms by experiments on three case studies of software-system designs. A key finding is that one algorithm, which we call FS-GIA, achieves substantial (even super-linear) speedups that scale well up to 64 cores. Furthermore, we analyze the performance bottlenecks and opportunities of our parallel algorithms, which facilitates further research on exact, parallel MOCO.
Jianmei Guo, Edward Zulkoski, Rafael Olaechea, Derek Rayside, Krzysztof Czarnecki 0001, Sven Apel, Joanne M. Atlee
ASE4
2014 Comparison of exact and approximate multi-objective optimization for software product lines
abstract
Software product lines (SPLs) allow stakeholders to manage product variants in a systematical way and derive variants by selecting features. Finding a desirable variant is often difficult, due to the huge configuration space and usually conflicting objectives (e.g., lower cost and higher performance). This scenario can be characterized as a multi-objective optimization problem applied to SPLs. We address the problem using an exact and an approximate algorithm and compare their accuracy, time consumption, scalability, parameter setting requirements on five case studies with increasing complexity. Our empirical results show that (1) it is feasible to use exact techniques for small SPL multi-objective optimization problems, and (2) approximate methods can be used for large problems but require substantial effort to find the best parameter setting for acceptable approximation which can be ameliorated with known good parameter ranges. Finally, we discuss the tradeoff between accuracy and time consumption when using exact and approximate techniques for SPL multi-objective optimization and guide stakeholders to choose one or the other in practice.
Rafael Olaechea, Derek Rayside, Jianmei Guo, Krzysztof Czarnecki 0001
SPLC2
2013 On the simplicity of synthesizing linked data structure operations
abstract
We argue that synthesizing operations on recursive linked data structures is not as hard as it appears and is, in fact, within reach of current SAT-based synthesis techniques - with the addition of a simple approach that we describe to decompose the problem into smaller parts. To generate smaller pieces of code, i.e., shorter routines, is obviously easier than large and complex routines, and, also, there is more potential for automating the code synthesis.
Darya Kurilova, Derek Rayside
GPCE2
2013 Example-driven modeling: model = abstractions + examples
abstract
We propose Example-Driven Modeling (EDM), an approach that systematically uses explicit examples for eliciting, modeling, verifying, and validating complex business knowledge. It emphasizes the use of explicit examples together with abstractions, both for presenting information and when exchanging models. We formulate hypotheses as to why modeling should include explicit examples, discuss how to use the examples, and the required tool support. Building upon results from cognitive psychology and software engineering, we challenge mainstream practices in structural modeling and suggest future directions.
Kacper Bak, Dina Zayan, Krzysztof Czarnecki 0001, Michal Antkiewicz, Zinovy Diskin, Andrzej Wasowski, Derek Rayside
ICSE7
2013 Visualization and exploration of optimal variants in product line engineering
abstract
The decision-making process in Product Line Engineering (PLE) is often concerned with variant qualities such as cost, battery life, or security. Pareto-optimal variants, with respect to a set of objectives such as minimizing a variant's cost while maximizing battery life and security, are variants in which no single quality can be improved without sacrificing other qualities. We propose a novel method and a tool for visualization and exploration of a multi-dimensional space of optimal variants (i.e., a Pareto front). The visualization method is an integrated, interactive, and synchronized set of complementary views onto a Pareto front specifically designed to support PLE scenarios, including: understanding differences among variants and their positioning with respect to quality dimensions; solving trade-offs; selecting the most desirable variants; and understanding the impact of changes during product line evolution on a variant's qualities. We present an initial experimental evaluation showing that the visualization method is a good basis for supporting these PLE scenarios.
Alexandr Murashkin, Michal Antkiewicz, Derek Rayside, Krzysztof Czarnecki 0001
SPLC3
2012 Synthesizing iterators from abstraction functions
abstract
A technique for synthesizing iterators from declarative abstraction functions written in a relational logic specification language is described. The logic includes a transitive closure operator that makes it convenient for expressing reachability queries on linked data structures. Some optimizations, including tuple elimination, iterator flattening, and traversal state reduction, are used to improve performance of the generated iterators.
Derek Rayside, Vajih Montaghami, Francesca Leung, Albert Yuen, Kevin Xu, Daniel Jackson 0001
GPCE1
2011 Unifying execution of imperative and declarative code
abstract
We present a unified environment for running declarative specifications in the context of an imperative object-Oriented programming language. Specifications are Alloy-like, written in first-order relational logic with transitive closure, and the imperative language is Java. By being able to mix imperative code with executable declarative specifications, the user can easily express constraint problems in place, i.e., in terms of the existing data structures and objects on the heap. After a solution is found, the heap is updated to reflect the solution, so the user can continue to manipulate the program heap in the usual imperative way. We show that this approach is not only convenient, but, for certain problems can also outperform a standard imperative implementation. We also present an optimization technique that allowed us to run our tool on heaps with almost 2000 objects.
Aleksandar Milicevic, Derek Rayside, Kuat Yessenov, Daniel Jackson 0001
ICSE2
2009 Equality and hashing for (almost) free: Generating implementations from abstraction functions
abstract
In an object-oriented language such as Java, every class requires implementations of two special methods, one for determining equality and one for computing hash codes. Although the specification of these methods is usually straightforward, they can be hard to code (due to subclassing, delegation, cyclic references, and other factors) and often harbor subtle faults. A technique is presented that simplifies this task. Instead of writing code for the methods, the programmer gives, as a brief annotation, an abstraction function that defines an abstract view of an object's representation, and sometimes an additional observer in the form of an iterator method. Equality and hash codes are then computed in library code that uses reflection to read the annotations. Experiments on a variety of programs suggest that, in comparison to writing the methods by hand, our technique requires less text from the programmer and results in methods that are more often correct.
Derek Rayside, Zev Benjamin, Rishabh Singh, Joseph P. Near, Aleksandar Milicevic, Daniel Jackson 0001
ICSE1
2007 Object ownership profiling: a technique for finding and fixing memory leaks
abstract
We introduce object ownership profiling, a technique forfinding and fixing memory leaks in object-oriented programs. Object ownership profiling is the first memory profiling technique that reports both a hierarchy of allocated objects along with size and time information aggregated up that hierarchy. In addition, it reveals the cross-hierarchy interactions that areessential to pinpointing the source of the leak.
Derek Rayside, Lucy Mendel
ASE1
2004 Automating commutativity analysis at the design level
abstract
Two operations commute if executing them serially in either order results in the same change of state. In a system in which commands may be issued simultaneously by different users, lack of commutativity can result in unpredictable behaviour, even if the commands are serialized, because one user's command may be preempted by another's, and thus executed in an unanticipated state. This paper describes an automated approach to analyzing commutativity. The operations are expressed as constraints in a declarative modelling language such as Alloy, and a constraint solver is used to find violating scenarios. A case study application to the beam scheduling component of a proton therapy machine (originally specified in OCL) revealed several violations of commutativity in which requests from medical technicians in treatment rooms could conflict with the actions of a beam operator in a master control room. Some of the issues involved in automating the analysis for OCL itself are also discussed.
Greg Dennis, Robert Seater, Derek Rayside, Daniel Jackson 0001
ISSTA3
2002 Extracting Java library subsets for deployment on embedded systems
Derek Rayside, Kostas Kontogiannis
Sci. Comput. Program.1
2001 On the Syllogistic Structure of Object-Oriented Programming
abstract
Recent works by J.F. Sowa (2000) and D. Rayside and G.T. Campbell (2000) demonstrate that there is a strong connection between object-oriented programming and the logical formalism of the syllogism, first set down by Aristotle in the Prior Analytics (1928). In this paper, we develop an understanding of polymorphic method invocations in terms of the syllogism, and apply this understanding to the design of a novel editor for object-oriented programs. This editor is able to display a polymorphic call graph, which is a substantially more difficult problem than displaying a non-polymorphic call graph. We also explore the design space of program analyses related to the syllogism, and find that this space includes Unique Name, Class Hierarchy Analysis, Class Hierarchy Slicing, Class Hierarchy Specialization, and Rapid Type Analysis.
Derek Rayside, Kostas Kontogiannis
ICSE1
2000 An Aristotelian understanding of object-oriented programming
abstract
The folklore of the object-oriented programming community at times maintains that object-oriented programming has drawn inspiration from philosophy, specically that of Aristotle. We investigate this relation, first of all, in the hope of attaining a better understanding of object-oriented programming and, secondly, to explain aspects of Aristotelian logic to the computer science research community (since it differs from first order predicate calculus in a number of important ways). In both respects we endeavour to contribute to the theory of objects, albeit in a more philosophical than mathematical fashion.
Derek Rayside, Gerard T. Campbell
OOPSLA1
2000 Aristotle and object-oriented programming: why modern students need traditional logic
abstract
Classifying is a central activity in object-oriented programming and distinguishes it from procedural programming. Traditional logic, initiated by Aristotle, assigns classification to our first activity in reasoning, whereby we come to know what a thing is. Such a grasp of the thing's whatness is the foundation for all further reasoning about it.
Derek Rayside, Gerard T. Campbell
SIGCSE1