Está en la página 1de 23

Desarrollo de Software Basado en Componentes

Ulises Cruz Miranda

Introduccin
Los continuos avances en la Informtica y las Telecomunicaciones estn haciendo cambiar la forma en la que se desarrollan actualmente las aplicaciones software Aumento de la potencia de los ordenadores Abaratamiento de los costos del hardware Redes de datos de cobertura global Modelos de programacin existentes desbordados

Nuevos paradigmas de programacin

Desarrollo de Software Basado en Componentes


Los desarrollos tradicionales de aplicaciones incurren en altos costos y en una inversin de tiempo extensa. El DSBC busca, dentro de otros objetivos, reducir el tiempo de trabajo, el esfuerzo que requiere implementar una aplicacin y los costos del proyecto, y, de esta forma, incrementar el nivel de productividad de los grupos desarrolladores y minimizar los riesgos globales.

Desarrollo de Software Basado en Componentes

Ensamblaje de partes de software previamente elaboradas Inspirada en los procesos de produccin de sistemas fsicos: Produccin de aviones, vehculos, computadores, aparatos electrnicos, etc. Fundamentada en la Reutilizacin de Software Orientar esfuerzos hacia una industria de partes

Componente
Un componente es una unidad de composicin de aplicaciones software, que posee un conjunto de interfaces y un conjunto de requisitos, y que ha de poder ser desarrollado, adquirido, incorporado al sistema y compuesto con otros componentes de forma independiente, en tiempo y espacio [Szyperski, 1998].

Definicin de los 7 criterios [Meyer,1999]:


Puede ser usado por otros elementos de SW Puede ser usado por los clientes sin la necesidad de la intervencin del desarrollador. Incluye las especificaciones de todas las dependencias. Incluye documentacin de las funcionalidades que ofrece Se puede entender su funcionamiento en base a las especificaciones. Se puede acoplar a otros componentes Puede ser incorporado a un sistema de manera suave y rpida

Modelo del Ciclo de vida de DSBC

Arquitecturas Software y Marcos de Trabajo


El disponer de componentes software no es suficiente para desarrollar aplicaciones, ya provengan stos de un mercado global o sean desarrollados a medida para la aplicacin. Un aspecto crtico a la hora de construir sistemas complejos es el diseo de la estructura del sistema.

Arquitectura Software
Entendemos por Arquitectura Software la representacin de alto nivel de la estructura de un sistema o aplicacin, que describe las partes que la integran, las interacciones entre ellas, los patrones que supervisan su composicin, y las restricciones a la hora de aplicar esos patrones.

En general, la arquitectura software nace como una herramienta de alto nivel para cubrir distintos objetivos: 1. Comprender y manejar la estructura de las aplicaciones complejas. 2. Reutilizar dicha estructura (o partes de ella) para resolver problemas similares. 3. Planificar la evolucin de la aplicacin, identificando sus partes mutables e inmutables, as como los costes de los posibles cambios. 4. Analizar la correccin de la aplicacin, y su grado de cumplimiento respecto a los requisitos iniciales 5. Permitir el estudio de alguna propiedad especfica del dominio.

Marcos de Trabajo
La reutilizacin de arquitecturas software se define dentro un marco de trabajo (framework, o abreviadamente MT). En general, un MT se suele definir de la siguiente forma: Un MT es el esqueleto de una aplicacin que debe ser adaptado a necesidades concretas por el programador de la aplicacin

Un MT encapsula el patrn de la arquitectura software de un sistema o de alguna de sus partes. Las principales ventajas que ofrecen los MT son la reduccin del coste de los procesos de desarrollo de aplicaciones software para dominios especficos, y la mejora de la calidad del producto final. Sin embargo, la utilizacin de MT presenta actualmente ciertas dificultades, aunque se suelen englobar todas en el problema de la documentacin de un MT

Paradigmas de Programacin para Sistemas Abiertos


Al principio slo exista la programacin secuencial, pues cada programa slo se ejecutaba en una maquina monoprocesador y aislada. Posteriormente aparecieron las mquinas multiprocesador y los sistemas operativos multitarea, por lo que nacieron nuevos paradigmas y mecanismos de programacin. (Programacin concurrente y programacin distribuida)

Programacin Orientada a Componentes (POC)


La POC nace con el objetivo de construir un mercado global de componentes software, cuyos usuarios son los propios desarrolladores de aplicaciones que necesitan reutilizar componentes ya hechos y probados para construir sus aplicaciones de forma ms rpida y robusta.

Tendencias actuales de la POC


La adecuacin de los lenguajes de programacin Diseo de nuevos lenguajes y modelos de componentes La construccin de herramientas de desarrollo y marcos de trabajo para componentes La aplicacin de tcnicas formales para razonar sobre las aplicaciones desarrolladas a base de componentes.

En cuanto a los lenguajes de programacin, slo hay unos pocos que realmente incorporen conceptos suficientes para realizar una programacin orientada a componentes: Obern, Java, Ada95, Modula-3 y Component Pascal.

Tecnologas de componentes estandarizadas


CORBA (Common Object Request Broker Architecture arquitectura comn de intermediarios en peticiones a objetos): Es un estndar que establece una plataforma de desarrollo de sistemas distribuidos facilitando la invocacin de mtodos remotos bajo un paradigma orientado a objetos.

DCOM (Distributed Component Object ModelModelo de Objetos de Componentes Distribuidos): Es una tecnologa propietaria de Microsoft para desarrollar componentes software distribuidos sobre varios ordenadores y que se comunican entre s. .NET es un framework de Microsoft que hace un nfasis en la transparencia de redes, con independencia de plataforma de hardware y que permita un rpido desarrollo de aplicaciones.

Enterprise JavaBeans: Modelo de componentes basado en arquitectura cliente servidor. Esta plataforma ofrece una solucin multiplataforma, de fcil reutilizacin, integracin universal con otros componentes adems de la maquina virtual de java. La tecnologa java a estado a la vanguardia del DSBC y constituye una referencia clave en este tema.

La programacin de aplicaciones distribuidas se basa en un conjunto de servicios que proporcionan a los componentes el acceso a los recursos compartidos de una forma segura y eficiente. Estos servicios suelen englobarse en las siguientes categoras bsicas: Comunicaciones Remotas Servicios de Directorio Seguridad Transacciones Gestin

Problemas tpicos de la POC


Clarividencia: dificultad con la que se encuentra el diseador de un componente al realizar su diseo, pues no conoce ni quien lo utilizar, ni cmo, ni en qu entorno, ni para qu aplicacin Evolucin de los componentes. La gestin de la evolucin es un problema serio, pues en los sistemas grandes han de poder coexistir varias versiones de un mismo componente

Particularizacin. Cmo particularizar los servicios que ofrece un componente para adaptarlo a las necesidades y requisitos concretos de nuestra aplicacin, sin poder manipular su implementacin. Falta de soporte formal. Por otro lado, la POC tambin se encuentra con otro reto aadido, como es la dificultad que encuentran los mtodos formales para trabajar con sus peculiaridades

Puntos a considerar sobre un Mercado global de software


Componentes COTS (commercial off-the-shelf). Bsqueda y reconocimiento de los componentes que se necesitan, su posible adaptacin, o la resolucin de solapamientos entre las funciones y servicios que ofrecen. Estndares que garanticen la interoperabilidad de los componentes a la hora de construir aplicaciones

También podría gustarte