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.