La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Bases para la programación por objetos Teoría básica."— Transcripción de la presentación:

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

2 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S. 2 ¿Qué es programar? 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…

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

4 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.

5 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.

6 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S. 6 ¿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.

7 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S. 7 ¿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

8 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.

9 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S. 9 ¿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.

10 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.

11 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.

12 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S. 12 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.

13 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.

14 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.

15 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.

16 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S. 16 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.

17 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.

18 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.

19 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?

20 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. Atributos

21 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S. 21 ¿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.

22 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S. 22 ¿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... Diámetro: 27 Marca:Panafonix Pantalla: plana Peso: 28.5 Kg.

23 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.

24 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S. 24 ¿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.

25 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

26 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( )

27 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S. 27 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()

28 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()

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. 31 ¿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.

32 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

33 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 = encender() +apagar() +cambiar canal() +subir volumen()

34 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S. 34 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 = peso = 50 -edad = 4 +ladrar() +morder()

35 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() nerón : Perro godo : Perro tango : Perro

36 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. Diámetro: 27 Marca:Panafonix Pantalla: plana Peso: 28.5 Kg.

37 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 Instancia Atributos

38 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S. 38 ¿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. Instancia Atributos

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

40 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?

41 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?

42 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.

43 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.

44 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.

45 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.

46 Bases para la programación por objetos Java

47 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S. 47 ¿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 El lenguaje se anunció oficialmente en Parte de la sintaxis de Java se basa en los lenguajes de programación C y C++.

48 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S. 48 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.

49 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S. 49 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).

50 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S. 50 Portable Java es independiente de la plataforma utilizada. InteliMacIntel Sun LinuxMacWindowsSolaris Máquina Virtual de Java Aplicación de Java

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

52 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); }

53 Autor: Edgar Casasola M. Diseño: Jorge Villalobos S. 53 ¿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.

54 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.

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 Teoría básica."

Presentaciones similares


Anuncios Google