1 / 24

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

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

ion
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation 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

  2. Proyecto:Hacia un entorno para el desarrollo basado en componentesPrimera etapa Universidad EAFIT PSL 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

  5. Descomposición Horizontal Nivel de abstracción i vistai vistaj vistak Descomposición Vertical reifica Nivel de abstracción i+1 Características del componente Caracterización del componente la propuesta - el modelo

  6. Estructural - Propiedades (anatomia) Deóntico - Reglas (Moral) Funcional - Estado (fisiología) Dinámico - Colaboraciones (social) Facetas de descomposición intranivel

  7. Modelo de Colaboraciones Modelo de Roles Dinámica Deóntica Estructural Funcional Nivel Abstracto Dinámica Deóntica Estructural Funcional Nivel Concreto Arquitectura del componente Modelo Ontológico la propuesta - el modelo

  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. cliente Alquiler << extiende >> Alquiler Vehículo vehículo Administrador TopeVehCliente El modelo ontológico2 • Casos de uso extendidos (Jacobson, 1993; FRISCO, 1996) • Aproximación orientada al comportamiento (D’Souza, 1998)

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

  11. El modelo de colaboraciones 1. Protocolo de comunicación con el usuario unAlquiler: AlquilerVehículo administrador SolicitarVehículo DevolverVehículo el modelo - nivel de análisis

  12. El modelo de colaboraciones 2. Compromiso de los objetos participantes administrador unAlquiler: AlquilerVehículo unCliente: Cliente unVehículo: Vehículo01 SolicitarVehículo entregarVehículo cargarVehículo RecibirVehículo devolverVehículo descargarVehículo el modelo - nivel de análisis

  13. El modelo de roles Vehículo01 Cliente matricula tarifa estado condiciones entregarVehículo devolverVehículo identificacion totalcontratos cargarVehículo descargarVehículo 0..1 alquilador 0..* objetoalquiler • Vocabulario de las acciones abstractas • Clases por aspecto (rol) el modelo - nivel de análisis

  14. Patrón estructural de roles instancia de clase vehículo ClaseRol ClaseNúcleo alquilerVeh objetoAlquiler pagoImpuesto activo Instancia de objetoVenta ventaVeh ClaseRol1 ClaseRol2 el modelo

  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 unAlquiler: AlquilerVehículo administrador SolicitarVehículo If ¬(totalContrato < nroVehCliente) “Cliente excede tope de Vehículos” DevolverVehículo el modelo - vista deóntica

  16. Especificación del Componenteen Oasis • Una clase actividad - coordinadora • Una o más clases recurso participantes la metodología - nivel de análisis

  17. participants c: Cliente as alquilador ; v: Vehículo01 as objetoAlquiler; 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

  18. 1. Establece la comunicación desde/hacia el entorno 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 la metodología - nivel de análisis

  19. 2. captura explícita de las 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 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 la metodología - nivel de análisis

  20. Class Vehículo01 played by Vehículo (objetoAlquiler) 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 la metodología - nivel de análisis

  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

More Related