miércoles, 4 de abril de 2007

Analisis de las Fases aplicando la norma IEEE 730

Fase I Necesidades
Esta etapa tiene como objetivo la consecución de un primer documento en que queden reflejados los requerimientos y funcionalidades que ofrecerá al usuario del sistema a desarrollar (qué, y no cómo, se va a desarrollar).

Cuando la organización detecta debilidades en su actual sistema o desea automatizar alguno(s) de su(s) proceso(s) nace la necesidad. Para cubrir esta necesidad se hace necesaria la búsqueda de profesionales idóneos en el área de Informática.

El primer paso para llevar a cabo estos procesos es el levantamiento de la información que puede describirse como las entrevistas, revisión de documentos, manuales de procesos, etc.

Dado que normalmente se trata de necesidades del cliente para el que se creará la aplicación, el documento resultante suele tener como origen una serie de entrevistas cliente-proveedor situadas en el contexto de una relación comercial, siendo que debe ser comprendido por ambas partes (puede incluso tomarse como base para el propio acuerdo comercial).

En la norma IEEE 730 esta etapa comprende:

Propósito
Delinea el propósito específico y el alcance del plan SQA (Automatizar los procesos de la organización verificando si la construcción del software representa algún riesgo para la salud).
Especifica el alcance que involucra a todo el sistema (Áreas de la organización).

Documentos de referencias
Documentos obtenidos en al levantamiento de la información.

Gestión
Está ligado al plan de proyecto de software (IEEE Std. 1058-1998)
De acuerdo a esta norma se hace necesaria la presencia de los involucrados (en este caso el adquiriente y el proveedor) para realizar alguna modificación al software de la empresa (actualizarlo) o desarrollar uno nuevo. FALTA COMPLETAR CON LA NORMA.

Organización
Identifica roles y responsabilidades dentro del plan SQA (Se identifica al responsable del levantamiento de la información y a los responsables de la organización encargados de brindarla).

Tareas
Describe las tareas a desarrollar
Los criterios de entrada y salida para cada tarea.Las relaciones entre estas tareas y los principales puntos de control planeado.


Roles y responsabilidades
Identifica los elementos organizativos responsables de llevar a cabo cada tarea. (Identifica las áreas y los responsables para cada una de las tareas).

Documentación
Norma IEEE Std. 830-1998 PARA SU REVISION

Fase II Especificaciones
Ahora se trata de formalizar los requerimientos; el documento obtenido en la etapa anterior se tomará como punto de partida para esta fase. Su contenido es aún insuficiente y lleno de imprecisiones que será necesario completar y depurar.
Por medio de esta etapa se obtendrá un nuevo documento que definirá con más precisión el sistema requerido por el cliente (el empleo de los
casos de uso, use cases, de Jacobson es una muy buena elección para llevar a cabo la especificación del sistema).
Lo más normal será que no resulte posible obtener una buena especificación del sistema a la primera; serán necesarias sucesivas versiones del documento en que irán quedando reflejada la evolución de las necesidades del cliente (por una parte no siempre sabe en los primeros contactos todo lo que quiere realmente, y por otra parte pueden surgir cambios externos que supongan requerimientos nuevos o modificaciones de los ya contemplados).

En la norma IEEE 730 esta etapa comprende:

Gestión
Analiza y describe los criterios de entrada y salida para cada proceso (de acuerdo a los casos de uso).

Documentos de referencias
Documentos obtenidos en base a las entrevistas.

Fases del Ciclo de Vida del Software aplicando la norma IEEE Std. 730-2002

OBJETIVOS DE CADA FASE
Dentro de cada fase general de un modelo de ciclo de vida, se pueden establecer una serie de objetivos y tareas que lo caracterizan.

Fase de definición (¿qué hacer?)
  • Estudio de viabilidad.
    Conocer los requisitos que debe satisfacer el sistema (funciones y limitaciones de contexto).
  • Asegurar que los requisitos son alcanzables.
  • Formalizar el acuerdo con los usuarios.
  • Realizar una planificación detallada.

Fase de diseño (¿cómo hacerlo? Soluciones en coste, tiempo y calidad)

  • Identificar soluciones tecnológicas para cada una de las funciones del sistema.
  • Asignar recursos materiales para cada una de las funciones.
  • Proponer (identificar y seleccionar) subcontratas.
  • Establecer métodos de validación del diseño.
  • Ajustar las especificaciones del producto.

