Está en la página 1de 239

Lenguaje de Modelamiento

Unificado
Mg. Fausto Chunga Avalo
… los Requerimientos ?
• Un requerimiento es una condición o capacidad
a la que el sistema (siendo construido) debe
conformar [ Rational Software Corp.].
• Un requerimiento de software puede ser
definido como :
– Una capacidad del software necesaria por el usuario
para resolver un problema o alcanzar un objetivo.
– Una capacidad del software que debe ser reunida o
poseída por un sistema o componente del sistema para
satisfacer un contrato, especificación, estándar, u otra
documentación formal.
Los Problemas de la Administración
de Requerimientos
• No son siempre obvios y tienen muchas fuentes.
• No son siempre fáciles de expresar en palabras.
• Hay muchos tipos diferentes a distintos niveles de
detalle.
• El número puede llegar a ser inmanejable.
• Están relacionados a otros en una variedad de formas.
• Hay muchos interesados y partes responsables.
• Cambian.
• Pueden ser sensibles al tiempo.
UML
• Un lenguaje estándar mundial para modelar
el software a construir similar al que se
utiliza para elaborar los planos de
construcción de una vivienda.
• Unifica muchos estándares de
diagramación conformando un
metalenguaje.
• Facilita el modelado de todo tipo de
sistema.
Ivar
Jacobson

Los Tres
Amigos
Grady
Booch

En 1994 Booch, Rumbaugh y


Jacobson dieron forma a la
primera versión del UML y en James
1997 fue aceptado por la Rumbaugh
OMG, fecha en la que fue
lanzada la versión v1.1 del
UML. Desde entonces, UML
atravesó varias revisiones y
refinamientos hasta llegar a la
versión actual: UML 2.0.
13 Tipos de Diagramas - UML
• Diagramas de Estructura:
– Diagrama de Clases,
– Diagrama de Objetos,
– Diagrama de Componentes,
– Diagrama de Estructura Compuesta,
– Diagrama de Paquetes, y
– Diagrama de Despliegue.

• Diagramas de Comportamiento:
– Diagrama de Casos de Uso,
– Diagrama de Actividad,
– Diagrama de Transición de Estados, y
– Diagramas de Interacción:
• Diagrama de Secuencia,
• Diagrama de Comunicación,
• Diagrama de Temporización, y
• Diagrama General de Interacción.
Diagrama Descripción Prioridad
Muestra una colección de elementos de modelado
Diagrama de Clases declarativo (estáticos), tales como clases, tipos y sus Alta
contenidos y relaciones.
Representa los componentes que componen una aplicación,
Diagrama de
sistema o empresa. Los componentes, sus relaciones, Media
Componentes
interacciones y sus interfaces públicas.
Representa la estructura interna de un clasificador (tal como
Diagrama de
una clase, un componente o un caso de uso), incluyendo los
Estructura Baja
puntos de interacción de clasificador con otras partes del
Compuesta
sistema.
Un diagrama de despliegue físico muestra cómo y dónde se
desplegará el sistema. Las máquinas físicas y los
procesadores se representan como nodos y la construcción
Diagrama de
interna puede ser representada por nodos o artefactos Media
Despliegue Físico
embebidos. Como los artefactos se ubican en los nodos
para modelar el despliegue del sistema, la ubicación es
guiada por el uso de las especificaciones de despliegue.
Un diagrama que presenta los objetos y sus relaciones en
un punto del tiempo. Un diagrama de objetos se puede
Diagrama de Objetos Baja
considerar como un caso especial de un diagrama de clases
o un diagrama de comunicaciones.
Un diagrama que presenta cómo se organizan los elementos
Diagrama de
de modelado en paquetes y las dependencias entre ellos, Baja
Paquetes
incluyendo importaciones y extensiones de paquetes.
Diagrama Descripción Prioridad
Diagrama de Casos Un diagrama que muestra las relaciones entre los actores y el
Media
de Uso sujeto (sistema), y los casos de uso.
Representa los procesos de negocios de alto nivel, incluidos el flujo
Diagrama de
de datos. También puede utilizarse para modelar lógica compleja Alta
Actividades
y/o paralela dentro de un sistema.
Un diagrama de Máquina de Estados ilustra cómo un elemento,
muchas veces una clase, se puede mover entre estados que
Diagrama de
clasifican su comportamiento, de acuerdo con disparadores de
Máquinas de Media
transiciones, guardias de restricciones y otros aspectos de los
Estado
diagramas de Máquinas de Estados, que representan y explican el
movimiento y el comportamiento.
Diagrama Descripción Prioridad

Diagrama de Es un diagrama que enfoca la interacción entre líneas de vida,


Comunicaciones donde es central la arquitectura de la estructura interna y cómo ella
(anteriormente: se corresponde con el pasaje de mensajes. La secuencia de los Baja
Diagrama de mensajes se da a través de un esquema de numerado de la
colaboraciones) secuencia.
Este Diagrama se enfoca en la revisión del flujo de control, donde
Diagrama General de
los nodos son Interacciones u ocurrencias de Interacciones. Las Baja
Interacción
Líneas de Vida los Mensajes no aparecen en este nivel de revisión
Un diagrama que representa una interacción, poniendo el foco en la
Diagrama de
secuencia de los mensajes que se intercambian, junto con sus Alta
Secuencias
correspondientes ocurrencias de eventos en las Líneas de Vida.
El propósito primario del diagrama de tiempos es mostrar los
cambios en el estado o la condición de una línea de vida
(representando una Instancia de un Clasificador o un Rol de un
clasificador) a lo largo del tiempo lineal. El uso más común es
Diagrama de
mostrar el cambio de estado de un objeto a lo largo del tiempo, en Baja
Temporización
respuesta a los eventos o estímulos aceptados. Los eventos que se
reciben se anotan, a medida que muestran cuándo se desea
mostrar el evento que causa el cambio en la condición o en el
estado.
RUP
• Proceso Unificado Rational, un marco de
trabajo para desarrollar software de calidad.

• Principios:
• Modelado con UML
• Basado en Casos de Uso
• Centrado en la Arquitectura
• Iterativo e Incrementable.
Fases del RUP
Bibliografía
Teoría de Objetos
¿ Cuál es su:
- marca
¿ Cuál es su: - kilometraje
- marca - nro placa
- kilometraje - color
- nro placa - modelo
- color ¿ Qué hace:
- modelo • enciende motor
En que • acelera
procesos se • frena
utilizan ? • apaga motor
• carga combustible
• enciende luces
• Actualiza kilometraje

Objeto

Analista con enfoque Analista con enfoque


centrado en los datos centrado en los objetos
Definición de Objeto
• Todo aquello a lo que podemos
reconocerle una identidad, un estado y un
comportamiento.

• Es una colección de elementos de datos


junto con las funciones o métodos
asociados para operar sobre ellos y para
comunicarse con otros objetos.
Identidad
• Es la propiedad que diferencia un objeto de otro
similar. En esencia la identidad de un objeto
caracteriza su propia existencia.

• La identidad hace posible distinguir cualquier


objeto sin ambigüedad e independientemente
de su estado.

• Esto permite, entre otras cosas, la diferenciación


de dos objetos que tengan atributos idénticos.
Identidad
• Cada objeto tiene una identidad única, incluso si
tiene las mismas características que otros y se
encuentra en el mismo estado.
Estado de un objeto
• Cada uno los objetos de una clase tendrá
generalmente un estado particular propio.
• El estado esta relacionado con los valores de
algunos de los atributos característicos de un
objeto.
– Para una botella, su contenido, que establece que
una botella pueda estar llena, medio llena o vacía
• Con algunas operaciones comunes que comparte
con otros objetos:
– como <<llenar>>, <<vaciar>>, <<destapar>>), y
• Tiene además otros atributos no relacionados con
el estado.
• como el color y modelo de una botella
Estado de un Objeto
• Un objeto se encuentra en un determinado
momento en un estado específico como
consecuencia de algún evento.

Párate ! Camina ! Siéntate !

Parado Caminando Sentado


Comportamiento
• Los datos describen la abstracción de las características
individuales que poseen todos los objetos.
• Las operaciones cambian el objeto (su comportamiento)
de alguna forma, es decir, cambian valores de uno o
más atributos contenidos en el objeto. Aunque existen
gran número de operaciones que se pueden realizar
sobre un objeto, generalmente se dividen en tres
grandes grupos:
– Operaciones que manipulan los datos de alguna forma
específica (añadir, borrar, cambiar formato, …)
– Operaciones que realizan un cálculo o proceso
– Operaciones que comprueban un objeto frente a la ocurrencia
de algún evento de control.
Objetos
Objeto Identidad Estados Comportamiento
Venta Nro 2345601 Emitida Crear
Pagada Modificar
Anulada Añadir producto
Pagar
Anular
Alumno Cod 1998234 No matriculado Matricula
Matriculado Retiro
Retirado Egreso
Egresado
Cita medica Nro 234516 Emitida Crear
Pagada Pagar
Atendida Atender
Suspendida Suspender
Contribuyente RUC 201345678965 Habido Crear
No habido Sancionar
Dar baja
Clasificar
Tipos de Objetos

 Concretos: Persona-Carro-PC
 Roles: Doctor-Propietario-Maestro
 Relacional: Sociedad-Hijo-Matrimonio
 Eventos: Venta-Compra-Arribo
 Exponibles: Icono-Window-Imagen-Menú
Estructura interna de un Objeto
• Atributos (datos o valores)
• Operaciones (métodos o servicios)

– Los atributos describen el estado del objeto. Un


