Archives

Categories


Links




Locations of visitors to this page


El maravilloso universo de la ingenería y desarrollo de software


Metodología de Reutilización de Software

Apr-182007

¿Por qué la Reutilización de Software?

 

Mientras hoy, el software se hace cada vez más esencial en la vida cada día; los procesos de desarrollo de software actuales no apoyan este rápido crecimiento de las necesidades. Los procesos de desarrollo de software actuales principalmente se dirigen al desarrollo nuevo de software, y no hacen caso de todos los sistemas existentes, antes activos de desarrollo. Los productores de software necesitan satisfacer los requisitos crecientes del cliente rápidamente para nuevos productos y servicios. Este crecimiento rápido causa cada vez más nuevo software, que requiere cada vez más esfuerzos de desarrollo.

 

Mientras por una parte, las organizaciones tratan de controlar gastos crecientes de software; por otra parte, ellos deben responder rápidamente al cambio de necesidades comerciales y nuevas tecnologías y deben producir sistemas de software cada vez más complejos más rápidamente y más barato a fin de permanecer competitivos.

 

Es obvio que la reutilización de software sistemática puede reducir enormemente gastos de desarrollo en aplicación de software, acortar elementos de desarrollo, y reducir el riesgo de fracaso con la nueva tecnología, así como enormemente mejorar la calidad y la fiabilidad de productos de software.

 

Así en los gastos de desarrollo de software de hoy, la reutilización de software es un deber para cada productor de software, a fin de ser capaz de proporcionar mejores productos, más rápido y más barato que antes.

 

Reutilización de Software, la idea Básica

 

Ya que las ventajas son tan obvias, el éxito que puede otorgar la reutilización de software fue puesto en investigación e implementación en varias organizaciones. La idea básica de la reutilización de software sistemática es simple y no nueva: Desarrolle sistemas de componentes del tamaño razonable y reutilícelos. Entonces amplíe la idea “de sistemas componentes, capas o servicios” más allá del solo código, a requerimientos, modelos de análisis, diseño y pruebas. Todas las etapas del proceso de desarrollo de software son sujetas a la "reutilización".

 

En lugar de construir cada sistema de software desde el principio, como ha sido la práctica de software normal, con la reutilización de software capitalizamos las semejanzas de los sistemas de software al modelo de líneas de producción,  construyéndolos en arquitecturas reutilizables y componentes básicos. Porque hay un alto grado de semejanza entre distintas variaciones de sistemas de software (dentro de una "línea o familia de productos"), esta idea hace sentido común.

 

La reutilización es formalizada cuando el proceso de desarrollo de software, las herramientas, programas de incentivos, programas de entrenamiento y explícitamente las medidas, políticas y objetivos incluyen la reutilización.

 

La reutilización es institucionalizada cuando una organización consecuentemente identifica y explota oportunidades de reutilización en sus áreas comerciales, y la dirección encomienda la práctica de reutilización. Cuando la reutilización es formalizada, una corporación puede practicar la reutilización encima del nivel tradicional de programación por parte del desarrollador individual hacia niveles a través de sistemas, departamento de proyectos y hasta áreas tecnológicas donde pueden disfrutar de las mayores ventajas de la reutilización.

 

Un requisito previo a la formalización de la práctica de reutilización es el modo de pensar de reutilización y actividades de reutilización en el proceso de desarrollo de software, diciendo a los desarrolladores exactamente donde, cuando y como la práctica de la reutilización es integral y forma parte normal del desarrollo de software. Uno de los motivos por qué la reutilización de software no es practicada en la mayor parte de los proyectos de software es que los métodos de desarrollo actuales y los procedimientos no incluyen técnicas de reutilización y guías. Por ejemplo, ellos no describen como estimar o justificar el coste de reutilización, como construir una biblioteca de componentes reutilizables viables que sean rápidos y fáciles para encontrar y seguros para reutilizar.

 

Aunque los métodos orientados a objetos y servicios sean ofrecidos como los mejores métodos para apoyar la reutilización porque ellos incluyen técnicas como herencia, encapsulamiento y clases de objeto, la reutilización es de ningún modo un subproducto automático de una metodología orientada a objetos o servicios.

 

Proceso de Reutilización de Software

 

A continuación se describe el Proceso de Reutilización de Software empleada en la organización para los procesos de desarrollo de software

 Metodología de Reutilización

 

En este proceso se define los roles involucrados que participan en la identificación de la reutilización en cada uno de los elementos de software. Cada rol que participa dentro del proceso de reutilización debe participar en definir los elementos reutilizables en función a las actividades que realiza en el proceso de soluciones de software.

 

Roles Metodología de Reutilización

 

Análisis de escenarios para la reutilización

 

Existen al menos 4 escenarios en los que un proyecto de software requerirá elementos de reutilización.

·         El proyecto es similar a un anterior (reutilización de un proyecto existente).

·         Mismo proyecto con configuración diferente (reutilizan productos actuales)

·         Características de uso basados en productos existentes

·         Nueva Arquitectura con capacidades o elementos existentes.

 

 

Cada uno de los miembros de la organización obtiene beneficios de la reutilización de software, la tabla siguiente se resumen cada uno de los beneficios obtenidos por los colaboradores.

 

Ventajas de Reutilización de Software para Colaboradores Individuales

Colaborador

Beneficios

Director General

• Ganancias de productividad grandes

• Tiempo en el mercado enormemente mejorado

• Crecimiento sostenido y presencia de mercado

• Capacidad de capturar un mercado económicamente atractivo

 

Director de Desarrollo

 

• Uso eficiente de personal

• Capacidad de explorar nuevos mercados, nueva tecnología, y/o nuevos productos

• Fondo de personal Fluido

Líder de Proyecto

 

 

 

• Previsibilidad aumentada

• Papeles bien establecidos y responsabilidades

• Producción eficiente

• Riesgos más controlados

Programador

 

 

 

• Moral más alta

• Mayor satisfacción de trabajo

• Puede concentrarse en aspectos realmente únicos de productos

• Integración de software más fácil

• Menos tardanzas en el calendario

• Mayor movilidad dentro de la organización

• Más comerciable

• Tienen el tiempo para aprender la nueva tecnología

• Son la parte de un equipo que construye productos con un registro de calidad establecido y reputación

Arquitecto o Desarrollador de Activos Base

 

 

• Mayor desafío

• Su trabajo tiene más impacto

• Prestigio dentro de la organización

• Tan comerciable como la línea de productos

Cliente

 

 

• Productos de calidad más altos

• Fecha de entrega previsible

• Coste previsible

• Gastos conocidos para requerimientos único

• Bien Probados materiales de entrenamiento y documentación

• Gastos de mantenimiento compartidos

• Potencial para participar en el grupo de un usuario

Usuario Final

 

 

• Menos defectos

• Mejor formación de materiales y documentación

• Una red de otros usuarios

 

En siguientes post continuare con métodos utilizados para la reutilización de software así como algunos líneamientos para cada fase del proceso de soluciones de software.

 

 
Posted by Efren Esteban Cruz Anguiano | 0 Comments | Bookmark with:        
Tags: Architecture

Links to this Post

Comments

Name:
URL:
Email:
Comments:

CAPTCHA Image Validation