Estrategias de Cambio, Patrones de Diseño y Principios SOLID en el Desarrollo de Software

Enviado por federzzz y clasificado en Informática

Escrito el en español con un tamaño de 4,46 KB

Estrategias de Cambio de Software

Existen diversas estrategias para abordar los cambios en el software:

1. Mantenimiento

Se realiza cuando hay un cambio en un requerimiento (existente o nuevo). El objetivo es adaptar el software a las modificaciones de su entorno. Esto puede incluir:

  • Cambios en el sistema operativo.
  • Corrección de fallas en el sistema.

2. Evolución de la Arquitectura

Implica modificar el software y continuar dándole mantenimiento a medida que se implementan cambios más significativos en su arquitectura.

3. Reingeniería de Software

Consiste en reimplementar sistemas heredados para hacerlos más mantenibles. La reingeniería abarca:

  • Redocumentación del sistema.
  • Organización y reestructuración del sistema.
  • Traducción del sistema a un lenguaje de programación más moderno.
  • Modificación y actualización de la estructura y los valores de los datos del sistema.

Programación Orientada a la Interfaz y Patrones de Diseño

Programación Orientada a la Interfaz

Este principio se centra en lo que hace cada objeto (su interfaz), no en cómo lo hace (su implementación). Cuando un objeto necesita un servicio, delega la responsabilidad a cualquier objeto que ofrezca ese servicio a través de su interfaz. Esto evita el acoplamiento a implementaciones específicas.

Ejemplo: Patrón Builder

El patrón Builder se utiliza para crear objetos complejos con diferentes representaciones posibles. Aplica el principio de programación orientada a la interfaz de la siguiente manera:

  1. Un cliente solicita la creación de un objeto al "director".
  2. El director guía el proceso de construcción.
  3. El director solicita a un "constructor concreto" que construya cada parte del objeto, basándose en la representación deseada.

El director interactúa con la interfaz del constructor, y en tiempo de ejecución se comunica con un constructor concreto específico.

Patrones de Diseño: Composite e Iterator

Patrón Composite (Estructural)

Permite componer objetos en estructuras de árbol para representar jerarquías de "parte-todo". Los clientes pueden tratar de manera uniforme tanto a los objetos individuales como a los compuestos.

Patrón Iterator (Comportamiento)

Proporciona un mecanismo para acceder secuencialmente a los elementos de una estructura de datos sin exponer los detalles de su representación interna.

Principios SOLID

Los principios SOLID son un conjunto de principios de diseño de software que promueven la creación de código mantenible, flexible y robusto.

1. Principio de Única Responsabilidad (SRP)

Una clase debe tener una única razón para cambiar, es decir, debe tener una sola responsabilidad.

2. Principio Abierto/Cerrado (OCP)

Las entidades de software (clases, módulos, funciones, etc.) deben estar abiertas para la extensión, pero cerradas para la modificación. Se logra mediante herencia, polimorfismo y composición.

3. Principio de Sustitución de Liskov (LSP)

Las subclases deben ser sustituibles por sus clases base sin alterar el correcto funcionamiento del programa.

4. Principio de Segregación de Interfaces (ISP)

Es mejor tener muchas interfaces específicas que una sola interfaz general. Las interfaces deben ser pequeñas y cohesivas.

5. Principio de Inversión de Dependencias (DIP)

Los módulos de alto nivel no deben depender de los módulos de bajo nivel. Ambos deben depender de abstracciones. Las abstracciones no deben depender de los detalles. Los detalles deben depender de las abstracciones. Se implementa usando interfaces y clases abstractas, exponiendo dependencias a través de constructores o parámetros.

El Papel de las Pruebas en el Ciclo de Vida del Software

Las pruebas son cruciales en varias fases del ciclo de vida del software:

  • Fase de Inicio: Se puede incluir la planificación inicial de las pruebas.
  • Fase de Elaboración: Se realizan pruebas de la línea base ejecutable de la arquitectura.
  • Fase de Construcción: Se lleva a cabo la mayor parte de las pruebas de integración y de sistema.
  • Fase de Transición: Se corrigen defectos y se realizan pruebas de regresión.

Entradas relacionadas: