Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porNazario Leanos Modificado hace 11 años
1
Problema abstracción DATOS ACCIONES Problemas y Programas Programa
2
Introducción a la Programación Orientada a Objetos Un programa es un modelo de la resolución de un problema Un lenguaje de programación es una notación formal para especificar un modelo para la resolución de un problema Programas y Lenguajes
3
Introducción a la Programación Orientada a Objetos El software es el conjunto de programas que permiten que los dispositivos físicos de una computadora puedan ser utilizados, junto con la documentación que acompaña al código. El desarrollo de software es un proceso a partir del cual se construye un modelo de la resolución de un problema Software y Desarrollo de Software
4
Todo sistema de software tiene un ciclo de vida durante el cual atraviesa diferentes etapas. El desarrollo en cascada propone una secuencia específica de etapas para abarcar el proceso de desarrollo de software. El producto final de este proceso es un sistema de software que resuelve el problema planteado por la especificación de requerimientos. Introducción a la Programación Orientada a Objetos El proceso de desarrollo de software
5
Estudio de Factibilidad Desarrollo de Requerimientos Análisis y Diseño del Sistema Implementación Verificación Mantenimiento DOCUMENTACIONDOCUMENTACION Introducción a la Programación Orientada a Objetos El proceso de desarrollo de software
6
Estudio de Factibilidad Desarrollo de Requerimientos Análisis y Diseño del Sistema Implementación Verificación Mantenimiento DOCUMENTACIONDOCUMENTACION Un sistema de software se desarrolla para satisfacer una demanda. La funcionalidad del sistema se especifica a partir de un conjunto de requerimientos. El éxito de un sistema puede medirse en parte de acuerdo a en qué medida los requerimientos establecidos reflejan la demanda real. El resultado de esta fase es un documento que especifica qué hará el sistema y sirve de punto de partida para la documentación. Introducción a la Programación Orientada a Objetos El proceso de desarrollo de software
7
Desarrollo de Requerimientos Análisis y Diseño del Sistema Implementación Verificación Mantenimiento DOCUMENTACIONDOCUMENTACION A partir los requerimientos especificados se diseña una solución. El resultado de esta etapa es un documento que describe los módulos que integrarán el sistema, sus interfaces y el modo en que se relacionan entre sí, los casos de prueba. Existen diferentes herramientas y metodologías para encarar esta etapa y la elección de una de ellas tendrá un fuerte impacto en la elección del lenguaje de programación. Introducción a la Programación Orientada a Objetos El proceso de desarrollo de software Estudio de Factibilidad
8
Estudio de Factibilidad Desarrollo de Requerimientos Análisis y Diseño del Sistema Implementación Verificación Mantenimiento DOCUMENTACIONDOCUMENTACION A partir del diseño se genera el programa escrito en un lenguaje de programación y toda la documentación referida al código. El programa implementado se instala para ser verificado. Introducción a la Programación Orientada a Objetos El proceso de desarrollo de software
9
Estudio de Factibilidad Desarrollo de Requerimientos Análisis y Diseño del Sistema Implementación Verificación Mantenimiento DOCUMENTACIONDOCUMENTACION Se valida la implementación respecto a la especificación de requerimientos. Existen distintas etapas en la verificación y diferentes formas de hacerlo, algunas informales y otras formales. 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. Introducción a la Programación Orientada a Objetos El proceso de desarrollo de software
10
Estudio de Factibilidad Desarrollo de Requerimientos Análisis y Diseño del Sistema Implementación Verificación Mantenimiento DOCUMENTACIONDOCUMENTACION Durante el ciclo de vida de un programa las necesidades del usuario cambian y normalmente crecen. El mantenimiento involucra todos los cambios en el software que resultan de modificaciones en la especificación. Introducción a la Programación Orientada a Objetos El proceso de desarrollo de software
11
La programación orientada a objetos brinda un principio y una metodología que apoya al proceso de desarrollo de software en todas sus etapas. Un lenguaje de programación orientado a objetos brinda mecanismos que permiten la aplicación de la metodología y contribuyan a favorecer la calidad y productividad. La metodología sigue siendo dividir para conquistar, pero cambia el modo de dividir. Programación Orientada a Objetos
12
El modelo computacional El modelo computacional propuesto por la programación orientada a objetos es un mundo poblado de objetos comunicándose a través de mensajes. Programación Orientada a Objetos
13
El concepto de Objeto Un objeto es una entidad, física o conceptual, que debe ser modelada a través de sus propiedades y su comportamiento. Las propiedades pueden caracterizarse a través de un conjunto de atributos. El comportamiento queda determinado por un conjunto de servicios que el objeto puede brindar y un conjunto de responsabilidades que debe cumplir.
14
El concepto de Objeto Cada objeto del problema en ejecución quedará asociado a un objeto de software. Un objeto de software es un modelo, una representación abstracta del objeto real. Un objeto de software tiene una identidad, un conjunto de servicios y un estado interno.
15
El concepto de Objeto La palabra objeto se utiliza entonces para referirse a: Los objetos del problema, es decir, las entidades identificadas en la etapa de Análisis y Diseño. Los objetos de software, esto es, las instancias que modelan en ejecución a las entidades del problema.
16
El concepto de Objeto Objetos de software Objetos del problema Propiedades Atributos Comportamiento Servicios
17
Los objetos del problema pueden agruparse en clases de acuerdo a sus propiedades y comportamiento. Todos los objetos de una misma clase van a estar caracterizados por las mismas propiedades y brindan los mismos servicios. El concepto de Clase
18
Desde el punto de vista del diseño, una clase es un patrón que establece los atributos, los servicios que brindan los objetos que son instancias de esa clase y las responsabilidades respecto al resto de las clases que conforman el sistema. En la implementación una clase es un módulo de software que puede construirse y verificarse con cierta independencia respecto a los demás. Una clase puede pensarse como un tipo de dato a partir del cual es posible crear objetos. El concepto de Clase
19
Diseño de una clase Un lenguaje de modelado es una herramienta que permite modelar las partes esenciales de un sistema de software. Un diagrama de clases permite especificar la estructura de un programa en función de las clases que lo componen.
20
El concepto de Clase Diagrama de clases Nombre Atributos de clase Atributos de instancia Constructores Comandos Consultas Responsabilidades Se pueden agregar notas o comentarios que describan restricciones o la funcionalidad.
21
El concepto de Clase Diagrama de clases El nombre de una clase representa la abstracción del conjunto de instancias. Un atributo es una propiedad o cualidad relevante que caracteriza a todos los objetos de una clase. Un servicio es una operación que todas las instancias de una clase pueden realizar. Una responsabilidad representa un compromiso para la clase o un requerimiento.
22
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 esfigmomanómetro, que usa la altura de una columna de mercurio para reflejar la presión de circulación. Los valores de la presión sanguínea se expresan en kilopascales (kPa) o en milímetros del mercurio (mmHg). Para convertir de milímetro de mercurio a kilopascales el valor se multiplica por 0,13.presiónsangresignos vitalesesfigmomanómetrocolumna de mercuriokilopascales Especificación de Requerimientos
23
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 de pulso refleja la diferencia entre las presiones máxima y mínima medidas.sistólicaciclo cardíacodiastólica presión de pulso Especificación de Requerimientos
24
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. Especificación de Requerimientos
25
Caso de Estudio: Medición de la presión arterial alarmaHipertensión: maxima>umbralMax o minima>umbralMin mini pulso: máxima-mínima valores representados en milímetros de mercurio requiere ma > mi PresionArterial > umbralMax,umbralMin :entero > maxima,minima :entero Diagrama de clases: Atributos 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 el 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.
26
Caso de Estudio: Medición de la presión arterial alarmaHipertensión: maxima>umbralMax o minima>umbralMin mini pulso: máxima-mínima valores representados en milímetros de mercurio requiere ma > mi requiere ma > mi > PresionArterial(ma,mi:entero) PresionArterial Diagrama de clases: Constructores El constructor tiene siempre el mismo nombre que la clase. Es un servicio que se usa cuando se crea un objeto de la clase.
27
Caso de Estudio: Medición de la presión arterial alarmaHipertensión: maxima>umbralMax o minima>umbralMin mini pulso: máxima-mínima valores representados en milímetros de mercurio requiere ma > mi > obtenerUmbralMax():entero obtenerUmbralMin():entero obtenerMaxima():entero obtenerMinima():entero PresionArterial Diagrama de clases: Consultas Cada consulta retorna un resultado. En este caso cada consulta retorna el valor de un atributo.
28
Caso de Estudio: Medición de la presión arterial alarmaHipertensión: maxima>umbralMax o minima>umbralMin mini pulso: máxima-mínima valores representados en milímetros de mercurio requiere ma > mi alarmaHipertensión: maxima>umbralMax o minima>umbralMin pulso: máxima-mínima valores representados en milímetros de mercurio > obtenerMaximaHP():real obtenerMinimaHP().real obtenerPulso():entero alarmaHipertension():boolean PresionArterial Diagrama de clases: Consultas La clase brinda métodos que computan un valor a partir de los valores de los atributos.
29
Caso de Estudio: Medición de la presión arterial alarmaHipertensión: maxima>umbralMax o minima>umbralMin mini pulso: máxima-mínima valores representados en milímetros de mercurio requiere ma > mi Requiere máxima > mínima y ambos mayores a 0. Los valores están expresados en milímetros de mercurio. PresionArterial Diagrama de clases: Responsabilidades
30
Caso de Estudio: Medición de la presión arterial alarmaHipertensión: maxima>umbralMax o minima>umbralMin mini pulso: máxima-mínima valores representados en milímetros de mercurio requiere ma > mi alarmaHipertensión: maxima>umbralMax o minima>umbralMin pulso: máxima-mínima valores representados en milímetros de mercurio requiere ma > mi PresionArterial > umbralMax,umbralMin :entero > maxima,minima :entero > PresionArterial(ma,mi:entero) > obtenerUmbralMax():entero obtenerUmbralMin():entero obtenerMaxima():entero obtenerMinima():entero obtenerMaximaHP():real obtenerMinimaHP().real obtenerPulso():entero alarmaHipertension():boolean Requiere máxima > mínima y ambos mayores a 0. Los valores están expresados en milímetros de mercurio.
31
Caso de Estudio: Medición de la presión arterial class PresionArterial { … } Implementación en Java PresionArterial La palabra reservada class está seguida por el nombre de la clase. Las llaves delimitan el código de la clase, existen otros delimitadores como los corchetes y los paréntesis.
32
Caso de Estudio: Medición de la presión arterial class PresionArterial { … } Implementación en Java PresionArterial Java es libre de la línea y sensible a las minúsculas y mayúsculas. Adoptamos algunas convenciones para favorecer la legibilidad.
33
Caso de Estudio: Medición de la presión arterial class PresionArterial { /*Valores representados el milímetros de mercurio*/ //Atributos de clase … //Atributos de instancia … } Implementación en Java PresionArterial 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.
34
Caso de Estudio: Medición de la presión arterial /*Valores representados el milímetros de mercurio*/ //Atributos de clase private static final int umbralMax=120; private static final int umbralMin=80; Implementación en Java PresionArterial > umbralMax,umbralMin :entero 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.
35
Caso de Estudio: Medición de la presión arterial /*Valores representados el milímetros de mercurio*/ //Atributos de clase private static final int umbralMax=120; private static final int umbralMin=80; Implementación en Java PresionArterial > umbralMax,umbralMin :entero El modificador static establece que todas las instancias de la clase PresionArteriral comparten el mismo valor para cada umbral. El modificador final indica que se trata de valores constantes, establecidos en la declaración.
36
Caso de Estudio: Medición de la presión arterial //Atributos de instancia private int maxima; private int minima; Implementación en Java PresionArterial > maxima,minima :entero De cada medición se registra dos valores de tipo elemental int. Los atributos de instancia representan justamente estos valores variables. El símbolo ; termina cada instrucción
37
Caso de Estudio: Medición de la presión arterial //Constructor public PresionArterial(int ma,int mi){ //Requiere ma > mi maxima = ma; minima = mi; } > PresionArterial(ma,mi:entero) Implementación en Java PresionArterial El constructor se invoca en el momento que se registra una medición. El valor de cada atributo de instancia se inicializa con un parámetro.
38
Caso de Estudio: Medición de la presión arterial //Consultas public int obtenerUmbralMax(){ return umbralMax; } > obtenerUmbralMax():entero Implementación en Java PresionArterial Toda consulta incluye una instrucción return seguida de una expresión de tipo compatible con el resultado.
39
Caso de Estudio: Medición de la presión arterial public int obtenerUmbralMin(){ return umbralMin; } > obtenerUmbralMin():entero Implementación en Java PresionArterial Los atributos no son visibles desde el exterior de la clase. Para acceder a cada atributo definimos una consulta.
40
Caso de Estudio: Medición de la presión arterial public int obtenerMaxima(){ return maxima; } public int obtenerMinima(){ return minima; } > obtenerMaxima():real obtenerMinima().real Implementación en Java PresionArterial Adoptamos la convención de nombrar a estos servicios con la palabra obtener seguida del nombre del atributo.
41
Caso de Estudio: Medición de la presión arterial public double obtenerMaximaHP(){ //Convierte a hectopascales return maxima*0.13; } > obtenerMaximaHP():real obtenerMinimaHP().real Implementación en Java PresionArterial La expresión recibe un operando entero y uno real, de modo que convierte el primero y computa un real. Este valor a su vez se convierte automáticamente a tipo double porque es el tipo del resultado.
42
Caso de Estudio: Medición de la presión arterial public double obtenerMinimaHP(){ //Convierte a hectopascales return minima*0.13; } > obtenerMaximaHP():real obtenerMinimaHP().real Implementación en Java PresionArterial Adoptamos la convención de nombrar a los servicios con un identificador en minúscula, salvo si concatena a dos o más palabras.
43
Caso de Estudio: Medición de la presión arterial public int obtenerPulso(){ return maxima-minima; } obtenerPulso():entero Implementación en Java PresionArterial El diseñador decidió no mantener un atributo para el 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 al pulso, el valor máximo y el valor mínimo, representado en dos unidades de medida.
44
Caso de Estudio: Medición de la presión arterial public boolean alarmaHipertension(){ return maxima > umbralMax || minima > umbralMin; } alarmaHipertension():boolean Implementación en Java PresionArterial Cuando la ejecución de la consulta termine retorna como resultado un valor booleano que resulta de evaluar la expresión. El operador || denota disyución con cortocircuito, si la primera subexpresión computa true, no se computa la segunda.
45
Caso de Estudio: Medición de la presión arterial public boolean alarmaHipertension(){ boolean b=maxima>umbralMax || minima>umbralMin; return b; } alarmaHipertension():boolean Implementación en Java PresionArterial 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.
46
Caso de Estudio: Medición de la presión arterial public boolean alarmaHipertension(){ boolean b if (maxima>umbralMax || minima>umbralMin) b=true; else b = false; return b; } alarmaHipertension():boolean Implementación en Java PresionArterial
47
Caso de Estudio: Medición de la presión arterial 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); }
48
Caso de Estudio: Medición de la presión arterial La ejecución del programa va a comenzar con la ejecución del método main. Las instrucciones: PresionArterial med1; PresionArterial med2; Declaran dos variables de clase PresionArterial y son equivalentes a: PresionArterial med1,med2;
49
Caso de Estudio: Medición de la presión arterial Las instrucciones: med1 = new PresionArterial (115,60); med2 = new PresionArterial (110,62); Crean dos objetos, cada uno de los cuales queda ligado a una variable.
50
Caso de Estudio: Medición de la presión arterial La instrucción: int p1 = med1.obtenerPulso(); envía el mensaje obtenerPulso() al objeto ligado a la variable med1. El mensaje provoca la ejecución del método provisto por la clase y retorna un valor de tipo int que se asigna a la variable p1.
51
Caso de Estudio: Medición de la presión arterial Las instrucciones: System.out.println (med1.obtenerMaxima()+"-"+ med1.obtenerMinima()+" pulso "+p1); System.out.println (med2.obtenerMaxima()+"-"+ med2.obtenerMinima()+" 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.
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.