P. 1
MODELO BASADO EN COMPONENTES

MODELO BASADO EN COMPONENTES

|Views: 1.808|Likes:

More info:

Published by: Altair Montes de Oca on Apr 14, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

05/27/2013

pdf

text

original

MODELO BASADO EN COMPONENTES

Un componente es una pieza de código preelaborado que encapsula alguna funcionalidad expuesta a través de interfaces estándar. Es algo muy similar a lo que podemos observar en el equipo de música que tenemos en nuestra sala. Cada componente de aquel aparato ha sido diseñado para acoplarse perfectamente con sus pares, las conexiones son estándar y el protocolo de comunicación está ya preestablecido. Al unirse las partes, obtenemos música para nuestros oídos.

El paradigma de ensamblar componentes y escribir código para hacer que estos componentes funcionen se conoce como Desarrollo de Software Basado en Componentes.

Desarrollo

basado en componentes

El modelo de desarrollo basado en componentes incorpora muchas de las características del modelo espiral. Es evolutivo por naturaleza y exige un enfoque interactivo para la creación del software. Sin embargo, el modelo de desarrollo basado en componentes configura aplicaciones desde componentes preparados de software (clases).

El modelo de desarrollo basado en componentes conduce ala reutilización del software, y la reutilización proporciona beneficios a los ingenieros de software. Según estudios de reutilización, QSM Associates, Inc. Informa que el ensamblaje de componentes lleva a una reducción del 70 % del ciclo de desarrollo un 84% del coste del proyecto y un índice de productividad del 26.2. No hay duda que el ensamblaje de componentes proporciona ventajas significativas para los ingenieros del software.

El proceso unificado de desarrollo de software representa un número de modelos de desarrollo basado en componentes que han sido propuestos en la industria. El lenguaje de modelado unificado define los componentes. Utilizando una combinación

el desabollador es libre de actualizar y/o agregar componentes según sea necesario. Reutilización del software. Simplifica el mantenimiento del sistema. sin afectar otras partes del sistema. y en los problemas que se plantean en este tipo de entornos. En este artículo se discuten precisamente los aspectos de calidad relativos a los componentes software y a las aplicaciones que con ellos se construyen. Simplifica las pruebas. . 3. Nos lleva a alcanzar un mayor nivel de reutilización de software. Cuando existe un débil acoplamiento entre componentes. Permite que las pruebas sean ejecutadas probando cada uno de los componentes antes de probar el conjunto completo de componentes ensamblados.del desarrollo ¡ncremental e interactivo. como un paso hacia una verdadera ingeniería. el proceso unificado define la función del sistema aplicando un enfoque basado en escenarios. la atención de la comunidad científica comienza a centrarse en los aspectos extrafuncionales y de calidad. Beneficios del Desarrollo de Software Basado en Componentes El uso de este paradigma posee algunas ventajas: 1. 2. Una vez que la mayor parte de los aspectos funciona les de esta disciplina comienzan a estar bien definidos. El desarrollo de software basado en componentes se ha convertido actualmente en uno de los mecanismos más efectivos para la construcción de grandes sistemas y aplicaciones de software. con especial énfasis en los estándares internacionales que los definen y regulan.

Interfaces Los componentes también pueden exponer las interfaces. Mayor calidad. máquinas o hardware. Estas son los puntos visibles de entrada o los servicios que un co mponente está ofreciendo y dejando disponibles a otros componentes de software y clases. Dado que un componente puede ser construido y luego mejorado continuamente por un experto u organización. un componente está compuesto por numerosas clases y paquetes de clases internos. Los componentes y los Nodos Un diagrama de despliegue muestra el despliegue físico del sistema en un ambiente de producción (o de prueba). Restricciones . Típicamente. en qué servidores. También se puede crear a partir de una colección de componentes más peque ños. tanto un componente de la Interfaz de usuario como un servidor de reglas de negocio.4. la calidad de una aplicación basada en componentes mejorará con el paso del tiempo La Notación de Componentes Un componente puede ser algo como un control Actives. su comunicación su ubicación y otras condiciones. Muestra dónde se ubican los componentes. El Diagrama de Componentes El diagrama de componentes muestra la relación entre componentes de software. sus dependencias. Puede representar los enlaces de redes.

