Sie sind auf Seite 1von 8

1

LOGO
A li i Di d Si t
Facultad de Ingeniera de Sistemas UNCP
Anlisis y Diseo de Sistemas
Ing. Richard Mercado Rivas
DIAGRAMA DE
CLASES
El Workflow del diseo
La entrada al workflow del diseo son los
artefactos del anlisis.
Durante el workflow del diseo estos artefactos
se iteran y se incrementan hasta que tengan un se iteran y se incrementan hasta que tengan un
formato que los programadores puedan utilizar.
Un aspecto importante de esta iteracin e
incremento es la identificacin de operaciones y
sus asignaciones a las clases apropiadas.
Clases
Modelado Conceptual:
Organizacin del conocimiento del
dominio del problema en un conjunto de
abstracciones ordenadas de forma que
se obtiene un conocimiento ms
profundo del problema
Clases
El mundo real puede ser visto desde abstracciones
diferentes (subjetividad)
Mecanismos de abstraccin:
Clasificacin / Instanciacin Clasificacin / Instanciacin
Composicin / Descomposicin
Agrupacin / Individualizacin
Especializacin / Generalizacin
La clasificacin es uno de los mecanismos de
abstraccin ms utilizados
Atributos de las clases
Durante el anlisis no hemos considerado en detalle los tipos de
datos de los atributos, aunque en ocasiones puede resultar til
registrar la informacin de los tipos de datos durante esta fase
del proyecto.
En UML podr declarar un tipo de dato de atributo utilizando la
siguiente sintaxis: siguiente sintaxis:
Nombre: tipo-expresin = valor-inicial {cadena propiedad}
nombre: nombre del atributo
Tipo-expresin: tipo de dato
Valor-inicial: valor que se le asigna cuanto el objeto se crea
por primera vez
Cadena-propiedad: describe una propiedad del atributo
Atributos de las clases
2
Asignacin de Operaciones a las clases
Es poco aconsejable aadir un elemento a un
diagrama UML a menos que sea estrictamente
necesario hacerlo es por ello que las operaciones
no son asignadas anteriormente.
Las operaciones que se van a asignar a las
clases se deducen de los diagramas de
interaccin de las realizaciones de los casos de
uso
Asignacin de Operaciones a las clases
Cada operacin tambin se tendr que
especificar en trminos de los parmetros que
pasa y recibe.
La sintaxis utilizada para definir una operacin
es:
Nombre operacin (lista de parametros):tipo-
expresin-obtenida
CLASE
ALUMNO
CODIGO
NOMBRE
APATERNO
AMATERNO
FECHA_NAC
MATRICULAR
CONSULTAR
Los objetos que tengan los mismos atributos y
comportamiento se agrupan en clases, Una clase es una
abstraccin que describe propiedades (atributos y
comportamiento) relevantes para una aplicacin
determinada, La eleccin de clases es arbitraria, y
depende del dominio del problema.
RETIRAR
CAMBIARDETURNO
ALUMNO
CODIGO
NOMBRE
APATERNO
Nombre de Clase
Atributos
}
}
Identidad
Alberto
Enrique
Elsa
Rossana
Fanny
Edilma
ALUMNO
AMATERNO
FECHA_NAC
MATRICULAR
CONSULTAR
RETIRAR
CAMBIARDETURNO
Atributos
Operaciones
}
}
Identidad
Clases: Encapsulacin
La encapsulacin presenta tres ventajas
bsicas:
Se protegen los datos de accesos
indebidos
El acoplamiento entre las clases se El acoplamiento entre las clases se
disminuye
Favorece la modularidad y el
mantenimiento
Los atributos de una clase no deberan ser
manipulables directamente por el resto de objetos
Clases: Encapsulacin en Atributos
Los atributos o caractersticas de una Clase pueden
ser de tres tipos, los que definen el grado de
comunicacin y visibilidad de ellos con el entorno,
estos son:
public (+, ): Indica que el atributo ser visible
tanto dentro como fuera de la clase, es decir, es
accesible desde todos lados. accesible desde todos lados.
private (-, ): Indica que el atributo slo ser
accesible desde dentro de la clase (slo sus
mtodos lo pueden accesar).
protected (#, ): Indica que el atributo no ser
accesible desde fuera de la clase, pero si podr ser
accesado por mtodos de la clase adems de las
subclases que se deriven (ver herencia).
3
Clases: Encapsulacin en Mtodos u
Operaciones
Los mtodos u operaciones de una clase son la forma en como
sta interacta con su entorno, stos pueden tener las
caractersticas:
public (+, ): Indica que el mtodo ser visible tanto dentro
como fuera de la clase, es decir, es accesible desde todos
lados.
private (-, ): Indica que el mtodo slo ser accesible desde
dentro de la clase (slo otros mtodos de la clase lo pueden ( p
accesar).
protected (#, ): Indica que el mtodo no ser accesible desde
fuera de la clase, pero si podr ser accesado por mtodos de la
clase adems de mtodos de las subclases que se deriven (ver
herencia).
Visibilidad de los objetos
Cuando se entra en la fase de diseo habr que tomar
decisiones relacionadas con que operaciones y atributos van ha
ser pblicamente accesibles. En otras palabras debemos definir
los lmites de la encapsulacin
Simbolo Visibilidad Significado
+
Public Pblico Cualquier instancia de cualquier clase
+
Public Pblico. Cualquier instancia de cualquier clase
podr acceder a la caracterstica (Operacin o
atributo)
-
Private Privada. La caracterstica slo podr ser utilizada
por una instancia de la clase que la incluye
#
Protected Protegida. La caracterstica podr ser usada por
instancias de la clase que la incluye o por una
subclase o descendiente de dicha clase.
~
Package Paquete. La caracterstica es directamente
accesible slo por las instancias de una clase
pertenecientes al mismo paquete
Visibilidad de los objetos Especificacin Detallada de una Clase
Relaciones entre Clases
Los enlaces entre de objetos pueden representarse
entre las respectivas clases
Formas de relacin entre clases:
Asociacin y Agregacin (vista como un Asociacin y Agregacin (vista como un
caso particular de asociacin)
Generalizacin/Especializacin
Las relaciones de Agregacin y Generalizacin forman
jerarquas de clases
Asociacin
La asociacin expresa una conexin bidireccional
entre objetos
Una asociacin es una abstraccin de la relacin
existente en los enlaces entre los objetos
Universidad
Estudiante
Univ. de Murcia:Universidad Antonio:Estudiante
Una asociacin
Un enlace
4
Roles
Es el papel que cumple cada uno de los elementos de las
clases para la asociacin
Adquiriente
Documento
ADQUIERE
Ejemplo:
Asociacin
Persona Compaa
trabaja-para
* *
0.. 1
0.. 1
marido
casado-con
mujer
Persona Compaa
nombre
s. s.
nombre
direccin
jefe
Administra
empleado
emplea-a
0.. 1
*
mujer
Especificacin de multiplicidad (mnima...mxima)
1 Uno y slo uno
0..1 Cero o uno
M..N Desde M hasta N (enteros naturales)
* Cero o muchos
Asociacin
0..* Cero o muchos
1..* Uno o muchos (al menos uno)
La multiplicidad mnima >=1 establece
una restriccinde existencia
Multiplicidad
Es la representacin de la cantidad de elementos que se
asocian entre las clases
100 JUAN
101 FRANCISCO
102 PEDRO
P01 LIMA
P02 BREA
P03 LOS OLIVOS
100
101
102
Multiplicidad
E01 FERNANDO
E02 RAFAEL
E03 JUAN
H01 RAFAELITO
H02 JUANITA
H03 JUANITO
E01
E02
1
E03 E03
*
0
Ejemplos
Persona *
Asociacin e cl ente
*
Polgono
Punto
contiene
3.. * 1
{ordenado}
Agregacin
Cuenta
1
or
Asociacin excluyente
Empresa
*
Usuario Estacin
est-autorizado-en
prioridad
privilegios
camb_privil
Autorizacin
* *
Clase de asociacin
5
Generalizacin
Se denomina generalizacin o herencia,
cuando una superclase (clase madre),
d fi t ib t i define atributos y operaciones que sern
comunes para otras subclases que
heredan las caractersticas de la clase
madre en la representacin de objetos de
unmundo real.
La especializacin es una tcnica muy eficaz para la
extensin y reutilizacin
coche
... Jerarquas de Generalizacin/Especializacin
Caracterizacin de la generalizacin en UML:
Disjunta (separado) - no disjunta
total (completa) - parcial (incompleta)
funcionando estropeado
11111111111 AV LAS PALMERAS 125
22222222222 AV GRAU 123
33333333333 JR. SULLANA 456
r
a
l
i
z
a
c
i

n
11111111111 TABOADA JIMENEZ ALBERTO
33333333333 CASTRO CASTILLO ENRIQUE
22222222222 COMERCIAL LOS AMIGOS
G
e
n
e
r
Para modelar objetos complejos, no bastan los tipos de
datos bsicos que proveen los lenguajes: enteros, reales y
secuencias de caracteres. Cuando se requiere componer
objetos que son instancias de clases definidas por el
desarrollador de la aplicacin, tenemos dos posibilidades:
Por Valor: Es un tipo de relacin esttica, en donde el
tiempo de vida del objeto incluido esta condicionado por el
Agregacin
tiempo de vida del objeto incluido esta condicionado por el
tiempo de vida del que lo incluye. Este tipo de relacin es
comnmente llamada Composicin (el Objeto base se
construye a partir del objeto incluido, es decir, es
"parte/todo").
Por Referencia: Es un tipo de relacin dinmica, en donde
el tiempo de vida del objeto incluido es independiente del
que lo incluye. Este tipo de relacin es comnmente
llamada Agregacin (el objeto base utiliza al incluido para
su funcionamiento).
Agregacin
Es la asociacin de elementos
que forman un todo, en funcin a
un objeto base que integra a un objeto base que integra a
objetos, pero cada uno de los
objetos integrados pueden ser
parte de otro objeto base.
Agregacin
6
Composicin
Es un tipo representativo de una
agregacin, con la definicin que
cada componente dentro de una cada componente dentro de una
composicin puede pertenecer tan
solo a un todo
Composicin
Z001 PLA01 CU01 BRO01
Z002 PLA02 CU02 BRO02
PLA01 MODELO A01
PLA02 MODELO A02
PLA03 MODELO A03
Agregacin : Ejemplo
En donde se destaca que:
Un Almacn posee Clientes y Cuentas (los rombos van en el objeto que posee las
referencias).
Cuando se destruye el Objeto Almacn tambin son destruidos los objetos Cuenta
asociados, encambionosonafectadoslosobjetosClienteasociados.
Lacomposicin(por Valor) sedestacapor unromborelleno.
Laagregacin(por Referencia) sedestacapor unrombotransparente.
La flecha en este tipo de relacin indica la navegabilidad del objeto referenciado.
Cuandonoexisteestetipodeparticularidadlaflechaseelimina.
Ejemplos
coche
11
Persona
0..2
*
+Padre
0..2
+Hijos
*
motor
11
Clases vs. Objetos
Los Diagramas de Clases y los Diagramas de
Objetos pertenecen a dos vistas complementarias
del modelo
Un Diagrama de Clases muestra la abstraccin de
una parte del dominio
Un Diagrama de Objetos representa una situacin
concreta del dominio
Cada objeto es instancia de una clase
Ciertas clases (clases abstractas o diferidas) no
pueden ser instanciadas
Un objeto es una Instancia
Enrique
Elsa Rossana
CLASE
ALUMNO
CODIGO
NOMBRE
APATERNO
AMATERNO
FECHA_NAC
MATRICULAR
Alberto
Fanny Edilma
CONSULTAR
RETIRAR
CAMBIARDETURNO
7
Herencia Mltiple
Se presenta cuando una subclase tiene ms de
una superclase
La herencia mltiple debe manejarse con
precaucin. Algunos problemas son el conflicto precaucin. Algunos problemas son el conflicto
de nombre y el conflicto de precedencia
Se recomienda un uso restringido y disciplinado
de la herencia.
Herencia Mltiple
La multiplicidad de la clasificacin mltiple se
puede representar tambin mediante
asociaciones:
Realiza >
Tipo A Tipo B Tipo C
Clase Tipo
**
Delegacin
La herencia no es una necesidad absoluta y
siempre puede sustituirse por delegacin
Disminuye el acoplamiento: el cliente no
conoce directamente al proveedor y el
proveedor puede ser modificado sobre la
marcha
Permite implementar herencia mltiple en
lenguajes con herencia simple
Delegacin
Ejemplo: delegacin en lugar de herencia
mltiple
Animal
x Locomocin x Alimento
Bpedo Cuadrpedo Herbvoro Carnvoro
Principio de Sustitucin
El Principio de Sustitucin de Liskow (1987)
afirma que:
Debe ser posible utilizar cualquier objeto
instancia de una subclase en el lugar de
cualquier objeto instancia de su superclase sin cualquier objeto instancia de su superclase sin
que la semntica del programa escrito en los
trminos de la superclase se vea afectado.
Principio de Sustitucin
Dado que los programadores pueden introducir
cdigo en las subclases redefiniendo las
operaciones, es posible introducir involuntaria-
mente incoherencias que violen el principio de q p p
sustitucin
El polimorfismo que veremos a continuacin no
debera implementarse sin este principio
8
Polimorfismo
El trmino polimorfismo se refiere a que una
caracterstica de una clase puede tomar varias
formas
El polimorfismo representa en nuestro caso la
posibilidad de desencadenar operaciones p p
distintas en respuesta a un mismo mensaje
Cada subclase hereda las operaciones pero
tiene la posibilidad de modificar localmente el
comportamiento de estas operaciones
Polimorfismo
Ejemplo: todo animal duerme, pero cada
clase lo hace de forma distinta
Zoo Animal
1
Len Tigre Oso
1
*
dormir
?
?
Polimorfismo
Zoo Animal
Len Tigre Oso
1
*
Dormir()
{
}
Dormir()
{
en un rbol
}
Dormir()
{
sobrela espalda
}
Dormir()
{
sobre el vientre
}
Len Tigre Oso
La bsqueda automtica del cdigo que en cada momento se va a ejecutar
es fruto del enlace dinmico
El cumplimiento del Principio de Sustitucin permite obtener un
comportamiento y diseo coherente
Restricciones de Integridad
En el proceso de anlisis se han identificado
una serie de restricciones de integridad que
tendrn que cumplirse para garantizar que la
aplicacin almacena datos que son mutuamente
consistentes y que las manipula de una forma
correcta.
Estas restricciones aparecen en varias formas:
Integridad referencial
restricciones de dependencia
Integridad de dominio
Restricciones de Integridad
Integridad referencial Garantiza que un
identificador de objeto contenido en un objeto
est haciendo referencia realmente a un objeto
que existe
restricciones de dependencia Garantiza que las
d d i d t ib t ll d d t ib t dependencias de atributo, all donde un atributo
se puede calcular a partir de otros atributos, se
mantendrn de manera coherente
Integridad de dominio Garantiza que los atributos
slo almacenan valores permisibles.
LOGO Facultad de Ingeniera de Sistemas - UNCP
Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas

Das könnte Ihnen auch gefallen