Sei sulla pagina 1di 3

FUNDAMENTOS DE LOS MODELOS DE CLASES

CAPITULO 5
RESUMEN EJECTIVO

5.1 Identificar objetos y clases. La identificacin de las clases es fundamental en el diseo orientado a
objetos.
5.2 Que hace que un modelo de clases sea bueno?. Un modelo debe ser construido de forma rpida, barata,
de fcil mantenimiento y adaptabilidad, para lograr esto se debe cumplir con dos premisas:
- Las clases elegidas deben mostrar cada parte del comportamiento que requiere el sistema.
- Las clases elegidas deben representar clases permanentes que no dependen de la situacin actual.
Pregunta de discusin : Puede presentarse conflictos cuando las clases elegidas satisfacen el comportamiento
del sistema, pero para una situacin actual y no para un comportamiento general del dominio del problema.
5.3 Cmo construir un buen modelo de clases. Se puede construir un modelo de clases ya sea dirigido por los
datos o dirigido por la responsabilidad.
Una tcnica para comenzar a identificar las clases es buscar todos los nombres o sustantivos que aparecen en los
requerimientos y luego descartar los que son inapropiados por las siguientes razones:
- Redundante, en la que a una misma clase se le ha dado varios nombres.
- Impreciso, donde el nombre dado es ambiguo.
- Un evento, se ha identificado una accin o verbo y no un nombre o sustantivo.
- Meta-lenguaje. El nombre forma parte de la manera como se definen las cosas.
- Fuera del alcance del sistema. Si bien el nombre puede tener relacin con el sistema, no es parte del mismo.
- Un atributo. Se a identificado un atributo que pertenece a una clase.
Pregunta de discusin: Considero que si se duda de mantener una clase es mejor eliminarla pues luego de hacer
las asociaciones se ver la necesidad de incluirla, en cambio si se deja, se tratar de hacer asociaciones
innecesarias.
5.4 Qu son las clases? Una clase describe un conjunto de objetos con roles equivalentes en un sistema.
Las clases se obtienen por identificar cosas del mundo real o por sus roles y estas clases tienen eventos e
interacciones entre si.
5.5 Asociaciones. Si las clases son los sustantivos, las asociaciones son los verbos o acciones o relaciones entre
clases. Al igual que las clases que deben ser instanciadas, tambin las asociaciones deben ser instanciadas, estas
instancias relacionan dos objetos.
Dos clases A y B se asocian si:
Un objeto de la clase A enva un mensaje a un objeto de la clase B.
Un objeto de la clase A crea un objeto de la clase B.
Un objeto de la clase A tiene un atributo cuyos valores son objetos de la clase B.
Un objeto de la clase A recibe un mensaje con un objeto de la clase B pasado como argumento.
Entonces, se crea una asociacin si algn objeto de la clase A tiene que saber de algn objeto de la clase B.
Para representar una asociacin entre clases de forma grfica, se dibuja una lnea continua entre las dos clases y
es preferible dar el nombre (verbo) a la asociacin, ms aun si existen varias asociaciones entre las clases.

Cliente

Facturas

tiene

5.6 Multiplicidad. O cardinalidad de una asociacin, indica el nmero de objetos que se conectan por medio
de una relacin. Un objeto puede asociarse con otro una vez, un nmero determinado de veces o, en otras
ocasiones, un nmero indeterminado. Para representar la multiplicidad o cardinalidad se especifica as:
o
o
o

Un nmero exacto, basta con escribirlo, ejemplo 2.


Un rango de nmeros, escribiendo dos puntos entre los nmeros, ejemplo 1..6.
Un nmero no especificado, escribiendo un *, ejemplo * o 1..*
Cliente

Facturas
tiene
1..*

1..*

