Home Introduction Getting Started Benefits Successes Perspectives Resources
What's New?

Binding Times

The primary distinction between software product line engineering and conventional software engineering is the presence of variation in some or all of the software assets. In the early stages of a software product line lifecycle, software assets contain variation points that represent unbound options about how the software will behave. At some point during the production process, product decisions are utilized to select among the options for each variation point, after which the behavior of the variation point in the final product is fully specified. The time at which the decisions for a variation point are bound is referred to as the binding time.

Examples of different binding times for software product lines include:

  • Source reuse time. Decisions bound when reusing a configurable source artifact
  • Development time. Decisions bound during architecture, design, and coding
  • Static code instantiation time. Decisions bound during assembly of code just prior to a build
  • Build time. Decisions bound during compilation or related processing
  • Package time. Decisions bound while assembling binary & executable collections
  • Customer customizations. Decisions bound during custom coding at customer site
  • Install time. Decisions bound during the installation of the software product
  • Startup time. Decisions bound during system startup
  • Runtime. Decisions bound when the system is executing

It is possible to utilize multiple binding times in a software product line. This allows some decisions to be bound earlier in the lifecycle and other decisions to be deferred until later in the process. For example, some decisions might best be made by a product manager at the company developing the software, while other decisions might best be made by the end customer that will use the software.

With multiple binding times, the software product outputs from binding decisions at one production stage become partially instantiated software asset inputs for binding decisions at the next production stage. The figure below illustrates two binding times, though more are possible.

Next Section >

Discussion Board
Development Tools
and Methods for
Software Product Lines

Special Seminar

from Telelogic and
BigLever Software.
MDD for Software Product Lines