Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Ingeniería de software P á g i n a 1 | 45 Acapulco Gro. 11 de noviembre de 2020 INSTITUTO TECNOLÓGICO NACIONAL DE MÉXICO INSTITUTO TECNOLÓGICO DE ACAPULCO Ingeniería en sistemas computacionales Fundamentos de ingeniería en software Tarea 4,5,6 1.3 Metodologías de desarrollo de software 1.3.2 Agiles 1.3.3 Otras filosofías 1.4 Herramientas CASE Profesor: García Castro María Nancy López Anselmo Mauricio Axel No.control: 18320904 Horario: 13:00 – 14:00 pm Ciclo escolar septiembre 2020 enero 2021 Ingeniería de software P á g i n a 2 | 45 Acapulco Gro. 11 de noviembre de 2020 INDICE. TAREA 4 ..........................................................................................................................................3 1.3.1 clásicas ...................................................................................................................................4 Cascada……………………………………………………………………………………………………………………………………….4 Incremental………………………….………………………………………………………………………………………………………6 Evolutiva ........................................................................................................................................8 Espiral…………………………………………………………………………………………………………………………………………..11 Prototipo…………………………………………………………….………………………………………………………………………13 TAREA 5 ........................................................................................................................................ 18 1.3.2 Agiles ................................................................................................................................... 19 Scrum…………………………………………………………………………………………………………………………………………..19 XP………………………………………………………………………………………………………………………………………………..23 1.3.3 Otras filosofías……………………………………………………………………………………………………………………26 Win-Win……………………………………………………………………………………………………………………………………..26 Ingenieria Web…………………………………………………………………………………………………………………………..30 TAREA 6……………………………………………………………………………………………………………………………………34 Preguntas……………………………………………..………………………………………………………………………………………35 Ingeniería de software P á g i n a 3 | 45 Acapulco Gro. 11 de noviembre de 2020 INSTITUTO TECNOLÓGICO NACIONAL DE MÉXICO INSTITUTO TECNOLÓGICO DE ACAPULCO Ingeniería en sistemas computacionales Fundamentos de ingeniería en software Tarea 4. 1.3 Metodologías de desarrollo de software 1.3.1 Clásicas Describa cada una de las metodologías clásicas que a continuación se mencionan: Cascada, incremental, evolutiva, espiral y prototipo. Describir: 1. Nombre 2. Fases 3. Diagrama 4. Características 5. Ventajas 6. Desventajas 7. Para qué tipo de sistema se utiliza o es su aplicación. Realizar una sola conclusión de las metodologías clásicas, hecha a mano de una cuartilla. Profesor: García Castro María Nancy López Anselmo Mauricio Axel No.control: 18320904 Horario: 13:00 – 14:00 pm Ciclo escolar septiembre 2020 enero 2021 Ingeniería de software P á g i n a 4 | 45 Acapulco Gro. 11 de noviembre de 2020 1.3.1 Clásicas. Cascada. El modelo en cascada las actividades del desarrollo fundamental de este modelo se derivan en etapas las cuales son: Análisis y definición de requerimientos: Definición en detalle las especificaciones del sistema como son los servicios, restricciones y metas del sistema. Diseño del sistema hardware: Establecimiento de una arquitectura completa del sistema describiendo las abstracciones fundamentales del sistema y sus relaciones. Implementación y prueba de unidades: Durante esta etapa el diseño se lleva a cabo como unidades de programas. La prueba de unidades implica verificar que cada una cumpla su especificación Integración y prueba del sistema: Los programas individuales se integran y prueban como un sistema completo para asegurar que se cumplan los requerimientos del software, después el sistema se entrega al cliente. Funcionamiento y mantenimiento: El sistema se instala y se pone en funcionamiento práctico. El mantenimiento implica corregir errores no descubiertos en la etapa anteriores del ciclo de vida, mejorar la implementación de las unidades del sistema y resaltar los servicios del sistema una vez que se descubre nuevos requerimientos. Ingeniería de software P á g i n a 5 | 45 Acapulco Gro. 11 de noviembre de 2020 Características del modelo • Primer modelo empleado (Royce, 1970), también denominado ciclo de vida clásico y modelo lineal secuencial. • Consiste en la ejecución secuencial de una serie de fases que se suceden, lo que da nombre al modelo. • Cada fase genera documentación para la siguiente. Esta documentación debe ser aprobada. • Una fase no comienza hasta que la anterior ha terminado. • Requiere disponer de unos requisitos completos y precisos al principio del desarrollo. • Se disponga de unos requisitos completos y consistentes al principio del desarrollo. • Sea un proyecto pequeño, en el que el período de congelación de los requisitos es corto, o un proyecto con unos requisitos bastante estables 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 • Los errores de análisis y diseño son costosos de eliminar, y se propagan a las fases siguientes con un efecto conocido como bola de nieve. • Se genera mucho mantenimiento inicial debido al período de congelación de requisitos y éste recae, en su mayor parte. Este modelo es ampliamente utilizado en los sistemas gubernamentales de gran tamaño, en especial en el Departamento de Defensa de los Estados Unidos (DOD). Ingeniería de software P á g i n a 6 | 45 Acapulco Gro. 11 de noviembre de 2020 Incremental. El modelo incremental aplica secuencias lineales de forma escalonada mientras progresa el tiempo en el calendario. Cada secuencia lineal produce un incremento del software combinada con los elementos del modelo lineal secuencial con la filosofía interactiva de construcción de prototipos. El modelo de proceso incremental, como la construcción de prototipos es iterativo por naturaleza. Pero a diferencia de la construcción de prototipos, el modelo incremental se centra en la entrega de un producto operacional con cada incremento. Los primeros incrementos son versiones incompletas del producto final, pero proporcionan al usuario la funcionalidad que precisa y también una plataforma para la evaluación. El desarrollo incremental es particularmente útil cuando la dotación de personal no está disponible para una implementación completa en la fecha límite que se haya establecido para el proyecto. Los primeros incrementos se pueden implementar con menos personas. El 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 dedesarrollo y dar oportunidad de retrasar la toma de decisiones en los requisitos hasta adquirir experiencia con el sistema. Este modelo se conoce también bajo las siguientes denominaciones: • Método de las comparaciones limitadas sucesivas. • Ciencia de salir del paso. • Método de atacar el problema por ramas. El Modelo Incremental combina elementos del Modelo Lineal Secuencial con la filosofía interactiva de Construcción de Prototipos. En una visión genérica, el proceso se divide en 4 partes: • Análisis • Diseño • Código • Prueba Ingeniería de software P á g i n a 7 | 45 Acapulco Gro. 11 de noviembre de 2020 Otras características esenciales de este modelo son: • Los incrementos son pequeños. • Permite una fácil administración de las tareas en cada iteración. • La inversión se materializa a corto plazo. • Es un modelo propicio a cambios o modificaciones. • Se adapta a las necesidades que surjan. Para que esto sea posible, se debe tener en cuenta que las iteraciones no pueden ser demasiado rígidas y que no existan tareas simultáneas. El modelo incremental exige un encadenamiento progresivo de cada tarea. Scrum y Kanban son las herramientas más conocidas que emplean este modelo de gestión. Ventajas - Con un paradigma incremental se reduce el tiempo de desarrollo inicial, ya que se implementa la funcionalidad parcial. - También provee 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 realimentado, reduciendo sus desventajas sólo al ámbito de cada incremento. - Permite entregar al cliente un producto más rápido en comparación del modelo de cascada. - Resulta más 7encillo acomodar cambios al acotar el tamaño de los incrementos. - Por su versatilidad requiere de una planeación cuidadosa tanto a nivel administrativo como técnico. https://obsbusiness.school/blog-project-management/scrum/scrum-metodologia-el-motivador/ Ingeniería de software P á g i n a 8 | 45 Acapulco Gro. 11 de noviembre de 2020 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. Evolutiva. El desarrollo evolutivo consta del desarrollo de una versión inicial que luego de exponerse se va refinando de acuerdo de los comentarios o nuevos requerimientos por parte del cliente o del usuario final. Las fases de especificación, desarrollo y validación se entrelazan en vez de separarse. Existen dos tipos de desarrollo evolutivo: 1.desarrollo exploratorio: donde el objetivo del proceso es trabajar con el cliente para explorar sus requerimientos y entregar un sistema final. El desarrollo empieza con las partes del sistema que se comprenden mejor. El sistema evoluciona agregando nuevos atributos propuestos por el cliente. 2.prototipos desechables: donde el objetivo del proceso de desarrollo evolutivo es comprender los requerimientos del cliente y entonces desarrollar una definición mejorada de los requerimientos para el sistema. El prototipo se centra en experimentar con los requerimientos del cliente que no se comprenden del todo. Desde el punto de vista de desarrollo de sistema el enfoque evolutivo suele traer más ventajas en comparación con un enfoque en cascada ya que el sistema se va ajustando a las necesidades del cliente, a la vez que él mismo entiende mejor sus propios requerimientos. Sin embargo el enfoque evolutivo desde una perspectiva de ingeniería y gestión suele tener dos grandes problemas: 1.proceso no visible: Los administradores tienen que hacer entregas regulares para medir el progreso. Si los sistemas se desarrollan rápidamente, no es rentable producir documentos que reflejen cada versión del sistema. Ingeniería de software P á g i n a 9 | 45 Acapulco Gro. 11 de noviembre de 2020 2. A menudo los sistemas tienen una estructura deficiente. Los cambios continuos tienden a corromper la estructura del software. Incorporar cambios en él se convierte cada vez más en una tarea difícil y costosa. Aunque supone grandes ventajas el desarrollo evolutivo solo es recomendado para sistemas pequeños y medianos. En los sistemas grandes, los constantes cambios en el desarrollo solo dificultan la estabilidad y la integración de los avances de los distintos grupos de trabajo que puedan existir. La mayoría de las empresas que desarrollan grandes sistemas usan un modelo mixto que usa las mayores fortalezas de los enfoques evolutivos y de cascada. Ingeniería de software P á g i n a 10 | 45 Acapulco Gro. 11 de noviembre de 2020 Características: • Gestionan bien la naturaleza evolutiva del software • Son iterativos: construyen versiones de software cada vez más completas Se adaptan bien: • Los cambios de requisitos del producto • Especificaciones parciales del producto VENTAJAS • La especificación puede desarrollarse de forma creciente. • Los usuarios y desarrolladores logran un mejor entendimiento del sistema. Esto se refleja en una mejora de la calidad del software. • Es más efectivo que el modelo de cascada, ya que cumple con las necesidades inmediatas del cliente. DESVENTAJAS • Proceso no Visible: Los administradores necesitan entregas para medir el progreso. Si el sistema se necesita desarrollar rápido, no es efectivo producir documentos que reflejen cada versión del sistema. • Sistemas pobremente estructurados: Los cambios continuos pueden ser perjudiciales para la estructura del software haciendo costoso el mantenimiento. • Se requieren técnicas y herramientas: Para el rápido desarrollo se necesitan herramientas que pueden ser incompatibles con otras o que poca gente sabe utilizar. Ingeniería de software P á g i n a 11 | 45 Acapulco Gro. 11 de noviembre de 2020 Espiral. El modelo en espiral es una combinación entre el modelo lineal o de cascada y el modelo iterativo o basado en prototipos que habíamos mencionado anteriormente. Se utiliza con éxito en proyectos donde el coste de un fallo es un gran riesgo, de ahí que su principal aportación sea considerar la gestión de esos riesgos, algo que en los modelos anteriores ni siquiera se menciona. En concreto, los proyectos ejecutados con el modelo en espiral empiezan siendo pequeños, investigando los mayores riesgos que se pueden tolerar, para pasar a agrandarse poco a poco, en base a elementos clave sobre los que se construyen las siguientes fases de la espiral. Habitualmente tiene sentido aplicar este método en proyectos grandes, largos, caros y complejos. En cuanto a su ejecución, el modelo en espiral consiste en seguir ciclos crecientes de cuatro fases cada uno, que se van realizando, siguiendo una forma de espiral. En cada ciclo se pasa por dichas fases bien definidas, como en el modelo de cascada, pero con capacidad de evolucionar su complejidad con cada ciclo. Por tanto, se trata de un modelo evolutivo que, conforme avancen los ciclos, aumentará el tiempo de ejecución, así como el volumen de código fuente desarrollado y la complejidad de la gestión de riesgosy de la planificación. Ingeniería de software P á g i n a 12 | 45 Acapulco Gro. 11 de noviembre de 2020 Las fases por las que pasa cada ciclo de la espiral 1. Planificación. Se determinan los objetivos y el alcance del ciclo que comienza, tras un necesario ejercicio de investigación. Con cada iteración, se irá incrementando el tamaño de software entregado y la funcionalidad cubierta. 2. Análisis de Riesgo. Se evalúa todo aquello que pueda afectar al proyecto según el estado en que se encuentre y su grado de avance. Para ello, se diseñarán los prototipos que deberán ser validados en el ciclo. 3. Implementación. Se desarrolla y valida el software según el alcance acordado, el cual está íntimamente relacionado y condicionado con el análisis de riesgos anterior. 4. Evaluación. Antes de proceder a realizar otra vuelta en la espiral, se debe prestar atención a lo que sucedió en la vuelta anterior. Se debe analizar en detalle si los riesgos detectados anteriormente ya tuvieron solución. Básicamente, esta fase servirá para determinar el avance del proyecto y dar pistas de hacia dónde debe enfocarse la próxima iteración. Ventajas del modelo en espiral 1. Los factores de riesgo son reducidos. 2. El desarrollo es iterativo y se pueden incorporar funcionalidades progresivamente. Desventajas. 1. La duración de la ejecución no es concreta. 2. Fallos en el análisis de riesgos podría influir negativamente a todo el proyecto. Ingeniería de software P á g i n a 13 | 45 Acapulco Gro. 11 de noviembre de 2020 Prototipo. El Modelo de prototipos, en Ingeniería de software, pertenece a los modelos de desarrollo evolutivo. El prototipo debe ser construido en poco tiempo, usando los programas adecuados y no se debe utilizar muchos recursos. El diseño rápido se centra en una representación de aquellos aspectos del software que serán visibles para el cliente o el usuario final. Este diseño conduce a la construcción de un prototipo, el cual es evaluado por el cliente para una retroalimentación; gracias a ésta se refinan los requisitos del software que se desarrollará. La interacción ocurre cuando el prototipo se ajusta para satisfacer las necesidades del cliente. Esto permite que al mismo tiempo el desarrollador entienda mejor lo que se debe hacer y el cliente vea resultados a corto plazo. Normalmente, el prototipo sirve como mecanismo para identificar los requisitos del software, y su construcción suele llevar las siguientes etapas: 1) Recolección de requisitos. El ingeniero de software y el cliente definen los objetivos globales del software, y aquéllos más específicos que se desean destacar con el prototipo. 2) Diseño rápido. Centrado en los aspectos del software visible al usuario (por ejemplo, interfaz de usuario, entradas y salidas…). 3) Construcción del prototipo. 4) Evaluación del prototipo. Se realiza por el cliente y usuarios, lo que permitirá concretar y refinar los requisitos del software a desarrollar. 5) Refinamiento del prototipo. Se produce un proceso iterativo en el que el prototipo es refinado para que satisfaga las necesidades del cliente, al tiempo que facilita al ingeniero de software un mejor conocimiento del sistema. 6) Producto. En la mayoría de los casos este sistema refinado (piloto) hay que desecharlo y hacer uno nuevo. Por ello, el desarrollo de un prototipo se debe planificar con el acuerdo expreso del cliente. Algunos ingenieros del software abogan por desarrollar rápidamente un prototipo que les permita especificar completamente el sistema y obtener más consistentemente el producto final. Sobre el desarrollo rápido de prototipos, pueden realizarse las siguientes observaciones: Ingeniería de software P á g i n a 14 | 45 Acapulco Gro. 11 de noviembre de 2020 • Un prototipo rápido es básicamente una técnica de análisis que permite completar el conjunto de requisitos funcionales de un sistema software. • Lo deseable es evolucionar el prototipo hasta obtener el producto final, en lugar de deshacerlo y construir un producto final nuevo. Este deseo es válido si del prototipo se puede obtener dicho producto (lo que no suele ser fácil), y su coste es inferior a su reconstrucción. Incluso, se podría recomendar utilizar aquellas técnicas que permitan evolucionar un prototipo hasta el producto final. • Cualquier aplicación nueva que el ingeniero de software sospeche que su funcionalidad puede presentar el riesgo de no ser aceptable para el usuario o si la interfaz de usuario es importante para el éxito de la aplicación, es una aplicación fuertemente candidata para que se desarrolle un rápido prototipo. • En un proyecto de prototipo bien planificado, aproximadamente el 50% del esfuerzo de desarrollo, desde su inicio hasta la aprobación final de su funcionalidad, es la contribución del usuario. Los equipos de prototipo están compuestos típicamente por la mitad de los usuarios y la otra mitad de desarrolladores software. • Es habitual tener que tirar la primera versión de cualquier sistema que se desarrolle por primera vez. Por ello, es aconsejable que la primera demostración de un prototipo rápido sea intencionalmente imperfecta, de forma que sea barato de producir y muy fácil de modificar, para que se pueda garantizar que el sistema final que se suministra se ajuste mejor a los requisitos del usuario. • El prototipo rápido es una solución que “evita el riesgo” en lugar de una solución de riesgo. Así, el prototipo rápido no introduce nuevos riesgos políticos o económicos al proceso de desarrollo de software, sino que reduce significativamente varios factores de riesgo asociados con su desarrollo, como los que se han señalado anteriormente. • El prototipo rápido es un método normal para el desarrollo de nuevas aplicaciones y llegará a ser más y más evidente que el prototipo rápido produce mejores sistemas y con costes más bajos. Ingeniería de software P á g i n a 15 | 45 Acapulco Gro. 11 de noviembre de 2020 Ventajas • Este modelo es útil cuando el cliente conoce los objetivos generales para el software, pero no identifica los requisitos detallados de entrada, procesamiento o salida. • También ofrece un mejor enfoque cuando el responsable del desarrollo del software está inseguro de la eficacia de un algoritmo, de la adaptabilidad de un sistema operativo o de la forma que debería tomar la interacción humano-máquina • Se puede reutilizar el código. Ingeniería de software P á g i n a 16 | 45 Acapulco Gro. 11 de noviembre de 2020 Desventajas. • El usuario tiende a crearse unas expectativas cuando ve el prototipo de cara al sistema final. A causa de la intención de crear un prototipo de forma rápida, se suelen desatender aspectos importantes, tales como la calidad y el mantenimiento a largo plazo, lo que obliga en la mayor parte de los casos a reconstruirlo una vez que el prototipo ha cumplido su función. Es frecuente que el usuario se muestre reacio a ello y pida que sobre ese prototipo se construya el sistema final, lo que lo convertiría en un prototipo evolutivo, pero partiendo de un estado poco recomendado. • En aras de desarrollar rápidamente el prototipo, el desarrollador suele tomar algunas decisiones de implementación poco convenientes (por ejemplo, elegir unlenguaje de programación incorrecto porque proporcione un desarrollo más rápido). Con el paso del tiempo, el desarrollador puede olvidarse de la razón que le llevó a tomar tales decisiones, con lo que se corre el riesgo de que dichas elecciones pasen a formar parte del sistema final. Ingeniería de software P á g i n a 17 | 45 Acapulco Gro. 11 de noviembre de 2020 Conclusión. Ingeniería de software P á g i n a 18 | 45 Acapulco Gro. 11 de noviembre de 2020 INSTITUTO TECNOLÓGICO NACIONAL DE MÉXICO INSTITUTO TECNOLÓGICO DE ACAPULCO Ingeniería en sistemas computacionales Fundamentos de ingeniería en software Tarea 5. 1.3.2 Agiles 1.3.3 Otras filosofías Describa cada una de las metodologías: ágiles: scrum y xp. otras filosofías: win win e ingeniería web. Describir de cada una: 1. Nombre 2. Fases 3. Diagrama 4. Características 5. Ventajas 6. Desventajas Para qué tipo de sistema se utiliza o es su aplicación Realizar una conclusión de cada metodología hecha a mano de una cuartilla cada una, escribir su nombre. Profesor: García Castro María Nancy López Anselmo Mauricio Axel No.control: 18320904 Horario: 13:00 – 14:00 pm Ciclo escolar septiembre 2020 enero 2021 Ingeniería de software P á g i n a 19 | 45 Acapulco Gro. 11 de noviembre de 2020 1.3.2 Agiles. Scrum. Scrum es un proceso en el que se aplican de manera regular un conjunto de buenas prácticas para trabajar colaborativamente, en equipo, y obtener el mejor resultado posible de un proyecto. Estas prácticas se apoyan unas a otras y su selección tiene origen en un estudio de la manera de trabajar de equipos altamente productivos. En Scrum se realizan entregas parciales y regulares del producto final, priorizadas por el beneficio que aportan al receptor del proyecto. Por ello, Scrum está especialmente indicado para proyectos en entornos complejos, donde se necesita obtener resultados pronto, donde los requisitos son cambiantes o poco definidos, donde la innovación, la competitividad, la flexibilidad y la productividad son fundamentales. Scrum también se utiliza para resolver situaciones en que no se está entregando al cliente lo que necesita, cuando las entregas se alargan demasiado, los costes se disparan o la calidad no es aceptable, cuando se necesita capacidad de reacción ante la competencia, cuando la moral de los equipos es baja y la rotación alta, cuando es necesario identificar y solucionar ineficiencias sistemáticamente o cuando se quiere trabajar utilizando un proceso especializado en el desarrollo de producto. El proceso En Scrum un proyecto se ejecuta en ciclos temporales cortos y de duración fija (iteraciones que normalmente son de 2 semanas, aunque en algunos equipos son de 3 y hasta 4 semanas, límite máximo de feedback de producto real y reflexión). Cada iteración tiene que proporcionar un resultado completo, un incremento de producto final que sea susceptible de ser entregado con el mínimo esfuerzo al cliente cuando lo solicite. https://proyectosagiles.org/fundamentos-de-scrum https://proyectosagiles.org/fundamentos-de-scrum https://proyectosagiles.org/beneficios-de-scrum https://proyectosagiles.org/beneficios-de-scrum https://proyectosagiles.org/historia-de-scrum https://proyectosagiles.org/historia-de-scrum https://proyectosagiles.org/desarrollo-iterativo-incremental Ingeniería de software P á g i n a 20 | 45 Acapulco Gro. 11 de noviembre de 2020 El proceso parte de la lista de objetivos/requisitos priorizada del producto, que actúa como plan del proyecto. En esta lista el cliente (Product Owner) prioriza los objetivos balanceando el valor que le aportan respecto a su coste (que el equipo estima considerando la Definición de Hecho) y quedan repartidos en iteraciones y entregas. Las actividades que se llevan a cabo en Scrum son las siguientes (los tiempos indicados son para iteraciones de 2 semanas): Planificación de la iteración El primer día de la iteración se realiza la reunión de planificación de la iteración. Tiene dos partes: 1. Selección de requisitos (2 horas). El cliente presenta al equipo la lista de requisitos priorizada del producto o proyecto. El equipo pregunta al cliente las dudas que surgen y selecciona los requisitos más prioritarios que prevé que podrá completar en la iteración, de manera que puedan ser entregados si el cliente lo solicita. 2. Planificación de la iteración (2 horas). El equipo elabora la lista de tareas de la iteración necesarias para desarrollar los requisitos seleccionados. La estimación de esfuerzo se hace de manera conjunta y los miembros del equipo se autoasignan las tareas, se autoorganizan para trabajar incluso en parejas (o grupos mayores) con el fin de compartir conocimiento (creando un equipo más resiliente) o para resolver juntos objetivos especialmente complejos. Ejecución de la iteración Cada día el equipo realiza una reunión de sincronización (15 minutos), normalmente delante de un tablero físico o pizarra (Scrum Taskboard). El equipo inspecciona el trabajo que el resto está realizando (dependencias entre tareas, progreso hacia el objetivo de la iteración, obstáculos que pueden impedir este objetivo) para poder hacer las adaptaciones necesarias que permitan cumplir con la previsión de objetivos a mostrar al final de la iteración. Inspección y adaptación El último día de la iteración se realiza la reunión de revisión de la iteración. Tiene dos partes: 1. Revisión (demostración) (1,5 horas). El equipo presenta al cliente los requisitos completados en la iteración, en forma de incremento de producto https://proyectosagiles.org/lista-requisitos-priorizada-product-backlog https://proyectosagiles.org/cliente-product-owner https://proyectosagiles.org/equipo-team/ https://proyectosagiles.org/definicion-de-hecho-definition-of-done/ https://proyectosagiles.org/planificacion-iteracion-sprint-planning https://proyectosagiles.org/lista-tareas-iteracion-sprint-backlog https://proyectosagiles.org/lista-tareas-iteracion-sprint-backlog https://proyectosagiles.org/2018/10/09/auto-organizacion-fundamentos-y-relacion-con-la-motivacion-intrinseca/ https://proyectosagiles.org/ejecucion-iteracion-sprint https://proyectosagiles.org/reunion-diaria-de-sincronizacion-scrum-daily-meeting https://proyectosagiles.org/2010/09/26/ejemplo-tablero-pizarra-tareas-scrum-taskboard/ https://proyectosagiles.org/demostracion-requisitos-sprint-review Ingeniería de software P á g i n a 21 | 45 Acapulco Gro. 11 de noviembre de 2020 preparado para ser entregado con el mínimo esfuerzo. En función de los resultados mostrados y de los cambios que haya habido en el contexto del proyecto, el cliente realiza las adaptaciones necesarias de manera objetiva, ya desde la primera iteración, replanificando el proyecto. 2. Retrospectiva (1,5 horas). El equipo analiza cómo ha sido su manera de trabajar y cuáles son los problemas que podrían impedirle progresar adecuadamente, mejorando de manera continua su productividad. El Facilitador se encargará de eliminar o escalar los obstáculos identificados que estén más allá del ámbito de acción del equipo. Como todas las metodologías de desarrollo, la metodología Scrum cuenta con sus ventajas y desventajas. Entre ellas podemos nombrar: Ventajas: Scrum es unapropuesta de gestión basada en la división del trabajo en iteraciones, es decir, fases con objetivos y tareas específicas. Esto hace que necesariamente aporte beneficios en aspectos como los siguientes: • Gestión de las expectativas del usuario. Los usuarios pueden participar en cada una de las etapas del proceso y proponer soluciones. De hecho, el proceso en su conjunto está pensado para un tipo de evaluación conjunta. • Resultados anticipados. Cada etapa del proceso arroja una serie de resultados. No es necesario, por tanto, que el cliente espere hasta el final para ver el resultado. • Flexibilidad y adaptación a los contextos. Se adapta a cualquier contexto, área o sector de la gestión. Es decir, no es una técnica exclusiva de ninguna disciplina. • Gestión sistemática de riesgos. Del mismo modo, los problemas que aparecen durante los procesos de gestión que pueden afectar a un proyecto son gestionados en el mismo momento de su aparición. Esto es posible debido a que la intervención de los equipos de trabajo puede ser inmediata. Desventajas: Pero ojo, antes de que tú te decidas por esta metodología de gestión, viene bien que tengas en cuenta las siguientes limitaciones en cuanto a su implementación: • Funciona más que nada con equipos reducidos. Las empresas grandes, por ejemplo, deben estar sectorizadas o divididas en grupos que tengan objetivos concretos. De lo contrario, en la práctica, el efecto de la técnica se perderá. • Requiere una exhaustiva definición de las tareas y sus plazos. Cuando estos dos aspectos no se definen adecuadamente, Scrum se desvanece. https://proyectosagiles.org/retrospectiva-sprint-retrospective Ingeniería de software P á g i n a 22 | 45 Acapulco Gro. 11 de noviembre de 2020 Recuerda que la división del trabajo en cada etapa (y de éstas en tareas específicas) son la esencia de esta metodología. • Exige que quienes la utilicen cuenten con una alta cualificación o formación. No es una modalidad de gestión propia de grupos junior o que apenas estén en proceso de formación. Gran parte del éxito de Scrum radica en la experiencia que aportan los profesionales de los equipos, quienes por lo general acumulan años de experiencia. Conclusión. Ingeniería de software P á g i n a 23 | 45 Acapulco Gro. 11 de noviembre de 2020 Metodología XP. La Metodología XP “Extreme Programming” o “Programación Extrema” es una de las llamadas metodologías Ágiles de desarrollo de software más exitosas. Es habitual relacionarla con scrum, y la combinación de ambas asegura un mayor control sobre el proyecto, y una implementación más efectiva y eficiente. XP está diseñada para entregar el software que los clientes necesitan en el momento en que lo necesitan. XP alienta a los desarrolladores a responder a los requerimientos cambiantes de los clientes, aún en fases tardías del ciclo de vida del desarrollo. La metodología XP define cuatro variables para cualquier proyecto de software: costo, tiempo, calidad y alcance. El método especifica que, de estas cuatro variables, tres de ellas podrán ser fijadas arbitrariamente por actores externos al grupo de desarrolladores (clientes y jefes de proyecto), y el valor de la restante deberá será establecida por el equipo de desarrollo, quien establecerá su valor en función de las otras tres. Por ejemplo, si el cliente establece el alcance y la calidad, y el jefe de proyecto el precio, el grupo de desarrollo tendrá libertad para determinar el tiempo que durará el proyecto. Se trata de establecer un equilibrio entre las cuatro variables del proyecto. La Metodología Xp: El Ciclo de vida Al igual que otras metodologías de gestión de proyectos, tanto Ágiles como tradicionales, el ciclo XP incluye: • Entender lo que el cliente necesita > Fase de Exploración • Estimar el esfuerzo > Fase de Planificación • Crear la solución > Fase de Iteraciones • Entregar el producto final al cliente > Fase de puesta en producción Ingeniería de software P á g i n a 24 | 45 Acapulco Gro. 11 de noviembre de 2020 Mediante ciclos de desarrollo cortos (llamados iteraciones), al fin de los cuales se generan unos entregables funcionales. En cada iteración se realiza un ciclo completo de análisis, diseño, desarrollo y pruebas, pero utilizando un conjunto de reglas y prácticas específicas de XP. Un proyecto con XP implica de entre a 10 a 15 iteraciones habitualmente. Ventajas o Programación organizada. o Menor taza de errores. o Satisfacción del programador. o Solución de errores de programas o Versiones nuevas o Implementa una forma de trabajo donde se adapte fácilmente a las circunstancias Desventajas o Es recomendable emplearlo solo en proyectos a corto plazo o Altas comisiones en caso de fallar o Imposible prever todo antes de programar o Demasiado costoso e innecesario Ingeniería de software P á g i n a 25 | 45 Acapulco Gro. 11 de noviembre de 2020 Conclusión. Ingeniería de software P á g i n a 26 | 45 Acapulco Gro. 11 de noviembre de 2020 1.3.3 Otras filosofías. Win-Win. El modelo en espiral WINWIN de Boehm, define un conjunto de actividades de negociación al principio de casa paso alrededor de la espiral. Más que una simple actividad de comunicación con el cliente se definen las siguientes actividades: • Identificación del sistema o subsistemas clave de los directivos. • Determinación de las condiciones de victoria de los directivos. • Negociación de las condiciones de victoria de los directivos para reunirlas en un conjunto de condiciones para todos los afectados (incluyendo el equipo del proyecto de software). El modelo en espiral WINWIN introduce tres hitos en el proceso, llamados puntos de fijación que ayudan a establecer la completitud de un ciclo alrededor del espiral y proporcionan hitos de decisión antes de continuar el proyecto de software. Ingeniería de software P á g i n a 27 | 45 Acapulco Gro. 11 de noviembre de 2020 El modelo Espiral Win-Win se basa en la inclusión de tres etapas o regiones al principio: 1.- Identificar las partes interesadas (stakeholders) para esta nueva iteración del producto: Es necesario definir los interlocutores que serán de áreas que se verán afectadas por el resultado final de la nueva versión. Estos interlocutores serán del área del cliente (puede haber más de uno) y del proveedor. 2.- Identificar las condiciones de victoria de las partes interesadas en el proyecto: Se concreta cuáles son las condiciones que requiere cada parte para que se sienta satisfecha una vez realizada esta versión. 3a.- Reunir las condiciones de victoria: Con las etapas anteriores se han definido unos objetivos generales para la versión y se obtiene conocimiento de los objetivos particulares de cada parte. Ahora toca negociar hasta dónde realmente se va a llegar y cómo, intentando llegar a una solución en la que todos ganen (cliente y proveedor). Roles y/o intervinientes Habrá cuatro roles de los stakeholders: • Desarrollador: los miembros del equipo representarán las preocupaciones del desarrollador, como el uso de paquetes familiares, la estabilidad de los requisitos, la disponibilidad de herramientas de soporte y los enfoques técnicamente desafiantes.• Cliente: los miembros del equipo representarán las inquietudes de los clientes, como la necesidad de desarrollar el sistema en una fecha determinada, presupuestos limitados para herramientas de soporte y enfoques técnicos de bajo riesgo. • Usuario: trabajarán con su representante designado de la comunidad de usuarios para representar las inquietudes de los usuarios, tales como características de acceso multimedia particulares, tiempo de respuesta rápido, interfaz de usuario amigable, alta confiabilidad y flexibilidad de requisitos. • Administrador del proyecto: le pregunta al cliente que necesita y el proporciona la información para continuar, además ajusta el número de iteraciones planeado que se requiere para completar el software. Ingeniería de software P á g i n a 28 | 45 Acapulco Gro. 11 de noviembre de 2020 Ventajas y Desventajas VENTAJAS 1. El modelo en espiral puede adaptarse y aplicarse a lo largo de la vida del software de computadora. 2. Como el software evoluciona a medida que progresa el proceso, el desarrollador y el cliente comprenden y reaccionan mejor ante riesgos en cada uno de los niveles evolutivos. 3. El modelo en espiral permite a quien lo desarrolla aplicar el enfoque de construcción de prototipos en cualquier etapa de evolución del producto. 4. El modelo en espiral demanda una consideración directa de los riesgos técnicos en todas las etapas del proyecto y si se aplica adecuadamente debe reducir los riesgos antes de que se conviertan en problemas DESVENTAJAS 1. Resulta difícil convencer a grandes clientes de que el enfoque evolutivo es controlable. 2. Debido a su elevada complejidad no se aconseja utilizarlo en pequeños sistemas. 3. Genera mucho tiempo en el desarrollo de sistemas. 4. Requiere experiencia en la identificación de riesgos Ingeniería de software P á g i n a 29 | 45 Acapulco Gro. 11 de noviembre de 2020 Conclusión. Ingeniería de software P á g i n a 30 | 45 Acapulco Gro. 11 de noviembre de 2020 Ingeniería Web. La ingeniería web es el uso de métodos sistemáticos, disciplinados y cuantificables al desempeño eficaz, operatividad y crecimiento de programas de muy buena calidad en la World Wide Web. Tim Berners-Lee inventó lo que hoy se conoce como Internet, desde entonces las páginas web han evolucionado hasta el punto de que, en la actualidad, la web es el principal origen de casi toda, por no decir, toda la información. La ingeniería Web consiste en la disposición y empleo de fundamentos científicos, de ingeniería y gestión y con orientaciones metódicas y disciplinadas del boom y desarrollo, utilización y mantenimiento de sistemas y aplicaciones basados en el Web de alta calidad. Las aplicaciones elaboradas para la Web se caracterizan especialmente por hacer que las herramientas de ingeniería a utilizar sean diversas. La metodología de la Ingeniería web consiste en un procedimiento evolutivo, de seis etapas que son las herramientas necesarias para transformar un modelo eficaz para el desarrollo de programas para la web. Etapas de la metodología: • Formulación. Consiste en identificar identifican las metas y los objetivos del sistema, constituyendo de esta manera el motivo del progreso del sistema, su importancia y los usuarios potenciales. • Planificación. Consiste en el cálculo del costo integral del proyecto y se determinan las amenazas que se relacionan con el impulso del desarrollo además se determina un plan muy detallado para el desarrollo y progresos de la aplicación. • Análisis. Consiste en establecer los requerimientos tecnológicos y de diseño y el reconocimiento de los fundamentos del contenido que se van a agregar. Ingeniería de software P á g i n a 31 | 45 Acapulco Gro. 11 de noviembre de 2020 Esta etapa consta de cuatro análisis diferentes: Análisis del contenido, Análisis de la interacción, Análisis funcional y Análisis de la configuración. • Ingeniería. Esta etapa consiste en la realización de diseños tanto del tema como el de fabricación, en paralelo con los diseños arquitectónicos, navegación e interfaz. (Diseño arquitectónico, Diseño de navegación, Diseño de la interfaz y Diseño del contenido y de la producción) • Generación de páginas. Esta etapa consiste en la realización de la estructura, empleando herramientas para el desarrollo de aplicaciones de web. Está relacionado con el diseño arquitectónico, de navegación y de interfaz para la elaboración de web dinámica. • Pruebas. Esta etapa sirve para encontrar las fallas y permite garantizar que la aplicación web perfectamente en distintos campos, utilizando tácticas y tecnologías que son sugeridas para otros sistemas. • Evaluación del cliente. En este punto, se efectúan todas las modificaciones y variaciones que se encontraron en la etapa de pruebas y se incorporan al sistema para el siguiente incremento, de tal modo que se asegure la satisfacción por parte del cliente, según los requerimientos solicitados. El proceso de ingeniería web tiene sus características como inmediatez y transformación y el crecimiento continuos, que posibilita que el usuario se involucre, facilitando el desarrollo de productos que se ajustan mucho lo que éste busca y necesita. Los pasos más resaltantes del proceso de la ingeniería web: enunciación, planificación análisis, modelización, generación de páginas, test y evaluación del cliente. La Formulación determina metas y fija la relevancia de la primera entrega. La Planificación genera la estimación del costo general del proyecto, la evaluación de riesgos y el calendario del desarrollo y fechas de entrega. Ingeniería de software P á g i n a 32 | 45 Acapulco Gro. 11 de noviembre de 2020 VENTAJAS: • Soporte: una aplicación web reside en una red y debe de dar servicio a una comunidad diversa de clientes. • Inmediatez: Se refiere al corto tiempo que normalmente tienen los proyectos web para terminar, o por lo menos, lanzar una versión oficial. • Evolución: Las aplicaciones web y sitios web están en constante evolución, y se actualizan gradualmente. • Medible: Se puede conocer la cantidad de usuarios que visitan el sitio web, así como los patrones de comportamiento. DESVENTAJAS • Seguridad: Dado que no controlamos quien pueda acceder a nuestro sitio, la seguridad y confidencialidad de la información requieren un énfasis especial. • Estética: Nuestro sitio debe ser ergonómico, atractivo y usable para que sea más agradable para el usuario acceder a él. Ingeniería de software P á g i n a 33 | 45 Acapulco Gro. 11 de noviembre de 2020 Conclusión. Ingeniería de software P á g i n a 34 | 45 Acapulco Gro. 11 de noviembre de 2020 INSTITUTO TECNOLÓGICO NACIONAL DE MÉXICO INSTITUTO TECNOLÓGICO DE ACAPULCO Ingeniería en sistemas computacionales Fundamentos de ingeniería en software Tarea 6. 1.4 Herramientas CASE Conteste lo siguiente: 1.- ¿Qué es una herramienta CASE? 2.- ¿Qué significa las siglas CASE? 3.- ¿Cuáles son las ventajas de utilizar las herramientas CASE? 4.-Mencionelas desventajas de las herramientas CASE. 5.- ¿Cuál fue el móvil que dio origen a las herramientas CASE? 6.- ¿Cómo se clasifican las herramientas CASE? 7.- Describa cada una de la clasificación de las herramientas CASE 8.- Mencione y describa ejemplos de herramientas case Profesor: García Castro María Nancy López Anselmo Mauricio Axel No.control: 18320904 Horario: 13:00 – 14:00 pm Ciclo escolar septiembre 2020 enero 2021 Ingeniería de software P á g i n a 35 | 45 Acapulco Gro. 11 de noviembre de 2020 1.4 Herramientas CASE 1.- ¿Qué es una herramienta CASE? Las herramientas CASE (Computer Aided Software Engineering, Ingeniería de Software Asistida por Computadora) son diversas aplicaciones informáticas o programas informáticos destinadas a aumentar el balance en el desarrollo de software reduciendo el costo de las mismas en términos de tiempo y de dinero. Estas herramientas pueden ayudar en todos los aspectos del ciclo de vida de desarrollo del software en tareas como el proceso de realizar un diseño del proyecto, cálculo de costos, implementación de parte del código automáticamente con el diseño dado, compilación automática, documentación o detección de errores. En los años 70 un proyecto llamado ISDOS diseñó un lenguaje y por lo tanto un producto que analizaba la relación existente entre los requisitos de un problema y las necesidades que estos generaban, el lenguaje en cuestión se denominaba PSL (Problem Statement Language) y la aplicación que ayudaba a buscar las necesidades de los diseñadores PSA (Problem Statement Analyzer). Aunque esos son los inicios de las herramientas informáticas que ayudan a crear nuevos proyectos informáticos, la primera herramienta CASE fue Excelerator que salió a la luz en el año 1984 y trabajaba bajo una plataforma PC. En la época de los noventa algunas empresas trabajaban con sus mainframes o computadoras centrales, Pero poco a poco los mainframes han ido siendo menos utilizados y actualmente el mercado de las CASE ha ido disminuyendo, abriendo el mercado de diversas herramientas más específicas para cada fase del ciclo de vida del software. 2.- ¿Qué significa las siglas CASE? CASE (Computer Aided Software Engineering, Ingeniería de Software Asistida por Computadora) se define también como: Conjunto de métodos, utilidades y técnicas que facilitan la automatización del ciclo de vida del desarrollo de sistemas de información, completamente o en alguna de sus fases. Ingeniería de software P á g i n a 36 | 45 Acapulco Gro. 11 de noviembre de 2020 3.- ¿Cuáles son las ventajas de utilizar las herramientas CASE? Ventajas. Entre los beneficios ofrecidos por la tecnología CASE se encuentran los siguientes: • Facilidad para la revisión de aplicaciones La experiencia muestra que una vez que las aplicaciones se implementan, se emplean por mucho tiempo. Las herramientas CASE proporcionan un beneficio substancial para las organizaciones al facilitar la revisión de las aplicaciones. Contar con un depósito central agiliza el proceso de revisión ya que éste proporciona bases para las definiciones y estándares para los datos. Las capacidades de generación interna, si se encuentran presentes, contribuyen a modificar el sistema por medio de las especificaciones más que por los ajustes al código fuente. • Soporte para el desarrollo de prototipos de sistemas En general, el desarrollo de prototipos de aplicaciones toma varias formas. En ocasiones se desarrollan diseños para pantallas y reportes con la finalidad de mostrar la organización y composición de los datos, encabezados y mensajes. Los ajustes necesarios al diseño se hacen con rapidez para alterar la presentación y las características de la interface. Sin embargo, no se prepara el código fuente, de naturaleza orientada hacia procedimientos, como una parte del prototipo. Como disyuntiva, el desarrollo de prototipos puede producir un sistema que funcione. Las características de entrada y salida son desarrolladas junto con el código orientado hacia los procedimientos y archivos de datos. Muchas herramientas CASE soportan las primeras etapas del desarrollo del prototipo. • Generación de código Como ya se mencionó, algunas herramientas CASE tienen la capacidad de producir el código fuente. La ventaja más visible de esta característica es la disminución del tiempo necesario para preparar un programa. Sin embargo, la generación del código también asegura una estructura estándar y consistente para el programa (lo que tiene gran influencia en el mantenimiento) y disminuye la ocurrencia de varios tipos de errores, Ingeniería de software P á g i n a 37 | 45 Acapulco Gro. 11 de noviembre de 2020 mejorando de esta manera la calidad. Las características de la generación del código permiten volver a utilizar el software y las estructuras estándares para generar dicho código, así como el cambio de una especificación modular, lo que significa volver a generar el código y los enlaces con otros módulos. Ninguna de las herramientas que existen en el presente es capaz de generar un código completo en los dominios. • Mejora en la habilidad para satisfacer los requerimientos del usuario Es bien conocida la importancia de satisfacer los requerimientos del usuario, ya que esto guarda relación con el éxito del sistema. De manera similar, tener los requerimientos correctos mejora la calidad de las prácticas de desarrollo. Parece ser que las herramientas CASE disminuyen el tiempo de desarrollo, una característica que es importante para los usuarios. Las herramientas afectan la naturaleza y cantidad de interacción entre los encargados del desarrollo y el usuario. Las descripciones gráficas y los diagramas, así como los prototipos de reportes y la composición de las pantallas, contribuyen a un intercambio de ideas más efectivo. 4.-Mencione las desventajas de las herramientas CASE. Desventajas. Las herramientas CASE tienen puntos débiles significativos, que van desde la confiabilidad en los métodos estructurados hasta su alcance limitado, los cuales amenazan con minar los beneficios potenciales descritos con anterioridad. • Confiabilidad en los métodos estructurados Muchas herramientas CASE están construidas teniendo como base las metodologías del análisis estructurado y del ciclo de vida de desarrollo de sistemas. Por si sola, esta característica puede convertirse en la principal limitante ya que no todas las organizaciones emplean métodos de análisis estructurado. Los métodos estructurados, introducidos en la década de los setenta, fueron muy elogiados por su habilidad para mejorar la exactitud de los requerimientos específicos de las aplicaciones. El nivel de conocimiento de los métodos estructurados es lato entre los profesionales de sistemas de información – de acuerdo con algunas estimaciones (Yourdon), casi el 90% de todos los analistas está familiarizado con estos métodos -. Ingeniería de software P á g i n a 38 | 45 Acapulco Gro. 11 de noviembre de 2020 Aproximadamente la mitad de todas las organizaciones en Estados Unidos han utilizado alguna vez estos métodos. • Falta de niveles estándar para el soporte de la metodología Aún no aparece un conjunto “estándar” de herramientas CASE. Por tanto, debe tener precaución al seleccionar una herramienta de este tipo. Existen dos significados para las palabras “soporte de la metodología”.Una herramienta puede: 1) dar soporte a los diagramas que emplea una metodología o 2) soportarlos e imponer la metodología, sus reglas y procesos. Las herramientas CASE que existen en el presente, tienen una de las siguientes características: * Son independientes de la metodología. * Permiten que los usuarios definan sus propias metodologías. * Soportan una metodología. * Soportan las metodologías más diseminadas. En todas ellas existen ciertos compromisos. Las herramientas que son independientes de la metodología no pueden fomentar el uso de las reglas y estándares de esta. Estas herramientas quizá proporcionen los componentes de una metodología (por ejemplo: diagramas de flujos de datos, un diccionario de datos y facilidades para la descripción de procesos), pero no el marco de referencia, reglas y procedimientos que en realidad constituyen el núcleo de la metodología. • Conflictos en el uso de los diagramas Las herramientas difieren en el uso que hacen los diagramas. Algunas son herramientas exclusivamente para gráficas, que se abocan al dibujo de diagramas para el análisis de entrada y salida de datos. Este tipo de herramientas puede restringir ya sea el proceso de desarrollo normal seguido por una organización o el estilo particular de trabajo de los analistas. • Diagramas no utilizados En general, los productos CASE emplean gráficas para modelar y generar informes sobre el análisis y desarrollo de sistemas. Una de las afirmaciones de los vendedores de herramientas es que las presentaciones gráficas y la documentación mejoran la comunicación entre los miembros del equipo de desarrollo, propician una calidad mayor de la entrada proporcionada por el cliente y mejoran la productividad de desarrollo de software. Sin embargo, los investigadores han encontrado que, en algunos casos, las Ingeniería de software P á g i n a 39 | 45 Acapulco Gro. 11 de noviembre de 2020 herramientas gráficas, automatizadas o manuales, no se emplean del todo. O tal vez no se utilicen en la forma que deberían emplearse. Por otra parte, algunos analistas prefieren para algunas tareas un lenguaje estructurado o descriptivo. 5.- ¿Cuál fue el móvil que dio origen a las herramientas CASE? Las Herramientas CASE tienen su inicio con el simple procesador de palabras que fue usado para crear y manipular documentación. Los setentas vieron la introducción de técnicas gráficas y diagramas de flujo de estructuras de datos. Sobre este punto, el diseño y especificaciones en forma pictórica han sido extremadamente complejos y consumían mucho tiempo para realizar cambios. La introducción de las herramientas CASE para ayudar en este proceso ha permitido que los diagramas puedan ser fácilmente creados y modificados, mejorando la calidad de los diseños de software. Los diccionarios de datos, un documento muy usado que mantiene los detalles de cada tipo de dato y los procesos dentro de un sistema, son el resultado directo de la llegada del diseño de flujo de datos y análisis estructural, hecho posible a través de las mejoras en las Herramientas CASE. 6.- ¿Cómo se clasifican las herramientas CASE? No existe una única clasificación de herramientas CASE y, en ocasiones, es difícil incluirlas en una clase determinada. Podrían clasificarse atendiendo a: • Las plataformas que soportan. • Las fases del ciclo de vida del desarrollo de sistemas que cubren. • La arquitectura de las aplicaciones que producen. • Su funcionalidad. Ingeniería de software P á g i n a 40 | 45 Acapulco Gro. 11 de noviembre de 2020 7.- Describa cada una de la clasificación de las herramientas CASE Según fases del ciclo de vida del desarrollo La siguiente clasificación es la más habitual basada en las fases del ciclo de desarrollo que cubren: • Upper CASE (U-CASE) Herramientas de alto nivel, U-CASE (Upper CASE - CASE superior) o front-end ,orientadas a la automatización y soporte de las actividades desarrolladas durante las primeras fases del desarrollo: análisis y diseño • Middle CASE (M-CASE) Middle CASE (M-CASE), herramientas para automatizar tareas en el análisis y diseño de la aplicación. • Lower CASE (L-CASE) Herramientas de bajo nivel, L-CASE (Lower CASE - CASE inferior) o back-end, dirigidas a las últimas fases del desarrollo: construcción e implantación. Estas herramientas son las que semi-automatizan la generación de código, crean programas de detección de errores, soportan la depuración de programas y pruebas. Además, automatizan la documentación completa de la aplicación. • Tools-Case. Juegos de herramientas o Tools-Case, son el tipo más simple de herramientas CASE. Automatizan una fase dentro del ciclo de vida. Dentro de este grupo se encontrarían las herramientas de reingeniería, orientadas a la fase de mantenimiento Según funcionalidad. Por funcionalidad se pueden diferenciar algunas como: • Editores UML. los diagramas UML describen los límites, la estructura y el comportamiento del sistema y los objetos que contiene. UML no es un lenguaje de programación, pero existen herramientas que se pueden usar para generar código en diversos lenguajes usando los diagramas UML. UML guarda una relación directa con el análisis y el diseño orientados a objetos. Ingeniería de software P á g i n a 41 | 45 Acapulco Gro. 11 de noviembre de 2020 • Herramientas de mantenimiento como los sistemas de control de versiones. Se llama control de versiones a la gestión de los diversos cambios que se realizan sobre los elementos de algún producto o una configuración de este. Una versión, revisión o edición de un producto, es el estado en el que se encuentra el mismo en un momento dado de su desarrollo o modificación. Otras clasificaciones. Existen otros nombres que se le dan a este tipo de herramientas, y que no es una clasificación excluyente entre sí, ni con las fases del ciclo de vida del desarrollo: • Integrated CASE (I-CASE) herramientas que engloban todo el proceso de desarrollo software, desde el análisis hasta la implementación. • MetaCASE. herramientas que permiten la definición de nuestra propia técnica de modelado, los elementos permitidos del metamodelo generado se guardan en un repositorio y pueden ser usados por otros analistas, es decir, es como si definiéramos nuestro propio UML, con nuestros elementos, restricciones y relaciones posibles. • CAST. herramientas de soporte a la prueba de software. • IPSE. herramientas que soportan todo el ciclo de vida, incluyen componentes para la gestión de proyectos y gestión de la configuración activa. Ingeniería de software P á g i n a 42 | 45 Acapulco Gro. 11 de noviembre de 2020 8.- Mencione y describa ejemplos de herramientas case Ejemplos de herramientas CASE. • NetBeans Herramienta muy buena con características buenas como desarrollo intuitivo gratis y open source drag-and-drop para mayor rapidez Principalmente para desarrollo de escritorio Web Mobile y Enterprise con compatibilidad con java C/C++ Ruby PHP javascript tiene algunas mejoras con UML aunque no es el más optimo tiene algo muy interesante creador de juegos para celulares • Microsoft Visio Herramienta de diagramación avanzada con gran variedad de plantillas que permiten simplificar las tareas complejas con elementos visuales dinámicos basados en datos, UML Bases de Datos Arquitectura ect con SharePoint con másfacilidad sin generar código, Pero bastante atractiva para hacer distintos diagramas • Eclipse/Omondo Eclipse dispone de un Editor de texto. La compilación es en tiempo real. Tiene pruebas unitarias con JUnit, control de versiones con CVS, Como ya sabemos código abierto Sobre el cual se pueden montar herramientas de desarrollo para cualquier lenguaje mediante la implementación de los Ingeniería de software P á g i n a 43 | 45 Acapulco Gro. 11 de noviembre de 2020 plugins adecuados como omondo para la realización de diagramas UML generando código • OmniGraffle Es una herramienta de diagramación disponible para OS, muy práctica y fácil de usar, con muchos elementos que facilitan la creación de DFD. Esta herramienta brinda la posibilidad de exportar en varios formatos, es accesible y se puede adquirir directamente en el Appstore. • Serena Composer Esta herramienta ayuda en el diseño de la interfaz gráfica y las definiciones iniciales del sistema, el producto final de este software es un reporte no funcional que detalla el funcionamiento del sistema y una visión no funcional del sistema (prototipo) que no puede ser reutilizado para la etapa de desarrollo. • GUI Design Studio Es una herramienta enfocada solamente en el diseño de interfaces gráficas para aplicaciones, es muy sencillo de usar y contiene muchos elementos para modelar pantallas de aplicaciones botones, cajas de texto, contraseñas, tablas, iconos y es capaz de simular el paso de ventanas. Ingeniería de software P á g i n a 44 | 45 Acapulco Gro. 11 de noviembre de 2020 • Edraw Es un programa muy completo para realizar diferentes tipos de diagramas de varias metodologías, Es muy sencillo de usar ya que tiene una interfaz muy parecida a la de Microsoft Visio. • Oracle SQL Developer Herramienta CASE especializada en Base de Datos, tiene varios módulos de modelado de datos entre otras y tiene compatibilidad con distintos manejadores de Base de Datos. Ingeniería de software P á g i n a 45 | 45 Acapulco Gro. 11 de noviembre de 2020 AUTORES Y BIBLIOGRAFIA. https://www.marcoteorico.com/curso/45/ingenieria-de-software/254/cascada http://www.utpuebla.edu.mx/divisiones/tic/TIC/2_materias/2/image/2do_sist/I ntroduccio%CC%81n%20al%20ana%CC%81lisis%20y%20disen%CC%83o%2 0de%20sistemas/Portafolio%20de%20evidencias/Producto%204.pdf https://sites.google.com/site/intelisoft2016/metodo-incremental Librado, Bonifacio. Gervacio. (Septiembre 2013). Sistema de seguimiento al crédito(Tesis). Santiago de Queretaro: Tesis. www.uteq.edu.mx/tesis/ITIC/0303.pdf. http://modeloincremental-14.blogspot.com/p/ventajas.html http://damian11eter.blogspot.com/2015/11/modelo- evolutivo.html#:~:text=Los%20evolutivos%20son%20modelos%20iterativos, durante%20la%20fase%20de%20operaci%C3%B3n. https://es.slideshare.net/andreslsla/modelo-evolutivo https://aspgems.com/metodologia-de-desarrollo-de-software-iii-modelo-en-espiral/ https://ingsoftware.weebly.com/ciclo-de-vida-de-un-prototipo.html https://blog.wearedrew.co/ventajas-y-desventajas-de-la-metodologia-scrum https://proyectosagiles.org/que-es-scrum/ https://is1g22.blogspot.com/2020/04/modelo-espiral-winwin.html http://modeloespiral.blogspot.com/2009/08/modelo-winwin.htm https://micarrerauniversitaria.com/c-ingenieria/ingenieria-web/ https://sites.google.com/site/ingenierialeosw/unidad-1-fundamentos-de-ingenieria- de-software/1-5-definicion-e-historia-de-las-herramientas-case https://www.marcoteorico.com/curso/45/ingenieria-de-software/254/cascada http://www.utpuebla.edu.mx/divisiones/tic/TIC/2_materias/2/image/2do_sist/Introduccio%CC%81n%20al%20ana%CC%81lisis%20y%20disen%CC%83o%20de%20sistemas/Portafolio%20de%20evidencias/Producto%204.pdf http://www.utpuebla.edu.mx/divisiones/tic/TIC/2_materias/2/image/2do_sist/Introduccio%CC%81n%20al%20ana%CC%81lisis%20y%20disen%CC%83o%20de%20sistemas/Portafolio%20de%20evidencias/Producto%204.pdf http://www.utpuebla.edu.mx/divisiones/tic/TIC/2_materias/2/image/2do_sist/Introduccio%CC%81n%20al%20ana%CC%81lisis%20y%20disen%CC%83o%20de%20sistemas/Portafolio%20de%20evidencias/Producto%204.pdf https://sites.google.com/site/intelisoft2016/metodo-incremental http://www.uteq.edu.mx/tesis/ITIC/0303.pdf http://modeloincremental-14.blogspot.com/p/ventajas.html http://damian11eter.blogspot.com/2015/11/modelo-evolutivo.html#:~:text=Los%20evolutivos%20son%20modelos%20iterativos,durante%20la%20fase%20de%20operaci%C3%B3n http://damian11eter.blogspot.com/2015/11/modelo-evolutivo.html#:~:text=Los%20evolutivos%20son%20modelos%20iterativos,durante%20la%20fase%20de%20operaci%C3%B3n http://damian11eter.blogspot.com/2015/11/modelo-evolutivo.html#:~:text=Los%20evolutivos%20son%20modelos%20iterativos,durante%20la%20fase%20de%20operaci%C3%B3n https://es.slideshare.net/andreslsla/modelo-evolutivo https://aspgems.com/metodologia-de-desarrollo-de-software-iii-modelo-en-espiral/ https://ingsoftware.weebly.com/ciclo-de-vida-de-un-prototipo.html https://blog.wearedrew.co/ventajas-y-desventajas-de-la-metodologia-scrum https://proyectosagiles.org/que-es-scrum/ https://is1g22.blogspot.com/2020/04/modelo-espiral-winwin.html http://modeloespiral.blogspot.com/2009/08/modelo-winwin.htm https://micarrerauniversitaria.com/c-ingenieria/ingenieria-web/ https://sites.google.com/site/ingenierialeosw/unidad-1-fundamentos-de-ingenieria-de-software/1-5-definicion-e-historia-de-las-herramientas-case https://sites.google.com/site/ingenierialeosw/unidad-1-fundamentos-de-ingenieria-de-software/1-5-definicion-e-historia-de-las-herramientas-case
Compartir