Sunteți pe pagina 1din 7

1.

DATOS DE LA ASIGNATURA

Nombre de la asignatura: Reingeniera del software Carrera: Ingeniera en Sistemas computacionales Clave de la asignatura: Horas tericas-horas prcticas: 3-2-8
2. HISTORIA DEL PROGRAMA

Lugar y fecha de elaboracin o revisin Instituto Tecnolgico de Tuxtepec

Participantes Academia de sistemas y computacin

Observaciones

b). Aportacin de la asignatura al perfil del egresado

El alumno conocer las actividades del proceso de software que tienen una importancia vital para conseguir producir software de calidad: asegurar la calidad, la gestin de la configuracin del software, el mantenimiento y la reingeniera del software. Reconocer los pasos qu hay que tener presente durante el proceso de construccin del software con el fin de asegurar la calidad final, y no slo eso, sino que tambin aprender qu hay que hacer para que esta calidad se mantenga durante toda la vida til del software. Entender qu es el proceso de software y su relacin con la calidad. Comprender que, aunque las actividades propuestas no suelen gustar, ya que se trata de actividades ms bien organizativas y de gestin, si no se realizan con rigor se provocan muchos problemas. Comprender que aunque estas actividades se consideran menos importantes que las tcnicas y las herramientas de desarrollo, son imprescindibles para garantizar la calidad del producto. El alumno tratar el tema del mantenimiento del software. Los sistemas, una vez en explotacin, siguen cambiando ya que hay que hacer mejoras, adaptaciones y correcciones y por tanto, hay que velar a fin de que estos cambios se hagan siempre preservando la calidad del sistema. Presentaremos un caso especial de mantenimiento preventivo que se conoce como reingeniera del software. Aplicar los mtodos, procesos y mtricas de calidad de la Reingeniera del software.

4.- OBJETIVO(S) GENERAL(ES) DEL CURSO

El objetivo general de la asignatura es reflexionar sobre situaciones reales en torno a la construccin de software y como afrontarlas para garantizar la calidad del software desarrollado, entendiendo que un software de calidad, no tan slo hace lo que tiene que hacer, sino que tambin se tiene que desarrollar en el tiempo y presupuesto establecidos, dando total satisfaccin al cliente.

5.- TEMARIO Unidad 1 Temas Introduccin a la reingeniera del software Subtemas 1.1 Definicin de reingeniera del software. 1.1.1 Crisis del software 1.2 Sistemas de informacin heredados 1.2.1 Por qu aplicar la reingeniera del software? 1.2.2 Qu implica la reingeniera? 1.2.3 Herramienta que utiliza la reingeniera 1.2.4 Cmo se hace una reingeniera? 1.3 Costes y beneficios de la reingeniera 1.3.1 Justificacin del proyecto de reingeniera. 1.3.2 Anlisis de la cartera de aplicaciones. 1.3.3 Estimacin de costes. 1.3.4 Anlisis de costos/beneficios. 2.1 Procesos de la reingeniera del software 2.1.1 Anlisis te Inventarios 2.1.2 Reestructuracin de documentos 2.1.3 Ingeniera inversa 2.1.3.1 Cuando utilizar la ingeniera inversa? 2.1.4 reestructuracin de cdigo 2.1.5 Reestructuracin de datos 2.1.6 Ingeniera progresiva 2.2 Desarrollo de software con y para reus 2.2.1 Fases de la reingeniera del software 2.3 Reestructuracin 2.3.1 Traduccin del cdigo fuente 2.3.2 Ingeniera inversa 2.3.3 Mejora de la estructura del programa 2.3.4 Modularizacin del programa
2,3.5 Reingeniera de datos 2.3.6 Reingeniera en el mantenimiento 3.1 El mtodo anlisis de opciones para la reingeniera (options anlisis for reingeneering (OAR)) 3.1.1Definicin y Necesidad del Anlisis de opciones para reingeniera 3.1.2 Actividades principales del mtodo OAR 3.1.3 Tareas especializadas. 3.1.4 Estructura de Actividades 3.1.4.1 Ejemplo de actividad: establecimiento del contexto de extraccin. 3.2 El modelo de herradura 3.2.1 Los tres niveles del modelo herradura 3.3 El modelo cclico 3.3.1 Actividades del modelo cclico. 4.1 El rol de la reconstruccin de la arquitectura. 4.2 Recomendaciones y fases para la reconstruccin de la arquitectura 4.2.1 Recomendaciones para la reconstruccin de arquitectura

