La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "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 Objetos."— Transcripción de la presentación:

1 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 Objetos y Clases Caso de estudio: Presión Arterial Luciano H. Tamargo http://cs.uns.edu.ar/~lt Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur, Bahía Blanca 2016

2 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 IPOO - 2016 2 TEMARIO Problemas y soluciones. El proceso de desarrollo de software. El concepto de objeto. El concepto de clase. Caso de estudio: Presión arterial. Resumen.

3 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 PROBLEMAS Y SOLUCIONES Introducción a la Programación Orientada a Objetos IPOO - 2016 3 Programa El problema puede surgir de una necesidad, una oportunidad del mercado o una idea de producto.

4 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 PROBLEMAS Y SOLUCIONES En RPA definimos un programa como una secuencia de instrucciones escritas en un lenguaje de programación, que permite hallar la solución de diferentes instancias de un problema. Introducción a la Programación Orientada a Objetos IPOO - 2016 4 Programa

5 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 PROBLEMAS Y SOLUCIONES La expectativa es obtener soluciones confiables, eficientes y flexibles para problemas de mediana y gran escala, en ambientes dinámicos. La escala de un problema está relacionada con el costo y el tiempo que demanda resolverlo. Un ambiente dinámico es aquel en el que se producen cambios frecuentes. La resolución de problemas de mediana y gran escala requiere algo más que escribir instrucciones en un lenguaje de programación. Introducción a la Programación Orientada a Objetos IPOO - 2016 5

6 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 Un programa es una componente de un sistema de software que se desarrolla para resolver un problema. La construcción de estos sistemas es un proceso de desarrollo en el que interviene un equipo de profesionales. PROBLEMAS Y SOLUCIONES Introducción a la Programación Orientada a Objetos IPOO - 2016 6 Sistema Software Programa

7 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 SISTEMAS DE SOFTWARE Introducción a la Programación Orientada a Objetos IPOO - 2016 7 El software está formado por un conjunto de programas y los documentos que modelan el problema y su solución El desarrollo de software es un proceso de abstracción que abarca distintas etapas y requiere de la aplicación de una metodología.

8 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 IPOO - 2016 8 TEMARIO Problemas y soluciones. El proceso de desarrollo de software. El concepto de objeto. El concepto de clase. Caso de estudio: Presión arterial. Resumen.

9 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 EL PROCESO DE DESARRLLO DE SOFTWARE Introducción a la Programación Orientada a Objetos IPOO - 2016 9 Estudio de Factibilidad Desarrollo de Requerimientos Diseño del Sistema Implementación Verificación Mantenimiento DOCUMENTACIÓNDOCUMENTACIÓN El ciclo de vida de un sistema de software comienza cuando se formula la necesidad, oportunidad o idea que le da origen y termina cuando deja de utilizarse. Las etapas del desarrollo puede organizarse de diferentes maneras, una alternativa es el modelo en cascada. La construcción es un proceso colaborativo en el que interactúan los miembros del equipo de desarrollo con clientes y usuarios.

10 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 EL PROCESO DE DESARROLLO DE SOFTWARE Introducción a la Programación Orientada a Objetos IPOO - 2016 10 Estudio de Factibilidad Desarrollo de Requerimientos Diseño del Sistema Implementación Verificación Mantenimiento DOCUMENTACIONDOCUMENTACION El analista especifica la funcionalidad del sistema, sus cualidades y las restricciones, a través de un conjunto de requerimientos. El resultado de esta etapa es el documento de especificación de requerimientos que modela la demanda de usuarios o clientes, es decir, el problema a resolver. El éxito del proceso puede medirse en parte de acuerdo a en qué medida los requerimientos establecidos reflejan la demanda real.

