Modelos y patrones de procesos de desarrollo de software: conceptos, evaluación y métodos

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 6,58 KB

Proceso

Proceso: colección de actividades que se realizan cuando se va a crear algo.

Tipos de flujo de proceso

  • Flujo de proceso lineal: ejecuta cada una de las cinco actividades estructurales de forma secuencial.
  • Flujo de procesos iterativos: se repite una o más actividades antes de pasar a la siguiente.
  • Flujo de proceso evolutivo: realiza actividades en forma cíclica o en cada circuito, generando versiones cada vez más completas.
  • Flujo de proceso paralelo: ejecuta una o más actividades en paralelo con otras.

Definición de actividad estructural

Actividad estructural: contacto vía telefónica — analizar requisitos y tomar notas — organizar notas, formar requisitos — enviar correo al participante.

Identificación de conjunto de tareas

Identificación de conjunto de tareas: acciones o conjuntos de tareas relacionadas con el producto de trabajo que aseguren la calidad; elegir el mejor conjunto de tareas.

Patrones del proceso

Patrones del proceso: solución propuesta a un problema relacionado con el proceso. Para cada problema se sugieren una o más soluciones; el formato de solución describe a veces las dos (problema y solución) y sus asociaciones.

Formato propuesto por Ambler para describir un patrón de proceso

Ambler propuso un formato que incluye los siguientes elementos:

  1. Nombre del patrón: un nombre significativo que lo describe.
  2. Fuerza: el ambiente donde se encuentra el patrón; aspectos que señalan el problema y la solución.
  3. Tipos:
    • a) Patrón de etapa: problema asociado a una actividad estructural del proceso.
    • b) Patrón de tarea: problema asociado a una tarea de trabajo, importante para el éxito del trabajo.
    • c) Patrón de fase: secuencia de actividades que ocurren en un proceso.
  4. Contexto inicial: condiciones en las que se aplica el patrón.
  5. Problema: lo que debe resolver el patrón.
  6. Solución: cómo implementar con éxito el patrón.
  7. Contexto resultante: lo que resultará con el éxito del patrón.
  8. Patrones relacionados: lista de patrones de proceso relacionados y su jerarquía.
  9. Uso conocido: instancias en las que es aplicable el patrón.

Los patrones de proceso son un mecanismo efectivo para enfrentar problemas de software y describir soluciones reutilizables y estructuradas.

Evaluación y mejora de procesos

Método de evaluación estándar CMMI — proceso de mejora: consta de cinco fases: inicio, diagnóstico, establecimiento, actuación y aprendizaje.

Evaluación en CMM para mejorar procesos internos: técnica de diagnóstico para evaluar la madurez relativa de una organización de software.

SPICE (ISO/IEC 15504): estándar que define un conjunto de requisitos para la evaluación de procesos de software.

ISO 9001:2000 para software: estándar aplicable a cualquier organización que busque mejorar la calidad del producto y de sus procesos.

Modelos de proceso prescriptivo

Los modelos de proceso prescriptivos buscan ordenar el caos del desarrollo de software prescribiendo un conjunto de elementos del proceso y, en muchos casos, un flujo de trabajo.

Modelo en cascada

Modelo en cascada: enfoque sistemático y secuencial para el desarrollo: especificación de requisitos — planificación — modelado — construcción — despliegue (incluye el "modelo V"). Problemas comunes: los proyectos no siempre siguen un flujo lineal; es difícil enunciar todos los requerimientos al inicio; requiere que el cliente tenga paciencia y una visión madura de sus necesidades.

Modelo incremental

Modelo de proceso incremental: en cada incremento se entrega una parte del producto que ya opera; permite añadir funcionalidad de manera iterativa y entregar valor temprano.

Modelo de proceso evolutivo

Modelo evolutivo: enfoque iterativo que desarrolla versiones cada vez más completas del sistema, refinando requisitos y diseño con cada iteración.

Prototipado

Hacer prototipos: comienza con una reunión de participantes para definir objetivos generales, identificar requerimientos y planear la iteración para construir un prototipo; el modelado puede ser parte del proceso.

Problemas potenciales del prototipado:

  • Se obtiene una versión funcional sin tener en cuenta que fue construida de manera apresurada o improvisada.
  • El prototipo puede llevar a decisiones caprichosas si no se controla el alcance y la ingeniería del software.
  • Los ingenieros de software deben evitar presentar prototipos como la versión final sin haber realizado la ingeniería necesaria para un funcionamiento robusto y mantenible.

Modelo en espiral

Modelo en espiral: modelo impulsado por el riesgo; involucra a múltiples participantes, entregas evolutivas y actividades organizadas alrededor del espiral. Es un enfoque realista para desarrollar sistemas a gran escala, ya que prioriza la gestión de riesgos y las iteraciones.

Modelos concurrentes

Modelos concurrentes: permiten que el equipo represente elementos iterativos y concurrentes del desarrollo, facilitando la ejecución simultánea de actividades dependientes e independientes.

Modelos de proceso especializados

Desarrollo basado en componentes

Desarrollo basado en componentes: combina características del modelo en espiral y una naturaleza evolutiva con un enfoque iterativo para la creación de software a partir de componentes reutilizables.

Etapas típicas:

  1. Se investigan y evaluan componentes disponibles.
  2. Se consideran aspectos de integración de componentes.
  3. Se diseña una arquitectura que reciba los componentes.
  4. Se integran los componentes en la arquitectura.
  5. Se efectúan pruebas exhaustivas para asegurar la funcionalidad apropiada.

Nota: Todas las etapas deben documentarse y medirse para asegurar la calidad y la mantenibilidad del sistema resultante.

Entradas relacionadas: