|
 |
OI Design Methodologies
|
We are developing a design methodology that we call Open Implementation Analysis
and Design (tm), or OIA/D (tm) for short. OIA/D provides a set of techniques
for determining the requirements for an Open Implementation, and some constraints
on the design.
We have done our best to provide useful file formats.
For greatest ease and document fidelity, we recommend using a
PDF viewer .
A white paper describing
OIA/D is available in these formats:
|
|
Analysis Components
|
OIA/D has 4 analysis components for capturing design requirements and
design constraints for an OI software module.
-
Black Box Abstraction
-
Determine the abstract interface to the module, independent of implementation
issues.
-
Inherent Implementation Structure
-
Identify the implementation strategies used by every implementation of the
module.
-
Implementation Strategy Dilemmas
-
Identify the implementation strategies that vary from implementation to
implementation, and when each of these strategies is a good idea.
-
Decision Control
-
Determine how clients can tell the module how to select the correct choice
for each Implementation Strategy Dilemma.
|
|
Design
|
A paper
describing OI design guidelines is available in these formats:
We recommend using a PDF viewer, such as
Adobe
Acroread
The analysis components are used to capture design constraints and design
requirements. Once this information is available, the OI can be designed.
We don't have a concrete methodology for designing an OI yet, but we have
developed some implementation techniques, like
MOPs , and we are investigating how existing object-oriented methodologies
relate to OIA/D. |
|
An Example
|
We applied OIA/D to file buffer cache management in operating systems.
-
The Black Box Abstraction is the Open File abstraction seen
in all operating systems. The Open File abstraction implements an open, close,
read, write, and seek interface.
-
The Inherent Implementation Structure is to store the file
data and metadata on a disk and to employ a main memory cache of the disk
blocks in order to mask the slowness of the disk.
-
An Implementation Strategy Dilemma is how to allocate and
manage the slots of the main memory cache so that clients of the file system
get good performance.
-
For Decision Control, some clients can easily tell the operating
system how they will access a file. Other clients prefer to be given a pool
of cache slots and to manage it themselves.
Based on this analysis, we designed a metaobject protocol for controlling
file buffer caches. The metaobject protocol is described in the following
paper.
Chris Maeda. A Metaobject Protocol for Controlling File Buffer Caches.
Proceedings of ISOTAS '96. To appear.
|
|