• No se han encontrado resultados

Nombre de la asignatura: Reingeniería del software. Carrera: Ingeniería en Sistemas computacionales. Clave de la asignatura:

N/A
N/A
Protected

Academic year: 2021

Share "Nombre de la asignatura: Reingeniería del software. Carrera: Ingeniería en Sistemas computacionales. Clave de la asignatura:"

Copied!
7
0
0

Texto completo

(1)

1. DATOS DE LA ASIGNATURA

Nombre de la asignatura: Reingeniería del software

Carrera: Ingeniería en Sistemas computacionales

Clave de la asignatura:

Horas teóricas-horas prácticas: 3-2-8

2. HISTORIA DEL PROGRAMA

Lugar y fecha de

elaboración o revisión

Participantes

Observaciones

Instituto Tecnológico de

Tuxtepec

Academia de sistemas y

computación

b). Aportación 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 gestión de la

configuración del software, el mantenimiento y la reingeniería del software.

 Reconocerá los pasos qué hay que tener presente durante el proceso de construcción del

software con el fin de asegurar la calidad final, y no sólo eso, sino que también 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 relación con la calidad.

 Comprenderá que, aunque las actividades propuestas no suelen gustar, ya que se trata de

actividades más bien organizativas y de gestión, si no se realizan con rigor se provocan

muchos problemas.

Comprenderá que aunque estas actividades se consideran menos importantes que las

técnicas 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

explotación, 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 reingeniería del software.

 Aplicará los métodos, procesos y métricas de calidad de la Reingeniería del software.

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

El objetivo general de la asignatura es reflexionar sobre situaciones reales en torno a la

construcción de software y como afrontarlas para garantizar la calidad del software desarrollado,

entendiendo que un software de calidad, no tan sólo hace lo que tiene que hacer, sino que

también se tiene que desarrollar en el tiempo y presupuesto establecidos, dando total satisfacción

al cliente.

(2)

5.- TEMARIO

Unidad

Temas

Subtemas

1 Introducción a la reingeniería del software

1.1 Definición de reingeniería del software. 1.1.1 Crisis del software

1.2 Sistemas de información heredados 1.2.1 ¿Por qué aplicar la reingeniería del software?

1.2.2 ¿Qué implica la reingeniería?

1.2.3 Herramienta que utiliza la reingeniería 1.2.4 ¿Cómo se hace una reingeniería? 1.3 Costes y beneficios de la reingeniería 1.3.1 Justificación del proyecto de

reingeniería.

1.3.2 Análisis de la cartera de aplicaciones. 1.3.3 Estimación de costes.

1.3.4 Análisis de costos/beneficios.

2 Procesos de la reingeniería

del software

2.1 Procesos de la reingeniería del software 2.1.1 Análisis te Inventarios

2.1.2 Reestructuración de documentos 2.1.3 Ingeniería inversa

2.1.3.1 ¿Cuando utilizar la ingeniería inversa? 2.1.4 reestructuración de código

2.1.5 Reestructuración de datos 2.1.6 Ingeniería progresiva

2.2 Desarrollo de software con y para reusó 2.2.1 Fases de la reingeniería del software 2.3 Reestructuración

2.3.1 Traducción del código fuente 2.3.2 Ingeniería inversa

2.3.3 Mejora de la estructura del programa 2.3.4 Modularización del programa

2,3.5 Reingeniería de datos

2.3.6 Reingeniería en el mantenimiento

3 Métodos y modelos de la

reingeniería del software

3.1 El método análisis de opciones para la reingeniería (“options análisis for

reingeneering “(OAR))

3.1.1Definición y Necesidad del Análisis de opciones para reingeniería

3.1.2 Actividades principales del método OAR 3.1.3 Tareas especializadas.

3.1.4 Estructura de Actividades

3.1.4.1 Ejemplo de actividad: establecimiento del contexto de extracción.

3.2 El modelo de herradura

3.2.1 Los tres niveles del modelo herradura 3.3 El modelo cíclico

3.3.1 Actividades del modelo cíclico.

4 Reconstrucción de la

arquitectura

4.1 El rol de la reconstrucción de la arquitectura.

4.2 Recomendaciones y fases para la reconstrucción de la arquitectura 4.2.1 Recomendaciones para la reconstrucción de arquitectura

(3)

4.2.2 Fases para la reconstrucción de la Arquitectura.

4.2.2.1 Extracción de la Información 42.2.2 Construcción de la base de datos. 4.2.2.3 Fusión de vistas.

4.2.2.4 Composición de vistas arquitectónicas.

5 Mantenimiento del software 5.1 Mantenimiento del software 5.2 Distribución del tiempo de vida del software

5.3 Tipos de mantenimiento

