Diseño de software

El proceso de diseño es una secuencia de pasos que habilita al diseñador para describir todos los aspectos del software a construir.

El conjunto de conceptos fundamentales del diseño ha evolucionado.

Son los siguientes: En su modelo de objeto, Grady Booch menciona abstracción, encapsulación, modularización y jerarquía como principios fundamentales del diseño de software.

[4]​ El acrónimo PHAME (del inglés: Principles of Hierarchy, Abstraction, Modularisation, and Encapsulation) se utiliza a veces para referirse a estos cuatro principios fundamentales.

Un lenguaje de modelado puede ser gráfico o textual.

[8]​ La dificultad de utilizar el término "diseño" en la relación a software es que en algunos sentidos, el código fuente de un programa es el diseño para el programa que produce.

La redefinición puede ocurrir después de revisar una simulación programada o prototipo.

Un diseño por separado con anterioridad a programar permite a los  diseñadores multidisciplinares y expertos colaborar con programadores altamente especializados en software útil y técnicamente seguro.

Un diagrama de clase y secuencia de muestra para el patrón de diseño Prototipo.