Sei sulla pagina 1di 14

UNIVERSIDAD LAICA ELOY ALFARO DE MANAB

EXTENSIN CHONE

FACULTAD DE CIENCIAS INFORMATICAS

INGENIERIA EN SISTEMAS

5TO SEMESTRE A

GRUPO #8

Arquitectura basada en Componentes

AUTORES:

DANILO XAVIER HEREDIA BARBERAN


DENNYS JAIR LOOR CEDEO
ENNER PABLO VERA ARTEAGA
FECHA:

22 DE MAYO DEL 2017

DOCENTE:

ING. FABIAN DELGADO

CHONE ECUADOR
Arquitectura basada en componentes

Introduccin

La complejidad de los sistemas computacionales actuales nos ha llevado a buscar la reutilizacin del
software existente. El desarrollo de software basado en componentes permite reutilizar piezas de cdigo
preelaborado que permiten realizar diversas tareas, conllevando a diversos beneficios como las mejoras a la
calidad, la reduccin del ciclo de desarrollo y el mayor retorno sobre la inversin. Al comparar la evolucin
del ambiente de IT con el crecimiento de las metrpolis actuales, podemos entender el origen de muchos
problemas que se han presentado histricamente en la construccin de software y vislumbrar las posibles y
probables soluciones que nos llevarn hacia la industrializacin del software moderno.

Si hay algo que ha aprendido el ser humano desde tiempos muy antiguos es a reutilizar el conocimiento
existente para sus cada vez ms ambiciosas empresas. En efecto, al reutilizar trozos de experiencias, ideas
y artefactos, no solo nos aseguramos de no cometer los mismos errores del pasado, sino que logramos
construir cosas cada vez ms grandes y maravillosas, con bases firmes y calidad incomparable. Este
concepto de la reutilizacin, uno de los primeros que se nos ensean a quienes entramos al mundo del
desarrollo de software, habremos de utilizarlo desde el mismo instante en que escribamos nuestra primera
lnea de cdigo.

Los sistemas de hoy en da son cada vez ms complejos, deben ser construidos en tiempo rcord y deben
cumplir con los estndares ms altos de calidad. Para hacer frente a esto, se concibi y perfeccion lo que
hoy conocemos como Ingeniera de Software Basada en Componentes (ISBC), la cual se centra en el diseo
y construccin de sistemas computacionales que utilizan componentes de software reutilizables. Esta ciencia
trabaja bajo la filosofa de "comprar, no construir", una idea que ya es comn en casi todas las industrias
existentes, pero relativamente nueva en lo que a la construccin de software se refiere.

Para este momento, ya muchos conocen las ventajas de este enfoque de desarrollo y, de la misma forma,
muchos se preguntan da a da el por qu son tan pocos los que realmente alcanzan el xito siguiendo esta
filosofa. En realidad, hasta ahora solo hemos tanteado un poco con las posibilidades del software basado
en componentes, y es justo hora, en la presente dcada, que la industria del software despegar y se
perfeccionar para estar a la par de cualquier otra industria del medio. Las analogas que nos han llevado a
estudiar a los sistemas comparndolos con las complejas metrpolis de la actualidad, as como las iniciativas
ms innovadoras como las Fbricas de Software de Microsoft, son la clara representacin de que estamos a
punto de presenciar un nuevo gran cambio en la forma como pensamos en software.
Beneficios del Desarrollo de Software basado en Componentes

En esencia, un componente es una pieza de cdigo preelaborado que encapsula alguna funcionalidad
expuesta a travs de interfaces estndar . Los componentes son los "ingredientes de las aplicaciones", que
se juntan y combinan para llevar a cabo una tarea . Es algo muy similar a lo que podemos observar en el
equipo de msica que tenemos en nuestra sala. Cada componente de aquel aparato ha sido diseado para
acoplarse perfectamente con sus pares, las conexiones son estndar y el protocolo de comunicacin est ya
preestablecido. Al unirse las partes, obtenemos msica para nuestros odos.

El paradigma de ensamblar componentes y escribir cdigo para hacer que estos componentes funcionen se
conoce como Desarrollo de Software Basado en Componentes. El uso de este paradigma posee algunas
ventajas:

1. Reutilizacin del software. Nos lleva a alcanzar un mayor nivel de reutilizacin de software.

2. Simplifica las pruebas. Permite que las pruebas sean ejecutadas probando cada uno de los
componentes antes de probar el conjunto completo de componentes ensamblados.

3. Simplifica el mantenimiento del sistema. Cuando existe un dbil acoplamiento entre


componentes, el desarrollador es libre de actualizar y/o agregar componentes segn sea necesario,
sin afectar otras partes del sistema.

4. Mayor calidad. Dado que un componente puede ser construido y luego mejorado continuamente
por un experto u organizacin, la calidad de una aplicacin basada en componentes mejorar con el
paso del tiempo.

De la misma manera, el optar por comprar componentes de terceros en lugar de desarrollarlos, posee algunas
ventajas:

1. Ciclos de desarrollo ms cortos. La adicin de una pieza dada de funcionalidad tomar das en
lugar de meses aos.

2. Mejor ROI. Usando correctamente esta estrategia, el retorno sobre la inversin puede ser ms
favorable que desarrollando los componentes uno mismo.
3. Funcionalidad mejorada. Para usar un componente que contenga una pieza de funcionalidad, solo
se necesita entender su naturaleza, ms no sus detalles internos. As, una funcionalidad que sera
imprctica de implementar en la empresa, se vuelve ahora completamente asequible.

ARQUITECTURA BASADA EN COMPONENTES.

La arquitectura basada en componentes consiste en una rama de la Ingeniera de software en la cual se trata
con nfasis la descomposicin del software en componentes funcionales. Esta descomposicin permite
convertir componentes pre-existentes en piezas ms grandes de software.

Este proceso de construccin de una pieza de software con componentes ya existentes, da origen al principio
de reutilizacin del software, mediante el cual se promueve que los componentes sean implementados de
una forma que permita su utilizacin funcional sobre diferentes sistemas en el futuro.

Se debe entonces, para terminar de definir la arquitectura basada en componente, saber que es un
componente de software. Un componente de software se define tpicamente como algo que puede ser
utilizado como una caja negra, en donde se tiene de manera externa una especificacin general, la cual
es independiente de la especificacin interna.

De esta definicin se presentan tres conceptos ligados con la definicin de un componente:

Interior del componente: es una pieza de software que cumple con un conjunto de propiedades y
que se encuentra conformada como un artefacto del cual se espera que sea reutilizable

Exterior del componente: es una interface que cumple con un conjunto de propiedades y provee un
servicio a los agentes humanos u otros artefactos de software.

Relacin interior-exterior: es la que define el proceso de relacin entre el interior y exterior el


componente, a travs de conceptos como especificacin, implementacin y encapsulacin.

Los sistemas de software basados en componentes se basan en principios definidos por una ingeniera de
software especfica. En un principio, hacia 1994, se planteaba como una modalidad que extenda o superaba
la tecnologa de objetos, como en un famoso artculo de BYTE cuyo encabezado rezaba as:
ComponentWare La computacin Orientada a Objetos ha fracasado. Pero el software de componentes,
como los controles de Visual Basic, est teniendo xito. Aqu explicamos por qu (Mayo de 1994, pp. 46-
56). Con el paso de los aos el antagonismo se fue aplacando y las herramientas (orientadas a objeto o no)
fueron adaptadas para producir componentes. En la mayora de los casos, los componentes terminan siendo
formas especiales de DLLs que admiten late binding, que necesitan registracin y que no requieren que sea
expuesto el cdigo fuente de la clase.
Hay un buen nmero de definiciones de componentes, pero Clemens Alden Szyperski proporciona una que
es bastante operativa: un componente de software, dice, es una unidad de composicin con interfaces
especificadas contractualmente y dependencias del contexto explcitas. Que sea una unidad de composicin
y no de construccin quiere decir que no es preciso confeccionarla: se puede comprar hecha, o se puede
producir en casa para que otras aplicaciones de la empresa la utilicen en sus propias composiciones.