5.3.1Distribución del tiempo en tareas de mantenimiento

5.4 Tecnología de la reingeniería 5.4.1 Importancia de la reingeniería del software

5.4.2 Ingeniería directa 5.4.3Restructuración 5.4.4 Ingeniería inversa

5.4.4.1 Áreas en la ingeniería inversa 5. 5 Rediseño

5.5.1 Reingeniería del software 5.5.2 Otras tecnologías

5.6 Proceso de la reingeniería del software 5.6.1 Pasos de la reingeniería del software 5.6.2.1Analisis del código fuente

5.7. Tipos de métricas del producto 5.7.1 Análisis del código fuente

5.7.2 Métricas 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 Reestructuración

5.8.1Restructuración de datos, ventajas 5.8.2 Herramientas de reestructuración de datos

5.8.3 Reestructuración de procesos 5.8.4 Construcciones no permitidas en un programa estructurado

5.9 Lógica del programa

5.9.1 Beneficios de la reestructuración de código

5.9.2 Objetivo de la ingeniería inversa 5.9.3 Ingeniería inversa de datos 5.9.4 Ingeniería inversa de procesos

6 Caso de estudio 6.1 Definición del problema

6.2 Estudio del código y vialidad del producto 6.3 Eliminación de la Interfaz de usuario 6.4 Mejora de la estructura del programa 6.5 Modularización el programa y eliminación de redundancias (refactorización)

6.6 Traducción del código mejorado a C 6.7 Ingeniería inversa

(4)

6.9 Perfeccionamiento de la interfaz resultante

6.10 Integración de la interfaz de usuario con código de cálculo

6.- APRENDIZAJES REQUERIDOS



Conocer las bases de la programación para la construcción de software



Conocer y manejar al menos dos lenguaje de programación de diferente nivel.



Conocer los fundamentos para el desarrollo de sistemas.



Conocer conceptos básicos de la ingeniería del software.

7.- SUGERENCIAS DIDÁCTICAS



Propiciar la búsqueda y selección de información en diversas fuentes, sobre los métodos, procesos,

mantenimiento, reconstrucción y métricas de calidad de la reingeniería del software.



Propiciar el uso de terminología técnica de la reingeniería del software.



Seleccionar temas de la reingeniería del software para discusión en clase.



Realizar un caso de estudio practico donde implemente todos los conocimientos adquiridos de la

reingeniería del software.

8.- SUGERENCIAS DE EVALUACIÓN

Dar seguimiento al desempeño integral del estudiante en el desarrollo del programa (dominio

de los conceptos, capacidad de la aplicación de los conocimientos en problemas reales).

Participación en actividades individuales y de equipo.

Cumplimiento de los objetivos y desempeño en las prácticas.

Desarrollo un caso de uso práctico final que integre todas las unidades.

Exámenes escritos e investigaciones

9.- UNIDADES DE APRENDIZAJE

UNIDAD 1.-

Introducción a la Reingeniería del software.

Objetivo

Educacional

Actividades de

Aprendizaje

Actividades de

Aprendizaje Fuentes de

Información

El estudiante

Identificará la función de la

reingeniería del software y

¿el

porque

de

su

utilización?, sus costos y

beneficios.

1.1 Buscar, seleccionar y

evaluar

información

sobre

los

conceptos,

historia

e

introducción

de

la

reingeniería del software

1.2 Discutir en grupo, la

función y Beneficio de la

Ingeniería del Software.

(5)

UNIDAD 2.-

Procesos de la Reingeniería del software

Objetivo

Educacional

Actividades de

Aprendizaje

Actividades de

Aprendizaje Fuentes de

Información

Conocerá las fases y

procesos de la reingeniería

del software que mejoran

la

comprensión

del

software e incrementan la

facilidad de mantenimiento

del mismo.

2.1 Buscar información

sobre los modelos y fases

de la reingeniería del

software

2.2 Analizar, por equipo

las fases, y procesos de la

reingeniería del software.

.

1, 2, 3, 4…28

UNIDAD 3.-

Métodos y modelos de la Reingeniería del Software

Objetivo

Educacional

Actividades de

Aprendizaje

Actividades de

Aprendizaje Fuentes de

Información

Reconocerá las diferentes

metodologías

de

la

reingeniería del software

para la remodelación de

aplicaciones antiguas que

siguen siendo útiles pero

se desea sean mas fáciles

de mantener y se adapten

a soportes de software

mas

evolucionados

y

modernos.

.

3.1 Investigar y analizar

las

diferentes

metodologías

de

la

reingeniería del software.

3.2 Explicar por equipos,

mediante exposición, las

ventajas y desventajas de

una y otra metodología.

3.3 Elaboración de cuadro

