Post on 22-Sep-2015
description
http://www.javahispano.org
Miguel ngel Abin, 2002-2006 Pgina 13 de 56
Mundo real Orientacin a objetos Cosa ObjetoConcepto, idea, abstraccin ClaseInteraccin Operacin
Tabla 1. Equivalencias entre algunos conceptos del mundo real y de la orientacin a objetos.
Figura 1. Ejemplo de modelo de dominio o conceptual. Los conceptos y las relaciones se han extrado de un sencillo anlisis del dominio de una oficina. Si los trminos del dominio son poco habituales, el modelo conceptual suele incluir un glosario con los trminos que aparecen en el dominio.
Miguel ngel Abin, enero 2006
Luis Domingo
anota
enciende
arranca hojas
apaga
Orientacin a objetos: conceptos, terminologa y lenguajes (Parte 1) v2.0
Miguel ngel Abin, 2002-2006 Pgina 14 de 56
Figura 2. Ejemplo de modelo conceptual (o de dominio) orientado a objetos. Los conceptos que aparecen en la figura 1 se han convertido en clases. Este modelo conceptual OO es una representacin un poco ms formal del mostrado en la pgina anterior. Ninguno de los dos tiene nada que ver con el software. El nmero 1 hace referencia a la multiplicidad: un empleado arranca hojas de una agenda (la suya), anota en una agenda, enciende y apaga un ordenador (el suyo). Del mismo modo, las hojas de una agenda son arrancadas por un empleado, slo un empleado escribe en ellas, y un ordenador es encendido y apagado por un empleado.
Empleado
Miguel ngel Abin, enero 2006
Ordenador
Agenda
1
1
1enciendeapaga
anotaarranca hojas
Nombre
Apellidos
Precio
Fabricante
Velocidad
Memoria
http://www.javahispano.org
Miguel ngel Abin, 2002-2006 Pgina 15 de 56
Figura 3. Modelo de software correspondiente al dominio de la figura 2 (he aadido algunos mtodos para Empleado). Establece cmo deben ser las clases de software, sin especificar en qu lenguaje (Java, C++, etc.) van a ser implementadas. Este modelo, orientado a objetos, contiene tres clases de software, cada una con sus atributos y operaciones. El modelo de software recuerda al modelo conceptual o de dominio, pues los conceptos del mundo real se transforman en clases del modelo de software. Ahora bien, el modelo de software no es una representacin exacta del mundo real. En las figuras 1 y 2, por ejemplo, era el empleado quien encenda el ordenador; en la figura 3, el ordenador dispone de una operacin encender().
Empleadonombre: String
apellidos: String
Miguel ngel Abin, enero 2006
fichar(fecha: Date)
trabajar()
tomarCafe()
Ordenadorfabricante: String
velocidad: int
memoria: int
encender()
apagar()
Agendaprecio: double
anotar(texto: String)
arrancarHoja()1
1
1
Orientacin a objetos: conceptos, terminologa y lenguajes (Parte 1) v2.0
Miguel ngel Abin, 2002-2006 Pgina 16 de 56
Figura 4. Modelo de software de una clase y tres instancias suyas. Utilizo los estereotipos de UML. La clase acta como plantilla de instancias u objetos. Cada objeto posee identidad (cada uno tiene su propio bloque de memoria), estado (valores de los atributos o propiedades + relaciones con otros objetos) y comportamiento (todo lo que puede hacer).
Empleadonombre: String
apellidos: String
Miguel ngel Abin, enero 2006
fichar(fecha: Date)
trabajar()
tomarCafe()
joseLuis: Empleadonombre: Jos Luis
apellidos: Ferreira
mperez: Empleadonombre: Manolo
apellidos: Prez
cpidd: Empleadonombre: Colin
apellidos: Piddington