martes, 23 de octubre de 2012

Actividad de Trabajo # 1

   1.      Análisis comparativos de los distintos ciclo de vida en el software.

Para facilitar una metodología común entre el cliente y la empresa de software, los modelos de ciclo de vida se han actualizado para reflejar las etapas de desarrollo involucradas y la documentación requerida, de manera que cada etapa se valide antes de continuar con la siguiente etapa.

El ciclo de vida permite que los errores se detecten lo antes posible, permite a los desarrolladores concentrarse en la calidad del producto.

Comparación de los modelos de ciclo de vida:

   ·         Ciclo de vida Cascada:

Se denomina modelo en cascada porque su característica principal es que no se comienza con un paso hasta que no se ha terminado el anterior.

El principal problema es que no podemos esperar el que las especificaciones iniciales sean correctas y completas y que el usuario puede cambiar de opinión sobre una u otra característica. Además los resultados no se pueden ver hasta muy avanzado el proyecto por lo que cualquier cambio debido a un error puede suponer un gran retraso además de un alto coste de desarrollo. Si el usuario cambia de opinión en algún aspecto tendremos que volver hacia atrás en el ciclo de vida.


   ·         Ciclo de vida Prototipo: 

Consiste en iterar en la fase de análisis tantas veces como sea necesario, mostrando prototipos al usuario para que pueda indicarnos de forma mas eficiente los requisitos del sistema. La iteración finalizará cuando el usuario de el visto bueno al prototipo.
Ciclo de vida Evolutivo:

Se diferencia del modelo por prototipos en que en prototipos se da por hecho que aunque se necesiten varias iteraciones para lograrlo al final se llegará a tener una serie de requisitos completos y sin errores, que no vayan a cambiar más.

En el modelo evolutivo se asume que los requisitos pueden cambiar en cualquier momento del ciclo de vida y no solo en la etapa de análisis.



   ·         Ciclo de vida Incremental:

Es una aproximación muy parecida a la evolutiva. En este modelo se desarrolla el sistema para satisfacer un subconjunto de los requisitos especificados y en posteriores versiones se incrementa el programa con nuevas funcionalidades que satisfagan mas requisitos.

En el caso del modelo evolutivo se desarrollaría una nueva versión de todo el sistema, en el incremental se parte de la versión anterior sin cambios y le añadimos las nuevas funciones.



   ·         Ciclo de vida Espiral:

Toma las ventajas del modelo de desarrollo en cascada y el de prototipos añadiéndole el concepto de análisis de riesgo.

Se definen cuatro actividades:

   1.      Planificación, en la que se recolectan los requisitos iniciales o nuevos requisitos a añadir en esta iteración.

   2.      Análisis de riesgo, basándonos en los requisitos decidimos si somos capaces o no de desarrollar el software y se toma la decisión de continuar o no continuar.

   3.      Ingeniería, en el que se desarrolla un prototipo basado en los requisitos obtenidos en la fase de planificación.

   4.      Evaluación del cliente, el cliente comenta el prototipo. Si esta conforme con el se acaba el proceso, si no se añaden los nuevos requisitos en la siguiente iteración.



   ·         Ciclo de vida RAD:

Es un modelo de proceso de desarrollo de software lineal secuencial que enfatiza un ciclo de desarrollo extremadamente corto.

   1.      Modelado de gestión: flujo de información entre las funciones de gestión responde las siguientes preguntas: ¿que información conduce al proceso de gestión?, ¿A dónde va la información?, ¿Quién la procesa?

   2.      Modelado de datos: flujo de información definido como parte de la fase del modelado de gestión se refina como un conjunto de objetos y datos necesarios para apoyar la empresa.

   3.      Modelado de procesos: los objetos de datos definidos en la fase de modelado quedan transformados para lograr el fin deseado.



   ·         Ciclo de vida XP:

Extreme Programming (XP) surge como una nueva manera de encarar proyectos de software, proponiendo una metodología basada en la simplicidad y agilidad. Las metodologías de desarrollo de software tradicionales (ciclo de vida en cascada, evolutivo, en espiral, iterativo, etc.) comparados con los nuevos métodos propuestos en XP, como pesados y poco eficientes. La crítica más frecuente a estas metodologías “clásicas” es que son demasiado burocráticas. Hay tanto que hacer para seguir la metodología que, a veces, el ritmo entero del desarrollo se retarda.



   ·         Ciclo de vida V:

