​​Implementación de herramientas de desarrollo de software​

En el desarrollo de proyectos programados existen diferentes inconvenientes que pueden interferir en el desarrollo que se planeó en primera instancia. Inconvenientes como restricción de recursos de programación al momento de implementar soluciones de software, como librerías o IDL es una problemática constante en el ámbito académico y laboral. Por esta razón se recomienda y promueve, crear herramientas de programación propias que se adapten a múltiples problemas de manera eficiente y para diversos casos, ahorrando recursos de memoria, y aplicando estructuras de datos con múltiples comportamientos para diferentes tareas.  

En el siguiente artículo se exponer las ventajas de crear estructuras de datos propias para atender soluciones durante la realización de proyectos académicos, cuando las herramientas de desarrollo esta restringidas, y demostrar las ventajas que tienen estas herramientas por encima de estructuras o librerías ya diseñadas.  

Introducción 

     El articulo demuestra los beneficios de la creación e implementación de librerías propias con comportamientos múltiples para el desarrollo de proyectos de software en un ambiente de desarrollo dónde los recursos son escasos basados en el lenguaje de programación C++ con el apoyo de la herramienta de compilación BCC101, y de cómo este código puede ser reciclado para atender problemas con características similares a alguno previo donde se hayan aplicado.  

     En el desarrollo de proyectos programados a nivel académico nos podemos encontrar en muchas ocasiones con problemáticas de restricción de librerías las cuales dificultan las etapas de desarrollo de las soluciones de software. Por esta razón es importante tener una guía para desarrollar herramientas que atiendan las necesidades presentes, un desarrollo que vaya más allá de la necesidad actual y anticipe problemas futuros como aplicación en una estructura de datos de la misma familia, manejo de tipos nativos los cuales tienen comportamientos que se encuentran restringidos o deshabilitados, optimización de clases las cuales tiene comportamientos específicos más están ligadas a una función principal, esto con el fin de descentralizar funcionalidades y optimizar a través del procesos de modularidad, etc.  

Los lenguajes de programación son herramientas las cuales permiten realizar un manejo de los recursos computacionales de un dispositivo para crear soluciones que solventen una necesidad a través del software, pero es nuestra responsabilidad como desarrolladores administrar los recursos del sistema que nuestros programas utilizan, es por esta razón que se recomienda para la creación de este tipo de librerías de comportamientos reciclables. Presentando ventajas como utilidad en múltiples casos, herencia de comportamientos y descentralización para mejorar la modularidad de los programas, también es una excelente opción para aplicar en motores de programas (secciones dedicadas al cálculo y manejo de datos en los programas). 

      Uno de los principales retos a los que se debe enfrentar el programador es el de abstraer toda la información relevante para poder globalizar todos los comportamientos necesarios para que la librería cumpla con su cometido en la actualidad y sea de utilidad a futuro. Por otro lado, para desarrollar estas librerías se deben mantener buenas prácticas de programación para que la eficiencia de estas destaque, por ejemplo: simplificar casos y evitar redundancias, analizar casos base, incluir comentarios en el código y redactando descripciones claras y concisas de las funciones y simplificar el funcionamiento, siempre evitando el alto acoplamiento entre métodos. 

      Algunas de las ventajas son que estas estructuras pueden ser mejoradas de ser necesario para añadir nuevos comportamientos o simplificar otros, debido a la facilidad de acceso y de comprensión con respecto a códigos de librerías estándar o por defecto.   

     El objetivo principal de este articulo es demostrar cómo las librerías creadas de manera propia pueden ser de gran ayuda cuando las herramientas de programación son restringidas, ya sea para emular comportamientos o bien para optimizar estos, esto de la mano del lenguaje de programación C++ como herramienta de programación y además fomentar el proceso de abstracción y de etapas de desarrollo de proyectos. 

 Proceso de aplicación: 

  • Primeramente, el usuario debe identificar cuál es la problemática a la que desea dar solución.  

  • Una vez se haya analizado el problema a fundo, se toman las características principales del algoritmo que se implementara para atender o dar solución al problema 

  • Después se debe realizar un segundo análisis donde se encuentren diferentes aplicaciones para el algoritmo, donde no se involucre un cambio de sus propiedades o características propias. 

  • Una vez se haya realizado este segundo análisis se deben implementar las características nuevas determinadas en el segundo análisis y, de esta manera, crear un TAD con la información anterior y la del primer análisis. 

  • Como paso final solo queda implementar el algoritmo y realizar pruebas de esta para verificar que todo lo programado se comporte según lo esperado. 

Librerías que se pueden realizar 

     Se pueden realizar diferentes tipos de librerías las cuales ayudaran al manejo de diferentes proyectos a futuro, las cuales ahorren recursos de tiempo y código.  

     Las siguientes librerías que se recomienda crear presentan un comportamiento que puede ser aplicado en múltiples casos.  

  • Librerías de manejo de matrices estáticas. 

  • Librería de manejo de arreglos de caracteres. 

  • Librerías de árboles binarios balanceados. 

  • Librerías de listas dinámicas que posean comportamiento dual de pila y cola 

  • Librerías de manejo de archivos XML. 

  • Librerías que brinden vías de comunicación como sockets.  

Ejemplo 

     En las siguientes imágenes se presentan algunos métodos de librerías desarrollados por el autor y su equipo de trabajo, los cuales fueron aplicados durante el desarrollo de programas de software en el lenguaje de programación C++. 

 

Ilustración 1 Presentación de clase 

     En la imagen anterior se ejemplifica como la librería copia el dato en concreto en lugar de dejar este almacenado en alguna posición de memoria la cual dificulte su manejo.  

 

Ilustración 2 Método constructor 

 

Ilustración 3 Métodos de acceso  

     En las imágenes anteriores queda demostrado como el usuario puede optar por crear sus propios métodos los cuales simulen el comportamiento de la librería <string.h> del lenguaje de programación C++, de manera eficiente y fácil de entender y aplicar para el programador, cuando el uso de esta está restringido. 

 

     Por otra parte, también se pueden desarrollar librerías que realicen manejo de matrices. Estas librerías pueden ser utilizadas en el manejo de elementos estáticos y en la implementación de grafos. 

 

Ilustración 4 Implementacion de clase motor matriz 

 

 

Ilustración 5 Implementacion de clase motor matriz (2) 

 

 

Ilustración 6 Transponer Matriz

Conclusión 

  

     En síntesis, el objetivo del artículo es el de fomentar el uso y la creación de herramientas propias para el desarrollo de proyectos y tareas programadas de grado académico y con esto facilitar el proceso de implementación de estos últimos. Además de promover el desarrollo de librerías que presenten múltiples comportamientos cuando estos son requeridos, como copiar almacenar y operar tipos de datos nativos, también el reciclaje de código previamente programado. También se fomenta el uso de estructuras estáticas para aprovechar sus ventajas y características en el desarrollo de librerías.  

A grandes rasgos estas librerías son de gran utilidad cuando se implementan procesos de desarrollo como el que muestra el artículo. 

Referencias

Adrian. (3 de 04 de 2011). ESTRUCTURA DE DATOS. Obtenido de ESTRUCTURA DE DATOS: http://adrian-estructuradedatos.blogspot.com/2011/04/memoria-estatica-y-dinamica.html 

Hernández, J. M. (11 de 2 de 2013). Koalite. Obtenido de Koalite: http://blog.koalite.com/2013/02/ventajas-e-inconvenientes-de-las-estructuras-de-datos-sin-esquema/ 

 

No comments

Comentarios en artículos

No comments

Nobody has submitted a comment yet.