Proper Plugin Protocols

Abstract

The ability of the software engineering community to achieve high levels of reuse from software frameworks has been tempered by the difficulty in understanding how to reuse them properly. When written correctly, a plugin can take advantage of the framework's code and architecture to provide a rich application with relatively few lines of code. Unfortunately, doing this correctly is difficult because frameworks frequently require plugin developers to be aware of complex protocols between objects, and improper use of these protocols causes exceptions and unexpected behavior at run time. This dissertation introduces collaboration constraints, rules governing how multiple objects may interact in a complex protocol. These constraints are particularly difficult to understand and analyze because they may extend across type boundaries and even programming language boundaries. This thesis improves the state of the art through two mechanisms. First it provides a deep understanding of these collaboration constraints and the framework designs which create them. Second, it introduces Fusion, an adoptable specification language and static analysis tool, that detects broken collaboration constraints in plugin code and demonstrates how to achieve this goal in a cost-effective manner that is practical for industry use. In this dissertation, I have done an empirical study of framework help forums which showed that collaboration constraints are burdensome for developers, as they take hours or even days to resolve. From this empirical study, I have identified several common properties of collaboration constraints. This motivated a new specification language, called Fusion, that is tailored for specifying collaboration constraints in a practical way. The specification language uses relationships to describe the abstract associations between objects and allows developers to specify collaboration constraints as logical predicates of relationships.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Dec 28, 2011
Accession Number
ADA557361

Entities

People

  • Ciera N. Jaspan

Organizations

  • Carnegie Institute of Technology

Tags

Communities of Interest

  • Autonomy
  • C4I

DTIC Thesaurus Topics

  • Abstracts
  • Boundaries
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Debugging
  • Formal Languages
  • Graphical User Interface
  • Language
  • Object Oriented Programming
  • Programming Languages
  • Software Design
  • Software Development
  • Theses
  • User Interface
  • Web Browsers

Fields of Study

  • Computer science
  • Engineering

Readers

  • Database Systems and Applications
  • Systems Analysis and Design
  • Team-Based Human-Centered Cognitive Task Decision Making and Information Performance.