Procesos de la reingeniera del software

Mtodos y modelos de la reingeniera del software

Reconstruccin de la arquitectura

Mantenimiento del software

Caso de estudio

4.2.2 Fases para la reconstruccin de la Arquitectura. 4.2.2.1 Extraccin de la Informacin 42.2.2 Construccin de la base de datos. 4.2.2.3 Fusin de vistas. 4.2.2.4 Composicin de vistas arquitectnicas. 5.1 Mantenimiento del software 5.2 Distribucin del tiempo de vida del software 5.3 Tipos de mantenimiento 5.3.1Distribucin del tiempo en tareas de mantenimiento 5.4 Tecnologa de la reingeniera 5.4.1 Importancia de la reingeniera del software 5.4.2 Ingeniera directa 5.4.3Restructuracin 5.4.4 Ingeniera inversa 5.4.4.1 reas en la ingeniera inversa 5. 5 Rediseo 5.5.1 Reingeniera del software 5.5.2 Otras tecnologas 5.6 Proceso de la reingeniera del software 5.6.1 Pasos de la reingeniera del software 5.6.2.1Analisis del cdigo fuente 5.7. Tipos de mtricas del producto 5.7.1 Anlisis del cdigo fuente 5.7.2 Mtricas para medir el factor facilidad de mantenimiento 5.7.3 Criterios de calidad 5.7.4 Modelos normativos de calidad 5.7.5 Grafico de criterios 5.8 Reestructuracin 5.8.1Restructuracin de datos, ventajas 5.8.2 Herramientas de reestructuracin de datos 5.8.3 Reestructuracin de procesos 5.8.4 Construcciones no permitidas en un programa estructurado 5.9 Lgica del programa 5.9.1 Beneficios de la reestructuracin de cdigo 5.9.2 Objetivo de la ingeniera inversa 5.9.3 Ingeniera inversa de datos 5.9.4 Ingeniera inversa de procesos 6.1 Definicin del problema 6.2 Estudio del cdigo y vialidad del producto 6.3 Eliminacin de la Interfaz de usuario 6.4 Mejora de la estructura del programa 6.5 Modularizacin el programa y eliminacin de redundancias (refactorizacin) 6.6 Traduccin del cdigo mejorado a C 6.7 Ingeniera inversa 6.8 Diseo de la nueva interfaz de usuario

6.9 Perfeccionamiento de la interfaz resultante 6.10 Integracin de la interfaz de usuario con cdigo de clculo

6.- APRENDIZAJES REQUERIDOS Conocer las bases de la programacin para la construccin de software Conocer y manejar al menos dos lenguaje de programacin de diferente nivel. Conocer los fundamentos para el desarrollo de sistemas. Conocer conceptos bsicos de la ingeniera del software. 7.- SUGERENCIAS DIDCTICAS Propiciar la bsqueda y seleccin de informacin en diversas fuentes, sobre los mtodos, procesos, mantenimiento, reconstruccin y mtricas de calidad de la reingeniera del software. Propiciar el uso de terminologa tcnica de la reingeniera del software. Seleccionar temas de la reingeniera del software para discusin en clase. Realizar un caso de estudio practico donde implemente todos los conocimientos adquiridos de la reingeniera del software. 8.- SUGERENCIAS DE EVALUACIN Dar seguimiento al desempeo integral del estudiante en el desarrollo del programa (dominio de los conceptos, capacidad de la aplicacin de los conocimientos en problemas reales). Participacin en actividades individuales y de equipo. Cumplimiento de los objetivos y desempeo en las prcticas. Desarrollo un caso de uso prctico final que integre todas las unidades. Exmenes escritos e investigaciones

