Posters

Room: Renaissance BallroomDate: Oct 20, 2008Time: 17:30 - 19:30
ChairsNadyne Mielke
Microsoft
Olaf Zimmermann
IBM Research GmbH

OOPSLA Posters provide an excellent forum for authors and conference attendees to discuss work on the horizon of research and practice. Posters showcase introduce interesting, innovative work or discuss late-breaking results. The Poster session, held during the Monday Welcome Reception, is highly interactive. It allows interested participants to engage in discussions about the work presented by the authors.

Posters will on display (but unattended) in the OOPSLA Courtyard from Tuesday through Thursday.


Posters

Worked Examples for Sound OO Pedagogy: The Seventh "Killer Examples" Workshop

Adrienne Decker
University at Buffalo, SUNY
Carl Alphonce
University at Buffalo, SUNY
Jürgen Börstler
Umeå University
Michael Caspersen
Univeristy of Aarhus

Abstract

This year's theme of the "killer examples" workshop is "worked examples"; examples, emphasizing OO principles, that can be started in the classroom and then finished by the students on their own. The poster will summarize the workshop results and offer the OOPSLA community a forum for the exchange of experiences.



Hierarchical Inter-Object Traces for Specification Mining

David Lo
Singapore Management University
Shahar Maoz
The Weizmann Institute of Science

Abstract

Major challenges of dynamic analysis approaches to specification mining include scalability over long traces as well as comprehensibility and expressivity of results. We present a novel use of object hierarchies over inter-object traces as an abstraction/refinement mechanism enabling scalable, incremental, top-down mining of scenario-based specifications.



Compile-time Type-checking for Custom Type Qualifiers in Java

Matt M. Papi
Massachusetts Institute of Technology
Mahmood Ali
Massachusetts Institute of Technology
Michael D. Ernst
Massachusetts Institute of Technology

Abstract

The Checker Framework enables adding custom type qualifiers to the Java language in a backward-compatible way. The Checker Framework allows programmers to write type qualifiers in their programs and to create compiler plug-ins that enforce the semantics of these qualifiers at compile time. Using the plug-ins, programmers can improve the quality of their code without disturbing their development workflow. Our case studies demonstrate that the Checker Framework is scalable, easy to use, and effective in detecting and preventing errors. It has been used to detect real errors in null pointer dereferencing, side effects, equality tests, and initialization, among others.



WebDSL - A Domain-Specific Language for Dynamic Web Applications

Danny M. Groenewegen
Delft University of Technology
Zef Hemel
Delft University of Technology
Lennart C. L. Kats
Delft University of Technology
Eelco Visser
Delft University of Technology

Abstract

WebDSL is a domain-specific language for the implementation of dynamic web applications with a rich datamodel. It consists of a core language with constructs to define entities, pages and business logic. Higher-level abstractions, modeling access control and workflow, are defined in a modular fashion as extensions of the core language.



Testing with Concepts and Axioms in C++

Anya Helene Bagge
University of Bergen
Valentin David
University of Bergen
Magne Haveraaen
University of Bergen

Abstract

Unit testing is a popular way of increasing software reliability. Axioms, known from program specification, allow functionality to be described as rules or equations. We show a method and prototype tool for using the proposed concept and axiom features of the upcoming C++0x standard for automated unit testing.



Interactive Exploration of Compacted Visualizations for Understanding Behavior in Complex Software

Elizabeth L. Murnane
Architexa
Vineet Sinha
Architexa

Abstract

In this poster we present Chrono, a tool that creates sequence diagram based visualizations. Since the diagrams produced by traditional sequence diagramming tools become large and unmanageable when dealing with complex code bases, Chrono focuses on removing less relevant information, condensing diagram components, and allowing for interactive exploration.



Novel Language Syntax to Enhance Readability - White Space, Parameter Sets, & Control Structures

Clifton Kussmaul
Muhlenberg College

Abstract

