Principios de diseño en lenguajes de programación y su impacto en la calidad del software
DOI:
https://doi.org/10.63688/t9xzg726Keywords:
Lenguajes de programación, Correctitud del software, Mantenibilidad, RendimientoAbstract
El presente estudio analiza los principios fundamentales que orientan el diseño de lenguajes de programación modernos, destacando su impacto en la calidad del software. A partir de un enfoque cualitativo y un análisis documental de literatura científica, se identificaron tres pilares esenciales: la correctitud, la mantenibilidad y el rendimiento. Los resultados evidencian que la correctitud constituye el objetivo prioritario, ya que permite desarrollar programas que cumplen con su propósito y minimizan errores desde etapas tempranas mediante mecanismos como sistemas de tipos estrictos, validaciones en compilación y abstracciones claras. En cuanto a la mantenibilidad, se determinó que principios como la modularidad, el bajo acoplamiento, la alta cohesión, el encapsulamiento y la separación de responsabilidades facilitan la comprensión, modificación y evolución del software, especialmente en entornos de desarrollo dinámicos. Por otro lado, el rendimiento, aunque subordinado a los aspectos anteriores, sigue siendo indispensable, ya que garantiza la eficiencia en la ejecución de los programas mediante técnicas como la compilación optimizada y modelos de ejecución predecibles. Asimismo, se identificó una relación directa entre estos tres principios, evidenciando que la correctitud favorece la mantenibilidad, y esta, a su vez, contribuye a optimizar el rendimiento. El análisis del lenguaje de programación Wybe permitió ejemplificar cómo estos principios pueden integrarse en una propuesta concreta de diseño. En conclusión, el estudio demuestra que un enfoque equilibrado entre correctitud, mantenibilidad y rendimiento es clave para el desarrollo de software confiable, adaptable y eficiente.
References
Banker, R. D., Davis, G. B., & Slaughter, S. A. (1998). Software development practices, software complexity, and software maintenance performance: A field study. Management Science, 44(4), 433–450. https://doi.org/10.1287/mnsc.44.4.433
Benaroch, M., & Lyytinen, K. (2023). How much does software complexity matter for maintenance productivity? IEEE Transactions on Software Engineering, 49(5), 2459–2475. https://doi.org/10.1109/TSE.2022.3153703
Berrio Pacheco, Y., & Benitez Hernandez, R. M. (2024). Estudio de incidencia de lenguajes de programación y entornos de desarrollo en el mercado laboral. https://repositorio.unicordoba.edu.co/server/api/core/bitstreams/1286aa8f-6124-418c-928e-39afca743206/content
Brooks, F. P. (1975). The mythical man-month. ACM SIGPLAN Notices, 10(6), 193–200. https://doi.org/10.1145/390016.808319
Erlikh, L. (2000). Leveraging legacy system dollars for e-business. IT Professional, 2(3), 17–23. https://doi.org/10.1109/6294.848309
Espinosa, J. A., Slaughter, S. A., Kraut, R. E., & Herbsleb, J. D. (2007). Team knowledge and coordination in geographically distributed software development. Journal of Management Information Systems, 24(1), 135–169. https://doi.org/10.2753/MIS0742-1222240104
Gosling, J., & McGilton, H. (1995). The Java language environment: A white paper. Sun Microsystems. https://www.oracle.com/java/technologies/javase/whitepaper.html
Herbsleb, J. D., & Mockus, A. (2003). An empirical study of speed and communication in globally distributed software development. IEEE Transactions on Software Engineering, 29(6), 481–494. https://doi.org/10.1109/TSE.2003.1205177
Hofmann, M. (2000). A type system for bounded space and functional in-place update. En Programming Languages and Systems (pp. 165–179). Springer. https://doi.org/10.1007/3-540-46425-5_11
Krishnan, M. S., Kriebel, C. H., Kekre, S., & Mukhopadhyay, T. (2000). An empirical analysis of productivity and quality in software products. Management Science, 46(6), 745–759. https://doi.org/10.1287/mnsc.46.6.745.12035
Lattner, C., & Adve, V. (2004). LLVM: A compilation framework for lifelong program analysis & transformation. En Proceedings of the International Symposium on Code Generation and Optimization. https://doi.org/10.1109/CGO.2004.1281665
Lehman, M. M. (1996). Laws of software evolution revisited. En European Workshop on Software Process Technology (pp. 108–124). Springer. https://doi.org/10.1007/BFb0017026
Meyer, B. (1988). Object-oriented software construction. Prentice Hall. https://books.google.com.ec/books/about/Object_oriented_Software_Construction.html?id=D6i-QgAACAAJ&redir_esc=y
Nanz, S., & Furia, C. A. (2015). A comparative study of programming languages in Rosetta Code. En Proceedings of the 37th IEEE/ACM International Conference on Software Engineering (pp. 778–788). IEEE. https://doi.org/10.1109/ICSE.2015.90
Parnas, D. L. (1972). On the criteria to be used in decomposing systems into modules. Communications of the ACM, 15(12), 1053–1058. https://doi.org/10.1145/361598.361623
Ramasubbu, N., & Balan, R. K. (2007). Globally distributed software development project performance: An empirical analysis. En Proceedings of the ACM SIGSOFT Symposium on Foundations of Software Engineering (pp. 125–134). https://doi.org/10.1145/1287624.1287643
Ray, B., Posnett, D., Filkov, V., & Devanbu, P. (2014). A large scale study of programming languages and code quality in GitHub. En Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (pp. 155–165). ACM. https://doi.org/10.1145/2635868.2635922
Romero Aguilar, J. F., & Freire Cobo, L. E. (2024). Diseño de diagramas de componentes de software, utilizando un gran modelo de lenguaje y aplicando técnicas de optimización para lograr resultados contextualmente relevante (Doctoral dissertation, ESPOL. FIEC). https://www.dspace.espol.edu.ec/handle/123456789/67425
Stevens, W. P., Myers, G. J., & Constantine, L. L. (1974). Structured design. IBM Systems Journal, 13(2), 115–139. https://doi.org/10.1147/sj.132.0115
Downloads
Published
Issue
Section
License
Copyright (c) 2025 Segundo Alexander Rosado Martínez (Author)

This work is licensed under a Creative Commons Attribution 4.0 International License.
Este artículo se distribuye bajo la licencia Creative Commons Atribución 4.0 . Salvo que se indique lo contrario, el material publicado asociado se distribuye bajo la misma licencia.