Grupo de Ingeniería de Software Universidad eafit medellín, Colombia



Descargar 111 Kb.
Fecha de conversión12.01.2017
Tamaño111 Kb.

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

Proyecto: Hacia un entorno para el desarrollo basado en componentes Primera etapa

  • Universidad EAFIT
  • PSL S.A
  • MVM LTDA.

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

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
  • Caracterización del componente
  • Descomposición
  • Vertical
  • Nivel de abstracción i
  • Nivel de abstracción i+1
  • reifica
  • vistai
  • vistak
  • Descomposición
  • Horizontal
  • vistaj
  • Características del componente

Facetas de descomposición intranivel

  • Estructural - Propiedades
  • (anatomia)
  • Funcional - Estado
  • (fisiología)
  • Dinámico - Colaboraciones
  • (social)

Arquitectura del componente

  • Modelo de
  • Colaboraciones
  • Modelo de Roles
  • Dinámica
  • Deóntica
  • Estructural
  • Funcional
  • Nivel
  • Abstracto
  • Estructural
  • Funcional
  • Dinámica
  • Deóntica
  • Nivel
  • Concreto
  • Modelo
  • Ontológico

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}

El modelo ontológico2

  • Casos de uso extendidos (Jacobson, 1993; FRISCO, 1996)
  • Aproximación orientada al comportamiento (D’Souza, 1998)
  • Alquiler
  • Vehículo
  • Administrador
  • cliente
  • vehículo
  • Alquiler
  • << extiende >>
  • TopeVehCliente

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 de colaboraciones
  • 1. Protocolo de comunicación con el usuario
  • SolicitarVehículo
  • DevolverVehículo
  • administrador
  • unAlquiler:
  • AlquilerVehículo

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

  • Cliente
  • identificacion
  • totalcontratos
  • cargarVehículo
  • descargarVehículo
  • Vehículo01
  • matricula
  • tarifa
  • estado
  • condiciones
  • entregarVehículo
  • devolverVehículo
  • 0..1
  • alquilador
  • 0..*
  • objetoalquiler
  • Patrón estructural de roles
  • vehículo
  • objetoAlquiler
  • activo
  • objetoVenta
  • clase
  • ClaseNúcleo
  • ClaseRol1
  • ClaseRol2
  • ClaseRol
  • instancia de
  • Instancia de
  • pagoImpuesto
  • alquilerVeh
  • ventaVeh

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”

Especificación del Componente en Oasis

  • Una clase actividad - coordinadora
  • Una o más clases recurso participantes
  • 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;
  • 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ón
  • desde/hacia el entorno
  • 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
  • 3. Mecanismo de comu-
  • nicación entre objetos
  • (comunicación
  • sincrónica)
  • Funciones de la clase actividad

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
  • Class Vehículo01 played by
  • Vehículo (objetoAlquiler)

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

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

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

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



Compartir con tus amigos:


La base de datos está protegida por derechos de autor ©absta.info 2019
enviar mensaje

    Página principal