Está en la página 1de 4

DIRECCIN GENERAL DE INSTITUTOS TECNOLGICOS 1.- DATOS DE LA ASIGNATURA.

Nombre de la asignatura : Evolucin del Software Carrera : Licenciatura en Informtica Clave de la asignatura : ISM-0707 Horas teora-Horas prctica-Crditos : 3-2-8 2. HISTORIA DEL PROGRAMA Lugar y fecha de elaboracin o Participantes revisin Instituto Tecnolgico de Academia de Informtica del Campeche Octubre-Noviembre Instituto Tecnolgico de 2006 Campeche

Observaciones (cambios y justificacin

3. U B I C A C I O N D E L A A S I G N A T U R A a) RELACION CON OTRAS ASIGNATURAS DEL PLAN DE ESTUDIOS ANTERIORES POSTERIORES ASIGNATURAS TEMAS ASIGNATURAS INTRODUCCIN A LA TODAS LAS UNIDADES INGENIERA DE SOFTWARE

TEMAS

b) APORTACION DE LA ASIGNATURA AL PERFIL DEL EGRESADO Resaltar los retos inherentes en la evolucin y mantenimiento de sistemas de software y proporcionar herramientas para realizar los cambios en el software de la mejor manera. 4. O B J E T IV O (S) G E N E R A L (ES) D E L C U R S O Mostrar una visin de los distintos aspectos que plantea la evolucin de un software, tanto desde el punto de vista del mantenimiento como de su mejora o incorporacin. 5. T E M A R I O TEMAS

NUM.

SUBTEMAS

INTRODUCCION

1.1 Ciclo de Vida del Software 1.2 Concepto de Evolucin de Software 1.3 Leyes en la Evolucin del Software SOFTWARE Y 2.1 Actividades en la Evolucin de Software 2.2 Tipos de Mantenimiento 2.3 Proceso de Mantenimiento 2.4 Tests de Software 2.5 Tcnicas RAD 3.1 Concepto de Reingeniera 3.2 Tipos de Reingeniera 3.3 Ingeniera Inversa con la Herramienta ROSE de Rational

II

EVOLUCION DEL MANTENIMIENTO

III

PROCESOS DE REINGENIERIA

IV

REUTILIZACIN EVOLUCION

DEL

SOFTWARE

Y 4.1 Concepto de Reutilizacin de Software 4.2 Tipos y Formas de Reutilizacin 4.3 Reutilizacin de Software y Evolucin 4.4 Reutilizacin de Componentes: COTS 4.5 Modelos de Componentes Y 5.1 Concepto de Arquitecturas de Software 5.2 Tipos de Arquitecturas 5.3 Evolucin en Arquitecturas 5.4 Evolucin de Productos Software. Variabilidad. Lneas y Familias de Productos 5.5 Mtodos de Reingeniera: MAP y OAR

ARQUITECTURAS EVOLUCION

DE

SOFTWARE

6. A P R E N D I Z A J E S R E Q U E R I D O S Conocimientos de Programacin, Anlisis y Diseo de Sistemas y Bases de Datos para poder analizar y determinar si es necesaria la evolucin del software. 7.- SUGERENCIAS DIDACTICAS Fomentar el trabajo colaborativo Definir las bases del anlisis y transformacin del software. Desarrollar anlisis de software. Disear y aplicar estrategias para resolver problemas de evolucin y mantenimiento de software. 8. SUGERENCIAS DE EVALUACION

Exmenes escritos, trabajos de investigacin, tareas Trabajos prcticos. Analizar un sistema de software para determinar los cambios que deberan realizarle.

NOTA: Los dos puntos anteriores debern ser elaborados y enriquecidos por la Academia en conjunto con el Departamento de Desarrollo Acadmico. 9.- UNIDADES DE APRENDIZAJE UNIDAD 1.- Introduccin Objetivo Educacional El estudiante conocer los fundamentos y la importancia de la evolucin del software, su ciclo de vida y sus leyes de evolucin. Actividades de Aprendizaje 1.1 Investigar el concepto de evolucin del software, sus leyes y su ciclo de vida. 1.2 Analizar un sistema de software para conocer sus condiciones. 1.3 Determinar si ese sistema necesita evolucionar. Fuentes de Informacin 1,2,3,4,5,8

UNIDAD 2.- Evolucin del software y mantenimiento

Objetivo Educacional El estudiante conocer las actividades a desarrollar para que el software evolucione o sea mantenido

Actividades de Aprendizaje

2.1 Investigar en que consiste la 2.2 2.3 2.4


evolucin del software y su mantenimiento. Investigar el proceso que se sigue para que el software sea mantenido.. Investigar y aplicar pruebas para el software. Investigar y aplicar tcnicas para mantener el software.

