 |
Production Artifacts
Product Decisions
- Representation. The different formats used to represent product decisions range from informal textual descriptions to formal machine-interpreted languages.
- Guidance. Some software product line approaches provide guidance when making decisions for a product, ranging from written heuristics, to constraint checking, to expert system guidance. Guidance helps to reduce the time, complexity, and errors in the decision-making process, particularly for large numbers of interdependent decisions.
- Role. The decision-making role for product creation may be an engineering role such as an application engineer or a domain engineer, or it may be a non-engineering role such as a product marketer, a sales person, or the customer. The role should be given to the person who can make the best decisions at the best time. This will in turn influence the binding time (or times) for production.
- Replayable. For periodic production of products, previously-made decisions for products can be automatically replayed rather than manually recreated. This requires stored decision representations and automated replay mechanisms.
Software Asset Inputs
- Representation. The software asset inputs for software product lines can come in many different formats, ranging from immutable binary executables to mutable source code that is manually modified, tailored, or extended during production. Assets are not limited to source code and can include test cases, documentation, requirements, use cases, architecture and design descriptions, and so forth.
- Variation points. There are many approaches for representing points of variation in the software assets as well as mechanisms to instantiate them. The best choice is influenced by the desired binding time and the degree of production automation desired. For example, a variation point for development-time binding without automation could be an empty block of source code that an application developer fills in. Variation points for runtime binding with full automation might be a programming language if-then-else statement whose behavior is determined by user preferences settings made by the customer.
Product Outputs
- Representation. The product outputs can take on many different formats, such as binary versus source and mutable versus immutable.
- Partial instantiation. If the product outputs are partially instantiated in one stage of variation binding, the unbound variations become the variation points in software asset inputs for the next stage.
|
|