Desarrollo de Software: Desafíos, Etapas y Metodologías

Desafíos Actuales en el Desarrollo de Software

El desarrollo de software enfrenta crecientes desafíos:

  • Sobreexplotación del potencial del hardware.
  • Incapacidad de atender la demanda.
  • Incapacidad de mantener el software existente.

Responsabilidades de los Ingenieros de Software

Los ingenieros de software necesitan comprender:

  • Ambiente de funcionamiento del sistema.
  • Alternativas de sistemas.
  • Técnicas y herramientas para construir modelos.

Solución de Problemas en el Desarrollo de Software

Pasos para solucionar problemas:

  1. Formular.
  2. Analizar.
  3. Buscar.
  4. Decidir adecuadamente.
  5. Especificar.

Objetivos, Requisitos y Restricciones

Los objetivos, requisitos y restricciones guían el proyecto, definen los atributos del sistema y pueden generar conflictos, aumentando la complejidad.

Tipos de Requisitos

  • Funcionales: Definen el área funcional que debe soportar el sistema (ejemplos: emitir boleta, operar portón, registrar asientos).
  • No funcionales: Establecen restricciones sobre el funcionamiento del sistema (ejemplo: demora en la emisión de boletas).

Casos de Uso

Un caso de uso es una secuencia de eventos que describe todas las posibles acciones entre los actores y el sistema para una función específica.

Diseño de Software

Diseño del Sistema

El diseño del sistema define los objetivos del sistema, descompone el sistema subjetivo y selecciona estrategias para la construcción.

Diseño de Objetos

El diseño de objetos define los objetos e interfaces de los subsistemas, reestructura el modelo para lograr los objetivos y optimiza el modelo.

Actividades de Desarrollo de Software

1. Implementación

Incluye la implementación de atributos y métodos de cada objeto e integra todos los objetos para que funcionen como un solo sistema.

2. Pruebas

  • Pruebas de Unidad: Comparan el modelo de diseño con cada objeto y subsistema.
  • Pruebas de Integración: Combinan los subsistemas y los comparan con el diseño.
  • Pruebas de Sistema: Ejecutan casos típicos y excepcionales, y los comparan con el modelo de requerimientos.
  • Objetivo: Descubrir errores que se puedan reparar antes de entregar el sistema.

3. Mantenimiento

Implica mejoras en el sistema, corrección de errores, adaptación a cambios de entorno. Es la actividad más costosa del ciclo de vida del producto de software.

Metodologías de Desarrollo de Software

Modelo Cascada

El modelo cascada sigue una secuencia lineal:

  1. Requerimientos y análisis.
  2. Diseño.
  3. Implementación.
  4. Pruebas.
  5. Mantenimiento.

Desarrollo Evolutivo

  • Prototipo Evolutivo: Se basa en los requerimientos del cliente y se entrega el sistema.
  • Prototipo Desechable: Se centra en la experimentación de los requisitos poco claros o complejos del cliente.

Desarrollo Incremental

Valida el incremento, integra incrementos y valida el sistema. Beneficio: sistema final muy probado y con pocos fallos.

Modelo Espiral

El modelo espiral incluye:

  1. Definición de objetivos.
  2. Evaluación y reducción de riesgos.
  3. Desarrollo y validación.
  4. Planificación (para determinar si se pasa a otro ciclo).

Proceso Unificado

Se repite a lo largo de cada ciclo y concluye con una versión del producto. Tiene cuatro etapas:

  1. Inicio.
  2. Elaboración.
  3. Construcción.
  4. Transición.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.