Sei sulla pagina 1di 22

DIAGRAMA DE CLASES

Representa la estructura entre las clases de un sistema de informacin


1. CLASE.- Representa la estructura de un conjunto de objetos.
generalizacin de los objetos
Representacin (Estructura):

CLASE
Atributo1 : Tipo1
Atributo2 : Tipo2
Atributok : Tipok
f1(p1 : Tipo1, p2 : Tipo2)
f2(p21 : Tipo1)
fn(p1 : Tipo1, p2 : Tipo2)

Es la

Nombre de la clase
Atributos
(Caractersticas)
Mtodos, Operaciones
u Eventos

Ejemplo: Clase ALUMNO

ALUMNO
AluCodigo : String
Apellidos : String
Nombres : String
FechaNac : Date
Direccion : String
DNI : String
agregarAlumno()
leerAlumno()
eliminarAlumno()
modificarAlumno()

2. OBJETO.- Es la instanciacin de una clase. Es la particularidad de una


clase
Ejemplo: objeto Jos Prez de la Clase ALUMNO

ALUMNO
20147895 : String
Prez Rubio : String
Pedro Luis : String
04/05/1990 : Date
Las Begonias 450 : String
17859623 : String
agregarAlumno()
leerAlumno()
eliminarAlumno()
modificarAlumno()

3. MULTIPLICIDAD.- Representa la relacin numrica que se da entre


clases
Estructura:
Cero, uno o varios
: 0..n 0..*
Uno o varios
: 1..n 1..*
Cero o uno
: 0..1

Exactamente uno
Dos, cinco o siete

:1
: 2, 5, 7

Ejemplos: Representar la multiplicidad de:


1. Relacin entre Persona y Carro

tiene

PERSONA

CARRO

0..n

2. Relacin entre Pas y Capital

tiene

PAIS
1

CAPITAL
1

3. Relacin entre Alumno y Curso

matricula

ALUMNO
0..n

CURSO
0..n

4. Relacin entre Cliente y Cuenta Bancaria

tiene

CLIENTE
1..2

CUENTA_BANCARIA
1..n

4. ASOCIACION: Representa la relacin entre dos o ms clases


Notacin:

Estuctura:

Ejemplo:
tiene

PERSONA
1

CARRO
0..n

5. ASOCIACION UNIDIRECCIONAL (DEPENDENCIA): Una clase A


depende su existencia de una clase B, es decir, la clase A, por s sola no
existe
Notacin:

Estructura:

La Clase A depende su existencia de la Clase B


Ejemplo:
A. Usando asociacin:

realiza

CLIENTE

1..n

atiende

PEDIDO

0..n

PERSONAL
1

B. Usando dependencia:

realiza

CLIENTE
1

atiende

PEDIDO
1..n

0..n

PERSONAL
1

6. RECURSIVIDAD: Representa la relacin de una clase as misma.


Notacin:

Estructura:
CLASE
0..n
0..1

relacion

Gerente General

Jefe de
Produccin

Jefe de Ventas

Operario 1

Jefe de Personal

Operario 2

Ejemplo:

PERSONAL
0..1
0..n

tiene a cargo
7. GENERALIZACION (OR excluyente): Representa el concepto de
HERENCIA. Las clases Hijas heredan atributos y mtodos de la clase
Padre.
Notacin:

Estructura:

CLASE2

NIVEL 1

Clase
Padre

CLASE1

NIVEL 0 (Raiz)

Clases
Hijas

CLASE4

CLASE3

Clase
Padre
CLASE5

NIVEL 2

Clases
Hijas

CLASE6

Ejemplo: Clase EQUIPO


EQUIPO
EqCodigo : String
EqDescripcion : String
EqFechaFabricacion : Date
EqFechaCompra : Date
EqFechaInstalacion : Date
EqPeso : Double
agregarEquipo()
leerEquipo()
EliminarEquipo()
modificarEquipo()

BOMBA

agregarBomba()
leerBomba()
eliminarBomba()
modificarBomba()

motCodigo : String
Potencia : Double
HP : Double

tanCodigo : String
volumen : Double
PresionMaxima : Double

agregarMotor()
leerMotor()
eliminarMotor()
modificarMotor()

agregarTanque()
leerTanque()
eliminarTanque()
modificarTanque()

M_EXPLOSION

GAS

agregarGas()
leerGas()
eliminarGas()
modificarGas()

TANQUE

MOTOR

bombaCodigo : String
CaudalEntrada : Double
caudalSalida : Double
nroPaletas : Integer

gasCodigo
volumen : Double
potenciaMaxima : Double

