1. Software
Conjunto de programas, procedimientos y documentación asociada a la operación de un sistema informático.
1.3 La Crisis del Software
Los proyectos no terminaban en plazo, no se ajustaban al presupuesto inicial, presentaban baja calidad, no cumplían las especificaciones, tenían código inmantenible, carecían de metodología en su desarrollo e incapacidad para afrontar la demanda de software.
1.5 Causas de los Males del Software
Responsables no cualificados, falta de comunicación entre partes implicadas, desconocimiento de las nuevas tendencias, resistencia al cambio, falta de reconocimiento de la figura del informático.
1.5.1 Mitos de Gestión
- Resistencia al cambio en la gestión de proyectos.
- Con un libro de estándares es suficiente.
- Ordenadores modernos = Buen entorno de desarrollo.
- Concepto de la horda mongoliana.
- Experiencia para saltarse las metodologías.
- Incapacidad de los usuarios para comunicar sus necesidades.
1.5.2 Mitos del Cliente
- Ideas genéricas al principio, detalles al final.
- Requisitos en continua evolución.
1.5.3 Mitos del Desarrollador
- El trabajo acaba cuando se ha escrito el programa y funciona.
- Hasta que no se ejecuta el programa no puede comprobarse su calidad.
- Sólo se entrega un programa funcionando.
- Lo que uno crea sólo debe entenderlo él.
2. Sistemas de Información
El conjunto de medios humanos y materiales encargados del tratamiento de la información empresarial, mediante la entrada de datos, su proceso, almacenamiento, posterior salida, presentación y, a veces, su explotación.
2.2 Objetivos de un SI
- Facilitar o realizar automáticamente procesos de tradición manual.
- Proporcionar informaciones.
- Toma de decisiones por parte del SI.
2.3 Elementos de un SI
- Los procesos.
- La información.
- Las personas o usuarios de esa información.
- El equipo de soporte.
2.4 Estructura de un SI
- Operaciones y transacciones.
- Nivel operativo de dirección.
- Nivel táctico de dirección.
- Nivel estratégico de dirección.
3. Ingeniería del Software
La aplicación de un enfoque sistemático, disciplinado y cuantificable para el desarrollo, la operación y el mantenimiento del software; es decir, la aplicación de la ingeniería al software.
3.2 Elementos de la IS
- Los Métodos.
- Las Herramientas.
- Los Procedimientos.
3.3 Objetivos de la IS
- Desarrollo de software de Calidad.
- Aumento de la productividad.
- Disminución del tiempo.
- Desarrollo de software económico.
3.3.1 Factores de Calidad
- Eficiencia.
- Fiabilidad.
- Integridad.
- Facilidad de mantenimiento.
- Facilidad de uso.
- Portabilidad.
- Legibilidad.
- Reutilización.
- Robustez.
- Facilidad de prueba.
- Bien documentado.
4. Ciclo de Vida del Software
Es un marco de referencia que contiene los procesos, las actividades y las tareas involucradas en el desarrollo, la explotación y el mantenimiento de un producto de software, abarcando la vida del sistema desde la definición de requisitos hasta la finalización de su uso.
4.2 Objetivos del Ciclo de Vida
- Determinar cuáles son las actividades que lo forman, y cuál es su orden.
- Asegurar la consistencia con el resto de los SI de la organización.
- Definir los productos a conseguir en cada fase.
4.3 Descripción General de un Ciclo de Vida
Definición -> Desarrollo -> Mantenimiento
4.3.1 Definición
Información a procesar. Función y rendimiento deseado, Interfaces. Restricciones de diseño, Criterios de validación.
Etapas
- Análisis del sistema.
- Planificación del proyecto:
- Análisis de riesgos.
- Asignación de recursos.
- Estimación de costes.
- Definición de tareas.
- Planificación del trabajo.
- Análisis de requisitos.
4.3.2 Desarrollo
- Diseño de la arquitectura del software.
- Diseño de los detalles procedimentales.
- Traducción del diseño a un lenguaje de programación.
- Pruebas.
4.3.3 Mantenimiento
- Mantenimiento correctivo: Corrección de errores.
- Mantenimiento adaptativo: Adaptaciones.
- Mantenimiento perfectivo: Cambio de requisitos.
- Mantenimiento preventivo.
5. Modelos de Desarrollo de Software
5.2 Modelo Primitivo
Codificación <-> Prueba <-> …
Inconvenientes
- Código pobremente estructurado tras varias iteraciones: código espagueti.
- Caro de desarrollar por las numerosas recodificaciones.
- Posible rechazo del usuario al no existir análisis de requisitos.
- Caro de depurar por la falta de planificación.
- Caro de mantener por la falta de estructura y documentación.
5.3 Modelo Barroco
Análisis -> Diseño -> Codificación
Inconvenientes
- Riesgo de agujeros negros.
- El desarrollo no es determinista, necesita iteraciones entre las fases.
5.4 Modelo Clásico
Investigación preliminar -> Análisis -> Diseño -> Codificación -> Prueba -> Mantenimiento
Generalidades
- Fases secuenciales.
- Permite la iteración de fases consecutivas.
- Obtención de documentos como criterio de finalización de fase.
- Distintas configuraciones.
Características
- Comienzo de una fase con el término de la anterior.
- Paso de fase al conseguir los objetivos.
- Apoyo a los gestores.
- El final de una fase puede suponer un punto de revisión.
Investigación preliminar o fase de exploración
- Definición del problema.
- Determinación de los recursos necesarios.
- Análisis coste/beneficio.
- Estudio de viabilidad:
- Técnica.
- Económica.
- Operacional.
Análisis
Diseño
Codificación
Prueba
Verificación
Validación
Mantenimiento
Inconvenientes
- Progresión secuencial.
- Rigidez.
- Monolítico.
Consideraciones finales
- Tiene un lugar destacado en la IS.
- Plantilla para adecuar los métodos.
- Similar al ciclo de vida genérico.
- Muy utilizado.
- Tiene problemas, pero es mejor que desarrollar sin guías.