Programación Orientada a Objetos

Slides:



Advertisements
Presentaciones similares
MODELOS ORIENTADOS A OBJETOS
Advertisements

INGENIERÍA DE SOFTWARE Introducción Arquitectura de Software
Diseño de Sistemas de Información
PROGRAMACION ORIENTADA A OBJETOS
Nuestro reto es educar al pensamiento, para que razone de acuerdo a ciertas reglas; con ello podremos ser más eficientes al momento en que ordenamos.
Unidad 1 DISEÑO DE ALGORITMOS ING. Nelwi Baez. MSC
Programación Orientada a Objetos (P.O.O.)
Técnico en programación de Software
Programación (Estructura de Datos)
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS NOTA IMPORTANTE: Para complementar.
DIAGRAMAS DE CLASES Completando los diagramas de interacción, es posible identificar la especificación de las clases que participarán en la solución indicando.
DESCRIPCION DEL PROBLEMA
Programas Son una serie o secuencia de instrucciones entendibles por los ordenadores que permiten la realización de las acciones o tareas para las que.
UNIDAD I. INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA.
Introducción a la Computación
METODOLOGIA DE LA PROGRAMACION
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
El paradigma de la orientación a objetos La programación orientada a objetos genera códigos eficientes y estandariza la metodología de programación, además.
ANÁLISIS Y DISEÑO DESDE UNA PERSPECTIVA ORIENTADA A OBJETOS Alan Vargas.
Fundamentos de Programación
Introducción a la programación Orientada a objetos
Tema 10: Interfaces Antonio J. Sierra.
Proceso de información en la computadora
Ingeniería de Software
Viviana Poblete López Módulo: Modelo de Datos
Introducción a la POO • ¿Qué es la programación orientada a objets (POO)? – Un “paradigma” de programación – Una forma de pensar acerca de los problemas.
DISEÑO DE SOFTWARE 1ª. Parte
Fundamentos de programación
LENGUAJE DE PROGRAMACIÓN
Cómo adquirir programas
Programación Orientada Objetos
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
Introducción a la Ingeniería de Sistemas
Elaborado por: GCRM Institución Gabriel García Márquez.
ALGORITMOS La palabra algoritmo se deriva de la traducción al latín de la palabra árabe alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió.
Sara Isabel Osorio Alacraz Ana Isabel Vallejo Grisales
Importancia en la efectividad del:
COMPUTO III Ing. Jimmy Ojeda Arnica.
Representación de Algoritmos
Programación Orientada a Objetos (P.O.O.)
El modelo de análisis tiene como objetivo generar una arquitectura de objetos que sirva como base para el diseño posterior del sistema. Dependiendo del.
Facultad de Ingeniería
DEFINICIÓN DE OBJETO Un objeto es aquello que puede ser observado, estudiado y aprendido CARACTERÍSTICAS nos permiten conocerlos mediante la observación,
Métrica v2.1 Técnicas: Modelado de datos (Parte 1)
Clase 1 M.C Pedro Bello López.
DEV- C++ ·include <iostream> Int x x=x+2(x)
Diseño de Sistemas.
ALGORITMO QUE ES ??.
Elaboración de algoritmos usando lógica de programación
DIAGRAMA DE CLASES.
UML.
M.S.C. Ivette Hernández Dávila
UNIVERSIDAD TECNICA DE BABAHOYO EXTENSION DE QUEVEDO  Espinales Lisseth G RUPO N º 2 Temas:  Herencia  Polimorfismo  Encapsulamiento  2 Ejemplos Estudiante.
Conceptos. -Programación orientada a eventos. -Instancias de clase. -Atributo de los objetos. -Método main, get y set. -Ejemplo de la declaración de.
TEMA: DISEÑO DE LA SOLUCION INTREGRANTES DE EQUIPO: ERIKA CRUZ MARTINEZ RODOLFO LOPEZ ANOTA LUIS ARMANDO LIÑA QUECHA JOSE FRANCISCO MEZO VARELA LUIS ENRIQUE.
Programación Orientada a Objetos. Es importante aclarar desde un principio la diferencia que existe entre programación orientada a objetos y un lenguaje.
PROGRAMACIÓN IV INTRODUCCIÓN.
UML – Lenguaje de Modelado Unificado
Programación Orientada a Objetos: CLASES Y OBJETOS
Diagrama de Clases.
Fundamentos de Ingeniería de Software
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
INFORMÁTICA II TEMA: DISEÑA Y ELABORA ALGORITMOS DOCENTE: MARÍA DOLORES GARCÍA PONCE CAMPUS TONALÁ JALISCO.
Programación Orientada a Objetos Unidad 5. Los objetos son entidades que combinan estado Contiene toda la información denominados atributos REPASO Cada.
2015-BM5A. Introducción Durante años, los programadores se han dedicado a construir aplicaciones muy parecidas que resolvían una y otra vez los mismos.
Presentación De UML Lenguaje estándar para escribir planos de software Se usa para visualizar, especificar, construir y documentar los artefactos de un.
:: Prof. Yeniffer Peña Introducción a JAVA Presentación Programación I.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
PROGRAMACION ORIENTADA A OBJETOS
La Programación Orientado a Objetos
Transcripción de la presentación:

Programación Orientada a Objetos Usando el diagrama de clases

La POO es un método muy parecido a la forma en que hacemos cosas La POO es un método muy parecido a la forma en que hacemos cosas. Se caracteriza por las siguientes propiedades: Objetos, Clases, Encapsulación, Herencia y Polimorfismo. Un programa orientado a objetos está formado por una colección de objetos interaccionando conjuntamente para representar y solucionar algún problema. OBJETOS

Gráficamente, podríamos observar un programa orientado a objetos, como: 1 2 3 4 5 6 8 7 OBJETOS

Son entes, entidades, sujetos o cosas que encontramos en el dominio del problema de nuestra realidad. Entiéndase, en situaciones o problemas de nuestro mundo cotidiano empresarial, organizacional o institucional, que se requiere manejar o solucionar mediante la computadora. QUÉ SON LOS OBJETOS

CÓMO ESTÁN FORMADOS LOS OBJETOS Los objetos están formados por dos elementos: 1. Datos que representan su estructura. En otras palabras; atributos que describen su forma o apariencia 2. Métodos que implementan las funciones propias de su comportamiento; es decir, métodos que manipulan los datos para hacer la entrada, proceso y salida de los mismos CÓMO ESTÁN FORMADOS LOS OBJETOS

El objeto se representa con un rectángulo redondeado y está formado por dos partes: una parte se compone de los datos que representan la estructura del objeto, y la otra, parte de los métodos que implementan las operaciones que se deben realizar sobre los datos Objeto Dato1 Dato2 Dato3 --- datoN Método1() Método2() Método3() MétodoN() ESQUEMA DE UN OBJETO

CUÁNDO Y CÓMO IDENTIFICAR LOS OBJETOS En el entorno del proceso de programación, en el paso de análisis del problema, el elemento central es el objeto; es decir, se estudia el problema y se identifican los objetos involucrados y sus relaciones. CUÁNDO Y CÓMO IDENTIFICAR LOS OBJETOS

EJEMPLO DE CÓMO IDENTIFICAR LOS OBJETOS Definición del problema (Paso 1 del proceso de programación) Elaborar un programa que permita calcular el sueldo de los empleados de una empresa Análisis del problema (paso 2) 1. Planteamiento del problema En la empresa X hay varios empleados, por cada empleado se tienen los datos: Nombre, Número de horas trabajadas y la Cuota que se le paga por hora trabajada. Cada quincena se requiere emitir un cheque con los datos: nombre del empleado y sueldo que se le debe pagar. El sueldo se calcula multiplicando horas trabajadas por cuota por hora. Resumiendo desde la perspectiva de entrada-proceso-salida: Información de salida: Nombre y Sueldo Datos que se deben leer: Nombre, Horas trabajadas y Cuota por hora Proceso a seguir: Calcular Sueldo = Horas trabajadas x Cuota por hora EJEMPLO DE CÓMO IDENTIFICAR LOS OBJETOS