El modelo en V es un proceso que representa la secuencia de pasos en el desarrollo del ciclo de vida de un proyecto. Describe las actividades y resultados que han de ser producidos durante el desarrollo del producto.

La parte izquierda de la V representa la descomposición de los requisitos y la creación de las especificaciones del sistema. El lado derecho de la v representa la integración de partes y su verificación. V significa “Validación y Verificación”.





   2.      ISO para testing (testeo) de software.

El grupo de trabajo AEN/CTN 71/SC7/GT26 - Pruebas de Software (GT26) fue constituido por AENOR, Organismo de Normalización en España, para participar en la elaboración del futuro estándar ISO sobre pruebas de software, denominado ISO/IEC 29119 Software Testing.

Este estándar, cuya elaboración comenzó en 2007 tiene como objetivo cubrir todo el ciclo de vida de las pruebas de sistemas software incluyendo los aspectos relativos a la organización, gestión, diseño y ejecución de las pruebas, para remplazar varios estándares IEEE y BSI sobre pruebas de software. La estructura de ISO/IEC 29119 consta de cuatro partes, como se ve en la siguiente figura:




Parte 1: Definiciones y Vocabulario

Da una visión general de la norma y de los conceptos generales de pruebas de software y para proporcionar un vocabulario de términos de pruebas de software que cubren las pruebas de software de todo el ciclo de vida.

Se prevé que esta parte se incluyan los siguientes temas:


   ·         Introducción a las pruebas de software.
   ·         Pruebas de software en un contexto organizativo.
   ·         El proceso de prueba.
   ·         La relación entre las pruebas y el desarrollo.
   ·         Implicaciones de los modelos de ciclo de vida de desarrollo software (por ejemplo, cascada, espiral, ágil).
   ·         Tipos de pruebas, pruebas técnicas y fases/niveles de prueba.
   ·         Pruebas basadas en el Riesgo.
   ·         Elementos de Pruebas.
   ·         Requisitos de verificación del sistema.
   ·         Requisitos de validación del sistema.

Parte 2: Proceso de Pruebas

Define un modelo de proceso de pruebas genérico que se puede utilizar dentro de cualquier desarrollo de software y pruebas de ciclo de vida. Dicho modelo de procesos tal está formado por tres niveles:
   ·         Procesos de la organización.
   ·         Procesos de gestión.
   ·         Procesos "fundamentales"

Para un proyecto de pruebas se tienen los niveles de procesos de gestión y procesos "fundamentales".
Estos procesos son la planificación, monitorización y control, y finalización de las pruebas. Los diferentes procesos de gestión se podrán instanciar en uno o en varios dependiendo de la situación. Por ejemplo, en un proyecto simple puede existir solamente un plan de pruebas global (una sola instancia). En un proyecto más complejo puede existir un plan maestro y otros planes subordinados a éste para cubrir diferentes niveles de prueba (por ejemplo, pruebas de integración, sistema o aceptación) o diferentes tipos de prueba. Cada uno de ellos sería una instancia del proceso de gestión.

Los procesos fundamentales abarcan los aspectos técnicos de las pruebas: diseño e implementación, puesta a punto del entorno, ejecución de pruebas y la notificación de resultados de las pruebas. También se incluirán variantes de los procesos para contemplar tanto pruebas dinámicas como estáticas.

Parte 3: Documentación de Pruebas:

Cubre la documentación de las pruebas a través del ciclo de vida completo del software. Esta parte contendrá plantillas de todas las capas del modelo de proceso 29119, incluyendo:

   ·         Política organizacional del Proceso de prueba.
   ·         Estrategia organizacional del Proceso de prueba.
   ·         Proyecto de Gestión del Proceso de prueba.
   ·         Proceso de pruebas fundamentales

Parte 4: Técnicas de Pruebas:


Cubre las técnicas de pruebas del software a través de todos los tipos de pruebas, incluyendo estáticas (por ejemplo: revisiones, inspecciones, tutoriales), funcionales (por ejemplo: caja negra, caja blanca), no funcionales (por ejemplo: funcionamiento, seguridad, utilidad) y basadas en experiencia (por ejemplo: cálculo de error, experimental).


Se está elaborando una Parte 5 Evaluación del Proceso, que será nombrada ISO/IEC 29119-5. La siguiente figura, ilustra la relación de los procesos definidos en el estándar.