Fase de construcción

  • Generar el producto o servicio pretendido con el proyecto.
  • Integrar los elementos subcontratados o adquiridos externamente.
  • Validar que el producto obtenido satisface los requisitos de diseño previamente definidos y realizar, si es necesario, los ajustes necesarios en dicho diseño para corregir posibles lagunas, errores o inconsistencias.

Fase de mantenimiento y operación

  • Operación: asegurar que el uso del proyecto es el pretendido.
  • Mantenimiento (nos referimos a un mantenimiento no habitual, es decir, aquel que no se limita a reparar averías o desgastes habituales -este es el caso del mantenimiento en productos software, ya que en un programa no cabe hablar de averías o de desgaste).

Fases del Ciclo de Vida del Software aplicando la norma IEEE Std. 730-2002

Ciclo de Vida del Software (Modelo Genérico)

Todo proyecto de ingeniería tiene unos fines ligados a la obtención de un producto, proceso o servicio que es necesario generar a través de diversas actividades. Algunas de estas actividades pueden agruparse en fases porque globalmente contribuyen a obtener un producto intermedio, necesario para continuar hacia el producto final y facilitar la gestión del proyecto. Al conjunto de las fases empleadas se le denomina “ciclo de vida”.
Sin embargo, la forma de agrupar las actividades, los objetivos de cada fase, los tipos de productos intermedios que se generan, etc. pueden ser muy diferentes dependiendo del tipo de producto o proceso a generar y de las tecnologías empleadas.
La complejidad de las relaciones entre las distintas actividades crece exponencialmente con el tamaño, con lo que rápidamente se haría inabordable si no fuera por la vieja táctica de “divide y vencerás”. De esta forma la división de los proyectos en fases sucesivas es un primer paso para la reducción de su complejidad, tratándose de escoger las partes de manera que sus relaciones entre sí sean lo más simples posibles.
La definición de un ciclo de vida facilita el control sobre los tiempos en que es necesario aplicar recursos de todo tipo (personal, equipos, suministros, etc.) al proyecto. Si el proyecto incluye subcontratación de partes a otras organizaciones, el control del trabajo subcontratado se facilita en la medida en que esas partes encajen bien en la estructura de las fases. El control de calidad también se ve facilitado si la separación entre fases se hace corresponder con puntos en los que ésta deba verificarse (mediante comprobaciones sobre los productos parciales obtenidos).
De la misma forma, la práctica acumulada en el diseño de modelos de ciclo de vida para situaciones muy diversas permite que nos beneficiemos de la experiencia adquirida utilizando el enfoque que mejor de adapte a nuestros requerimientos.


ELEMENTOS DEL CICLO DE VIDA
Un ciclo de vida para un proyecto se compone de fases sucesivas compuestas por tareas planificables. Según el modelo de ciclo de vida, la sucesión de fases puede ampliarse con bucles de realimentación, de manera que lo que conceptualmente se considera una misma fase se pueda ejecutar más de una vez a lo largo de un proyecto, recibiendo en cada pasada de ejecución aportaciones de los resultados intermedios que se van produciendo (realimentación).

TIPOS DE MODELO DE CICLO DE VIDA
Las principales diferencias entre distintos modelos de ciclo de vida están en:
El alcance del ciclo dependiendo de hasta dónde llegue el proyecto correspondiente. Un proyecto puede comprender un simple estudio de viabilidad del desarrollo de un producto, o su desarrollo completo o, llevando la cosa al extremo, toda la historia del producto con su desarrollo, fabricación, y modificaciones posteriores hasta su retirada del mercado.
Las características (contenidos) de las fases en que dividen el ciclo. Esto puede depender del propio tema al que se refiere el proyecto (no son lo mismo las tareas que deben realizarse para proyectar un avión que un puente), o de la organización (interés de reflejar en la división en fases aspectos de la división interna o externa del trabajo).
La estructura de la sucesión de las fases que puede ser lineal, con prototipado, o en espiral. Veámoslo con más detalle:

Ciclo de vida lineal


Ciclo de vida con prototipado



Ciclo de vida en espiral