Open for commentsSelect text to comment

Note

Products in a product line likely have similar architectures, as they serve a similar purpose. Instead of creating a new architecture from scratch for each product, the product line usually has an architecture that products can build on or change. The domain team is generally responsible for this reference architecture.

The reference architecture must:

  • Be designed with respect to the needs of the software, while taking into account all current products in the product line

  • Include the capacity of variation, for differences in products and to allow for future products

There are three general techniques to realize variations in a system:

  • Adaptation technique Adaptation technique. In this technique, a component has only one implementation, but it supplies interfaces to change or add on to it. Components can be adapted through settings in a configuration file, by adding new methods or by overriding existing methods. Reference Architecture-1793140544287

  • Replacement technique Replacement technique. In this technique, there could be a default component that is replaced with alternatives to realize variation. There may not even be a default; instead there is a gap in the system, and the developers must supply one of the components.

    Reference Architecture-1793140571375
  • Extension technique Extension technique. In this technique, a common interface is provided for all the variations of the system. These variations are often called extensions, add-ons, or plugins. See below for a diagram of an extension technique. Reference Architecture-1793140636690

Variations can be realized at different times. Different variations may even come in at different stages, they can be formed early on, during the design or development process of the application engineering team, or they can be formed when the software is compiled and built. Similarly, variations can be realized at different times, like when the software is launched or after the software is launched, whenever they are needed.

The dynamic nature of variations puts pressure on software architecture to be highly modular. A combination of the nature of the variation, the type of reference architecture, and the software requirements determines what variation techniques are available to architects, and how they are implemented. As with any design decision, there are trade-offs to consider when building variation into architecture.

This concludes the Software Architecture course notes.

Built with LogoFlowershow