11 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 EL PROCESO DE DESARROLLO DE SOFTWARE Introducción a la Programación Orientada a Objetos IPOO - 2016 11 Desarrollo de Requerimientos Diseño del Sistema Implementación Verificación Mantenimiento DOCUMENTACIONDOCUMENTACION A partir del documento de especificación de requerimientos el diseñador comienza a elaborar una solución que satisface los requerimientos. El resultado de la etapa de diseño es un documento que describe los módulos que integrarán el sistema, sus interfaces y el modo en que se relacionan entre sí. También puede incluir algunos casos de prueba para la verificación. Estudio de Factibilidad

12 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 EL PROCESO DE DESARROLLO DE SOFTWARE Introducción a la Programación Orientada a Objetos IPOO - 2016 12 Estudio de Factibilidad Desarrollo de Requerimientos Diseño del Sistema Implementación Verificación Mantenimiento DOCUMENTACIONDOCUMENTACION A partir del diseño el programador produce código en un lenguaje de programación. El lenguaje de programación debe ser consistente con la metodología elegida. La estructura del código debería mantener la estructura modular diseñada en la etapa anterior. El programa implementado se instala para ser verificado.

13 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 EL PROCESO DE DESARROLLO DE SOFTWARE Introducción a la Programación Orientada a Objetos IPOO - 2016 13 Estudio de Factibilidad Desarrollo de Requerimientos Diseño del Sistema Implementación Verificación Mantenimiento DOCUMENTACIONDOCUMENTACION El responsable de esta etapa verifica la implementación respecto al documento de especificación de requerimientos. Los casos de prueba deberían ser diseñados cuidadosamente. Una vez verificada la implementación se instala el sistema para su puesta en marcha y se valida que la demanda esté satisfecha.

14 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 EL PROCESO DE DESARROLLO DE SOFTWARE Introducción a la Programación Orientada a Objetos IPOO - 2016 14 Estudio de Factibilidad Desarrollo de Requerimientos Diseño del Sistema Implementación Verificación Mantenimiento DOCUMENTACIONDOCUMENTACION Durante el ciclo de vida de un sistema de software las necesidades del usuario cambian y normalmente crecen. El mantenimiento involucra todos los cambios en el software que resultan de modificaciones en los requerimientos.

15 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 METODOLOGÍAS Y LENGUAJES El proceso de desarrollo de software requiere de la aplicación de una metodología y algunas herramientas consistentes con esa metodología. Una metodología está formada por un conjunto de métodos, técnicas y estrategias. Actualmente la metodología más difundida está integrada al paradigma de programación orientada a objetos. Las herramientas más importantes dentro del proceso de desarrollo de software son el lenguaje de modelado y el lenguaje de programación. Introducción a la Programación Orientada a Objetos IPOO - 2016 15

16 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 LENGUAJE DE MODELADO Y LENGUAJE DE PROGRAMACIÓN Un lenguaje de modelado es una notación que permite especificar las partes esenciales de un sistema de software. El lenguaje de modelado más utilizado tanto en el ámbito académico como comercial es UML. Java es uno de los lenguajes de programación más ampliamente difundidos dentro de la POO. Dos conceptos centrales tanto en la metodología como en las herramientas son objeto y clase. Introducción a la Programación Orientada a Objetos IPOO - 2016 16

17 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 IPOO - 2016 17 TEMARIO Problemas y soluciones. El proceso de desarrollo de software. El concepto de objeto. El concepto de clase. Caso de estudio: Presión arterial. Resumen.

18 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 EL CONCEPTO DE OBJETO Un objeto del problema es una entidad, física o conceptual, que puede ser modelada a través de sus atributos y su comportamiento. Cada objeto del problema en ejecución quedará asociado a un objeto de software. Un objeto de software tiene una identidad y mantiene los valores de los atributos en su estado interno. El comportamiento queda determinado por un conjunto de servicios y un conjunto de responsabilidades. Introducción a la Programación Orientada a Objetos IPOO - 2016 18

19 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 EL CONCEPTO DE OBJETO La palabra objeto se utiliza entonces para referirse a: –Los objetos del problema, es decir, las entidades identificadas en las etapas de desarrollo de requerimientos y diseño. –Los objetos de software, esto es, las representaciones que modelan en ejecución a las entidades del problema. Un objeto de software es un modelo, una representación abstracta de un objeto del problema. Introducción a la Programación Orientada a Objetos IPOO - 2016 19

