9
El modelo de colaboraciones
2. Compromiso de los objetos participantes
unCliente:
Cliente
unVehículo:
Vehículo01
SolicitarVehículo
RecibirVehículo
administrador
entregarVehículo
cargarVehículo
unAlquiler:
AlquilerVehículo
devolverVehículo
descargarVehículo
10
El modelo de roles
Cliente
identificacion
totalcontratos
cargarVehículo
descargarVehículo
Vehículo01
matricula
tarifa
estado
condiciones
entregarVehículo
devolverVehículo
0..1
alquilador
0..*
objetoalquiler
Vocabulario de las acciones abstractas
Clases por aspecto (rol)
11
Patrón estructural de roles
vehículo
objetoAlquiler
activo
objetoVenta
clase
ClaseNúcleo
ClaseRol1
ClaseRol2
ClaseRol
instancia de
Instancia de
pagoImpuesto
alquilerVeh
ventaVeh
12
Representación de reglas del negocio
Refinamiento de las reglas del negocio
(propiedades volátiles del componente)
precondiciones del estímulo
disparadores por cambio de estado
SolicitarVehículo
DevolverVehículo
administrador
unAlquiler:
AlquilerVehículo
If ¬(totalContrato < nroVehCliente)
Cliente excede tope de Vehículos
13
Especificación del Componenteen Oasis
Una clase actividad – coordinadora
Una o más clases recurso participantes
14
Especificación de la clase actividad
Class AlquilarVehículo
participants
c: Cliente as alquilador ;
v: Vehículo01 as objetoAlquiler;
constants attributes
plazoLimAlquiler : nat;
nroVehCliente : nat;
events
alta new
solicitarVehículo(nroDias) calling to members
c.cargarVehículo();
v.entregarVehículo(nroDias);
recibirVehículo(fechaEntrega) calling with members
c.descargarVehículo();
v.devolverVehículo(fechaEntrega);
preconditions
solicitarVehículo if (c.totalContrato < nroVehCliente)
exception(Cliente excede tope de Vehículos );
end class AlquilarVehículo
(Gp:)
participants
c: Cliente as alquilador ;
v: Vehículo01 as objetoAlquiler;
15
Funciones de la clase actividad
Class AlquilarVehículo
participants
c: Cliente as alquilador ;
v: Vehículo01 as objetoAlquiler;
constants attributes
plazoLimAlquiler : nat;
nroVehCliente : nat;
events
alta new
solicitarVehículo(nroDias) calling to members
c.cargarVehículo();
v.entregarVehículo(nroDias);
recibirVehículo(fechaEntrega) calling with members
c.descargarVehículo();
v.devolverVehículo(fechaEntrega);
preconditions
solicitarVehículo if (c.totalContrato < nroVehCliente)
exception(Cliente excede tope de Vehículos );
end class AlquilarVehículo
(Gp:)
1. Establece la comunicación
desde/hacia el entorno
16
Class AlquilarVehículo
participants
c: Cliente as alquilador ;
v: Vehículo01 as objetoAlquiler;
constants attributes
plazoLimAlquiler : nat;
nroVehCliente : nat;
events
solicitarVehículo(nroDias) calling to members
c.cargarVehículo();
v.entregarVehículo(nroDias);
recibirVehículo(fechaEntrega) calling with members
c.descargarVehículo();
v.devolverVehículo(fechaEntrega);
preconditions
solicitarVehículo if (c.totalContrato < nroVehCliente)
exception(el cliente excede el tope de Vehículos prestados);
end class AlquilarVehículo
(Gp:) 2. captura explícita de
las reglas del negocio
que rigen el comporta-
miento global
(Gp:) 3. Mecanismo de comu-
nicación entre objetos
(comunicación
sincrónica)
Funciones de la clase actividad
17
Especificación de la clase recurso
Class Vehículo01 played by Class Cliente
Vehículo (objetoAlquiler) identification
identification nit : (nit);
codigo : (codigo); constant attributes
constant attributes nit :nat;
codigo : nat; nombre : string
modelo : nat; variable attributes
marca : String; totalVehículos : nat(0);
variable attributes events
tarifa : nat; cargarVehículo( );
disponible : bool(true); descargarVehículo( );
estadoActual : string; valuations
events [cargarVehículo] totalVehículos += 1;
entregarVehículo( ); [descargarVehículo] totalVehículos += -1;
devolverVehículo( ); end class Cliente
valuations
[entregarVehículo] disponible = false;
[devolverVehículo] disponible = true
end Class Vehículo01
(Gp:) Class Vehículo01 played by
Vehículo (objetoAlquiler)
18
Herramienta soporte: AR2CA
Construcción descendente del componente
Primitivas de refinamiento estructurales y de comportamiento (Denker)
Facetas de clasificación del componente
Entidad, Acción, Actor, Regla
Lenguaje: Java
19
Alcance de la primera etapa del proyecto
Herramienta de modelado OO con UML
Diagrama de actividades
Diagrama de transición de estados
Diagrama de colaboración
Diagrama de componentes
Manejo de plantillas de soporte en XML
Flexibilidad en la construcción de diagramas
Nivel Requisitos
Nivel Especificación
Nivel de Implementación
Generación estructural del componente
20
Proyectos de maestría
Generación del componente a plataforma Corba
Generación estructural utilizando patrones de persistencia
Generación de comportamiento (esquema de javabeans)
Modelo de definición de interfaz a partir de escenarios
21
Proyecciones (¿?)
ARCA como herramienta modeladora de Frameworks
Patrones de análisis
Formalizar el aspecto de composición de componentes
Lenguajes de definición de arquitecturas
Concepto de conector
Página anterior | Volver al principio del trabajo | Página siguiente |