La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Bases para la programación por objetos

Presentaciones similares


Presentación del tema: "Bases para la programación por objetos"— Transcripción de la presentación:

1 Bases para la programación por objetos
Teoría básica

2 ¿Qué es programar? Observe el siguiente diagrama…
Programar es concebir, diseñar, y probar estructuras lógicas para resolver problemas por medio de un computador. La programación puede visualizarse como un proceso cíclico. Observe el siguiente diagrama… Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

3 Ciclo de desarrollo de un programa
Análisis Sub-problemas Problema (Especificación) Diseño Soluciona? Prueba Representa? Especificación Ejecutable Implementación Compilación Programa fuente Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

4 ¿Por qué es importante la especificación del problema?
El objetivo final en la elaboración de programas es solucionar un problema de la vida real. La especificación del problema plantea cuál es el problema que se quiere resolver y cuáles son las características esperadas de una posible solución. La mayor parte de los proyectos de desarrollo de “software” fallan debido a que se producen programas sin tener aún claro el problema y los requerimientos que tiene el usuario quien necesita del mismo. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

5 ¿Qué es el análisis de un problema?
Es el proceso de descomposición del problema para comprenderlo en su totalidad. Frecuentemente un problema es descompuesto en sub-problemas de menor complejidad a los cuales también se les debe aplicar un proceso de análisis. El producto final del análisis es un modelo conceptual del problema. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

6 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.
¿Para qué diseñar? Al igual que es necesario contar con un “plano” antes de la construcción de un edificio, el diseño es necesario antes de iniciar la escritura de un programa. El producto que se obtiene luego de esta etapa es una especificación de las características estructurales y funcionales del programa que se quiere construir. En esta fase se define el “algoritmo” o “secuencia de pasos” necesarios para resolver un problema. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

7 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.
¿Qué es un algoritmo? Un algoritmo es la secuencia de pasos definidos para la resolución de un problema. Por ejemplo: El algoritmo de la derecha sirve para encontrar el mayor de tres números A, B y C, independientemente de los valores ¡Cuidado! Al hablar no confunda la palabra “Algoritmo” con la palabra “Logaritmo” las cuales no tienen relación alguna. 1) Compare A y B. 2) Si A es mayor o igual que B continúe con el paso 3 sino salte al 8 3) Compare A con C 4) Si A es mayor o igual que C ejecute el paso 5 sino salte al 6 5) A es el mayor 6) Sino 7) C es el mayor 8) Si B es mayor que A 9) Compare B con C 10) Si B es mayor o igual que C ejecute el paso 11 sino salte al 12 11) B es el mayor 12) Sino 13) C es el mayor Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

8 ¿Qué es la implementación?
Es el proceso de escritura de las instrucciones que va a ejecutar el programa, utilizando un lenguaje de programación. El producto de esta etapa es conocido como el “código fuente”, que consiste en instrucciones fáciles de leer por un humano. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

9 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.
¿Qué es la compilación? Es un proceso automático mediante el cual un programa conocido como “compilador” produce, a partir del código fuente, un programa ejecutable por el computador. Al producto de este proceso normalmente se le llama programa binario o ejecutable. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

10 ¿Qué es la etapa de pruebas?
Es el proceso mediante el cual se verifica que el programa funciona correctamente. En otras palabras, son las pruebas que debe pasar el programa para verificar que resuelve el problema inicial. Las pruebas deben diseñarse antes de iniciar con la etapa de programación o implementación. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

11 En cuanto a lo anterior vemos que programar no es solamente codificar
Muchos creen que programar es solamente codificar, y no se dan cuenta que programar es un proceso cíclico compuesto de varias etapas, que gira alrededor del problema que se quiere resolver. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

12 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.
Sin embargo… Existen diferentes “paradigmas” de programación. El más utilizado en la actualidad es el “paradigma de programación orientada a objetos” o P.O.O. Por lo tanto, en este curso se utiliza P.O.O. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

13 ¿Qué es programación por objetos?
La P.O.O. pretende modelar la realidad como una serie de objetos que se mezclan e interactúan entre sí. Todo el proceso de desarrollo de programas gira entonces alrededor de la noción de una realidad compuesta de objetos. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

14 ¿Cuál es el objetivo de la programación orientada a objetos?
Su objetivo fundamental es crear fragmentos de código fuente reutilizable ya que los mismos representarán objetos específicos. La programación por objetos permite crear programas modulares. Si se aplica correctamente, la P.O.O. facilita el mantenimiento y modificación de programas extensos. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

15 ¿Cómo podemos ver la realidad desde una perspectiva de objetos?
Un objeto puede tener características o “atributos” simples como su color, forma, altura, nombre o estar formado por la unión de otros objetos. Además podemos decir que los objetos pueden ser “manipulados” tanto para cambiarlos en alguna forma, o utilizarlos para que lleven a cabo “acciones” que pueden o no afectar a otros objetos en el medio en que se encuentran. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

16 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.
Mire alrededor… Siempre se pueden identificar características y acciones asociadas a los objetos que nos rodean. Ejemplos: María está hablando con Juan. Hay un libro que tiene páginas. Hay un lápiz amarillo que sirve para escribir. El televisor está encendido. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

17 Veamos ejemplos de atributos de objetos de la vida real…
Un televisor tiene atributos como su diámetro, tipo de pantalla, marca, peso, botón de encendido, controlador de funciones como cambiar canales y volumen. La persona a un nivel muy simplista puede ser vista como un objeto que tiene como atributos: nombre, lugar de nacimiento y fecha de nacimiento. Un objeto más simbólico como un punto cartesiano puede ser visto como un par ordenado compuesto por la coordenada “x” y la coordenada “y”. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

18 Acciones en objetos de la vida real
El televisor puede ser encendido, apagado, cambiado de canal, y se le puede subir y bajar el volumen. A una “persona” podemos preguntarle su nombre y su fecha de nacimiento. Un punto cartesiano puede ser utilizado para calcular la distancia con respecto a otro punto en el plano. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

19 Lo anterior lleva a la pregunta
¿Cómo podemos crear un modelo que represente a un objeto de la vida real? Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

20 ¿Cómo modelar un objeto?
Un objeto se puede representar como una composición de atributos y métodos. Método Atributos Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

21 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.
¿Qué es un atributo? Los atributos son las características propias del objeto. Por ejemplo: En un televisor tenemos. . . Diámetro: 27” Marca:“Panafonix” Pantalla: “plana” Peso: 28.5 Kg. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

22 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.
¿Qué es un método? Los métodos son las acciones que pueden llevar a cabo o modifican a un objeto. Por ejemplo: En un televisor tenemos. . . cambiarCanal encender apagar subirVolumen Diámetro: 27” Marca:“Panafonix” Pantalla: “plana” Peso: 28.5 Kg. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

23 ¿Cómo se pueden crear objetos?
Para crear objetos lo primero que hay que hacer es definir sus características en una especificación de “clase”. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

24 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.
¿Qué es una clase? Una clase es una descripción de las características generales que tienen en común un grupo especifico de objetos. Una clase es como un plano con el cual se construyen objetos de un tipo específico. Igual que con un plano de un edificio, se pueden crear diagramas de clases. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

25 ¿Cómo se puede hacer un diagrama de clases?
En los últimos años se ha generalizado el uso de un lenguaje simbólico para modelar clases conocido como UML. UML significa “Unified Modeling Language” o Lenguaje unificado para modelar Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

26 Diagramas de clase utilizando UML
En UML el diagrama de una clase muestra en la parte superior el nombre de la clase, más abajo aparecen los atributos y finalmente los métodos. Note el uso de los símbolos – , + y los paréntesis ( ) lo cual se explicará cuando sea pertinente. Nombre -atributo1 -atributo2 +método1( ) +método2( ) Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

27 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.
Como ya hemos visto… La clase Televisor define objetos con los siguientes atributos: diámetro, marca, pantalla, peso. Todo objeto de la clase Televisor puede llevar a cabo acciones como: encender, apagar, cambiar canal, subir volumen. Televisor -diámetro -marca -pantalla -peso +encender() +apagar() +cambiar canal() +subir volumen() Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

