Ingeniería del Software - UAM

  • Software: Desarrollo + Mantenimiento

    • Incluye programas, datos, documentación y código.

  • Características: Lógico, desarrollado (no fabricado), diseñado a medida, se deteriora con actualizaciones y cambios sociales, y es dinámico.

  • Evolución: Transición de programas pequeños e intuitivos a sistemas complejos que requieren metodologías estructuradas y experiencia profesional.

  • Crisis (1960-90):

    • Causas: Avances de hardware, mayor demanda, falta de metodologías, uso inadecuado de recursos, complejidad del sistema e información deficiente para los desarrolladores.

    • Síntomas: Baja productividad, expectativas incumplidas, fallos frecuentes, baja calidad, sobrecostos, mantenimiento complejo, plazos incumplidos y uso ineficiente de recursos.

    • Solución: Aplicar Ingeniería de Software.

  • Trabajo de Proyecto vs. Operacional: Los proyectos son esfuerzos temporales para crear productos únicos, a diferencia del trabajo operacional repetitivo.

  • Producto y Proceso: El desarrollo de software implica un proceso que transforma un problema en una solución de software, incluyendo desarrollo, control, gestión y operación.

  • Ingeniería de Software:

    • Desafíos: Reducir costos, mejorar la calidad, aprovechar el potencial del hardware y garantizar la usabilidad, confiabilidad y seguridad del software.

    • Objetivos: Crear software confiable, de alta calidad y bajo costo, y gestionar eficientemente su desarrollo y mantenimiento.

    • Definición: Aplicar principios de ingeniería para lograr software confiable y eficiente económicamente.

    • Diferencias: Se enfoca en mejorar las capacidades mentales en lugar de las físicas.

    • Disciplinas: Combina ciencias de la computación, ingeniería, psicología, gestión y economía.

    • Fundamentos: Utiliza métodos, herramientas y procedimientos para la construcción de software.

    • Actividades: Abarca el desarrollo, control, gestión y operación.

    • Actividades de Desarrollo: Incluye análisis, diseño, codificación, pruebas, despliegue y mantenimiento.

    • Actividades de Control: Se centra en el aseguramiento de la calidad a través de métricas y gestión de la configuración.

    • Actividades de Gestión: Involucra la planificación, estimación, seguimiento de proyectos y administración.

    • Actividades de Operación: Cubre el despliegue, la configuración y la capacitación del usuario.

  • El desarrollo de software es esencialmente una actividad de resolución de problemas.