EJEMPLO DE CÓMO IDENTIFICAR LOS OBJETOS Análisis del problema (paso 2) 2. Identificar objetos Para identificar los objetos en el dominio del problema, se debe estudiar el caso expuesto, con el propósito de distinguir y determinar el objeto o colección de objetos, que el programa debe representar y manejar; para solucionar la situación planteada. ¿Cómo se identifican los objetos? Se buscan los sustantivos presentes en la especificación; los sustantivos son los objetos, en el presente problema se menciona un sustantivo, los empleados. EJEMPLO DE CÓMO IDENTIFICAR LOS OBJETOS

EJEMPLO DE CÓMO IDENTIFICAR LOS OBJETOS Análisis del problema (paso 2) 2. Identificar objetos Así, tenemos que nuestro programa debe representar una colección de empleados como la siguiente figura: ObjetoEmpleado Nombre Juan Horas trabajadas 40 Cuota por hora 50.00 Sueldo 2000.00 Pedro 45 100.00 4500.00 ------ Mateo 55 80.00 4400.00 EJEMPLO DE CÓMO IDENTIFICAR LOS OBJETOS

CLASES Y SU RELACIÓN CON LOS OBJETOS La clase es una representación abstracta que describe a un conjunto de objetos; en otras palabras, es un tipo de dato abstracto que representa a un conjunto de objetos que tienen en común una misma estructura (da datos) y un mismo comportamiento (las mismas funciones), es decir, son la misma cosa y hacen lo mismo. En la fase de diseño del programa, el elemento central es la clase; porque un conjunto de objetos iguales, debe ser representado en forma abstracta por una clase, que fungirá como una plantilla o molde, para crear todos y cada uno de los objetos necesarios. CLASES Y SU RELACIÓN CON LOS OBJETOS

CLASES Y SU RELACIÓN CON LOS OBJETOS 3. Diseño del programa Para diseñar el programa, se elabora o diseña el algoritmo que soluciona el problema, se diseña la lógica de las clases en pseudocódigo; después se hace la prueba de escritorio CLASES Y SU RELACIÓN CON LOS OBJETOS

Una vez identificados los objetos del problema, se procede a diseñar el diagrama de clases, para lo cual primero debemos determinar la(s) clase(s) que necesitaremos, y luego dibujar el diagrama con la representación de la(s) clase(s) y sus instancias. Los objetos identificados en el punto anterior se convierten en clases, que como ya se mencionó, son la representación abstracta de un conjunto de objetos. En el problema mencionado se tiene un conjunto de objetos empleados; clase empleado: Empleado DETERMINAR LA CLASE

REPRESENTACIÓN DE LA CLASE Y SUS INSTANCIAS Empleado ObjetoEmpleado Nombre Juan Horas trabajadas 40 Cuota por hora 50.00 Sueldo 2000.00 Pedro 45 100.00 4500.00 ------ Mateo 55 80.00 4400.00 REPRESENTACIÓN DE LA CLASE Y SUS INSTANCIAS

MÉTODOS Y ENCAPSULACIÓN Los métodos son las acciones que implementan el comportamiento o las funciones de un objeto; por ejemplo, leer o dar entrada a los datos, hacer cálculos, imprimir o dar salida de datos. Encapsulación Significa colocar juntos los datos y los métodos dentro de un objeto. Uno de los principios más importantes de la POO, es que el programador debe pensar en el código y los datos juntos durante el diseño del programa. MÉTODOS Y ENCAPSULACIÓN