Las pre-condiciones especifican lo que debe ser verdadero antes de que un componente pueda realizar alguna función. y nos asombramos cada vez más al darnos cuenta de que este solo es el inicio.Los componentes pueden restricciones asignadas que indican el entorno en el que operan. . Al mirar hacia atrás. vemos los increíbles avances que hemos logrado en la comprensión de la forma correcta de reutilizar el software y el conocimiento existente. Conclusión Tenemos la fortuna de presenciar el nacimiento de una nueva forma de hacer software. El desarrollo de software basado de componentes se convirtió en el pilar de la Revolución Industrial del Software y se proyecta hoy en día en diversas nuevas formas de hacer software de calidad con los costos más bajos del mercado y en tiempos que antes eran impensables. Análisis del riesgo Se estudian todos los riesgos potenciales y se seleccionan una o varias alternativas propuestas para reducir o eliminar los riesgos. Empresas como Microsoft entendieron el potencial de esta metodología hace años y hoy nos ofrecen nuevas iniciativas y herramientas que buscan llevar al proceso de construcción de softwar e hacia el sitial privilegiado en el que debió colocarse desde un principio. que traerá beneficios inmensos para todos. El desarrollo de software basado en componentes desde siempre fue la idea revolucionaria que nos llevó a pensar que sí era posible el construir software de calidad en corto tiempo y con l a misma calidad que la mayoría de las industrias de nuestro tiempo. las post -condiciones indican lo que debe ser verdadero después de que un componente haya realizado algún trabajo y los invariantes especifican lo que debe permanecer verdadero durante la vida del componente.

MiTecnologico. Tambien los invito a aportar material a los mas de 30. www. Ensenada.000 temas que lo componen.Reduce riesgos del proyecto . Cuando un sistema falla se pierde tiempo y coste dentro de la empresa. Ventajas El análisis del riesgo se hace de forma explícita y clara.Incorpora objetivos de calidad Integra el desarrollo con el mantenimiento Desventajas: Genera mucho tiempo en el desarrollo del sistema .com es un esfuerzo personal y de muchos amigos de MEXICO y el Mundo Hispano por devolver algo de lo mucho que hemos recibido en el proceso de la educacion superior. y con ello decidimos si continuamos con las fases siguientes y planificamos la próxima actividad.000 temas que constituyen las 30 carreras profesionales que se imparten en los Institutos Tecnologicos de Mexico y se encuentran en este sitio. evaluándolo. Mexico .Planificar Revisamos todo lo hecho. Estoy invitando a todos los maestros y profesionales de esta area y/o carrera a colaborar construyendo este sitio dedicado a esta hermosa y util profesion aportando el material apropiado a cada uno de los mas de 1. Une los mejores elementos de los restantes modelos. Exige una cierta habilidad en los analistas (es bastante difícil). BC. .Modelo costoso Requiere experiencia en la identificación de riesgos Inconvenientes Genera mucho trabajo adicional. saludos Prof Lauro Soto.

deben ser construidos en tiempo récord y deben cumplir con los estándares más altos de calidad.net en verdaderas piezas de ensamblaje.net 5. con bases firmes y calidad incomparable. Asimismo. Industrialización del Software a través de la Plataforma . la reducción del ciclo de desarrollo y el mayor retorno sobre la inversión. al reutilizar trozos de experiencias. Introducción La complejidad de los sistemas computacionales actuales nos ha llevado a buscar la reutilización del software existente. se concibió y perfeccionó lo que hoy conocemos como Ingeniería de Software Basada en Componentes (ISBC). ideas y artefactos. podemos entender el origen de muchos problemas que se han presentado históricamente en la construcción de software y vislumbrar las posibles y probables soluciones que nos llevarán hacia la industrialización del software moderno. convirtiendo a los componentes . Si hay algo que ha aprendido el ser humano desde tiempos muy antiguos es a reutilizar el conocimiento existente para sus cada vez más ambiciosas empresas.Desarrollo de Software basado en Componentes Por Julio Casal Terreros Contenido 1. los nuevos paradigmas como las Fábricas de Software proveen de los medios para hacer la transición desde el 'hacer a mano' hacia la fabricación o manufactura de software. la cual impulsa la idea de industrializar el software utilizando tecnologías de componentes. Los avances y mejoras presentados en esta plataforma van mucho más allá de las implementaciones iniciales como COM y CORBA. la cual se centra en el diseño y construcción . El desarrollo de software basado en componentes permite reutilizar piezas de código preelaborado que permiten realizar diversas tareas. Conclusión 1. Este proceso de industrialización ha dado ya sus inicios con implementaciones como la plataforma . no solo nos aseguramos de no cometer los mismos errores del pasado. Beneficios del Desarrollo de Software basado en Componentes 3. Metrópolis: Analogía de la Evolución del Software basado en Componentes 4. Los sistemas de hoy en día son cada vez más complejos. Introducción 2. en un estilo muy similar a las líneas de ensamblaje modernas. habremos de utilizarlo desde el mismo instante en que escribamos nuestra primera línea de código. Fábricas de Software: el Nuevo Paradigma 6. sino que logramos construir cosas cada vez más grandes y maravillosas. En efecto.net. conllevando a diversos beneficios como las mejoras a la calidad. Al comparar la evolución del ambiente de IT con el crecimiento de las metrópolis actuales. uno de los primeros que se nos enseñan a quienes entramos al mundo del desarrollo de software. Este concepto de la reutilización. Para hacer frente a esto.

