Upload
oberon
View
31
Download
2
Embed Size (px)
DESCRIPTION
Curso Taller Programación Orientada a Objetos con C# MSc. Roger Pérez Chávez [email protected] Dr. C. Julio A. Telot González [email protected] Universidad de Matanzas, Cuba Agosto, 2004. Conceptos Básicos del Modelo de Objetos. Motivaci ó n (1). Situación de análisis - PowerPoint PPT Presentation
Citation preview
Curso TallerProgramación Orientada a Objetos con C#
MSc. Roger Pérez Chá[email protected]. C. Julio A. Telot Gonzá[email protected] de Matanzas, Cuba
Agosto, 2004
Conceptos Básicos del Modelo de Objetos.
Motivación (1)
Situación de análisis Un pequeño niño de dos años de edad puede decirle a su papá: estos son mis juguetes y señalar hacia un velocípedo, dos camiones y tres soldaditos, este es mi cepillo, etc. Incluso, en el carro de su papá (VW Golf año 85), es capaz de decirle que arranque, pite o ponga la música. De igual forma, al interrogársele, el niño dice su nombre (Alejandro) y el de sus padres (Gloria y Alexis).
Por lo general, llegada la hora de dormir, Alejandro le dice a su mamá: tengo sueño; entonces el receptor de este mensaje (mamá) se ocupa de dormir al niño y para ello debe llevar a
cabo una serie de acciones ...
Motivación (2)
Pregunta:
¿Por qué un niño es capaz de decir o hacer las cosas que se relacionan en la situación de análisis?
... porque desde edades muy tempranas los seres humanos son capaces de identificar y clasificar elementos o entidades (objetos) del mundo que le rodea. Incluso, de determinar las características y las funcionalidades (responsabilidades) de determinados elementos; así como relacionarse con el entorno y particularmente comunicarse con sus semejantes.
Objetivo
Caracterizar los conceptos básicos del Modelo Orientado a Objetos.
I. Fundamentos de la propuesta.
II. Estructura de la propuesta.
III. Conceptos básicos del Modelo Orientado a Objetos.
Temática
Fundamentos (1)
El enfoque tradicional o evolutivo es fruto de una visión equivocada del profesor que cree necesario enseñar la programación siguiendo el orden que él ha conocido los paradigmas.
B. Meyer
Fundamentos (2)1. Experiencia personal... el cliente
siempre tiene la razón.
2. Resultados aplicación encuesta.
3. “Why Procedural is the Wrong First Paradigm if OOP is the Goal”. J. Bergin. Pace University.
4. Referencia a Stroustrup.
5. “Introducción a la POO”. T. Budd.
6. Referencias de Budd.
Fundamentos (3)
7. “A Fondo C#”. T. Archer. advierte que si un estudiante ha
tenido alguna experiencia previa de programación pero no con el paradigma OO, debe estar prevenido:
“¡la experiencia anterior con otros lenguajes no OO no le servirá de mucho!”
Seventh Workshop on Pedagogies and Tools for Learning Object-Oriented Concepts
1. OOPSLA'972. ECOOP'983. OOPSLA'994. ECOOP'005. OOPSLA6. ECOOP '02
• Proyectos de curso
• Ejemplos de clase
• Objetos primero
• Herramientas y entornos
Fundamentos (4)
Estructura (1)Tema I: Secuenciación. Aplicaciones simples en modo consola.
Tema II: Análisis de casos. Encapsulamiento.
Tema III: Iteración. Arreglos.
Tema IV: Recursividad. Búsqueda y Ordenamiento.
Tema V: Apéndices.
Estructura (2)
Temas desarrollados en capítulosTema I: Secuenciación. Aplicaciones simples en modo consola.
Capítulo I.1: Introducción al modelo Orientado a Objetos.
Capítulo I.2: Implementación de clases en C#. Secuenciación.
Capítulo I.3: Aplicaciones simples en modo consola. Secuenciación.
Estructura (3)Capítulos desarrollados de forma homogénea.
Uso de elementos de la enseñanza problémica.• Desarrollo teórico a través de situaciones de
análisis, preguntas y ejemplos. Preparación de las conferencias.
• Casos de estudio. Autopreparación de los estudiantes.
• Ejercicios. Desarrollo de las clases prácticas.
• Bibliografía complementaria. Profundización.
Clases, Objetos, Responsabilidades (1)
Situación de análisis Un pequeño niño de dos años de edad puede decirle a su papá: estos son mis juguetes y señalar hacia un velocípedo, dos camiones y tres soldaditos, este es mi cepillo, etc. Incluso, en el carro de su papá (VW Golf año 85), es capaz de decirle que arranque, pite o ponga la música. De igual forma, al interrogársele, el niño dice su nombre (Alejandro) y el de sus padres (Gloria y Alexis).
Por lo general, llegada la hora de dormir, Alejandro le dice a su mamá: tengo sueño; entonces el receptor de este mensaje (mamá) se ocupa de dormir al niño y para ello debe llevar a
cabo una serie de acciones ...
Clases, Objetos, Responsabilidades (2)
Ejemplo:
Determinar algunos de los objetos que aparecen en la situación de análisis presentada con anterioridad y las responsabilidades que aparezcan de forma explícita.
Establezca además algún tipo de clasificación para los objetos hallados.
Clases, Objetos, Responsabilidades (3)
Desarrollo del ejemplo:
Clasificación Objetos Responsabilidades
Niño alejandro NombreEdadJuguetes...
Mamá gloria NombreDormir al niño...
... ... ...
Clases y Objetos (1)Los conceptos básicos del paradigma OO son clase y objeto. En el modelo OO se combina la estructura y el comportamiento de los datos en una única entidad, los objetos. Los objetos son simplemente entidades que tienen sentido en el contexto de una aplicación (dominio del problema).
Todos los objetos son ejemplares o instancias de alguna clase.
Clases y Objetos (2)
Los objetos con las mismas responsabilidades pueden ser agrupados en una clase.
Las clases son abstracciones que generalizan dominios de objetos.
Ejercicio:
Determinar los objetos presentes en un juego de ajedrez.
Diseño dirigido por responsabilidades
El comportamiento de los objetos se puede estructurar en términos de las responsabilidades de los mismos.
• Atributos
• Métodos
• Estado
Relaciones entre clases (1)
• La clase Niño tiene una responsabilidad que es “Cepillarse los dientes”, la cual es imposible realizar sin el uso de un objeto o instancia de una clase que se podría denominar Cepillo de dientes.
• alejandro (instancia de la clase Niño) es hijo de alexis (instancia de la clase Papá) y a su vez alexis es padre de alejandro.
• Aunque no se ha expresado explícitamente, las clases Niño, Mamá y Papá tienen responsabilidades comunes por lo que pueden a su vez ser agrupadas en una clase más general Persona.
Relaciones entre clases (2)
¿Existen las clases y los objetos de forma aislada?
• Dependencias
• Asociaciones
• Generalizaciones
Relaciones entre clases (3)
Diagrama de clases
Nombre de la clase
Atributos
Métodos
Responsabilidades
Relaciones entre clases (4)
Ejemplo de diagrama de clases
Niño
nombreedadjuguetes
CepillarDientesEncenderEfectoElectrodomésticoApagarEfectoElectrodoméstico
Relaciones entre clases (5)
La clase Niño tiene una responsabilidad que se ha denotado CepillarDientes, la cual es imposible de realizar sin el uso de un objeto o instancia de una clase que podríamos denominar CepilloDientes.
¿Qué tipo de relación se establece entre las clases Niño y CepilloDientes?
CepilloDientes…
Niño…
Relación de uso
Relaciones entre clases (6)
alejandro (instancia de la clase Niño) es hijo de alexis (instancia de la clase Papá) y a su vez alexis es padre de alejandro.
¿Qué tipo de relación se establece entre las clases Niño y Papá?
11..* hijo Niño Papá
Relación de asociación
Relaciones entre clases (7)
Aunque no se ha expresado explícitamente, las clases Niño, Mamá y Papá tienen responsabilidades comunes por lo que pueden a su vez ser agrupadas en una clase más general Persona.
¿Qué tipo de relación se establece entre las clases Niño, Mamá, Papá y Persona ?
Relaciones entre clases (8)
Relación de generalización
Persona
MamáNiño Papá
Clasificación de los atributos
¿Es posible clasificar los atributos de forma general?
Niño
cadena nombreentero edadreal pesológico tieneSueñoJuguete[] juguetes
...
Acceso a las responsabilidades de los objetos
<objeto>.<responsabilidad>
¿Cómo es posible obtener la edad del objeto alejandro?
alejandro.nombre
alejandro.CepillarDientes
alejandro.edad
Otros
Parametrización de los métodos
¿Cómo gloria (madre de ambos niños) podría dormir a alejandro y a carlos utilizando el método DormirNiño()?
gloria.DormirNiño(alejandro)
gloria.DormirNiño(carlos)
DormirNiño(Niño unNiño)
Encapsulamiento
consola.Imprimir(alejandro.nombre)
alejandro.nombre = “Jorge”
alejandro.edad = -5
Formas del aceso a las responsabilidades
Mensajes y métodos
Mensajes
alejandro ... mamá tengo sueño ...
gloria.DormirNiño(alejandro)
¿Cuál es el mecanismo de interacción entre los objetos?
Algoritmo (1)
1. preparar la leche2. echar la leche en el pomo3. cambiar de ropa al niño4. acostarlo 5. colocar la cabecita sobre la
almohada6. darle a tomar la leche 7. acostarse a su lado hasta que
se duerma
¿Cómo el objeto gloria satisface la demanda del objeto alejandro?
Algoritmo (2)
1. cambiar de ropa al niño2. acostarlo 3. colocar la cabecita sobre la
almohada4. preparar la leche5. echar la leche en el pomo6. darle a tomar la leche 7. acostarse a su lado hasta que
se duerma
Otra variante
Algoritmo (3)¿Qué características cumplen ambas secuencias de pasos que hacen posible que el niño se duerma?
• El número de acciones es finita.
• Todas las acciones son posibles de realizar, en este caso por gloria.
• El resultado esperado se obtiene en un tiempo finito.
Informalmente, una secuencia de pasos que cumpla con estas características recibe el nombre de algoritmo.
Algoritmo (4)
1. cambiar de ropa al niño2. acostarlo 3. colocar la cabecita sobre la
almohada4. acostarse a su lado hasta que
se duerma5. darle a tomar la leche 6. echar la leche en el pomo7. preparar la leche
No constituye un algoritmo
Conclusiones