Reutilización De Software
Enviado por rasantander • 2 de Noviembre de 2011 • 1.451 Palabras (6 Páginas) • 1.173 Visitas
INTRODUCCIÓN
La Orientación a Objetos introdujo durante la década pasada un cambio radical en el proceso de desarrollo de software, que pasó de ser un proceso caracterizado por su énfasis en la descripción algorítmica de la solución del problema, a un proceso orientado a la representación y manipulación de los objetos que caracterizan el problema.
Este nuevo paradigma abrió nuevas posibilidades para desarrollar software basado en la reutilización de componentes. La Orientación a Objetos creó un rumbo diferente en el proceso de reutilización a través de la producción de componentes genéricos, fáciles de integrar, distribuidos e independientes de las plataformas de desarrollo.
En el presente trabajo, se presentan los conceptos fundamentales, así como los modelos de procesos y los aspectos metodológicos que caracterizan dos nuevas maneras de producir software, y que se encuentran enmarcadas dentro de lo que conocemos como Desarrollo de Software basado en Componentes.
CONCEPTOS BÁSICOS
La reutilización de software es un proceso de la Ingeniería de Software que conlleva al uso recurrente de activos de software en la especificación, análisis, diseño, implementación y pruebas de una aplicación o sistema de software.
Un Activo Reutilizable es un producto diseñado expresamente para ser empleado de forma recurrente en el desarrollo de muchos sistemas y aplicaciones. Ejemplos de activos reutilizables son: algoritmos, patrones de diseño, esquemas de base de datos, arquitecturas de software, especificaciones de requerimientos, de diseño y de prueba, entre otros.
Varios estudios han demostrado la efectividad de la reutilización del software, entre los datos más importantes podemos citar:
Entre el 40 y 60% del código fuente de una aplicación es reutilizable en otra similar.
El 60% del diseño y del código de aplicaciones administrativas es reutilizable.
El 75% de las funciones son comunes a más de un programa.
Sólo el 15% del código encontrado en muchos sistemas es único y novedoso a una aplicación específica.
El rango general de uso recurrente potencial está entre el 15% y el 85%.
Un componente es una pieza de software que describe o libera un conjunto de servicios que son usados sólo a través de interfaces bien definidas y que cumple con un modelo de componentes. Se pueden ver desde dos perspectivas distintas:
• Implementación: los componentes se pueden ensamblar y desplegar para crear sistemas y aplicaciones que se ejecutan en un computador.
• Abstracción de arquitectura: los componentes expresan las reglas de diseño que impone el modelo de componentes.
La reutilización de componentes de software es un proceso inspirado en la manera en que se producen y ensamblan componentes en la ingeniería de sistemas físicos. La aplicación de este concepto al desarrollo de software no es nueva. Las librerías de subrutinas especializadas, comúnmente utilizadas desde la década de los setenta, representan uno de los primeros intentos por reutilizar software. Siendo la reutilización la característica más importante de un componente, este debe satisfacer el siguiente conjunto de propiedades:
• Identificable: debe tener una identificación clara y consistente que facilite su catalogación y búsqueda en repositorios de componentes.
• Accesible sólo a través de su interfaz: debe exponer al público únicamente el conjunto de operaciones que lo caracteriza (interfaz) y ocultar sus detalles de implementación.
• Sus servicios son invariantes: las operaciones que ofrece a través de su interfaz no deben variar.
• Documentado: un componente debe tener una documentación adecuada que facilite su: búsqueda en repositorios de componentes, evaluación, adaptación a nuevos entornos, integración con otros componentes y acceso a información de soporte.
• Genérico: sus servicios pueden ser usados en una gran variedad de aplicaciones.
• Autocontenido: es conveniente que dependa lo menos posible de otros componentes para cumplir sus funciones.
• Mantenido: es deseable que un componente se mantenga en un proceso de mejoramiento continuo.
• Independiente de la plataforma: existen diversas plataformas de cómputo y es deseable que un componente pueda ejecutarse en todas ellas.
• Puede ser reutilizado dinámicamente: puede ser cargado en tiempo de ejecución en una aplicación.
• Certificado: el componente puede ser certificado por una agencia de software independiente o mediante la aplicación de modelos de auto-certificación 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 ubicación.
METODOLOGÍAS PARA DESARROLLAR COMPONENTES
Existen varios métodos para describir el ciclo de vida de un componente reutilizable, entre ellos podemos mencionar: Método Watch (Montilva & Barrios 2002), Método Watch-Component (Hamar & Montilva 2003), variación del Watch, UML Component (Chessman & Daniels, 2001), Component-based development for enterprise systems (Allen & Frost, 1998) y Rational Unified Process,RUP, (Krutchen, 2000). En este trabajo hablaremos sobre dos de estas metodologías, Metodología Watch-Component y Metodología UML Component.
METODOLOGÍA WATCH COMPONENT
Es la más reciente versión del Método Watch (Montilva & Barrios, 2002), es un método en el que
...