20 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 EL CONCEPTO DE OBJETO Introducción a la Programación Orientada a Objetos IPOO - 2016 20 OBJETOS DEL PROBLEMA ComportamientoAtributos OBJETOS DE SOFTWARE ServiciosEstado Interno

21 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 CASO DE ESTUDIO: GESTIÓN DE UN HOSPITAL Durante el desarrollo de un sistema para la Gestión de un Hospital, identificamos como un objeto a cada paciente. Introducción a la Programación Orientada a Objetos IPOO - 2016 21 Nombre Sexo Fecha de nac. Obra social Historia clínica Etc. Paciente Objeto La historia clínica también es un objeto con distintos atributos como por ejemplo si es alérgico a la penicilina y el conjunto de estudios de diagnósticos a los que se ha sometido. Atributos

22 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 CASO DE ESTUDIO: GESTIÓN DE UN HOSPITAL Introducción a la Programación Orientada a Objetos IPOO - 2016 22 Nombre Sexo Fecha de nac. Obra social Historia clínica Etc. Objeto Día Mes Año Atributos Objeto … Alérgico a la Penicilina Estudios de diagnóstico … Atrib.

23 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 CASO DE ESTUDIO: GESTIÓN DE UN HOSPITAL Introducción a la Programación Orientada a Objetos IPOO - 2016 23 Objeto … Alérgico a la Penicilina Estudios de diagnóstico … Ejemplo Radiografía Objeto

24 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 CASO DE ESTUDIO: GESTIÓN DE UN HOSPITAL Introducción a la Programación Orientada a Objetos IPOO - 2016 24 Radiografía Objeto … Imagen … Atributos Objeto Atributos Pixels Objeto Atributos Num1 Num2 Num3

25 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 CASO DE ESTUDIO: GESTIÓN DE UN HOSPITAL La medición de la presión arterial es también un procedimiento de diagnóstico, con atributos para registrar el valor máximo y mínimo. El conjunto de registros de presión arterial realizados durante un período a un paciente, es un objeto formado por otros objetos: –El aparato con el que se realiza el procedimiento. –El médico que ordena la realización del procedimiento. –La enfermera que la registra en la historia clínica. –El técnico que la hace. Introducción a la Programación Orientada a Objetos IPOO - 2016 25

26 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 IPOO - 2016 26 TEMARIO Problemas y soluciones. El proceso de desarrollo de software. El concepto de objeto. El concepto de clase. Caso de estudio: Presión arterial. Resumen.

27 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 EL CONCEPTO DE CLASE Los objetos del problema pueden agruparse en clases de acuerdo a sus atributos y comportamiento. Todos los objetos de una misma clase van a estar caracterizados por los atributos y el comportamiento de su clase. Una clase es, desde el punto de vista: Introducción a la Programación Orientada a Objetos IPOO - 2016 27 Diseño Un patrón que establece los atributos y el comportamiento de las instancias de esa clase. Implementación Un módulo de software que puede construirse y verificarse con cierta independencia respecto a los demás.

28 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 EL CONCEPTO DE CLASE Durante las etapas de desarrollo de requerimiento y diseño del sistema se identifica la colección de clases que lo conforman. La colección de clases y sus relaciones se grafican en un diagrama de clases. El diagrama de clases permite especificar entonces la estructura del sistema en función de las clases que lo componen. Introducción a la Programación Orientada a Objetos IPOO - 2016 28 Diseño de un sistema

29 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 EL CONCEPTO DE CLASE Se pueden agregar notas o comentarios que describen restricciones o la funcionalidad de cada servicio. Introducción a la Programación Orientada a Objetos IPOO - 2016 29 Diseño de una clase Nombre Atributos de clase Atributos de instancia Constructores Comandos Consultas Responsabilidades

