Download Fundamentacion (PPT mas argumentado)

Document related concepts
Transcript
Programando Orientado a Objetos
desde Cero con C# y .NET
MSc. Roger Pérez Chávez
Jefe Departamento de Informática
[email protected]
[email protected]
Dr. C. Julio A. Telot González
Decano Facultad de Informática
[email protected]
Universidad de Matanzas, Cuba
Paradigmas para un primer curso
de programación (! = uso)
1. Imperativo procedural !!!!!!!!!!!!!!!!!..!
2. Funcional !!
3. Orientado a Objetos (OO) !!!!!!!
Fundamentación OO primero (1)
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.
Fundamentación OO primero (2)
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!”
Fundamentación OO primero (3)
Seventh Workshop on Pedagogies and Tools
for Learning Object-Oriented Concepts
1.
2.
3.
4.
5.
6.
OOPSLA'97
ECOOP'98
OOPSLA'99
ECOOP'00
OOPSLA
ECOOP '02
• Proyectos de curso
• Ejemplos de clase
• Objetos primero
• Herramientas
y
entornos
¿Por qué no se ha generalizado?
(1)
• !¡¡¡¡¡¡¡¡¡ El qué está claro !!!!!!!!!!
Las justificaciones son convincentes.
• ¿¿¿¿¿¿¿¿¿ El cómo ????????
Las propuestas no convencen.
¿Por qué no se ha generalizado?
(2)
“Aprendiendo Java 2.0 en 21 Días”
R. Cadenhead et al.
“… la POO se parece mucho a la cerveza…. A la mayoría
de la gente que la prueba por primera vez no le gusta, y
podría cuestionar la salud mental de quienes cuentan sus
alabanzas. Que te hice …---dirían--- para que me hicieras
beber esto? Algún tiempo después, sin embargo, se cultiva
un gusto por la cerveza en quienes continúan bebiéndola.
La POO como la cerveza, es un gusto que se adquiere con
el tiempo. Otro parecido de la POO con la cerveza: puede
provocar desorientación, causar náuseas y una visión
alterada del mundo”
¿Por qué no se ha generalizado?
(3)
Palabras de un colega sobre su primer encuentro
con la POO...
“La primera vez que escuché hablar de objetos fue
en el primer año de la carrera en una conferencia
fuera de curriculum a un profesor que se veía que
sabe muchísimo, pues hablaba del modelo de
objetos ...... pero yo NO ENTENDI NADA”
Nuestra propuesta
Programación Orientada a Objetos con C#
Parte I Introducción a la Programación
MSc. Roger Pérez Chávez (UMCC)
MSc. Antonio Fernández Orquín (UMCC)
Lic. Airel Pérez Suárez (UCI)
Lic. Raudel Hernández León (UCI)
Antecedentes
1. Evento COMAT 1995.
Dr. Miguel Katrib Mora (UH).
2. Experiencia de los autores.
3. Curso “.NET y Web Services”, UH, Enero,
2003.
4. Experiencia en la UMCC el semestre
anterior con C#.
Fundamentos de la propuesta (1)
Libro de texto estructurado en temas
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.
Fundamentos de la propuesta (2)
Temas desarrollados en capítulos
Tema 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.
Fundamentos de la propuesta (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.
Fundamentos de la propuesta (4)
Desarrollo teórico Capítulo I.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 ...
Fundamentos de la propuesta (5)
Desarrollo teórico Capítulo I.1.
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.
Fundamentos de la propuesta (6)
Desarrollo teórico Capítulo I.1.
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.
Fundamentos de la propuesta (7)
Desarrollo teórico Capítulo I.1.
Desarrollo del ejemplo:
Clasificación
Niño
Objetos
alejandro
Mamá
gloria
...
...
Responsabilidades
Nombre
Edad
Juguetes
...
Nombre
Dormir al niño
...
...
Fundamentos de la propuesta (8)
Desarrollo teórico Capítulo I.1.
Conceptos que se formalizan a través de otras
preguntas y ejemplos a partir de la situación de
análisis:
•
•
•
•
•
•
Clase y Objeto.
Diseño dirigido por responsabilidades.
Relaciones entre clases. Diagramas de clases.
Clasificación de los atributos.
Encapsulamiento.
Mensajes y métodos. Definición de Algoritmo.
Fundamentos de la propuesta (9)
Caso de estudio Capítulo I.1.
Situación de análisis
Imagínese una sesión de entrenamiento de la preselección
nacional de atletismo donde se desea realizar pruebas de
control a los atletas en las respectivas especialidades ...
De los atletas se registrará el nombre, apellidos, carné de
identidad, especialidad y tiempo marcado en el control. El
tiempo se mide con un equipo electrónico que funciona de
manera similar a un cronómetro.
Un entrenador puede entrenar a más de un atleta, de los
entrenadores se conoce el nombre y además son
responsables de analizar la inclusión o no de los atletas en el
equipo nacional de acuerdo al tiempo que hagan
Fundamentos de la propuesta (10)
Ejercicios Capítulo I.1.
Situación
de análisis de análisis que se presenta a
Para la situación
Imagine una tienda que se dedica a vender artículos de
continuación, realice un desarrollo similar a los que
vestir, específicamente camisas, zapatos y pantalones. De
se
hacen
para
las
situaciones
de
análisis
que
se
la venta de los artículos se encarga el dependiente,
presentan
travéspara
del presente
persona queatrabaja
la tienda ycapítulo
se ocupa de atender a
los clientes. Particularmente se desea tratar de simular las
acciones que realiza el dependiente de la tienda cuando
se le solicita información de los artículos en venta.
En este caso el dependiente tiene que ser capaz de
informar acerca del precio, talla, color y otras
características (para las camisas mangas cortas o largas
por ejemplo, para los zapatos si tienen cordones, etc.) de
un determinado artículo que le soliciten los clientes.
Fundamentos de la propuesta (11)
Bibliografía complementaria Capítulo I.1.
Capítulos 1 y 2 de Introducción a la Programación
Orientada a Objetos, T. Budd, Addison-Wesley
Iberoamericana, 1994.
Estado actual de la propuesta
• Utilizar el texto y el enfoque subyacente en el presente
semestre en dos grupos de la UMCC y cuatro de la UCI.
• Tema II, profundizar en la parametrización de los
métodos, tipos de parámetros, primeras nociones del
análisis descendente y las enumeraciones.
• Tema III, profundizar sobre el análisis descendente, la
implementación de las relaciones de asociación y
agregación y la determinación de secuencias
intermedias.
• Tema V, incorporar elementos complementarios sobre
como documentar los códigos y por ende presentar
elementos de XML y atributos.
Trabajo futuro
Complementar en texto
Programación Orientada a Objetos con C#
Parte I Introducción a la Programación
• Parte II Profundizando en el modelo de
objetos.
• Parte III Estructuras de Datos.
Parte I + Parte II + Parte III = Tesis Doctorado
“Enseñanza de la Programación con un
enfoque de Sistema y Orientado a Objetos”
.NET
.NET: The Programmer's Perspective
A Workshop of ECOOP 2003, July 22, 2003
Goals of the workshop
.NET technology presently attracts much attention in the OO
community.
We want to offer a forum for discussion of pros and cons.
Evolución hacia .NET (1)
Evolución de los modelos de programación:
• Mainframe\minicomputadoras
• Desktops PCs.
• Redes y paradigma de programación distribuida:
dos niveles (Cliente-Servidor)
tres niveles, introduciéndose un nivel intermedio
CORBA, DCOM, RMI
Evolución hacia .NET (2)
Evolución de Internet:
•
Primera generación: páginas estáticas con contenido
pasivo, aparecen entonces los primeros estándares
(HTML) y navegadores (Netscape).
•
Segunda generación: boom de Java, lenguajes de script
y conexión a Bases de Datos. Páginas dinámicas y
aparecen tecnologías como Microsoft ASP y Java JSP,
primeras herramientas para desarrollar páginas Web.
•
Tercera generación: Mayor interconexión y movilidad,
diferentes dispositivos entre los usuarios. No solo datos,
aparecen los servicios Web (Web Services).
Internet es el contexto de programación.
¿Qué ofrece .NET?
•
•
•
•
•
•
•
Integración uniforme y sin parches. Consistencia.
Bastaría un lenguaje .NET (por ejemplo, C#), y aprender
ASP .NET y XML.
Simplifica el desarrollo de aplicaciones.
Seguridad.
Componentes reusables y autodocumentados.
Diversos lenguajes generando un mismo lenguaje
intermedio.
Herramienta de desarrollo integrada a la Web. Visual
Studio .NET.
Fundamentos de .NET
Cuatro componentes principales que constituyen el
.NET Framework o Framework de .NET
Lenguajes de Programación (C#, C++, VB, ...)
Commom Language Specification
Asp .NET Web Forms
Windows Forms
ADO .NET y XML
Base Class Library
Commom Language Runtime
Objetivos del Framework (1)
• Entorno coherente de POO, los objetos se
pueden almacenar y ejecutar de forma local,
ejecutar de forma local pero distribuida en
Internet o ejecutar de forma remota.
• Simplificar el desarrollo. Infraestructura de
componentes (assemblies).
• Unificar los modelos de programación.
• Integración de los lenguajes.
Objetivos del Framework (2)
• Entorno coherente de POO, los objetos se
pueden almacenar y ejecutar de forma local,
ejecutar de forma local pero distribuida en
Internet o ejecutar de forma remota.
• Reducir la implementación de software y los
conflictos de versiones (infierno de las DLLs).
• Garantizar la ejecución segura del código.
• Coherencia entre tipos de aplicaciones muy
diferentes, como las basadas en Windows o en el
Web
Common Language Runtime (CLR)
Proporciona al código ejecutable un conjunto de servicios
del sistema operativo. Es el núcleo de la plataforma .NET
•
•
•
•
•
•
•
•
Modelo de programación consistente.
Modelo de programación sencillo.
Desaparece el “infierno de las DLLs”.
Ejecución multiplataforma.
Interoperabilidad.
Gestión de memoria.
Control de tipos.
Tratamiento de excepciones.
Componentes del CLR
• Microsoft Intermediate Language (MSIL, IL o
CIL). Fundamento de la interoperabilidad en los lenguajes
.NET
•
•
•
•
JIT Compiler.
Metadatos.
Ensamblados.
Common Type System (CTS)
Base Class Library (BCL)
• Está formada por cientos de tipos de datos (alrededor
de 4000 clases).
• Permite acceder a los servicios ofrecidos por el CLR y
a muchas funcionalidades necesarias a la hora de
escribir aplicaciones.
• Es posible crear nuevas clases que extiendan o usen su
funcionalidad y se integren a la perfección con el resto
de las clases de la BCL.
• Está escrita en código IL, puede usarse desde cualquier
lenguaje compatible con .NET.
• Organización de las clases en espacios de nombres.
Otras tecnologías
• Windows Forms.
• Asp .NET Web Forms.
• ADO .NET y XML.
Common Language Specification (CLS)
• Reglas que han de seguir las definiciones de
tipos que se hagan usando un determinado
lenguaje .NET si se desea que sean accesibles
desde
cualquier
otro
lenguaje
.NET
(complemento de la interoperabilidad).
• Los tipos de datos básicos admitidos son bool,
char, byte, short, int, long, float,
double, string y object.
• Las tablas han de tener una o más dimensiones, y
el número de dimensiones de cada tabla ha de ser
fijo. Además, han de indexarse empezando a
contar desde 0
C#
• Microsoft diseñó C# para aprovechar el nuevo entorno o
plataforma .NET. Su lenguaje de lujo.
• Lenguaje sencillo de aprender para los programadores
inexpertos.
• Permite desarrollar aplicaciones de forma rápida pero a
la vez con gran control.
• Integración con el desarrollo de aplicaciones Web, XML
y muchas de las tecnologías emergentes
• Combinación de las mejores ideas de lenguajes como
C/C++, Delphi (Object Pascal) y Java con las mejoras
de productividad de .NET.
• Lenguaje OO puro.
• Recolección automática de basura.
Muchas Gracias,
a su disposición
Roger Pérez Chávez
[email protected]
[email protected]
Julio A. Telot González
[email protected]