Jeffrey M. Barnes

This page describes my ongoing and past research areas.

Current

Architecture evolution
Conventional understandings of software architecture focus on modeling and analyzing a target system. While highly useful, these models cannot readily account for the evolutionary aspect of software architecture: software systems change architecturally over time, for both planned and unexpected reasons. We are developing a framework to allow architects to reason about the evolutionary path that a software architecture will follow, to express architectural constraints over these paths, and to aid in the planning of development activities.

Collaborators: David Garlan, Bradley Schmerl, Orieta Celiku, Ipek Ozkaya, Arie Gurfinkel, Andres Diaz-Pace, Sagar Chaki

Paper: WICSA’09

Architectural analysis of security
Analyzing software systems for security poses special challenges. Architecture-level approaches to security analysis tend to be broad and do not provide assurance of implementation correctness. Implementation-level approaches are often narrowly focused and do not lend themselves to enforcement of naturally expressed architectural ideas. We have developed an approach that enables both reasoning in terms of a run-time architecture and tying the architecture to code. This allows architects to enforce architectural security constraints and have some confidence that they hold in an actual implementation.

Collaborator: Marwan Abi-Antoun

Paper: ASE’10
Technical reports: CMU-ISR-09-113, CMU-ISR-10-106

Service-oriented architecture
SOA is tremendously popular for a variety of industrial and governmental applications. But what is SOA architecturally? If it is an architectural style in the technical sense of the term, what are its element types, and what constraints does it impose? How can we model SOA formally?

Collaborators: David Garlan, Bradley Schmerl, Vishal Dwivedi, Minseong Kim

Past

Object-relational mapping
My undergraduate honors thesis was a survey of object-relational mapping technology. Many object-oriented applications, especially Web applications, use relational databases for persistence. This often results in duplication of structure between the classes in the application and the tables in the database. Object-relational mapping is a way to automate the mapping between classes and tables.

Advisor: Elizabeth Shoop
Other readers: G. Michael Schneider, Daniel Kaplan

Combinatorial representation theory
As an undergraduate, I researched an issue in the subfield of mathematics called representation theory. Via a classical construction, we associated a family of algebras {CGk} to each finite subgroup G of the special unitary group SU2. We proved that the dimension of {CGk} equals the number of closed walks of length 2k on the Coxeter–Dynkin graph or McKay quiver. We also produced a natural bijection between most of these walks and a basis for CGk.

Advisor: Tom Halverson
Second reader: Dan Flath