1 grupo de ingeniería de software universidad eafit medellín, colombia líneas de interés...
TRANSCRIPT
1
Grupo de Ingeniería de SoftwareUniversidad EAFITMedellín, Colombia
• Líneas de interés– Metodologías y modelos de desarrollo de software
– Calidad de Software• Marco de Referencia para Desarrollo de Prácticas
• Métricas de estimación orientadas a casos de uso
• Desde 1998• Programa de Especialización en Desarrollo de
Software
Proyecto:Hacia un entorno para el
desarrollo basado en componentesPrimera etapa
Universidad EAFITPSL S.A
MVM LTDA.
3
Antecedentes
• Desarrollo de componentes reutilizables en el marco de OASIS. Tesis doctoral (dic./99) Director: Isidro Ramos– Objetivo: Introducir la reutilización en OASIS– Desarrollo PARA reutilizar
4
Características del componente
• Componente a alto nivel de abstracción : Componente de Negocio– Énfasis en colaboraciones como unidades de refinamiento de
primera clase
– Caso de uso: acción de alto nivel a partir del cual se inicia el proceso de refinamiento
• Lenguaje visual: UML (con algunas extensiones)• Formalizado en OASIS
la propuesta - el modelo 5
Caracterización del componente
DescomposiciónVertical
Nivel de abstracción i
Nivel de abstracción i+1reifica
vistai vistak
DescomposiciónHorizontal
vistaj
Características del componente
6
Facetas de descomposición intranivel
Estructural - Propiedades(anatomia)
Funcional - Estado(fisiología)
Dinámico - Colaboraciones(social)
Deóntico - Reglas(Moral)
la propuesta - el modelo 7
Arquitectura del componenteModelo de
ColaboracionesModelo de Roles
Dinámica
Deóntica
Estructural
Funcional
NivelAbstracto
Estructural
Funcional
Dinámica
Deóntica
NivelConcreto
ModeloOntológico
8
El modelo ontológico1
• “conjunto de términos de interés en un dominio particular (T) y las relaciones (R) entre ellos” (Gru, 1993)
• T = {t1,t2,...tn} ; ti = (tti, teri); tti TT
• TT = {entidad, acción, actor , regla}
• R = {r1, r2, … rn}
• ri = (tri, (t1 , t2)) ; tri TR ; (t1, t2) T
• TR = {ejecuta, participa (actuando de entrada), genera (actuando de salida), reglamenta, usa, extiende, equivale}
9
El modelo ontológico2
• Casos de uso extendidos (Jacobson, 1993; FRISCO, 1996)
• Aproximación orientada al comportamiento (D’Souza, 1998)
AlquilerVehículo
Administrador
cliente
vehículo
Alquiler
<< extiende >>
TopeVehCliente
10
Especificación del modelo ontológico
• T{(entidad, cliente), (entidad,vehículo) (acción, Alquiler), (acción, AlquilerVehículo) (actor, Administrador) (regla, TopeVehículosCliente)}
• R {(ejecuta, (Administrador,AlquilerVehículo)), (participa, (cliente, AlquilerVehículo)), (participa, (Vehículo, AlquilerVehículo)), (extiende, (AlquilerVehículo, Alquiler)), (reglamenta, (TopeVehículosCliente,
AlquilerVehículo))}
el modelo - nivel de análisis 11
El modelo de colaboraciones1. Protocolo de comunicación con el usuario
SolicitarVehículo
DevolverVehículo
administrador
unAlquiler:AlquilerVehículo
el modelo - nivel de análisis 12
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
el modelo - nivel de análisis 13
El modelo de roles
Clienteidentificaciontotalcontratos
cargarVehículodescargarVehículo
Vehículo01matriculatarifaestadocondiciones
entregarVehículodevolverVehículo
0..1alquilador
0..*objetoalquiler
• Vocabulario de las acciones abstractas• Clases por aspecto (rol)
el modelo 14
Patrón estructural de roles
vehículo
objetoAlquiler
activo
objetoVenta
clase
ClaseNúcleo
ClaseRol1 ClaseRol2
ClaseRol
instancia de
Instancia de pagoImpuesto
alquilerVeh
ventaVeh
el modelo - vista deóntica 15
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”
la metodología - nivel de análisis 16
Especificación del Componenteen Oasis
• Una clase actividad - coordinadora
• Una o más clases recurso participantes
17
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
participants c: Cliente as alquilador ; v: Vehículo01 as objetoAlquiler;
la metodología - nivel de análisis 18
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
1. Establece la comunicacióndesde/hacia el entorno
la metodología - nivel de análisis 19
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
2. captura explícita delas reglas del negocio
que rigen el comporta-miento global
3. Mecanismo de comu-nicación entre objetos
(comunicación sincrónica)
Funciones de la clase actividad
la metodología - nivel de análisis 20
Especificación de la clase recursoClass 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
Class Vehículo01 played byVehículo (objetoAlquiler)
21
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
22
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
23
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
24
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