Logo Studenta

Estrategias de prototipado y ensamblado de componentes

¡Este material tiene más páginas!

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

Continuar navegando