2.CICLO DE VIDA Y SISTEMAS DE SOFTWARE
*Modelo en cascada(ventajas y desventajas)
(78 Some) Ventajas: -La documentación se produce en cada fase -Es simple y fácil de usar. -Cuadra con otros modelos del proceso de ingeniería -Funciona bien para proyectos pequeños donde los requisitos están bien entendidos Desventajas: -Los proyectos reales raras veces siguen el desarrollo secuencial que propone el modelo en cascada. -Los cambios pueden causar confusión cuando el equipo de desarrollo recién comienza a trabajar. -A menudo es difícil que el cliente exponga explícitamente todos los requisitos. El modelo en cascada así lo requiere y tiene dificultades a la hora de acomodar la incertidumbre natural al comienzo de muchos proyectos. -El cliente debe tener paciencia. Una versión de trabajo del (los) programa(s) no estará disponible hasta que el proyecto esté muy avanzado. Un grave error puede ser desastroso si no se detecta hasta que se revisa el programa. -
Modelo en espiral (Gráfico,sectores,explicación)
(83 Some) Se representa como una espiral. Cada ciclo en la espiral representa una fase del proceso del software Así, el ciclo más interno podría referirse a la viabilidad del sistema, el siguiente ciclo a la definición de requerimientos, el siguiente ciclo al diseño del sistema, y así sucesivamente. Cada ciclo de la espiral se divide en cuatro sectores: 1-determinar objetivos, alternativas y restricciones 2-evaluar alternativas, identificar y resolver los riesgos 3-desarrollar y validar el producto del siguiente nivel 4-planificar las siguientes fases. Un ciclo de la espiral empieza con la elaboración de objetivos, como el rendimiento y la funcionalidad. Entonces se enumeran formas alternativas de alcanzar estos objetivos y las restricciones impuestas en cada una de ellas. Cada alternativa se evalúa contra cada objetivo y se identifican las fuentes de riesgo del proyecto. El siguiente paso es resolver estos riesgos mediante actividades de recopilación de información como la de detallar más el análisis, la construcción de prototipos y la simulación. Una vez que se han evaluado los riesgos, se lleva a cabo cierto desarrollo seguido de una actividad de planificación para la siguiente fase del proceso.
*PROCESO DE INGENIERIA EN SISTEMAS
(Ciclo de vida según Sommerville) S 40 Sommerville, enfoca el ciclo de vida del sistema como el Proceso de la Ingeniería de Sistemas (Gráfico) 1. Definición de requerimientos: 2. Diseño del sistema 3. Desarrollo del subsistema 4. Integración del sistema 5. Instalación del sistema 6. Evolución del sistema 7. Desmantelamiento del sistema
*Importancia del ciclo de vida (por que es conveniente una metodología de trabajo?)
(DIAP) Sirve de base de los procesos utilizados para desarrollar un sistema de información. Es conveniente seleccionar una metodología de trabajo porque: -construir un sistema socio-técnico es una actividad compleja que requiere un gran esfuerzo sobre todo de las personas. -el sistema tiene un conjunto de componentes como el software, hardware, datos, documentos, redes, etc., los cuales debemos gestionar. -las personas que interactúan entre sí, tienen diferentes grados de conocimiento, asumen diferentes roles y poseen diferentes intereses hacia el sistema. -definir un marco de trabajo permite organizar el proceso de desarrollo definiendo pautas a seguir y restricciones a cumplir.
*Modelo en cascada(definición,gráfico)
(Gráfico) El modelo está marcado por la sucesión escalonada de las etapas que la componen: análisis de requerimientos, diseño, codificación, pruebas e implementación. Es necesario terminar por completo cada fase para empezar la siguiente
*Desarrollo evolutivo(grafico,definición)
(Gráfico) S 78 El desarrollo evolutivo se basa en la idea de desarrollar una implementación inicial, exponiéndola a los comentarios del usuario y refinándola a través de las diferentes versiones hasta que se desarrolla un sistema adecuado. Las actividades de especificación, desarrollo y validación se entrelazan en vez de separarse, con una rápida retroalimentación No existe una especificación detallada del sistema y la documentación se minimiza
Modelo en espiral (1ra iteración)
1ra iteración: 1. podría referirse al estudio de viabilidad 2. Se evalúan los riesgos del proyecto y se construye prototipos de las alternativas y la simulación. 3. Se escribe un documento con el "concepto de las operaciones"(documento de la primera iteración), el cual describe la funcionalidad del sistema en un alto nivel, desde el punto de vista del usuario
*Modelo en cascada(fases,docmentacion)
Análisis y definición de requerimientos: Los servicios, restricciones y metas del sistema se definen a partir de las consultas con los usuarios. Entonces, se definen en detalle y sirven como una especificación del sistema. Produce la especificación de requerimientos Diseño del sistema y del software: El proceso de diseño del sistema divide los requerimientos en sistemas hardware o software. Establece una arquitectura completa del sistema. El diseño del software identifica y describe las abstracciones fundamentales del sistema software y sus relaciones. Produce la especificación del diseño Implementación y prueba de unidades: Durante esta etapa, el diseño del software se lleva a cabo como un conjunto o unidades de programas. La prueba de unidades implica verificar que cada una cumpla su especificación. Produce código fuente y pruebas Integración y prueba del sistema: Los programas o las unidades individuales de programas se integran y prueban como un sistema completo para asegurar que se cumplan los requerimientos del software. Después de las pruebas, el sistema software se entrega al cliente. Produce el diseño y el resultado de las pruebas Funcionamiento y mantenimiento: Por lo general (aunque no necesariamente), ésta es la fase más larga del ciclo de vida. El sistema se instala y se pone en funcionamiento práctico. El mantenimiento implica corregir errores no descubiertos en las etapas anteriores del ciclo de vida, mejorar la implementación de las unidades del sistema y resaltar los servicios del sistema una vez que se descubren nuevos requerimientos. Produce cambios
*Fases del ciclo de vida
No hay un acuerdo en la cantidad de fases que incluye el ciclo de vida del desarrollo de sistemas Kendall y Kendall dividen el ciclo de vida del desarrollo en siete fases: 1. Identificación de problemas, oportunidades y objetivos: 2. Determinación de los requerimientos de información 3. Análisis de las necesidades del sistema 4. Diseño del sistema recomendado 5. Desarrollo y documentación del software 6. pruebas y mantenimiento del sistema 7. implementación y evaluación del sistema
PROCESO DE DESARROLLO DEL SOFTWARE (definicion y actividades)
PROCESO DE DESARROLLO DEL SOFTWARE S 75 Es un conjunto de actividades que conducen a la creación de un producto software. (Torres) Un proceso de desarrollo del software es un conjunto completo de actividades y resultados asociados necesarios para transformar los requerimientos de un cliente / usuario en un producto o sistema. Actividades comunes entre los diferentes procesos de software: 1. Especificación del software. Define la funcionalidad del software y las restricciones en su operación. 2. Diseño e implementación del software. Produce el software que cumpla la especificación definida en el paso anterior. 3. Validación del software. Valida el software para asegurar que hace lo que el cliente desea. 4. Evolución del software. El software debe evolucionar para cubrir las necesidades cambiantes del cliente y el mercado.
*CICLO DE VIDA(Definición)
Respuesta Torres: El ciclo de vida de un sistema de información es el conjunto de fases [o procesos] por las que pasa el sistema desde que se concibe [o inicio] hasta que se retira del servicio finalizando su uso [desmantelamiento del sistema]. Las fases o procesos están estandarizados de manera que puedan ser adaptados a las necesidades de quién lo use. Las actividades asociadas al ciclo de vida del desarrollo de los SI son continuas. Conforme se construye el sistema, el proyecto tiene cronogramas y fechas límite, hasta que el sistema se instale y acepte. La vida del sistema continúa mientras se mantiene y revisa. Si el sistema necesita sustituirse debido a una nueva generación de tecnología, o si las necesidades de los Sistemas de Información de la organización cambian significativamente, el sistema puede desmantelarse y se iniciará un nuevo proyecto y el ciclo comenzará de nuevo. K Es un enfoque por fase para el análisis y el diseño cuya premisa principal consiste en que los sistemas se desarrollan mejor utilizando un ciclo específico de actividades del analista y el usuario. Es posible que varias actividades ocurran de manera simultánea, y algunas de ellas podrían repetirse. Es más práctico considerar que el SDLC se realiza por fases (con actividades en pleno apogeo que se traslapan con otras hasta terminarse por completo) y no en pasos aislados.
MODELO DE PROCESO DE SOFTWARE (definicion, modelos)
S 76 Un modelo de proceso es una representación abstracta de un proceso del software desde una perspectiva en particular. Define el ciclo de vida que se adoptará para el proyecto de sistemas. Modelos de proceso: En cascada Desarrollo evolutivo En espiral
DIFERENCIA: PROCESO DE INGENIERIA DE SISTEMAS vs PROCESO DE DESARROLLO DE SOFTWARE
S39 1. Alcance limitado para rehacer el trabajo durante el desarrollo de sistemas. Una vez que se han tomado decisiones en la ingeniería del sistema cuesta mucho trabajo cambiarlas. Una razón por la que el software ha llegado a ser tan importante en los sistemas es que permite cambios que se hacen durante el desarrollo del sistema, como respuesta a nuevos requerimientos. 2. Implicación interdisciplinaria. Muchas disciplinas de la ingeniería se conjuntan en la ingeniería de sistemas. Existe una gran discrepancia debido a que diferentes ingenieros usan diferente terminología y convenciones.
*DEFINICION DE REQUERIMIENTOS
Se especifica que es lo que el sistema debe hacer (sus funciones) y sus propiedades esenciales y deseables. Crear definiciones de requerimientos requiere consultar con los clientes y usuarios finales. En esta fase es importante establecer un conjunto completo de objetivos que deben definir por qué se construye el sistema para un entorno particular. Usualmente se concentra en la definición de tres tipos de requerimientos *Requerimientos funcionales abstractos. Las funciones básicas que el sistema debe proporcionar se definen en un nivel abstracto. *Propiedades del sistema. Son propiedades emergentes no funcionales del sistema, tales como la disponibilidad, el rendimiento y la seguridad. Estas propiedades no funcionales del sistema afectan a los requerimientos de todos los subsistemas. *Características que no debe mostrar el sistema. Algunas veces es tan importante especificar lo que el sistema no debe hacer como especificar lo que debe hacer.
*Desarrollo evolutivo(situaciones para utilizarlo)
Situaciones para utilizar este modelo: Cuando: -Se desarrollan sistemas pequeños y tamaño medio (hasta500.000líneasdecódigo). -Es necesario resolver incertidumbres en la especificación del sistema. -No se recomienda para sistemas grandes, complejos y con período de vida largo donde diferentes equipos desarrollan distintas partes del sistema. Es difícil establecer una arquitectura estable del sistema
*Modelo en cascada(cuando utilizar el modelo)
Situaciones para utilizar este modelo: Cuando: -Los requisitos se comprendan bien y difícilmente cambien durante el desarrollo. -Se necesita documentación detallada en cada una de las fases. -El equipo de desarrollo está en sus primeras experiencias -El sistema es parte de proyectos grandes de ingeniería de sistemas.
*Desarrollo evolutivo(tipos)
Tipos de desarrollo evolutivo: Desarrollo exploratorio: El objetivo es trabajar con clientes hasta evolucionar a un sistema final, a partir de una especificación inicial. Se debe comenzar con unas especificaciones bien entendidas. Prototipos desechables: El objetivo es entender los requerimientos del sistema. Se puede comenzar con especificaciones poco entendidas resolviendo las incertidumbres.
*Desarrollo evolutivo(ventajas y desventajas)
Ventajas: -Continua revisión por parte del cliente -Permite cambios de requerimientos sobre la marcha Desventajas: -El proceso no es visible: Los administradores tienen que hacer entregas regulares para medir el progreso. No es rentable producir documentos que reflejen cada versión del sistema. -A menudo los sistemas tienen una estructura deficiente. Los cambios continuos tienden a corromper la estructura del software. Incorporar cambios es una tarea difícil.
Diseño del sistema
se centra en proporcionar la funcionalidad del sistema a través de sus diferentes componentes. Se realizan las siguientes actividades: - Dividir requerimientos - Identificar subsistemas - Asignar requerimientos a los subsistemas - Especificar la funcionalidad de los subsistemas - Definir las interfaces del subsistema.