Una arquitectura basada en componentes describe una aproximacin de ingeniera de software al diseo y
desarrollo de un sistema. Esta arquitectura se enfoca en la descomposicin del diseo en componentes
funcionales o lgicos que expongan interfaces de comunicacin bien definidas. Esto provee un nivel de
abstraccin mayor que los principios de orientacin por objetos y no se enfoca en asuntos especficos de los
objetos como los protocolos de comunicacin y la forma como se comparte el estado.

Elementos y estructura de la arquitectura basada en componentes

De forma evidente se puede determinar que, el principal elemento de software dentro de un Arquitectura
basada en componentes son precisamente los componentes de software.

Existen 5 principios definidos por Clemens Szyperski and David Messerschmitt, que definen a un
componente de software como elemento de la arquitectura:

Mltiple uso: se refiere al hecho de que un componente es escrito dentro de un contexto que permita
que su funcionalidad sea til en la creacin de distintas piezas de software.
Contexto no especfico: en relacin con la orientacin conceptual de la especificacin de un
componente, debe estar planteada de una forma general que permita su adaptacin en distintos
sistemas, sin que el contexto tenga prioridad.
Encapsulacin: se refiere a la especificacin interna oculta o no investigable a travs de la interface.
As se protege que el resto de componentes y piezas de software dentro de un sistema, no se vean
afectados por cambios en el diseo de uno de los componentes.
Una unidad independiente de desarrollo con su propio control de versiones: este principio muy
relacionado con la encapsulacin, permite que un componente pueda ser desarrollado de manera
independiente, cambiando el diseo o agregando nuevas funcionalidades, sin afectar
significativamente el resto del sistema.

La estructura de la arquitectura basada en componentes contempla 3 partes:

1. El nombre de los componentes: el nombre de un componente debe ser la identificacin de la


funcionalidad y uso que tiene como software. Generalmente, los desarrolladores usan algn tipo
de convencin que facilite la identificacin de componentes, especialmente, cuando se trabaja en
proyectos de gran envergadura2.

2. La interface de los componentes: es el rea de intercambio (input-output) entre el interior y el


exterior de un componente de software. La interface es quien permite acceder a los datos y
funcionalidades que estn especificadas en el interior del componente (acceder funcionalmente, no
a su especificacin).Adicional a la interface se encuentra la documentacin que muestra la
informacin sobre cmo utilizar un componente.

3. Cuerpo y cdigo de implementacin: es la parte del componente que provee la forma


(implementacin) sobre la cual un fragmento del componente realiza sus servicios y
funcionalidades. Este es el rea que debe cumplir con el principio de encapsulacin. Dentro de la
estructura de una arquitectura basada en software existen dos procesos fundamentales para el
desarrollo:

El ensamblaje de sistemas a partir de componentes de software

Este proceso est compuesto por cuatro actividades:

Calificacin de los componentes: comprende el estudio y anlisis de que tan adecuado es un


componente para la construccin del sistema final. Esta evaluacin se realiza sobre un conjunto de
mtricas que deben establecer los analistas y diseadores de la arquitectura.

Adems de esto, de acuerdo con Felix Bachman, durante esta actividad existen dos procesos relacionados
con la certificacin de los componentes:

I. El establecimiento de hechos sobre el componente para verificar que las propiedades queel
componente posee son acordes con su especificacin pblica (documentada).

II. La validacin de que los hechos establecidos sobre el componente son ciertos.
La razn por la cual se realiza este proceso de certificacin es que existe un vnculo entre las propiedades
certificadas de un componente y las del sistema final, es decir, la certificacin es una herramienta para
garantizar que las propiedades de la pieza de software final sean vlidas.

