La relevancia de proyectar - o hacer diseño de software - puede ser explicada por la complejidad creciente de los sistemas de software. Debido a esa complejidad, el riesgo de construirse un sistema que no alcance sus objetivos es eminente.