-
Notifications
You must be signed in to change notification settings - Fork 0
La multiplicidad del diseño de software
La ingeniería de software, tal vez más que cualquier otra disciplina de ingeniería, exhibe una rica multiplicidad: puede hacer lo mismo de muchas maneras correctas, y hay infinitos matices entre lo correcto y lo incorrecto. Cada camino abre un nuevo mundo. Una vez que elige una solución, aparece una gran cantidad de posibles variantes, en todos los niveles, desde el nivel de la arquitectura del sistema hasta el más mínimo detalle de codificación. El diseño de un sistema de software es una elección de soluciones de un espacio de solución combinatoria.
Pensemos en un artefacto de diseño simple de bajo nivel: un puntero inteligente. Una clase de puntero inteligente puede ser de un solo subproceso o multiproceso, puede usar varias estrategias de propiedad, puede hacer varias compensaciones entre seguridad y velocidad, y puede no admitir conversiones automáticas al tipo de puntero sin procesar el subyacente. Todas las características se pueden combinar libremente y, por lo general, exactamente una solución es la más adecuada para un área determinada de su aplicación.