"Tipo de"

M_ELECTRICO

expCodigo : String
nroCilindros : Integer
diametroCilindro : Date

eleCodigo : String
voltaje : Double
amperaje : Double

agregarExplosion()
leerExplosion()
eliminarExplosion()
modificarExplosion()

agregarElectrico()
leerElectrico()
eliminarElectrico()
modificarElectrico()

GASOLINERO

PETROLERO

gasoCodigo : String
octanaje : Double

petCodigo : String
viscosidad : Double
nroInyectores : Integer

agregarGasolinero()
leerGasolinero()
eliminarGasolinero()
modificarGasolinero()

agregarPetrolero()
leerPetrolero()
eliminarPetrolero()
modificarPetrolero()

8. COMPOSICION: Tiene una Clase Padre y Clases Hijas. Existe una


relacin lgica y fsica entre la Clase Padre y las clases Hijas. Si se
elimina la Clase Padre obligadamente debern eliminarse las Clases
hijas.
Notacin: Se empieza utilizando el estereotipo de Agregacin y en la
clase Padre (Rol A detail o Rol B detail) marcar By Value y se transforma
en composicin (rombo relleno).

Estructura:
CLASE1
1

Composicin

contiene

1..n

CLASE2

Ejemplo:

FACTURA
1

compuesta
1..n

FACTURA_DETALLE

9. AGREGACION: Tiene una Clase Padre y Clases Hijas. Existe una


relacin lgica y pero no fsica entre la Clase Padre y la Clases Hijas. Si
se elimina la Clase Padre no obligadamente debern eliminarse las
Clases hijas.
Notacin:

Estructura:

CLASE1
1

conformado

1..n

CLASE2

Agregacin

Ejemplo1: Productos de una Pastelera (merengue, pionono,


botija, etc.)
Ingrediente (harina, leche, huevos, levadura, azcar,
mantequilla, etc.)
Ejemplo2: Producto (lavadoras, refrigeradoras, cocinas a gas,
etc.)
Componente (plancha galvanizada, remaches,
soldadura, pintura, base, etc.)

PRODUCTO
1

conformado

1..n

COMPONENTE

10.
CLASE DERIVADA: Se crea de una relacin de varios a varios
(1..n a 1..n) entre dos clases. Tiene sus propios atributos y sus propios
mtodos.
Notacin:

Estructura:
relacion

CLASE1
n

CLASE3

Ejemplo:

CLASE2
1..n

Clase
derivada

ALUMNO
aluCodigo : String
Apellidos : String
Nombres : String
FechaNac : Date
Direccion : String
DNI : String

CURSO

1..n

1..n

curCodigo : String
Descripcion : String
Creditos : Integer
HrTeoria : Integer
HrLab : Integer

MATRICULA
Asociacion
de clase

aluCodigo : String
curCodigo : String
semestre : String
nota : Integer

Clase
derivada

11.
DIAGRAMA DE CLASES: representa la estructura de clases de
un sistema informtico.
Ejemplo: Elaborar el diagrama de clases de un Sistema de Ventas

Dando doble click en el nombre del diagrama de clases


(DCSistemaDeVentas) aparece el editor (Barra de herramientas) donde
se elabora el diagrama de clases.

Agregar nuevos estereotipos seleccionando la barra de herramientas y


pulsando botn derecho:

Se agregan los estereotipos faltantes:

Se agregan a la barra de herramientas:

Elaboramos el diagrama de clases del sistema de ventas en el editor.

PUESTO

CLIENTE
clieId : String
Direccion : String
Telefono : String
Email : String
FechaIngreso : Date
agregarCliente()
leerCliente()
eliminarCliente()
modificarCliente()
grabarCliente()

Descripcion : String

PERSONAL
PEDIDDO

realiza
1

1..n

Fecha : Date
Monto : Currency
Estado : String

atiende
0..n

ocupa

APellidos : String
Nombres : String
FechaNac : Date
Sexo : String
DNI : String
Sueldo : Currency
FechaIng : Date

1
1..n
0..1

contiene
0..n
1..n
PEDIDODETALLE

NATURAL
Apellidos : String
Nombres : String
FechaNac : Date
Sexo : String
DNI : String

JURIDICO
RUC : String
RazonSocial : String
FAX : String
Contacto : String

LINEA
1..n
relaciona

Descripcion : String
pertenece

1
PRODUCTO

tiene a cargo

Precio : Currency
Cantidad : Integer

Descripcion : String
Precio : Currency
Stock : Integer
StkMin : Integer
UniMed : String

1..n
DCTOVTADETALLE

relaciona
1

1..n