Adaptacin de los componentes: dado que un componente es desarrollado para cumplir con
requerimientos especficos, es posible que est orientado en cierta medida hacia el contexto en el
que fue desarrollado. Por esta razn, se realiza un proceso de adaptacin con el objetivo de
minimizar la cantidad de conflictos. componente puede ser adaptado entonces de tres maneras:
I. White-Box: cuando el componente debe ser reescrito para operar en conjunto con el resto
de componentes del sistema.
II. Grey-Box: cuando el componente incorpora su propio API (Application Programming
Interface).
III. Black-Box: cuando el componente no posee un API. Una interfaz completamente
independiente es construida para acceder a los servicios del componente.3)
Ensamblaje de los componentes: es el proceso de integracin de los componentes a travs dela
estructura mediante la cual fueron definidos. Esto incluye el modelo de software por componentes
sobre el cual son escritos, por ejemplo: COM (Component Object Model), CORBA(Common
Object Request Broker Architectur), Enterprise JavaBeans y .NET.4)
Mantenimiento y evolucin del sistema: consiste en el proceso de actualizacin de componentes,
ya sea por requerimiento o por cambios de especificacin. Estos cambios pueden ser la reescritura
o sustitucin de un componente. Por tal razn un componente trabaja como una unidad (conectable
y desconectable) dentro de un sistema.

Reusabilidad

Esta es una de las caractersticas ms importantes en el desarrollo de sistemas bajo una arquitectura basada
en componentes. Un componente de software debe ser diseado de tal manera que pueda ser reutilizado en
otros sistemas.
Este principio de reutilizacin del componente, requiere un esfuerzo extra por el equipo de desarrollo que
se basa en:

1. Una documentacin completa de cada atributo y funcionalidad del componente.


2. Una etapa de pruebas organizada y certera que certifique el correcto funcionamiento del
componente.
3. Una definicin de comprobaciones precisa para el chequeo de cada parmetro de entrada
(input) del componente.
4. Un manejo de notificaciones de errores preciso, que advierta de la existencia de estos de
una forma apropiada.
5. Desarrollar teniendo en cuenta que el componente puede ser requerido para trabajar en
muchos contextos muy diferentes unos de otros (tomar en cuenta la eficiencia, uso de
memoria y recursos).

PRI N CI PIO S FU N DAME NT AL E S

Un componente es un objeto de software especficamente diseado para cumplir con cierto propsito. Los
principios fundamentales cuando se disea un componente es que estos deben ser:

Reusable. Los componentes son usualmente diseados para ser utilizados en escenarios diferentes por
diferentes aplicaciones, sin embargo, algunos componentes pueden ser diseados para tareas especficas.

Sin contexto especifico. Los componentes son diseados para operar en diferentes ambientes y contextos.
Informacin especfica como el estado de los datos deben ser pasadas al componente en vez de incluirlos o
permitir al componente acceder a ellos.

Extensible. Un componente puede ser extendido desde un componente existente para crear un nuevo
comportamiento.

Encapsulado. Los componentes exponen interfaces que permiten al programa usar su funcionalidad. Sin
revelar detalles internos, detalles del proceso o estado.

Independiente. Los Componentes estn diseados para tener una dependencia mnima de otros
componentes. Por lo tanto los componentes pueden ser instalados en el ambiente adecuado sin afectar otros
componentes o sistemas.

B E NE FIC IO S

Los siguientes son los principales beneficios del estilo de arquitectura basado en componentes:

Facilidad de Instalacin. Cuando una nueva versin est disponible, usted podr reemplazar la versin
existente sin impacto en otros componentes o el sistema como un todo.
Costos reducidos. El uso de componentes de terceros permite distribuir el costo del desarrollo y del
mantenimiento.

Facilidad de desarrollo. Los componentes implementan un interface bien definida para proveer la
funcionalidad definida permitiendo el desarrollo sin impactar otras partes del sistema.

Reusable. El uso de componentes reutilizables significa que ellos pueden ser usados para distribuir el
desarrollo y el mantenimiento entre mltiples aplicaciones y sistemas.

Mitigacin de complejidad tcnica. Los componentes mitigan la complejidad por medio del uso de
contenedores de componentes y sus servicios. Ejemplos de servicios de componentes incluyen activacin
de componentes, gestin de la vida de los componentes, gestin de colas de mensajes para mtodos del
componente y transacciones.

E J E M P LO S

Tipos comunes de componentes usados en aplicaciones incluyen:

Componentes de interfaz de usuario, como grillas, botones, etc., generalmente conocidos como
controles.

Componentes de ayuda que exponen un conjunto especfico de funciones usados por otros componentes.

Componentes que se no se usan con mucha frecuencia o son intensivos en recursos y deben ser actividades
usando una aproximacin de solo en el momento justo (Just in Time (JIT)). Estos son comunes en escenarios
de componentes distribuidos o en componentes remotos.

