1. Verificacin y Validacin de Sistemas 1. Mantenimiento 2. Pruebas de Software 3. Verificacin y Validacin de Software
2. Ingeniera de Software Orientada a Objetos
Contenido 1. Conceptos y Principios Orientados a Objetos 2. Anlisis Orientado a Objetos - AOO 3. Diseo Orientado a Objetos - DOO 4. Mtricas y Pruebas para Sistemas Orientados a Objetos
3. Temas Avanzados en Ingeniera del Software
1. Tpicos Especiales de Ingeniera del Software Significado: Es el proceso final despus de que un software est siendo utilizado, normalmente se ejecuta un mantenimiento de software para corregir ciertos errores que el programa tiene, algunos bugs o detalles de interfaz a solucionar, pero tambin puede ser para mejorar el rendimiento del programa o para adaptarlo a distintas reas como los dispositivos mviles por ejemplo. Mantenimiento Es algo necesario, no solamente se trata de corregir errores dentro de Software del sistema, tambin estamos hablando de crear mejoras, hacer programas ms ligeros eliminando cosas innecesaria, optimizando sistemas, adaptndolos a las distintas interfaces e incluso a las resoluciones de pantalla a las cuales se pueda enfrentar, todas estas funciones a realizarle a los programas, se encuentran dentro de lo que conocemos como Mantenimiento de Software. Tipos de Mantenimiento de Software: A medida que pasa el tiempo, las aplicaciones de software deben ser sometidas a procesos de modificacin que extiendan su vida til o mejoren sus caractersticas. Correccin de bugs, adaptacin a nuevos entornos tecnolgicos o agregado de funcionalidad son algunas de las tareas que incluye el mantenimiento del software, una actividad que se repite peridicamente desde que empieza a utilizarse hasta su abandono definitivo. Mantenimiento Preventivo: Consiste en revisar peridicamente el software para detectar fallos o vulnerabilidades que puedan contraer problemas a futuro. Mantenimiento Predictivo: Evala el flujo de ejecucin del programa Mantenimiento para predecir cuando se producir una falla y as determinar cuando es el momento de realizar ajustes necesarios.
de Software Mantenimiento Correctivo: Corrige los defectos encontrados en el
software y que generan funciones deseadas a las planeadas. Las fallas pueden ser de procesamiento, rendimiento, programacin, seguridad o estabilidad. Mantenimiento Adaptativo: Cuando se requiere cambiar el entorno de uso de la aplicacin es necesario modificarla para mantener su funcionabilidad. Mantenimiento Evolutivo: Son casos especiales donde existe un adaptacin obligatoria, ya que de lo contrario el software queda obsoleto con el tiempo. Ejemplo: Cambio de versin de Navegador o S.O. Mantenimiento Perfectivo: Cuando el usuario pueda solicitar el agregado de nuevas funcionalidades o caractersticas no contempladas al momento de implementacin del software. Ingeniera inversa: Anlisis de un sistema para identificar sus componentes y las relaciones entre ellos, as como para crear representaciones del sistema en otra forma o en un nivel de abstraccin ms elevado. Reingeniera: Modificacin de un producto software, o de ciertos componentes, usando para el anlisis del sistema existente Tcnicas de tcnicas de ingeniera inversa y, para la etapa de reconstruccin, herramientas de ingeniera directa, de tal manera que se oriente Mantenimiento este cambio hacia mayores niveles de facilidad en cuanto a mantenimiento, reutilizacin, comprensin o evolucin. de Software Reestructuracin del software: Cambio de representacin de un producto software, pero dentro del mismo nivel de abstraccin.
La Ingeniera Directa: Es el desarrollo del Software Tradicional
pero no es una tcnica de mantenimiento de Software. La modificacin de un producto software despus de su entrega al cliente o usuario para corregir defectos, para mejorar el rendimiento u otras propiedades deseables, o para adaptarlo a un cambio de entorno. Taller de Consultar el Estndar IEEE 1219-1992 para que se estableci y Consulta porque es importante usarlo. Un trabajo impreso con normas de Icontec. Los gestores seniors de las organizaciones deben ser conscientes Administracin de: 1.- Importancia de las tecnologas de la informacin para la del organizacin. Mantenimiento 2.- El software es activo corporativo y puede suponer una venta competitiva.
Deben centrar las soluciones en dos aspectos: recursos y calidad.
Recursos dedicados al mantenimiento: Administracin El recurso clave es el humano. Lo habitual es que esta tarea sea asignada a personal nuevo recin incorporado a la organizacin, sin del experiencia en el uso de las tcnicas de ingeniera del software y sin conocimiento del programa; y como consecuencia de ello, Mantenimiento raramente consiguen encontrar y corregir defectos o realizar modificaciones. Por lo tanto una mejora indispensable es constituir un grupo de programadores dedicados al mantenimiento de cdigo antiguo. Gestin de la calidad: Para resolver el problema a largo plazo es necesario mejorar la calidad del proceso en su conjunto. Tcnicas de gestin de la calidad del software: Uso de tcnicas estndares para descomponer el software en entidades funcionales. Administracin Uso de estndares de documentacin del software. del Diseo paso a paso en cada nivel de descomposicin del software. Mantenimiento Uso de cdigo estructurado. Definicin a priori de todas las interfaces y estructuras de datos antes del diseo. Uso de mtricas de producto (miden atributos del producto software) y mtricas de procesos (evalan la calidad del proceso). Uso de mejores herramientas y entornos de desarrollo de software. Gestin estructurada del mantenimiento: Si el mantenimiento no es estructurado se sufren las consecuencias: dolorosa evaluacin del cdigo, complicada comprensin del sistema por la pobre documentacin interna, dificultad para descubrir las consecuencias de los cambios en el cdigo y la imposibilidad de realizar pruebas de regresin (repeticin de pruebas anteriores) debido a la inexistencia de registros de pruebas. Sugerencias para mantener cdigo heredado: Obtener la mxima informacin sobre el programa antes de que surja Administracin el mantenimiento. Conocer, entender y, en caso de no existir, dibujar el flujo de control del del programa. Evaluar la documentacin. Mantenimiento Aadir comentarios al cdigo para ayudar a su comprensin posterior. Usar las ayudas de los compiladores. Respetar el estilo y formato al realizar cambios. Sealar las instrucciones del cdigo cambiadas. Guardar copia de seguridad antes de eliminar cdigo. Usar variables propias para evitar efectos secundarios. Mantener un registro completo de las actividades de mantenimiento. Aadir comprobacin de errores. Organizacin del equipo humano: Es necesario organizar el equipo de mantenimiento, dividiendo claramente las actividades entre sus miembros y estableciendo los procedimientos de evaluacin, control, supervisin e informacin de cada solicitud de mantenimiento. Se pueden establecer las siguientes responsabilidades: Administracin Controlador del mantenimiento: persona que recibe la solicitud de del mantenimiento y que asume la responsabilidad de su gestin y seguimiento integral. Mantenimiento Supervisor del sistema software: persona encargada de conocer la aplicacin a mantener y de informar sobre cada solicitud de mantenimiento que le afecte. Gestor de la configuracin: persona que mantiene actualizada la configuracin del software. Desarrollador de mantenimiento: persona que realiza los cambios en la aplicacin. Documentacin de los cambios: Las solicitudes de mantenimiento deben hacerse mediante un formulario estandarizado. El equipo de mantenimiento debe elaborar un informe de cambios para cada solicitud. Este informe de cambios debe incluir: 1. Informacin del programa. 2. Tamao (LDC) del programa fuente. 3. Tamao del ejecutable. Administracin 4. Lenguaje de programacin utilizado.
del 5. Fecha de instalacin del programa.
6. Nmero de ejecuciones del programa desde la instalacin. Mantenimiento 7. Nmero de fallos. 8. Nmero de sentencias aadidas, modificadas y eliminadas en el cambio. 9. Nmero de personas-hora. 10. Identificacin de la persona responsable. 11. Identificacin de la solicitud de mantenimiento. 12. Tipo de mantenimiento. 13. Fechas de comienzo y final del mantenimiento. 14. Beneficios netos que supone el cambio. Cualidades del Mantenimiento