Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
06/09/2013 1 1Judith Meles Estrategias de Prototipado y Ensamblado de Componentes Ing. Judith Meles Universidad Tecnológica Nacional Cátedra de Diseño de Sistemas 2Judith Meles Estrategia de Prototipado • Es una elección de modelo de proceso (ciclo de vida) que se recomienda elegir a la hora de implementar un proyecto complejo, con dominio no familiar, que utilizará una tecnología desconocida. • Por ello se requiere el uso de prototipos en el diseño y la implementación, además de utilizarlos durante la validación de requerimientos. 06/09/2013 2 3Judith Meles Concepto de prototipo • Primera versión de un nuevo tipo de producto, en el que se han incorporado sólo algunas características del sistema final, o no se han realizado completamente. • Modelo o maqueta del sistema que se construye para comprender mejor el problema y sus posibles soluciones: • evaluar mejor los requisitos. • probar opciones de diseño. 4Judith Meles Prototipos: algunos tips… • Características de los prototipos: • Funcionalidad limitada. • Poca fiabilidad. • Características de operación pobres. • Prototipo 10% presupuesto del proyecto. • normalmente pocos días de desarrollo. 06/09/2013 3 5Judith Meles Uso de los prototipos • Se presenta al cliente un prototipo para su experimentación. • Ayuda al cliente a establecer claramente los requisitos. • Ayuda a los desarrolladores a: • Validar corrección de la especificación. • Aprender sobre problemas que se presentarán durante el diseño e implementación del sistema. • Mejorar el producto. • Examinar viabilidad y utilidad de la aplicación. 6Judith Meles ¿Cuándo son interesantes los prototipos? Siempre, pero especialmente cuando... Dominio riesgoso (bien por su dificultad o por falta de tradición en su aplicación). El costo de rechazo por parte de los usuarios, por no cumplir sus expectativas, es muy alto. Es necesario evaluar previamente el impacto del sistema en los usuarios y en la organización. Se usan nuevos métodos, técnicas, tecnología. 06/09/2013 4 7Judith Meles Beneficios • Las razones para emplear los prototipos son: • a) aumentar la productividad • b) planificar el desarrollo • c) entusiasmo de los usuarios respecto a los prototipos 8Judith Meles Prototipos según su propósito Prototipado de interfaz de usuario: modelos de pantallas. Prototipado funcional (operacional): implementa algunas funciones, y a medida que se comprueba que son las apropiadas, se corrigen, refinan, y se añaden otras. Prototipos Arquitectónicos: sirven para evaluar decisiones arquitectónicas de infraestructura, tecnología e integración. Modelos de rendimiento: evalúan el rendimiento de una aplicación crítica (no sirven al análisis de requisitos). 06/09/2013 5 9Judith Meles Prototipos según su utilidad Rápido o desechable: Sirve al análisis y validación de los requisitos. Después se redacta la especificación del sistema y se desecha el prototipo. La aplicación se desarrolla siguiendo un paradigma diferente. Problema: cuando el prototipo no se desecha, y termina convirtiéndose en el sistema final. Evolutivos: Comienza con un sistema relativamente simple que implementa los requisitos más importantes o mejor conocidos. El prototipo se aumenta o cambia en cuanto se descubren nuevos requisitos. Finalmente, se convierte en el sistema requerido. Actualmente se usa en el desarrollo de sitios Webs y en aplicaciones de comercio electrónico. 10Judith Meles Prototipos según su alcance • Vertical •desarrolla completamente alguna de las funciones. • Horizontal •desarrolla parcialmente todas las funciones. 06/09/2013 6 11Judith Meles Prototipación de interfaz de usuario La ayuda de la prototipación es permitirle a los usuarios ganar experiencia directa con la interfaz. Sin esa experiencia directa, es imposible juzgar la usabilidad de una interfaz. La Prototipación puede ser un proceso de dos etapas: Primeramente en el proceso, se pueden utilizar prototipado en papel; El diseño luego es refinado y luego se desarrollan prototipos automatizados incrementalmente sofisticados conforme se van desarrollando. 12Judith Meles Prototipado en papel • Escenarios de recorrida utilizando sketches, de la interfaz. • Uso de storyboards para presentar una serie de interacciones con el sistema. • El Prototipado en Papel es una forma efectiva de obtener reacciones del usuario a una propuesta de diseño. 06/09/2013 7 13Judith Meles Técnicas de prototipado • Prototipación conducida por Guiones • Desarrollar un conjunto de guiones y pantallas utilizando una herramienta tal como Macromedia Director. Cuando el usuario interactúa , la pantalla cambia al siguiente display. • Programación Visual • Utilizar un lenguaje diseñado para desarrollo rápido tal como Visual Basic. • Prototipado basado en Internet • Utilizar un navegador web y guiones asociados. 14Judith Meles Prototipos de Baja Tecnología: Mockups 06/09/2013 8 15Judith Meles Prototipos de Baja Tecnología: Mockups 16Judith Meles Evaluación de interfaz de usuario • Alguna evaluación de un diseño de interfaz de usuario debería realizarse para evaluar su nivel de adecuación. • Una evaluación a escala completa es muy cara e impráctica para la mayoría de los sistemas. • Idealmente, una interfaz debería ser evaluada contra una especificación de usabilidad. Sin embargo, es raro que tales especificaciones se construyan. 06/09/2013 9 17Judith Meles Estrategias para el Desarrollo de Prototipos • Prototipos para pantallas: El elemento clave es el intercambio de información con el usuario. • Prototipos para procedimientos de procesamiento: El prototipo incluye sólo procesos sin considerar errores. • Prototipos para funciones básicas: Solo se desarrolla el núcleo de la aplicación, es decir sólo los procesos básicos. 18Judith Meles Tareas de Responsabilidad de los usuarios • Identificar la finalidad del sistema • Describir la salida del sistema • Describir los requerimientos de datos • Utilizar y evaluar el prototipo • Identificar las mejoras necesarias • Documentar las características no deseables 06/09/2013 10 19Judith Meles Creencias erróneas sobre los Prototipos • El desarrollo del prototipo es trivial • Es sólo para aplicaciones pequeñas • Es sólo para aplicaciones sencillas • La participación del usuario es simbólica 20Judith Meles Críticas / Riesgos • El cliente cree que es el sistema funcional. • Peligro de familiarización con malas elecciones iniciales. •Difícil de administrar: se necesita mucha experiencia. •Alto costo. 06/09/2013 11 21Judith Meles Estrategia de Ensamblado de Componentes 22Judith Meles Estrategia de Ensamblado de Componentes Es una decisión arquitectónica y de diseño de la solución final del software a construir. Implica: Decidir implementar por componentes, definiendo la granularidad del componente. Son más abstractos que las clases. Ensamblando final. Prueba de integración. 06/09/2013 12 23Judith Meles Fundamentos de la Ingeniería de Software basada en componentes (ISBC) • Componentes Independientes especificados por sus interfaces. • Estándares de Componentes para facilitar la integración de componentes. • Middleware que brinda soporte para la integración de componentes. • Un proceso de desarrollo que empalma con la ISBC. 24Judith Meles Principios de Diseño en la ISBC Además del beneficio del reuso, la ISBC se base en lo siguiente: Los Componentes son independientes para que sus ejecuciones no interfieran entre sí. Las implementaciones de los componentes están ocultas. La comunicación es a través de las interfaces bien definidas. Las plataformas de componentes ofrecen servicios estándar que reducen costos de desarrollo. 06/09/2013 13 25Judith Meles CBSE problems • Integridad de Componentes – ¿Cómo puede ser confiable un componente que no tiene su código fuente disponible? • Certificación de Componente - ¿Quiéncertificará la calidad de los componentes? • Predicción de Propiedades emergentes- ¿Cómo se pueden predecir las propiedades emergentes de composiciones de componentes. • Requerimientos de compensaciones - ¿Cómo se realiza el análisis de compensaciones entre un componente y otro? 26Judith Meles Componentes • Proveen un servicio sin importar donde se esta ejecutando o su lenguaje de programación. • Un componente es una entidad ejecutable independiente que puede estar formado por uno o más componentes ejecutables. • No necesita ser compilado y puede usarse con otros componentes. • Se publica la interfaz del componente y todas las interacciones son a través de la interfaz publicada. • Las interfaces del componente se expresan en términos de operaciones parametrizadas y su estado interno nunca se expone. 26 cmp Implementation Model admSensor datosSensor ColectorDatos admSensor datosSensor addSensor removeSensor startSensor stopSensor testSensor inicializar reportar listarTodo 06/09/2013 14 27Judith Meles Características de un componente Característica Descripción Estandarizado Debe ajustarse a un estándar, que define: interfaces, metadatos, documentación, composición e implementación. Independiente Debe ser factible componerlo e implementarlo sin usar otros componentes. Componible Todas las interacciones externas deben darse mediante interfaces definidas públicamente. Debe permitir acceso a información sobre sí mismo. Implementable Debe ser autocontenido. Capaz de ejecutarse como entidad independiente. Documentado Deben implementarse en forma completa. Debe especificarse su sintaxis y la semántica de todas las interfaces de componente. Así los usuarios pueden decidir si el componente satisface sus necesidades. 28Judith Meles Modelos de Componentes • Es una definición de estándares para implementación, documentación y despliegue de componentes. • Su propósito es asegurar que los desarrolladores pueden interoperar. • Ejemplos: • EJB model (Enterprise Java Beans) • COM+ model (.NET model) • Corba Component Model • Especifica como deben definirse las interfaces y los elementos que deben incluirse en la definición de una interface. 06/09/2013 15 29Judith Meles Soporte de Middleware Implementa servicios de componentes y ofrece interfaces a dichos servicios. La implementación del modelo de componentes provee Servicios de Plataforma: permiten a los componentes comunicarse e interoperar en un entorno distribuido; Servicios de Soporte: servicios independientes de la aplicación que son utilizados por diferentes componentes. Para usar los servicios provistos por un modelo, lo componentes se despliegan en un contenedor. Contenedor: conjunto de interfaces utilizadas para acceder a las implementaciones de los servicios. Chapter 17 Software reuse 29 30Judith Meles Servicios Middleware definidos en un modelo de componentes Servicios de apoyo Gestión de excepción Servicios de apoyo Seguridad Gestión de Componente Concurrencia Gestión de transacción Gestión de recursos Persistencia Direccionamiento Definición de Interfaz Comunicaciones de Componentes 06/09/2013 16 31Judith Meles Procesos de la Ingeniería de Software basada en componentes (ISBC) Dan soporte a la ingeniería de software basada en componentes. Existen dos tipos de procesos: Desarrollo para reuso: se ocupa del desarrollo de componentes o servicios que se utilizarán en otras aplicaciones. Por lo regular, implica la generalización de los componentes existentes. Desarrollo con reuso: este se ocupa para desarrollar nuevas aplicaciones usando componentes y servicios existentes. 32Judith Meles Procesos de la Ingeniería de Software basada en componentes (ISBC) •Adquiere componentes para reuso. •Desarrolla componentes reusables Adquisición de Componentes •Cataloga los componentes. •Almacena y organiza para su uso Gestión de Componentes •Comprueba componentes para asegurar que cumplen su especificación. Certificación de Componentes 06/09/2013 17 33Judith Meles Desarrollo de Componentes para reuso Pueden construirse generalizando componentes existentes. Reusabilidad del componente Deberían reflejar abtracciones estables del dominio; Deberían esconder la representación del estado; Deberían ser lo más independientes posible; Deberían publicar excepciones en la interface del componente. Equilibrio entre la reutilización y usabilidad Mientras más general, mayor es la capacidad de reutilización, pero es entonces más compleja y por lo tanto menos utilizable. 34Judith Meles Cambios en los componentes para hacerlos reusables • Eliminar métodos específicos de aplicación; • Cambiar los nombres para hacerlos más generales; • Agregar métodos para brindar cobertura funcional; • Hacer manejadores de excepción consistentes para todos los métodos; • Agregar interfaz de configuración para permitir la adaptación de los componentes a diferentes situaciones de uso; • Integrar los componentes requeridos para aumentar la independencia. 06/09/2013 18 35Judith Meles Ingeniería de Software basada en componentes (ISBC) con reuso Componer componentes para crear el sistema Identificar componentes candidatos Diseño arquitectónico Modificar los requerimientos de acuerdo a los componentes descubiertos Identificar componentes candidatos Bosquejar Requerimientos del Sistema 36Judith Meles Composición de Componentes Proceso de ensamblar componentes para crear un sistema. Implica la integración de componentes entre sí y con su infraestructura Tipos de Composición Secuencial: los componentes compuestos se ejecutan en secuencia. Se requiere códigos “pegamento” dado que no se llaman mutuamente. Jerárquica: cuando un componente llama a los servicios de otro. La interfaz provista de un componente de un componente está compuesta con la interfaz requiere de otro. No aplicable para servicios Web, que no tiene interfaz “requerida”. Aditiva: cuando dos interfaces de componentes se unen para crear uno nuevo. A y B no son dependientes y no se llaman mutuamente. 06/09/2013 19 37Judith Meles Tipos de Composiciones de Componentes 38Judith Meles Incompatibilidad de interfaces • Incompatibilidad de Parámetros las operaciones de cada lado de la interfaz tienen el mismo nombre, pero sus tipos son diferentes. • Incompatibilidad de Operación cuando los nombres de las operaciones en las interfaces compuestas (provee y requiere) son diferentes. • Operación incompleta donde la interfaz provista de un componente es un subconjunto de la interfaz requerida o viceversa. 06/09/2013 20 39Judith Meles Compensaciones en la Composición • Pueden aparecer conflictos entre requerimientos funcionales y no funcionales, y conflictos entre las necesidades de entrega rápida y la evolución del sistema. • Será necesario decidir cuestiones tales como: • ¿Qué composición de componentes es más efectiva para entregar los requerimientos funcionales? • ¿Qué composición de componentes facilitará cambios futuros? • ¿Cuáles serán las propiedades emergentes del sistema compuesto? Se trata de propiedades como rendimiento y confiabilidad. Sólo podrá valorarlas luego de implementado el sistema completo. 4 0 Judith Meles Beneficios Estudios informan que el ensamblaje de componentes lleva a: una reducción del 70 % del tiempo de ciclo de desarrollo, un 84 % del costo del proyecto un índice de productividad del 26,2 comparado con la norma de industria del 16,9. Aunque estos resultados están en función de la robustez de la biblioteca de componentes, no hay duda que el ensamblaje de componentes proporciona ventajas significativas para los ingenieros del software. 06/09/2013 21 4 1 Judith Meles Ventajas Aumento de reutilización del software. Simplifica las pruebas. Pruebas unitarias antes de probar el conjunto completo de componentes ensamblados. Simplifica el mantenimientodel sistema. Cuando existe un débil acoplamiento entre componentes, el desarrollador es libre de actualizar y/o agregar componentes según sea necesario, sin afectar otras partes del sistema. Mayor calidad. Dado que un componente puede ser construido y luego mejorado continuamente por un experto u organización, la calidad de una aplicación basada en componentes mejorará con el paso del tiempo. 4 2 Judith Meles Bibliografía • Ingeniería del Software Un Enfoque Práctico. Roger S. Pressman. Sexta Edición, Mc Graw Hill • Ingeniería de software, Ian Sommerville, 9ª. Edición, Adison Wesley • http://msdn.microsoft.com/es-es/library/bb972268.aspx por Julio Casal Terreros http://msdn.microsoft.com/es-es/library/bb972268.aspx http://msdn.microsoft.com/es-es/library/bb972268.aspx#authorbrief
Compartir