Al diseñar la estructura de una clase, se debe hacer dos cosas: Definir los datos que representarán a los objetos de la clase. Los datos que representan a un objeto son de dos tipos: datos que se leen y datos que se generan por cálculos Definir los métodos que implementarán las acciones de los objetos. Los métodos son de dos tipos: un tipo son los métodos que colocan o establecen (setters) valores a los datos del objeto; ya sea a través de leerlos o mediante cálculos. El otro tipo son métodos que acceden u obtienen (getters) los valores de los datos para utilizarlos. ENCAPSULACIÓN

¿Cómo identificar los métodos ¿Cómo identificar los métodos? Se buscan los verbos presentes en el planteamiento del problema, en nuestro caso se debe Imprimir como salida: Nombre y Sueldo Leer los datos: Nombre, Horas trabajadas y Cuota por hora Calcular el Sueldo = Horas trabajadas x Cuota por hora Típicamente, para establecer los valores para cada uno de los datos de un objeto, se requiere definir y diseñar un método perteneciente al objeto que permita colocar (setter) el valor a cada dato; ya sea que lo lea o lo calcule Continua… ENCAPSULACIÓN

Así mismo, para dar salida al valor de un dato, se requiere definir y diseñar un método que permita acceder (getter) al valor del dato para darlo como salida, esto es, un método para obtener cada dato. En la POO, la encapsulación de datos es una disciplina que se debe respetar siempre. Para establecer u obtener los datos de un objeto, se debe hacer mediante métodos del mismo objeto, y no leerlos o accederlos directamente. ENCAPSULACIÓN

Ejemplo En el ejemplo de calcular el sueldo de varios empleados, tenemos que cada objeto de empleado se representa mediante los datos: nombreEmp Nombre del empleado horasTrab Número de horas trabajadas cuotaHora Cuota por hora sueldo Sueldo del empleado Para cada dato se debe definir un método para establecer o colocar (setter) el valor que tomará, ya sea al leer el dato, por cálculo o de otra forma ENCAPSULACIÓN

Ejemplo ENCAPSULACIÓN Y, otro método que permita obtener o acceder (getter) al valor para utilizarlo, ya sea para hacer cálculos, para imprimirlo o hacer otra cosa con él. En el problema antes mencionado se requieren los siguientes métodos: establecerNombreEmp(). Para leer (entrada) el valor del dato nombreEmp establecerHorasTrab(). Para leer (entrada) el valor del dato horasTrab establecerCuotaHora(). Para leer (entrada) el valor del dato cuotaHora calcularSueldo(). Para calcular y establecer el valor del dato sueldo obtenerNombreEmp(). Para acceder e imprimir el valor del dato nombreEmp obtenerSueldo(). Para acceder e imprimir el valor del dato sueldo ENCAPSULACIÓN

DIAGRAMA DE CLASES Empleado nombreEmp horasTrab cuotaHora Sueldo establecerNombreEmp() establecerHorasTrab () establecerCuotaHora () calcularSueldo() obtenerNombreEmp() obtenerSueldo() DIAGRAMA DE CLASES

GENERAR INSTANCIAS DE UNA CLASE Empleado nombreEmp horasTrab cuotaHora Sueldo establecerNombreEmp() establecerHorasTrab () establecerCuotaHora () calcularSueldo() obtenerNombreEmp() obtenerSueldo() ObjetoEmpleado Nombre Juan Horas trabajadas 40 Cuota por hora 50.00 Sueldo 2000.00 establecerNombreEmp() establecerHorasTrab () establecerCuotaHora () calcularSueldo() obtenerNombreEmp() obtenerSueldo() ObjetoEmpleado Nombre Mateo Horas trabajadas 55 Cuota por hora 80.00 Sueldo 4400.00 establecerNombreEmp() establecerHorasTrab () establecerCuotaHora () calcularSueldo() obtenerNombreEmp() obtenerSueldo() GENERAR INSTANCIAS DE UNA CLASE

