You are on page 1of 17

INTRODUCCION A LAS METODOLOGIAS Y MODELOS DE CICLOS DE VIDA DE UN SISTEMA

INGENIERIA DE SOFTWARE

PRESENTADO POR EDUARDO MORANTES DIAZ - 1150445 YURLEY ANDREA RODRIGUEZ - 1150391 NANCY MARCELA ALVAREZ - 1150342

PRESENTADO A ING. JUDITH DEL PILAR RODRIGUEZ

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER FACULTAD DE INGENIERIA INGENIERIA DE SISTEMAS SAN JOSE DE CUCUTA 2013

DESARROLLO

1. Hay algn caso en que no se apliquen fases genricas del proceso de ingeniera del software? Si es as, descrbalo. Pues no es que no se apliquen las fases genricas del proceso de ingeniera de software sino que se aplican solo algunas y de forma muy informal. Teniendo en cuenta que el marco de trabajo genrico consta de actividades como: la comunicacin, la planeacin, el modelado, la construccin y el despliegue, el caso a explicar sera el diseo de un sistema de informacin para una tienda de barrio. En este caso se cumple la fase de la comunicacin que sera donde el seor de la tienda le cuenta al ingeniero lo que desea, el cual sera un sistema de informacin donde se proporcione la informacin de los artculos de la tienda y un mdulo de facturacin sencillo. No es necesaria la planeacin porque no habr necesidad de hacerle un seguimiento al software pues sencillamente en la base de datos el usuario actualizar los productos y en el mdulo de facturacin actualizar el IVA, por lo que no se requiere de tecnologas muy avanzadas. Pasando a la siguiente fase que es la de modelado dira que est no se usa porque sus clases a lo mucho seran tres y la parte de documentacin no es tan necesaria para este caso. La fase de construccin si se usa, en ella va el desarrollo del cdigo y las respectivas pruebas que se requieran realizar. Por ltimo la fase del despliegue si la cumple, es ah donde se le entrega el software al seor de la tienda y se le ensea cmo debe utilizar el software. De lo anteriormente mencionado se puede concluir que por muy sencillo o fcil de desarrollar que sea el software, si requiere obligatoriamente de al menos tres de las fases genricas del proceso de ingeniera del Software.

2. Qu paradigmas de ingeniera del software de los ledos piensa que sera el ms eficaz? Por qu? Entendiendo eficaz como lo que produce el efecto esperado o que va bien para una determinada cosa y que esa cosa sea la calidad del software, yo pienso que el ms eficaz es el de modelos de proceso evolutivos, porque su

propsito es desarrollar software de alta calidad de una manera iterativa o incremental. Los modelos de proceso evolutivos son tres: el de construccin de prototipo, el modelo en espiral y el modelo de desarrollo concurrente, de estos el que yo considero ms eficaz es el modelo en espiral por las ventajas que proporciona las cuales son: El anlisis del riesgo se hace de forma explcita y clara. Une los mejores elementos de los restantes modelos. Reduce riesgos del proyecto. Incorpora objetivos de calidad. Integra el desarrollo con el mantenimiento. Permite hacer mejoras y nuevos requerimientos sin romper con la metodologa, ya que este ciclo de vida no es rgido ni esttico.

3. Proporcione cinco ejemplos de proyectos de desarrollo del software que sean adecuados para construir prototipos. El Modelo de prototipos, en Ingeniera de software, pertenece a los modelos de desarrollo evolutivo. El prototipo debe ser construido y desarrollado de manera rpida y en poco tiempo, usando los programas adecuados y no se debe utilizar muchos recursos. Por lo general el tamao del software de este modelo de ciclo de vida es pequeo o mediano. Cuando el cliente tenga una necesidad legtima, pero no tiene definido los detalles del sistema, el primer paso es construir un prototipo. En base a lo anterior los proyectos adecuados para este tipo de modelo seran los siguientes: Sistemas de procesamiento de ventas Sistemas de inventarios y contabilidad Sistemas de consultoras Sistemas de administracin de talento humano Sistemas de reportes financieros Pginas Web

