Unidad 2-Terminologia Basica Parte 1

41
Unidad II. Terminología básica. Primera parte.

description

terminologia basica para programacion orientada a objetos

Transcript of Unidad 2-Terminologia Basica Parte 1

Page 1: Unidad 2-Terminologia Basica Parte 1

Unidad II. Terminología básica. Primera parte.

Page 2: Unidad 2-Terminologia Basica Parte 1

INDICE

OBJETO MENSAJE CLASE

Terminología básica

Page 3: Unidad 2-Terminologia Basica Parte 1

1 ObjetoUn objeto (compuesto por atributos y métodos) es la instancia de una clase.

- El señor Pérez es un objeto de la clase Persona.Un objeto es simplemente una colección de información relacionada con cierta funcionalidad.Un objeto puede ser: - algo que tenga una manifestación o correspondencia en el mundo real (tal como un objeto empleado),

- algo que tenga algún significado virtual (tal como una ventana en la pantalla), o

- alguna abstracción adecuada dentro de un programa (una lista de trabajos a realizar)

Terminología básica

Page 4: Unidad 2-Terminologia Basica Parte 1

1 Objeto (Cont.)Un objeto es una entidad atómica formada por la unión del estado y del comportamiento.

Estado: atributos Comportamiento: métodos

Proporciona una relación de encapsulamiento que asegura una fuerte cohesión interna y un débil acoplamiento con el exterior.

Un objeto revela su rol verdadero y su responsabilidad cuando al enviar mensajes se convierte en parte de un escenario de comunicaciones.

Un objeto contiene su propio estado interno y un comportamiento accesible a otros objetos.

Terminología básica

Page 5: Unidad 2-Terminologia Basica Parte 1

1 Objeto (Cont.)Los objetos pueden ser:

Tangibles o entidades físicas: una montaña, un grano de arena.

Conceptos (no tienen masa): una cuenta corriente, una póliza de seguros, los datos personales de un alumno de una universidad.

Pertenecientes a mundos virtuales: asociados con internet.

De software: abstracciones de las entidades del mundo real con el fin de controlarlo o simularlo; listas enlazadas, árboles, etc.

Terminología básica

Page 6: Unidad 2-Terminologia Basica Parte 1

1 Objeto (Cont.)En síntesis, un objeto se compone de datos que describen el objeto y las operaciones que se pueden ejecutar sobre ese objeto.

La información almacenada en un objeto empleado, puede ser:

información de identificación (nombre, dirección, edad, titulación) información laboral (titulo del trabajo, salario, antigüedad), etc.

Las operaciones realizadas pueden incluir la creación del sueldo o la promoción de un empleado.

Terminología básica

Page 7: Unidad 2-Terminologia Basica Parte 1

1 Objeto (Cont.)Los objetos tienen propiedades específicas, tales como posición, tamaño, color, forma, etc. que definen su estado.

Los objetos también tienen ciertos comportamientos que los hacen diferentes de otros objetos.

Booch define un objeto como “algo que tiene un estado, un comportamiento y una identidad”.

Terminología básica

Page 8: Unidad 2-Terminologia Basica Parte 1

1 Objeto (Cont.)Supongamos una máquina de una fábrica.

El estado de la máquina puede ser encendido/apagado, y trabajar a su potencia, velocidad máxima, velocidad actual, temperatura, etc.

Su comportamiento puede incluir acciones para arrancar y parar la maquina, obtener su temperatura, activar o desactivar otras máquinas, cambiar velocidad.

Su identidad se basa en el hecho de que cada instancia de una máquina es única, tal vez identificada por un número de serie.

Terminología básica

Page 9: Unidad 2-Terminologia Basica Parte 1

1 Objeto (Cont.)Las características que se eligen para enfatizar en el estado y el comportamiento se apoyarán en como un objeto máquina se utilizará en una aplicación o programa.

En el diseño de un programa orientado a objetos, se crea una abstracción (un modelo simplificado) de la máquina basado en las propiedades y comportamiento que son útiles en el tiempo.

Cualquier programa orientado a objetos puede manejar muchos objetos.

Terminología básica

Page 10: Unidad 2-Terminologia Basica Parte 1

2.1 Objeto (Cont.)Ejemplo: un programa que maneja el inventario de un almacén de ventas al por menor, utiliza un objeto de cada producto manipulado en el almacén.

El programa manipula los mismos datos de cada objeto, incluyendo el número de producto, la descripción, el precio, el número de artículos en existencia y el momento para hacer nuevos pedidos.

Terminología básica

Page 11: Unidad 2-Terminologia Basica Parte 1

1 Objeto (Cont.)Cada objeto sabe también cómo ejecutar acciones con sus propios datos.

