Sitio Web de Héctor E. Medellín Anaya

PRESENTACION

En la actualidad, es imprescindible para el desarrollo de software altamente funcional y competitivo tener conocimientos y experiencia en programación orientada a objetos e ingeniería de software. Estas técnicas son ampliamente utilizadas en los lenguajes de desarrollo visuales y de aplicación específica, como base de datos, matemáticas, diseño y multimedia.

OBJETIVO GENERAL

Estudiar y aplicar la programación orientada a objetos, desde el simple diseño de clases utilizando constructores, destructores, sobrecarga, herencia y polimorfismo, hasta el diseño de plantillas y el manejo de excepciones. Aprender los conceptos básicos de ingeniería de software y aplicarlos en la construcción de aplicaciones robustas.

INTRODUCCIÓN

Clases como estructuras de datos
Tipos de acceso privado y público
Constructores y destructores
Asignación dinámica de memoria para objetos
El apuntador this
Miembros estáticos
Separación de interface y la implementación en archivos distintos

SOBRECARGA DE OPERADORES

Sobrecarga de operadores unarios
Sobrecarga de operadores binarios
Sobrecarga de operadores de conversión de tipos (typecasting)
Restricciones de sobrecarga de operadores

HERENCIA

Clases base y clases derivadas
Tipo de acceso protegido
Sobrepaso de los métodos de una clase base en una clase derivada
Constructores y destructores de las clases derivadas
Diseño de software con herencia

FUNCIONES VIRTUALES Y POLIMORFISMO

Funciones virtuales
Clases base abstractas
Polimorfismo
Destructores virtuales

PLANTILLAS

Plantillas de función
Plantillas de clase
Parámetros constantes
Bibliotecas estándar de C++
Contenedores
Utilirías
Iteradores
Algoritmos
Diagnóstico
Cadenas
Entrada/Salida
Localización
Soporte
Numéricas
Conversión entre apuntadores a clases base y apuntadores a clases derivadas

MANEJO DE EXCEPCIONES

¿Qué es el manejo de excepciones y cuándo debe utilizarse?
Manejo básico de excepciones
Lanzamiento y atrapado de excepciones
Especificación de excepciones
Manejo de excepciones en constructores y destructores

INTRODUCCION A LA INGENIERIA DE SOFTWARE


Ciclo de vida del software
Prototipos
Diseño de aplicaciones con objetos
Introducción a herramientas CASE

METODOLOGIA

Se expondrá el material en el salón de clase con múltiples ejemplos funcionales en cada capítulo. Se recomienda evaluar mediante prácticas y proyectos, aunque es posible realizar uno o dos exámenes escritos sobre los conceptos principales del curso. Idealmente, se propondrá un proyecto final a realizar en equipos y en el que se apliquen todas las técnicas vistas.


Forma de calificar: Exámenes Parciales 30 %
Trabajos 30 %
Proyecto Final 40 %
Bibliografía

Introducción a la Programación orientada a objetos, Timothy Budd, Addison-Wesley Iberoamericana 1994.

Resolución de problemas con C++, El objetivo de la programación, Walter Savitch. Pearson Prentice-Hall, segunda edición. 1999.

The C++ programming language. Bjarne Stroustrup. Addison-Wesley. 1997.

Cómo Programar C++, 2ª Edición. Deitel y Deitel. Prentice Hall, 1999