30 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 IPOO - 2016 30 TEMARIO Problemas y soluciones. El proceso de desarrollo de software. El concepto de objeto. El concepto de clase. Caso de estudio: Presión arterial. Resumen.

31 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL La presión arterial es la fuerza de presión ejercida por la sangre circulante sobre las arterias y constituye uno de los principales signos vitales de un paciente. Se mide por medio de un aparato, que usa la altura de una columna de mercurio para reflejar la presión de circulación. Introducción a la Programación Orientada a Objetos IPOO - 2016 31 Especificación de Requerimientos

32 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL La presión sistólica se define como el máximo de la curva de presión en las arterias y ocurre cerca del principio del ciclo cardíaco durante la sístole o contracción ventricular; la presión diastólica es el valor mínimo de la curva de presión en la fase de diástole o relajación ventricular del ciclo cardíaco. La presión del pulso refleja la diferencia entre las presiones máxima y mínima medidas. Introducción a la Programación Orientada a Objetos IPOO - 2016 32 Especificación de Requerimientos

33 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL Estas medidas de presión no son estáticas, experimentan variaciones naturales entre un latido del corazón a otro y a través del día y tienen grandes variaciones de un individuo a otro. La hipertensión se refiere a la presión sanguínea que es anormalmente alta, y se puede establecer un umbral para la máxima y otro para la mínima que permitan considerar una situación de alarma. Introducción a la Programación Orientada a Objetos IPOO - 2016 33 Especificación de Requerimientos

34 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL El diseñador decidió que de cada medición se representarán dos atributos: máxima y la mínima. En la caracterización interesa también conocer la presión del pulso, pero el diseñador resolvió que este valor no se mantenga como un atributo, sino que se calcule como la diferencia entre la máxima y la mínima. Introducción a la Programación Orientada a Objetos IPOO - 2016 34 Diseño de una clase: Atributos PresionArterial > umbralMax, umbralMin: entero > maxima, minima: entero

35 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL El constructor tiene siempre el mismo nombre que la clase. Es un servicio que se usa cuando se crea un objeto de la clase. El comentario establece un prerequisito. Introducción a la Programación Orientada a Objetos IPOO - 2016 35 Diseño de una clase: Constructores PresionArterial > PresionArterial(ma, mi: entero) requiere ma > mi

36 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL Cada consulta retorna un resultado. En este caso, cada consulta retorna el valor de un atributo de instancia, se trata de consultas triviales. Introducción a la Programación Orientada a Objetos IPOO - 2016 36 Diseño de una clase: Consultas PresionArterial > obtenerMaxima(): entero obtenerMinima(): entero

37 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL Las consultas obtenerPulso() y alarmaHipertension() computan un valor a partir de los valores de los atributos. Los comentarios especifican la funcionalidad de estos servicios. Introducción a la Programación Orientada a Objetos IPOO - 2016 37 Diseño de una clase: Consultas PresionArterial > obtenerPulso(): entero alarmaHipertension(): boolean alarmaHipertensión: maxima>umbralMax o minima>umbralMin pulso: máxima-mínima valores representados en milímetros de mercurio

38 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL La clase PresionArterial forma parte de un sistema que incluye a otras clases. De acuerdo a este diagrama, las clases que usan a PresionArterial tienen la responsabilidad de controlar que la máxima sea menor que la mínima. Introducción a la Programación Orientada a Objetos IPOO - 2016 38 Diseño de una clase: Responsabilidades PresionArterial Requiere máxima > mínima y ambos mayores a 0. Los valores están expresados en milímetros de mercurio.

39 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL Introducción a la Programación Orientada a Objetos IPOO - 2016 39 PresionArterial > umbralMax, umbralMin: entero > maxima, minima: entero > PresionArterial(ma, mi: entero) > obtenerMaxima(): entero obtenerMinima(): entero obtenerPulso(): entero alarmaHipertension(): boolean Requiere máxima > mínima y ambos mayores a 0. Los valores están expresados en milímetros de mercurio. requiere ma > mi alarmaHipertensión: maxima>umbralMax o minima>umbralMin Presion del pulso: máxima-mínima