El objeto producto del programa de inventario, por ejemplo, conoce cómo crearse a sí mismo y establecer los valores iniciales de todos sus datos, cómo modificarlos y cómo evaluar si hay artículos suficientes en existencia para cumplir una petición de compra.

En esencia, lo más importante de un objeto es reconocer que consta de datos y las acciones que puede ejecutar.

Terminología básica

Page 12: Unidad 2-Terminologia Basica Parte 1

1 Objeto (Cont.)Un objeto de un programa de computadora no es algo que se pueda tocar. Cuando un programa se ejecuta, la mayoría existe en memoria principal.

Los objetos se crean por un programa para su uso mientras el programa se está ejecutando.

A menos que se guarden los datos de un objeto en un disco, el objeto se pierde cuando el programa termina (este objeto se llama transitorio, para diferenciarlo del objeto permanente que se mantiene después de la terminación del programa).

Terminología básica

Page 13: Unidad 2-Terminologia Basica Parte 1

Representación gráfica en UMLUn objeto se representa por un rectángulo en cuyo interior se escribe su nombre subrayado.El diagrama de representación tiene tres modelos válidos.

Terminología básica

Page 14: Unidad 2-Terminologia Basica Parte 1

Representación gráfica en UMLEn el siguiente diagrama se representa un cliente de un banco y las cuentas asociadas con él.

Las líneas que conectan los objetos representan los enlaces que existen entre el cliente y sus cuentas.

Terminología básica

Page 15: Unidad 2-Terminologia Basica Parte 1

Representación gráfica en UMLEl rectángulo con un doblete en la esquina superior derecha representa un comentario.Las líneas punteadas implementan la conexión de cualquier elemento del modelo a una nota descriptiva o comentario. Es más común usar un nombre genérico para los objetos.

La ausencia de cualquier texto precedente delante de los dos puntos significa que se esta hablando de tipo de objetos genéricos o anónimos de tipos Estudiante y Profesor.

Terminología básica

:Estudiante Profesor: Estudiante

Page 16: Unidad 2-Terminologia Basica Parte 1

Características de los objetosTodos los objetos tienen tres características o propiedades fundamentales, que sirven para definirlos de modo inequívoco:

Un estado, un comportamiento y una identidad.

EstadoEl estado de un objeto, en un momento dado se corresponde con una selección determinada de valores a partir de valores posibles de los diversos atributos.

Un atributo es una propiedad o característica de una clase y describe un rango de valores que la propiedad podrá contener en los objetos de una clase.

Terminología básica

Page 17: Unidad 2-Terminologia Basica Parte 1

EstadoUna clase podrá contener varios atributos o ninguno.Los atributos de una clase son las partes de información que representan el estado de un objeto. Así, los detalles de la clase Carro son atributos: color, numero de puertas, potencia, etc.Los atributos pueden ser tipos primitivos (enteros, reales, …), compuestos (cadena, complejo, …) o relaciones con otros objetos complejos.

Terminología básica

Un auto

Azul marino1 800 centímetros cúbicosAudi A3150 CV

Page 18: Unidad 2-Terminologia Basica Parte 1

EstadoUn nombre de un atributo puede ser cualquier conjunto de caracteres, pero dos atributos de la misma clase no pueden tener el mismo nombre.

Un atributo se puede mostrar utilizando dos notaciones diferentes: en línea o en relaciones entre clases.

Por convenio el nombre de un atributo puede ser de una palabra o varias palabras unidas.

Si el nombre es de una palabra se escribe en minúsculas.

Terminología básica

Page 19: Unidad 2-Terminologia Basica Parte 1

EstadoSi el nombre es de mas de una palabra, las palabras se unen y cada palabra, excepto la primera, comienza con una letra mayúscula.

Ejemplos de nombres de atributos: marca, númeroSerie.

UML proporciona la opción de indicar información adicional para los atributos.

Se puede especificar un tipo para cada valor de atributo. Para indicar el tipo se usan dos puntos (:) que separan el nombre del atributo del tipo.

Terminología básica

Page 20: Unidad 2-Terminologia Basica Parte 1

EstadoSe puede indicar también un valor por defecto (en forma predeterminada) para un atributo.

nombre: tipo = valor_por_defecto

Terminología básica

miLavadora : Lavadora

marca : String = «Braun»nombreModelo : String = «OroXC»numeroSerie : String = «GL235F»Capacidad : integer = 30

Page 21: Unidad 2-Terminologia Basica Parte 1

Multiples instancias de un objetoEn un diagrama de clases se pueden representar múltiples instancias de un objeto mediante íconos múltiples. Ejemplo: si se necesita representar una lista de vuelos de Iberia para su representación en un diagrama de clases u objetos, se puede utilizar un ícono con múltiples instancias para mostrar la lista de vuelos. La notación UML para representar instancias múltiples es:

Terminología básica

Vuelo

Page 22: Unidad 2-Terminologia Basica Parte 1

