1 grupo de ingeniería de software universidad eafit medellín, colombia líneas de interés...
TRANSCRIPT
![Page 1: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/1.jpg)
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
![Page 2: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/2.jpg)
Proyecto:Hacia un entorno para el
desarrollo basado en componentesPrimera etapa
Universidad EAFITPSL S.A
MVM LTDA.
![Page 3: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/3.jpg)
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
![Page 4: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/4.jpg)
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
![Page 5: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/5.jpg)
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
![Page 6: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/6.jpg)
6
Facetas de descomposición intranivel
Estructural - Propiedades(anatomia)
Funcional - Estado(fisiología)
Dinámico - Colaboraciones(social)
Deóntico - Reglas(Moral)
![Page 7: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/7.jpg)
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
![Page 8: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/8.jpg)
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}
![Page 9: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/9.jpg)
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
![Page 10: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/10.jpg)
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))}
![Page 11: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/11.jpg)
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
![Page 12: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/12.jpg)
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
![Page 13: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/13.jpg)
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)
![Page 14: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/14.jpg)
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
![Page 15: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/15.jpg)
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”
![Page 16: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/16.jpg)
la metodología - nivel de análisis 16
Especificación del Componenteen Oasis
• Una clase actividad - coordinadora
• Una o más clases recurso participantes
![Page 17: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/17.jpg)
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;
![Page 18: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/18.jpg)
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
![Page 19: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/19.jpg)
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
![Page 20: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/20.jpg)
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)
![Page 21: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/21.jpg)
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
![Page 22: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/22.jpg)
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
![Page 23: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/23.jpg)
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
![Page 24: 1 Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia Líneas de interés –Metodologías y modelos de desarrollo de software –Calidad de](https://reader036.vdocuments.site/reader036/viewer/2022062512/55320b1a550346e8558b49da/html5/thumbnails/24.jpg)
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