Es algo muy similar a lo que podemos observar en el equipo de música que tenemos en nuestra sala. La adición de una pieza dada de funcionalidad tomará días en lugar de meses ó años. Cuando existe un débil acoplamiento entre componentes. una idea que ya es común en casi todas las industrias existentes. Esta ciencia trabaja bajo la filosofía de "comprar. El paradigma de ensamblar componentes y escribir código para hacer que estos componentes funcionen se conoce como Desarrollo de Software Basado en Componentes. Cada componente de aquel aparato ha sido diseñado para acoplarse perfectamente con sus pares. Ciclos de desarrollo más cortos.de sistemas computacionales que utilizan componentes de software reutilizables. el optar por comprar componentes de terceros en lugar de desarrollarlos. Principio de la página 2. Para este momento. de la misma forma. Los componentes son los "ingredientes de las aplicaciones". la calidad de una aplicación basada en componentes mejorará con el paso del tiempo. el desarrollador es libre de actualizar y/o agregar componentes según sea necesario. así como las iniciativas más innovadoras como las Fábricas de Software de Microsoft. Dado que un componente puede ser construido y luego mejorado continuamente por un experto u organización. posee algunas ventajas: 1. 2. son la clara representación de que estamos a punto de presenciar un nuevo gran cambio en la forma como pensamos en software. y es justo hora. que se juntan y combinan para llevar a cabo una tarea (2) . De la misma manera. un componente es una pieza de código preelaborado que encapsula alguna funcionalidad expuesta a través de interfaces estándar (1) . 3. Al unirse las partes. . sin afectar otras partes del sistema. no construir". 4. Permite que las pruebas sean ejecutadas probando cada uno de los componentes antes de probar el conjunto completo de componentes ensamblados. Simplifica el mantenimiento del sistema. ya muchos conocen las ventajas de este enfoque de desarrollo y. Reutilización del software. muchos se preguntan día a día el por qué son tan pocos los que realmente alcanzan el éxito siguiendo esta filosofía. Mayor calidad. Simplifica las pruebas. En realidad. en la presente década. hasta ahora solo hemos tanteado un poco con las posibilidades del software basado en componentes. Nos lleva a alcanzar un mayor nivel de reutilización de software. obtenemos música para nuestros oídos. Las analogías que nos han llevado a estudiar a los sistemas comparándolos con las complejas metrópolis de la actualidad. que la industria del software despegará y se perfeccionará para estar a la par de cualquier otra industria del medio. El uso de este paradigma posee algunas ventajas: 1. las conexiones son estándar y el protocolo de comunicación está ya preestablecido. Beneficios del Desarrollo de Software basado en Componentes En esencia. pero relativamente nueva en lo que a la construcción de software se refiere.

uno de los arquitectos con mayor experiencia en Microsoft. estilo y forma de hacer cosas (Ver Figura 1).Casas de Software Las ciudades evolucionaron gradualmente como lugares para hacer comercio y manufactura. Usando correctamente esta estrategia. En estas ciudades existían edificios con poca o ninguna conexión entre ellos. las casas de software evolucionaron gradualmente mientras nuevas aplicaciones fueron construidas y luego extendidas.2. en la cual compara la evolución de las tecnologías de la información con la forma como las ciudades de Estados Unidos han evolucionado durante los 2 últimos siglos. tal y como la conocemos hoy. las casas de software han desarrollado aisladamente. las vías de ferrocarril conectaron la mayor parte de las ciudades en los Estados Unidos. Como lo menciona Helland. ha desarrollado recientemente una metáfora llamada Metrópolis (4) . 3. Así. De la misma forma. así como entre múltiples casas de software alrededor del mundo. con aplicaciones creadas independientemente y sin mayor necesidad de interacción entre ellas. A mediados del siglo XIX. Estos cambios en expectativas y capacidades alimentaron la explosión del comercio. Este desarrollo independiente conllevó a diferencias de cultura con respecto a la forma como se hacían las cosas. pues ambas empezaron en ambientes que se desarrollaron aisladamente. podemos darnos una idea del futuro promisorio que tiene el desarrollo de software basado en componentes. Dado que estas aplicaciones no estaban conectadas. más no sus detalles internos. Principio de la página 3. Por muchos años. Al comprender la evolución de las ciudades actuales. Para entender entonces lo que está ocurriendo en este momento con el ambiente IT hay que explorar 6 facetas de esta analogía: Ciudades . no había mayores consecuencias para aquello. Ahora la gente ya puede navegar y visitar aplicaciones muy distantes. Pero lo que aún es difícil es hacer que estos datos trabajen entre distintas aplicaciones. el retorno sobre la inversión puede ser más favorable que desarrollando los componentes uno mismo. se vuelve ahora completamente asequible. Funcionalidad mejorada. Las ciudades tenían un contacto muy limitado con sus ciudades aledañas y desarrollaron su propia cultura. Pero recientemente se ha vuelto muy práctico el interconectar tanto las aplicaciones dentro de una casa de software. las ciudades y las casas de software comparten un pasado muy similar. Esto permitió que las personas y distintos artículos empezaran a trasladarse de una forma que no era posible anteriormente. una funcionalidad que sería impráctica de implementar en la empresa. Se inició entonces una carrera por asegurar que los artículos trabajen entre sí y cumplan estándares de compatibilidad. Cada aplicación separada e . Mejor ROI. Metrópolis: Analogía de la Evolución del Software basado en Componentes Pat Helland (3) . Para usar un componente que contenga una pieza de funcionalidad. la fabricación y llevaron a la urbanización de la vida. Cantidades cada vez más grandes de información son fácilmente transmitidas entre aplicaciones. solo se necesita entender su naturaleza.

