Ingeniería del Software Orientada a Objetosyaqui.mxl.uabc.mx/~molguin/as/IngSoft 5.pdf ·...

31
Ingeniería del Software Orientada a Objetos Unidad 5: Conceptos del Paradigma Orientado a Objetos

Transcript of Ingeniería del Software Orientada a Objetosyaqui.mxl.uabc.mx/~molguin/as/IngSoft 5.pdf ·...

Ingeniería del Software Orientada a Objetos

Unidad 5: Conceptos del Paradigma Orientado a Objetos

M.C. Martín Olguín (C) 2004

¿Por qué la Orientación a Objetos?

Proximidad de los conceptos de modelado respecto de las entidades del mundo realMejora captura y validación de requisitosAcerca el “espacio del problema” y el “espacio de

la solución”

Modelado integrado de propiedades estáticas y dinámicas del ámbito del problema Facilita construcción, mantenimiento y

reutilización

www.dsic.upv.es/~uml

M.C. Martín Olguín (C) 2004

¿Por qué la Orientación a Objetos?

Conceptos comunes de modelado durante el análisis, diseño e implementación Facilita la transición entre distintas fases Favorece el desarrollo iterativo del sistema Disipa la barrera entre el “qué” y el “cómo”

Sin embargo, existen problemas ...

www.dsic.upv.es/~uml

M.C. Martín Olguín (C) 2004

Problemas en OO

“...Los conceptos básicos de la OO se conocen desde hace dos décadas, pero su aceptación todavía no está tan extendida como los beneficios que esta tecnología puede sugerir”

“...La mayoría de los usuarios de la OO no utilizan los conceptos de la OO de forma purista, como inicialmente se pretendía. Esta práctica ha sido promovida por muchas herramientas y lenguajes que intentan utilizar los conceptos en diversos grados”

--Wolfgang Strigel

M.C. Martín Olguín (C) 2004

El término OO

De acuerdo a Coad y Yourdon:Orientación a objetos = objetos + clasificación

+ herencia + comunicación

M.C. Martín Olguín (C) 2004

Objetos

Objeto = unidad atómica que encapsula estado y comportamiento

Un objeto puede caracterizar una entidad física (silla) o una entidad abstracta (ecuación matemática)

Un objeto encapsula datos (atributos) y los métodos (operaciones) que los manipulan.

M.C. Martín Olguín (C) 2004

Ejemplos de Objetos

VW Sedan

Transmision estandar2 puertasColor rojo

EncenderDar_vuelta

Apagar

Tasa

Color verdeCapacidad 250 ml

Estampada

LlenarVaciar

M.C. Martín Olguín (C) 2004

Clases

Una clase es una descripción generalizada (plantilla o patrón) para una colección de objetos similares.

Por definición, todos los objetos que existen dentro de una clase heredan sus atributos y las operaciones disponibles para manipularlos.

M.C. Martín Olguín (C) 2004

Clases vs. Objetos

“Mientras que un objeto es una entidad que existe en el tiempo y en el espacio, una clase representa solo una abstracción, <<la escencia>> del objeto…”

Grady Booch

M.C. Martín Olguín (C) 2004

Ejemplos de Clases

Automóvil

Tipo_transmisiónNo. de puertas

Color

EncenderDar_vuelta

Apagar

Recipiente

ColorCapacidad

Diseño

LlenarVaciar

M.C. Martín Olguín (C) 2004

Atributos

Son aquellos valores que describen las características de una clase u objeto.

Automóvil

Tipo_transmisiónNo. de puertas

Color

EncenderDar_vuelta

Apagar

Atributos}

M.C. Martín Olguín (C) 2004

Operaciones, métodos, servicios

Son los algoritmos que procesan los datos (atributos) de una clase u objeto.

Automóvil

Tipo_transmisiónNo. de puertas

Color

EncenderDar_vuelta

Apagar

Operaciones}

M.C. Martín Olguín (C) 2004

Encapsulamiento

La característica de que los objetos contengan los datos y las operaciones que operan sobre estos datos es lo que se conoce como encapsulamiento.

M.C. Martín Olguín (C) 2004

Beneficios del encapsulamiento

Ocultación de la información, reduce la propagación de efectos colaterales cuando ocurren cambios.

Los objetos son autocontenidos, lo cual favorece la reutilización.

Favorece el bajo acoplamiento y la alta cohesión.

M.C. Martín Olguín (C) 2004

Herencia

La herencia es una de las diferencias clave entre un sistema OO y uno que no lo es.

