Design Fragments

Abstract

Frameworks are a valuable way to share designs and implementations on a large scale. Client programmers, however, have difficulty using frameworks. They find it difficult to understand non-local client-framework interactions, design solutions when they do not own the architectural skeleton, gain confidence that they have engaged with the framework correctly, represent their successful engagement with the framework in a way that can be shared with others, ensure their design intent is expressed in their source code, and connect with external files. A design fragment is a specification of how a client program can use framework resources to accomplish a goal. From the framework, it identifies the minimal set of classes, interfaces, and methods that should be employed. For the client program, it specifies the client-framework interactions that must be implemented. The structure of the client program is specified as roles, where the roles can be filled by an actual client program's classes, fields, and methods. A design fragment exists separately from client programs, and can be bound to the client program via annotations in their source code. These annotations express design intent; specifically, that it is the intention of the client programs to interact with the framework as specified by the design fragment.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Apr 19, 2007
Accession Number
ADA469340

Entities

People

  • George Fairbanks

Organizations

  • Carnegie Mellon University

Tags

DTIC Thesaurus Topics

  • Artificial Intelligence
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Debugging
  • Information Systems
  • Java Programming Language
  • Object Oriented Programming
  • Object-Oriented Programming Language
  • Operating Systems
  • Programming Languages
  • Software Design
  • Software Development
  • Template Patterns
  • Web Browsers

Fields of Study

  • Computer science

Readers

  • Computational Linguistics
  • Parallel and Distributed Computing.
  • Systems Analysis and Design