Mostrar el registro sencillo del documento

dc.rights.licenseReconocimiento 4.0 Internacional
dc.rights.licenseReconocimiento 4.0 Internacional
dc.contributor.advisorZapata Jaramillo, Carlos Mario
dc.contributor.authorBotero Restrepo, Carlos Alberto
dc.date.accessioned2020-08-31T17:04:55Z
dc.date.available2020-08-31T17:04:55Z
dc.date.issued2020-08-28
dc.identifier.urihttps://repositorio.unal.edu.co/handle/unal/78339
dc.description.abstractEl desarrollo de software se debe ver como proceso más que como una simple codificación. En este proceso, a los requisitos funcionales se les transforma su sintaxis en lenguaje controlado sin afectar la semántica del sistema de software. Sin embargo, debido a algunas prácticas de los desarrolladores, al comparar el código fuente con los requisitos funcionales se encuentran diferencias en los términos, lo que afecta el tiempo del entendimiento, aumenta los costos y vuelve inútiles los recursos que sirven para comprender el sistema de software en la fase de mantenimiento. Existen estudios en los que se resalta la importancia de la comprensión y cohesión con base en el nombramiento del código fuente para que este tenga sentido cuando se lee. Por esto, algunos autores exponen métricas de calidad de software y herramientas que complementan los entornos de desarrollo, para dar sugerencias de nombramiento y velar por su uso. Sin embargo, para el entendimiento del código fuente no se toma en cuenta la documentación ni los modelos. A pesar de que se reconoce la importancia de la documentación, no hay métricas que permitan evaluar cuánto de los modelos está en el código fuente ni de qué manera y, aún con las métricas existentes, la comprensión del código fuente sigue siendo un proceso que tarda más tiempo del esperado en la fase de mantenimiento. Por lo anterior, en esta Tesis de Maestría se propone una métrica de consistencia lingüística, la cual, usando una mezcla de LSA (Análisis semántico latente por sus siglas en inglés) y una adaptación a la distancia de Levenshtein, permite cuantificar la distancia entre el código fuente y los modelos con base en el cambio de terminología. La métrica propuesta se prueba de manera didáctica mediante un juego y un caso de laboratorio, en el que se expone cómo se afecta el entendimiento de un sistema de software cuando los términos cambian y cómo se mide usando la métrica de consistencia lingüística propuesta. Con la métrica propuesta se confirma de manera cuantitativa que el cambio de las palabras afecta el entendimiento del sistema de software, se identifican los cambios que crean mayor deterioro en el entendimiento del código fuente y se muestra que la terminología utilizada en la educción de requisitos y plasmada en los modelos se debe tomar como recurso fundamental.
dc.description.abstractSoftware development should be seen as a process rather than simple coding. In this process, syntax of functional requirements is transformed into controlled language leaving intact the semantics of the software system. Nonetheless, in software systems—due to some developer practices— differences are found in the terms when comparing the source code with the functional requirements, affecting comprehension times, increasing costs, and rendering useless the resources used for understanding the software system in the maintenance stage. Two factors are highlighted in some studies: Importance of code understanding and cohesion based on naming the source code in a way that makes sense when reading it. For this reason, some authors present software quality metrics and tools for complementing development environments, offering naming suggestions, and ensure their usage. However, documentation and models are left behind for understanding the source code. Although the importance of documentation is recognized, no metrics are available for evaluating how much of the model is in the source code and how it is there. Even with existing metrics, source code understanding remains as a process taking longer than expected in the maintenance stage. For the aforementioned reasons, in this MEng. Thesis, we propose a linguistic consistency metric by using a mixture of LSA (Latent Semantic Analysis) and an adaptation to the Levenshtein distance in order to quantify the distance between the source code and the model based on the change of terminology. The proposed metric is tested in a didactic way by using a game and a lab case, which shows how the understanding of software is affected when the terms change and how it is measured by using the proposed linguistic consistency metric. We confirm in a quantitative way with the proposed metric that changes in wording affect software system understanding, we identify which changes diminish source code understanding, and we show that terminology used in the requirements elicitation and reflected in the models should be taken as a fundamental resource.
dc.format.extent101
dc.format.mimetypeapplication/pdf
dc.language.isospa
dc.rightsDerechos reservados - Universidad Nacional de Colombia
dc.rights.urihttp://creativecommons.org/licenses/by/4.0/
dc.subject.ddc000 - Ciencias de la computación, información y obras generales::003 - Sistemas
dc.titleConsistencia lingüística: métrica para evaluar la calidad semántica entre los requisitos funcionales y el código fuente
dc.title.alternativeLinguistic consistency: Metric to evaluate semantic quality between functional requirements and source code
dc.typeDocumento de trabajo
dc.rights.spaAcceso abierto
dc.description.additionalLínea de Investigación: Ingeniería de software
dc.type.driverinfo:eu-repo/semantics/workingPaper
dc.type.versioninfo:eu-repo/semantics/acceptedVersion
dc.publisher.programMedellín - Minas - Maestría en Ingeniería - Ingeniería de Sistemas
dc.contributor.corporatenameUniversidad Nacional de Colombia - Sede Medellín
dc.contributor.researchgroupLenguajes Computacionales
dc.description.degreelevelMaestría
dc.publisher.branchUniversidad Nacional de Colombia - Sede Medellín
dc.relation.referencesJ. Acosta. “Información semántica, distancias semánticas y conceptos”, Revista interuniversitaria de formación del profesorado Buenos Aires, Vol. 4, pp. 71-78. 1989.
dc.relation.referencesM. Allamanis, E. T. Barr, C. Bird, C. Sutton. “Learning natural coding conventions”, in International Symposium on Foundations of Software Engineering (FSE). ACM, New York, pp. 281-293, 2014.
dc.relation.referencesE. Avidan, D. G. Feitelson. “Effects of Variable Names on Comprehension: An Empirical Study”, in IEEE International Conference on Program Comprehension, Jerusalem, pp. 55-65. 2017.
dc.relation.referencesD. Binkley, M. Hearn, D. Lawrie. “Improving identifier informativeness using part of speech information”, in 8th Working Conference on Mining Software Repositories, Honolulu, pp. 203–206, 2011.
dc.relation.referencesS. Blinman, A. Cockburn. “Program comprehension: Investigating the effects of naming style and documentation”, in 6th Australasian User Interface Conf, Newcastle. pp. 73–78, 2005.
dc.relation.referencesB. Boehm, V. Basili. “Software Defect Reduction Top 10 List”. IEEE Computer, Vol. 34, pp. 135-137. 2001.
dc.relation.referencesL. C. Briand, J. W. Daly y J. Wüst. “A Unified Framework for Cohesion Measurement in Object-Oriented Systems”, in Fourth International Software Metrics Symposium, Albuquerque, pp. 43-53, 1997.
dc.relation.referencesS. Blinman, A. Cockburn. “Program comprehension: Investigating the effects of naming style and documentation”. In 6th Australasian User Interface Conf, Newcastle. pp. 73–78, 2005.
dc.relation.referencesL. Castro, F. Baiao, G. Guizzardi. “A survey on Conceptual Modeling from a Linguistic Point of View”. Relatórios Técnicos do Departamento de Informática Aplicada da UNIRIO, Vol. 3, pp. 3-12. 2009.
dc.relation.referencesA. Ene, A. Ene. “An application of the Levenshtein algorithm in vocabulary learning”, in International conference on electronics, Computers and artificial intelligence, Targoviste , pp. 1-4, Junio, 2017.
dc.relation.referencesL. Etzkorn, H. Delugach. “Towards a semantic metrics suite for object-oriented design Proceedings”, in 34th International Conference on Technology of Object-Oriented Languages and Systems- TOOLS 34, Santa Barbara, pp. 71-80, 2000.
dc.relation.referencesS. Fahmi, H. J. Choi. "Software Reverse Engineering to Requirements”, in International Conference on Convergence Information Technology, Gyeongju, pp. 2199-2204, 2007.
dc.relation.referencesM. C. Gómez. “Definición de un método para el diseño de juegos orientados al desarrollo de habilidades gerenciales como estrategia de entrenamiento empresarial”, Tesis de Maestría, Maestría en Ingeniería Administrativa, Universidad Nacional, Colombia. 2010.
dc.relation.referencesR. Gutiérrez. “Análisis Semántico Latente: ¿Teoría psicológica del significado?”, Revista signos, Vol. 38, N. 59, pp. 303-323, 2005.
dc.relation.referencesG. Jorge y Botana. “El Análisis de la Semántica Latente y su aportación a los estudios de Usabilidad” Revista electrónica: No solo usabilidad: revista sobre personas, diseño y tecnología, Vol. 5, N. 5, 2006.
dc.relation.referencesB. Kitchenham, S. Charters. “Guidelines for performing Systematic Literature Reviews in Software Engineering”, Keele University and Durham University Joint Report , 2007-01.
dc.relation.referencesB. Kitchenham, R. Pretorius, D. Budgen, O. P. Brereton, M. Turner, M. Niazi, S. Linkman. “Systematic literature reviews in software engineering--a tertiary study,” Information and Software Technology, Vol. 52, N. 8, pp. 792-805. 2010.
dc.relation.referencesD. Marcilio, R. Bonifacio, E. Monteiro, E. D. Canedo, G. Pinto. “Are Static Analysis Violations Really Fixed? A Closer Look at Realistic Usage of SonarQube” IEEE/ACM 27th in International Conference on Program Comprehension, Montreal, pp. 209-219, 2019.
dc.relation.referencesG. Miller. “WordNet: a lexical database for English” Communications of the ACM, Vol. 38, pp. 39-41, 1995.
dc.relation.referencesO. Pastor, J. C. Molina. “Model-Driven Architecture in practice: A Software Production Environment Based on Conceptual Modeling” Springer, New York, 2007.
dc.relation.referencesL. H. Rosenberg, S. B. Sheppard. “Metrics in software process assessment, quality assurance and risk assessment”, in IEEE 2nd International Software Metrics Symposium, London, pp. 10-16, 1994.
dc.relation.referencesJ. J. Siegmund. “Program Comprehension: Past, Present, and Future”, in IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering, Suita, Vol. 5, pp. 13-20, 2016.
dc.relation.referencesK. Sun, Y. Ji, L. Rui, X. Qiu. “An improved method for measuring concept semantic similarity combining multiple metrics”, in 5th IEEE International Conference on Broadband Network & Multimedia Technology, Beijing, pp. 268-272, 2013.
dc.relation.referencesR. Tiarks. “What Programmers Really Do: An Observational Study”. Softwaretechnik-Trends, Vol. 31, pp. 36-37. 2011.
dc.relation.referencesR. Venegas. “Análisis Semántico Latente: una panorámica de su desarrollo”, Revista signos, Vol. 36, N. 53, pp. 121-138, 2003.
dc.relation.referencesA. Von Mayrhauser, M. Vans, A. Howe. “Program Understanding Behaviour during Enhancement of Large-scale Software”. Journal of Software Maintenance: Research and Practice, Vol. 9, pp. 299-327. 1997.
dc.relation.referencesY. Wang, C. Wang, X. Li, S. Yun, M. Song. “How are identifiers named in open source software? About popularity and consistency”. International Journal of Computer and Information Technology, Vol. 3, pp. 616-625. 2014.
dc.relation.referencesE. J. Weyuker. “Evaluating Software Complexity Measures,” IEEE Transactions on Software Engineering, Vol. 14, pp. 1357-1365. 1988.
dc.relation.referencesC. M. Zapata, A. Jaramillo, F. Arango. “Una propuesta para mejorar la completitud de requisitos utilizando un enfoque lingüístico”, Ingeniería & Desarrollo, Vol. 19, N. 19, pp. 1-16. 2006.
dc.relation.referencesC. M. Zapata, B. Manrique. “Transformación de lenguaje natural a controlado en la educción de requisitos: una síntesis conceptual basada en esquemas preconceptuales”. Revista Facultad de Ingeniería Universidad de Antioquia, Vol. 70, N. 70, pp. 132-145. 2014.
dc.relation.referencesC. M. Zapata. “Definición de un esquema preconceptual para la obtención automática de esquemas conceptuales de UML”, Tesis doctoral, Doctorado en ingeniería, Universidad Nacional, Colombia. 2007.
dc.rights.accessrightsinfo:eu-repo/semantics/openAccess
dc.subject.proposalConsistencia lingüística
dc.subject.proposalLinguistic consistency
dc.subject.proposalmetric
dc.subject.proposalmétrica
dc.subject.proposalsemantic distance
dc.subject.proposaldistancia semántica
dc.subject.proposalquality software
dc.subject.proposalcalidad de software
dc.subject.proposalcódigo fuente
dc.subject.proposalsource code
dc.type.coarhttp://purl.org/coar/resource_type/c_8042
dc.type.coarversionhttp://purl.org/coar/version/c_ab4af688f83e57aa
dc.type.contentText
dc.type.redcolhttp://purl.org/redcol/resource_type/WP
oaire.accessrightshttp://purl.org/coar/access_right/c_abf2


Archivos en el documento

Thumbnail
Thumbnail

Este documento aparece en la(s) siguiente(s) colección(ones)

Mostrar el registro sencillo del documento

Reconocimiento 4.0 InternacionalEsta obra está bajo licencia internacional Creative Commons Reconocimiento-NoComercial 4.0.Este documento ha sido depositado por parte de el(los) autor(es) bajo la siguiente constancia de depósito