40 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL La palabra reservada class está seguida por el nombre de la clase. Las { } son los delimitadores una unidad de código, existen otros delimitadores como los corchetes y los paréntesis. Introducción a la Programación Orientada a Objetos IPOO - 2016 40 Implementación en Java PresionArterial class PresionArterial { /* Valores representados el milímetros de mercurio. Requiere máxima > mínima y ambos mayores a 0.*/ … }

41 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL Java es libre de la línea y sensible a las minúsculas y mayúsculas. Adoptamos algunas convenciones para favorecer la legibilidad. Introducción a la Programación Orientada a Objetos IPOO - 2016 41 Implementación en Java PresionArterial class PresionArterial { … }

42 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL El símbolo // precede a un comentario de una línea. Los símbolos /* */ delimitan a un comentario de varias líneas. Los comentarios del diagrama se retienen en el código. Introducción a la Programación Orientada a Objetos IPOO - 2016 42 Implementación en Java PresionArterial class PresionArterial { /* Valores representados el milímetros de mercurio. Requiere máxima > mínima y ambos mayores a 0.*/ //Atributos de clase … //Atributos de instancia …

43 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL El umbral máximo y mínimo es el mismo para todas las mediciones de presión. Los atributos de clase representan justamente estos valores constantes. Introducción a la Programación Orientada a Objetos IPOO - 2016 43 Implementación en Java PresionArterial > umbralMax, umbralMin: entero /*Valores representados el milímetros de mercurio*/ //Atributos de clase private static final int umbralMax=120; private static final int umbralMin=80;

44 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL El modificador static establece que todas las instancias de la clase PresionArterial comparten el mismo valor para cada umbral. El modificador final indica que se trata de valores constantes, establecidos en la declaración. Introducción a la Programación Orientada a Objetos IPOO - 2016 44 Implementación en Java PresionArterial > umbralMax, umbralMin: entero /*Valores representados el milímetros de mercurio*/ //Atributos de clase private static final int umbralMax=120; private static final int umbralMin=80;

45 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL De cada medición se registran dos valores de tipo de dato elemental int. Los atributos de instancia representan justamente estos valores variables. El símbolo ; termina cada instrucción. Introducción a la Programación Orientada a Objetos IPOO - 2016 45 Implementación en Java PresionArterial > umbralMax, umbralMin: entero //Atributos de instancia private int maxima; private int minima;

46 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL El constructor se ejecuta en el momento que se registra una medición. El valor de cada atributo de instancia se inicializa con un parámetro formal. Introducción a la Programación Orientada a Objetos IPOO - 2016 46 Implementación en Java PresionArterial > PresionAterial(ma, mi: entero) //Constructor public PresionArterial(int ma,int mi){ //Requiere ma > mi maxima = ma; minima = mi; }

47 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL Adoptamos la convención de nombrar a estos servicios con la palabra obtener seguida del nombre del atributo. Introducción a la Programación Orientada a Objetos IPOO - 2016 47 Implementación en Java PresionArterial > obtenerMaxima():entero obtenerMinima():entero public int obtenerMaxima(){ return maxima; } public int obtenerMinima(){ return minima; }

48 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL El nombre de una consulta está precedido por el tipo del resultado. Toda consulta incluye una instrucción return seguida de una expresión de tipo compatible con el tipo del resultado. Los atributos no son visibles desde el exterior de la clase porque los hemos declarado privados. Para acceder a cada atributo definimos una consulta. Introducción a la Programación Orientada a Objetos IPOO - 2016 48 Implementación en Java

49 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL El diseñador decidió no mantener un atributo para la presión del pulso, sino que el valor se calcula como la diferencia entre la máxima y la mínima. Las clases que usan a PresionArterial acceden de manera uniforme a la presión del pulso, el valor máximo y el valor mínimo. Introducción a la Programación Orientada a Objetos IPOO - 2016 49 Implementación en Java PresionArterial > obtenerPulso():entero public int obtenerPulso(){ return maxima-minima; }