Volver al texto. Producen datos procesados independientemente unos de otros. cómo conectarlas y cómo dividirlas de manera que se maximice la reusabilidad de las mismas. Las fábricas producían todas las partes del ensamblado final. como por la sofisticación del proceso de manufactura. ya que fue la oportunidad económica la que realmente llevó a las ciudades a la modernización. los cuales se entregan en 'mercados' limitados.Aplicaciones En los primeros años del siglo XIX. estilo y forma de hacer las cosas (Ver Figura 2): Figura 1: Evolución de las ciudades. hay que considerar cómo enlazarlas a la infraestructura compartida. Figura 2: Evolución de las casas de software. Asimismo. Mientras se construyen nuevas aplicaciones y se renuevan las más antiguas. Las presiones económicas cambiaron nuestras ciudades. Si uno quería un par de zapatos. Los bienes producidos estaban limitados tanto por las necesidades del mercado local. Fábricas y Edificios . Volver al texto. Esta no era la forma más eficiente de fabricar bienes y los ítems fabricados eran caros y usualmente no de la mejor calidad (Ver Figura 3). tenía que irse a la fábrica de zapatos. armaban el ensamblado e incluso lo vendían. Muchas de nuestras aplicaciones actuales son como aquellas fábricas. a compartir servicios y a pensar en medios creativos para alcanzar eficiencias. Cada casa de software tenía su propia cultura.independiente de sus similares en la misma casa de software. Este es el reto al que todos nos vemos enfrentados en la actualidad. Están integradas verticalmente y usualmente no aceptan el trabajo de otras aplicaciones como entrada (Ver Figura 4): . las presiones económicas están cambiando nuestras casas de software. la manufactura típicamente era simple e independiente.

Transporte . Tanto para las fábricas como para las aplicaciones. carbón y trigo de un lugar a otro. eventualmente todo Estados Unidos estaba interconectado por ferrocarril. Se hicieron enormes cantidades de dinero moviendo personas. Figura 5: Transporte. Los negocios se especializaron e independizaron. Antes del ferrocarril simplemente no importaba si los bienes de un fabricante eran incompatibles con los de otro fabricante. el mismo permitió que los fabricantes locales produjeran bienes más sofisticados y de mayor calidad. sino que ahora los comerciantes podían vender artículos de formas nunca antes pensadas. Volver al texto. el movimiento de los datos aún no funciona bien en conjunto.Comunicaciones A mediados del siglo XIX llegó el ferrocarril. Volver al texto. Uno no puede terminar su trabajo si se necesita hacer que todo trabaje en conjunto perfectamente. no se pueden olvidar las ventajas de la interconexión. Al bajar los costos de transportar las partes fabricadas. Con una demanda arrolladora de transporte. MP3s y chat. ya que es a través de la reutilización del trabajo de los demás que uno logra cumplir su trabajo con éxito y es justamente la demanda que ejercen los demás sobre nuestro trabajo lo que nos da el estímulo económico para seguir existiendo. Las nuevas conexiones implicaron nuevos cambios en la estandarización de los artículos y los datos. el movimiento de los artículos despertó la expectativa de que las cosas funcionen en conjunto. Figura 4: Aplicaciones. aunque la independencia es esencial. La componentización les permitió a los artesanos enfocarse en sus principales competencias. Se invirtieron montos enormes en navegación. Pronto esto implicaría cambios en los procesos de negocios. Al final del siglo XX llegó Internet. No solo que la gente empezó a viajar a nuevos lugares para conocer nuevas culturas. JPEGs. Pero más importante aún.Figura 3: Fábricas y edificios. Se tendieron los hilos para permitir la navegación y el movimiento de las formas más simples de datos. correo electrónico. en lugar de tener que entender los diversos procesos necesarios para producir todo un ensamblado sofisticado. Volver al texto. la independencia es esencial. Pero. . El ferrocarril alteró profundamente la manufactura. Sin embargo. haciendo muy limitados los procesos de negocios a través del Internet. El navegador le permitió a la persona el transportarse para interactuar directamente con una aplicación distante. Volver al texto. Figura 6: Comunicaciones.

