El diseo de software es un proceso mediante el que se traducen los
requisitos en una representacin del software. Inicialmente, la representacin describe una visin holstica del software. Posteriores refinamientos conducen a una representacin de diseo que se acerca mucho al cdigo fuente. En el diseo se realizan dos pasos. El diseo preliminar se centra en la transformacin de los requisitos en los datos y arquitectura del software. El diseo detallado se ocupa del refinamiento de la representacin arquitectnica que lleva a una estructura de datos detallada y a las representaciones algortmicas del software. Dentro del contexto de los diseos preliminar y detallado, se llevan a cabo varias actividades de diseo diferentes. Adems del diseo de datos, del diseo arquitectnico y del diseo procedimental, muchas aplicaciones requieren de un diseo de la interfaz. El diseo de la interfaz establece la disposicin y los mecanismos para la interaccin hombre mquina (no cubierto por las herramientas del diseo estructurado). El diseo de sistemas se ocupa de desarrollar las directrices propuestas durante el anlisis en trminos de aquella configuracin que tenga ms posibilidades de satisfacer los objetivos planteados tanto desde el punto de vista funcional como del no funcional (lo que antes hemos denominado constricciones). El proceso de diseo de un sistema complejo se suele realizar de forma descendente: Diseo de alto nivel (o descomposicin del sistema a disear en subsistemas menos complejos). Diseo e implementacin de cada uno de los subsistemas: Especificacin consistente y completa del subsistema de acuerdo con los objetivos establecidos en el anlisis. Desarrollo segn la especificacin. Prueba. Integracin de todos los subsistemas. Validacin del diseo. Dentro del proceso de diseo de sistemas hay que tener en cuenta los efectos que pueda producir la introduccin del nuevo sistema sobre el entorno en el que deba funcionar, adecuando los criterios de diseo a las caractersticas del mismo. En este contexto est adquiriendo una importancia creciente la adaptacin de todo sistema-producto a las capacidades de las personas que van a utilizarlo, de forma que su operacin sea sencilla, cmoda, efectiva y eficiente. De estas cuestiones se ocupa una disciplina, la ergonoma, que tiene por objeto la optimizacin de los entornos hombre-mquina. Si bien en un principio estaba centrada en los aspectos antropomtricos de la relacin hombre-mquina, en la actualidad ha pasado a intervenir con fuerza en todos los procesos cognitivos (anlisis, interpretacin, decisin, comunicacin y representacin del conocimiento). As, con respecto al diseo de herramientas software, la ergonoma tiene mucho que decir en cuestiones relacionadas con la disposicin de informaciones en pantalla, profundidad de mens, formato de iconos, nombres de comandos, control de cursores, tiempos de respuesta, manejo de errores, estructuras de datos, utilizacin de lenguaje natural, etc. El Diseo de software cambia continuamente medida que evolucionan nuevos mtodos, mejores anlisis esta en una fase relativamente temprana en el desarrollo carece de profundidad, flexibilidad y naturaleza cuantitativa de otras disciplinas de la ingeniera, sin embargo existen mtodos, criterios y notacin para hacer un diseo exitoso.
Componentes del diseo fsico: Diseo de datos. Transforma el modelo de dominio de la informacin creado durante el anlisis en las estructuras de datos necesarias para implementar el software. Diseo de la Interfaz. Describe como se comunica el software consigo mismo, con los sistemas que operan con l y con los operadores que los emplean. Diseo Procedimental. Transforma elementos estructurales de la arquitectura del programa en una descripcin procedimental de los componentes del software.
Diseo Arquitectnico. Define la relacin entre los principales elementos estructurales del programa. La importancia del diseo del software reside en la calidad. El diseo es la nica manera de traducir los requisitos del cliente un sistema o producto de software.