- Library Home /
- Search Collections /
- Open Collections /
- Browse Collections /
- UBC Theses and Dissertations /
- Essential software structure through implicit context
Open Collections
UBC Theses and Dissertations
UBC Theses and Dissertations
Essential software structure through implicit context Walker, Robert James
Abstract
Software reuse and evolution are problematic. Modules tend to express a great deal of knowledge about the external modules, large-scale structure, and behaviour of the systems in which they reside. As a result, the reusability of individual modules is decreased as they are too dependent on other modules. Likewise, the evolvability of systems is decreased as they are too dependent on the details of individual modules. However, we must have some dependences between our modules, or they would not be able to operate together. Not all dependences are equally bad, then. Each module can be seen to have a minimal core, an essential structure, beyond which it makes no sense to reduce. This essential structure describes the basic responsibilities of that module, and its expectations of the responsibilities of external modules. The thesis of this dissertation is that expressing the essential structure of our software modules, through the use of implicit context, makes those modules easier to reuse and the systems containing those modules easier to evolve. Implicit context revolves around the notion that we must abandon the need for all modules to be defined with respect to an absolute frame of reference. Instead, modules can be defined relative to a reference frame of convenience. In order for modules to work together, the inconsistencies in their independent world views must be reconciled when they attempt to communicate. Implicit context provides the novel mechanism of contextual dispatch to perform this reconciliation. When any communication passes into or out of a module, that communication may be rerouted, altered, replaced, or discarded altogether, as the situation dictates. This translation process sometimes requires access to information about the communication history of the system; objects previously passed can be retrieved, or the appropriate recipient of a message can be determined. The dissertation describes a prototype tool that supports the application of implicit context to Java source code. The thesis is validated by applying this tool in two case studies: comparing the evolution of an implicit context-based implementation of an FTP server to an object-oriented implementation; and reusing the Outline View of the Eclipse integrated development environment in a different application, even though the Outline View was not designed for such reuse.
Item Metadata
Title |
Essential software structure through implicit context
|
Creator | |
Publisher |
University of British Columbia
|
Date Issued |
2003
|
Description |
Software reuse and evolution are problematic. Modules tend to express a great deal of
knowledge about the external modules, large-scale structure, and behaviour of the systems
in which they reside. As a result, the reusability of individual modules is decreased as they
are too dependent on other modules. Likewise, the evolvability of systems is decreased as
they are too dependent on the details of individual modules.
However, we must have some dependences between our modules, or they would not
be able to operate together. Not all dependences are equally bad, then. Each module can
be seen to have a minimal core, an essential structure, beyond which it makes no sense to
reduce. This essential structure describes the basic responsibilities of that module, and its
expectations of the responsibilities of external modules. The thesis of this dissertation is
that expressing the essential structure of our software modules, through the use of implicit
context, makes those modules easier to reuse and the systems containing those modules
easier to evolve.
Implicit context revolves around the notion that we must abandon the need for all
modules to be defined with respect to an absolute frame of reference. Instead, modules
can be defined relative to a reference frame of convenience. In order for modules to work
together, the inconsistencies in their independent world views must be reconciled when
they attempt to communicate. Implicit context provides the novel mechanism of contextual
dispatch to perform this reconciliation. When any communication passes into or out of a
module, that communication may be rerouted, altered, replaced, or discarded altogether,
as the situation dictates. This translation process sometimes requires access to information
about the communication history of the system; objects previously passed can be retrieved,
or the appropriate recipient of a message can be determined.
The dissertation describes a prototype tool that supports the application of implicit
context to Java source code. The thesis is validated by applying this tool in two case studies:
comparing the evolution of an implicit context-based implementation of an FTP server to
an object-oriented implementation; and reusing the Outline View of the Eclipse integrated
development environment in a different application, even though the Outline View was not
designed for such reuse.
|
Extent |
13098586 bytes
|
Genre | |
Type | |
File Format |
application/pdf
|
Language |
eng
|
Date Available |
2009-11-13
|
Provider |
Vancouver : University of British Columbia Library
|
Rights |
For non-commercial purposes only, such as research, private study and education. Additional conditions apply, see Terms of Use https://open.library.ubc.ca/terms_of_use.
|
DOI |
10.14288/1.0051659
|
URI | |
Degree | |
Program | |
Affiliation | |
Degree Grantor |
University of British Columbia
|
Graduation Date |
2003-05
|
Campus | |
Scholarly Level |
Graduate
|
Aggregated Source Repository |
DSpace
|
Item Media
Item Citations and Data
Rights
For non-commercial purposes only, such as research, private study and education. Additional conditions apply, see Terms of Use https://open.library.ubc.ca/terms_of_use.