Sei sulla pagina 1di 4

Componente de Software Elemento de un sistema software que ofrece un conjunto de servicios, o funcionalidades, a travs de interfaces definidas.

Segn el Object Management Group


En la especificacin UML, un componente es una unidad modular con interfaces bien definidas, que es reemplazable dentro del contexto. As, un componente define su comportamiento en trminos de interfaces provistas y requerida; y dicho componente ser totalmente reemplazable por otro que cumpla con las interfaces declaradas. UML no coloca ninguna restriccin respecto a la granularidad del componente, de esta forma un componente podr ser tan simple como un convertidor de moneda o tan complejo como un sistema de ayuda semntico.

Un componente de software debe poseer las siguientes caractersticas: Ser reutilizable. Ser intercambiable. Poseer interfaces definidas. Ser cohesivos

Un componente es una clase estructurada que representa una parte modular de un sistema con contenido encapsulado y cuya manifestacin es reemplazable dentro de su medio ambiente. Tiene

su comportamiento definido en trminos de interfaces proporcionadas e interfaces necesarias (potencialmente expuestos a travs de puertos). Existen diferentes estereotipos que aplican a componentes:

Subsistemas Procesos Servicios Especificacin Realizacin Implementacin

Un subsistema es un componente que representa una unidad de descomposicin jerrquica para sistemas grandes, y es usado para modelar componentes de gran escala. Las definiciones de subsistemas pueden variar entre diferentes dominios y mtodos de software. Se espera que los perfiles de los dominios y mtodos especialicen el elemento. Un subsistema es usualmente instanciado indirectamente y puede tener una especificacin y elementos de realizacin Un proceso es una transaccin basada en componentes. Un Servicio componente funcional sin estado.

La especificacin es un clasificador que especifica un dominio de objetos sin definir la implementacin fsica de esos objetos.

La especificacin y la realizacin se utilizan para modelar componentes con distinta especificacin y realizacin en donde una especificacin puede tener mltiples realizaciones.
La realizacin es un clasificador que especifica un dominio de objetos y que tambin define la implementacin fsica de esos objetos. La implementacin es una definicin de componentes que no est destinada a tener una misma especificacin. Ms bien, es una implementacin para una especificacin por separado que tiene una dependencia.

Similarmente a los componentes un Paquete en Java es un contenedor de clases que permite agrupar las distintas partes de un programa cuya funcionalidad tienen elementos comunes.
El uso de paquetes proporciona las siguientes ventajas: Agrupamiento de clases con caractersticas comunes. Reutilizacin de cdigo. Mayor seguridad al existir niveles de acceso.

Un paquete puede contener:


Clases Interfaces Tipos Enumerados Anotaciones

En programacin, una Anotacin Java es una forma de aadir metadatos al cdigo fuente Java que estn disponibles para la aplicacin en tiempo de ejecucin. Muchas veces se usa como una alternativa a la tecnologa XML. Las Anotaciones Java pueden aadirse a los elementos de programa tales como clases, mtodos, campos, parmetros, variables locales, y paquetes. Al contrario que las etiquetas aadidas a la documentacin Java y procesadas con las herramientas tales como XDoclet, las Anotaciones Java son completamente accesibles al programador mientras que el software se ejecuta usando reflexin. En muchas ocasiones los paquetes que proporciona Java son suficientes para los programadores, pero es posible que en otras veces se requiera disear una propia. Y por ltimo, las bibliotecas, son un conjunto de subprogramas utilizados para desarrollar software. Las bibliotecas contienen cdigo y datos, que proporcionan servicios a programas independientes, es decir, pasan a formar parte de estos. Esto permite que el cdigo y los datos se compartan y puedan modificarse de forma modular. Algunos programas ejecutables pueden ser a la vez