atributo consta de dos partes: un nombre de atributo
y un valor de atributo.
– Los métodos describen el comportamiento asociado
a un objeto. Representan las acciones que pueden
realizarse por o sobre un objeto.
Características de los Objetos
• Se agrupan en tipos llamados clases.
• Tienen datos internos que definen su estado
actual.
• Soportan la ocultación de datos.
• Pueden heredar propiedades de otros objetos.
• Pueden comunicarse con otros objetos
pasando mensajes.
• Tienen métodos que definen su
comportamiento.
Mensajes
• Los Objetos en un Sistema trabajan en
conjunto, esto se logra por intermedio de
mensajes entre ellos.
• Un Objeto envía a otro un mensaje para
realizar una operación y el Objeto receptor
recibe dicho mensaje para su ejecución.

Ejemplo: El Televisor y su Control Remoto.


Métodos y mensajes
• Los procedimientos y funciones, denominados métodos,
residen en el objeto y determinan cómo actúan los
objetos cuando reciben un mensaje.
• Un mensaje es la acción que hace un objeto. Un método
es el procedimiento o función que se invoca para actuar
sobre un objeto y especifica cómo se ejecuta un
mensaje.
• Los mensajes que recibe o envía un objeto son los
únicos conductos que asociacian el objeto con el mundo
externo.
• Los datos de un objeto están disponibles sólo para ser
manipulados por los métodos del propio objeto.
Clase y Objeto
• Un objeto es un simple elemento, no importa lo
complejo que pueda ser.

• Una clase describe una familia de elementos


similares, es un esquema o plantilla que se
utiliza para definir o crear objetos.
Representación gráfica de una Clase
(Notación de Ege)
• Un objeto se dibuja como una caja
rectangular. La caja se etiqueta con
el nombre del objeto y representa el
límite o frontera entre el interior y el NOMBRE CLASE
exterior de un objeto.
ATRIBUTOS
• Los campos y funciones miembro en (DATOS MIEMBRO)
el interior de la caja están ocultos al
exterior (encapsulados).
• El acceso a las características de los OPERACIONES
(FUNCIONES MIEMBRO)
miembros (datos y funciones) es
posible a través del interfaz del
objeto
Clases
• Una clase es la Ejec105 : Maleta
Viaj325: Maleta

descripción de un
conjunto de objetos;
consta de datos y
métodos que resumen
características Cobr2154 : Maleta Est1235: Maleta
comunes de un
conjunto de objetos.
• Cada vez que se
construye un objeto a Maleta
partir de una clase Denominacion
Color
estamos creando lo que ATRIBUTOS Precio
Capacidad
se llama una instancia
de esa clase. OPERACIONES
Abrir ( )
Cerrar ( )
Calcular peso ( )
Operaciones
• Son funciones o PERSONA
transformaciones que se nombre
edad
aplican a todos los objetos
de una clase particular. trabajar ( )
votar( )

• La operación puede ser una UNIVERSIDAD

acción ejecutada por el nombre


direccion
objeto o sobre el objeto.
• No se debe utilizar el mismo RECTANGULO
enseñar ( )
graduar( )

nombre en operaciones que ancho


largo
tengan un significado /area

totalmente diferente. dibujar ( )


borrar( )
calcular_area( )
Propiedades de un objeto
• Abstracción y clasificación
• Encapsulamiento
• Herencia
• Agregación y composición
• Poliformismo o polimorfismo
Abstracción
• Es una de las vías fundamentales por la que los
humanos combatimos la complejidad.

• La abstracción surge del reconocimiento de las


similitudes entre ciertos objetos, situaciones o
procesos del mundo real, y en la decisión de
concentrarse en esas similitudes e ignorar por el
momento las diferencias.
La abstracción centra su atención en las características
esenciales de un objeto en relación a la perspectiva del
observador
Encapsulamiento
• La encapsulación es una
característica que permite el
ocultamiento de la información
como un concepto avanzado de la
teoría de objetos.
Objeto
• Es la propiedad que permite
incluir en una sola clase los datos Datos Datos
y las operaciones que operan privados públicos
sobre esa información.

• La encapsulación de información Funciones Funciones


