¿Cuáles son los métodos de diseño de software más populares?

Utilizo la técnica de diseño orientado a objetos, es mi favorito. Aquí están los 4 mejores.
Diseño orientado a objetos
El enfoque de diseño orientado a objetos es único en su uso de los tres conceptos de diseño de software: abstracción, ocultación de información y modularidad. Los objetos son básicamente un productor o consumidor de información o un elemento de información. El objeto consta de una estructura de datos privada y operaciones relacionadas que pueden transformar la estructura de datos. Las operaciones contienen construcciones de procedimiento y control que pueden ser invocadas por un mensaje, es decir, una solicitud al objeto para realizar una de sus operaciones. El objeto también tiene una interfaz donde se pasan mensajes para especificar qué operación en el objeto se desea. El objeto que recibe un mensaje determinará cómo se realizará la operación solicitada. De esta manera, se logra la ocultación de información (es decir, los detalles de implementación están ocultos de todos los elementos fuera del objeto). Además, los objetos y sus operaciones son inherentemente modulares, es decir, los elementos de software (datos y procesos) se agrupan junto con un mecanismo de interfaz bien definido m (es decir, mensajes).

El diseño orientado a objetos se basa en los conceptos de: objetos y atributos, clases y miembros, totalidades y partes. Todos los objetos encapsulan datos (los valores de los atributos que definen los datos), otros objetos (se pueden definir objetos compuestos), constantes (valores establecidos) y otra información relacionada. La encapsulación significa que toda esta información está empaquetada en un solo nombre y puede reutilizarse. El diseño orientado a objetos es bastante nuevo y, como tal, todavía está evolucionando incluso en este momento actual. El diseño orientado a objetos abarca el diseño de datos, el diseño arquitectónico y el diseño de procedimientos. Al identificar clases y objetos, se crean abstracciones de datos; al acoplar operaciones a datos, se especifican módulos y se establece una estructura para el software; mediante el desarrollo de un mecanismo para usar objetos (por ejemplo, pasar mensajes) se describen interfaces.
Diseño orientado a la estructura de datos
El enfoque de diseño orientado a la estructura de datos utiliza las estructuras de datos de los datos de entrada, datos internos (por ejemplo, bases de datos) y datos de salida para desarrollar software. En el enfoque orientado a la estructura de datos, el énfasis está en el objeto, que es el dato. La estructura de la información, denominada estructura de datos, tiene un impacto importante en la complejidad y eficiencia de los algoritmos diseñados para procesar información. Diseño orientado al flujo de datos
En el enfoque de diseño orientado al flujo de datos, que a menudo se denomina diseño estructurado, la característica de flujo de información se utiliza para derivar la estructura del programa. En el enfoque orientado al flujo de datos, el énfasis está en el procesamiento o las operaciones realizadas en los datos. El diseño es impulsado por la información. La información puede representarse como un flujo continuo que se transforma, ya que se procesa de nodo a nodo en el flujo de entrada-salida. Como el software puede representarse idealmente mediante un diagrama de flujo de datos (DFD), un modelo de diseño que utiliza un DFD puede aplicarse teóricamente en el proyecto de desarrollo de software. El enfoque orientado al flujo de datos es especialmente aplicable cuando la información se procesa sin estructura jerárquica.
Diseño orientado al flujo de datos
En el enfoque de diseño orientado al flujo de datos, que a menudo se denomina diseño estructurado, la característica de flujo de información se utiliza para derivar la estructura del programa. En el enfoque orientado al flujo de datos, el énfasis está en el procesamiento o las operaciones realizadas en los datos. El diseño es impulsado por la información. La información puede representarse como un flujo continuo que se transforma, ya que se procesa de nodo a nodo en el flujo de entrada-salida. Como el software puede representarse idealmente mediante un diagrama de flujo de datos (DFD), un modelo de diseño que utiliza un DFD puede aplicarse teóricamente en el proyecto de desarrollo de software. El enfoque orientado al flujo de datos es especialmente aplicable cuando la información se procesa sin estructura jerárquica. Un DFD se puede asignar a la estructura de diseño de dos maneras: análisis de transformación o análisis de transacciones. El análisis de transformación se aplica cuando el flujo de datos en el flujo de entrada-salida tiene límites claros. El DFD se asigna a una estructura que asigna el control a tres módulos básicos: entrada, proceso y salida. El análisis de transacciones se aplica cuando un solo elemento de información hace que el flujo se ramifique a lo largo de una de las muchas rutas. El DFD se asigna a una subestructura que adquiere y evalúa una transacción; otra subestructura controla todas las acciones de procesamiento de datos basadas en una transacción. Algunos ejemplos de diseño estructurado o metodologías de diseño orientadas al flujo de datos son el Análisis estructurado y la Técnica de diseño (SADT), el Método de modelado de actividad sistemática (SAMM) y el Diseño estructurado (SD).
Diseño orientado a niveles
En el enfoque de diseño orientado al nivel, hay dos estrategias generales o generales que se pueden utilizar. La primera estrategia comienza con una definición general de una solución al problema y luego, a través de un proceso paso a paso, produce una solución detallada (esto se llama Refinamiento gradual). Esto depende básicamente de los requisitos del sistema y es un proceso de arriba hacia abajo. La otra estrategia es comenzar con una solución básica al problema y, a través de un proceso de modelado del problema, construir o ampliar la solución agregando características adicionales (esto se denomina diseño por composición).