Author: GerardMeszaros
Context:
You are building a large complex system which will have many bits of code much of which depends on one another. You are defining one of MultipleArchitectureViews.
Problem:
How do you manage the software (code) in your system such that you can reliably configure a system from it?
Forces:
- Tracking the dependencies of every bit of software in your system may be too large a problem to keep up to date.
- Building systems without tracking software dependencies will often result in failed system builds or random, unexplained errors in the resulting system.
Solution:
Organize the software of your system into collections of code which can be managed as a group. Bits of software with a common purpose and common dependencies should be packaged together. If necessary, define several levels of recursive packaging; only stop the recursion when the number of packages is manageable. Track the dependencies of each package using a ConfigurationManagementTool. Examples of packaging include Classes, Modules, Subsystems, SoftwarePackages. Examples of systems which manage the delivery view of the system include Envy/Developer.
Related Concepts
- dataDependency
- dataContainers