Cada aplicación modela la información a su propia manera y dependemos de operadores humanos para 'ajustar' las aplicaciones y así lograr integrarlas. de la misma forma como quienes hacen camisas no producen sus propios botones. esta era una estandarización hacia dentro de las empresas. Volver al texto. Las compañías que produjeron las partes con un alto grado de precisión tuvieron éxito. lo que tenían un proceso menos consistente. Volver al texto.Empresas Virtuales La mayoría de los fabricantes de bicicletas no producen llantas. Ensamblados Fabricados . Pioneros como Honore LeBlanc y Eli Whitney propusieron la idea de crear partes estandarizadas en el proceso de manufactura. fracasaron (Ver Figura 7 y Figura 8): Figura 7: Bienes fabricados.Bienes Fabricados . Al crear ensamblados con los mejores componentes disponibles. necesitan especificaciones detalladas de las partes componentes. Al establecer controles severos sobre la especificación y producción de las partes componentes. se ajustaba la cerradura de alguna manera para que permita el paso de la llave. Había tamaños y medidas para los artículos. La competencia entre fabricantes de componentes conlleva eficiencias y mejoras en la calidad. el mismo demandará el intercambio de datos en un futuro cercano. El resultado de este cambio será un boom económico para las compañías que sobrevivan a él y un dramático mejoramiento para el diario vivir de las personas. Es necesario agregar semántica para hacer que las aplicaciones se entiendan. Las compañías de hoy en día . Los ensamblados se creaban "haciendo ajustes". los fabricantes de bicicletas pueden crear productos más sofisticados y de mayor calidad. Pero para finales del siglo XVIII la idea ya se había expandido entre los fabricantes y se produjeron todo tipo de estándares para las partes comunes. con la expectativa de que aquellos producidos por una fábrica serían intercambiables e interoperables con componentes similares y complementarios producidos por otra. así como deben también considerar el contexto en el que cada parte será usada. Figura 8: Datos estructurados. Hoy en día aún tenemos estructuras de datos no estandarizadas. Para lograr esto. se pudieron realizar masivas producciones de todo tipo de artículos. De la misma forma como el mercado demandó que se pudieran intercambiar artículos a finales de los '80.Datos Estructurados A inicios del siglo XVIII los bienes se hacían a mano. Las organizaciones que no se percaten de las eficiencias de la integración-por-diseño perderán a la larga frente a los que persigan estas eficiencias. Si una llave no encajaba en la cerradura. Sin embargo. Esto significa estandarizar la funcionalidad de conceptos de negocio como un 'cliente' o una 'orden de compra'.

ventas. Las comunicaciones de alta velocidad e información estructurada ofrecen beneficios similares. texto. En lugar de crear un departamento de distribución y entrega. La definición de 'compañía' evoluciona (Ver Figura 10): Figura 9: Ensamblados fabricados.Procesos de Negocio A finales del siglo XIX los centros de comercio urbanos se habían desarrollado. Sin embargo. En lugar de fabricar el producto. Sin embargo. luego ir donde el carnicero y luego donde el panadero. Al definir interfaces claras. Los bienes se habían vuelto más sofisticados y las opciones del consumidor habían aumentado. pasar comprando las verduras y por último una vuelta por la farmacia. Así. Para lograr esto. Se pueden incluso crear proveedores especializados que ofrezcan servicios de marketing. se puede lograr la composición de cualquier cosa. recursos humanos. Comercialización y Distribución . porque los proveedores de componentes pueden manejar el costo de optimización a través de mercados amplios y la competencia conlleva cada vez mayores eficiencias. se puede encapsular los detalles de cómo estas capacidades son implementadas y cada componente puede ser orquestado como miembro de cualquier número de procesos. Se puede crear un modelo de componentes de negocio definiendo claramente la semántica y requerimientos operacionales de nuestras capacidades de negocios. el ir de compras era algo tedioso. se delega la construcción del mismo a una compañía que se especialice en producción de bajo costo y alta calidad. Volver Figura 10: Empresas virtuales. muy pronto la estandarización de los tamaños redujo significativamente el costo de muchos bienes permitiendo la producción masiva y la habilidad de transportar bienes a ubicaciones centrales para la venta y dieron origen a los centros comerciales y el supermercado. produciendo la virtualización de las organizaciones.están 'creando ensamblados' de su funcionalidad de negocios (Ver Figura 9). Wal-Mart logró proveer de una experiencia de compras placentera. producción. Wal-Mart logró nuevas eficiencias al hacer primar el poder del comercio sobre los fabricantes. el trabajo se entrega como outsourcing. de bajo costo y centralizada en un solo punto (Ver Figura 11): . Un día de compras podía implicar el tomar el tren hacia la ciudad. etc. Volver al al texto. se necesitan especificaciones detalladas de las capacidades de los componentes. con estándares. Así por ejemplo.

