Sei sulla pagina 1di 6

La ingeniera de software basada en componentes (CBSE) (tambin conocida como desarrollo basado en componentes (CBD)) es una rama de la ingeniera

de software que enfatiza la separacin de asuntos (separation of concerns (SoC)) por lo que se refiere a la funcionalidad de mplio rango disponible a travs de un sistema de software dado. Es un acercamiento basado en la reutilizacin para definir, implementar, y componer, componentes dbilmente acoplados en sistemas. Esta prctica apunta traer igualmente un mplio grado de beneficios tanto en el corto como el largo plazo, para el software en s mismo, y para las organizaciones que patrocinan tal software. Los ingenieros de software consideran los componentes como parte de la plataforma inicial para la orientacin a servicios. Los componentes juegan este rol, por ejemplo, en servicios de web, y ms recientemente, en las arquitecturas orientadas a servicios (SOA), por el que un componente es convertido por el servicio web en un servicio y subsecuentemente hereda otras caractersticas ms all de las de un componente ordinario. DEFINICION Un componente de software individual es un paquete de software, un servicio web, o un mdulo que encapsula un conjunto de funciones relacionadas (o de datos). Todos los procesos del sistema son colocados en componentes separados de tal manera que todos los datos y funciones dentro de cada componente estn semnticamente relacionados (justo como con el contenimiento de clases). Debido a este principio, con frecuencia se dice que los componentes son modulares y cohesivos. Con respecto a la coordinacin a lo largo del sistema, los componentes se comunican uno con el otro por medio de interfaces. Cuando un componente ofrece servicios al resto del sistema, ste adopta una interface proporcionada que especifica los servicios que otros componentes pueden utilizar, y cmo pueden hacerlo. Esta interface puede ser vista como una firma del componente - el cliente no necesita saber sobre los funcionamientos internos del componente (su implementacin) para hacer uso de ella. Este principio resulta en componentes referidos como encapsulados. Las ilustraciones UML de este artculo representan a las interfaces proporcionadas, con un smbolo lollipop unido al borde externo del componente. Sin embargo, cuando un componente necesita usar otro componente para poder funcionar, adopta una interface usada que especifica los servicios que necesita. En las

ilustraciones de UML en este artculo, las interfaces usadas son representadas por un smbolo de zcalo abierto unido al borde externo del componente.

Los componentes de software con frecuencia toman la forma de objetos (no clases) o de colecciones de objetos (de la programacin orientada a objetos), en una cierta forma binaria o textual, adhirindose a un cierto lenguaje de descripcin de interface (IDL) de modo que el componente pueda existir autnomo de otros componentes en una computadora. Cuando un componente debe ser accesado o compartido a travs de contextos de ejecucin o enlaces de red, a menudo son empleados tcnicas tales como serializacin o marshalling para enviar el componente a su destino. La reusabilidad es una importante caracterstica de un componente de software de alta calidad. Los programadores deben disear e implementar componentes de software de una manera tal que diversos programas puedan reutilizarlos. Adems, cuando los componentes de software interactan directamente con los usuarios, debe ser considerada la prueba de usabilidad basada en componentes. Toma un significativo esfuerzo y conciencia para escribir un componente de software que sea efectivamente reutilizable. El componente necesita estar:

Completamente documentado Probado a fondo Robusto - con una comprensiva comprobacin para la validez de la entrada Capaz de devolver mensajes de error apropiados o cdigos de retorno diseado con conciencia de que ser puesto en usos imprevistos

En los aos 1960, los programadores construyeron bibliotecas de subrutinas cientficas que eran reusables en un amplio arreglo de aplicaciones de ingeniera y cientficas. Aunque estas bibliotecas de subrutinas reusaban algoritmos bien definidos de una manera efectiva, tenan un limitado dominio de aplicacin. Los sitios comerciales rutinariamente crearon programas de aplicacin a partir de mdulos reusables escritos en ensamblador, COBOL, PL/1 y otros lenguajes de segunda y tercera generacin, usando bibliotecas de aplicacin tanto de sistema como de usuario. Por 2010, los componentes reusables modernos encapsulan las estructuras de datos y los algoritmos que son aplicados a las estructuras de datos. Esto [clarificacin necesaria] se basa en teoras anteriores a los objetos, arquitecturas, frameworks y patrones de diseo de software, y la extensa teora de la programacin orientada a objetos y el diseo orientado a objetos de todos stos. Afirma que los componentes de software, como la idea de componentes de hardware, usados, por ejemplo, en telecomunicaciones, pueden en ltima instancia ser hechos intercambiables y confiables. Por otro lado, se argumenta que es un error enfocarse en componentes independientes en vez del framework Arquitectura Un computador corriendo varios componentes de software con frecuencia es llamado un servidor de aplicaciones. Usando esta combinacin de servidores de aplicaciones y componentes de software es usualmente llamado computacin distribuida. La usual aplicacin del mundo real de esto es por ejemplo el software de aplicaciones o de negocios. Modelos Un modelo de componentes es una definicin de estndares para la implementacin, documentacin y el despliegue de componentes. Ejemplos de modelos de componentes son: el modelo Enterprise Java Beans (EJB), el modelo COM+ (modelo .NET), el modelo de componentes Corba. El modelo de componentes especifica como deben ser definidas las interfaces y los elementos que deben ser incluidos en una definicin de interface.