28 Otro caso de modelado de una clase
Se puede modelar al perro doméstico como un animal que tiene características o atributos como su raza, dueño, tamaño, peso, edad. Además puede llevar a cabo acciones como ladrar y morder. Perro -raza -dueño -tamaño -peso -edad +ladrar() +morder() ? Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

29 EJEMPLO 1 – Definición y modelado de clases
Ir al ejemplo

30 EJERCICIO 1 – Definición y modelado de clases
Ir al ejercicio

31 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.
¿Qué es una instancia? Diremos que una instancia es uno de los miembros específicos de una clase. Para crear una instancia se deben asignar valores específicos a los atributos de una clase. Igual que con las clases, las instancias se pueden diagramar utilizando UML. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

32 Diagramas de instancia en UML
Se puede contar con diagramas de objetos donde aparece más de una instancia de cada clase. Si no hay instancias de la clase solo aparece :Perro El diagrama de objetos es un vistazo al estado del sistema en un momento dado, por ejemplo luego de la inicialización. Por ejemplo, si tango es un perro en particular, tango : Perro Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

33 Instancia de Televisor
La instancia “miTele” es un Panafonix pantalla plana de 27 pulgadas, que pesa 28.5 Kg. miTele : Televisor -diámetro = 27 -marca = “Panafonix” -pantalla = “plana” -peso = 28.5 +encender() +apagar() +cambiar canal() +subir volumen() Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

34 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.
Instancia de Perro tango es un zaguate que pertenece a Melvin. Tiene 4 meses, mide 40.5 cm. y pesa 50 Kg. tango : Perro -raza = “zaguate” -dueño = “Melvin” -tamaño = 40.5 -peso = 50 -edad = 4 +ladrar() +morder() Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

35 Ejemplo de una clase y tres instancias con UML
Perro -nombre -edad -altura -color -cantidadDePersonasMordidas -peso +ladrar() +morder() tango : Perro godo : Perro nerón : Perro Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

36 Otra forma común de visualizar una instancia
Además se pueden representar instancias como círculos, donde los métodos encierran los atributos. La idea de este diagrama es que se visualice el hecho de que desde el exterior de la instancia, la interacción se realiza exclusivamente a través de los métodos o “interfaz”. Se aclara que este diagrama no es UML, si no que es un diagrama más simbólico para representar la disposición y acceso a los componentes de un objeto. cambiarCanal encender apagar subirVolumen Diámetro: 27” Marca:“Panafonix” Pantalla: “plana” Peso: 28.5 Kg. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

37 ¿Cómo se utilizan los objetos?
Para pedirle a un objeto que lleve a cabo una acción se le debe enviar un mensaje. Esto se hace utilizando el nombre de alguno de sus métodos. Los objetos se comunican a través de su “interfaz”. Método Instancia Atributos Método Instancia Atributos Método() Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

38 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.
¿Qué es una interfaz? Se define como “interfaz” de un objeto, a los métodos que permiten interactuar con él. En el diagrama se observa que la comunicación con este objeto solamente se puede llevar a cabo invocando alguno de los cuatro métodos que componen su “interfaz”. Método Instancia Atributos Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

39 ¿Cómo programar por objetos?
Identifique los objetos involucrados en la solución del problema. Identifique a cuáles clases pertenecen esos objetos y relacione dichas clases entre sí. Identifique la funcionalidad y los atributos que hacen únicos a los objetos pertenecientes a cada clase. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

40 ¿Cómo aprender a programar por objetos?
En este curso se estudiará de forma gradual e incremental aspectos como: ¿Cómo se pueden definir los atributos de una clase de objetos? ¿Cómo se puede crear una instancia de esa clase? Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

41 ¿Cómo aprender a programar por objetos? (continuación)
¿Cómo se puede modificar u obtener la información que hay dentro de un objeto? ¿Cómo se puede hacer que un objeto lleve a cabo acciones más complejas? Y finalmente: ¿cómo se pueden combinar en formas más complejas un grupo de objetos para llevar a cabo una tarea de mediana complejidad? Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

42 Lenguajes orientados a objetos
Un lenguaje orientado a objetos es aquel que ofrece mecanismos tendientes a maximizar la reutilización de código confiable, modular y bien probado. Las clases son un medio de abstracción, encapsulamiento, y ocultamiento. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