comparativo

de

metodologías en clase.

1, 2, 3, 4…28

UNIDAD 4.-

Reconstrucción de la arquitectura.

Objetivo

Educacional

Actividades de

Aprendizaje

Actividades de

Aprendizaje Fuentes de

Información

Conocerá los métodos,

técnicas y herramientas que puedan proporcionar una

solución global al

mantenimiento.

4.1 comprender en clases

cada uno de los métodos y

técnicas que sirven para la

construcción

de

una

arquitectura.

4.2 investigar en fuentes

de consulta o medios de

Internet las herramientas

de

mantenimiento

disponibles en el mercado.

(6)

UNIDAD 5.-

Mantenimiento del software.

Objetivo

Educacional

Actividades de

Aprendizaje

Actividades de

Aprendizaje Fuentes de

Información

Identificará los tipos de

mantenimientos,

herramientas, tecnologías,

modelos de calidad y

criterios, que garantizan la

mejora y calidad de un

programa.

5.1 Exponer e investigar

en equipo los tipos de

mantenimientos,

tecnologías y métricas de

calidad de la reingeniería

del software.

5.2

I

dentificará los principios básicos para definir modelos de calidad.

1, 2, 3, 4…28

UNIDAD 6.-

Caso de estudio.

Objetivo

Educacional

Actividades de

Aprendizaje

Actividades de

Aprendizaje Fuentes de

Información

Definirá un problema como

caso de estudio, y

mejorara una aplicación ya

existente donde aplicará

todos los conocimientos

adquiridos.

6.1 Desarrollará un

proyecto final donde lleve

a la práctica toda la teoría

analizada de la

reingeniería del software.

1, 2, 3, 4…28

10. FUENTES DE INFORMACIÓN

1. Ian Sommerville: Ingeniería de Software. 6ª. Edición. 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 Klösch. 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., Klösch, R., Mittermeir, R.: Object-Oriented re-architecturing. 5th European Software Engineering Conference (ESEC’95), September 1995, Sitges, Spain,. Lecture Notes in Computer Science 989, 1995, 499-519.

8. Jacobson, I., Lindström, 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, 28–35.

(7)

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 Für Informatik, Technische Universität München, 1998.

12. Moreno, M.N., González, 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., Martínez, M.A. y Nistal, C.: Mantenimiento del software: Modelos, técnicas y métodos para la gestión 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 Practitioner’s Approach. Fifth Edition. McGraw-Hill. 2001.

Metodología de Reingeniería del Software para la remodelación de aplicaciones científicas 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.: Construcción de especificaciones de interfaces en un proceso de reingeniería, en: 2da. Conferencia Iberoamericana en Sistemas, Cibernética e Informática 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 pág.

25. MORRIS, Daniel. "Reingeniería: Cómo aplicarla con éxito en los negocios". Mc Graw Hill, 1994.282 páginas.

26. PRIDE, William. "Marketing: Concepto y estrategias". 9na edición. McGraw Hill. 1997. 877 pág. 27. TROUT, Jack. "Posicionamiento". Mc Graw Hill, 1986. 263 páginas.

28. WILSON, Bud. Planeación y Desarrollo Comercial del Producto". Herrero Hermanos, México. 217 pág

29. Hammer Michael & Champy James. Reingeniería

11. PRÁCTICAS

El alumno desarrollará un proyecto final donde implementará los conocimientos adquiridos en la

materia de Ingeniería del software. Para lo cual necesitara el uso y manejo de dos lenguajes de

programación, de diferente nivel. Los cuales quedarán a consideración del Instituto Tecnológico de

Tuxtepec.

Referencias

Documento similar

E Clamades andaua sienpre sobre el caua- 11o de madera, y en poco tienpo fue tan lexos, que el no sabia en donde estaña; pero el tomo muy gran esfuergo en si, y pensó yendo assi

Sanz (Universidad Carlos III-IUNE): "El papel de las fuentes de datos en los ranking nacionales de universidades".. Reuniones científicas 75 Los días 12 y 13 de noviembre

(Banco de España) Mancebo, Pascual (U. de Alicante) Marco, Mariluz (U. de València) Marhuenda, Francisco (U. de Alicante) Marhuenda, Joaquín (U. de Alicante) Marquerie,

d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que

A raíz de esto, el objeto de estudio será los medios para el aprendizaje de Gestión de la Calidad de Software en la UCI y como campo de acción, el proceso

Proporcione esta nota de seguridad y las copias de la versión para pacientes junto con el documento Preguntas frecuentes sobre contraindicaciones y

[r]

Contraindicaciones: El uso de la mascarilla está contraindicado para los pacientes y los miembros de sus familias, profesionales sanitarios y compañeros de