Un componente es una pieza de código preelaborado que encapsula alguna funcionalidad expuesta a través de interfaces estándar. Es algo muy similar a lo que podemos observar en el equipo de música que tenemos en nuestra sala. Cada componente de aquel aparato ha sido diseñado para acoplarse perfectamente con sus pares, las conexiones son estándar y el protocolo de comunicación está ya preestablecido. Al unirse las partes, obtenemos música para nuestros oídos.
El
paradigma de ensamblar componentes y escribir código para hacer que estos
componentes funcionen se conoce como Desarrollo de Software Basado en
Componentes.
Desarrollo basado en
componentes
El
modelo de desarrollo basado en componentes incorpora muchas de las
características del modelo espiral. Es evolutivo por naturaleza y exige un
enfoque interactivo para la creación del software. Sin embargo, el modelo de
desarrollo basado en componentes configura aplicaciones desde componentes
preparados de software (clases).
El
modelo de desarrollo basado en componentes conduce ala reutilización del
software, y la reutilización proporciona beneficios a los ingenieros de
software. Según estudios de reutilización, QSM Associates, Inc. Informa que el
ensamblaje de componentes lleva a una reducción del 70 % del ciclo de desarrollo
un 84% del coste del proyecto y un índice de productividad del 26.2. No hay duda
que el ensamblaje de componentes proporciona ventajas significativas para los
ingenieros del software.
El
proceso unificado de desarrollo de software representa un número de modelos de
desarrollo basado en componentes que han sido propuestos en la industria. El
lenguaje de modelado unificado define los componentes. Utilizando una
combinación del desarrollo incremental e interactivo, el proceso unificado
define la función del sistema aplicando un enfoque basado en
escenarios.
El
desarrollo de software basado en componentes se ha convertido actualmente en uno
de los mecanismos más efectivos para la construcción de grandes sistemas y
aplicaciones de software.
Una
vez que la mayor parte de los aspectos funcionales de esta disciplina comienzan
a estar bien definidos, la atención de la comunidad científica comienza a
centrarse en los aspectos extra funcionales y de calidad, como un paso hacia una
verdadera ingeniería. En este artículo se discuten precisamente los aspectos de
calidad relativos a los componentes software y a las aplicaciones que con ellos
se construyen, con especial énfasis en los estándares internacionales que los
definen y regulan, y en los problemas que se plantean en este tipo de
entornos.
Beneficios del
Desarrollo de Software Basado en Componentes
El
uso de este paradigma posee algunas ventajas:
1.
Reutilización del software. Nos lleva a alcanzar un mayor nivel de reutilización
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 débil acoplamiento
entre componentes, el desabollador es libre de actualizar y/o agregar
componentes según 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 organización, la calidad de una aplicación basada
en componentes mejorará con el paso del tiempo
La
Notación de Componentes
Un
componente puede ser algo como un control Actives; tanto un componente de la
Interfaz de usuario como un servidor de reglas de negocio.
El
Diagrama de Componentes
El
diagrama de componentes muestra la relación entre componentes de software, sus
dependencias, su comunicación su ubicación y otras condiciones.
Interfaces
Los
componentes también pueden exponer las interfaces. Estas son los puntos visibles
de entrada o los servicios que un componente está ofreciendo y dejando
disponibles a otros componentes de software y clases. Típicamente, un componente
está compuesto por numerosas clases y paquetes de clases internos. También se
puede crear a partir de una colección de componentes más pequeños.
Los componentes y los
Nodos
Un
diagrama de despliegue muestra el despliegue físico del sistema en un ambiente
de producción (o de prueba). Muestra dónde se ubican los componentes, en qué
servidores, máquinas o hardware. Puede representar los enlaces de
redes.
Restricciones
Los
componentes pueden restricciones asignadas que indican el entorno en el que
operan.
Las
pre-condiciones especifican lo que debe ser verdadero antes de que un componente
pueda realizar alguna función; las post-condiciones indican lo que debe ser
verdadero después de que un componente haya realizado algún trabajo y los
invariantes especifican lo que debe permanecer verdadero durante la vida del
componente.
Tenemos la fortuna de
presenciar el nacimiento de una nueva forma de hacer software, que traerá
beneficios inmensos para todos. 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 mayoría de las industrias de nuestro tiempo. Al mirar hacia atrás, vemos
los increíbles avances que hemos logrado en la comprensión de la forma correcta
de reutilizar el software y el conocimiento existente, y nos asombramos cada vez
más al darnos cuenta de que este solo es el inicio.
El
desarrollo de software basado de componentes se convirtió en el pilar de la
Revolución Industrial del Software y se proyecta hoy en día en diversas nuevas
formas de hacer software de calidad con los costos más bajos del mercado y en
tiempos que antes eran impensables. Empresas como Microsoft entendieron el
potencial de esta metodología hace años y hoy nos ofrecen nuevas iniciativas y
herramientas que buscan llevar al proceso de construcción de software hacia el
sitial privilegiado en el que debió colocarse desde un principio.
Análisis del
riesgo
Se
estudian todos los riesgos potenciales y se seleccionan una o varias
alternativas propuestas para reducir o eliminar los riesgos.Planificar Revisamos todo lo hecho, evaluándolo, y con ello decidimos si continuamos con las fases siguientes y planificamos la próxima actividad.
Ventajas
El
análisis del riesgo se hace de forma explícita y clara. Une los mejores
elementos de los restantes modelos. - Reduce riesgos del proyecto - Incorpora
objetivos de calidad - Integra el desarrollo con el mantenimiento
Desventajas:
•
Inconvenientes
•
Genera mucho trabajo adicional. Cuando un sistema falla se pierde tiempo y coste
dentro de la empresa. Exige una cierta habilidad en los analistas (es bastante
difícil).
No hay comentarios:
Publicar un comentario