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.