Debido a que los sistemas se están volviendo cada vez más grandes y complejos, se ha encontrado que los sistemas tradicionales de desarrollo se han vuelto insuficientes, se ha visto la necesidad de recurrir a la aplicación de principios de arquitectura de sistemas, hardware y software para el diseño de subsistemas.