Vous êtes sur la page 1sur 8

Desarrollo de Software

Basado en Componentes
Ing. De Software

25/02/2015

INSTITUTO TECNOLOGICO DE AGUA PRIETA


Joaquin Higinio Angeles Toscano
Genaro Arturo Hernandez Hernandez

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 semnticamenterelacionados (justo como con el contenimiento de clases).
Debido a este principio, con frecuencia se dice que los componentes son
modulares y cohesivos.

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 pre elaborado 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.
Fue planteado por Douglas Mcllroy en 1968 e Garmisch, Alemania para hacer
frente crisis de software titulado Mass Produced Software Components.
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.

Otro atributo importante de los componentes es que son sustituibles, as que un


componente puede sustituir a otro (en tiempo de diseo o tiempo de ejecucin), si
el componente sucesor cumple los requisitos del componente inicial (expresado
por medio de las interfaces). Por lo tanto, los componentes pueden ser sustituidos
por una versin actualizada o una alternativa sin romper el sistema en el cual
operan.
Como una regla de oro general para los ingenieros que sustituyen componentes,
el componente B puede sustituir inmediatamente al componente A, si el
componente B proporciona por lo menos que el componente A provee y no usa
ms cosas que las que el componente A usa.
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 laprueba 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 (sin el cual el componente no existira).

En esencia, un componente es una pieza de cdigo preelaborado que encapsula


alguna funcionalidad expuesta a travs de interfaces estndar (1) . Los
componentes son los "ingredientes de las aplicaciones", que se juntan y combinan
para llevar a cabo una tarea (2) . 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.

Especificacion de requerimientos
Anlisis de componentes.
Modificacin de requerimientos
Diseo del sistema con reutilizacion
Desarrollo eh integracion
Validacion del sistema

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.
Desventajas:
Los compromisos en los requisitos son inevitables, por lo cual puede que el
software no cumpla las expectativas del cliente.
Las actualizaciones de los componentes adquiridos no estn en manos de los
desarrolladores del sistemas.

CONCLUSION
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 mayora de las industrias de
nuestro tiempo.

BIBLIOGRAFIA:
https://msdn.microsoft.com/es-es/library/bb972268.aspx
http://webcabcomponents.com/componentization.shtml
https://guillermofonseca.wordpress.com/2011/03/29/modelo-de-desarrollo-de-software-basadoen-componentes/
http://pegasus.javeriana.edu.co/~jcpymes/Docs/DSBC.pdf
http://www.ctr.unican.es/asignaturas/is1/is1-t02-trans.pdf
http://docs.oracle.com/cd/E24842_01/html/E22524/mailrefer-53.html
http://jurifa-ingenieriadesoftware.blogspot.mx/2012/09/reutilizacion-de-software.html

Vous aimerez peut-être aussi