ACTIVOS REUTILIZABLES Y COMPONENTES DE SOFTWARE En el contexto de Ingeniera de Software, un Activo Reutilizable es un producto diseado expresamente para ser empleado de forma recurrente en el desarrollo de muchos sistemas y aplicaciones. Ejemplos de activos reutilizables son: algoritmos, patrones de diseo, esquemas de base de datos, arquitecturas de software, especificaciones de requerimientos, de diseo y de prueba, entre otros.

En los ltimos aos, como resultado presiones crecientes sobre la industria de software orientadas a reducir drsticamente el costo y tiempo de desarrollo de sistemas y aplicaciones, sin afectar los niveles de calidad del producto, ha surgido un nuevo activo reutilizable denominado Componente de Software. Una de las caractersticas ms importantes de los componentes es que son reutilizables. Para ello los componentes deben satisfacer como mnimo el siguiente conjunto de caractersticas: Identificable: un componente debe tener una identificacin clara y consistente que facilite su catalogacin y bsqueda en repositorios de componentes. Accesible slo a travs de su interfaz: el componente debe exponer al pblico nicamente el conjunto de operaciones que lo caracteriza (interfaz) y ocultar sus detalles de implementacin. Esta caracterstica permite que un componente sea reemplazado por otro que implemente la misma interfaz. Sus servicios son invariantes: las operaciones que ofrece un componente, a travs de su interfaz, no deben variar. La implementacin de estos servicios puede ser modificada, pero no deben afectar la interfaz. Documentado: un componente debe tener una documentacin adecuada que facilite su bsqueda en repositorios de componentes, evaluacin, adaptacin a nuevos entornos, integracin con otros componentes y acceso a informacin de soporte. Adicionalmente, para favorecer su reutilizacin es deseable que un componente sea: Genrico: sus servicios pueden ser usados en una gran variedad de aplicaciones. Autocontenido: es conveniente que un componente dependa lo menos posible de otros componentes para cumplir su funcin de forma tal que pueda ser desarrollado, probado, optimizado, utilizado, entendido y modificado individualmente. Mantenido: es deseable que un componente (como toda pieza de software) est inmerso en un proceso de mejoramiento continuo que le garantice al integrador nuevas versiones que incluyan correctivos, optimizaciones y nuevas caractersticas. Esto contribuye a que dicho componente sea seleccionado con mayor frecuencia para formar parte de sistemas de software. Independiente de la plataforma (hardware y sistema operativo), del le nguaje de programacin y de las herramientas de desarrollo: existen diversas plataformas de cmputo de uso frecuente (e.g. Windows/Intel, Solaris/Sparc, OSX/PPC, Linux/Intel) y es deseable que un componente pueda ejecutarse en todas ellas.

Asimismo, ya que existe una amplia gama de lenguajes de programacin y herramientas de desarrollo, es natural que encontremos componentes escritos empleando lenguajes y herramientas de la preferencia del programador, por lo tanto es deseable que dichas preferencias no limiten el uso de los componentes. Puede ser reutilizado dinmicamente: puede ser cargado en tiempo de ejecucin en una aplicacin. Certificado: el componente puede ser certificado por una agencia de software independiente o mediante la aplicacin de modelos de auto-certificacin que le permiten al comprador del componente determinar la calidad del software adquirido. Accedido uniformemente sin importar su localidad: la forma de invocar los servicios ofrecidos por los componentes debiese ser independiente de su ubicacin (local o remota). Para ello el modelo de componentes debera estar basado en tecnologas de procesamiento distribuido tales como CORBA, RMI y .NET Remoting. Modelo del Ciclo de Vida de los Componentes de Software Cmo se integran los componentes dentro del ciclo de vida de desarrollo de software basado en componentes?. La siguiente figura ilustra el ciclo de vida del software basado en componentes desde una perspectiva global.

Requerimientos del Sistema

Requerimientos del Nuevo Sistema

Seleccin, Construccin, Anlisis y Evaluacin de la Arquitectura de Software

Interpretacin del Sistema Posible Sistema

Artefactos

Componentes Actuales

Identificacin y Modelo para requisitos particulares de los Componentes

Pruebas

Deteccin de Componentes con Fallas

Cambio de Componentes

Seleccin de Nuevos Componentes

Integracin del Sistema

Sistema Final

Mantenimiento del Sistema

Potrebbero piacerti anche