|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
Binding TimesThe 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:
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. |
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||