The Role of Architecture in Facilitating Design Collaboration
Carnegie Mellon University, Pittsburgh PA
Investigators
Abstract
This project seeks to develop a scientific basis for principles for relating architectures to artifacts, and experimentally validate those principles, with specific application to software design. The intimate relationship between artifact architecture and collaboration in artifact design is widely acknowledged but inadequately understood. Architectures describe a system in terms of its high-level structures and the relationships between them. Because architectural descriptions take advantage of the "nearly decomposable" nature of the designed artifact, they provide a powerful basis for dividing the work in such a way that teams can design individual components without being overwhelmed by the need to coordinate with other teams designing other components. The decoupling of functionality defined by the architecture translates into a decoupling of the work, which makes collaboration feasible. Yet, components interact, and the details of these interactions create varied and potentially complex interdependencies in the design work. We cannot fully exploit the potential of architectures for supporting coordination because we know very little about the fit between organizational characteristics and architectures. How do organizational characteristics constrain the range of architectural styles an organization can use in design? How do architectural characteristics constrain the range of organizations that can build them? In many kinds of design, we also know very little about how to make the architecture visible in the day-to-day design and implementation work. In software design, for example, there are no practical and effective techniques for guiding a component designer toward decisions that conform to the architectural description, or for checking whether an implementation is faithful to its architecture. In practice, violations of architectural descriptions, resulting in unpredictable dependencies among components, are commonplace. This research will focus on the relationship between software architectures and collaboration in software projects because the highly volatile nature of software requires frequent change, and because the rapid emergence of new organizational forms (open source, outsourcing, globally distributed) present serious challenges to existing ways of coordinating work. In collaboration with industry partners (at Siemens Corporation and NASA's Jet Propulsion Laboratory), field studies will be conducted of collaborations occurring within a variety of architectural styles in order to identify the principles that relate architectural descriptions to task characteristics, such as uncertainty, interdependence, equivocality, and centralization, which are known to have major implications for coordination, collaboration, and communication in organizations. These principles will make it possible to develop technologies to analyze the tradeoffs and understand the fit of product architectures and organizations. The research will also develop practical techniques for exposing the architecture in the code so that the architectural description can effectively guide the development work. It will develop innovative structuring techniques for making the component and connector architecture visible, and for enforcing style-specific constraints and idioms. In addition, a new language will be created to define and check mappings between architecture and the implementation constructs. Finally, research will validate these techniques, both in laboratory studies in order to see if they improve speed and quality of development, and in the field to test their robustness, generality, and ability to scale. The engineering techniques will be made generally available for use in architectural tradeoff analysis. The techniques will also be introduced into well-established software engineering curriculum, where they will impact students at many schools for whom this curriculum serves as a model.
View original record on NSF Award Search →