Large, complex systems are often developed in the context of product lines. This enables developers to maximize reuse, accelerate the development process while reducing costs, and deliver products that are generally more reliable. At the same time, explicit focus on common architectural idioms has the potential to fundamentally transform the nature of software development, as component integration replaces implementation as the predominant development activity. The promise of software architectures is that better software systems can be built in this manner more quickly by modeling their important aspects throughout, and especially early in the development. Coupling the benefits of product line-based and architecture-based development has been recognized as an area with a great potential payoff, as evidenced by a growing number of conferences, workshops, and symposia that focus on this subject.

The existing body of research in the area of software architectures for product lines is characterized by two major foci:

  1. specification of generic, product line architectures (also referred to as reference architectures) and their instantiation into application architectures; and
  2. identification and integration of reusable components that comprise different members of a product line.

Our work has focused on two additional issues that have not been addressed by existing approaches and that are useful complements to those identified above:

  1. the role of software connectors in specifying and ensuring the extra-functional properties of both a product line and individual applications within the product-line; and
  2. refinement of an instantiated product architecture into a design and, eventually, an implementation.

The role of connectors in software architectures is to isolate all communication, coordination, and mediation. As such, connectors do not provide any domain-specific functionality, but rather enable the functional elements (components) to interact. We believe that certain varying properties of applications within a product-line (e.g., deployment profile, concurrency, interoperability platform, performance, reliability, security, etc.) can be isolated within connectors. Also, certain types of connectors may occur regularly within a product-line.

Our publications on product-line architectures can be found here.

WelcomeResearchCV | Publications | HomeResources