Análisis Multifrecuencia de Señales Biomédicas Dr. Juan José Aranda Aboy Profesor Titular.
Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y...
-
Upload
beltran-concepcion -
Category
Documents
-
view
10 -
download
2
Transcript of Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y...
![Page 1: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/1.jpg)
Dr. Juan José Aranda Aboy
Aspectos Avanzados de la
Tecnología de Objetos
5. Frameworks y Componentes (parte 2)
![Page 2: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/2.jpg)
Dr. Juan José Aranda Aboy
Contenidos
• Análisis arquitectural y el Documento de la Arquitectura del Software (Software Architecture Document – SAD).
• Diseño de un entorno de trabajo (framework) de persistencia con patrones.
![Page 3: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/3.jpg)
Dr. Juan José Aranda Aboy
Objetivos específicos
• Conocer y aplicar prácticamente cómo se diseña la arquitectura de los sistemas.
• Explicar y manejar apropiadamente la arquitectura lógica.
• Mostrar la arquitectura utilizando los diagramas de paquetes de UML.
• Conocer como se diseña un framework.
![Page 4: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/4.jpg)
Dr. Juan José Aranda Aboy
Frameworks
• Aplicación medio completada, reutilizable, que puede especializarse para producir una aplicación personalizada.
• Conjunto de clases abstractas y concretas cooperando que se emplean en un diseño reutilizable de un tipo específico de software.
• Técnica Orientada a Objetos de reutilización:
– Reutilice el Diseño + Reutilice el Código.
![Page 5: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/5.jpg)
Dr. Juan José Aranda Aboy
Ejemplo: Calculadoras
• Interfase Calculator– getValue(), compute(Operator o), clear(), undo()– Usa patrón Command, opcionalmente Singleton– Recuerda los paréntesis, y puede iterar en su árbol.
• Interfase Operator– Descendientes: UnaryOperator, BinaryOperator– Clases concretas : Plus, Minus, Power, …– Actúa como clase Command, soporta Composites
• Interfase VisualCalculator– Observer en Calculator, puede mostrar operadores en
botones, puede mostrar el árbol de cálculo actual
• Todas son extensibles, “Main” recibe interfaces.
![Page 6: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/6.jpg)
Dr. Juan José Aranda Aboy
Diseño de un Framework OO
1. Conocimiento del Dominio :– ¿Para cuáles aplicaciones será el Framework?– ¿Qué es común a todas ellas?
2. Arquitectura:– Las mayores y mas críticas decisiones técnicas– ¿Qué se requiere, además de las clases?
3. Diseño Orientado a Objetos:– Reutilización del Diseño: Patrones– Inversión de Control + Búsqueda de enganches
apropiados
![Page 7: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/7.jpg)
Dr. Juan José Aranda Aboy
Conocimiento del Dominio
• También conocido como Análisis o Modelado.• Decisiones “significativas” comunes:
– Conceptos principales del dominio modelado.– Operaciones principales.– Casos de Uso: ¿Cómo realizan los usuarios tareas
comunes?
• Ejemplo, una calculadora– Conceptos: operador unario, operador binario, valor
actual, valor en memoria, tecla de mayúscula.– Operaciones: Limpiar, usar operador, calcular.– Caso de Uso: Calcular un promedio de n números
![Page 8: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/8.jpg)
Dr. Juan José Aranda Aboy
Arquitectura
• El conjunto de decisiones significativas acerca de la estructura del software, su división en componentes y subsistemas y sus interfaces, así como los lineamientos para integrarles.
• Decisiones significativas comunes:– Lenguaje de programación, sistema operativo, hardware.– Uso de las principales liberarías externas o aplicaciones.– Distribución Física, procesos e hilos.– Conceptos principales: Tipos de módulos e interfaces.– Comunicación y sincronización entre módulos.– Modelo de Seguridad.– Rendimiento y escalabilidad.
![Page 9: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/9.jpg)
Dr. Juan José Aranda Aboy
Proceso de desarrollo del framework
![Page 10: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/10.jpg)
Dr. Juan José Aranda Aboy
Ejemplo: JCA
• Java Cryptography Architecture (JCA, JCE)– Cifrado, Firmas Digitales, Gestión de claves.– Abierta a nuevos algoritmos, nuevas implementaciones.
• Conceptos principales:– Suministrador (Provider): Suministra implementaciones
para un subconjunto de la Java Security API, identificado por nombre.
– Motor de clases (Engine Classes): Functionalidad para un tipo de conducta criptográfica: Firma (Signature) y Generación del par de claves (KeyPairGenerator).
– Factory Methods : Métodos estáticos en el motor de clases que retornan instancias de ellas para un algoritmo determinado.
– Almacén de claves (Key Store): Alcance de identidad del sistema.
![Page 11: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/11.jpg)
Dr. Juan José Aranda Aboy
JCA (2)
• Generación del par de claves pública/privada:KeyPairGenerator keygen =
KeyPairGenerator.getInstance(“DSA”, “MY_PROVIDER”);keygen.initialize(keySize, new SecureRandom(userSeed));KeyPair pair = keygen.generateKeyPair();– Se necesita el molde DSAKeyPairGenerator para
inicializarlo con los parámetros específicos al algoritmo.• Generación de una firma:
Signature sha = Signature.getInstance(“SHA-1”);PrivateKey priv = pair.getPrivate();sha.initSign(priv);byte[] sig = sha.sign();– El suministrador es opcional en getInstance()
![Page 12: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/12.jpg)
Dr. Juan José Aranda Aboy
JCA (3)
• Aunque las implementaciones usualmente no son en Java, deben ser envueltas en clases Java.
• Estáticamente, se añaden líneas al archivo de texto java.security:– Security.providerName.n = com.acme.providerPackage– n es el orden de preferencia del suministrador, 1 es el mas
elevado.• Los suministradores pueden gestionarse dinámicamente:
– La clase Security tiene los métodos addProvider(), getProvider()– La clase Provider tiene getName(), getVersion(), getInfo()
• Los suministradores deben escribirse como “clases maestras”:– Especifica cuales implementaciones están en oferta mediante ella.– Hay nombres estandarizados para los algoritmos conocidos.
![Page 13: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/13.jpg)
Dr. Juan José Aranda Aboy
Resumen de JCA• Respuestas de la arquitectura:
– Conocimiento del dominio: ¿Cuál conducta (motor de clases) deberá estar soportada?
– ¿Cómo se definen y seleccionan diferentes algoritmos e implementaciones?
– ¿Cómo deben usarse las implementaciones no hechas en Java?– ¿Cómo puede un administrador configurar una clave
almacenada y un conjunto confiable de sumistradores e implementaciones?
– ¿Cómo pueden las empresas comerciales vender implementaciones de código fuente cerrado compatibles con Java de las características de seguridad?
• No sólo clases e interfaces:– Persistencia del almacén de claves, archivos de configuración,
código no Java.– Consideraciones prácticas, de gestión y económicas.
![Page 14: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/14.jpg)
Dr. Juan José Aranda Aboy
Inversión de Control
• Basada en el llamado “Principio de Hollywood”:
No nos llame, nosotros lo haremos.• Beneficios:
– Reutilización del código: El flujo de control se codifica sólo una vez.
– Hace claro cómo y cuando se emplean los enganches.– Produce uniformidad en la conducta de los programas,
lo que facilita su comprensión.
• Desventajas:– La eliminación de errores es mas difícil.– La integración de dos frameworks puede ser difícil.
![Page 15: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/15.jpg)
Dr. Juan José Aranda Aboy
Enganches (Hooks)• Hook = Hotspot = Plug-point
– Puntos donde el FW puede ser personalizado.
• Los puntos fundamentales del diseño requieren conocimiento del dominio.– ¿Cómo encontrar los enganches
adecuados?– ¿Pocos o muchos enganches?– ¿Cuál debe ser el comportamiento
asumido?• Alternativas para la
implementación:– Método de las plantillas (Template
Method)– Estrategia o Prototipo– Observador
![Page 16: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/16.jpg)
Dr. Juan José Aranda Aboy
“Colores” de Frameworks
• Frameworks de “caja blanca”:– Extendidos por herencia desde las clases del
framework.– Template Method, Builder, Bridge, Abstract Factory– Requieren conocimiento profundo de la estructura del
framework.
• Frameworks de “caja negra”:– Extendidos por composición con clases del framework– Strategy, State, Visitor, Prototype, Observer– Mas flexibles, ligeramente menos eficientes.
• Frameworks de “caja gris”:– Son los mas comunes en el desarrollo real.
![Page 17: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/17.jpg)
Dr. Juan José Aranda Aboy
Frameworks de caja blanca vs. Frameworks de caja negra
![Page 18: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/18.jpg)
Dr. Juan José Aranda Aboy
“Colores” de Frameworks (2)Los Frameworks tienden a evolucionar hacia cajas negras:• Abstract Window Toolkit (AWT) 1.0 tenía un modelo de eventos
de caja blanca:– Cada componente visual poseía un método handleEvent()– Cada frame lo heredaba y lo sobrescribía.– El método resultaba ser una sentencia switch muy larga.
• AWT 1.1 y Swing son de caja negra.– Observer pattern: Las componentes de la interfaz de usuario
publican eventos para los escuchas (listeners) registrados.• ¿Por qué es mejor la caja negra?
– Separación de asuntos: mejores abstracciones.– Importante para la generación (automática) de código
![Page 19: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/19.jpg)
Dr. Juan José Aranda Aboy
Dominios de Aplicación
• Infraestructura del Sistema– Envoltura del Sistema Operativo: MFC, MacApp– Protocolos de comunicación : RMI– Acceso a Bases de Datos: ADO, JDO– Seguridad: JCA, JSA
• Interfaces de Usuario– SmallTalk-80 fue el primer OOFW usado
ampliamente.– Swing, Delphi, MFC, COM, …– Integrados con los entornos de desarrollo.
![Page 20: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/20.jpg)
Dr. Juan José Aranda Aboy
Dominios de Aplicación (2)
• Middleware / Object Request Brokers– Object Request Brokers: CORBA, COM+, EJB– Web Services: .NET, Sun One
• Aplicaciones Empresariales– En la empresa = Trabajo crítico del día a día.– Usualmente desarrollado al interior de las
organizaciones.– Excepción notable: IBM San-Francisco– Industrias: Telecomunicaciones, Manufactura,
Aviación, Finanzas, Facturación, Seguros, Cuidados de Salud, Almacenes, …
![Page 21: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/21.jpg)
Dr. Juan José Aranda Aboy
Fortalezas de los Framework
• Reutilizar– Diseño + Código
• Extensibilidad– Permite crear Componentes reutilizables
• Refuerza reutilizar el Diseño.– Herramienta “Educacional”
• Partición entre Conocimiento y Entrenamiento.– Especialización Técnica vs. Aplicativa.
![Page 22: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/22.jpg)
Dr. Juan José Aranda Aboy
Debilidades de los Frameworks
• Esfuerzo para su desarrollo– Los frameworks genéricos son mas difíciles de diseñar y construir.– También son difíciles de validar y corregir.
• Mantenimiento– ¿Necesita cambiar el FW o la aplicación?– Los cambios en las interfaces requieren actualizar todas las
aplicaciones
• Curva de Aprendizaje– A diferencia de las librerías de clases, no puede aprenderse una
clase de una vez.
• Posibilidad de integrar múltiples frameworks.• Eficiencia.• Carencia de estandarización.
![Page 23: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/23.jpg)
Dr. Juan José Aranda Aboy
Condiciones económicas
• Las principales firmas desarrollan y venden FWs:– Debe usar el lenguaje: Swing– Debe usar el sistema operativo: MFC– Debe usar la herramienta de desarrollo: Delphi– Debe usar la Base de Datos: Oracle
• Hay un componente industrial también:– Empresas que escriben y venden componentes.
• Los Frameworks son una necesidad económica, a menos que se desee desarrollar interfaz de usuario, base de datos, solicitud de objetos remotos, etc., totalmente desde cero hoy...
![Page 24: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/24.jpg)
Dr. Juan José Aranda Aboy
Frameworks
Resumiendo:• Técnica orientada a objetos.• Aplicaciones casi completas y reutilizables.• Se reutiliza tanto el código como el diseño.• Principio Hollywood + Enganches.• Permite la creacion de Componentes• Origen de muchos patrones de diseño.• Muchos dominios de aplicación.
Envoltorio Arquitectura Metodología
![Page 25: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)](https://reader033.fdocument.pub/reader033/viewer/2022061301/54d7bd3f497959bd1d8b5f0b/html5/thumbnails/25.jpg)
Dr. Juan José Aranda Aboy
Referencias
• Larman, C. “UML y Patrones” 2da ed. Pearson Prentice Hall, 2004
• Evitts,P. “A UML Pattern Language” (archivo en PDF: [157870118x]uml pattern language.pdf)
• Wikipedia: Software framework (español)• El Desarrollo del Framework Orientado al Objeto• What is a Framework? • Real Frameworks for a Service-Oriented World• Applying Robustness Analysis on the Model–View–Controller (MVC)
Architecture in ASP.NET Framework, using UML• A Java/Swing GUI Framework• Pragmatic Design• Comparison of EAI Frameworks• Aplicación paso a paso con Struts• OMG Membership Approves Adoption of Reusable Software Assets
(RAS) Standard