+ All Categories
Home > Documents > Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y...

Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y...

Date post: 07-Feb-2015
Category:
Upload: beltran-concepcion
View: 10 times
Download: 2 times
Share this document with a friend
25
Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)
Transcript
Page 1: Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 5. Frameworks y Componentes (parte 2)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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


Recommended