2.1.2 - Diseño Orientado a Objetos

Segundo Año

Característica del Área Curricular
Plan 2015
Cuatrimestre Primero
Hs. Cat. 60
Res. C.S. 291/2015

Presentación

La asignatura se ubica en el primer semestre del segundo año de la carrera. Esta actividad curricular inicia la formación del alumno en los conceptos y practicas del paradigma de orientación a objetos en el diseño y la programación.

El objetivo general es que esta introducción al paradigma siente las bases para el futuro aprendizaje en las materias Taller de Programación III y Taller de programación IV principalmente que utilizan lenguajes orientados a objetos

Objetivos

Presentar formalmente el paradigma de objetos, sus características, ventajas y aplicaciones dentro del desarrollo de sistemas de software. Introducir los conceptos de la programación y lenguajes orientados a objetos. Establecer metodologías de análisis y diseño orientados a objetos. Desarrollar prácticas completas sobre diseños con UML

Contenido Temático

Unidad I

La complejidad inherente al software, estructuras complejas, modelo de objetos. Fundamentos y elementos generales del modelo de objeto. Beneficios del modelo de objeto. Genealogía del paradigma y lenguajes orientados a objeto.

Unidad II

Conceptos básicos: clases y objetos. Atributos y métodos. Mensajes. Ciclo de vida. Asociaciones, relaciones y mapeos, cardinalidad. Las relaciones como tipos de objetos. Clasificación, especificación y generalización. Supertipos y Subtipos. Estados, cambios de estado, eventos internos y externos. Protocolos de objeto: Precondiciones y Postcondiciones. Composición de objetos. Constraints. Características de la OOP: Abstracción, Encapsulamiento, Modularidad, Herencia y Polimorfismo

Unidad III

Creación de objetos. Constructores. Instanciación. Llamada a métodos, parámetros. Objetos como parámetros. Implementación del Polimorfismo. Múltiples constructores. Sobrecarga de métodos. Enlace dinámico y estático. Tipos de datos. Estructura de objetos. Diseño de clases, interconexiones (coupling), código duplicado, diseño de funcionalidad de cada clase (responsability-driven). Cohesión de clases y métodos.

Unidad IV

Herencia. Definir una clase como extensión de otra. Herencia y jerarquía. Uso de la ambiguedad. Principio de la responsabilidad única. Principio abierto-cerrado. Principio de sustitución de Liskov. Principio de la inversión de la dependencia. Principio de segregación de interfaces. Variables polimórficas. Colecciones polimórficas. Conversiones(cast), clases “wrappers”. Tipos estáticos y dinámicos. Tipos predefinidos. Lenguajes híbridos.

Unidad V

Clases abstractas, métodos abstractos, interfaces, herencia múltiple. Análisis y diseño de clases e interfaces. Prototipos,. Patrones de diseño

Bibliografía

Diseño Orientado a Objetos - P. Ramis - Apunte de cátedra - 2015
Object-Oriented Methods: A foundation - J. Martin – J. Odell - Prentice Hall - 1995
Análisis y diseño orientado a objetos con aplicaciones - G. Booch - Addison Wesley - 1996
El lenguaje de Programación C++ - B. Strousptrup - Addison Wesley - 1998
Como programar C++ - P. Deitel – H. Deitel - Pearson - 2008
What is “Object-Oriented programming”? - B. Strousptrup - Paper - 1991

Correlatividades

Aula virtual y otros recursos web

Aula Virtual

Regresar al Plan de Estudios