Compositional approaches to software development, recently including software architectures, are believed to be key to developing large, complex systems. Delivering the full value of architecture-based design , however, would require that we identify the primitives underlying software architectural elements and the correspondence between various levels of software design abstractions (e.g., analogously to how this is done in computer hardware architecture). However, there is an almost complete lack of understanding of such software architectural primitives, directly motivating my research.

Architectural styles in particular represent a potentially fertile area for codifying software architectural primitives. Styles facilitate systematic, high-level reuse in the form of recurring organizational patterns of coarse-grained architectural elements (software components and connectors). Three difficulties exist with the use of styles that can be related to the unavailability of architectural primitives:

  • Styles cannot be easily compared against one another, and similarities between styles are not well understood;
  • Architects have to manually create ad-hoc assortments of various styles to suit their application needs; and
  • Ensuring the adherence of a style-based application implementation to the style definition.

My work has focused primarily on developing a systematic understanding of architectural styles based on a small set of recurring architectural primitives and proposes an extensible composition framework for architectural styles based on these primitives, which is, in turn, used as the basis for effective style implementation. This framework, called Alfa, has been applied successfully to different architectural styles to date; lightweight compositional models of the styles have been created using the Alloy formal modeling notation, whereas implementation infrastructures for these styles have been developed in Java. While it would be premature to claim that Alfa is sufficiently expressive to represent any arbitrary architectural style, our experience to date suggests that we have converged on a set of primitives that effectively captures the characteristics of a large number of styles.

More details about this and other research I have done so far can be found using the following links:

WelcomeCV | Publications | HomeResources