0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 11 1 0 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Herencia.

Slides:



Advertisements
Presentaciones similares
Unidad 1 Conceptos básicos de computación
Advertisements

Arquitectura CLARO-TECNOTREE
DSOO - María Eugenia Valencia
Introducción 1 Puntos Clave –La orientación a objetos representa un cambio radical en los métodos tradicionales de creación de software –Los métodos tradicionales.
El proceso de desarrollo de software
Fundamentos de Ingeniería de Software
POO Santiago, Mayo 2004 TRABAJO DE INVESTIGACIÓN POO Programación Orientada a Objetos CENAFOM Carolina Bravo V. Jaime Jofré B.
Tipo de Dato Abstracto Tipos de datos:
GENERACIONES DE LENGUAJES DE PROGRAMACIÓN
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
Aplicación del paradigma orientado a objetos
Sistema de Gestión de Base de Datos
PROGRAMACION ORIENTADA A OBJETOS
ORIENTADO A OBJETOS ESTUDIANTE JESSICA LORENA LEAL MEDINA INGENIERIA DE SOFTWARE PROGRAMA INGENIERIA DE SISTEMAS UNIVERSIDA COOPERATIVA DE COLOMBIA NEIVA-HUILA.
Programación Orientada a Objetos
Encapsulamiento y Abstracción
Abstracción de Datos La abstracción es un recurso fundamental en la programación orientada a objetos y está además fuertemente ligado a reusabilidad.
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.
UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,
Ingeniería de software Unidad II Ingeniería de Software Orientado a Objetos Principios Orientados a Objetos Tema Semana 7.
Fundamentos de Programación
Introducción a la programación Orientada a objetos
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Fundamentos de Programación
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.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Programación Orientada Objetos
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Clases.
Métricas Técnicas para Sistemas Orientados a Objeto
Diseño: Fundamento y Documentación ISF5501 Ingeniería de Software Semana 13/2.
Importancia en la efectividad del:
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Estructuras.
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
Introducción a UML DIAGRAMA DE CLASES Departamento de Informática
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Genericidad.
Facultad de Ingeniería
Programación Orientada a Objeto
POO U1: INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS.
DIAGRAMA DE CLASES.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Polimorfismo.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Abstracción.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Herencia.
PROGRAMACIÓN IV INTRODUCCIÓN.
Introducción a la Programación Orientada a Objetos Sonia Rueda
Abstracción El concepto de abstracción es esencial en ciencias de la computación. Un programa es en sí mismo una abstracción, un modelo de la resolución.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Caso.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Ing. Johanna Macias Algoritmo, Estructura y Programación III.
Tipo de relación entre clases Es uno de los aspectos que distinguen el paradigma de orientación a objetos frente a otros paradigmas. Mecanismo que,
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Tipo.
UNIVERSIDAD TECNOLÓGICA DE IZÚCAR DE MATAMOROS TECNOLOGÍAS DE LA INFORMACION Y COMUNICACIÓN BASE DE DATOS PARA APLICACIONES MTRO. GONZALO ROSAS CABRERA.
ORIENTACIÓN A OBJETOS El paradigma.
Programación Orientada a Objetos: CLASES Y OBJETOS
La Programación Orientado a Objetos
M ODELO DE DATOS DE ENTIDAD - VÍNCULO El modelo de entidad-vínculo es un modelo de datos conceptual de uso muy extendido. Este modelo, y sus variantes,
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Arreglo.
Fundamentos de Ingeniería de Software
Herencias Conceptos básicos i
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.
Prof. Manuel B. Sánchez. Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Programación Orientada a Objetos Unidad 5. Los objetos son entidades que combinan estado Contiene toda la información denominados atributos REPASO Cada.
1 Introducción a la Programación Orientada a Objetos Programación Orientada a Objetos Departamento de Sistemas Universidad del Cauca 2006.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
:: Prof. Yeniffer Peña Introducción a JAVA Presentación Programación I.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Herencia.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Transcripción de la presentación:

INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Herencia Dr. Luciano H. Tamargo Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur, Bahía Blanca 2015

Introducción a la Programación Orientada a Objetos IPOO TEMARIO Paradigma de programación. Calidad de software. Herencia. Caso de estudio: clientes y empleados.