This poster describes the preliminary status of a project to investigate novel syntax features to enhance programming language readability. In particular, we present sample syntax for the use of white space, multiple parameter sets, infix object specification, and programmer-defined control structures. We seek feedback and constructive criticism.



Visualizing the Word Structure of Java Class Names

Craig Anslow
Victoria University of Wellington
James Noble
Victoria University of Wellington
Stuart Marshall
Victoria University of Wellington
Ewan Tempero
University of Auckland

Abstract

Large amounts of software have been written since the Java language was created. There is little known about the word structure Java within class names. We have created visualizations of words used in class names from the Java API specification and 91 open-source Java applications. Our visualizations will help expose which words are used in practice.



Understanding Code Architectures via Interactive Exploration and Layout of Layered Diagrams

Vineet Sinha
Architexa, Inc.
Elizabeth L. Murnane
Architexa, Inc.
Scott W. Kurth
Accenture Technology Labs
Edy S. Liongosari
Accenture Technology Labs
Rob Miller
MIT CSAIL
David Karger
MIT CSAIL

Abstract

Visualization tools that target helping developers understand software have typically had visual scalability limitations, requiring significant input before providing useful results. In contrast, we present Strata, which has been designed to actively help users by providing layered diagrams. The defaults used are based on the package structure, and user interactions can allow for overriding these defaults and focusing on relevant parts of the codebase.



eMoose - A Memory Aid for Software Developers

Uri Dekel
Carnegie Mellon University

Abstract

Developers rely on knowledge of project artifacts to avoid usage errors and on knowledge of their activities to maintain orientation and trace decisions. Unfortunately, human memory is unreliable, and existing documentation practices are costly and limited in their ability to draw attention to preserved knowledge. We propose a unified memory aid aimed at addressing these problems using episodic and contextual presentations of lightweight subjective knowledge elements supplied by the developers and objective events elicited from IDE monitors. In particular, directives on call targets are pushed into the attention of client code authors.



Scalable, Expressive, and Context-Sensitive Code Smell Display

Emerson Murphy-Hill
Portland State University

Abstract

Code smell detectors can potentially help programmers identify opportunities to improve the design of software through refactoring. Unfortunately, the user interfaces to existing detectors often do not align with how programmers typically refactor. I argue the importance of scalability, expressivity, and context-sensitivity when displaying smells, and present a prototype tool that embodies these properties.



Alias Count Facilitate Ownership Transfer

Pradeep kumar Duraisamy S
Anna University

Abstract

Existing ownership system forces fixed ownership, whereby an object cannot change its owner at runtime. Transferring ownership dynamically may produce security holes like reference exposure, dangling pointer, etc., that may affect the predestined securities. Here we focus on representing alias bounds on objects which helps in ownership transfer.



Arbitrary Non-Contiguous Pieces of Computation: a New Join Point Model for Aspect-Oriented Programming

Hossein Sadat-Mohtasham
University of Alberta

Abstract

Aspect-oriented mechanisms are characterized by their join point models, which define join points (meaningful points in a program's representation), pointcuts (means of specifying a set of join points), and advice (means of affecting the bahaviour of selected join points). Dynamic join point models define join points as the meaningful points in program execution. Pointcuts select a set of join points of interest, each of which is selected and advised individually and independently. That is, the relationships between join points are not taken into account in join point selection and advice, except in a limited predefined way (e.g. cflow). However, there are natural situations in which join points should only be selected if they play a specific role in a defined relationship with other join points. We propose a new join point model that takes join point interrelationships into account and allows designation of arbitrary computations as join points.



Mining for Computing Skills

Andrew Aken
Southern Illinois University

Abstract

This research utilizes web content mining to retrieve job ads for graduates of Computing degree programs, extract the skills listed in those job ads, and analyze the data to determine which skills are most prevalent in the job market and which combinations of skills are most in demand.



Preparing for C++0x

Valentin David
University of Bergen

Abstract

C++0x brings us new features that extend the C++ language syntax. This requires new tools to parse and work with the language. However, a C++ front-end is non trivial to write from scratch. We use an extensible C++ front-end to add concepts.