En Ingeniería del Software, el Diseño de Sistemas es el proceso que, partiendo de los requisitos funcionales de un sistema, busca dar forma a soluciones que suelen ser grandes y complejas.
El proceso suele comenzar determinando los requisitos no funcionales, es decir, aquellos que no dicen qué debe hacer el sistema, sino cómo debe hacerlo. Escalabilidad, confiabilidad, seguridad o rendimiento son algunos de los más habituales.
Diseñar un sistema no implica encontrar una única solución. Al contrario: existen múltiples formas de alcanzar el mismo objetivo. Aquí entran en juego los recursos disponibles, la capacidad de aceptar compromisos y el conocimiento de patrones estándar de la industria que permiten resolver problemas comunes, especialmente de carácter no funcional.
Un ejemplo clásico: El diseño de un acortador de URLs
Por eso, el diseño de sistemas requiere algo más que conocimiento técnico. Pide habilidades de comunicación, capacidad de realizar estimaciones y, sobre todo, experiencia en el negocio del software.