Precio : Currency
Cantidad : Integer

1
conformado

contiene
1..n

DOCUMENTOVENTA
1

FACTURA
RUC : String

n
COMPONENTE
Descripcion : String
Precio : Currency
Cantidad : Integer
UniMed : String

BOLETAVENTA
DNI : String

PROVEEDOR
proveido
1..n

1..n

RUC : String
RazonSocial : String
Telefono : String
Direccion : String
FAX : String
Contacto : String

1..n

COMPONENTEPROVEEDOR
Fecha : Date
Precio : Currency
Observacion : String

tiene

tiene

12.
PASO DE UN DIAGRAMA DE CLASES A UN MODELO
RELACIONAL
1 Crear una base de datos (BDVentas) en un gestor de base
(SQLServer) de datos a donde se va a migrar el modelo de entidades
a partir del diagrama de clases
2 En el modelo de clases cambiar todas las clases en persistencia de
trasiente a persistente (si se omite el cambio de una clase no
migra al gestor de bases de datos).

3 En la vista de Component View seleccionar con botn derecho:

1..n

Dar nombre BDVentas y dar doble clic y seleccionar SQLserver


2000x en Target:

Y pulsar OK
4 Seleccionar la carpeta donde est en diagrama de clases (Sistema
de Ventas), pulsar botn derecho y seleccionar:

Aparece el siguiente recuadro y seleccionar:

Pulsar OK y se genera el modelo de datos en Schemas

5
Crear en Modelo de Diseo un paquete llamado Modelo de
Datos dentro de este paquetes de los respectivos subsistemas (Sistema
de Compras, Sistema de Almacen, Sistema de Ventas), dentro del
Paquete Sistema de Ventas crear un diagrama de clase llamado
ModeloDeDatosSistemaDeVentas, y luego arrastrar a este diagrama
vacio cada tabla desde donde se generaron (Schemas) y ordenar
adecuadamente:

PERSONAL
(from S_BDVentas)

PEDIDO
(from S_BDVentas)

CLIENTE
(from S_BDVentas)

<<Non-Identifying >>

clieID : VARCHAR(255)
Direccion : VARCHAR(255)
Telefono : VARCHAR(255)
Email : VARCHAR(255)
FechaIng reso : DATE
CLIENTE_ID : INTEGER

1
1..*

<<Non-Identifying>>

0..*

1
1

<<PK>> PK_PEDIDO25()
<<FK>> FK_PEDIDO24()
<<FK>> FK_PEDIDO18()
<<Index>> TC_PEDIDO57()
<<Index>> TC_PEDIDO43()

<<PK>> PK_CLIENTE19()
1

pedidoID : VARCHAR(255)
Fecha : DATE
Monto : DOUBLE PRECISION
Estado : VARCHAR(255)
PEDIDO_ID : INTEGER
CLIENTE_ID : INTEGER
PERSONAL_ID : INTEGER

<<PK>> PK_PERSONAL27()
<<FK>> FK_PERSONAL25()
<<FK>> FK_PERSONAL30()
<<Index>> TC_PERSONAL59()
<<Index>> TC_PERSONAL67()

1
<<Identifying>>

<<Identifying>>

Apellidos : VARCHAR(255)
Nombre : VARCHAR(255)
FechaNac : DATE
Sexo : VARCHAR(255)
DNI : VARCHAR(255)
Sueldo : DOUBLE PRECISION
FechaIng : DATE
PERSONAL_ID : INTEGER
PERSONAL_PERSONAL_ID : INTEGER
PUESTO_ID : INTEGER

<<Non-Identifying >>
1..*

(from S_BDVentas)
Descripcion : VARCHAR(255)
PUESTO_ID : INTEGER
<<PK>> PK_PUESTO30()

<<Non-Identifying >>

0..1
0..*

<<Non-Identifying>>

<<Identifying>>

PUESTO

1..*

0..1
0..1

PEDIDODETALLE
JURIDICO
(from S_BDVentas)
RUC : VARCHAR(255)
RazonSocial : VARCHAR(255)
FAX : VARCHAR(255)
Contacto : VARCHAR(255)
CLIENTE_ID : INTEGER
<<PK>> PK_JURIDICO35()
<<FK>> FK_JURIDICO35()

NATURAL
(from S_BDVentas)
Apellidos : VARCHAR(255)
Nombre : VARCHAR(255)
FechaNac : DATE
Sexo : VARCHAR(255)
DNI : VARCHAR(255)
CLIENTE_ID : INTEGER
<<PK>> PK_NATURAL36()
<<FK>> FK_NATURAL37()