5.7 Atributos y Operaciones. En un modelo de clases, en cada clase es necesario identificar los atributos y
operaciones que cada clase debera tener, algunos sern obvios, otros aparecern cuando se identifiquen las
asociaciones entre clases.
Operaciones. Son las maneras en que los objetos pueden interactuar, es la abstraccin de alguna accin que
puede realizar un objeto y por tanto todos los objetos que pertenecen a esa clase.
Grficamente, se listan las operaciones en el tercer casillero del icono de una clase, el nombre es un verbo corto
o expresin verbal (pues representa una accin), igual que en los atributos, por norma se pone en mayscula la
primera letra de cada palabra excepto la primera palabra.
Facturas
- Producto
- Precio
- Cantidad
- darSubtotal
- darIVA
- darTotal

Atributos. Es una propiedad de una clase, se identifica con un nombre. Los atributos describen los datos
contenidos en una instancia de una clase y el rango de valores. Una clase puede tener ms de un atributo o
ninguno.
Grficamente, se listan los atributos en el segundo casillero del icono de una clase, el nombre es un nombre
corto o expresin nominal que denota la propiedad que se desea describir, por norma se pone en mayscula la
primera letra de cada palabra excepto la primera palabra.
Facturas
- Producto
- Precio
- Cantidad
- darSubtotal
- darIVA
- darTotal

5.8 Generalizacin. Es una forma de relacin conceptual que existe entre clases en la cual una de ellas es una
superclase o padre y la otra es una subclase o hija, mediante la generalizacin, la subclase heredar el
comportamiento de la superclase pero tambin podr tener adems sus propios atributos y operaciones.
Hay que tomar en cuenta que una subclase podr hacer todas las acciones de la superclase pero no
necesariamente al revs, es decir la superclase pude no hacer todas las acciones de la subclase (por las nuevas
implementaciones de esta que no tiene la superclase).
La generalizacin tiene el problema del fuerte
acoplamiento.
Una clase puede:
o Tener ninguno o ms padres.
o Si no tiene padres es una clase raz.
o Si no tiene hijos es una clase hoja.
o Con un solo padre se tiene una herencia simple, con muchos padres se tiene herencia mltiple.
La generalizacin es una forma de representar la herencia.
5.9 Implementacin de la generalizacin: herencia. La herencia es una relacin de implementacin. Dado
que la herencia tiende a aumentar el acoplamiento en un sistema, se recomienda usarla solo cuando se modela
una relacin de generalizacin conceptual.
5.10 El modelo de clases durante el desarrollo. El modelado ir evolucionando segn se vaya profundizando
el desarrollo y conocimiento del sistema. Primero se definen las clases y relaciones conceptuales, luego irn
introduciendo operaciones y asociaciones ms especficas y se aadirn los atributos. Esto se har repetidas
veces hasta determinar que el modelo cumple y satisface los requerimientos.
5.11 Modelos frente a diagramas. Un modelo es una coleccin de elementos que representan un sistema en un
determinado nivel de abstraccin, un diagrama es una representacin grfica del modelo. Mientras solo existe
un modelo de clases, pueden existir varios diagramas de clases por legibilidad, en el modelo de clases, cada
clase aparece una sola vez, pero en un diagrama puede aparecer varias veces por la razn expuesta.
5.12 Tarjetas CRC. CRC quiere decir Clases Responsabilidades Colaboradores. En estas tarjetas se almacenan:
El nombre de la clase
Las responsabilidades
Los colaboradores de la clase que ayudan a que cumpla con las responsabilidades.
Una clase que no tenga responsabilidades no debe ser parte del modelo, una clase no debera tener ms de tres o
cuatro responsabilidades, de haber ms se caera en una dbil cohesin en el modelo.
Si existen muchos colaboradores se cae en un fuerte acoplamiento.
El uso de las tarjetas CRC permite ver falta de enlaces, es decir que hay responsabilidades que no estn
asignadas a ninguna clase, lo que puede llevar a que se cree una nueva clase.
5.13 Refactorizacin. Es el proceso de alterar el modelo de clases sin alterar su comportamiento, esto se debe
hacer cuando existen responsabilidades que no corresponden a la clase asignada, o cuando dos clases tiene la
misma responsabilidad, lo que implicara el crear una superclase y que las anteriores hereden su
comportamiento.

Potrebbero piacerti anche