confirma esta analogía: .net La Plataforma . La tecnología de metadatos del Lenguaje Intermedio (IL) de . conocidos también como 'fábricas' para el ensamblaje eficiente de 'máquinas de software' basadas en servicios Web.Figura 11: Comercialización y distribución. podemos observar dos tipos de integración. la plataforma de componentes de Microsoft. Otra técnica que reduce errores es la conocida integración ALT-TAB. Pero si se quiere hacer algo realmente mejor. donde la unidad que está siendo ensamblada lleva consigo las instrucciones para su creación. Con ella. equivalentes a la era industrial temprana. Examinando la situación actual de los procesos de negocios. de manera que cada 'parte' de software creada es un componente intercambiable. El mayor avance de la Plataforma . la cual permite el uso del porta papeles para copiar datos entre aplicaciones. Las tecnologías COM y CORBA. En lo futuro. Volver al texto.net representa una nueva etapa en la evolución de COM. Figura 12: Procesos de negocios. Una de ellas se basa simplemente en enviar un fax y esperar que el mismo haya sido recibido y que tal vez nos respondan. Los procesos de negocios aún son hechos a mano y los estándares son muy pobres.net es la implementación de la parte intercambiable de software en la herramienta de desarrollo misma. se necesita lograr el intercambio y estandarización de datos y operaciones. Este es un avance equivalente a la etapa de 'línea de ensamblaje' de la industrialización. nos recuerda las líneas de ensamblaje recientes. Clemens Szyperski (6) . Volver al texto. de la misma forma como Wal-Mart impone los estándares para cientos y miles de artículos (Ver Figura 12). arquitecto experimentado de Microsoft. a través de la cual un compilador automáticamente crea un 'plano' de la interacción de componentes en 'assemblies'. La plataforma en sí es análoga a una industria de creación de herramientas. Principio de la página 4. Microsoft impulsa la idea de 'industrializar' el software utilizando tecnologías de componentes (5) . la cual entrega a los vendedores de software ambientes especializados de desarrollo.net. han logrado producir partes intercambiables básicas. los procesos de negocios crecerán para ser la fuerza que le dé la forma y defina los estándares para las nuevas aplicaciones. Industrialización del Software a través de la Plataforma .

Las Fábricas de Software no son más que el siguiente paso lógico en la evolución continua de los métodos y prácticas de desarrollo de software.. proveyendo beneficios como independencia de dispositivos y el ensamblaje visual. Yo iría más allá y aseguraría que no se puede hablar de ingeniería antes de haber dominado este paso . prometen cambiar el carácter de la industria de software introduciendo patrones de industrialización (8) . En sí. Mientras los estereotipos y los tags pueden ser usados para decorar modelos UML. Principio de la página 5. lo que buscamos hoy en día es la productividad. ya lo hemos hecho. estándares para partes intercambiables.. Los lenguajes de definición de contratos están en el límite de la ciencia de las computadoras. la aplicación de estos conceptos a la industria moderna del software solamente ha empezando... Sin embargo. hacen mucho más fácil el construir y mantener interfaces gráficas de usuario. depuración.net se convierte en una implementación ejemplar que ya es parte de la Revolución Industrial del Software que nos mencionaba Bill Gates (7) hace varios años ya: . Así. algo similar a la manufactura temprana previa a la Revolución Industrial. El tema recurrente que podemos observar en la creación de este tipo de herramientas es el hecho de pensar en modelos. pruebas y otros tipos de tareas de desarrollo. A pesar de su ubicuidad. sin embargo. la experiencia muestra que se necesitan características más precisas del lenguaje para soportar compilación. una Fábrica de Software es un ambiente de desarrollo configurado para soportar el desarrollo acelerado de un tipo específico de aplicación. ¿Es posible automatizar el desarrollo del software? En realidad. más que solamente en objetos (9) . Así que. La Revolución Industrial del software está finalmente ante nosotros. y herramientas de ensamblaje de última generación han sido usadas en otras industrias por cientos de años para acelerar el desarrollo de productos altamente complejos. Estos 'planos' conocidos como metadatos representan la interfaz del componente. la clave para el intercambio e interoperabilidad. se está hablando de hacer las cosas a mano. es claro que deberíamos empezar a construir software basado en componentes. la plataforma . Si no. Actualmente usamos UML para la documentación. . El diseño de base de datos ofrece formas similares de automatización. La especialización de recursos. en términos de un 'contrato' que la interfaz hace con su infraestructura. Uno de los elementos clave de este patrón es el elevar el nivel de abstracción de los desarrolladores. Fábricas de Software: el Nuevo Paradigma Las Fábricas de Software son una iniciativa propuesta por Microsoft que plasma la necesidad y provee de los medios para hacer la transición desde el 'hacer a mano' hacia la fabricación o manufactura. Los editores WYSIWYG por ejemplo.El construir software ensamblando componentes conlleva grandes promesas para la ingeniería de software de la nueva generación.