Una subclase Y hereda todos los atributos y operaciones asociadas a una superclase X.

M.C. Martín Olguín (C) 2004

Ejemplo de Herencia

Personanombredirecciontelefono

Empleadonum_empleadosueldo

clientenum_clientecuenta

M.C. Martín Olguín (C) 2004

Polimorfismo

Un método puede tener un nombre compartido a través de una jerarquía de objetos. Cada objeto puede tener una implementación diferente para el mismo nombre de método.

M.C. Martín Olguín (C) 2004

Ejemplo de polimorfismovehículo

Capacidad_motorCapacidad_carga

ColorEncenderDar_vuelta

Apagar

barco

Capacidad_motorCapacidad_carga

ColorEncender

Dar_vueltaApagar

auto

Capacidad_motorCapacidad_carga

ColorEncender

Dar_vueltaApagar

M.C. Martín Olguín (C) 2004

Mensajes

La unidad de comunicación entre objetos se llama mensaje.

El mensaje es el soporte de una comunicación que vincula dinámicamente los objetos que fueron separados previamente en el proceso de descomposición.

www.dsic.upv.es/~uml

M.C. Martín Olguín (C) 2004

…Mensajes

Adquiere toda su fuerza cuando se asocia al polimorfismo y al enlace dinámico

Objeto 1 Objeto 2

Objeto 3 Objeto 4

1: Mensaje A

2: Mensaje C

3: Mensaje D

4: Mensaje E

www.dsic.upv.es/~uml

M.C. Martín Olguín (C) 2004

…Mensajes

Un mensaje estimula la ocurrencia de cierto comportamiento en el objeto receptor.

El comportamiento se realiza cuando se ejecuta la una operación.

M.C. Martín Olguín (C) 2004

…Mensajes

Los mensajes y los métodos son dos caras de la misma moneda. Los métodos son los procedimientos invocados cuando un objeto recibe un mensaje.

M.C. Martín Olguín (C) 2004

Características de los Objetos

Identidad Estado Comportamiento

M.C. Martín Olguín (C) 2004

Identidad

Oid (Object Identifier): Cada objeto posee un oid. El oid establece la identidad del objeto y tiene las siguientes características: Constituye un identificador único y global para cada

objeto dentro del sistema Es determinado en el momento de la creación del

objeto Es independiente de la localización física del objeto,

es decir, provee completa independencia de localización

www.dsic.upv.es/~uml

M.C. Martín Olguín (C) 2004

…Identidad Es independiente de las propiedades del objeto, lo

cual implica independencia de valor y de estructura.

No cambia durante toda la vida del objeto. Además, un oid no se reutiliza aunque el objeto deje de existir.

No se tiene ningún control sobre los oids y su manipulación resulta transparente.

www.dsic.upv.es/~uml

M.C. Martín Olguín (C) 2004

Estado

El estado de un objeto es una de las posibles condiciones en las cuales el objeto puede existir.

Cambia con el tiempo y está definido por los valores de sus atributos además de las relaciones que el objeto pueda tener con otros objetos.

M.C. Martín Olguín (C) 2004

Comportamiento

El comportamiento determina cómo el objeto responde a los mensajes de otros objetos y tipifica todo lo que el objeto puede hacer.

El comportamiento se implementa por el conjunto de operaciones del objeto.

M.C. Martín Olguín (C) 2004

Cohesión

La cohesión es una indicación cualitativa del grado que tiene un objeto para centrarse en una sola cosa.

La cohesión de una clase se determina examinando el grado en que el conjunto de propiedades que posee sea parte del diseño o dominio del problema.

M.C. Martín Olguín (C) 2004

…Cohesión

Un componente OO debe diseñarse de manera que posea todas las operaciones trabajando conjuntamente para alcanzar un propósito único y bien definido.

Es decir, en la construcción de software se desea conseguir una alta cohesión. (highly cohesive)

M.C. Martín Olguín (C) 2004

Acoplamiento

El acoplamiento está representado por el número de conexiones físicas entre los elementos del diseño (clases, objetos, paquetes).

Por ejemplo, el número de colaboraciones entre clases o el número de mensajes intercambiados entre objetos.

M.C. Martín Olguín (C) 2004

…Acoplamiento

En el diseño de software la meta es conseguir un acoplamiento lo más bajo posible (loosely coupled).

De esta manera, los errores no se propagan tan fácilmente.

Se evitan los daños colaterales cuando el software es modificado.