Fuentes de Informacin 2,3,4,5,6

UNIDAD 3.- Procesos de reingeniera Objetivo Educacional El estudiante aplicar los procesos de reingeniera para mejorar las capacidades y/o mantenibilidad del software Actividades de Aprendizaje 3.1 Investigar los conceptos y tipos de reingeniera. 3.2 Aplicar herramientas de reingeniera en un software. Fuentes de Informacin 7,8,9

UNIDAD 4.- Reutilizacin del software y evolucin Objetivo Educacional El estudiante conocer y aplicar herramientas para reutilizar y evolucionar software Actividades de Aprendizaje 4.1 Investigar el concepto de reutilizacin de software. 4.2 Investigar los tipos y forma de reutilizacin ms actualmente usados. 4.3 Aplicar tcnicas de reutilizacin a un software. Fuentes de Informacin 8,9,10,11

UNIDAD 5.- Arquitecturas de software y evolucin. Objetivo Educacional El estudiante conocer las arquitecturas del software y realizar evoluciones entre arquitecturas. Actividades de Aprendizaje 5.1 Investigar los conceptos de arquitectura de software. 5.2 Investigar los tipos de arquitecturas. 5.3 Investigar y aplicar tcnicas para evolucionar de una arquitetura a otra. Fuentes de Informacin 6,7,10

10. FUENTES DE INFORMACIN 1. T.K. Abdel-Hamid and S.E. Madnick (1991) Software Project Dynamics An Integrated Approach, Prentice Hall, Englewood Cliffs, NJ, 264.

2. Software Evolution and Feedback: Theory and Practice V.R. Basili, L. Briand, S. Condon, W. Melo and J. Valett (1996), Understanding and Predicting the Process of Software Maintenance Releases, 18th International Conference on Software Engineering, Berlin, Germany. 3. S. Cook, R. Harrison, M.M. Lehman and P. Wernick (2006), Evolution in Software Systems: Foundations of the SPE Classification Scheme, J. Softw. Maint. Evol., vol. 18, no. 1, pp. 135. 4. E.W. Dijkstra (1968a), A Constructive Approach to the Problem of Program Correctness, BIT, vol. 8, no. 3, 5. Structured Programming, Academic Press, pp. 182. E.W. Dijkstra (1972b), The Humble Programmer, ACM Turing Award Lecture, Commun. ACM, vol. 15, no. 10, Oct. 1972, pp. 859866. 6. K. El Eman, J.N. Drouin and W. Melo (1997), SPICE: The Theory and Practice of Software Process Improvement and Capability Determination, IEEE Computer Society Press, Los Alamitos, CA, p. 450. FEAST (2001), Feedback, Evolution And Software Technology, http://www.doc.ic.ac.uk/mml/feast/ <as of Oct. 2001> See also http://www.cs.mdx.ac.uk/staffpages/mml <as of Feb 2004> . 7. M. Fowler (1999), Refactoring: Improving the Design of Code, Addison-Wesley, New York. T. Gilb (1981), Evolutionary Development, ACM Softw. Eng. Notes, vol. 6, no. 2, April, 1981, p. 17. T. Gilb (1988), Principles of Software Engineering Management, Addison-Wesley, Wokingham, United Kingdom. 8. M.M. Lehman (1980), Program Life Cycles and Laws of Software Evolution, Proc. lEEE Spec. Iss. on Software. Eng., vol. 68, no. 9, Sept. 1980, pp. 10601076. 9. M.M. Lehman and J.F. Ramil (2000a), Towards a Theory of Software Evolution And its Practical Impact, in Katayama T, Tamai T and Yonezaki N, (eds.), invited talk, Proceedings ISPSE 2000, Kanazawa, Japan, IEEE Computer Society Press, Los Alamitos, CA, pp. 211. 10. M.M. Lehman and J.F. Ramil (2000b), Software Evolution in the Age of Component Based Software Engineering, IEE Softw., special issue on Component Based Software Engineering, vol. 147, no. 6, pp. 249 255; earlier version as Tech. Rep. 98/8, Imperial College, London, June 1998. 11. S. Zahran (1997), Software Process Improvement Practical Guidelines for Business Success, SEI Series in Software Engineering, Addison-Wesley, Harlow, England. 11. Prcticas 1 Identificar el ciclo de vida de algunos sistemas de software. PRCTICAS

2 Aplicar los tests y el proceso de mantenimiento a un sistema de software. 3 Aplicar alguna herramienta de reingeniera de software. 4 Desarrollar un estudio a un sistema de software para determinar si se pueden reusar algunos de sus componentes.