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
|