Mostrando entradas con la etiqueta Ingeniería de Software II. Mostrar todas las entradas
Mostrando entradas con la etiqueta Ingeniería de Software II. Mostrar todas las entradas

martes, 8 de octubre de 2024

Resumen de la implementación de una metodología Ágil

 Mantenimiento de Software y Software Heredado

El desarrollo de una herramienta de software no es un proceso estático. Su mantenimiento se enfoca en solucionar inconvenientes que no son detectados en la fase de pruebas, capacitar a los usuarios y ajustar el sistema a nuevos requisitos en los procesos organizacionales. Para que estas tareas sean más efectivas, es importante contar con una documentación adecuada, ya que, sin ella, el mantenimiento y la incorporación de nuevas funcionalidades causar más inconvenientes.

Documentación Técnica y Funcional Del Software

La documentación de una herramienta de software es un proceso crucial para entender como funciona la herramienta desde diferentes puntos de vista y de esta manera lograr que las personas que intervengan con esta herramienta tengan buena adaptabilidad.

Hay dos tipos principales de documentación en el desarrollo de software: técnica y funcional, a continuación, se describirán las recomendaciones fundamentales para su análisis:

Definición y especificación de requerimientos: En metodologías tradicionales se puede seguir el estándar IEEE830, mientras que en metodologías ágiles se utilizan historias de usuario.

Arquitectura del sistema: documentada mediante el Modelo 4 + 1 vistas.

Modelo de datos: Para este modelo se utiliza el diccionario de datos y diagramas relacionales que explican cómo se organizan los datos.

Descripción de procesos y servicios: Esta descripción detalla las funcionalidades del sistema dividido por módulos.

Documentación técnica: abarca la arquitectura y el código, destacando la importancia de un código legible y estandarizado.

Documentación de usuario: este tipo de documentación disminuye la cantidad de soporte ofrecido a usuarios finales. La documentación más común es el manual de usuario.

 

Mantenimiento de software y software heredado

 


Ingeniería de software, herramientas, métodos y procesos

 


El ciclo de vida iterativo e incremental

¿Cuál es la diferencia entre ciclo de vida iterativo e incremental? Explique sus ventajas y desventajas.

Ciclo de vida iterativo: Es una metodología de desarrollo de software, en este ciclo de vida, el proyecto es dividido por fases las cuales se desarrollan de forma cíclica, Cada ciclo requiere una planificación cuidadosa, lo que permite un avance progresivo en el desarrollo del proyecto, además cada iteración incluye procesos de planificación, diseño, implementación y pruebas en un tiempo específico, y al final se entrega el software para que pueda ser probado y evaluado por los usuarios.

Ventajas

Flexibilidad y adaptabilidad: Permite a los equipos de desarrollo adaptarse a los cambios, lo que puede proporcionar un software más flexible y adaptable.

Detección temprana de errores: Cada iteración es una oportunidad para detectar y corregir problemas, lo que puede ayudar a reducir el tiempo en etapas posteriores.

Control sobre el proceso de desarrollo: Cada ciclo permite un mayor control sobre el proceso del desarrollo, lo que mejorar la calidad del software.

Rapidez de entrega: Gracias a los ciclos, se puede entregar rápidamente un módulo.

Desventajas

Es necesario tener un conocimiento completo de todos los requisitos para poder descomponer el producto en módulos de manera adecuada.

No es tan adaptable a los cambios en los requisitos.

El desarrollo no estará completo hasta que todas las partes estén en su sitio.

Hacer que las partes funcionen conjuntamente requiere un esfuerzo adicional y puede ser un reto, ya que es necesario garantizar la compatibilidad y la integración adecuada de cada una de ellas.

Ciclo de vida incremental: En este ciclo el proyecto se desarrolla por fases, pero con la particularidad de que cada ciclo genera una entrega funcional del producto. Esta metodología de desarrollo de software se basa en dividir el trabajo en módulos de forma independiente, integrándolos una vez completados. Aunque se diseña el producto completo al inicio, se omiten detalles que se definen más tarde. Esta metodología permite tener un software funcional más rápidamente y facilita el control de defectos acumulativos, resultando en un producto más sólido.

Ventajas

Entrega temprana del software: Con la finalización del primer módulo o iteración, es posible contar con un software funcional que puede ser entregado antes de la finalización del proyecto completo.

Desarrollo paralelo: Debido a que se trabaja por módulos, diferentes equipos pueden trabajar en paralelo en las diferentes partes del proyecto.

Mayor flexibilidad: Cada módulo puede ser completado en momentos distintos sin afectar la construcción de los demás.

Separación de intereses: Cada módulo permite que se pueda trabajar de manera individual.

Adaptabilidad: Los módulos pueden ser añadidos o eliminados del producto según sea necesario, lo que permite una mayor flexibilidad.

Identificar vulnerabilidades: Permite identificar y abordar vulnerabilidades de forma más específica y controlado, lo que ayuda a garantizar la calidad y seguridad del software.

Desventajas

Dificultad de control: Debido a que se trabaja por módulos, es fundamental una mayor gestión y coordinación entre los diferentes equipos, lo que puede aumentar la complejidad del proyecto.

Riesgo de dependencias entre módulos: Si no se tiene una buena planificación y coordinación, existe el riesgo de que los módulos dependan de otros, lo que puede afectar a la calidad del software.

Problemas de integración: Cuando se integran los diferentes módulos, es posible que se presenten problemas de integración que afectan al rendimiento.

Planificación y diseño: Es necesario una planificación y diseño detallado para cada uno de ellos, por lo que puede aumentar el tiempo en la planificación y diseño del proyecto.

Diferencia entre el ciclo de vida iterativo e incremental

Ambos ciclos buscan entregar un producto de calidad, pero con enfoques diferentes. El ciclo iterativo permite ajustes continuos en cada fase, por lo que es ideal para proyectos donde los requisitos pueden evolucionar durante el desarrollo. El ciclo incremental se enfoca en entregar un producto funcional lo antes posible, permitiendo obtener feedback temprano y hacer ajustes en fases posteriores.

martes, 27 de agosto de 2024

Presentación Ingeniería de Software II

La Ingeniería de Software es el arte de construir software de alta calidad de manera eficiente y confiable, se encarga de todo el ciclo de vida del desarrollo, desde la concepción de una idea hasta la implementación y el mantenimiento del producto final. Su objetivo principal es producir software de alta calidad que cumpla con los requisitos del cliente y se adapte a las necesidades cambiantes del mercado.

La ingeniería de software establece estándares y procesos que permiten desarrollar software confiable, seguro y eficiente, Proporciona herramientas y metodologías para planificar, ejecutar y controlar proyectos de desarrollo de software de manera efectiva,  contribuye a reducir los costos de desarrollo.



Mapa mental-informe final de auditoría

¿Si generas un informe final de auditoría lleno de errores o incongruencias que esperas formalizarlo sin la debida discusión con los auditad...