y operaciones es muy importante. privadas públicas
Los métodos de un objeto sólo
pueden manipular directamente
datos asociados con el objeto.
El encapsulamiento oculta los detalles de la
implementación de un Objeto
Encapsulamiento
• Es el ocultamiento de la Funcionalidad interna
de las características y algunas operaciones, a
otros objetos y al mundo exterior.
Encapsulamiento
– ( - ) Privado: es el más
fuerte. Esta parte es
visible sólo para los Reglas de visibilidad
“friends” en terminología + Atributo público : int
C++. # Atributo protegido : int
- Atributo privado : int
– ( # ) Protegido: están
visibles sólo para los + "Operación pública"
friends y para las clases # "Operación protegida"
- "Operación privada"
derivadas de la original.
– ( + ) Público: son visibles
a todas las clases (se
pierde la encapsulación).
Herencia
• La herencia es la propiedad que
permite a los objetos ser
construidos a partir de las
características de otros objetos.

• El objetivo de la herencia es la
reutilización del código
previamente desarrollado,
siendo esta la real potencia de
la POO.

• La herencia supone una clase


base y una jerarquía de clases
que contienen las clases
derivadas de la clase base.
CRIATURA
AVE
tipo
peso
habitat
crear( )
esperanza_vida( )
Jerarquía
PEZ y Herencia
MAMIFERO
periodo_gestacion

PERSONA
nombre
fecha_nacimiento
origen

HOMBRE MUJER
esposa esposo
Tipos de Herencia
• Herencia simple (jerárquica)
– La simple es aquel tipo de herencia en la cual un
objeto puede tener sólo un ascendiente, o dicho de
otro modo, una subclase puede heredar datos y
métodos de una única clase así como añadir o quitar
comportamiento de la clase base.

• Herencia múltiple (en malla)


– La múltiple es aquel tipo de herencia en la cual una
clase puede tener más de un ascendiente inmediato,
o lo que es igual, adquirir datos y métodos de más de
una clase.
FIGURA PERSONA

CIRCULO CUADRILATERO TRIANGULO PROFESOR INVESTIGADOR

TRAPECIO RECTANGULO PROF_UNIVERSITARIO

Herencia Simple Herencia Múltiple


Agregación y composición
• A los objetos que pueden contener otros
objetos se conocen como objetos
compuestos.
• En la mayoría de los sistemas los objetos
no “contienen” en el sentido estricto a
otros objetos, sino que contienen
referencias a otros objetos.
• Un objeto compuesto consta de una
colección de dos o más objetos
componentes, los cuales tienen una
relación del tipo “parte-de” con el objeto
compuesto.
• Cuando un objeto compuesto se instancia
para producir una instancia del objeto,
todos sus objetos componentes se deben
instanciar al mismo tiempo.
AUTO
Todo
codAuto
nroPlaca
marca
color
año
kilometraje
SISTEMA
ALARMA

tipo
proveedor
SISTEMA siLuces
MOTOR FRENOS nivelSonido

nro_cilindros tipo
potencia proveedor
cilindrada nivel_liquido
valvulas_cilindro Parte
Parte

SISTEMA
TRANSMISION CHASIS
tipo_embrague
caja_cambio tipo
color

Parte
Un ejemplo de un objeto compuesto es la clase auto. Un auto consta de diversas
partes tales como un motor, un sistema de frenos, un sistema de transmisión, un
sistema de alarma y un chasis. Estas partes constituyen los objetos componentes
del objeto auto de modo que cada uno de estos objetos componentes pueden
tener atributos y métodos que los caracterizan.

AUTO
Atributos MOTOR SISTEMA
nro_autos_disponibles FRENOS
nro_cilindros
nro_autos_vendidos
potencia tipo
Atributos compartidos
cilindrada proveedor
concesionario
valvulas_cilindro nivel_liquido
Atributos de instancia
modelo
color
precio
año
SISTEMA
Objetos componentes CHASIS
TRANSMISION
motor
sistema_frenos tipo
sistema_transmision tipo_embrague color
chasis caja_cambio
Objeto
compuesto Estructura de
var 1: obj1 objetos
var 2: obj2
compuestos

obj1
obj2

Orden
compra
Orden
var 1: cliente
compra
var 2: articulo
var 1: cliente
var 2: articulo

articulo cliente
articulo
Agregación
Polimorfismo
• Propiedad por la cual un mismo objeto u objetos de una
misma clase u objetos de clases diferentes, responden
de distinta manera a un mismo mensaje.

• La utilización de operadores o funciones de formas
diversas, dependiendo de cómo estén operando se
denomina polimorfismo.

• La sobrecarga es una clase de polimorfismo.

• La gran ventaja ofrecida por el polimorfismo y la


sobrecarga es permitir que los nuevos tipos de datos
sean manipulados de forma similar que los tipos de
datos predefinidos, logrando así ampliar el lenguaje de
programación.
Polimorfismo
• Es la propiedad que tienen los objetos de permitir
invocar genéricamente un comportamiento (método)
cuya implementación será delegada al objeto
correspondiente recién en tiempo de ejecución.

Transporte
Avanzar
Frenar
Transporte
Avanzar

Frenar Transporte
Avanzar
Frenar

Transporte
Avanzar
Frenar
Diagrama de Casos de Uso
Caso de Uso
• Secuencia de interacciones entre un actor
cumpliendo un rol y el sistema con la
finalidad de que el actor pueda satisfacer
un requerimiento.

Caso Caso
Uso 1 Uso 2 Actor
(rol3)
Caso
Uso 3

Caso
Caso Uso 5
Actor Uso 4
(rol1) Actor
Sistema (rol2)
Actor
• Persona, unidad organizacional,
mecanismo, u otro sistema que deseando
satisfacer un requerimiento inicia la
interacción con el sistema.

• Actor primario es quien inicia la interacción


y actor secundario es de quien se vale el
sistema para satisfacer el requerimiento
del actor primario.
Caso de Uso
• Los casos de uso se identifican hablando con los
usuarios habituales y analizando con ellos las
distintas cosas que desean hacer con el sistema
(requerimientos).
• Se debe abordar cada uso concreto que quieran
realizar, darle un nombre y escribir un texto
descriptivo breve (forma corta).
• La mayoría de los casos de uso se pueden
detallar durante las iteraciones con los usuarios,
a medida que se construyen (forma extendida).
Asociaciones entre
Casos de Uso
• Inclusión
– Cuando un caso de uso esta incluido dentro
de otro y al ser “factorizado” puede ser
reutilizado por otros casos de uso; también
se utiliza para mejorar la comprensión del
caso de uso.
• Extensión
– Cuando un caso de uso opcionalmente puede
extenderse hacia otro caso de uso.
Realizar
venta Realizar cobro
con Tarjeta
Vendedor Crédito Banco
incluye (actor secundario)
(actor primario)
extiende

Realizar
cobro de
factura

Sistema
Tipificación de casos de uso
• El ordenamiento de los casos de uso que
expresan la forma de satisfacer los
requerimientos de un actor se tipifican como:

– Definir - Consultar
– Seleccionar - Realizar
– Ingresar o Entrar - Actualizar
– Imprimir - Calcular
– Vincular - Autorizar
Definir Entidad
• Una Entidad representa un Objeto de negocio que forma parte
de una Organización.

• Actor fija, determina, y decide cuales son los atributos


distintivos de una Entidad; señala sus límites y sus
responsabilidades, discrimina lo que es esencial de lo que es
circunstancial.

• Ej. Definir Agente, Cliente, Contribuyente, Organización, Sub


Sistema, Lugar, Punto de Actuación, Dispositivo, Parámetros de
Aplicación, Item, Artículo, Catálogo de …, Acta de Examen,
Cuenta, Cartera de, Plantilla de Documento, Mensaje entre
Entidades, …

Definir Cta
Ahorro
Realizar Actuación
• Una Actuación representa algo que ha sucedido, está
sucediendo, o puede suceder en el futuro, gracias a la
combinación de varias Entidades.

• Actor pone en acción diversas Entidades dentro de un flujo de


trabajo que está bajo su control.

• Ej. Realizar Transacción, Mensaje, Venta, Arqueo de Caja,


Apertura, Cierre, Transferencia, Declaración Anual, pedido,
Inventario, Regularización de Stock, Solicitud, Devolución de
Item, Pago, Remesa, Abono, Orden de Transferencia,
Activación, Notificación, Configuración, Modificación,
Observación, Matricula, Subasta, Evaluación, …

Realizar
Abono en
Cta
Ingresar o Entrar Item
• Representa el ingreso del detalle de la estructura de una
Entidad o una Actuación.

• Actor ingresa o entra partes correspondientes a una Entidad


o, a una Actuación.

• Ej. Entrar Rol de un Agente, Línea de Transacción, Item en una


Cartera, Línea de venta, Calificaciones en un Acta de Notas,
Lote de, Factura de Agente, Variable, Previsiones, Propiedades,
Estados, Composición de un Item, Regla de Negocio,
Representante, Incidencia de un Proceso, …

Realizar <<Incluye>> Ingresar


Abono en monto a
Cta abonar
Procesar Item
• Representa un cambio de estado en una Entidad o una
Actuación, a partir de una transformación.

• Por orden de un Actor, el sistema realiza una serie de


transformaciones en una o varias Entidades y/o Actuaciones,
dentro de unas coordenadas espacio-tiempo y con una
cadencia determinada.

• Ej. Procesar Cuentas, mailings, pedidos, Facturas, Movimientos


de Almacén, Notas de Entrega (Albarán), Incidencias, items en
una cartera, Contenido de un Documento, …

<<Incluye>>
Ingresar
Procesar
periodo
Ctas Ahorro
Actualizar Item

• Representa un cambio de estado en una Entidad o una Actuación, a


partir de un movimiento entre Emisor y Receptor.

• Por orden de un Actor, sistema realiza una transferencia (emisor –


receptor) de Entidades y/o Actuaciones dentro de unas coordenadas
espacio-tiempo y con una cadencia determinada.

• Ej. Actualizar Catálogo, Cuenta, Venta, Artículo, Cartera de …,


Canal de Noticias, Nivel de Riesgo, Localización de Artículo, …
Calcular
intereses del
mes

Procesar
Ctas Ahorro
Actualizar
Ctas Ahorro
Consultar Item

• Representa la construcción de un Query.

• Actor busca información sobre Entidades y/o Actuaciones a


través de unas condiciones de consulta.

• Ej. Condiciones referidas a Fechas, Códigos, Estados, …

Realizar <<extend>> Consultar


Retiro de Fondos de
Cta Ahorro Cta Ahorro
Seleccionar Item

• Representa el resultado de una Query.

• Actor escoge Entidades y/o Actuaciones de un conjunto


delimitado por el resultado de una búsqueda.

• Ej. Clientes, Alumnos, Pacientes, Ventas, Artículos, Matriculas,…

Realizar Seleccionar
<<Incluye>>
Retiro de Nro Cta
Cta Ahorro Ahorro
Imprimir Documento

• Representa la justificación o resultado de una Actuación.

• Actor ordena fijar o reproducir en un documento de negocio un


conjunto de atributos pertenecientes a la estructura de una o varias
Entidades y/o Actuaciones.

• Ej. Imprimir Ticket de, Notas de Entrega, Contratos, Cuentas,


Expedientes, Listas de Arqueo, Relación de Items, Formulario,
Orden de Trabajo, Lista de Alumnos, …
Seleccionar
Nro Cta
Ahorro
Realizar
Abono en
Ingresar
Cta Ahorro
monto a
abonar
Imprimir
Voucher de
Abono
Calcular Importe, Promedio, …
• Representa un algoritmo complejo de cálculo por parte del
Sistema.

• Sistema determina un valor numérico a partir de unos


parámetros y una expresión matemática predefinida.

• Ej. Calcular Importe de Línea, Descuento de, Impuesto de, Total


Factura, Riesgo Comercial, Retribuciones, Primas de Venta-
Producción, Número de Lotes, …

<<Incluye>> Calcular
Procesar intereses del
Ctas Ahorro mes
Validar
• Representa una certificación o verificación de una Entidad
por parte del Sistema.

• Sistema declara la conformidad de una Entidad, o una


Actuación, a partir de unos parámetros y una expresión
lógica predefinida.

• Ej. Validar Existencia de Entidad (Cliente, Alumno, Usuario,


Trabajador, etc), Regla de Negocio, Entrada de un campo
(datatype), Nivel de Acceso, Umbral de Tiempo, …

Validar Cta

Realizar
Retiro de
Cta Ahorro Seleccionar
Nro Cta
Ahorro
Vincular Items
• Representa un Grupo relacionado de Items.

• Actor ordena relacionar de una manera persistente a un


conjunto restringido de Entidades y/o Actuaciones.

• Ej. Vincular Agentes, Items, Actuaciones, Expedientes,


Pacientes, Diagnósticos, Procedimientos, Prestaciones,
Incidencias, Productos, Servicios, Pagos, …

<<Incluye>> Vincular
Realizar
Operaciones
Auditoria a
en Cta
Cta
Autorizar
• Representa una habilitación para que una Entidad pueda
actuar, o para que una Actuación siga su curso.

• Actor acredita a una Entidad para que pueda participar en una


Actuación con un Rol y una responsabilidad determinada
como Participante. Actor desencadena la realización de una
Actuación controlada.

• Ej. Autorizar Agente habilitado, Transacción, Acceso,


Habilitación de un Punto de Actuación. Afiliación, Solicitud,
Prestación, Pago, Transferencia, Tramitación, …
Seleccionar Cta
Origen y Cta
Realizar Destino
Transferencia
Fondos
Autorizar
Transferencia
ESPECIFICACIÓN DE UN CASO DE USO

<Identificador> <nombre descriptivo>

Descripción El sistema deberá permitir a [lista actores] en [instante en el que se puede realizar el
caso de uso] [funcionalidad que define el caso de uso] según se describe en el
siguiente caso de uso:
Precondiciones <precondición del caso de uso>: Lo que tiene que cumplirse o ser verdadero para que
el caso de uso se ejecute con éxito.
Secuencia Paso Acción
Normal 1 {<acción a realizar>, realizar el caso de uso [caso de uso]}
2 <Situación que produce una alternativa>
2a Si [Situación que produce una alternativa] el sistema deberá
{<acción a realizar>, realizar el caso de uso [caso de uso]}
2b Si [Situación que produce una alternativa] el sistema deberá
{<acción a realizar>, realizar el caso de uso [caso de uso]}
… ….
… …
n ….
Postcondición <postcondición del caso de uso>: Lo que tiene que cumplirse o ser verdadero cuando
finalice el caso de uso.
Extensiones Paso Acción
p En el caso de que [situación opcional que provoca la extensión] el
sistema deberá {<acción a realizar>, realizar el caso de uso [caso de
uso]}
… …
q …
Excepciones {Esta sección describe todas las condiciones de error que pueden presentarse en el
caso de uso.}
Lista de cualquier excepción que debería hacer que el caso de uso se ejecute
inadecuadamente y que genera un mensaje de error.
Rendimiento El sistema deberá realizar la/s acción /es descrita/s en {los pasos [primer paso] al
[último paso], el paso [número de paso]} en un máximo de [cota de tiempo]
Frecuencia Este caso de uso se espera que se lleve a cabo una media de [número de veces] al
[unidad temporal]
Importancia {vital, importante,quedaría bien}
Urgencia {inmediatamente, hay presión, puede esperar}
Comentarios <otras consideraciones en formato libre>
1.- Caso de Uso del Sistema

2.- Descripción del caso de uso

3.- Actor(es)

4.- Precondiciones

5.- Post condiciones

6.- Pasos (Flujo de Eventos)


Nro Acción del Actor Respuesta del Sistema
1

2 Escenario 1.-

4 Escenario 2.-

6 Escenario 2.1:

8 Invoca al CU nro …

9 Escenario 2.2.-

10 Invoca al CU nro …

11 Escenario 3:
Selecciona Finalizar
12 Cierra la Interface nro … y termina el caso de uso.

7.- Requerimiento asociado

8.- Prototipo de Interface de usuario


Especificación corta de Caso de Uso

Caso de Uso: Realizar Pedido


Actor primario: vendedor

“ Cuando se recibe un pedido, el vendedor comprueba si para


cada artículo solicitado existen los stocks suficientes. Si la
respuesta es afirmativa, asigna los artículos al pedido. Si esta
asignación reduce el stock disponible de un producto por debajo
del nivel de reposición (reorden), el vendedor ordena su
reposición; mientras se hace esto, se verifica que el pago sea
correcto. Si el pago es correcto y hay artículos suficientes en
stock, se despacha el pedido. Si el pago es correcto pero no hay
stock suficiente, se deja en espera el pedido. Si el pago no es
correcto, se anula el pedido ”.
Diagrama de Secuencia
Diagrama de secuencia
• Es una representación que muestra, en un
determinado escenario, los eventos generados
por actores externos al sistema y su orden
secuencial.
• En un primer momento al sistema se le trata
como caja negra; los diagramas se centran en
los eventos que fluyen de los actores al sistema.
– En el diagrama el tiempo avanza hacia abajo, y el
ordenamiento de los eventos debe seguir el orden
indicado en el caso de uso.
– Los eventos del sistema pueden incluir parámetros.
Eventos, mensajes y operaciones
• El evento de un sistema es un hecho externo de
entrada que un actor produce sobre un sistema.
• La operación de un sistema son las acciones
que éste lleva acabo a través de las clases en
respuesta al evento externo y ejecutadas por
una secuencia de mensajes.
• El nombre del evento y de la operación son
idénticos; la distinción reside en que el evento
es el estímulo nombrado y la operación es la
respuesta (lo mismo sucede con los mensajes y
los métodos).
Mensajes

• Los mensajes se muestran como flechas.


Los mensajes pueden ser completos,
perdidos o encontrados; síncronos o
asíncronos; llamadas o señales.
• En el siguiente diagrama:
– el primer mensaje es un mensaje síncrono
(denotado por una punta de flecha oscura),
completo con un mensaje de retorno implícito;
– el segundo mensaje es asíncrono (denotado por
una punta de flecha en línea), y
– el tercero es un mensaje de retorno asíncrono
(denotado por una línea punteada).
SD mensajes

Origen Destino

retorne:=mensaje(parametros)

mensaje(parametros)

mensaje(retorno)
Mensaje Self

• Un mensaje self puede representar una


llamada recursiva de una operación, o un
método llamando a otro método
perteneciente al mismo objeto.
• Este se muestra cuando crea un foco de
control anidado en la ocurrencia de
ejecución de la línea de vida.
SD self

origen

mensaje self

recursion
Inicio y final de línea de vida
• Una línea de vida se puede crear o destruir
durante la escala de tiempo representada por un
diagrama de secuencia.
• En el último caso, la línea de vida se termina por
un símbolo de destrucción, representado como
una cruz.
• En el primer caso, el símbolo al inicio de la línea
de vida se muestra en un nivel más bajo de la
página que el símbolo del objeto que causó la
creación.
• El siguiente diagrama muestra un objeto que fue
creado y destruido.
SD padre e hijo

Padre

crear
Hijo

borrar
Restricciones de tiempo y
duración
• En forma predeterminada, un mensaje se
muestra como una línea horizontal.
• Ya que la línea de vida representa el pasaje
de tiempo hacia abajo, cuando se modela un
sistema en tiempo real, o incluso un proceso
de negocios en tiempo límite, puede ser
importante considerar el tiempo que toma
realizar las acciones.
• Al configurar una restricción de duración para
un mensaje (delay), el mensaje se mostrará
como una línea inclinada.
Fragmentos combinados
• No se espera que los diagramas de
secuencia muestren lógicas de
procedimientos complejos.
• Siendo este el caso, hay un número de
mecanismos que permiten agregar un
grado de lógicas de procedimientos a los
diagramas y que a la vez vienen bajo el
encabezado de fragmentos combinados.
• Un fragmento combinado es una o más
secuencias de procesos incluidas en un
marco y ejecutadas bajo determinadas
circunstancias nombradas y específicas.
Fragmentos disponibles
– El fragmento Alternative (denotado “alt”) modela estructuras if…then…else.
– El fragmento Option (denotado “opt”) modela estructuras switch.
– El fragmento Break modela una secuencia alternativa de eventos que se procesa
en lugar de todo del resto del diagrama.
– El fragmento Parallel (denotado “par”) modela procesos concurrentes.
– El fragmento de secuenciado Weak (denotado “seq”) incluye un número de
secuencias para las cuales todos los mensajes se deben procesar en un segmento
anterior, antes de que el siguiente segmento pueda comenzar, pero que no impone
ningún secuenciado en los mensajes que no comparten una línea de vida.
– El fragmento de secuenciado Strict (denotado “strict”) incluye una serie de
mensajes que se deben procesar en el orden proporcionado.
– El fragmento Negative (denotado “neg”) incluye una serie de mensajes inválidos.
– El fragmento Critical incluye una sección crítica.
– El fragmento Ignore declara un mensaje o mensajes que no son de ningún interés
si este aparece en el contexto actual.
– El fragmento Consider es el opuesto del fragmento Ignore: cualquier mensaje que
no se incluya en el fragmento Consider se debería ignorar.
– El fragmento Assertion (denotado “assert”) designa que cualquier secuencia que
no se muestra como un operando de la aserción es inválida.
– El fragmento Loop incluye una serie de mensajes que están repetidos.
Fragmento que
combina una
Alternancia (alt)

Las alternativas se utilizan para


designar una opciones
mutuamente excluyentes entre
dos o más secuencias de
mensajes. Alternativas
permiten el modelado de la
clásica lógica
“If … Then … Else" .
Fragmento que combina un loop (opt)
Combinación de un LOOP

• En ocasiones, necesitaremos modelar una secuencia


repetitiva. En UML 2, el modelado de una secuencia
repetitiva se ha mejorado con la adición de bucles.
• El uso de la combinación de un bucle es muy similar
en apariencia al uso de la combinación de una opción.
• En un loop o bucle, una condición guarda puede tener
dos condiciones especiales de prueba en contra
además de la prueba Booleana estándar; las
condiciones son minint y maxint para el mínimo y
máximo número de iteraciones en la repetición de
mensajes..
Fragmento LOOP
Fragmento que combina una opción (opt)

Es usada para modelar una


secuencia que, dada una
cierta condición, se
ejecutará; en otro caso, la
secuencia no se ejecutará.
Una opción es usada para
modelar una simple
sentencia (if …. Then …..)
Opt es similar al fragmento
que combina la alternancia,
salvo que sólo tiene un
operando y no existe la
condición “else“
(simplemente no tiene
sentido aquí).
• Sentencias de
control de flujo de
ejecución en los
diagramas de
secuencia
– alt: Equivale a un
if/else
– loop: Equivale a un
for
– Existen más
sentencias
Como
Actor caja negra

Sistema
:cajero
IniciarVenta ( )

Ingresar producto IniciarVenta ( )

Loop Seleccionar producto (codigo)

Ingresar cantidad producto


Mostrar stock(codigo)
cantidad producto (codigo,z)

Actualizar stock (codigo,z)


Ingresar nuevo producto

TerminarVenta ( )

EfectuarPago (monto)

Evento del sistema


inicia una operación
del sistema
Diagrama de Interacción General
: Maestro de
: Jefe de obra: CI-Menú : CC-Aceptar/Rechazar : CI-Aceptar/Rechazar : Proyecto
proyectos
proyecto
Aceptar/Rechazar un proyecto( )
Aceptar/Rechazar proyecto( ) Proyectos:=Obtener todos los proyectos evaluados técnica y económicamente( )

Proyecto:=Obtener datos del proyecto( )

Técnicamente:=Verificar si está evaluado técnicamente( )

Solo se devuelven
Económicamente:=Verificar si está evaluado económicamente( )
los datos si el tiene
ambas evaluaciones

Mostrar todos los proyectos(Proyectos )

Indica resultados de análisis de un proyecto( )

Registrar Aceptación/Rechazo( Proyecto,Aceptación/Rechazo)


Si no es el
Registrar Aceptación/Rechazo( Proyecto,Aceptación/Rechazo) proyecto, no se
cambia el estado
Cambiar estado( Proyecto,Aceptación/Rechazo)

Verificar si es proyecto(Proyecto )

Cambiar estado( Aceptado)

Cambiar estado( Rechazado)

Se ejecuta uno u
otro método
Diagrama de Actividad
Diagrama de Actividad

• Son particularmente útiles para la descripción del


comportamiento
• Permite recoger o definir el orden en que se hacen o
se harán las cosas. Esto es, establece las reglas
esenciales de secuenciación ha seguir.
• Los diagramas de flujo se limitan normalmente a
procesos secuenciales; los diagramas de
actividades pueden manejar procesos paralelos.
• Ésta es la diferencia clave entre un diagrama de
actividades y un diagrama de flujo.
Elementos de un Diagrama de
Actividad
• Los elementos más habituales son:
– Nodos inicio y final
– Actividades / acciones.
– Decisiones.
– Swimlanes o carriles.

• También se puede utilizar:


– Objetos.
– Barras de sincronización (Fork/Join)
Usos del Diagrama de Actividad
• Podemos utilizar
diagramas de actividades
para:
• Definir el comportamiento
de casos de uso.
• Modelar procesos de
negocio.
• Definir el comportamiento
de un método.
• Definir estados complejos.
Diagrama de Actividad
• Esta última característica es importante para el
modelado de negocios. Los negocios con
frecuencia establecen procesos secuenciales
innecesarios.
• Una técnica como ésta, que promueve el
comportamiento paralelo, es valiosa en estas
situaciones, porque auspicia que las personas
se aparten de las secuencias innecesarias en
su comportamiento y descubran oportunidades
para hacer cosas en paralelo.
• Esto puede mejorar la eficiencia y capacidad
de respuesta de los procesos del negocio.
• Los diagramas de actividad deben Swimlanes o
mostrar qué se hace y quien lo
carriles
hace. Esto significa que el
diagrama especifica cuáles son los CLIENTE VENDEDOR ALMACÉN
roles o unidades organizacionales
responsables de cada actividad.
• Los carriles(swimlanes) son una
forma de subsanar esta
deficiencia.
• Para usar los carriles, el diagrama
de actividad se debe organizar en
zonas verticales separadas por
líneas similares a los de una
piscina. Cada zona representa la
responsabilidad de una clase o de
un rol o, el de una unidad
organizacional(departamento) en
particular.
Diagrama de actividad para retirar dinero de cta a través de cajero automático
Diagrama de actividad para servir y tomar bebida

[no hay café] [no zumo]


Buscar Bebida
[hay café] [hay zumo]

Poner café en filtro Añadir agua al depósito Coger taza

Poner filtro en máquina Coger zumo

Encender máquina
^cafetera.On
Café en preparación

indicador de fin
Servir café
Beber
Diagrama de actividad para compra un pasaje aéreo
Pasajero Vendedor Airline

Solicitar pasaje
Verificar
existencia vuelo

Dar detalles vuelo

Informar alternativas
y precios
Seleccionar vuelo

Solicitar pago Reservar asiento

Confirmar
Pagar pasaje asiento reservado

Emitir billete
Diagrama de Paquetes
Que es un Paquete?
• Un paquete representa una forma de
agrupar elementos del modelado del SI
muy cohesionados ( o muy relacionados)
para mostrar un mayor orden y
organización para la construcción del SI.
Diagrama de Paquetes
• Diagrama que muestra la asociación de
dependencia entre los distintos paquetes
definidos para un SI.
• Los paquetes pueden representar
sectores de actividad, áreas de negocio o
módulos del sistema de información.
Stma Inf. Gestión Hospitalario

LABORATORIO CITAS

PROGRAMACION
ATENCION
MEDICA

CAJA
PROGRAMACION Elementos de Paquete

• Actores:
– Responsable Programación de servicios
– Medico
• Casos de Uso
– Realizar Registro Programación servicios médicos
– Realizar Registro de disponibilidad horaria
• Diagramas de secuencia
• Diagramas de Actividad
• Diagramas de transición de estados
• Diagramas de clases
GUI
Stma. Gestión Hospitalaria

DEFINIR CONSULTORIO
Código Consultorio Pabellón Piso

Muebles Equipos
Escritorio Balanza
Sillas Lámpara
Archivador PC
Estante Comunicador

Camilla Teléfono

Muebles
Registrar
y Equipos
Diagrama de Clases
Clases de Análisis
• Clase Frontera, Borde o Interfaz, es aquella
clase con la que interactúa un usuario al
utilizar el sistema.
• Clase Gestora, Administradora o
Controladora, es aquella clase que se
encarga de ejecutar las operaciones
activadas o disparadas desde las clases
Interfaz.
• Clase Entidad, es aquella clase que reúne
el conjunto de datos procesados por las
operaciones ejecutadas por la clase
Gestora.
Diagrama de Comunicación

• Uno de los primeros pasos en la creación


de un diagrama de clases es obtener de
un caso de uso, las clases que participan
en su realización, y construir un diagrama
de Comunicación (o Colaboración).
• El actor interacciona con la clase interfaz,
la cual dispara las operaciones públicas
de la clase gestora para operar con los
datos de la o las clases entidad.
Diagrama de clases de análisis o de
comunicación
Especificación detallada de una clase

Tipo
atributo
Atributo ALUMNO
DNI : char[10]
Valor inicial
nombre : char[50]
de atributo
fecha_nacimiento : date
numero_expediente : int
credito_educativo : money = 0
Operación Argumentos
de operación
alta ( )
poner_nota (asignatura: char[5], año: int, nota: float )
matricular (curso: asignatura, año: int)
listar_expediente ( )
Propiedades fundamentales
• Sirven para definir a un
objeto de modo inequívoco: PLANCHA

– una identidad (nroSerie), nroSerie = 23456A


– un estado (desenchufada), y marca = oster
tipo = vapor
– un comportamiento (que color = rosada
volumenAgua = 0
depende del estado). temperatura = 10
estado = desenchufada

crearPlancha( )
enchufar( )
desenchufar( )
regular_temperatura( )
llenar_agua( )
flujo_vapor( )
Datos y métodos
• Dentro de los objetos residen los datos así como
los métodos que operan sobre ellos.

• Los datos y los métodos asociados se dice que


están encapsulados y ocultos; si se desea
modificar los datos de un objeto se debe
conocer exactamente cuales son las funciones
que interactúan con los mismos ya que ninguna
otra función puede acceder a ellos.
Ejemplos de Objetos
• Desde el punto de vista informático los objetos son tipos
abstractos de datos (tipos que encapsulan datos y
funciones que operan sobre esos datos).
• Ejemplos de objetos:
– Numero racional
• Dato (valor actual)
• Operaciones (sumar, multiplicar, …)
– Vehículo
• Datos (velocidad, kilometraje, posición, precio,…)
• Operaciones (acelerar, frenar, parar, …)
– Avión
• Datos (fabricante, modelo, matricula, capacidad, …)
• Operaciones (aterrizar, despegar, volar, …)
– Conjunto
• Dato (numero elementos)
• Operaciones (adicionar, quitar, visualizar, …)
Implementación de una Clase en Java
Asociación entre Clases
• Expresa una
conexión semántica
Clase A Clase B
bidireccional entre
clases.
• Una asociación es
una abstracción de
Asociación
los enlaces que
existen entre los
objetos instancias de
las clases asociadas.
Rolenames para una Asociación entre
Clases
• Al extremo de una asociación se
EMPRESA
llama rol o función. Cada asociación Empleador

binaria posee dos roles, uno en cada


extremo.
• El rol describe como una clase ve a PERSONA
Empleado
otra clase a través de la asociación.
AVION
• Para una sola asociación, los
nombres de las clases bastan para
identificar el rol o función; el
nombrado de los roles tiene mayor Piloto
PERSONA
interés cuando existe mas de una
Pasajero
asociación entre dos clases.
Multiplicidad de una Asociación
• Los roles contienen 1 uno y sólo uno
también una 0..1 cero o uno
m..n de "m" a "n"
información de * muchos
multiplicidad que 0..* cero a muchos
precisa el número 1..* uno a muchos
de instancias que
participan en la
asociación. 1 empleador obrero *
Empresa * Persona
ejecutivo
0..1
Comunicación entre objetos:
los mensajes
• A los objetos sólo se puede AUTO
acceder a través de su
interfaz público. MODELO: explorer
PUERTAS: 2
• Un objeto accede a otro objeto KILOMETRAJE: 80000
enviándole un mensaje. COLOR: plata
AÑO PROD: 2003
• Un mensaje es una petición NRO PLACA: LJ3456
de un objeto a otro objeto al PRECIO: 12500
VOLUMENTANQUE:10
que le solicita ejecutar uno de ESTADO: Detenido
sus métodos. AUTO( )
• No todos los mensajes de un FIJAR PRECIO AUTO ( )
LLENARTANQUE ( )
objeto se pueden invocar; sólo ACTUALIZARKILOMETRAJE()
los que pertenecen al interfaz ENCENDER( )
accesible.
FIJAR PRECIO AUTO ( )
Partes de un Mensaje
• Identidad del receptor.
• El método que se ha de ejecutar.
• Información especial necesaria para
realizar el método invocado (argumentos o
parámetros requeridos).
Nombre de un mensaje
• Un mensaje incluye el nombre de una
operación y cualquier argumento
requerido por esa operación.
• Con frecuencia es útil referirse a una
operación por su nombre sin considerar
sus argumentos.
Mensajes y Métodos
• Cuando un objeto recibe un mensaje se
realiza la operación solicitada ejecutando
un método.
• Un método es el algoritmo ejecutado en
respuesta a la recepción de un mensaje
cuyo nombre se corresponde con el
nombre del método.
Paso de Mensajes
• Los objetos se comunican entre sí a través del uso de
mensajes.
• Esencialmente el protocolo de un mensaje implica dos
partes: el emisor y el receptor. Cuando un objeto emisor
envía un mensaje a un objeto receptor especifica lo
siguiente:
– Un receptor (objeto receptor).
– Un nombre de mensaje (en relación al método invocado).
– Argumentos o parámetros (si se necesitan).

• Los parámetros o argumentos pueden ser:


– Datos utilizados por el método invocado
– Un mensaje propiamente dicho

acción <objeto>.<método (parámetro 1, …,parámetro n)>


Clase Parametrizada
• Son modelos de clases. Una
clase parametrizable es una
clase que es usada para crear Clase
Item

una familia de otras clases. Parametrizada

• Una clase parametrizable no Atributo 01


Atributo 02
puede ser utilizada tal cual.
Conviene primero instanciarla, Operacion 1 ( )
Operacion 2 ( )
a fin de obtener una clase
concreta que podrá a su vez
ser instanciada en objetos.
… Clase Parametrizada
Item
Lista

• Una clase parametrizable es Atributo

alguna suerte de contenedor, y


también es conocida como un Adicionar ( )
Remover ( )
template(plantilla), como los
templates de C++.
• Este tipo de clases no aparece Lista<Ordenes>
generalmente en el análisis.
Lista<Empleados>
• Las clases parametrizables se Atributo

utilizan sobre todo en diseño Atributo


Adicionar ( )
detallado para incorporar, por Remover ( )
ejemplo, componentes Adicionar ( )
Remover ( )
reutilizables.
Clase utilidad
• Es una colección de sólo operaciones.
• Aquellas operaciones de uso general
que no pueden acomodarse dentro de Clase Utilidad
una clase particular, se encapsulan
dentro de una clase utilidad para uso
por las otras clases del sistema. Operacion 01 ( )
Operacion 02 ( )
• Son clases que no pueden ser
instanciadas, y que son útiles para
agrupar elementos dentro de un
módulo, como por ejemplo las
funciones de una biblioteca
matemática.
Clase parametrizada utilidad
• Es una clase
parametrizada que Item
contiene sólo un conjunto Clase Utilidad

de operaciones.
Operacion 01 ( )

• Representa la plantilla Operacion 02 ( )

(template) que es utilizado


para crear clases utilidad.
Metaclase
Item
Clase
• Es una clase cuyas Parametrizada

instancias son clases Atributo 01


Atributo 02

en lugar de objetos. Operacion 1 ( )

• Las clases
Operacion 2 ( )

parametrizadas y las Item


Clase Utilidad
clases parametrizadas
utilidad son ejemplos de Operacion 01 ( )
Operacion 02 ( )
metaclases.
Herencia múltiple (problemas)
• La propiedad ESTUDIANTE EMPLEADO
referida sólo está
en una de las
clases padre.
Atributos
• La propiedad Atributos
-nombre estudiante -nombre empleado
concreta existe -direccion -direccion
en más de una -campus -estudios
superclase. -carrera -campus
-año -salario
• Diferentes tipos PROFESOR ESTUDIANTE -dias_vacaciones
de conflictos: Atributos
-nombre Métodos
– De nombres -direccion -Aumento_salario( )
– De valores -campus
– Por defecto -salario
-estudios
– Por dominio -carrera
– Por restricciones -año
-dias_vacaciones

Métodos heredados
-Aumento_salario( )
Ejemplos de conflictos
PERSONA

• Conflicto de nombres:
– nombre_estudiante
– nombre_empleado
• Conflicto de valores: ESTUDIANTE EMPLEADO
– campus
(atributos con igual nombre tienen
valores en cada clase)

PROFESOR ESTUDIANTE

CLASE DERIVADA POR HERENCIA MÚLTIPLE


Clases Abstractas
Impresora
• Con frecuencia cuando se diseña un modelo
orientado a objetos es útil introducir clases a
cierto nivel que pueden no existir en la
realidad pero que son construcciones
conceptuales útiles. Estas clases se conocen
como clases abstractas.

• Una clase abstracta normalmente ocupa una Laser


Tinta
posición adecuada en la jerarquía de clases
que le permite actuar como un depósito de
métodos y atributos compartidos para las
subclases del nivel inmediato inferior.

• Las clases abstractas no tienen instancias Matricial


directamente. Las clases derivadas de una
clase abstracta se conocen como clases
concretas y pueden ser instanciadas.
Sobrecarga
• Es una propiedad que describe una característica
adecuada que utiliza el mismo nombre de operación
para representar operaciones similares que se
comportan de modo diferente cuando se aplican a
clases diferentes.
• Los nombres de las operaciones se pueden
sobrecargar, esto es, las operaciones se definen en
clases diferentes y pueden tener nombres idénticos,
aunque su código programado puede diferir.
• Si los nombres de una operación se utilizan para nuevas
definiciones en clases de una jerarquía, la operación a
nivel inferior se dice que anula la operación a un nivel
más alto (overriding), es decir se redefine la operación
heredada.
Ejemplo de sobrecarga
Atributos
Empleado - nombre
- salario
- edad
Operacion
- Incrementar salario = salario*inflacion + comision

• La sobrecarga puede estar


situada entre dos clases que
Administrativo Ingeniero no están relacionadas
jerárquicamente.
• Lenguajes como C y Pascal
soportan este tipo de
Atributos Atributos
- beneficios - especialidad
operaciones a través de los
- salario [40 – 80] Operacion operadores aritméticos,
- edad [25 – 65] - comision = 0.05*presupuesto operaciones de E/S y
Operaciones operadores de asignación de
-Incrementar salario = (salario+comision)*inflacion valores.
-Comision = 0.03*presupuesto
Estado un AUTO
• Agrupa los valores de Audi
todos los atributos de un azul
objeto en un momento 25000 US$
dado, en donde un 2010
atributo es una pieza de AUTO 1200cc
información que califica el modelo nuevo
objeto contenedor. color
precio
• El estado de un objeto, año
en un momento dado, se motor
corresponde con una estado un AUTO
selección determinada de
valores a partir de valores Fiat
posibles de los diversos plateado
atributos. 5500 US$
1990
1200cc
viejo
Notación extendida de una clase
• Los objetos no incluyen ninguna información sobre sus
operaciones a diferencia de las clases, ya que las
operaciones son idénticas para todos los objetos de una
misma clase, en cambio si de los atributos ya que varían
entre objetos en relación con su valor.

NOMBRE DE LA CLASE
Atributo1 : Tipo1 = Valor-Omision1
Atributo2 : Tipo2 = Valor-Omision2

Operacion1 (Lista –Tipo -- Arg1) : Tipo -- Result1


Operacion2 (Lista –Tipo – Arg2) : Tipo – Result2

Argumentos de una Operación
• Las operaciones pueden FIGURA
tener argumentos, es posicion
color
decir una lista de
parámetros, cada uno mover (v : Vector) : Boolean
rotar(angulo) : Boolean
con un tipo, y pueden …

también devolver
resultados, cada uno con
ARCHIVO
un tipo. nombre

• Las operaciones se
extensión
tipo

incorporan en la tercera imprimir(d: dispositivo, n : entero) : Boolean


borrar( ) : Boolean
sección de la clase, como …

se muestra en la figura.
Otros conceptos relacionados con
operaciones
• Consultas (query): operaciones que no alteran al objeto.
• Accesos: operaciones para leer o escribir los atributos de
un objeto.
• Métodos: especificación de bajo nivel para implementar
una operación.
• Poliformismo: una misma operación que se implementa en
formas diferentes.
• Parametrización: definida por el número y tipo de
argumentos de un método.
• Firmas: definida por el tipo y número de argumentos y el
tipo de resultados que devuelve.
Operaciones: Vida de los objetos
• Los objetos son entidades que existen en el
tiempo; por ello deben ser creados o
instanciados.
• Esta creación se hace a través de operaciones
especiales llamadas constructores o
inicializadores que se ejecutarán implícitamente
por el compilador o explícitamente por el
programador mediante la invocación a los
citados constructores.
Operaciones: Constructor y
destructor
• Un método constructor de una clase es un método
especial que:
– tiene el mismo nombre que la clase,
– crea un objeto y/o inicializa estado del objeto,
– no tiene tipo de retorno.

• Un método destructor, en contraposición al


constructor, elimina el vínculo y libera el espacio de
memoria de un objeto, para que pueda ser ocupado
nuevamente.
Constructor y Destructor
• Los objetos ocupan un espacio en memoria y
en consecuencia existen en el tiempo y
deberán crearse o instanciarse. Por la misma
razón se debe liberar el espacio ocupado por
los objetos en la memoria.

• Los constructores y destructores se declaran


como parte de la definición de una clase.
Herencia
CRIATURA
tipo : string
peso: real
habitat: tipohabitat

criatura ()
predadores( )
esperanza_vida( )

MAMIFERO
periodo_gestacion: real
alimentacion: tipoalimento

PERSONA
nombre: string
fecha_nacimiento: date
origen: pais
estado_civil: char=S

HOMBRE
MUJER
esposa : mujer
esposo : hombre
nombre: string
habitat: habitat
• clase criatura • Clase persona hereda_de mamifero
// atributos // atributos
string : tipo string : apellidos, nombre
real : peso date : fecha_nacimiento
tipoHabitat : habitat pais : origen
// operaciones …
constructor criatura( ) // operaciones
inicio …
… fin_clase // fin persona
fin_constructor • Clase hombre hereda_de persona
metodo predadores(E criatura: predador) // atributos
inicio mujer : esposa
… string : nombre
fin_metodo …
entero función esperanza_vida( ) // operaciones
inicio …
… fin_clase // fin hombre
fin_funcion • Clase mujer hereda_de persona
… // atributos
fin_clase // fin criatura hombre : esposo
• Clase mamifero hereda_de criatura string : nombre
// atributos …
real : periodo_gestacion // operaciones
// operaciones …
… fin_clase // fin mujer
fin_clase // fin mamifero
Reglas de Visibilidad

• Privada ( - ): visible sólo


para la clase y para las
clases amigas (C++).
• Protegida( # ): visible
sólo para las clases
derivadas (subclases).
• Pública ( + ): visible para
todas las clases con las
que esta asociada.
Clase asociación
ALUMNO Realiza > TRABAJO
Nombre Tema
1 0..* 0..*
0..* 1
DIPLOMA
Nota
Mencion
1
HABITACION
Numero

• La asociación entre la clase Alumno y la clase Trabajo es del


tipo n a n. La clase Trabajo describe el tema, la solución
aportada por el Alumno no se conserva.
• En el caso de los controles de conocimientos, cada Alumno
escribe individualmente sobre un Trabajo dado y la nota
obtenida no puede almacenarse en un Alumno en particular
(porque éste realiza varios trabajos) ni en un Trabajo (porque
hay que registrar tantas notas como alumnos). La nota es un
atributo de la relación entre la clase Alumno y la clase Trabajo.
Cualificador
• Consiste en seleccionar un subconjunto de objetos entre el conjunto
de objetos que participan en una asociación.
• Se realiza por medio de una tupla de atributos particulares (llamada
clave) y se utiliza conjuntamente con un objeto de la clase de partida.
• La clave se representa sobre el rol de la clase de partida bajo el
nombre de cualificador o calificador. La clave pertenece a la
asociación y no a las clases asociadas.
• El cualificador es un atributo especial que reduce la multiplicidad
efectiva de una asociación. Las asociaciones uno a muchos y muchos
a muchos pueden ser cualificadas.
FILE DIRECTORIO FILE
DIRECTORIO Contiene >
nombre path ID_file nombre
path 1..* 0..* 1..* 1

Calificador
Cualificador
• Si el valor de un atributo depende de un contexto
particular, hay que pensar recalificar el atributo como
cualificador.
• Por ejemplo, ID_empleado no es una propiedad única
para una persona que tenga dos trabajos, lo que hace
es cualificar la asociación Empresa a Persona nombrada
como Emplea>.

PERSONA EMPRESA PERSONA


EMPRESA Emplea>
nombre direccion ID_empl nombre
direccion 0..* 0..* 0..* 1

Cualificador
Navegabilidad
• Dada una asociación simple entre dos clases,
es posible navegar de los objetos de un tipo a
los del otro tipo. A menos que se indique lo
contrario, la navegación a través de una
asociación es bidireccional.

• Esto conceptualmente es correcto pero existen


ocasiones en donde se desea restringir este
mecanismo y trabajar de forma unidireccional
para dotar de mayor detalle a nuestro modelo.
Diagrama de clases mostrando
navegabilidad
CLIENTE
- ID cliente : char
- nombre : char
EMPLEADO ORDEN VENTA - direccion : char
- ID empleado : char - nro venta : Number - telefono : String
- nombre : char - fecha venta : Date - RUC : char
0..*
- telefono : char - monto venta : Double - categoria : char
- fecha ingreso : Date - estado venta : String 1 - estado : String
1
- estado : String + venta () : int + historiaCredito () : int
+ empleado () : int 0..* + detalle () : int + poner categoria () : int
+ nueva venta () : int + totalizar venta () : int + cliente () : int
+ selecc cliente () : int

1 PERSONA JURIDICA
- limite credito : int

1..*

PRODUCTO 1 DETALLE ORDEN PERSONA NATURAL


- cantidad : int
- ID producto : char - nro tarjeta credito : int
0..* - precio : float
- denominacion : char
- descuento : float
- stock minimo : int
+ adic item () : int
+ producto () : int
…. Navegabilidad

• Las asociaciones describen la red de relaciones estructurales


que existen entre las clases y que dan lugar a los enlaces entre
los objetos.
• Los enlaces pueden ser vistos como canales de navegación
entre los objetos.
• En principio, las asociaciones son navegables en ambas
direcciones. En ciertos casos sólo es útil una dirección de
navegación.
• La navegabilidad se representa por una flecha orientada hacia la
clase sobre la que es pósible la navegación.
USUARIO PASSWORD
1 *
Id usuario derecho

Dirección de
navegavilidad
Expresiones de Navegabilidad

• La sintaxis de las expresiones de navegación viene


dada por las cuatro reglas siguientes :
– destino::=conjunto ‘.’ selector
– destino::=conjunto ‘.’ ‘~’ selector
– destino::=conjunto ‘[‘ expresion_booleana ‘]’
– destino::=conjunto ‘.’ selector ‘[‘ valor_de_clave ‘]’
• El selector corresponde bien a un nombre de atributo de los
objetos del conjunto, bien a un nombre de asociación de la
clase de objetos, o bien a un nombre de rol opuesto sobre un
enlace que concierne a los objetos del conjunto. El destino
es un conjunto de valores o de objetos cuyo número
depende de la multiplicidad del conjunto y de la asociación.
PERSONA padre PERSONA padre

nombre 2 nombre id persona


2

hijo 1..* hijo 1

• UnaPersona.Hijos designa todos los hijos de una persona


dada.
• UnaPersona. ~Hijos designa los padres de una persona dada.
• UnaPersona.Hijos[edad>=18años] designa todos los hijos
mayores de edad de una persona dada.
• UnaPersona.Hijo[UnNombre] identifica un hijo dado de manera
no ambigua.
Diagrama
de Transición de Estados
Finalidad

• Mostrar los distintos estados por los que pueden


atravesar los objetos de una clase como
consecuencia de eventos externos.
• En general los estados están asociados con parte
de los requerimientos de información exigidos al
producto software.
Los Estados
Secc Fisica I :
CURSO SECCION
CURSO SECCION
• Cada objeto está en un
periodoAcad periodoAcad = 2011- I
momento determinado en un seccion seccion = A
estado particular. numVacant numVacant = 30
numInscrit = 24
numInscrit
• Los estados se caracterizan estado estado = abierto
adicionar( )
por la noción de duración y de adicionar( )
cerrar( ) cerrar( )
estabilidad. Un objeto está
El máximo nro de inscritos por
siempre en un estado dado sección es 30
por un cierto tiempo y un
numInscrt <30 numInscrit =30
objeto no puede estar en un
estado desconocido o no ABIERTO CERRADO
definido. adicionar( )
cerrar( )
Estado inicial y final

• Los autómatas usados por UML son


estado inicial
deterministas.
A
• Ello significa que siempre hay que
describir el estado inicial del objeto,
el cual es único y aparece cuando el
objeto es creado.
B
• El estado final indica el fin de la vida
de un objeto.Es posible tener varios
estados finales que corresponden estado final
cada uno a una condición de fin
distinta.
Las Transiciones
• Los estados están vinculados por conexiones
unidireccionales llamadas transiciones.
• El paso de un estado a otro se efectúa cuando se
desencadena una transición por un evento que aparece
en el ámbito del problema.
• Las transiciones no vinculan necesariamente estados
distintos.
Transición
numInscrt <30

ABIERTO CERRADO
cerrar
adicionar( )
cerrar( ) numInscrit =30
Los Eventos
A Ev1 B
• Un evento sirve de
desencadenante para pasar
de un estado a otro. Adicionar alumno
• Los eventos determinan que
caminos deben seguirse. Los ABIERTO Cancelar Curso

eventos, las transiciones y los


estados son indisociables en Cerrar CANCELADO
la descripción del Curso
comportamiento dinámico.
CERRADO
Super y sub estados
A Ev1 B
• Super estados son los estados mas
generales, los estados mas
especifícos se llaman sub estados. Ev2 Ev2
• Un estado puede descomponerse C
en varios sub estados disyuntivos
(estados anidados).
• Los sub estados heredan Super Estado
características de su super estado,
A Ev1 B
en particular las variables de estado
y las transiciones externas.
Ev2
Sub Estado C
Estados anidados con Historia
ABIERTA
• El uso de la característica de
MAXIMIZADA
historia H señala que al retornar
un objeto a un super estado, este
ingresará al último estado en el
que estuvo dentro del super CUSTOMIZADA
estado. H
• Si la característica de historia no
es utilizada siempre el sub estado
inicial del super estado será MINIMIZADA
asignado al objeto retornante. Ev2

Estados para los objetos de la clase


Ventana cuyo estado ABIERTA tiene historia
Agregación de Estados
ESTADO AGREGADO
• La agregación de estados
es la composición de un
estado a partir de otros
varios estados A Ev1
independientes. X
• La composición es de tipo B
conjuntiva lo que implica Ev3
que el objeto debe estar Ev1 Ev4
C [en C]
simultáneamente en todos
los estados que componen Ev2 Y
la agregación de estados
Los Guardas
• Un guarda es una A Ev1[condicion] B
condición booleana que
valida o no el
Guarda
desencadenamiento de
una transición a partir de
la ocurrencia de un ABIERTO
Un objeto Secc MAT I de la
clase CURSO pasará del
evento. estado ABIERTO a
CERRADO si :

CerrarInscripción [numInscrit =30]

CERRADO
Acciones de la Transición
Acción
• Cada transición puede ir
acompañada del nombre de una
acción a ejecutar cuando la Abrir Inscripción/ Inicializar numInscrit to 0
transición es desencadenada por CREADO
un evento.
Adicionar
• La acción corresponde a una de las alumno
operaciones declaradas en la clase
del objeto destinatario del evento. Cancelar
ABIERTO curso
• Estas acciones son operaciones
asociadas a la transición de un CANCELADO
estado a otro:
– Toma una cantidad insignificante de
tiempo completarla. CerrarCurso [numInscrit =30]
– Considerada ininterrumplible ^ReporteCurso.CreateReporte
– El evento que produce la transición CERRADO
puede generar el envío de otro
evento.
Acciones de Estado
• Los estados pueden contener
también acciones que se ejecutan al CREADO
entrar o salir del estado, mientras Asignar
do: inicializarCursoSección
esta en el estado o al ocurrir un profesor
evento mientras el objeto está en
ese estado. Abrir
PROGRAMADO
• La acción de entrada (entry:) se Inscripciones
do: asignar Profesor Curso
ejecuta de manera instantánea y
atómica al entrar en el estado. Adicionar
alumno
• La acción de estado (do:) se
ejecuta mientras se encuentra ABIERTO Cerrar
en el estado. entry: inscribir Alumno registro

• La acción de salida (exit:) se


ejecuta al salir del estado. CERRADO
• La acción sobre el evento interno do: reportar Curso Cerrado
(on:) se ejecuta al ocurrir un
evento que no conduce a otro
estado.
Puntos de ejecución de las
Operaciones
• Existen seis puntos, cuyo orden es :
– La acción asociada a la transición de / Op1
entrada (Op1)
– La acción de entrada de estado (Op2) Un estado
– La actividad en el estado (Op3) entry: Op2
– La acción de salida del estado (Op4) Do: Op3
exit : Op4
– La acción asociada a los eventos internos On UnEvento : Op5
(Op5)
– La acción asociada a la transición de salida / Op6
del estado (Op6)
Asignar Adicionar Alumno
profesor
/nroInscritos=nroInscritos+1
Abrir inscripción
CREADO PROGRAMADO /nroInscritos=0
do: Inicializar CursoSección do: Asignar Profesor Curso

ABIERTO
Cancelar entry: inscribir un alumno
curso

Cancelar curso
[nroInscritos <5]
Cerrar
CANCELADO Registro
[nroInscritos=30]
do: reportar cancelación curso Cancelar curso

Cancelar
curso CERRADO
do: reportar CursoSección cerrado
Diagrama de constructor( ) En Proceso destructor( )

Estados
para los objetos exponer( ) retirar( )

de la Clase
EJEMPLAR En Circulación

EJEMPLAR Disponible
Codigo : integer reservar( )
Cantidad : integer
prestar( )
Estado : integer borrarReserva( )
exponer ( ) Reservado devolver( )
reservar ( )
borrarReserva ( )
prestar ( )
devolver ( ) Prestado
retirar ( ) prestar( )
reponer ( )
Diagrama de Componentes
Componente
• Un componente es una unidad autónoma
reemplazable de un sistema
• Los componentes indican los interfaces públicos
para que otros componentes los usen (relación de
realización)
• Los componentes pueden indicar los interfaces
requeridos en otros componentes (relación de uso)
Componente
• Describen los elementos físicos y sus relaciones
en el entorno de realización.
• Muestran las dependencias del compilador y del
“runtime” entre los componentes del software;
por ejemplo, los archivos del código fuente y los
DLL.
• Es un módulo físico de código.
• Los componentes pueden incluir librerias de
código fuente y “run time” files (archivos exe,
DLL’s y tareas).
• En un mismo diagrama pueden aparecer
varios componentes conectados mediante
interfaces
Diagrama de Despliegue
Diagrama de Despliegue
• Muestra la disposición física de los distintos
dispositivos (nodos) que entran en la composición
de un sistema y el reparto de los programas
ejecutables sobre estos nodos.
• Muestra la configuración de los nodos de
procesamiento “run time” y los componentes que
residen sobre ellos.
Nodos

• Cada dispositivo o recurso se


representa por un cubo que
evoca la presencia física del NODO
equipo en el sistema. Todo
sistema se describe por un Representación gráfica de los nodos.
pequeño número de
diagramas de despliegue; a
menudo basta con un sólo
diagrama. MODEM PC DISCO
• Los diagramas de despliegue <<Dispositivo>> <<Procesador>> <<Memoria>>
pueden mostrar clases de
nodos o instancias de nodos. Estereotipos de nodo
En general …..
• Muestra las partes
físicas del sistema
– PCs, Servidores
– Impresoras, scanners
– PDAs, móviles
• Que están conectadas
por líneas de
comunicación
– Internet, LAN, USB,
Bluethoot
Componentes y Nodos
Otros Diagramas ….
SIGEAC
• El Sistema de Gestión Académica (SIGEAC) es una
solución Web integrada de gestión administrativa,
académica y pedagógica, diseñada a partir de un
análisis de benchmarking de un grupo de las soluciones
más reconocidas en el mercado internacional para el
sector educativo . Esta solución tiene por objetivo cubrir
efectivamente los procesos y servicios requeridos para
la gestión educativa y su diseño le permite integrarse
fácilmente a instituciones de todos los niveles de
enseñanza.
Módulos integrantes de SIGEAC
Sub Sistemas
• Subsistema Seguridad: Encargado de brindar los mecanismos de seguridad que
permitan una correcta autenticación y autorización de los usuarios de SIGEAC.
• Subsistema Administración de Notas: Encargado de la calificación de todo tipo de
evaluaciones.
• Subsistema Programación de Actividades: Encargado del control de la programación
de las actividades y la asignación apropiada de los recursos.
• Subsistema Matrícula: Encargado de la administración de la matrícula de los
alumnos.
• Subsistema Administración del Sistema: Encargado de la administración general de
SIGEAC.
• Subsistema Diseño Instruccional: Encargado de definir las características de las
evaluaciones.
• Subsistema Facturación: Encargado del registro de pagos de los postulantes y
alumnos.
• Subsistema Registro Institucional del Educando: Encargado del registro de la
información académica y extraacadémica de los educandos.
Interacción entre el Subsistema de Admisión y subsistemas
miembros de SIGEAC
Arquitectura del Sub Sistema de Admisión
Capas del Sub sistema de Admisión
• La arquitectura del Subsistema de Admisión, como la de todos los miembros de SIGEAC, se ha
basado en esta propuesta a fin de obtener un producto escalable, de fácil mantenimiento y
seguro; separando así las lógicas destinadas a la presentación, reglas del negocio y datos.
• Capa Presentación: Expone una interfaz permitiendo al usuario u otro módulo externo interactuar
con el subsistema.
• Capa Lógica del Negocio: Reúne las reglas propias del negocio. Además, contiene la lógica que
le permite atender los requerimientos de servicios de otros subsistemas.
• Capa Datos: Permite consumir y modificar la información de la base de datos. También permite
consumir información expuesta por otros subsistemas.
• Además, el subsistema de Admisión contará con una serie de capas de apoyo, las mismas que
se describen a continuación:
• Capa de Seguridad: Brinda los mecanismos para garantizar la seguridad de la aplicación.
• Capa de Estructura de Datos: Brinda las estructuras que permiten el transporte de los datos a
través de las diferentes capas de la solución.
• Capa de Administración de Parámetros: Permite la configuración de los parámetros utilizados por
la aplicación.
• Capa de Administración de Excepciones: Permite registrar las excepciones y mensajes de
auditoría de la aplicación en un archivo de Log.
• Capa de Encriptación: Brinda los mecanismos que garantizan la confidencialidad de la
información sensitiva de la aplicación.
Subsistema de programación de
actividades
• Objetivo General
– Desarrollar un producto software que sirva de soporte y apoyo para la
programación de actividades académicas, extraacadémicas o extracurriculares y
administrativas en una institución de educación básica (inicial, primaria y
secundaria) y superior (técnico y universitario).
• Objetivos Específicos
– Aperturar períodos académicos en la institución educativa; indicando las fechas de duración del período.
– Establecer los días no laborables que van a haber a lo largo del período académico.
– Programar productos de estudio y ciclos académicos que van a estar vigentes a lo largo del período
académico.
– Programar los cursos o asignaturas que se van a dictar a lo largo del período académico.
– Programar las actividades que se van a desarrollar durante los procesos de admisión y matrícula por cada
período académico.
– Programar las evaluaciones que van a rendir los alumnos a lo largo de un período académico.
– Programar el calendario de actividades, es decir, las actividades que se van a desarrollar a lo largo del
período académico.
– Integrarse con los subsistemas de Admisión, Asistencia, Matrícula y Administración de Notas; brindándoles
servicios que muestre información ofrecida por el subsistema de Programación de Actividades.
Componentes del Sistema
• Web: Componente que permite la comunicación entre el subsistema y el usuario final. En este componente se
exponen las funcionalidades del subsistema a través de páginas Web.
• ModelAdmision: Componente que brinda las estructuras de información que facilite el transporte de la data entre
las distintas capas.
• BLLAdmision: Componente que contiene la lógica del negocio para atender cada requerimiento al subsistema, se
trate de usuarios o subsistemas externos.
• WebServices: Componente que permite exponer los servicios del Subsistema de Admisión a través de la interfaz
WS_Admision.
• DALFactory: Componente que selecciona en tiempo de ejecución el componente de acceso a datos configurado
(DAL) para que se conecte a la fuente de datos.
• ADALAdmision: Componente que permite abstraer el acceso a los datos de manera que si se requiere cambiar la
fuente de datos sólo se necesite cambiar el componente SqlServerDAL para especializarlo a dicha fuente.
• AS_Admin: Componente conocido como Agente de Servicios que permite consumir los servicios expuestos por
otros subsistemas.
• SQLServerDAL: Componente que contiene la lógica de acceso a la base de datos de Admisión (BD_Admision).
Este componente ha sido desarrollado para interactuar con una base de datos en Microsoft SQL Server 2000.
• OracleServerDAL: Componente que contiene la lógica de acceso a la base de datos de Admisión implementada
en Oracle. Este componente no ha sido desarrollado en la presente versión del producto.
• Microsoft Data Access Application Block: Componente distribuído por Microsoft que implementa un patrón de
acceso a datos, cuyo uso permite reutilizar código y realizar un fácil mantenimiento.
• Enterprise Library Cryptography Application Block: Componente con bloques de código para realizar la
encriptación de información confidencial.
• ADMParams: Componente que permite la administración de parámetros y mensajes de Admisión.
• LogManager: Componente que permite la administración de excepciones y auditoría del subsistema.

También podría gustarte