Los consumidores exigen productos más inteligentes y conectados. Esta demanda ha llevado al crecimiento explosivo del software y la conectividad.
La cantidad de software integrado en los productos está creciendo exponencialmente. La funcionalidad del producto depende cada vez más del software y menos del hardware y los componentes mecánicos. Y está sucediendo en todas las industrias.
En el sector aeroespacial y de defensa, un Boeing 787 tiene 6,5 millones de líneas de código. En automoción, un coche tiene 100 millones de líneas de código. Y en electrónica de consumo, un teléfono Android tiene 12 millones de líneas de código.
Pero a medida que el software crece, crea desafíos comerciales y técnicos. Los desarrolladores calificados disponibles son limitados. Y a medida que escasean, se vuelven más caros.
La reutilización de código puede resolver el problema del crecimiento del software y aquí explicamos qué es la reutilización de código y cómo reutilizarlo de manera efectiva.
- ¿Qué Es La Reutilización De Código?
- Cuándo puede Reutilizar el código
- Cuando la reutilización de código no funciona
- Por qué la reutilización de software es difícil
- Organización y escala
- Administración
- Política y Psicología
- Desafíos con la reutilización de código
- Desafíos operativos
- Más tiempo
- Más recursos
- Desafíos técnicos
- Seguridad
- Fiabilidad
- Eficiencia de rendimiento
- Mantenibilidad
- El análisis estático Facilita la Reutilización de código
- Cómo reutilizar código de manera efectiva
¿Qué Es La Reutilización De Código?
La reutilización de código es la práctica de usar código existente para una nueva función o software.
Pero para reutilizar el código, ese código debe ser de alta calidad. Y eso significa que debe ser seguro y confiable.
Desarrollar software que cumpla con estos requisitos es un desafío. Desarrollar sistemáticamente componentes y marcos de software reutilizables de alta calidad es aún más difícil.
Cuándo puede Reutilizar el código
Reutilizar el código es un gran objetivo.
En un entorno ideal, un desarrollador podría acceder a bibliotecas de código estables y de confianza. Luego podrían reutilizar el código de esas bibliotecas como bloques de construcción dentro de su aplicación.
Por lo tanto, puede reutilizar el código cuando pueda:
- Fácilmente ampliable y adaptado a la nueva aplicación.
- Portado a hardware diferente si es necesario.
- Se ha demostrado que no presenta defectos ni problemas que afecten a la fiabilidad, la seguridad o la protección de la nueva aplicación.
Pero el entorno no siempre es ideal. Y el código no siempre cumple con estos requisitos. Por lo tanto, reutilizar código a menudo suena mucho más fácil de lo que es.
Cuando la reutilización de código no funciona
La reutilización de código a menudo resulta difícil.
En la práctica, los desarrolladores a menudo terminan reconstruyendo software desde cero. O solo pueden reutilizar una pequeña fracción del código existente en proyectos nuevos.
Por qué la reutilización de software es difícil
La reutilización de software es difícil. Esto es especialmente cierto para organizaciones con un gran número de componentes de productos y equipos de desarrollo distribuidos geográficamente.
Aquí hay tres razones por las que la reutilización del software es difícil.
Organización y escala
A medida que aumenta el número de proyectos y desarrolladores, se hace más difícil reutilizar el software. Comunicar de manera efectiva los detalles y requisitos para la reutilización de código es un desafío. Y es difícil proporcionar orientación y comentarios adecuados sobre la reutilización del código.
Administración
A medida que aumenta el número de proyectos y desarrolladores, es difícil compartir bibliotecas de código reutilizable. Es un desafío catalogar, archivar y recuperar activos reutilizables a nivel mundial.
Plataformas como GitHub pueden hacer esto más fácil. Pero todavía se necesita tiempo y esfuerzo para establecer un repositorio de código utilizable y escalable.
Política y Psicología
A nivel organizacional, la política de oficina puede ser una barrera para la reutilización de software. A medida que las unidades de negocio luchan por la autonomía, o compiten entre sí, pueden intentar bloquear la reutilización de sus activos por otras unidades.
A nivel individual, los desarrolladores pueden ver la reutilización de código como una asfixia de su creatividad — o como una falta de confianza de la organización en sus habilidades técnicas. Tales percepciones llevan a algunos desarrolladores a resistirse a los esfuerzos por aumentar la reutilización del código.
Desafíos con la reutilización de código
Existen desafíos operativos y técnicos con la reutilización de código.
Desafíos operativos
Crear código reutilizable requiere una inversión de tiempo y recursos durante el desarrollo. El código verdaderamente reutilizable se puede reutilizar de nuevas maneras que difieren sustancialmente de la intención de diseño original del código.
Más tiempo
Para admitir la reutilización planificada, los equipos de desarrollo necesitan dedicar tiempo adicional a escribir documentación para su código. Y necesitan probarlo más a fondo que el código programado para un solo proyecto.
Este es un desafío para los desarrolladores con plazos ajustados. Algunos fracasan porque son demasiado ambiciosos. Invierten demasiado en esfuerzos de diseño iniciales. Otros fracasan debido a una mala planificación, falta de flexibilidad de diseño o falta de financiación.
Más recursos
La creación de código reutilizable requiere que los gerentes de proyecto planifiquen recursos adicionales por adelantado.
Al principio, los gerentes de proyecto deben comprometerse con el tiempo necesario para diseñar, documentar y probar el código, una inversión con beneficios a largo plazo. La alternativa es un enfoque a corto plazo en el que se centran los esfuerzos en diseñar rápidamente el software para cumplir con los plazos de sus clientes y planificar la refactorización del código para que sea reutilizable en una fecha posterior.
Desafíos técnicos
La calidad del software juega un papel importante en la facilidad de reutilización del software.
Hay cuatro rasgos principales de la calidad del software que afectan la reutilización.
Seguridad
Para ser reutilizado, el código debe ser seguro. Puede garantizar un código seguro de varias maneras, incluido el uso de una lista CWE.
Fiabilidad
Para ser reutilizado, el código debe ser fiable. Puede garantizar un código fiable garantizando la disponibilidad, la tolerancia a fallos y la capacidad de recuperación.
Eficiencia de rendimiento
Para ser reutilizado, el código debe ser eficiente. Puede garantizar la eficiencia mejorando los tiempos de respuesta y supervisando el procesador, la memoria y la utilización.
Mantenibilidad
Para ser reutilizado, el código debe ser mantenible. Una forma de asegurarse de que el código es mantenible es asegurarse de que es compatible.
El análisis estático Facilita la Reutilización de código
Puede utilizar el análisis estático para reutilizar código fácilmente. Esto se debe a que el análisis estático mejora la calidad general del código.
El análisis estático identifica problemas en el código desde el principio. Se realiza directamente en el código fuente. Esto permite que los controles de calidad se realicen mucho antes de que el código esté listo para la integración y la prueba funcional.
Las herramientas de análisis de código estático pueden ayudar a detectar fallas comunes en la seguridad, el diseño y el flujo de programas. Y pueden realizar comprobaciones de tipo de datos y funciones variables. Estas herramientas a menudo encuentran errores que no se detectan fácilmente con otras formas de prueba.
Herramientas de análisis de código estático:
- Automatice las revisiones de código.
- Reduzca la complejidad ciclomática.
- Garantizar la fiabilidad y la seguridad.
- Haga cumplir los estándares de codificación.
- Mejorar las bases de código heredadas.
Y eso hace que sea más fácil reutilizar el código.
Cómo reutilizar código de manera efectiva
Puede reutilizar código de manera más efectiva con una herramienta de análisis estático, como Helix QAC y Klocwork.
Descubra cómo Helix QAC mejora la calidad del código C y C++, incluso en las bases de código más complejas.
EXPLORE HELIX QAC
Descubra cómo Klocwork mejora la calidad del código C, C++, C# y Java, incluso en las bases de código más complejas.
Explore Klocwork