programas independientes y bibliotecas, pero la mayora de estas no son ejecutables. Ejecutables y bibliotecas hacen referencias (llamadas enlaces) entre s a travs de un proceso conocido como enlace, que por lo general es realizado por un software denominado enlazador. La mayora de los sistemas operativos modernos proporcionan bibliotecas que implementan los servicios del sistema. De esta manera, estos servicios se han convertido en una "materia prima" que cualquier aplicacin moderna espera que el sistema operativo ofrezca. Como tal, la mayor parte del cdigo utilizado por las aplicaciones modernas se ofrece en estas bibliotecas. Existen dos tipos de bibliotecas: Esttica y Dinmica Bibliotecas estticas Histricamente, las bibliotecas slo podan ser estticas. Una biblioteca esttica, tambin conocido como archivo, consiste en un conjunto de rutinas que se copian en una aplicacin por el compilador o el enlazador, produciendo archivos con cdigo objeto y un fichero ejecutable independiente. Este proceso, y el archivo ejecutable, se conoce como una construccin esttica de la aplicacin objetivo. La direccin real, las referencias para saltos y otras llamadas a rutinas se almacenan en una direccin relativa o simblica, que no puede resolverse hasta que todo el cdigo y las bibliotecas son asignadas a direcciones estticas finales. El enlazador resuelve todas las direcciones no resueltas convirtindolas en direcciones fijas o relocalizables (desde una base comn) cargando todo el cdigo y las bibliotecas en posiciones de memoria en tiempo de ejecucin. Este proceso de enlazado puede durar incluso ms tiempo que el proceso de compilacin, y debe ser realizado cada vez que alguno de los mdulos es recompilado. La mayora de los lenguajes compilados tienen biblioteca estndar (por ejemplo, la biblioteca estndar de C), pero los programadores tambin pueden crear sus propias bibliotecas personalizadas. Los compiladores comerciales proporcionan tanto las bibliotecas estndar como las personalizadas. Un enlazador puede trabajar sobre tipos especficos de ficheros objeto, y por lo tanto requiere tipos especficos (compatibles) de bibliotecas. Los ficheros objeto recopilados en una biblioteca pueden distribuirse y utilizarse fcilmente. Un cliente, ya sea un programa o una biblioteca de subrutinas, accede a una biblioteca objeto referenciando slo por su nombre. El proceso de enlazado resuelve las referencias buscando en las bibliotecas del orden dado. Por lo general, no se considera un error si un nombre puede encontrarse varias veces en un determinado conjunto de las bibliotecas. Bibliotecas dinmicas Artculo principal: Enlace dinmico. Enlace dinmico significa que las subrutinas de una biblioteca son cargadas en un programa en tiempo de ejecucin, en lugar de ser enlazadas en tiempo de compilacin, y se mantienen como archivos independientes separados del fichero ejecutable del programa principal. El enlazador realiza una mnima cantidad de trabajo en tiempo de compilacin, registra que rutinas de la

biblioteca necesita el programa y el ndice de nombres o nmeros de las rutinas en la biblioteca. La mayor parte de la labor de enlazado se realiza en el momento en que la aplicacin se carga (tiempo de carga o loadtime) o durante la ejecucin (tiempo de ejecucin o runtime). El necesario cdigo enlazado, llamado por el cargador, es de hecho parte del sistema operativo subyacente. En el momento adecuado el cargador localiza las bibliotecas en el disco y aade los datos relevantes de estas en el espacio de memoria del proceso. Algunos sistemas operativos slo pueden enlazar una biblioteca en tiempo de carga, antes de que el proceso comience su ejecucin, otros son capaces de esperar hasta despus de que el proceso haya empezado a ejecutarse y enlazar la biblioteca slo cuando efectivamente se hace referencia a ella (es decir, en tiempo de ejecucin). Esto ltimo se denomina "retraso de carga". En cualquier caso, esa biblioteca es una biblioteca enlazada dinmicamente. El enlace dinmico, por su naturaleza, tiene tan slo las limitaciones establecidas por las licencias de software. Los plugins son un uso comn de las bibliotecas enlazadas dinmicamente, que son especialmente tiles cuando unas bibliotecas pueden ser sustituidas por otras con una interfaz similar, pero diferente funcionalidad. Se puede decir que un software tiene una "arquitectura de plugin" si utiliza bibliotecas con una funcionalidad bsica con la intencin de que puedan ser sustituidas. Sin embargo, el uso de las bibliotecas enlazadas dinmicamente en la arquitectura de una aplicacin no significa necesariamente que puedan ser sustituidas. En Microsoft Windows, las bibliotecas enlazadas dinmicamente se denominan DLL (dynamic-link library).

Potrebbero piacerti anche