PARADIGMA DE PROGRAMACIÓN El desarrollo de un sistema de software es un proceso de abstracción a partir del cual se construye un modelo de la solución de un problema. En los problemas de mediana y gran escala la construcción del modelo requiere creatividad, pero también de un paradigma que guíe, oriente y sistematice cada etapa del proceso. Introducción a la Programación Orientada a Objetos IPOO

PARADIGMA DE PROGRAMACIÓN Un paradigma de programación brinda: –Un principio que describe propiedades generales que se aplican a todo el proceso de desarrollo. –Una metodología que consta de un conjunto integrado de métodos, estrategias y técnicas. –Un conjunto de herramientas en particular lenguajes de modelado y lenguajes de programación. Introducción a la Programación Orientada a Objetos IPOO

PROGRAMACIÓN ORIENTADA A OBJETOS La programación orientada a objetos brinda un principio, una metodología y herramientas que apoyan al proceso de desarrollo de software en todas sus etapas. Las principales herramientas son el lenguaje de modelado y el lenguaje de programación. El objetivo de la programación orientada a objetos es favorecer la calidad y la productividad. Introducción a la Programación Orientada a Objetos IPOO

Introducción a la Programación Orientada a Objetos IPOO TEMARIO Paradigma de programación. Calidad de software. Herencia. Caso de estudio: clientes y empleados.

CALIDAD DE SOFTWARE La calidad de un producto de software puede definirse como su capacidad para satisfacer los requisitos establecidos durante el desarrollo de requerimientos. La calidad puede medirse de acuerdo a distintos factores. Algunos de estos factores son percibidos por el usuario o cliente. Otros factores son transparentes para el usuario o cliente, aunque por supuesto lo afectan indirectamente. Introducción a la Programación Orientada a Objetos IPOO

CALIDAD DE SOFTWARE Un producto de software correcto actúa de acuerdo a los requerimientos especificados. Un producto de software es eficiente si tiene una baja demanda de recursos de hardware, en particular tiempo de CPU, espacio de memoria y ancho de banda. Un producto de software es portable si puede ejecutarse sobre diferentes plataformas de hardware y de software. Introducción a la Programación Orientada a Objetos IPOO Correctitud Eficiencia Portabilidad

CALIDAD DE SOFTWARE Un producto de software es simple si es fácil de usar, su interfaz es amigable y no requiere demasiado entrenamiento ni capacitación por parte del usuario. Un producto de software es robusto si reacciona adecuadamente aun en circunstancias no especificadas en los requerimientos. La legibilidad está fuertemente ligada a modularización y la estructura del código. La legibilidad impacta en la reusabilidad y la extensibilidad. 9 Simplicidad Robustez Legibilidad

PRODUCTIVIDAD DE SOFTWARE Un producto de software es extensible si es fácil adaptarlo a cambios en la especificación de requerimientos. El primer requerimiento para la extensibilidad es la legibilidad. Un módulo de software es reusable si puede utilizarse para la construcción de diferentes aplicaciones. 10 Extensibilidad Reusabilidad La POO favorece la productividad a través de los conceptos de abstracción de datos, herencia y polimorfismo.

Introducción a la Programación Orientada a Objetos IPOO TEMARIO Paradigma de programación. Calidad de software. Herencia. Caso de estudio: clientes y empleados.

HERENCIA La herencia es un mecanismo que permite organizar una colección de clases a través de una relación de generalización-especialización. Consideremos dos o más clases que comparten algunos atributos y servicios y difieren en otros. Es posible definir una clase base, con los atributos y servicios compartidos y luego extender esa clase base en dos o más clases derivadas. La definición de las clases derivadas incluye solo los atributos y comportamiento específicos, que distinguen a una clase de otra. Introducción a la Programación Orientada a Objetos IPOO

Introducción a la Programación Orientada a Objetos IPOO TEMARIO Paradigma de programación. Calidad de software. Herencia. Caso de estudio: clientes y empleados.

