Reusable components. (A) shows finished and semi-finished components that provide reusable features for displaying screens (FormView and MenuView), handling user requests (Form- and MenuController), and reading and writing to the database (DataMapper). (B) shows components of a completed software variant as described in Figure 2. Only the ‘differences’ needed to be added using systematic variation mechanisms (dotted lines) such as inheritance or parameterization.
Swertz et al. BMC Bioinformatics 2010 11(Suppl 12):S12 doi:10.1186/1471-2105-11-S12-S12