En informática e ingeniería de software , la reutilización es el uso de activos existentes de alguna forma dentro del proceso de desarrollo de productos de software ; estos activos son productos y subproductos del ciclo de vida del desarrollo de software e incluyen código, componentes de software, conjuntos de pruebas, diseños y documentación. El concepto opuesto de reutilización es el apalancamiento , que modifica los activos existentes según sea necesario para cumplir con los requisitos específicos del sistema. Porque la reutilización implica la creación de una versión mantenida por separado de los activos [ aclaración necesaria ], se prefiere al apalancamiento. [1]
Las subrutinas o funciones son la forma más simple de reutilización. Un fragmento de código se organiza regularmente usando módulos o espacios de nombres en capas . Los defensores afirman que los objetos y componentes de software ofrecen una forma más avanzada de reutilización, aunque ha sido difícil medir y definir objetivamente niveles o puntuaciones de reutilización.
La capacidad de reutilización se basa de manera esencial en la capacidad de construir cosas más grandes a partir de partes más pequeñas y poder identificar los puntos en común entre esas partes. La reutilización es a menudo una característica necesaria del software de plataforma . La reutilización aporta varios aspectos al desarrollo de software que no es necesario considerar cuando no se requiere la reutilización.
La reutilización implica una gestión explícita de los problemas de compilación , empaquetado , distribución , instalación , configuración , implementación , mantenimiento y actualización . Si no se tienen en cuenta estos problemas, el software puede parecer reutilizable desde el punto de vista del diseño , pero no se reutilizará en la práctica.
La reutilización de software se refiere más específicamente a las características de diseño de un elemento de software (o colección de elementos de software) que mejoran su idoneidad para la reutilización.
En los talleres de WISR se desarrollaron muchos principios de diseño de reutilización. [2]
Las características de diseño candidatas para la reutilización de software incluyen:
- Adaptable
- Breve: tamaño pequeño
- Consistencia
- Exactitud
- Extensibilidad
- Rápido
- Flexible
- Genérico
- Localización de supuestos de diseño volátiles ( modificables ) ( David Parnas )
- Modularidad
- Ortogonalidad
- Parametrización
- Simple: baja complejidad
- Estabilidad ante requisitos cambiantes
Aún no se ha llegado a un consenso sobre esta lista sobre la importancia relativa de las entradas ni sobre las cuestiones que hacen que cada una sea importante para una clase particular de aplicaciones.
Ver también
Referencias
- ^ Lombard Hill Group (22 de octubre de 2014). "¿Qué es la reutilización de software" . www.lombardhill.com . Grupo Lombard Hill. Archivado desde el original el 22 de octubre de 2014 . Consultado el 22 de octubre de 2014 .
- ^ "Diseño para métodos de reutilización y reutilización orientada a objetos" . Umcs.maine.edu. 1995-01-20. Archivado desde el original el 15 de julio de 1997 . Consultado el 31 de julio de 2012 .