Componentes encolados, aquellos cuyos mtodos pueden ser ejecutados de forma asncrona usando colas
de mensajes del tipo almacenamiento, entrega.

BIBLIOGRAFA

http://cbs.colognet.org/overview.php

http://active.cput.ac.za/myconference/Gregory%20Booth%20-%20Component%20Software%20Development.pdf

https://es.scribd.com/doc/14704374/Arquitectura-Basada-en-Componentes

https://www.ecured.cu/Arquitectura_Software_(desarrollo_de_componentes)

https://msdn.microsoft.com/es-es/library/bb972268.aspx

https://geeks.ms/jkpelaez/2009/04/18/arquitectura-basada-en-componentes/#comment-53
GLOSARIO:

1. PARADIGMA: (EJEMPLO) Conjunto de unidades que pueden sustituir a otra en un mismo


contexto porque cumplen la misma funcin.
2. PLANTEABA: (PROYECTAR) Exponer un problema, asunto, etc. para tratar sobre este
o hallar su solucin.
3. MODALIDAD: (MANERA) Modo o forma de ser o de manifestarse una cosa.
4. ANTAGONISMO: (DIFERENCIA) Incompatibilidad, oposicin o rivalidad entre personas,
opiniones o ideas.
5. ENVERGADURA:(AMPLITUD) Distancia entre las dos puntas
6. CONFLICTOS: (APRIETOS) Oposicin o desacuerdo entre personas o cosas.
7. ASNCRONA: (SINCRONICO) Es aquella comunicacin que se establece entre personas de
manera diferida en el tiempo, es decir, cuando no existe coincidencia temporal.
8. INCLUIRLOS: (CONTENER) Poner una cosa en el interior de otra o dentro de sus lmites.
9. PARMETRO: (MEDIDA) Elemento o dato importante desde el que se examina un tema,
cuestin o asunto.
10. EXTENDA: (AMPLIABA) Hacer que una cosa ocupe ms espacio del que ocupa, abrindola,
desdoblndola, desenrollndola, etc.
11. SUPERABA: (CULMINABA) Sobrepasar [una cosa] cierto lmite, cantidad o valor que se
considera un valor normal o necesario.
12. ENCAPSULACIN: (METER) Meter una cosa en una cpsula.
13. IMPLEMENTACIN: (EJECUCIN) Accin o efecto de implementar.
14. TPICAMENTE: (TIPICO) Que representa o reproduce un tipo, o posee sus caractersticas
bsicas.
15. ASEQUIBLE: (REALIZABLE ) Que puede alcanzarse o conseguirse
CUESTIONARIO:

1. QU ES UN COMPONENTE?

En esencia, un componente es una pieza de cdigo pre elaborado que encapsula alguna funcionalidad
expuesta a travs de interfaces estndar

2. CMO SE CONOCE A UN COMPONENTE?

Se los conoce como ingredientes de las aplicaciones

3. EL USO DE COMPONENTES POSEE ALGUNAS VENTAJAS CULES SON?

Reutilizacin del software


Simplifica las pruebas.
Simplifica el mantenimiento del sistema.
Mayor calidad

4. DEFINA LO QUE ES REUTILIZACIN DEL SOFTWARE


Nos lleva a alcanzar un mayor nivel de reutilizacin de software.

5. DEFINA SIMPLIFICA LAS PRUEBAS

Permite que las pruebas sean ejecutadas probando cada uno de los componentes antes de probar el
conjunto completo de componentes ensamblados.

6. DEFINA SIMPLIFICA EL MANTENIMIENTO DEL SISTEMA

Cuando existe un dbil acoplamiento entre componentes, el desarrollador es libre de actualizar y/o
agregar componentes segn sea necesario, sin afectar otras partes del sistema.

7. DEFINA MAYOR CALIDAD

La calidad de una aplicacin basada en componentes mejorar con el paso del tiempo.

8. ESCRIBA CUALES SON LAS VENTAJAS QUE POSEE COMPRAR


COMPONENTES DE TERCEROS EN LUGAR DE DESARROLLARLOS.

