PROCESOS DE SOFTWARE
Es un conjunto de personas, estructuras de organización, reglas, políticas, actividades y sus procedimientos, componentes de software, metodologías, y herramientas utilizadas o creadas específicamente para definir, desarrollar, ofrecer un servicio, innovar y extender un producto de software.
Un proceso de software efectivo habilita a la organización a incrementar su productividad al desarrollar software:
• Permite estandarizar esfuerzos, promover recurso, repetición y consistencia entre proyectos.
• Provee la oportunidad de introducir mejores prácticas de la industria.
• Permite entender que las herramientas deben ser utilizadas para soportar un proceso.
• Establece la base para una mayor estabilidad y mejoras futuras.
Un proceso de software mejora los esfuerzos de mantenimiento y soporte:
• Define cómo manejar los cambios y liberaciones a sistemas de software existentes.
• Define cómo lograr la transición del software a la operación, y cómo ejecutar los esfuerzos de operación y soporte.
CICLO DE VIDA DEL SOFTWARE
MODELOS DE PROCESOS DE SOFTWARE
1. MODELO DE CASCADA:
Tiene su origen en el "Modelo de cascada" ingeniado por Winston Royce. El Modelo cascada sugiere un enfoque sistemático o más bien secuencial del desarrollo de software que comienza en un nivel de sistemas y progresa con el análisis, diseño, codificación, pruebas y mantenimiento. El Modelo Lineal Secuencial acompaña las siguientes actividades:
Análisis de los requerimientos del software:
Es la fase en la cual se reúnen todos los requisitos que debe cumplir el software. En esta fase es fundamental la presencia del cliente que documenta y repasa dichos requisitos.
Es una etapa dirigida hacia la estructura de datos, la arquitectura del software, las representaciones de la interfaz y el detalle procedimental (algoritmo). En forma general se hace un esbozo de lo solicitado y se documenta haciéndose parte del software.
Es la etapa en la cual se traduce el diseño para que sea comprensible por la máquina. Esta etapa va a depender estrechamente de lo detallado del diseño.
Pruebas:
Esta etapa se centra en los procesos lógicos internos del software, asegurando que todas las sentencias se han comprobado, y en la detección de errores.
Mantenimiento:
Debido a que el programa puede tener errores, puede no ser del completo agrado del cliente o puede necesitar, eventualmente acoplarse a los cambios en su entorno. Esto quiere decir que no se rehace el programa, sino que sobre la base de uno ya existente se realizan algunos cambios.
Ventajas:
+Se debe tener en cuenta que fue el primer modelo empleado, y por lo tanto es mejor que ninguno.
+Facilita la gestión del desarrollo.
Desventajas:
+En general, establecer todos los requisitos al principio del proceso de desarrollo es un mito inalcanzable, Los usuarios no pueden imaginarse lo que quieren hasta que no ven un sistema funcionando.
+Los requisitos no se pueden congelar mientras dura el desarrollo. El mercado cambia, todo cambia.
+El usuario debe esperar mucho tiempo hasta ver los resultados
+Se genera mucho mantenimiento inicial debido al período de congelación de requisitos y éste recae, en su mayor parte.
2.MODELO INCREMENTAL:
Fue propuesto por Harlan Mills en el año 1980. Surgió el enfoque incremental de desarrollo como una forma de reducir la repetición del trabajo en el proceso de desarrollo y dar oportunidad de retrasar la toma de decisiones en los requisitos hasta adquiriré experiencia con el sistema
el modelo incremental aplica secuencias lineales de forma escalonada mientras progresa el tiempo en el calendario. Cada secuencia lineal produce un incremento del software. El primer incremento generalmente es un producto esencial denominado núcleo.
En una visión general, el proceso se divide en 4 partes:
+Análisis
+Diseño
+Código
Ventajas:
+Se reduce el tiempo de desarrollo inicial, ya que se implementa la funcionalidad parcial.
+También ofrece un impacto ventajoso frente al cliente, que es la entrega temprana de partes operativas del software.
+El modelo proporciona todas las ventajas del modelo en Cascada re alimentado, reduciendo sus desventajas sólo al ámbito de cada incremento.
+Resulta más sencillo acomodar cambios al acotar el tamaño de los incrementos.
Desventajas:
+El modelo incremental no es recomendable para casos de sistemas de tiempo real, de alto nivel de seguridad, de procesamiento distribuido y/o de alto índice de riesgos.
+Requiere de mucha planeación, tanto administrativa como técnica.
+Requiere de metas claras para conocer el estado del proyecto.
3.MODELO DE DESARROLLO RÁPIDO DE APLICACIONES (DRA)
El modelo DRA es una adaptación a del modelo lineal secuencial en el que se logra el desarrollo rápido utilizando un enfoque de construcción basado en componentes. Si se comprenden bien los requisitos y se limita el ámbito del proyecto, el proceso DRA permite al equipo de desarrollo crear un sistema completamente funcional dentro de periodos cortos de tiempo.
Modelado de Gestión:
El flujo de información entre las funciones de gestión se modela de forma que responda a las siguientes preguntas: ¿Qué información conduce el proceso de gestión?, ¿Qué información se genera?, ¿Quién la genera?, ¿A dónde va la información?, ¿Quién la procesa?.
Modelado de Datos:
El flujo de información definido como parte de la fase de modelado de gestión se refina como un conjunto de objetos de datos necesarios para apoyar la empresa. Se definen las características (llamadas atributos) de cada uno de los objetos y las relaciones entre estos objetos.
Modelado de Proceso:
Los objetos de datos definidos en la fase de modelado de datos quedan transformados para lograr el flujo de información necesario para implementar una función de gestión. Las descripciones del proceso se crean para añadir, modificar, suprimir o recuperar un objeto de datos.
Generación de Aplicaciones:
El modelo asume la utilización de técnicas de cuarta generación. En lugar de crear software con lenguajes de programación de tercera generación, el proceso DRA trabaja para volver a utilizar componentes de programas ya existentes (cuando es posible) o a crear componentes reutilizables (cuando sea necesario). En todos los casos se utilizan herramientas automáticas para facilitar la construcción del software.
Pruebas y Entrega:
Como el proceso DRA enfatiza la reutilización, ya se han comprobado muchos de los componentes de los programas. Esto reduce tiempo de pruebas. Sin embargo, se deben probar todos los componentes nuevos y se deben ejercitar todas las interfaces a fondo.
Ventajas:
+Es muy rápido.
+Permite trabajar en él a varias personas a la vez.
+Enfatiza ciclos de desarrollo extremadamente cortos.
+Se asegura de que el producto entregado cumple las necesidades del cliente.
Desventajas:
+El enfoque DRA tiene inconvenientes para proyectos grandes aunque por escalas, necesita suficientes recursos humanos para crear el numero correcto de equipos.
+Si los desarrolladores y clientes no se comprenden con las actividades necesarias para completar el sistema, los proyectos fallarán.
+El DRA sería inapropiado cuando los riesgos técnicos son altos.
+No todos los tipos de aplicaciones son apropiados para DRA.Si un sistema no se puede modulizar adecuadamente. La construcción de los componentes necesarios para DRA será problemático. Si está en juego el alto rendimiento, y se va a conseguir el rendimiento convirtiendo interfaces en componentes de sistema, el enfoque DRA puede que no funcione.
4.MODELO DE PROCESOS EVOLUTIVOS:
Los modelos evolutivos son iterativos. Se caracterizan por la forma en que permiten a los ingenieros del software desarrollar versiones cada vez mas completas del software.
El software evoluciona con el tiempo. Los requisitos del usuario y del producto suelen cambiar conforme se desarrolla el mismo. Las fechas de mercado y la competencia hacen que no sea posible esperar a poner en el mercado un producto absolutamente completo, por lo que se aconsejable introducir una versión funcional limitada de alguna forma para aliviar las presiones competitivas.
-Modelo espiral:
Es un ciclo de vida de software definido por Barry Boehm en 1988, utilizado mayormente en la ingeniería de software. Fue descrito por Boehm de la siguiente manera: ¨El modelo de desarrollo en espiral es un generador de modelo de proceso guiado por el riesgo que se emplea para conducir sistemas intensivos de ingeniería de software concurrente y a la vez con muchos usuarios¨. Las actividades que conforman este modelo forman una espiral, en la que cada bucle o interacciona representa un conjunto de actividades. Se tiene en cuenta fuertemente el riesgo que aparece a la hora de desarrollar software.
Planificación: determinación de objetivos, alternativas y restricciones.
Análisis de riesgo: análisis de alternativas e identificación/resolución de riesgos.
Ingeniería: desarrollo del producto del "siguiente nivel",
Evaluación del cliente: Valorización de los resultados de la ingeniería.
+Reduce riesgos del proyecto
+Incorpora objetivos de calidad
+Integra el desarrollo con el mantenimiento, etc.
Desventajas:
+Genera mucho tiempo en el desarrollo del sistema
+Modelo costoso
+Requiere experiencia en la identificación de riesgos
VÍDEO: