s o s e c o r p e d s o l e d o M da i V e d o l c i C e d
Agosto 2014
Contenido... - Concepto
de ciclo de vida
- Procesos de ciclo de vida del software - Procesos de soporte - Procesos de Organizaciones - Procesos de adaptaci贸n
Ciclo de vida El concepto de vida puede ser utilizado en muchos ámbitos , entre ellos se encuentra el de la ingeniería y la informática, el ciclo de desarrollo es el periodo que comienza con la implementación de un estándar tecnológico y finaliza con el desarrollo de nuevas herramientas más eficientes.
Según James Senn, e x i s t e n tres estrategias para el desarrollo de sistemas: el método clásico del ciclo de vida de desarrollo de sistemas, el método de desarrollo por análisis estructurado y el método de construcción de prototipos de sistemas. Cada una de estas estrategias tienen un uso amplio en cada una de los diversos tipos de empresas que existen, y resultan efectivas si son aplicadas de manera adecuada. El ciclo de vida de un sistema de información es un enfoque por fases del análisis y diseño que facilita su desarrollados mediante el uso de un ciclo especifico de actividades del analista y del usuario.
Procesos de ciclo de vida del software En este procesos se describe el desarrollo de software, desde la fase inicial hasta la fase final. El propósito de este programa es definir las distintas fases intermedias que se requieren para validar el desarrollo de la aplicación, es decir, para garantizar que el software cumpla los requisitos para la aplicación y verificación de los procedimientos de desarrollo: se asegura de que los métodos utilizados son apropiados.
Estos programas se originan en el hecho de que es muy costoso rectificar los errores que se detectan tarde dentro de la fase de implementación. El ciclo de vida permite que los errores se detecten lo antes posible y por lo tanto, permite a los desarrolladores concentrarse en la calidad del software, en los plazos de implementación y en los costos asociados.
Un proceso para el desarrollo de software, tambiĂŠn denominado ciclo de vida del desarrollo de software es una estructura aplicada al desarrollo de un producto de software. Hay varios modelos a seguir para el establecimiento de un proceso para el desarrollo de software, cada uno de los cuales describe un enfoque diferente para diferentes actividades que tienen lugar durante el proceso.
Un modelo de ciclo de vida define el estado de las fases a travĂŠs de las cuales se mueve un proyecto de desarrollo de software.
MODELO CASCADA Este es el más básico de todos los modelos, y sirve como bloque de construcción para los demás modelos de ciclo de vida. La visión del modelo cascada del desarrollo de software es muy simple; dice que el desarrollo de software puede ser a través de una secuencia simple de fases. Cada fase tiene un conjunto de metas bien definidas, y las actividades dentro de una fase contribuye a la satisfacción de metas de esa fase o quizás a una subsecuencia de metas de la fase. Las flechas muestran el flujo de información entre las fases. La flecha de avance muestra el flujo normal. Las flechas hacia atrás representan la retroalimentación.
El modelo de ciclo de vida cascada, captura algunos principios básicos: Planear un proyecto antes de embarcarse en él. Definir el comportamiento externo deseado del sistema antes de diseña su arquitectura interna. Documentar los resultados de cada actividad. Diseñar un sistema antes de codificarlo. Testear un sistema después de construirlo.
El modelo espiral no es una alternativa del modelo cascada, ellos son completamente compatible.
MODELO ESPIRAL Es un modelo del ciclo de meta-vida, donde el esfuerzo de desarrollo es iterativo. Tan pronto como uno completa un esfuerzo de desarrollo, otro comienza. Además, en cada desarrollo ejecutado, puedes seguir estos cuatros pasos: Determinar qué quieres lograr. Determinar las rutas alternativas que puedes tomar para lograr estas metas. Por cada una, analizar los riesgos y resultados finales, y seleccionar la mejor. Seguir la alternativa seleccionada en el paso 2. Establecer qué tienes terminado.
El modelo espiral captura algunos principios básicos: Decidir qué problema se quiere resolver antes de viajar a resolverlo. Examinar tus múltiples alternativas de acción y elegir una de las más convenientes. Evaluar qué tienes hecho y qué tienes que haber aprendido después de hacer algo. No ser tan ingenuo para pensar que el sistema que estás construyendo será "EL" sistema que el cliente necesita, y Conocer (comprender) los niveles de riesgo, que tendrás que tolerar.
MODELO INCREMENTAL Es el proceso de construcción que siempre ira incrementando subconjuntos de requerimientos del sistema. El desarrollo incremental es 100% compatible con el modelo cascada. El desarrollo incremental no demanda una forma específica de observar el desarrollo de algún otro incremento. El modelo de desarrollo incremental provee algunos beneficios significativos para los proyectos: Construir un sistema pequeño es siempre menos riesgoso que construir un sistema grande. Si un error importante es realizado, el incremento previo puede ser usado.
Al ir desarrollando parte de las funcionalidades, es más fácil determinar si los requerimientos planeados para los niveles subsiguientes son correctos. Si un error importante es realizado, sólo la última iteración necesita ser descartada. Reduciendo el tiempo de desarrollo de un sistema decrecen las probabilidades que esos requerimientos de usuarios puedan cambiar durante el desarrollo. Los errores de desarrollo realizados en un incremento, pueden ser arreglados antes del comienzo del próximo incremento.
MODELO EVOLUTIVO En este los requerimientos son cuidadosamente examinados, y sólo esos que son bien comprendidos son seleccionados para el primer incremento. Los desarrolladores construyen una implementación parcial del sistema que recibe sólo estos requerimientos. El sistema es entonces desarrollado, los usuarios lo usan, y proveen retroalimentación a los desarrolladores. Basada en esta retroalimentación, la especificación de requerimientos es actualizada, y una segunda versión del producto es desarrollada y desplegada. El proceso se repite indefinidamente.
El desarrollo de software en forma evolutiva requiere un especial cuidado en la manipulación de documentos, programas, datos de test, etc. desarrollados para distintas versiones del software. Cada paso debe ser registrado, la documentación debe ser recuperada con facilidad, los cambios deben ser efectuados de una manera controlada.
MODELO CONCURRENTE Este modelo provee una meta-descripción del proceso software. Mientras que la contribución primaria del modelo espiral es en realidad que esas actividades del software ocurran repetidamente, la contribución del modelo concurrente es su capacidad de describir las múltiples actividades del software ocurriendo simultáneamente. Eligiendo seguir un proyecto usando técnicas de modelación concurrente, se posibilita el conocimiento del estado verdadero en el que se encuentra el proyecto.
Modelo en v Permite terminar con algunos de los problemas que se vieron utilizando el enfoque de cascada tradicional. Los defectos estaban siendo encontrados demasiado tarde en el ciclo de vida, ya que las pruebas no se introduc铆an hasta el final del proyecto. El modelo en v dice que las pruebas necesitan empezarse lo m谩s pronto posible en el ciclo de vida. En comparaci贸n con los otros ciclos de vida el software se desarrolla durante la fase de implementaci贸n, por lo que no se producen prototipos del software.
Procesos de soporte Sirven de apoyo al resto de procesos y pueden aplicarse en cualquier punto del ciclo de vida. Proceso de documentación: Comprende todas las actividades que permiten desarrollar, distribuir y mantener la documentación necesaria.
Proceso de gestión de la configuración: Controla las modificaciones y las versiones de los elementos de configuración del software del sistema.
Proceso de aseguramiento de la calidad: Comprueba que los procesos y los productos software del ciclo de vida cumplen con los requisitos especificados.
Proceso de verificación: El objetivo es demostrar la consistencia, completitud y corrección del software entre las fases del ciclo de desarrollo de un proyecto.
Proceso de validación: El objetivo es determinar la corrección del producto final respecto a las necesidades del usuario.
Proceso de revisión conjunta: Para evaluar el estado del software y sus productos en una determinada actividad del ciclo de vida o una fase de un proyecto. Las revisiones conjuntas se celebran tanto a nivel de gestión como a nivel técnico del proyecto a lo largo de todo su ciclo de vida. Un mecanismo habitual de revisión son las reuniones y la responsabilidad es generalmente compartida entre un grupo de personas pertenecientes a la organización.
Proceso de auditoría: Permite determinar, en los hitos preestablecidos, si se han cumplido los requisitos, los planes y, en suma, el contrato.
Proceso de resolución de problemas: Permite analizar y solucionar los problemas, sean éstos diferencias con los requisitos o con el contrato. Aporta un medio oportuno y documentado para asegurar que los problemas detectados son analizados y solucionados.
Procesos de organización Son los utilizados por una organización para llevar a cabo funciones como la gestión, formación del personal o procesos de mejora continua. Proceso de gestión: Contiene las actividades y las tareas genéricas que puede emplear una organización que tenga que gestionar sus procesos. Incluye actividades como la planificación, el seguimiento y control, la revisión y evaluación.
Proceso de infraestructura: Establece la infraestructura necesaria para cualquier otro proceso, para el desarrollo, explotación y mantenimiento.
Proceso de mejora: Para mejorar los procesos del ciclo de vida del software.
Proceso de formación: Para mantener al personal con la adecuada formación, lo que conlleva el desarrollo del material de formación, así como la implementación del plan de formación de la organiza
Procesos de adaptación
Sirve para realizar la adaptación básica de la norma ISO 12207-1 respecto a los proyectos software. Como es sabido, las variaciones en las políticas y procedimientos de la organización, los métodos y estrategias de adquisición, el tamaño y complejidad de los proyectos, los requisitos del sistema y los métodos de desarrollo, entre otros, influencian la forma de adquirir, desarrollar, explotar o mantener un sistema.
Dado que los procesos se aplican durante el ciclo de vida del software, y además se utilizan de diferentes formas por las diferentes organizaciones y con distintos puntos de vista y objetivos, es preciso comprender los procesos, las organizaciones y sus relaciones bajo diferentes puntos de vista:
Contrato: El comprador y el proveedor negocian y firman el contrato, empleando los procesos de adquisición y suministro.
Gestión o dirección: El comprador, el proveedor, el desarrollador, el operador y el personal de mantenimiento gestionan sus respectivos procesos en el proyecto software.
Explotación: El operador proporciona el servicio de explotación del software a los usuarios.
Ingeniería: El desarrollador o el personal de mantenimiento llevan a cabo sus respectivas tareas de ingeniería para producir o modificar los productos de software.
Soporte: Los grupos de soporte proporcionan servicios de apoyo a otros grupos en el cumplimiento de tareas únicas y específicas.