C#. o preparar comidas fuera del menú. guías. los cuales podrían modificar las definiciones de las comidas. procesos. no lo son todo. Un ejemplo más concreto del uso de una fábrica de software sería el diseño de un esquema para la construcción de aplicaciones de clientes livianos para comercio electrónico usando el Microsoft . cuidadosamente diseñadas para construir tipos específicos de aplicaciones. para producir así familias de sistemas similares. Describe la arquitectura de la línea de producto. y equipo de cocina se usará para prepararlos. contenido reutilizable y distintos tipos de patrones. Los desarrolladores del producto son como cocineros que preparan las comidas descritas en las órdenes. será necesaria la creación de patrones con dominio específico. frameworks. Una fábrica de software contiene tres ideas básicas: y y y Un esquema de fabricación. La aplicación de todo esto en conjunto se conoce como Fábrica de Software. Microsoft Biztalk Server y el Microsoft Host Integration Server . adaptar y ensamblar rápidamente componentes desarrollados independientemente.Pero aún cuando los modelos juegan un rol importante. Podríamos usar este esquema de . archivos SQL y archivos de configuración. código fuente. hojas de estilos. La analogía de esto es una receta.net Framework. y las relaciones clave entre componentes y frameworks que la componen. autodescriptivos e independientes de ubicación. y otros ingredientes para construir el producto. Si llevamos más allá la analogía. y explica cómo deberían ser combinados para crear el producto. scripts. herramientas personalizadas como herramientas para edición visual de DSLs. Más aún. Para llegar a niveles más altos de productividad necesitamos la habilidad de configurar. ejemplos. Una plantilla de fábrica de software. y qué ingredientes. Provee los patrones. Una especificación de producto es como una orden de comida específica. Un ambiente como Visual Studio Team System es la cocina en la cual la comida es cocinada. Para ello. Especifica qué Lenguajes de Dominio Específico (DSL) pueden ser usados y describe cómo los modelos basados en estos DSLs pueden transformarse en código y otros artefactos. Cuando se configura con una plantilla de fábrica de software. Necesitamos disponer de las mejores prácticas. Una fábrica de software es una línea de producto que configura herramientas de desarrollo extensibles como Microsoft Visual Studio Team System con contenido empaquetado y guías. Visual Studio Team System se convierte en una fábrica de software para la familia de productos. como proyectos. desarrollar software y ponerlo en producción. directorios.una familia amplia pero muy útil de aplicaciones. Los clientes de la fábrica de software son como los clientes que ordenan comidas de un menú. plantillas. Los desarrolladores de la línea de producto son como chefs que deciden qué aparecerá en el menú. frameworks y herramientas que se alineen tanto con la arquitectura del producto como con el ciclo de vida del producto. los productos son como comidas servidas en un restaurante. debemos considerar los procesos que usamos para analizar requerimientos. XSDs. pero diferentes. el Microsoft Business Framework. En ella se listan ingredientes. Microsoft SQL Server. Un ambiente de desarrollo extensible. o en otros modelos. Esta es una gran bolsa de supermercado que contiene los ingredientes listados en la receta.

el esquema de software podría contener un DSL que represente requerimientos configurables. un DSL para describir modelos lógicos y físicos. concretando así la visión de la industrialización del software moderno. Conclusión Tenemos la fortuna de presenciar el nacimiento de una nueva forma de hacer software. entre otros. Las fábricas de software vuelven más rápida. (2) ComponentSource. y nos asombramos cada vez más al darnos cuenta de que este solo es el inicio. un DSL para describir procesos de negocios. que traerá beneficios inmensos para todos. El desarrollo de software basado de componentes se convirtió en el pilar de la Revolución Industrial del Software y se proyecta hoy en día en diversas nuevas formas de hacer software de calidad con los costos más bajos del mercado y en tiempos que antes eran impensables. Empresas como Microsoft entendieron el potencial de esta metodología hace años y hoy nos ofrecen nuevas iniciativas y herramientas que buscan llevar al proceso de construcción de software hacia el sitial privilegiado en el que debió colocarse desde un principio. estructuras de proyecto. What are components?. Para este ejemplo. Las fábricas de software son posibles hoy en día y representan el intento de aprender de otras industrias que encaran problemas similares. el equipo de desarrollo podría rápidamente lanzar una variedad de aplicaciones de comercio electrónico. barata y fácil la construcción de aplicaciones. http://www. Podríamos usar las características de extensibilidad de Visual Studio Team System para hostear una plantilla de fábrica de software basada en este esquema. Al mirar hacia atrás. El desarrollo de software basado en componentes desde siempre fue la idea revolucionaria que nos llevó a pensar que sí era posible el construir software de calidad en corto tiempo y con la misma calidad que la mayoría de las industrias de nuestro tiempo. un DSL para describir la navegación Web. . http://webcabcomponents.componentsource. En esa plantilla incluiríamos algunos bloques de aplicación liberados por el grupo de Microsoft Patterns and Practices. y un DSL para describir entidades de negocio.com/componentization. Con esta fábrica de software. vemos los increíbles avances que hemos logrado en la comprensión de la forma correcta de reutilizar el software y el conocimiento existente. 6.shtml. About Component Based Development. la guía de proceso de Microsoft Solution Framework (MSF). políticas de check-in de Team Foundation Server. Volver al texto.fábrica de software para configurar Visual Studio Team System para convertirse en una fábrica de software que construya miembros de esta familia. y aplican patrones específicos de automatización a tareas de desarrollo manual existentes. (1) WebCab Components. cada una conteniendo características únicas basadas en requerimientos únicos de clientes específicos.com/Services/WhatAreComponents. Volver al texto.asp?bhcp=1.

