(Gp:) Tipo
(Gp:) Atributos
(Gp:) Mensajes + eventos
32 LDC: Componentes def component DoM(fich:”String”) propagates listMovies(list-movies=”List”) end interface is type File fich:”String” getlistMovies(category=”String”) throws listMovies(list-movies=”List”) end enddef DoM
33 LDC: Conectores Parametrización Componentes participantes (Gp:) Relación de uso
(Gp:) Gestión de eventos
(Gp:) Conector (Gp:) componente, set(componente)
(Gp:) Protocolo Tipo ASTM Protocolo en TDF
34 LDC: Conectores def connector MSelector(newphase:component) handles listMovies(list-movies=”List”),service(movie=”String”) service(category-movie=”Command”) end messages DoM.getlistMovies(category=”String”) Participant.initService(panel=”DoMpanel”) Participant.displayService(data=”List”) Participant.service(command=”Command”) end protocol is type Service std(SDL) {…} end enddef MSelector
35 LDS: Conexiones Conexiones En base a eventos Instanciación de la relación de uso (Gp:) Renombrar métodos y eventos
(Gp:) Adaptar componentes a conectores
36 LDS: Conexiones (scaccess1 : SCAccess(nombre)) scaccess1[acdb] to participant with {access(params), join} acdb with {subscribed,non-subscribed}; (Gp:) subscribed, (Gp:) non-subscribed (Gp:) Participant (Gp:) getAccessParams() –> (Gp:) joinResponse() (Gp:) join() ——————-> (Gp:) SCAccess (Gp:) ACDB: (Gp:) File (Gp:) <——— checkAccess() (Gp:) join (Gp:) access(params)
participant acdb scaccess1
37 LCF Organización de servicios genéricos Servicio de organización común (Gp:) (Gp:) readLocation() ——–> (Gp:) (Gp:) close() (Gp:) ConfiguratedDataBase: (Gp:) (Gp:) File (Gp:) (Gp:) readParameter() ——> (Gp:) ConfiguratedService: (Gp:) (Gp:) File (Gp:) (Gp:) addFile() (Gp:) (Gp:) addParties() (Gp:) (Gp:) addLocation() (Gp:) (Gp:) addParameter() (Gp:) (Gp:) close() (Gp:) Organización (Gp:) VoD genérico
(Gp:) VoD versión1
38 LCF (Gp:) Asignación de nombres lógicos a físicos (Gp:) set msap set movie remote set participant local
(Gp:) Configuración de parámetros globales (Gp:) put text “Fich.clientes” parname acdb::acdbfich value=””
(Gp:) Clases de componentes y conectores (Gp:) put text “Tipo acceso” implementation scaccess value=””
(Gp:) set parties unicast (Gp:) Tipo de servicio
39 Un ejemplo en LEDA (I) component Buffer { interface storage : Storage; retrieval : Retrieval; } role Storage(put) { spec is put?(x).Storage(put) } role Retrieval(get) { spec is get?(item,empty). ?. (x) item!(x). Retrieval(get) + ?. empty!(). Retrieval(get); }
40 Un ejemplo en LEDA (II) component Sender { interface writer : Writer; } role Writer(write) { spec is (data) write!(data). Writer(write); } role Reader(read) { spec is (return,empty) read!(return,empty). ( return?(item).Reader(read) + empty?().Reader(read) ); } component Receiver { interface reader : Reader; }
41 Un ejemplo en LEDA (III) component ProducerConsumer { interface … composition p: Sender; c: Receiver; b: Buffer; attachments p.writer(write) <> b.storage(write); b.retrieval(read) <> c.reader(read); }
42 LDS Parámetros globales Componentes simples conjunto lista de tipos components chair : Manager(name) audience : set(Participant) ===> item(audience) devices : {TextualChat,FileMovie} end (Gp:) Configuración con LCF
43 Comparación de LDAs
44 Arquitectura Software vs. COTS Arquitectura del Software Orientados a la reutilización independiente de patrones arquitectónicos y de componentes Modelos formales Tecnología desarrollada en el entorno académico COTS Componentes con interfaces estándares (IDLs) No aparece la noción de conector o “enchufe” Mercado global de componentes centrado en la reutilización de componentes Tecnología madura: OpenDoc/CORBA, OLE/COM
45 Ingeniería del Software basada en Componentes Componentes unidos a una arquitectura Partes de la interfaz de un componente para soportar la noción de arquitectura: Tiempo de Composición Elementos para generar una aplicación a partir de COTS Tiempo de Diseño Interfaces funcionales y dependencias de componentes Tiempo de Ejecución Servicios de composición dinámica en runtime
46 AS: problemas y líneas abiertas Definición de AS Expresión de parámetros de calidad Medidas Herramientas Relación con el dominio de aplicación ‘Vistas’ arquitectónicas
47 P1. Definición de AS Una AS es algo más que una descripción de la estructura de una aplicación ¿Qué es ese algo más? ¿Cómo se expresa? Otras definiciones alternativas de AS: “A Software Architecture is a collection of categories of elements that share the same likelihood of change. Each category contains software elements that exhibit shared stability characteristics”
48 P2. Parámetros de Calidad Actualmente no se tienen en cuenta. “…ilities”: portability, traceability,… “…nesses”: correcness, robustness, … Propios del tiempo de ejecución (dinámicos): Performance, security, availability, functionality, usability, etc. Intrínsecos a la AS (estáticos): Modifiability, portability, reusability, integrability, testability, etc.
49 P3. Medidas Necesarias para poder hablar de Ingeniería del Software Deberían estimar, de forma cuantitativa: Tamaño Estructura Calidad del diseño … Funcionales (estructuradas)/Orientadas a Objeto
50 P4. Herramientas Diseño Documentación Pruebas Análisis de propiedades (formales) Generación de código/prototipos
Página anterior | Volver al principio del trabajo | Página siguiente |