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 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

Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

  • Upload
    ion

  • View
    37

  • Download
    0

Embed Size (px)

DESCRIPTION

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 Software Marco de Referencia para Desarrollo de Prácticas Métricas de estimación orientadas a casos de uso Desde 1998 - PowerPoint PPT Presentation

Citation preview

Page 1: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

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: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

Proyecto:Hacia un entorno para el

desarrollo basado en componentesPrimera etapa

Universidad EAFITPSL S.A

MVM LTDA.

Page 3: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

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: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

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: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

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: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

6

Facetas de descomposición intranivel

Estructural - Propiedades(anatomia)

Funcional - Estado(fisiología)

Dinámico - Colaboraciones(social)

Deóntico - Reglas(Moral)

Page 7: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

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: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

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: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

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: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

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: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

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: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

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: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

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: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

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: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

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: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

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: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

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: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

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: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

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: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

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: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

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: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

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: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

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: Grupo de Ingeniería de Software Universidad EAFIT Medellín, Colombia

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