9.- UNIDADES DE APRENDIZAJE UNIDAD 1.- Introduccin a la Reingeniera del software. Objetivo Educacional El estudiante Identificar la funcin de la reingeniera del software y el porque de su utilizacin?, sus costos y beneficios. Actividades de Aprendizaje Fuentes de Informacin 1.1 Buscar, seleccionar y 1, 2, 3, 428 evaluar informacin sobre los conceptos, historia e introduccin de la reingeniera del software 1.2 Discutir en grupo, la funcin y Beneficio de la Ingeniera del Software. Actividades de Aprendizaje

UNIDAD 2.- Procesos de la Reingeniera del software Objetivo Educacional Conocer las fases y procesos de la reingeniera del software que mejoran la comprensin del software e incrementan la facilidad de mantenimiento del mismo. Actividades de Aprendizaje Fuentes de Informacin 2.1 Buscar informacin 1, 2, 3, 428 sobre los modelos y fases de la reingeniera del software 2.2 Analizar, por equipo las fases, y procesos de la reingeniera del software. . Actividades de Aprendizaje

UNIDAD 3.- Mtodos y modelos de la Reingeniera del Software Objetivo Educacional Reconocer las diferentes metodologas de la reingeniera del software para la remodelacin de aplicaciones antiguas que siguen siendo tiles pero se desea sean mas fciles de mantener y se adapten a soportes de software mas evolucionados y modernos. . Actividades de Aprendizaje Fuentes de Informacin 3.1 Investigar y analizar 1, 2, 3, 428 las diferentes metodologas de la reingeniera del software. 3.2 Explicar por equipos, mediante exposicin, las ventajas y desventajas de una y otra metodologa. 3.3 Elaboracin de cuadro comparativo de metodologas en clase. Actividades de Aprendizaje

UNIDAD 4.- Reconstruccin de la arquitectura. Objetivo Educacional


Conocer los mtodos, tcnicas y herramientas que puedan proporcionar una solucin global al mantenimiento.

Actividades de Aprendizaje Fuentes de Informacin 4.1 comprender en clases 1, 2, 3, 428 cada uno de los mtodos y tcnicas que sirven para la construccin de una arquitectura. 4.2 investigar en fuentes de consulta o medios de Internet las herramientas de mantenimiento disponibles en el mercado.

Actividades de Aprendizaje

UNIDAD 5.- Mantenimiento del software. Objetivo Educacional Identificar los tipos de mantenimientos, herramientas, tecnologas, modelos de calidad y criterios, que garantizan la mejora y calidad de un programa. Actividades de Aprendizaje 5.1 Exponer e investigar en equipo los tipos de mantenimientos, tecnologas y mtricas de calidad de la reingeniera del software. 5.2 Identificar los principios bsicos para definir modelos de calidad. Actividades de Aprendizaje Fuentes de Informacin 1, 2, 3, 428

UNIDAD 6.- Caso de estudio. Objetivo Educacional Definir un problema como caso de estudio, y mejorara una aplicacin ya existente donde aplicar todos los conocimientos adquiridos. Actividades de Aprendizaje 6.1 Desarrollar un proyecto final donde lleve a la prctica toda la teora analizada de la reingeniera del software. Actividades de Aprendizaje Fuentes de Informacin 1, 2, 3, 428

10. FUENTES DE INFORMACIN


1. Ian Sommerville: Ingeniera de Software. 6. Edicin. Addison Wesley. 2. Arnold, R.S.: Software Reengineering. IEEE Computer Society Press, 1993. 3. Beck, J. and Eichmann, D.: Program and interface slicing for reverse engineering. In R.C. Waters and E.J. Chikosfsky, editors, Working Conference on Reverse Engineering, IEEE Computer Society Press. 1993, 54-63. 4. Biggerstaff T. and Perlis A.: Software Reusability. Addison-Wesley. November, 1990. 5. Chikofsky, E.J. and Cross, J.H.: Reverse engineering and design recovery: A taxonomy.IEEE Software. 7(1), 1990, 13-17. 6. Gall, H. and Klsch. R.: Finding Objects in Procedural Programs: An Alternative Approach. In Proceeding of the Second Working Conference on Reverse Engineering, Toronto, Canada. IEEE Computer Society Press, July 1995. 208-216. 7. Gall, H., Klsch, R., Mittermeir, R.: Object-Oriented re-architecturing. 5th European Software Engineering Conference (ESEC95), September 1995, Sitges, Spain,. Lecture Notes in Computer Science 989, 1995, 499-519. 8. Jacobson, I., Lindstrm, F.: Re-engineering of old system to an object-oriented architecture. ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages and Applications, Phoenix, Arizona, October 1991, 340-350. 9. Jones, C.: The economics of Object-Oriented Software, American Programmer, vol. 7, n 10, October 1994, 2835.