(from S_BDVentas)

DOCVTADETALLE

Precio : DOUBLE PRECISION


Cantidad : INTEGER
PEDIDO_ID : INTEGER
PRODUCTO_ID : INTEGER

DOCUMENTODEVENTA

(from S_BDVentas)
Precio : DOUBLE PRECISION
Cantidad : INTEGER
DOCUMENTODEVENTA_ID : INTEGER
PRODUCTO_ID : INTEGER

<<PK>> PK_PEDIDODETALLE26()
<<FK>> FK_PEDIDODETALLE26()
<<FK>> FK_PEDIDODETALLE23()
<<Index>> TC_PEDIDODETALLE55()
<<Index>> TC_PEDIDODETALLE61()

(from S_BDVentas)

<<Identifying>>
1

<<PK>> PK_DOCVTADETALLE20()
<<Unique>> TC_DOCVTADETALLE46()
<<FK>> FK_DOCVTADETALLE19()
<<FK>> FK_DOCVTADETALLE27()
<<Index>> TC_DOCVTADETALLE63()
<<Index>> TC_DOCVTADETALLE45()

1..*
<<Non-Identifying>>
<<Non-Identifying>>

<<Unique>> TC_DOCUMENTODEVENTA53()
<<PK>> PK_DOCUMENTODEVENTA21()
<<FK>> FK_DOCUMENTODEVENTA22()
<<Index>> TC_DOCUMENTODEVENTA52()
1

1..*

<<Identifying>>

1
1

PRODUCTO
(from S_BDVentas)
IDProducto : VARCHAR(255)
Descripcion : VARCHAR(255)
Precio : DOUBLE PRECISION
Stock : INTEGER
StockMin : INTEGER
UniMed : VARCHAR(255)
PRODUCTO_ID : INTEGER
LINEA_ID : INTEGER

Fecha : DATE
Monto : DOUBLE PRECISION
Estado : VARCHAR(255)
DOCUMENTODEVENTA_ID : INTEGER
PEDIDO_ID : INTEGER

<<Identifying>>

<<Non-Identifying>>

LINEA
(from S_BDVentas)

1..*

0..1

Descripcion : VARCHAR(255)
LINEA_ID : INTEGER

0..1

<<PK>> PK_LINEA31()

BOLETA

<<PK>> PK_PRODUCTO28()
<<FK>> FK_PRODUCTO31()
<<Index>> TC_PRODUCTO69()

(from S_BDVentas)

1
<<Identifying>>

FACTURA

DNI : VARCHAR(255)
DOCUMENTODEVENTA_ID : INTEGER
CLIENTE_ID : INTEGER

(from S_BDVentas)
RUC : VARCHAR(255)
DOCUMENTODEVENTA_ID : INTEGER
CLIENTE_ID : INTEGER

<<PK>> PK_BOLETA33()
<<FK>> FK_BOLETA32()
<<FK>> FK_BOLETA36()

<<PK>> PK_FACTURA34()
<<FK>> FK_FACTURA34()
<<FK>> FK_FACTURA33()

0..*

PRODUCTOPROVEEDOR
(from S_BDVentas)
Fecha : DATE
Precio : DOUBLE PRECISION
Observacion : VARCHAR(255)
PRODUCTO_ID : INTEGER
PROOVEDOR_ID : INTEGER
<<PK>> PK_PRODUCTOPROVEEDOR32()
<<FK>> FK_PRODUCTOPROVEEDOR29()
<<FK>> FK_PRODUCTOPROVEEDOR28()
<<Index>> TC_PRODUCTOPROVEEDOR65()
<<Index>> TC_PRODUCTOPROVEEDOR64()

PROOVEDOR
(from S_BDVentas)

<<Identifying>>

0..*

RUC : VARCHAR(255)
RazonSocial : VARCHAR(255)
Telefono : VARCHAR(255)
Direccion : VARCHAR(255)
FAX : VARCHAR(255)
Contacto : VARCHAR(255)
PROOVEDOR_ID : INTEGER

0..*

0..*

<<PK>> PK_PROOVEDOR29()

<<Non-Identifying>>

<<Non-Identifying>>

:
Se autogeneran las claves principales (pk) por defecto como tipo
entero (Integer) y as mismo se autogeneran las claves forneas (fk). Se
pueden cambiar los tipos y longitudes de cada atributo en las tablas
dando doble click en la tabla (CLIENTE) y seleccionando en el recuadro
la pestaa Columnas (Columns), luego dar doble click en el campo a modificar
(CLIENTE_ID), luego en el nuevo recuadro seleccionar tipo (Type), modificando
el tipo y longitud deseado (Tipo: char, longitud: 5) y asi sucesivamente con cada
campo.

