La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Aspectos Avanzados de la Tecnología de Objetos

Presentaciones similares


Presentación del tema: "Aspectos Avanzados de la Tecnología de Objetos"— Transcripción de la presentación:

1 Aspectos Avanzados de la Tecnología de Objetos
5. Frameworks y Componentes (parte 2) Dr. Juan José Aranda Aboy

2 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. Dr. Juan José Aranda Aboy

3 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. Dr. Juan José Aranda Aboy

4 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. Dr. Juan José Aranda Aboy

5 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. Dr. Juan José Aranda Aboy

6 Diseño de un Framework OO
Conocimiento del Dominio : ¿Para cuáles aplicaciones será el Framework? ¿Qué es común a todas ellas? Arquitectura: Las mayores y mas críticas decisiones técnicas ¿Qué se requiere, además de las clases? Diseño Orientado a Objetos: Reutilización del Diseño: Patrones Inversión de Control + Búsqueda de enganches apropiados Dr. Juan José Aranda Aboy

7 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 Dr. Juan José Aranda Aboy

8 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. Dr. Juan José Aranda Aboy

9 Proceso de desarrollo del framework
Dr. Juan José Aranda Aboy

10 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. Dr. Juan José Aranda Aboy

11 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() Dr. Juan José Aranda Aboy

12 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. Dr. Juan José Aranda Aboy

13 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. Dr. Juan José Aranda Aboy

14 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. Dr. Juan José Aranda Aboy

15 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 Dr. Juan José Aranda Aboy

16 “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. Dr. Juan José Aranda Aboy

17 Frameworks de caja blanca vs. Frameworks de caja negra
Dr. Juan José Aranda Aboy

18 “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 Dr. Juan José Aranda Aboy

19 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. Dr. Juan José Aranda Aboy

20 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, … Dr. Juan José Aranda Aboy

21 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. Dr. Juan José Aranda Aboy

22 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. Dr. Juan José Aranda Aboy

23 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... Dr. Juan José Aranda Aboy

24 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 Dr. Juan José Aranda Aboy

25 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: [ x]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 Dr. Juan José Aranda Aboy


Descargar ppt "Aspectos Avanzados de la Tecnología de Objetos"

Presentaciones similares


Anuncios Google