10. Landis L.D.; Hyland, P.M.; Gilbert, A.L. and Fine, A.J.: Documentation in a software maintenance environment. In Proceeding of the IEEE Conference on Software Maintenance. IEEE Computer Society 1998, 66-73. 11. Linos, P.K., Molterer S., Paech B. and Salzmann C.: Re-engineering for Reuse: Integrating reuse techniques into the reengineering process. Technical report TUM-INFO-11-I9824-100 Intitut Fr Informatik, Technische Universitt Mnchen, 1998. 12. Moreno, M.N., Gonzlez, J.L., Arco M.A. and Casado, J.: Determination of macroscopic thermodynamic ionization constants at variable ionic strenght by an optimization algorithm. Computers and Chemistry, 14, 1990, 165-168. 13. Murphy G. C., Notkin D. and Lan E.S.: An empirical study of static call graph extractors. Technical Report 95-08-01, Department of Computer Science and Engineering, University of Washington. 1995. 14. Piattini, M., Villalba, J., Ruiz, F., Bastanchury, T., Polo, M., Martnez, M.A. y Nistal, C.: Mantenimiento del software: Modelos, tcnicas y mtodos para la gestin del cambio. Rama,noviembre de 2000. 15. Postema M. and Schimidt, H.W.: Reverse Engineering and Abstraction of Legacy Systems. Informatica: An International Journal of Computing and Informatics. Vol 22 n 3, 1998, 359-371. 16. Pressman, R.S.: Software Engineering: A Practitioners Approach. Fifth Edition. McGraw-Hill. 2001. Metodologa de Reingeniera del Software para la remodelacin de aplicaciones cientficas heredadas DPTOIA-IT- 16 17. Rugaber, S. and Clayton, R.: The representation problem in reverse engineering. In Proceedings of the working Conference in Reverse Engineering, Baltimore, Maryland.IEEE Computer Society, May 1993. 8-16. 18. Rugaber, S. and Will L.M.: Creating a research infrastructure for reengineering. In 3rd Working Conference on Reverse Engineering. IEEE Computer Society Press, September 1996, 120-130. 19. Sametinger, J.: Software engineering with reusable components, Springer-Verlag, 1997. 20. SICUMA, Grupo. Leiva, J.: Construccin de especificaciones de interfaces en un proceso de reingeniera, en: 2da. Conferencia Iberoamericana en Sistemas, Ciberntica e Informtica CISCI 2003, Orlando (Florida)-EEUU. 21. Sommerville, I.: Software Engineering. Sixth edition. Addison Wesley, 2001. 22. Ulrich, W. M.: The evolutionary growth of software reengineering and the decade ahead. American Programmer, 3(10), 1990,14-20. 23. Weiser M.: Program Slicing. In IEEE Transactions on Software Engineering, IEEE Computer Society, July 1984, 352-357. 24. "Innovation in Marketing". McGraw Hill. 203 pg. 25. MORRIS, Daniel. "Reingeniera: Cmo aplicarla con xito en los negocios". Mc Graw Hill, 1994.282 pginas. 26. PRIDE, William. "Marketing: Concepto y estrategias". 9na edicin. McGraw Hill. 1997. 877 pg. 27. TROUT, Jack. "Posicionamiento". Mc Graw Hill, 1986. 263 pginas. 28. WILSON, Bud. Planeacin y Desarrollo Comercial del Producto". Herrero Hermanos, Mxico. 217 pg 29. Hammer Michael & Champy James. Reingeniera

11. PRCTICAS El alumno desarrollar un proyecto final donde implementar los conocimientos adquiridos en la materia de Ingeniera del software. Para lo cual necesitara el uso y manejo de dos lenguajes de programacin, de diferente nivel. Los cuales quedarn a consideracin del Instituto Tecnolgico de Tuxtepec.

S-ar putea să vă placă și