6 Migrar el modelo de datos al gestor de base de datos (SQLServer)


seleccioando en Schemas:

Aparece el siguiente recuadro (Wizard):

Seguidamente seleccionar:

Seleccionar la carpeta donde se almacenar el Script y darle


nombre:

Marcar la casilla Execute y conectar a la base de datos BDVentas y


pulsar Next

Finalizando, habindose creado el Script y las tablas en el SQL


Server

7 Importar al Erwin por Ingeniera Reversa y crear los modelos


Lgico y Fsico en Erwin y luego regresar el modelo corregido por
ingeniera directa al SQL Server.

Posts

Comunidades

Registrate!

Identificarme

Posts

Comunidades

Google| Taringa!| Tags

uml

Buscar

Categoria

Mostrando 1 - 50 resultados

Fecha

Puntos

Pacestar UML Diagrammer Full [MU]

Hace 2 meses

Libros de Ingenieria del Software

Hace 2 meses

El mejor compendio de Informacion de Software Libre

Hace 2 meses

Aprenda UML en 24 horas + UML gota a gota

Hace 2 meses

Atando Cabos - Programacion Orientada a Objetos

Hace 3 meses

Sparx Enterprise Architect 7.5 - Instalador y Portable

Hace 3 meses

20

Diseo Orientado A Objetos Con UML

Hace 3 meses

Staruml portable

Hace 3 meses

MagicDraw UML 12

Hace 4 meses

10

Validar las precondiciones? (Casos de Uso)

Hace 4 meses

Libros UML (Modelado de Lenguaje Unificado)

Hace 4 meses

10

UML gota a gota

Hace 4 meses

15

Booch Analisis y diseo orientado a objetos 3ra edicion

Hace 4 meses

20

Inclusin o Generalizacin? Esa es la cuestin.

Hace 5 meses

visual paradigm, modelado de software

Hace 5 meses

Visual paradigm for UL6.3! con licencia infinita! en un link

Hace 5 meses

UML El Lenguaje unificado de modelado (Gary Booch)

Hace 5 meses

Edraw Max v4.5

Hace 6 meses

UML Coleccion de Libros

El ao pasado

Mostrando 1 - 50 resultados

Fecha

Puntos

UML Y Patrones, Graig Larman

El ao pasado

19

Java para Programadores (Deitel Developer Series)

El ao pasado

Para Programadores y Desarrolladores, una joya: IBM-Rational

El ao pasado

10

Coleccin Libros de Tecnologa I

El ao pasado

10

Cadifra UML Editor v1.3.1

El ao pasado

Libros y manuales de java, html, sun y muchos otros mas

El ao pasado

Queres programar? Entra ya!

El ao pasado

Programas para desarrollo UML + Libros + Apuntes [ :)]

El ao pasado

20

VisualWade, el editor grafico para PHP que tanto buscaste

El ao pasado

30

Libros y manuales de java, html, sun y muchos otros mas

El ao pasado

23

50 Libros de Programacin en pdf (link arreglado)

El ao pasado

10

Desarrollo Orientado a Objetos con UML

El ao pasado

Ingenieria de Software

El ao pasado

Manuales Programacion

El ao pasado

licencia infinita de visual paradigm

El ao pasado

Metodologia de desarrollo de UML - Descarga

El ao pasado

StarUML 5.0 Modelador Diagramas UML Excelente!

El ao pasado

Lo que no encontre en T! (solo para programadores)

El ao pasado

Modelmaker Code Exlporer 4.2

El ao pasado

eBooks Programacion/Ingenieria de Software

El ao pasado

Enterprise Architect Version 7.1

El ao pasado

90

UML Y Patrones

El ao pasado

Aprendiendo UML En 24 Horas

El ao pasado

UML Y Patrones

El ao pasado

20

Recopilacin UML

El ao pasado

Rational Rose Enterpise Edition

El ao pasado

UML - Libros de Ingeniera del Software

El ao pasado

UML - Curso de Lenguaje de Modelado Unificado en 24 Horas

El ao pasado

ModelMaker 9.16 + Crack

El ao pasado

10

UML Modelado de Lenguaje Unificado

El ao pasado

La ms grande Coleccin de libros de Sistemas

El ao pasado

0
Siguiente

API - Trabaja en Taringa! - Anuncie en T! - Protocolo - Contacto - Enlazanos - Mapa del sitio - Prensa - Denuncias - T! em Portugus
Trminos y condiciones - Privacidad de datos

Potrebbero piacerti anche