Evolución de un objetoEn un objeto, hay atributos cuyos valores van variando, tal como la capacidad (cantidad de gasolina en el tanque), ya que a medida que avance, disminuirá la cantidad que contiene el depósito.Hay otros atributos que no cambian, como el color o la marca del vehículo.

Terminología básica

Page 23: Unidad 2-Terminologia Basica Parte 1

ComportamientoCada componente del comportamiento individual de un objeto se denomina operación.

Una operación es algo que la clase puede realizar o que se puede hacer a una clase.

Las operaciones de un objeto se disparan (activan) como resultado de un estímulo externo representado en la forma de un mensaje enviado a otro objeto.

Una operación de una clase describe qué hace una clase pero no necesariamente cómo lo hace.

Terminología básica

Page 24: Unidad 2-Terminologia Basica Parte 1

ComportamientoCada componente del comportamiento individual de un objeto se denomina operación.

UML hace una diferencia clara entre la especificación de la manera de invocar un comportamiento (una operación) y la implementación real de ese comportamiento (método o función).

Las operaciones en UML se especifican en un diagrama de clase con una estructura compuesta por nombre, un par de paréntesis (vacíos o con la lista de parámetros que necesita la operación) y un tipo de retorno.

Terminología básica

Page 25: Unidad 2-Terminologia Basica Parte 1

ComportamientoSintaxis operaciones

1. nombre (parámetros) : tipo_retorno2. nombre ( )

Terminología básica

CuentaCorriente

nombre: Stringtipo : Stringnúmero: float

ingresar() : floatretirar() : float

Page 26: Unidad 2-Terminologia Basica Parte 1

ComportamientoAl igual que sucede con los nombres de atributos, el nombre de una operación se pone en minúsculas si es una palabra; en el caso de que el nombre conste de más de una palabra se unen ambas y comienzan todas las palabras reservadas después de la primera con una letra mayúscula.

Ejem: aceptarRopa ( r: String ) ingresar ()

El estado y el comportamiento están enlazados; realmente, el comportamiento en un momento dado depende del estado actual y el estado puede ser modificado por el comportamiento.

Terminología básica

Page 27: Unidad 2-Terminologia Basica Parte 1

IdentidadEs la propiedad que diferencia un objeto de otro objeto similar.

Hace posible distinguir cualquier objeto sin ambigüedad, e independientemente de su estado.

No se representa de manera específica en la fase de modelado de un problema. Cada objeto tiene en forma implícita una identidad.

Durante la fase de implementación, la identidad se crea por lo general utilizando un identificador que viene naturalmente del dominio del problema.

Los autos tienen un número de placa, los teléfonos celulares tienen un número a donde se pueden llamar, una persona tiene un número de DUI o de pasaporte.

Terminología básica

Page 28: Unidad 2-Terminologia Basica Parte 1

2 Mensaje.Un mensaje es una instrucción que se envía a un objeto y que cuando se recibe ejecuta sus acciones.

Un mensaje es una comunicación entre objetos en la que un objeto (el cliente) solicita al otro objeto (el proveedor o servidor) hacer o ejecutar alguna acción.

El usuario de un objeto se comunica con el objeto mediante su interfaz, un conjunto de operaciones definidas por la clase del objeto de modo que sean todas visibles al programa.

Terminología básica

Page 29: Unidad 2-Terminologia Basica Parte 1

2. Mensaje.Los mensajes se pueden mostrar en UML mediante un diagrama de secuencia.

Terminología básica

1. Visualizar

Page 30: Unidad 2-Terminologia Basica Parte 1

2. Mensaje.El mensaje puede ser reflexivo: un objeto se envía un mensaje a si mismo.

Terminología básica

Objeto 1

Mensaje 1

Page 31: Unidad 2-Terminologia Basica Parte 1

2. Mensaje.La noción de un mensaje es un concepto abstracto que se puede implementar de varias formas, tales como una llamada a una función, un evento o suceso directo, una interrupción, una búsqueda dinámica, etc.Un mensaje combina flujos de control y flujos de datos en una única entidad. Las flechas simples indican el flujo de control y las flechas con un pequeño círculo en el origen son flujos de datos.

Terminología básica

Objeto 1 Objeto 2Mensaje

Datos #Datos @

Page 32: Unidad 2-Terminologia Basica Parte 1

2. Mensaje.Tipos de mensaje.Existen diferentes categorías de mensajes:

Constructores (crean objetos) Destructores (destruyen objetos) Selectores (devuelven todo o parte del estado de un objeto) Modificadores (cambian todo o parte del estado de un objeto) Iteradores (visitan el estado de un objeto o el contenido de una estructura

de datos que incluye varios objetos).

Terminología básica

Page 33: Unidad 2-Terminologia Basica Parte 1

3 ClaseUna clase es un tipo definido por el usuario.