(4) Microsoft Architects Journal 2. Volver al texto. Volver al texto.aspx. El extracto presentado fue sacado de una publicación hecha en el año de 1997. Mediante el uso de varios componentes simples se pueden construir proyectos bastante complejos los cuales si se realizaran desde el principio tomarían demasiado tiempo.NET Platform as Component Infrastructure. de este modo lo que se tiene que hacer es revisar nuestros proyectos anteriores o comprar lo que necesitemos de otras personas.aspx?pull=/library/enus/dnmaj/html/aj3softfac. Volver al texto. http://msdn.microsoft. Fue uno de los fundadores del equipo que implementó y llevó al mercado el Microsoft Transaction Server (MTS).asp.com/NETPlatform/default. ESEC/FSE.net. ICSE. (6) Clemens Szyperski se unió a Microsoft Research como Arquitecto de Software en 1999. http://msdn. Julio Casal Terreros es Ingeniero de Sistemas Computacionales de la Universidad Católica de Santiago de Guayaquil.aspx?pull=/library/enus/dnmaj/html/aj2metrop. Volver al texto. ya que no todos los proyectos van a tener la misma oportunidad de reutilización.(3) Pat Helland tiene 25 años de experiencia en la industria del software y ha sido arquitecto en Microsoft desde 1994.com/askburton/archive/2004/09/20/232065.components-online. . y OOPSLA y ha organizado varios eventos internacionales. Chairman y Chief Software Architect de Microsoft. Volver al texto. procesamiento de transacciones y sistemas distribuidos. (5) Components Online.com/architecture/journ/default.com/architecture/journ/default. Volver al texto. The Case for Software Factories. http://www.microsoft. luego de esto podemos pasar a juntar las piezas que se van a reutilizar y las demás piezas que debemos obligatoriamente especificar para cada proyecto. ahora conocido como COM+. (8) Microsoft Architects Journal. Metrópolis.msdn. (7) Bill Gates. http://blogs. . Su enfoque está en el uso efectivo del softwre de componentes para construir nuevos tipos de software. este código en su momento fue probado. por sus ideas innovadoras y altamente acertadas. Ha servido en numerosos comités de programas. Su galardonado libro "Component Software: Beyond ObjectOriented Programming" fue revisado y extendido hacia una segunda edición en el 2002.asp. Industrializing Software Development. como aquella de 'un computador en cada hogar'. Principio de la página El desarrollo de aplicaciones por componentes se basa en la reutilización de código elaborado con anterioridad.htm. Ha trabajado por más de 20 años en bases de datos. (9) Jack Greenfield. Dueño de uno de los imperios de software más grandes que jamás haya existido y probablemente una de las personas más influyentes del mundo moderno. y su funcionalidad fue comprobada. Volver al texto. incluyendo ECOOP. Es Microsoft Certified Application Developer y trabaja como Desarrollador de Soluciones .

es/~west/westtask4_e. Este es parecido al anterior pero contiene mas detalles del DSBC. Por otro lado también es muy eficiente comprar componentes de otras personas pero no se puede garantizar su correcto funcionamiento por lo que se debe verificar que este trabajando como uno espera.javeriana. es mejor que sean pocas partes mas grandes (granularidad).pdf.htm Este tiene una información bastante completa del desarrollo de software basado en componentes (DSB) y sus diferencias con otros paradigmas como el orientado a objetos.co/~jcpymes/Docs/DSBC. De este modo se pueden juntar o combinar partes hechas en distintos lugares. como la definició . sin embargo no se pueden pensar en combinar un numero demasiado grande de piezas. Links Este es del Proyecto WEST Tecnología Software Orientada a Ambientes Web.No podemos tratar de hacer un proyecto totalmente con piezas preelaboradas ya que habrá partes que sean específicas para cada proyecto. si es proyecto así lo permite.edu. http://www. y es mejor que lo que se reutilice sea muy general y bien probado para asegurar los resultados que se vayan a obtener de estos componentes. documentación o interfaz graficas que uno mismo ha hecho y que en proyectos anteriores ya fueron usadas. pero para poder tener una buena cantidad de componentes reutilizables de nuestra autoría pasara mucho tiempo y varios proyectos. de este modo podemos establecer nuestro estilo en las aplicaciones que realicemos y así podemos hacer conocer nuestros productos y nuestro trabajo a otros desarrolladores que necesiten un componente que hayamos fabricado. http://pegasus. probadas y que fueron efectivas para la venta de un producto.upv.dsic. Es una muy buena opción usar código. puede ser una ventaja porque cada grupo piensa únicamente en la finalización de su parte del proyecto y al final hay que juntar las piezas. básicamente cuando existen diversos grupos de trabajo en distintos lugares. Se debe producir software con el propósito de reutilizarlo en el desarrollo de aplicaciones futuras. tiene la información de que componentes van a usar y las características del modelo y como van a suplir los requerimientos que les hace falta.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->