Nikunj Mehta is a Ph.D. Candidate at University of Southern California, Los Angeles. He works on the intersection of software engineering and distributed systems, with an aim to develop systematic techniques that can join the mainstream of software development. His dissertation research focuses on constructively composing elements of style-based architectures, in turn, enabling their systematic analysis as well as implementation. He has been a practicing software architect for several years, and has published at leading conferences in software engineering including ICSE and FSE.
Software architectures provide high-level abstractions in the form of coarse-grained processing, connecting, and data elements, their interfaces, and their configurations. The system composition patterns and constraints on architectural elements comprise architectural styles, which are targeted at families of systems with shared characteristics. Styles are therefore reusable software architectural idioms and have the potential to economize software development. Existing research on architectural styles provides little guidance for the systematic design and construction of architectural style elements. This talk proposes a framework, Alfa, for systematically and constructively composing "architectural primitives" to obtain elements of architectural styles, and, in turn, software architectures. To explicate their expressiveness, Alfa's primitives are also mapped to Reo's primitive channels. Moreover, a semantic model of Alfa compositions is presented using finite state processes (FSP) and Alloy, a first-order predicate logic. The use of these formal notations imparts sound meanings to Alfa compositions as well as enables their tool-driven analysis. Network-based styles are used to demonstrate our approach.