4. El modelo DRA a menudo se une a herramientas CASE. Investigue la literatura y proporcione un resumen de una herramienta tpica CASE que soporte DRA.

El Desarrollo Rpido de Aplicaciones (DRA) es un modelo de proceso del desarrollo del software lineal secuencial que enfatiza un ciclo de desarrollo extremadamente corto. El modelo DRA es una adaptacin a alta velocidad del modelo lineal secuencial en el que se logra el desarrollo rpido utilizando una construccin basada 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 perodos cortos de tiempo. Las herramientas CASE son software de apoyo al desarrollo, mantenimiento y documentacin informatizados de software, una herramienta tpica que soporta el modelo DRA, es Visible Analyst (VA) la cual es una herramienta CASE que da al analista de sistemas la posibilidad de realizar planeacin, anlisis y diseo por medios grficos, con el propsito de construir aplicaciones cliente-servidor y bases de datos complejas. Esta herramienta permite modelar los datos, procesos y objetos en diferentes formatos. Visible Analyst permite que sus usuarios dibujen y modifiquen diagramas con facilidad. De esta manera, el analista es ms productivo tan slo con la reduccin del tiempo considerable que se invierte en dibujar y corregir manualmente diagramas de flujo de datos hasta que tengan una apariencia aceptable. Un paquete de herramientas como Visible Analyst tambin mejora la productividad de grupos al dar a los analistas la posibilidad de compartir fcilmente el trabajo con otros miembros del equipo, quienes slo tienen que abrir el archivo en sus PCs y revisar o modificar lo que se haya hecho. Esta facilidad de compartir el trabajo reduce el tiempo necesario para reproducir diagramas de flujo de datos y distribuirlos entre los miembros del equipo. 5. Que es un prototipo evolutivo Es un modelo de ciclo de vida se desarrolla el concepto del sistema a medida que avanza el proyecto. Se inicia desarrollando los aspectos ms visibles del sistema. Se presenta al cliente la parte ya desarrollada del proyecto y se contina el desarrollo del prototipo con base en la realimentacin que se recibe del cliente. El ciclo contina hasta que el prototipo se convierte en el producto final de ingeniera.

La grfica del presente modelo sera la siguiente:

6. en el proceso iterativo e incremental puede haber diferentes iteraciones por fase. As, por ejemplo, la fase de inicio solo tiene una iteracin, mientras que en otras pueden existir varias iteraciones. Cul es la diferencia entre estos y el modelo de cascada? Modelo iterativo e incremental Es un proceso secuencial de desarrollo Resuelve los riesgos antes de realizar grandes inversiones. Despliegue previo imposible. El equipo de desarrollo llega a un acuerdo con el cliente para comenzar a desarrollar el proyecto No se obtiene retroalimentacin por parte del cliente. El riesgo que existe de un fallo es proporcional a la cantidad de dinero y de tiempo gastado antes de desarrollar el software. Modelo en cascada Combina elementos del modelo cascada aplicado en forma iterativa. Difcil adaptacin al cambio. Pruebas e integracin continas. las citas con el cliente son ms frecuentes con el fin de obtener retroalimentacin. Se propone ir entregando un proyecto por pequeos mdulos, para ello se requiere tener el anlisis de requerimientos Resuelve los riesgos antes de realizar grandes inversiones.

7. Describa brevemente que significan los siguientes trminos: a) Metodologa de desarrollo de software: es un marco de trabajo usado para estructurar, planificar y controlar el proceso de desarrollo en sistemas de informacin. b) Modelo de Ciclo de vida para el desarrollo del software: Un marco de referencia que contiene los procesos, las actividades y las tareas involucradas en el desarrollo, la explotacin y el mantenimiento de un producto de software, abarcando la vida del sistema desde la definicin de los requisitos hasta la finalizacin de su uso. c) Etapa dentro de un ciclo de vida: Son los diferentes pasos a seguir durante el desarrollo del software. Determinado orden de estos pasos se los conoce como ciclo de vida. Ejemplo captura de requerimientos, anlisis del problema, diseo, implementacin, testing, mantenimiento. d) Rol que puede cumplir una persona en el desarrollo de software: Es el papel que juega una persona en el desarrollo del software, como por ejemplo analista, diseador, programador, tester. e) Modelo/diagrama de las caractersticas de un sistema de software y sus partes componentes:

Modelo Esencial: Responde a la pregunta qu tiene que satisfacer el sistema? Modelo del Ambiente: Declaracin de los Objetivos, captura de requerimientos.

Modelo de Comportamiento: Anlisis. Modelo de Implementacin: Responde a la pregunta Cmo realizar el sistema? Se deben considerar, las imperfecciones de la tecnologa y determinar: la cantidad de procesadores necesarios, el tamao de disco necesario, etc. Luego se disea la solucin sobre la base de esas restricciones tecnolgicas. Modelo del Usuario: Interfaz. Modelo de Distribucin: Decide como distribuyo mi sistema. Modelo de Tareas: Describe todas las decisiones relativas a la arquitectura de software. Modelo de Procesadores: Describe todas las decisiones relativas a la arquitectura de hardware. Modelo de Programa: Se realiza un diagrama estructurado del programa a partir de las tcnicas y estrategias elegidas.

8. Describa brevemente en que situacin es imprescindible seguir una metodologa para el desarrollo de software, y en cuales situaciones no lo sera tanto. Se hace imprescindible seguir una metodologa para el desarrollo de software, cuando el sistema que se est solucionando es amplio, de manera que para darle una posible solucin necesariamente participara un grupo de personas, donde cada una cumplira una funcin o rol dependiendo de sus conocimientos especficos. No sera muy significativo para el desarrollo de software siempre y cuando el sistema en el cual se est solucionando es pequeo, dado que solo se necesitaran una o dos personas por mucho, por ende las modificaciones que pueden surgir a lo largo de las etapas del desarrollo.

9. Enumere las categoras ms comunes de metodologas existentes para el desarrollo de software junto con sus caractersticas principales. Mtodos giles: Dan mayor valor al individuo, a la colaboracin con el cliente y al desarrollo incremental del software con iteraciones muy cortas. Surge con la necesidad de reducir los tiempos de desarrollo pero manteniendo una alta calidad en sistemas muy cambiantes.

Orientada a dato o funcin: en este mtodo las funciones y/o los datos son tratados como entidades independientes. Estos sistemas resultan difciles de mantener. El mayor problema es que las funciones generalmente dependen de la estructura de los datos. A menudo diferentes tipos de datos tienen distintos formatos y se necesita verificar el tipo del dato (con sentencias IfThen o CASE), produciendo programas difciles de leer y modificar. Si se desea hacer alguna modificacin en la estructura de los datos se debe modificar en todos los lugares donde es utilizado. Orientada a Objetos: Son aquellos mtodos en los cuales datos y funciones estn altamente relacionados. El nfasis est centrado en la abstraccin de datos. Se piensa en forma natural, los objetos representan entidades del mundo real. Los programas son fcilmente mantenibles y extensibles por medio de la construccin de subclases. Formales: Surgieron como enfoques analticos en donde el desarrollo de software puede ser verificado mediante demostraciones matemticas, garantizando el correcto funcionamiento bajo situaciones que involucran ambientes sensibles e informacin crtica en donde es necesario que cada uno de los componentes involucrados (hardware, software y componentes humanos) acte de manera correcta ante situaciones especficas. Por ejemplo: planeacin de trfico, aplicaciones militares y sistemas mdicos, entre otras. 10. Enumere los modelos de ciclos de vida ms comunes para el desarrollo de software, junto con sus caractersticas principales. Modelo en Cascada