CASO DE ESTUDIO: CLIENTES Y EMPLEADOS Una empresa mantiene información referida a sus empleados y clientes, en el primer caso con el objetivo fundamental de liquidar sueldos y en el segundo para mantener el saldo en cuenta corriente que se actualiza a partir de ventas y cobros. El sueldo de un empleado se calcula a partir de su antigüedad en la empresa, su salario básico y la cantidad de hijos. Esto es, al salario básico se le suma $1000 si tiene entre 10 y 15 años de antigüedad y $2000 si tiene más de 15 años de antigüedad. A este valor se le suma un valor dado por cada hijo. Los días de vacaciones se calculan a partir de la antigüedad. Una semana cuando cumple 1 año, 2 semanas cuando cumple 5 años y 3 semanas cuando su antigüedad es mayor a 10 años. Introducción a la Programación Orientada a Objetos IPOO

CASO DE ESTUDIO: CLIENTES Y EMPLEADOS Cada empleado tiene un nombre y algunos datos postales como calle, número, teléfono y dirección de correo electrónico, una fecha de ingreso a la empresa, un salario básico y una cantidad de hijos. Durante su permanencia en la empresa pueden modificarse los datos postales, el salario o la cantidad de hijos. Introducción a la Programación Orientada a Objetos IPOO

CASO DE ESTUDIO: CLIENTES Y EMPLEADOS Cada cliente tiene un nombre y algunos datos postales como calle, número, teléfono y dirección de correo electrónico, una ciudad, un saldo adeudado, un número de CUIT y una categoría de IVA. El saldo aumenta cada vez que se registra una operación de venta y disminuye con los cobros. Los clientes también pueden tener hijos pero esta información no es relevante para la empresa. Del mismo modo aunque los empleados también viven en una ciudad, todos viven en la misma, de modo que no es necesario representarla como una variable de instancia. Introducción a la Programación Orientada a Objetos IPOO

CASO DE ESTUDIO: CLIENTES Y EMPLEADOS El cliente efectúa compras y pagos de facturas. Ninguno de estos servicios tiene significado para un Empleado, así como no tiene sentido calcular el sueldo de un Cliente. En realidad podría darse el caso que un Empleado de la empresa en ocasiones sea Cliente de la misma. En ese caso una misma entidad del problema está cumpliendo dos roles, pertenece a dos clases. El modelo es entonces un poco más complejo, por el momento no nos ocuparemos de este tipo de situaciones. Introducción a la Programación Orientada a Objetos IPOO

CASO DE ESTUDIO: CLIENTES Y EMPLEADOS Si agrupamos a empleados y clientes en una única clase, por ejemplo, Persona, los atributos podrían ser: 18 Persona > nombre … calleNro telefono ciudad fechaIngreso salarioBasico cantHijos saldo cuit cateIva

CASO DE ESTUDIO: CLIENTES Y EMPLEADOS Si definimos un modelo para cada grupo de entidades: 19 Empleado > nombre … calleNro telefono fechaIngreso salarioBasico cantHijos Cliente > nombre … calleNro telefono ciudad saldo cuit cateIva

CASO DE ESTUDIO: CLIENTES Y EMPLEADOS La primera alternativa no es adecuada porque el modelo incluye más atributos y comportamiento que el que realmente caracteriza a un empleado o cliente específico. La segunda alternativa tiene redundancia, parte de los atributos y del comportamiento se repite en las dos clases. Introducción a la Programación Orientada a Objetos IPOO

CASO DE ESTUDIO: CLIENTES Y EMPLEADOS Un modelo más adecuado consistiría en factorizar los atributos y comportamiento compartidos de Cliente y Empleado en una clase general y retener los atributos y comportamientos específicos en clases especializadas. Introducción a la Programación Orientada a Objetos IPOO Persona Cliente Empleado

CASO DE ESTUDIO: CLIENTES Y EMPLEADOS La programación orientada a objetos permite relacionar clases usando el mecanismo de herencia. La organización es jerárquica, las clases de los niveles superiores son más generales y las de los niveles inferiores más específicas. Una instancia de Cliente es también un objeto de la clase Persona. Un objeto de la clase Cliente está caracterizada por los atributos y servicios de cualquier objeto de clase Persona pero además tiene otros atributos y/o servicios específicos. Introducción a la Programación Orientada a Objetos IPOO

