2. CLASES
Modelado Conceptual:
Organización del conocimiento del
dominio del problema en un conjunto
de abstracciones ordenadas de forma
que se obtiene un conocimiento más
profundo del problema
3. Clasificación
El mundo real puede ser visto desde
abstracciones diferentes (subjetividad)
Mecanismos de abstracción:
Clasificación / Instanciación
Composición / Descomposición
Agrupación / Individualización
Especialización / Generalización
La clasificación es uno de los mecanismos
de abstracción más utilizados
4. ¿Qué es una Clase?
Es una descripción de un conjunto de
objetos que comparten los mismos
atributos, operaciones, relaciones y
semántica.
Son una abstracción de las cosas que
forman parte del vocabulario del dominio.
5. Clases
La clase define el ámbito de definición
de un conjunto de objetos
Cada objeto pertenece a una clase
Los objetos se crean por instanciación
de las clases
6. Clases: Notación Gráfica
Cada clase se representa en un
rectángulo con tres compartimientos:
nombre de la clase
atributos de la clase
operaciones de la clase
7. Clases
Atributo
Es una propiedad, cualidad o característica asociada a
una clase, identificada por un nombre que describe un
rango de valores que puede tomar la propiedad.
El nombre de un atributo es un nombre corto o
expresión nominal extraída del dominio.
Por lo general se suele poner la primera letra de cada
palabra en mayúsculas, excepto de la primera
(precio; tipoProducto)
Junto al nombre se pueden incluir otras características
(tipo, valor por defecto, etc.)
8. Clases
Operación
Es una implementación de un servicio que puede ser
requerido a cualquier objeto de la clase para que
muestre un comportamiento.
Generalmente la invocación de una operación sobre
un objeto produce un cambio en los datos o el estado
de éste.
El nombre de una operación es un verbo o expresión
verbal extraído del dominio.
Por lo general se suele poner la primera letra de cada
palabra en mayúsculas, excepto de la primera
(comprar; calcularImporte)
9. Clases
Operación
Junto al nombre se puede especificar su
signatura.
Nombre, tipo y valores por defecto de los
parámetros y en ciertos casos necesarios tipo de
retorno.
10. Clases
Especificación de una clase
Para facilitar la comprensión no se suelen
mostrar todos los atributos y operaciones
de la clase, o incluso a veces sólo se
muestra el nombre de la clase.
Se puede indicar explícitamente que hay más
atributos o propiedades mediante: ...
11. Clases
Identificación de clases
El objetivo es identificar los conceptos
significativos del dominio.
Dos posibles estrategias:
A partir de una lista de categorías.
A partir de identificación de frases
nominales.
12. Clases
Identificación de frases nominales
Este método consiste en identificar en las descripciones
textuales del dominio nombre o frases nominales y
considerarlas como conceptos.
En esta estructura los verbos representan
asociaciones entre conceptos.
Ejemplo.-
El cliente realiza los pedidos
CLIENTE REALIZA PEDIDO
13. Clases
Errores y problemas en la identificación
de clases
Incorporación de documentos como clases.
Incorporarlos sólo si cumplen un papel especial
respecto a las reglas del negocio (ejemplo.- un
recibo de compra puede ser necesario para
realizar una devolución).
Distinción entre atributo y clase.
Si el concepto identificado no se describe
mediante un simple número o texto
descriptivo, posiblemente sea una clase.
14. Clases: Encapsulación
La encapsulación presenta dos ventajas
básicas:
Se protegen los datos de accesos indebidos
El acoplamiento entre las clases se disminuye
Favorece la modularidad y el mantenimiento
Los atributos de una clase no deberían ser
manipulables directamente por el resto de
objetos
15. …Clases: Encapsulación
Los niveles de encapsulación están heredados de los
niveles de C++:
(-) Privado : es el más fuerte. Esta parte es
totalmente invisible (excepto para clases friends en
terminología C++)
(#) Los atributos/operaciones protegidos están
visibles para las clases friends y para las clases
derivadas de la original
(+) Los atributos/operaciones públicos son
visibles a otras clases (cuando se trata de atributos
se está transgrediendo el principio de encapsulación)
16. Relaciones entre Clases
Los enlaces entre objetos pueden representarse entre
las respectivas clases
Expresa una conexión entre las clases del dominio.
Formas de relación entre clases:
Asociación y Agregación (vista como un caso
particular de asociación)
Generalización/Especialización
Las relaciones de Agregación y Generalización forman
jerarquías de clases