|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
ProductionThe production operation creates partially or fully instantiated product outputs from software asset inputs, using product decisions to determine how to bind variations in the assets. Production is a key discriminator between different software product line approaches and those differences are described in this section.
Automation. Production in software product lines can be fully automated, completely manual, or somewhere in between. An example of a fully automated production approach is application generators and product configurators, where product decisions provide sufficient information to automatically generate the product outputs. An example of a completely manual approach is a textual production plan, where software engineers interpret and follow directions in the plan and the product decisions to tailor, integrate, and provide glue code around the software assets in order to create products. Periodicity. As with conventional software engineering, production of a product is typically not a one-shot activity. Products may need to be periodically reproduced to reflect enhancements to the software assets or decisions. The frequency of periodic production may be measured in terms of hours in an agile approach that utilizes automation or in terms of years in a waterfall and manual production approach. Roles. Some production approaches define a separate human role for the production activity called application engineering, distinct from the domain engineering role responsible for engineering the software asset inputs. Other approaches do not distinguish between these two roles. Separate roles are common in approaches with manual production while a single role is more common in approaches with fully automated production. |
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||