43 ¿A qué se refiere el término abstracción al hablar de clases?
Abstraer es obtener las características que tienen en común todos los elementos que pertenecen a una clase. Mediante la abstracción se logran definir cuales son los métodos y atributos suficientes y necesarios para reconocer a un objeto como miembro o no de una clase. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

44 ¿Qué es el encapsulamiento?
El encapsulamiento es la característica mediante la cual se logra dar identidad a los objetos. Por ejemplo: una mesa es más que una tabla y cuatro patas, ya que se puede manipular como si fuera algo con su propia identidad. La nueva clase cobra identidad y es más que las partes que la conforman. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

45 ¿Por qué es importante el ocultamiento?
El ocultamiento permite esconder la forma en que están hechos “por dentro” los objetos. Si alguien sabe cuales son los métodos de un objeto y “aprende” a manejarlo, no le importa si el objeto cambia por dentro siempre y cuando no cambie sus métodos o “interfaz”. Por ejemplo: para manejar un carro se necesita saber como acelerar, girar, frenar, y hacer cambios. El tipo de aceite que utiliza el carro puede cambiar sin afectar la forma en que se maneja. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

46 Bases para la programación por objetos
Java

47 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.
¿Qué es Java? Java es un lenguaje diseñado para la programación por objetos. Java inicia como un proyecto de investigación de la compañía Sun Microsystems en 1991. El lenguaje se anunció oficialmente en 1995. Parte de la sintaxis de Java se basa en los lenguajes de programación C y C++. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

48 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.
Ventajas de Java Las principales ventajas del lenguaje Java son las siguientes: Orientado a objetos. Simple y familiar. Robusto y seguro. Portable (arquitectura neutral). Apto para programación en ambientes distribuidos. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

49 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.
Simple y familiar Es un lenguaje de poca complejidad en cuanto a escritura y lectura del mismo. Tiene una sintaxis similar a la de otros lenguajes como C y C++, lo cual lo hace familiar. Utiliza la metodología de programación orientada a objetos para aplicaciones distribuidas (trabajo con redes). Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

50 Máquina Virtual de Java
Portable Java es independiente de la plataforma utilizada. Intel iMac Sun Linux Mac Windows Solaris Máquina Virtual de Java Aplicación de Java Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

51 Compilación y Ejecución en Java
Código fuente Java Cargador de clases Verificador de código El código se mueve a través de la red o el sistema de archivos Máquina virtual de Java Compilador “just-in time” Compilador de Java Tiempo de compilación Tiempo de ejecución “Bytecode” de Java Sistema operativo Hardware Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

52 Estructura de una aplicación básica en Java
El método principal o main() es el punto de entrada inicial de la aplicación. Este método es llamado cuando la aplicación es ejecutada. // import o package public class NombreClase{ // variables de instancia y métodos. public static void main (String args []){ // variables locales e instrucciones. System.exit(0); } Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

53 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.
¿Qué es un compilador? Las instrucciones de un programa o “código fuente” deben ser convertidas a instrucciones que puedan ser ejecutadas por la máquina. Lo anterior es una función del compilador. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

54 ¿Qué es un compilador? (continuación)
También se puede compilar y ejecutar paso a paso con el compilador de Java de Sun MicroSystems conocido como jdk o Java Development Kit del “Java Standard Edition” en caso de no tener ambiente gráfico o de tener una computadora de menor capacidad. Autor: Edgar Casasola M. Diseño: Jorge Villalobos S.

55 EJEMPLO 2 – Compilación y ejecución de un programa
Ir al ejemplo

56 EJEMPLO 3 – Compilación y ejecución de un programa utilizando un ambiente integrado para desarrollo
Ir al ejemplo

57 EJEMPLO 4 – Ciclo de resolución de un problema
Ir al ejemplo

58 EJERCICIO 2 – Identificación de errores de sintáxis
Ir al ejercicio.

59 EJERCICIO 3 – Aplicación del ciclo de resolución de un problema
Ir al ejercicio.


Descargar ppt "Bases para la programación por objetos"

Presentaciones similares


Anuncios Google