CASO DE ESTUDIO: CLIENTES Y EMPLEADOS Introducción a la Programación Orientada a Objetos IPOO Persona > nombre: String calleNro: String telefono: String String > Persona() Persona(nom: String) Persona(nom: String, cn: String, t: String,e: String) Inicializa todos los atributos con cadenas nulas

CASO DE ESTUDIO: CLIENTES Y EMPLEADOS Introducción a la Programación Orientada a Objetos IPOO Persona > nombre: String calleNro: String telefono: String String > … > establecerCalleNro(d: String)… > obtenerCalleNro(): String

CASO DE ESTUDIO: CLIENTES Y EMPLEADOS Introducción a la Programación Orientada a Objetos IPOO Cliente > saldo : real ciudad : String CUIT : String cateIVA :char > Cliente() Cliente (nom: String) Cliente(nom: String, cn: String, t: String, e: String, s: real, c: String, cu: String, ci: char) Inicializa saldo en 0, ciudad con “Bahía Blanca” CUIT con 12 espacios y categoría de IVA con“I”

CASO DE ESTUDIO: CLIENTES Y EMPLEADOS Introducción a la Programación Orientada a Objetos IPOO Cliente > saldo : real ciudad : String CUIT : String cateIVA :char > … > registrarVenta(m: real) registrarCobro(m: real) > obtenerSaldo(): real

CASO DE ESTUDIO: CLIENTES Y EMPLEADOS Introducción a la Programación Orientada a Objetos IPOO Empleado > basico: real cantHijos: entero fechaIngreso: Fecha > Empleado() Empleado(nom: String) Empleado(nom: String, cn: String, t: String, e: String, b: real, ch: entero, fi: Fecha) Inicializa básico en 1000, cantHijos en 0 y fechaIngreso en 1/1/2005

CASO DE ESTUDIO: CLIENTES Y EMPLEADOS 28 Empleado > basico: real cantHijos: entero fechaIngreso: Fecha > … > establecerBasico(sb: real ) aumentarBasico(a: real) … > masAntiguo(e: Empleado ): booleano obtenerBasico(): real sueldoNeto(mh: real): real diasVacaciones (): entero Al salario básico se le suma $5000 si tiene entre 10 y 15 años de antigüedad y $2000 si tiene más de 15 años de antigüedad. A este valor se le suma $h por cada hijo. Una semana cuando cumple 1 año, 2 semanas cuando cumple 5 años y 3 semanas cuando su antigüedad es mayor a 10 años. Retorna verdadero si el empleado que recibe el mensaje es más antiguo que el argumento

29 Persona > … > … > establecerCalleNro (d: String) … > obtenerCalleNro () : String Cliente > saldo : real ciudad : String CUIT : String cateIVA :char > registrarVenta ( m : real) registrarCobro (m:real) > obtenerSaldo () : real Empleado > basico : real cantHijos : entero fechaIngreso : Fecha >… > establecerBasico (real sb) aumentarBasico (real a)… > masAntiguo(Empleado e) : booleano obtenerBasico () : real sueldoNeto (mh : entero) : real diasVacaciones () : entero

CASO DE ESTUDIO: CLIENTES Y EMPLEADOS La clase Cliente está vinculada a la clase Persona por una relación de herencia. La relación de herencia establece una relación de tipo es-un (isa) ya que todo objeto de clase Cliente es también un objeto de clase Persona. Un objeto de clase Cliente estará caracterizado por todos los atributos y el comportamiento propio de la clase, pero además por todos los atributos y el comportamiento de la clase Persona. Análogamente entre la clase Empleado y la clase Persona existe una relación de tipo es-un. Introducción a la Programación Orientada a Objetos IPOO

CASO DE ESTUDIO: CLIENTES Y EMPLEADOS Las clases Cliente y Empleado especializan a la clase Persona. Cliente y Empleado son subclases o clase derivadas de la superclase o clase base Persona. Las instancias de una clase Empleado son también instancias de la clase Persona, de modo que heredan sus atributos y métodos. El acceso a los atributos y servicios de una clase desde sus clases derivadas depende del nivel de encapsulamiento. Introducción a la Programación Orientada a Objetos IPOO