50 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL Cuando la ejecución de la consulta termine, retorna como resultado un valor booleano que resulta de evaluar la expresión. El operador || denota disyunción con cortocircuito, si la primera subexpresión computa true, no se computa la segunda. Introducción a la Programación Orientada a Objetos IPOO - 2016 50 Implementación en Java PresionArterial > alarmaHipertension():boolean public boolean alarmaHipertension(){ return maxima > umbralMax || minima > umbralMin; }

51 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL Esta versión, equivalente a la anterior, utiliza una variable local booleana para retener el valor de la expresión computada. La consulta retorna el valor de la variable. Introducción a la Programación Orientada a Objetos IPOO - 2016 51 Implementación en Java PresionArterial > alarmaHipertension():boolean public boolean alarmaHipertension(){ boolean b=maxima>umbralMax || minima>umbralMin; return b; }

52 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL Introducción a la Programación Orientada a Objetos IPOO - 2016 52 Implementación en Java PresionArterial > alarmaHipertension():boolean public boolean alarmaHipertension(){ boolean b if (maxima>umbralMax || minima>umbralMin) b = true; else b = false; return b; }

53 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL Introducción a la Programación Orientada a Objetos IPOO - 2016 53 class PresionArterial { /* Valores representados el milímetros de mercurio. Requiere máxima > mínima y ambos mayores a 0.*/ //Atributos de clase private static final int umbralMax=120; private static final int umbralMin=80; //Atributos de instancia private int maxima; private int minima; //Constructor public PresionArterial(int ma,int mi) {//Requiere ma > mi maxima = ma; minima = mi;} public int obtenerMaxima() { return maxima;} public int obtenerMinima() { return minima;} public int obtenerPulso() { return maxima-minima;} public boolean alarmaHipertension() { return maxima > umbralMax || minima > umbralMin;} }

54 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL La clase PresionArterial forma parte de un sistema que modela la solución de un problema. El sistema incluye a muchas otras clases, relacionadas entre sí, probablemente escritas por distintos programadores. Antes de integrar la clase PresionArterial al sistema, el programador debe verificar que es correcta para un conjunto de casos de prueba. Introducción a la Programación Orientada a Objetos IPOO - 2016 54 Verificación

55 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL La verificación no garantiza la correctitud, pero permite detectar algunos errores y depurarlos. Definimos una clase testPresion que usa a la clase PresionArterial y verifica sus servicios para algunos casos de prueba. Introducción a la Programación Orientada a Objetos IPOO - 2016 55 Verificación

56 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL Introducción a la Programación Orientada a Objetos IPOO - 2016 56 Verificación class testPresion { public static void main (String a[]){ PresionArterial med1; PresionArterial med2; med1 = new PresionArterial (115,60); med2 = new PresionArterial (110,62); int p1 = med1.obtenerPulso(); int p2 = med2.obtenerPulso(); System.out.println ("Primera medición pulso "+p1); System.out.println ("Segunda medición pulso "+p2); } La ejecución del programa va a comenzar con la activación del método main.

57 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL Introducción a la Programación Orientada a Objetos IPOO - 2016 57 Verificación class testPresion { public static void main (String a[]){ PresionArterial med1; PresionArterial med2; med1 = new PresionArterial (115,60); med2 = new PresionArterial (110,62); int p1 = med1.obtenerPulso(); int p2 = med2.obtenerPulso(); System.out.println ("Primera medición pulso "+p1); System.out.println ("Segunda medición pulso "+p2); } Declaran dos variables de clase PresionArterial y son equivalentes a: PresionArterial med1, med2;

58 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL Introducción a la Programación Orientada a Objetos IPOO - 2016 58 Verificación class testPresion { public static void main (String a[]){ PresionArterial med1; PresionArterial med2; med1 = new PresionArterial (115,60); med2 = new PresionArterial (110,62); int p1 = med1.obtenerPulso(); int p2 = med2.obtenerPulso(); System.out.println ("Primera medición pulso "+p1); System.out.println ("Segunda medición pulso "+p2); } Crean dos objetos, cada uno de los cuales queda ligado a una variable. Cuando se crea un objeto de clase PresionArterial se ejecuta el constructor provisto por la clase.

59 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL Introducción a la Programación Orientada a Objetos IPOO - 2016 59 Verificación class testPresion { public static void main (String a[]){ PresionArterial med1; PresionArterial med2; med1 = new PresionArterial (115,60); med2 = new PresionArterial (110,62); int p1 = med1.obtenerPulso(); int p2 = med2.obtenerPulso(); System.out.println ("Primera medición pulso "+p1); System.out.println ("Segunda medición pulso "+p2); } Envía el mensaje obtenerPulso() al objeto ligado a la variable med1. El mensaje provoca la ejecución del método obtenerPulso() provisto por la clase y retorna un valor de tipo int que se asigna a la variable p1.

60 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 CASO DE ESTUDIO: MEDICIÓN DE LA PRESIÓN ARTERIAL Introducción a la Programación Orientada a Objetos IPOO - 2016 60 Verificación class testPresion { public static void main (String a[]){ PresionArterial med1; PresionArterial med2; med1 = new PresionArterial (115,60); med2 = new PresionArterial (110,62); int p1 = med1.obtenerPulso(); int p2 = med2.obtenerPulso(); System.out.println ("Primera medición pulso "+p1); System.out.println ("Segunda medición pulso "+p2); } Provocan una salida por consola. System es un objeto que recibe el mensaje out.println. El parámetro de este mensaje es una cadena de caracteres, esto es un objeto de la clase String, provista por Java. La cadena se genera concatenando cadenas de caracteres.

61 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 IPOO - 2016 61 TEMARIO Problemas y soluciones. El proceso de desarrollo de software. El concepto de objeto. El concepto de clase. Caso de estudio: Presión arterial. Resumen.

62 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 RESUMEN Hemos mencionado algunos términos conocidos: –programa, declaración, variable, expresión, tipo de dato elemental… Hemos definido algunos términos nuevos: –objeto, clase, atributo, servicio, constructor, método, consulta… En las próximas clases nos concentraremos en comprender y vincular los conceptos asociados a estos nuevos términos e integrarlos con algunos de los conceptos aprendidos previamente. Introducción a la Programación Orientada a Objetos IPOO - 2016 62 En esta clase

63 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 RESUMEN El aprendizaje de Java va a requerir autonomía. El objetivo es que aprendan a aprender un lenguaje de programación. En las primeras clases prácticas se describirán los aspectos básicos de Java, es decir, la estructura de una clase y los mecanismos provistos para declarar variables, evaluar expresiones, estructurar el control, etc. Los prácticos 1,2 y 3 se proponen en las dos primeras semanas y están orientados a presentar los aspectos básicos del lenguaje. Introducción a la Programación Orientada a Objetos IPOO - 2016 63 Entre la teoría y la práctica

64 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 RESUMEN Accedan al ambiente BlueJ antes de la próxima clase e implementen las clases PresionArterial y testArterial Destinen unos 20 minutos a leer esta presentación antes de la próxima clase teórica. Pueden avanzar en la resolución de los prácticos 1 y 2 en paralelo. Ambos deberían completarse en una semana. Introducción a la Programación Orientada a Objetos IPOO - 2016 64 Recomendación

65 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 REFERENCIAS El material de esta clase está basado en: –Libro de la cátedra. –Las clases del cuatrimestre anterior elaboradas por la Lic. Sonia Rueda (Profesora de la materia). Introducción a la Programación Orientada a Objetos IPOO - 2016 65


Descargar ppt "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 Objetos."

Presentaciones similares


Anuncios Google