Our Approach: |
The Metaphor Project is a study of real-time software metamorphosis.
We are interested in ways that software changes form and meaning over time.
Our focus is on the transformation from requirements analysis (problem space)
to design (solutions space). Composed from primitive and reusable software components,
these solutions are instantiations of architectural templates. We are working
on analytical techniques to partition software solutions into reusable
components that minimize the complexity of change. We are also studying
analytical ways to map application requirements to reusable software
solutions.
|
Motivation for Our Research |
A software solution is reusable if its design (blue-print for building
the software) or if the implemented software components are useful in
applications other than that for which they were originally constructed.
The solution (or parts of the solution) must be easily modified to fit
into the new application. Complicated or extensive changes to translate
an existing solution into the desired new solution are expensive and
probably not desirable.
|
Ideally, the functionality is partitioned in a way that promotes reuse
and simplifies changes to the solution. The question of how much and
which functionality should be contained in each component is important
to the changeability of the solution.
|
|
Though our study targets hard real-time
applications such as aircraft control and air traffic control, we are also
conducting research that involves multimedia systems with soft real-time
performance requirements. In the I/O centric world of multimedia, quality
of service is an important theme. We are interested in how changes
in application requirements result in changes to the quality of service
achievable by reusable system solutions. The goal is to design reusable
solutions whose quality of service can be easily adjusted.
|
|
Metaphor Results to Date: |
Our research results include a design for change process that
includes decomposing solutions to promote reusability, a mathematical
representation of dependencies in the decomposed parts, and an algorithm
for localizing dependencies. The process can be applied to various levels
of abstraction from systems and sub-systems (high-level design components)
to packages and modules (low-level design components). We are currently
targeting data-operational dependencies and changes to control flow.
|
We have also developed a generic data model for organizing information
about changes to software systems. Some aspects of the model can be tailored
to suit the needs of a particular product-line, project group, or organization
for which a history of change is being recorded. Our long-term goal is to
automatically feed this information into our process of designing for change.
|
|
We have developed the first prototypes of our CARAT and ACT tools.
CARAT: is a tool for collecting/organizing/searching information about change to software solutions or systems in which software solutions are embedded. Future versions of CARAT will assist the designer in mapping requirements to existing software solutions. ACT: is a tool to provide the designer recommendations on how to partition the functionality in a solution to localize changes. The tool automates those parts of our design for change process that can be modeled mathematically and algorithmically analyzed. Please stay tuned for on-line versions of our prototype tools and tutorials for using them! |
|
Explanation for the Name Metaphor: | So how does the term metaphor
apply to the study of software metamorphosis?
|
A metaphor is literally a "figure of speech in which a word or phrase denoting one kind of object or idea is used
in place of another to suggest a likeness or analogy between them."
|
|
You may recall that on our Metaphor Objectives
page we said that we were interested in how software engineers think about what
they do. As knowledge engineers, we are also studying ways to represent
information that software engineers use to develop real-time software
applications. For instance, we are starting to develop a way to represent
analytical transformations between application requirements (problem
statements) and software solutions (solution statements) so that the software
engineer can more easily reuse and tune existing solutions. Likewise, we
are studying ways to represent metrics that define quality of service.
|
|
Previous Research: | Our previous research resulted in the
development of a real-time operating environment for reconfigurable sensor-based
applications (Chimera), an iconically programmable human-machine
interface for developing control systems (Onika), and computer-based
approaches for managing task assembly.
|
![]() 1. Support for periodic and aperiodic processing. 2. Deadline-based static and dynamic scheduling. 3. Automatic creation and initialization of tasks on multiple real-time processors. 4. Interprocessor communication and synchronization. 5. Dynamically allocatable and globally shared memory. 6. Remote semaphores and procedure calls. Most importantly, the Chimera infrastructure guides the software engineer in the creation of dynamically reconfigurable and reusable control applications. Software engineers following the Chimera method create software modules that have a standard form and that communicate via prescribed protocols. They design software systems which have a port-based architecture. Software modules can be interchanged so long as input/output requirements of the system are met. The Chimera method supports a standard directory structure for organizing and naming application modules, library routines, and lower-level (device driver) software. Development on a Unix workstation is integrated with the target operating environment. Questions regarding Chimera should be directed to Dr. David B. Stewart. |
|
![]() This integration with a Unix host environment enabled a connection to be made to the Internet. Application engineers at Sandia National Laboratories were able to create control applications using software modules residing at Carnegie Mellon University (CMU) and to execute these applications remotely on CMU target processors. The concept of virtual laboratories became a reality. We are now involved in a new study of virtual software design environments. |
For further information about this project,
please contact Carol Hoover at clh@cs.cmu.edu
.
Last edit on 13 April 1998.