Ingeniería de Software: Ciclo de Vida, Scrum y Requisitos

Geology5.64 KB

Crisis del Software

- Crisis del software (datos informativos del caos): éxito (16,2%), cancelados (31,1%), con problemas o sobrecostos (52,7%).

- Problemas de proyectos con factores: falta de información por parte de los usuarios, especificaciones y requisitos incompletos, especificaciones y requisitos cambiantes, expectativas no estructuradas y objetivos poco claros, que son factores determinantes.

- Proyectos cancelados: requisitos incompletos, falta de implicación de los usuarios, expectativas no estructuradas, especificaciones y requisitos cambiantes, que ya no son causas necesarias.

- Proyectos con fallos: requisitos incompletos, falta de participación del cliente, recursos inadecuados, imposibilidad de que el usuario aporte, falta de sólida gestión, cambios en los requisitos y planificación incorrecta.

Ingeniería del Software

- Ingeniería del software: la aplicación inteligente de principios, técnicas y lenguajes de herramientas para la creación y mantenimiento de software de calidad, con un coste razonable, que satisface las necesidades de los usuarios.

- Elementos de la ingeniería del software

  • Procesos: definen la secuencia en la que se aplican los métodos, los documentos que deben generarse, y los controles de calidad y métricas que ayudan a evaluar los programas.
  • Métodos: indican técnicamente cómo construir software, incluyendo los criterios de calidad.
  • Herramientas: proporcionan soporte automático o semiautomático para los métodos.

Procesos en la Ingeniería del Software

  • Mantenimiento: son los procesos principales de corrección, adaptación y mejora del software, situados en primer lugar; el costo del mantenimiento representa la mayor parte del coste total de la vida del software. Tipos: perfectivo, adaptativo, correctivo y preventivo.
  • Aseguramiento de calidad: procesos de soporte cuyo objetivo es asegurar que el software tiene un determinado nivel de calidad. Las revisiones técnicas formales (RTF) son reuniones de los miembros del equipo que revisan los productos del SQA y las marchas de los procesos de desarrollo.
  • Gestión de la configuración: procesos de soporte que identifican, controlan e informan los cambios en los productos que se generan durante el desarrollo del software: documentación, datos, código, ejecutables, etc. (control de versiones).

Ciclo de Vida del Software

- Ciclo de vida: un marco de referencia que contiene los procesos, actividades y tareas involucradas en el desarrollo, explotación y mantenimiento de un producto de software, abarcando desde la concepción del sistema hasta la finalización de su uso. El ciclo de vida especifica un enfoque general del desarrollo, indicando los procesos, actividades y tareas que se utilizarán y en qué orden, así como los productos que se generarán y los que se entregarán al cliente.

Tipos de Ciclo de Vida

  • Clásico (en cascada): cada fase comienza al terminar la anterior. Es fácil de planificar, pero supone que los requisitos son estables y no permite volver atrás con facilidad.
  • Ciclo en cascada con realimentación: en el caso del desarrollo de sistemas hardware/software, el ciclo de vida tiene dos niveles.
  • Evolutivo: el ciclo de vida evolutivo se basa en ciclos repetidos que afrontan problemas mediante ciclos de requisitos, diseño, desarrollo y evaluación.
  • Incremental: la repetición de varios ciclos de vida en cascada; se aplica con frecuencia a desarrollos grandes.
  • Iterativo: también es la repetición de varios ciclos de vida en cascada; suele implementarse en desarrollos que parten de requisitos no claros.
  • Métrica v3: permite aplicar distintos ciclos de vida con métodos estructurados y orientar los procesos a objetivos.
  • Modificado: combina ciclo de vida e iterativo incremental, dirigido a casos de uso donde las actividades de desarrollo están planificadas y programadas.

Ingeniería Inversa

La ingeniería inversa consiste en analizar el resultado de la primera etapa del software para obtener la información de la fase anterior; normalmente se obtiene analizando el código.

Ingeniería Inversa (Resumen)

- Ingeniería inversa: la ingeniería inversa consiste en analizar el resultado de la primera etapa del software para obtener la información de la fase anterior; normalmente se obtiene analizando el código.

Scrum y Métodos Ágiles

- Scrum: métodos alternativos de gestión de proyectos de desarrollo de software basados en procesos empíricos, en lugar de definidos; por ello se basan en el control empírico y en la predicción. Es recomendable cuando los requisitos son cambiantes y emergentes.

Ingeniería de Requisitos

- Ingeniería de requisitos: el proceso sistemático para desarrollar requisitos mediante un proceso cooperativo e iterativo para analizar el problema, documentar las observaciones resultantes en diversos formatos y comprobar la representación precisa del conocimiento obtenido.

Download

PDF Word HTML