Research Projects
Refining Partial Behavior Models Under Model Composition and Model Abstraction
Composition and abstraction techniques are crucial for scalable
development of modern software systems. Existing partial-behavior
modeling formalisms, such as Modal Transition Systems (MTS), have the
potential to support gradual refinement of a system's early behavioral
specification. In order to achieve this potential, refinement
of partial behavior models should be correct in the context of
hierarchical architectural specifications where (sub)system models are
composed of smaller subsystems and components. Similarly, particular
developmental activities will require that some details contained in the
model are abstracted.
In this project, with the generous help of my advisor
Nenad Medvidovic, I propose a
foundational framework for reasoning about the implications of refining an
MTS model that
is a composition (or an abstraction) of other models. This is, to a
large extent, a problem yet to be solved. The proposed framework assures that
(1) a refinement of a composition can be realized with refinements of the
individual composed models; and (2) a refinement of an abstract model is
interpreted as a correct refinement of the detailed model. This
framework is envisioned to enable techniques that
support correct and scalable gradual refinement of a software system's
partial behavioral (oftentimes requirements) specification.
Component-Level Partial Behavioral Model Synthesis (MTSGen Tool)
Software component behavior is often captured with state based models
such as Labeled Transition Systems (LTS). The existing techniques for
synthesis of component behavioral models from system specifications do
not account for the partial nature of the these specifications. I
have created a synthesis algorithm for synthesizing component-level Modal
Transition Systems (MTS) from use case scenarios and system-level
properties. The use case scenarios are represented as a set of sequence
diagrams, while the system-level properties are given in terms of OCL
constraints. The synthesis algorithm and the synthesized MTSs can help
discover system design flaws such as (1) discrepancies between the
system scenarios and properties, (2) underconstraining, (3) and
overconstraining properties, (4) underspecified, and (5) missing
scenarios. My advisor on this project is
Nenad Medvidovic. The proposed
algorithm is implemented in our preliminary MTSGen prototype tool which is available
here.
Domain Specific Software Architecture of the Grid
A
domain-specific software architecture (DSSA) represents an effective,
generalized, reusable solution to constructing software systems within a
given application domain. The previously proposed grid reference architecture is not reflected in the existing successful grid technologies.
For this reason, a group of colleagues from the Software Architecture Research
Group
and I have reverse engineered the software architectures of eighteen
grid technologies, and studied how they violate the existing reference
architecture. Based on our findings we have observed commonalities
between existing grids and proposed a more refined grid reference
architectures which more closely captures important architectural
characteristics of existing grid technologies. Our DSSA also contains
variation points in the architecture, choices of which precisely
determine the type of the grid under consideration (i.e., if the grid is
a data grid or a computational gird). Our
reference architecture also allows us to more definitively identify a software system as
a grid technology, and distinguish it from software libraries,
middleware, and frameworks. I have worked on the grid DSSA with my
colleagues Chris Mattmann,
Joshua Garcia, Daniel Popescu, and
Nenad Medvidovic.