Using software architecture to facilitate reuse in a product family

  • Authors:
  • Ryan O'Farrell;J. A. Hamilton, Jr.

  • Affiliations:
  • Auburn University, Auburn, AL;Auburn University, Auburn, AL

  • Venue:
  • SpringSim '09 Proceedings of the 2009 Spring Simulation Multiconference
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

A major goal of the software architecture discipline is to develop an environment that promotes the reuse of components across separate software projects. One of the areas that would most benefit from this reuse is in product families of similar software products. Many organizations are in the business of creating several closely related products, whether it be a line of cell phones, cameras, printers, or a banking software suite, each product will need very similar software, with only slight modifications based on the version being produced. In this case, two aspects are needed in order to improve the production of such organizations. First, a common architecture foundation should be shared by each of the products. Second, there should be at least some small amount of basic code at the core of each product that can be reused without modification. In this paper, we will examine current methods of software architecture styles and propose a best method for describing the architecture so that the core components can be reused in many products. Next, we will determine the best practices for describing how the components can be reused, specifically what should be included in both high level and low level documentation. Finally, we will look at software implementation details of how this strategy could be practically applied to projects in the software development industry.