ARQUITECTURA MODELO-VISTA-CONTROLADOR El diagrama de clases que se ha diseñado es lo que constituye el modelo del programa, sin embargo este modelo necesita ser usado en la solución del problema, y para hacerlo se requiere la arquitectura modelo-vista-controlador; la cual establece que un programa orientado a objetos está formado por tres partes: ARQUITECTURA MODELO-VISTA-CONTROLADOR

ARQUITECTURA MODELO-VISTA-CONTROLADOR El modelo. Es la clase o conjunto de clases identificadas en el dominio del problema, mismas que representan al objeto u objetos presentes en el problema. Las vista. Es la interfaz de usuario; es decir, lo que el usuario observará en la pantalla, impresora u otro dispositivo de salida El controlador. Es la parte que permite que el usuario interactúe con la vista para utilizar el modelo que representa y soluciona el problema Controlador ARQUITECTURA MODELO-VISTA-CONTROLADOR Modelo Vista

ARQUITECTURA MODELO-VISTA-CONTROLADOR Nota. En programas no muy complejos o que la vista es sencilla, la parte controlador incluye a la parte vista; y la arquitectura del programa se simplifica a dos partes. Aplicando la arquitectura al problema del Empleado, el diagrama queda: Empleado nombreEmp horasTrab cuotaHora Sueldo establecerNombreEmp() establecerHorasTrab () establecerCuotaHora () calcularSueldo() obtenerNombreEmp() obtenerSueldo() EjecutaEmpleado ARQUITECTURA MODELO-VISTA-CONTROLADOR

Algoritmo CALCULAR SUELDO DE UN EMPLEADO Clase Empleado 1 Algoritmo CALCULAR SUELDO DE UN EMPLEADO Clase Empleado 1. Declaraciones Datos nombreEmp: Cadena horasTrab: Entero cuotaHora: Real sueldo: Real 2. Método estableceNombreEmp(nom: Cadena) a. nombreEmp = nom b. Fin Método establecerNombreEmp 3. Método estableceHorasTrab(horasTr: Entero) a. horasTrab = horasTr b. Fin Método estableceHorasTrab 4. Método estableceCuotaHora(cuotaHr: Real) a. cuotaHora = cuotaHr b. Fin Método estableceCuotaHora 5. Método calcularSueldo() a. sueldo = horasTrab * cuotaHora b. Fin Método calcularSueldo

6. Método obtenerNombreEmp(): Cadena a. return nombreEmp b 6. Método obtenerNombreEmp(): Cadena a. return nombreEmp b. Fin Método obtenerNombreEmp 7. Método obtenerSueldo(): Real a. return sueldo b. Fin Método obtenerSueldo Clase EjecutaEmpleado 1. Menú pricnipal a. Declaraciones Variables nomEmp: Cadena hrsTra: Entero cuoHr: Real b. Declarar, crear e iniciar objeto Empleado objEmpleado = new Empleado() c. Solicitar Nombre, número de horas trabajadas y cuota por hora d. Leer nomEmp, hrsTra, cuoHr e. Establecer objEmpleado.establecerNombreEmp(nomEmp) objEmpleado.establecerHorasTrab(hrsTra) objEmpleado.establecer.Cuotahora(cuoHr) f. Calcular objEmpleado.calcularSueldo()

Clase EjecutaEmpleado 1. Menú pricnipal a Clase EjecutaEmpleado 1. Menú pricnipal a. Declaraciones Variables nomEmp: Cadena hrsTra: Entero cuoHr: Real b. Declarar, crear e iniciar objeto Empleado objEmpleado = new Empleado() c. Solicitar Nombre, número de horas trabajadas y cuota por hora d. Leer nomEmp, hrsTra, cuoHr e. Establecer objEmpleado.establecerNombreEmp(nomEmp) objEmpleado.establecerHorasTrab(hrsTra) objEmpleado.establecer.Cuotahora(cuoHr) f. Calcular objEmpleado.calcularSueldo() g. Imprimir objEmpleado.obtenerNombreEmp() objEmpleado.obtenerSueldo() h. Fin Método principal Fin Clase EjecutaEmpleado Fin