Ciclos de desarrollo ms cortos.


Mejor ROI.
Funcionalidad mejorada.
9. QUE ES CICLOS DE DESARROLLO MAS CORTOS

La adicin de una pieza dada de funcionalidad tomar das en lugar de meses aos.

10. QUE ES UN MEJOR ROL

Usando correctamente esta estrategia, el retorno sobre la inversin puede ser ms favorable que
desarrollando los componentes uno mismo.

11. QUE ES FUNCIONALIDAD MEJORADA

Para usar un componente que contenga una pieza de funcionalidad, solo se necesita entender su
naturaleza, ms no sus detalles internos. As, una funcionalidad que sera imprctica de implementar en
la empresa, se vuelve ahora completamente asequible.

12. EN QUE CONSISTE LA ARQUITECTURA BASADA EN COMPONENTES

Consiste en una rama de la Ingeniera de software en la cual se trata con nfasis la descomposicin del
software en componentes funcionales.

13. QUE PERMITEN LOS COMPONENTES FUNCIONALES

Permite convertir componentes pre-existentes en piezas ms grandes de software.

14. EN CUANTAS PARTES SE DIVIDE UN COMPONENTE

Interior del componente


Exterior del componente
Relacin interior-exterior

15. DEFINICION DE INTERIOR DEL COMPONENTE

Es una pieza conformada como un artefacto del cual se espera que sea reutilizable

16. DEFINICION DE EXTERIOR DE COMPONETE

Provee un servicio a los agentes humanos u otros artefactos de software.


17. DEFINICION DE RELACION INTERIOR-EXTERIOR

Es la que define el proceso de relacin entre el interior y exterior el componente

18. EXISTEN 4 PRINCIPIOS DEFINIDOS POR CLEMENS SZYPERSKI AND


DAVID MESSERSCHMITT, CULES SON?

Mltiple uso
Contexto no especfico
Encapsulacin
Una unidad independiente de desarrollo con su propio control de versiones

19. EN QUE SE BASA UNA ARQUITECTURA BASADA EN COMPONENTES


En una aproximacin de ingeniera de software al diseo y desarrollo de un sistema.

20. A QUE SE REFIERE CON MULTIPLE USO


Se refiere al hecho de que un componente es escrito dentro de un contexto que permita que su
funcionalidad sea til.

21. QUE ES UN CONTEXTO NO ESPECIFICO


Debe estar planteada de una forma general que permita su adaptacin en distintos sistemas, sin que el
contexto tenga prioridad.

22. QUE ES UNA ENCAPSULACION


Se refiere a la especificacin interna oculta o no investigable a travs de la interface.

23. QUE ES UNA UNIDAD INDEPENDIENTE DE DESARROLLO CON SU PROPIO


CONTROL DE VERSIONES
Permite que un componente pueda ser desarrollado de manera independiente

24. CUALES SON LOS PRINCIPIOS FUNDAMENTALES DE LA ARQUITECTURA


BASADA EN COMPONENTES

Reusable.
Sin contexto especifico.
Extensible.
Encapsulado.
Independiente.

25. CUALES SON LOS BENEFICIOS DE UTILIZAR ARQUITECTURA BASADA


EN COMPONENTES

Facilidad de Instalacin
Costos reducidos
Facilidad de desarrollo
Reusable
Mitigacin de complejidad tcnica

26. QUE ES LA FACILIDAD DE INSTALACION


Cuando una nueva versin est disponible, usted podr reemplazar la versin existente sin impacto en
otros componentes o el sistema como un todo.

27. QUE ES COSTOS REDUCIDOS

El uso de componentes de terceros permite distribuir el costo del desarrollo y del mantenimiento.

28. QUE ES FACILIDAD DE DESARROLLO

Permite el desarrollo sin impactar otras partes del sistema.

29. A QUE SE REFIERE CON REUSABLE


Significa que ellos pueden ser usados para distribuir el desarrollo y el mantenimiento entre mltiples
aplicaciones y sistemas.

30. QUE ES MITIGACION DE COMPLEJIDAD TECNICA


Los componentes mitigan la complejidad por medio del uso de contenedores de componentes y sus
servicios.

Potrebbero piacerti anche