Es un proceso secuencial de desarrollo en el que los pasos de desarrollo son vistos hacia abajo (como en una cascada de agua) a travs de las fases de anlisis de las necesidades, el diseo, implementacin, pruebas (validacin), la integracin, y mantenimiento. Una caracterstica que se podra determinar como principal es que para avanzar a la siguiente etapa que tenemos definida en nuestro desarrollo, debe haberse culminado en su totalidad la etapa anterior, lo cual conllevara varios problemas a la hora de hacer modificaciones si eran requeridas. Modelo de Prototipos

El prototipado es el marco de actividades dedicada al desarrollo de software prototipo, es decir, versiones incompletas del software a desarrollar. Debe ser construido en poco tiempo, con programas adecuados y poco dinero. Es evaluado por el cliente para una retroalimentacin; gracias a sta se refinan los requisitos del software que se desarrollar y as de esta forma el desarrollador entender mejor lo que se debe hacer segn las necesidades del cliente. Modelo Incremental

Provee una estrategia para controlar la complejidad y los riesgos, desarrollando una parte del producto software reservando el resto de aspectos para el futuro. Permite desarrollar un sistema de programas incrementalmente desarrollando versiones entregables del sistema. Se debe comenzar con una implementacin simple de los requerimientos e iterativamente mejorar la secuencia evolutiva de versiones hasta que el sistema completo est implementado. Modelo en Espiral

Para esta metodologa, las fases del ciclo de vida se desarrollan para cada uno de los subconjuntos o etapas definidas en el desarrollo del software, que de manera progresiva generan un sistema ms grande hasta que el producto final emerge por completo, es decir que con esta metodologa se soluciona el problema del ciclo de vida en cascada ya que su desarrollo es incremental y permite realizar tareas de diferentes etapas. Bsicamente consiste en una serie de ciclos que se repiten en forma de espiral, comenzando desde el centro.

11. Enumere las etapas ms comunes que comprenden los diferentes ciclos de vida existentes para el desarrollo de software. Describa brevemente el propsito de cada una

12. Enumere los roles ms comunes que puede cumplir una persona en el desarrollo del software. Describa brevemente las responsabilidades principales de cada uno.

Ingeniero de Requisitos: Trabaja con el cliente para realizar el anlisis y la especificacin del sistema a construir. Est capacitado para obtener claramente todos los requisitos necesarios para el desarrollo del software. Analista: El analista debe tener habilidad de poder estudiar un problema de una complejidad determinada, descomponiendo el problema en subproblemas de menor complejidad. De esa forma, la solucin del problema completo se obtiene como la suma de las soluciones de los subproblemas de menor complejidad. Desarrolla actividades como: Determinar las actividades esenciales y no esenciales as como las que son de segundo nivel y facilitar el modelamiento del negocio. Impedir la introduccin de defectos tempranamente en la construccin del sistema y establecer una estructura bsica inicial del sistema. Analizar la estructura bsica del sistema y establecer interacciones, interrelaciones y sus contextos en dicha estructura. Definir las especificaciones de la arquitectura del sistema. Diseador: Es el encargado de generar el diseo del sistema. Entre sus funciones est: Generar el diseo arquitectnico y diseo detallado del sistema, basndose en lo requisitos. Generar prototipos rpidos del sistema (con analistas y programadores) para chequear los requisitos. Generar el documento de diseo arquitectnico de software (DDA) y mantenerlo actualizado durante el proyecto. Velar por que el producto final se ajuste al diseo realizado. Ingeniero de Pruebas: El ingeniero de pruebas es el encargado de asegurar la calidad de cada uno de los productos (documentos, prototipos, etc.), detectando y eliminado errores y defectos del sistema en construccin. Entre sus tareas estn:

Construir y aplicar planes de pruebas unitarios, de mdulo, de sistema y aceptacin, mantenindolos actualizados durante el proyecto. Supervisar la completitud y exactitud (no ambigedades) de todos los documentos del proyecto. Verificar la adhesin al estndar adoptado para el desarrollo. Velar por la calidad del producto final. Realizar los diferentes test, obtener una buena interpretacin de ellos y realizar los ajustes pertinentes. Informar al grupo de desarrollo sobre los progresos y resultados obtenidos de las pruebas realizadas. Arquitecto: El arquitecto de software se encarga de que las piezas de software encajen y de que se elija la mejor tecnologa para resolver cada uno de los problemas concretos. Igualmente debe identificar las cualidades sistemticas que deben alcanzarse y en qu medida, responder sobre las inquietudes relacionadas con la seleccin de herramientas y ambientes de desarrollo, gerencia las estrategias de identificacin y mitigacin de los riesgos asociados con la arquitectura. Implementador: El implementador es responsable de desarrollar y verificar los componentes del software que le fueron asignados, de acuerdo con los estndares establecidos en el proyecto. Si se deben crear componentes para soporte de verificacin, el implementador debe desarrollar y verificar los componentes de verificacin y los subsistemas correspondientes. Debe desarrollar las siguientes actividades dentro de su rol: Implementar Prototipo Verificacin Unitaria Documentacin Tcnica Corregir la Implementacin

Administrador de Base de Datos: La tarea del DBA es crear la base de datos en s y poner en vigor los controles tcnicos necesarios para apoyar las polticas dictadas por el administrador de datos. El DBA se encarga tambin de garantizar el funcionamiento adecuado del sistema y de proporcionar otros servicios de ndole tcnica relacionados. El DBA cuenta por lo regular con un grupo de programadores de sistemas y otros asistentes tcnicos.

13. Enumere los factores que influyen a la hora a la hora de elegir un modelo de ciclo de vida para el desarrollo de un sistema. Disponibilidad de recursos ya sean econmicos, tiempo, equipos y humano. Entender los requerimientos. Dominio del problema, si se tiene los conocimientos para dar solucin al problema central. Complejidad y magnitud del proyecto. 14. Considere el desarrollo de un sistema cuyo dominio de aplicacin es conocido, sus objetivos y requerimientos funcionales son estables y simples de comprender desde un principio, la tecnologa a utilizar ya est determinada y es bien conocida por el equipo de desarrollo. Qu tipo de modelo de ciclo de vida elegira para el desarrollo de dicho sistema? El modelo de desarrollo rpido de aplicaciones sera el elegido porque si se comprenden bien los requerimientos 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. 15. Una vez elegido el modelo de ciclo de vida, para el desarrollo del sistema planteado en el ejercicio anterior, Qu etapas escogera para dicho modelo de ciclo de vida, teniendo en cuenta que el desarrollo lo realizan una o pocas personas? Modelado de gestin: el flujo de informacin entre las funciones de gestin se modela de forma que responda a las siguientes preguntas: Qu informacin conduce el proceso de gestin? Qu informacin se genera? Quin la genera? A dnde va la informacin? Quin la procesa? Modelado de datos: el flujo de informacin definido como parte de la fase de modelado de gestin se refina como un conjunto de objetos de datos necesarios para apoyar la empresa. Se definen las caractersticas (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 informacin necesario para implementar una funcin de gestin. Las descripciones del proceso se crean para aadir, modificar, suprimir, o recuperar un objeto de datos. Es la comunicacin entre los objetos. Generacin de aplicaciones: El DRA asume la utilizacin de tcnicas de cuarta generacin. En lugar de crear software con lenguajes de programacin de tercera generacin, el proceso DRA trabaja para volver a utilizar componentes de programas ya existentes (cuando es posible) a crear componentes reutilizables (cuando sea necesario). En todos los casos se utilizan herramientas automticas para facilitar la construccin del software. Pruebas de entrega: Como el proceso DRA enfatiza la reutilizacin, 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.

BIBLIOGRAFA PRESSMAN, Roger. Ingeniera del Software un enfoque prctico. Mac Graw Hill, 6 edicin, 2006. CAMPDERRICH FALGUERAS, Benet. Ingeniera del software. Editorial UOC. 1 edicin, 2003. KENDALL, Kenneth E. y KENDALL, Julie E. Anlisis y diseo de sistemas. Editorial Pearson Educacin. 6 edicin, 2005.