Las clases son los bloques de construcción fundamentales de los programas orientados a objetos.

Booch denomina a una clase como “un conjunto de objetos que comparten una estructura y comportamiento comunes”.

Una clase contiene la especificación de los datos que describen un objeto junto con la descripción de las acciones que un objeto conoce cómo ha de ejecutar. Estas acciones se conocen como servicios, métodos o funciones miembro (este ultimo se usa específicamente, en C++).

Terminología básica

Page 34: Unidad 2-Terminologia Basica Parte 1

3. Clase (Cont.)Una clase incluye también todos los datos necesarios para describir los objetos creados a partir de una clase. Estos datos se conocen como atributos o variables.

El término atributo se utiliza en análisis y diseño orientado a objetos, y el término variable se suele utilizar en programas orientados a objetos.

Se suelen agrupar juntos elementos similares y con características comunes en función de las propiedades más sobresalientes e ignorando otras propiedades no tan relevantes. Este es el proceso de abstracción.

Terminología básica

Page 35: Unidad 2-Terminologia Basica Parte 1

3. Clase (Cont.)Este proceso de abstracción suele comenzar con la identificación de características comunes a un conjunto de elementos y prosigue con la descripción concisa de estas características en lo que convencionalmente se ha venido en llamar clase.

Una clase describe el dominio de definición de un conjunto de objetos. Cada objeto pertenece a una clase.

Las características generales están contenidas dentro de la clase y las características especializadas están contenidas en los objetos.

Terminología básica

Page 36: Unidad 2-Terminologia Basica Parte 1

3. Clase (Cont.)Los objetos software se construyen a partir de las clases, vía un proceso conocido como instanciación. De este modo un objeto es una instancia (ejemplar o caso) de una clase.

Una clase define la estructura y el comportamiento (datos y código) que serán compartidos por un conjunto de objetos. Cada objeto de una clase dada contiene la estructura (el estado) y el comportamiento definido por la clase.

Los objetos suelen conocerse como instancias de una clase. Por consiguiente, una clase es una construcción lógica; un objeto tiene realidad física.

Terminología básica

Page 37: Unidad 2-Terminologia Basica Parte 1

3. Clase (Cont.)Cuando se cree una clase, se especificará el código y los datos que constituyen esa clase. De modo general, estos elementos se llaman miembros de la clase. De modo específico, los datos definidos en la clase se denominan variables miembro o variables de instancia. El código que opera sobre los datos se conoce como métodos miembro o simplemente métodos.

Los métodos son los que determinan cómo se pueden utilizar los datos de la clase.

Las variables definidas en el interior de una clase se llaman variables de instancia debido a que cada instancia de la clase contiene su propia copia de estas variables.

Terminología básica

Page 38: Unidad 2-Terminologia Basica Parte 1

3. Clase (Cont.)Existen mecanismos para ocultar la complejidad de la implementación dentro de la clase.

Cada método o variable de una clase se puede señalar como público o privado.

La interfaz pública de una clase representa todo lo que los usuarios externos de la clase necesitan conocer o pueden conocer. Esta interfaz debe ser diseñada de manera cuidadosa para no exponer en forma innecesaria a la clase.

Los métodos privados y los datos privados solo pueden ser accedidos por el código que es miembro de la clase.

Terminología básica

Page 39: Unidad 2-Terminologia Basica Parte 1

3. Clase (Cont.)Representación gráfica de una clase.En UML 2.0 una clase se representa con una caja rectangular dividida en compartimentos, secciones o bandas.El primer compartimento contiene el nombre de la clase.El segundo compartimento contiene los atributos.El tercero se utiliza para las operaciones.Se puede ocultar o quitar cualquier compartimento de la clase para aumentar la legibilidad del diagrama. Cuando no existe un compartimento no significa que esté vacío.Se pueden añadir compartimentos a una clase para mostrar información adicional, tal como excepciones o eventos, aunque no es normal incluir estas propiedades.

Terminología básica

Page 40: Unidad 2-Terminologia Basica Parte 1

3. Clase (Cont.)Representación gráfica de una clase.UML propone que el nombre de una clase:

Comience con una letra mayúscula Esté centrado en el compartimento superior. Sea escrito en un tipo de letra negrita. Sea escrito en cursivas cuando la clase sea abstracta.

Los atributos y operaciones son opcionales, aunque eso no significa que si no se muestran estén vacíos.

Terminología básica

Empleado Empleado

Page 41: Unidad 2-Terminologia Basica Parte 1

3. Clase (Cont.)Representación gráfica de una clase.Ejemplo: La clase Auto contiene los atributos color, motor y velocidadMaxima. La clase puede agrupar las operaciones arrancar, acelerar y frenar.

Terminología básica

Auto Auto Auto

colormotor

velocidadMaxima

arrancar()acelerar()frenar()