¿Qué se entiende por familias de sistemas de software?

Una familia de sistemas o una línea de productos de software es un conjunto de sistemas que están diseñados para tener un conjunto común de características; características opcionales; y características alternativas / mutuamente excluyentes. La selección de un conjunto de características opcionales y alternativas da como resultado un sistema objetivo o una instancia de la familia. En la práctica, no todas las características opcionales y alternativas pueden ser conocidas de antemano; por lo tanto, las ubicaciones en el diseño donde ocurrirá la variabilidad pueden identificarse con puntos de variación, que se crean instancias cuando se crea el sistema objetivo.