Show simple item record

dc.contributor.advisorHincapié Londoño, Jesús Andrés
dc.contributor.authorTorres Ruiz, Daniel Arafat
dc.coverage.spatialLat: 06 15 00 N  degrees minutes  Lat: 6.2500  decimal degreesLong: 075 36 00 W  degrees minutes  Long: -75.6000  decimal degrees
dc.date.accessioned2021-04-20T18:33:41Z
dc.date.available2021-04-20T18:33:41Z
dc.date.created2019-10-11
dc.identifier.otherCD-ROM 9057 2019
dc.identifier.urihttp://hdl.handle.net/11407/6256
dc.descriptionLa Deuda Técnica es un fenómeno habitual del proceso de construcción de software, la cual es reconocida como un conjunto de malas prácticas y decisiones incorrectas en la fase de construcción de software, aceptada generalmente como efecto colateral en proyectos de software donde puede existir presiones de cronograma y con entregas continuas de valor a corto plazo. Ciertos aspectos de este fenómeno son conocidos de forma general, lo que sigue sin conocerse en profundidad, es cómo la deuda técnica se manifiesta y afecta específicamente los procesos de software, y cómo las técnicas de desarrollo de software empleadas acomodan o mitigan la presencia de esta deuda (Holvitie et al., 2018). La deuda técnica ha ganado visibilidad en los últimos años debido al interés en los proyectos de software que usan marcos de desarrollo ágil, los cuales detallan la responsabilidad que tienen los equipos de desarrollo en producir código de calidad, y que en su afán de entregar software funcionando en el menor tiempo posible, renuncian a actividades relacionadas con la producción de código de calidad, como son, el uso de buenas prácticas de codificación, definiciones de diseños y arquitecturas incompletas, poca cobertura de pruebas y documentación, entre otros, que a largo plazo acumulan una gran cantidad de deuda técnica que se vuelve perjudicial para el éxito de los proyectos. Parte de este estudio es comprender los antecedentes, dimensiones, atributos y consecuencias de la deuda técnica, para así poder proponer un modelo de referencia para el tratamiento de la deuda técnica, y cómo puede éste ser adaptado como parte de un proceso de madurez similar a los existentes en desarrollo de software general. El entendimiento de las causas para lograr que las aplicaciones puedan ser sostenibles a largo plazo, será el principal enfoque para la selección de las principales técnicas para el tratamiento de la deuda técnica definidas en la literatura, las tecnologías y herramientas que serán útiles para registrar y hacer las mediciones de deuda técnica, especificar qué actividades y ejemplos claros de cómo deberían ser implementadas según el modelo por parte de los equipos de desarrollo, contribuyendo a reducir y gestionar la deuda técnica en las aplicaciones. El modelo propuesto debe proporcionar un enfoque útil para comprender y gestionar la deuda técnica con fines prácticos, que involucre futuras líneas de investigación.
dc.description.abstractTechnical Debt is a common phenomenon of the software construction process, the quality is recognized as a set of bad practices and incorrect decisions in the software construction phase, normally accepted as a side effect in software projects where there may be schedule difficulties and with continuous deliveries of short-term value. Certain aspects of this phenomenon are generally known, what remains unknown in depth, is how technical debt manifests and specifically affects software processes, and how the software development techniques used accommodate or mitigate the presence of this debt (Holvitie et al., 2018).Technical debt has gained visibility in recent years due to interest in software projects that use agile development frameworks, which detail the responsibility that development teams have in producing quality code, and that in their eagerness to deliver software functioning in the shortest possible time, they give up activities related to the production of quality code, such as the use of good coding practices, definitions of incomplete designs and architectures, little evidence and documentation coverage, among others, that over term accumulate a large amount of technical debt that becomes detrimental to the success of the projects. Part of this study is to understand the background, dimensions, attributes and consequences of technical debt, in order to propose a reference model for the treatment of technical debt, and how it can be adapted as part of a maturity process similar to those existing in general software development. Understanding the causes to ensure that applications can be sustainable in the long term will be the main approach for the selection of the main techniques for the treatment of technical debt defined in the literature, the technologies and tools that will be useful for recording and make the measurements of technical debt, specify what activities and clear examples of how they should be implemented according to the model by the development teams, contributing to reduce and manage the technical debt in the applications. The proposed model should provide a useful approach to understand and manage technical debt for practical purposes, which involves future lines of research.
dc.format.extentp. 1-98
dc.format.mediumElectrónico
dc.format.mimetypeapplication/pdf
dc.language.isospa
dc.rights.urihttp://creativecommons.org/licenses/by-nc/4.0
dc.subjectDeuda técnica
dc.subjectDesarrollo ágil
dc.subjectRefactorización
dc.subjectDiseño de software
dc.subjectCódigo limpio
dc.subjectCalidad de código
dc.titleModelo para el tratamiento de la deuda técnica orientado a la evolución de los componentes para que las aplicaciones sean sostenibles a largo plazo
dc.rights.accessrightsinfo:eurepo/semantics/openAccess
dc.publisher.programMaestría en Ingeniería de Software
dc.subject.lembDesarrollo de programas para computador - Informes técnicos
dc.subject.lembIngeniería de software
dc.subject.lembMantenimiento
dc.subject.lembMedición de software
dc.subject.lembProtección de programas para computador
dc.subject.keywordTechnical debt
dc.subject.keywordAgile development
dc.subject.keywordRefactoring
dc.subject.keywordSoftware design
dc.subject.keywordClean code
dc.subject.keywordCode quality
dc.relation.citationstartpage1
dc.relation.citationendpage98
dc.audienceComunidad Universidad de Medellín
dc.publisher.facultyFacultad de Ingenierías
dc.publisher.placeMedellín
dc.relation.referencesAlves, N. S. R., Mendes, T. S., De Mendonça, M. G., Spinola, R. O., Shull, F., & Seaman, C. (2016). Identification and management of technical debt: A systematic mapping study. Information and Software Technology, 70, 100–121. https://doi.org/10.1016/j.infsof.2015.10.008spa
dc.relation.referencesAlves, N. S. R., Ribeiro, L. F., Caires, V., Mendes, T. S., & Spínola, R. O. (2014). Towards an ontology of terms on technical debt. Proceedings - 2014 6th IEEE International Workshop on Managing Technical Debt, MTD 2014, 1–7. https://doi.org/10.1109/MTD.2014.9spa
dc.relation.referencesAlzaghoul, E., & Bahsoon, R. (2014). Evaluating technical debt in cloud-based architectures using real options. Proceedings of the Australian Software Engineering Conference, ASWEC, 1–10. https://doi.org/10.1109/ASWEC.2014.27spa
dc.relation.referencesAmpatzoglou, A., Michailidis, A., Sarikyriakidis, C., Ampatzoglou, A., Chatzigeorgiou, A., & Avgeriou, P. (2018). A framework for managing interest in technical debt: An industrial validation. Proceedings - International Conference on Software Engineering. https://doi.org/10.1145/3194164.3194175spa
dc.relation.referencesAmpatzoglou, Areti, Ampatzoglou, A., Chatzigeorgiou, A., & Avgeriou, P. (2015). The financial aspect of managing technical debt: A systematic literature review. Information and Software Technology, 64, 52–73. https://doi.org/10.1016/j.infsof.2015.04.001spa
dc.relation.referencesBehutiye, W. N., Rodríguez, P., Oivo, M., & Tosun, A. (2017). Analyzing the concept of technical debt in the context of agile software development: A systematic literature review. Information and Software Technology, 82, 139–158. https://doi.org/10.1016/j.infsof.2016.10.004spa
dc.relation.referencesCoq, T., & Rosen, J. P. (2011). The SQALE quality and analysis models for assessing the quality of Ada source code. Lecture Notes in Computer Science (Including Subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 6652 LNCS, 61–74. https://doi.org/10.1007/978-3-642-21338-0_5spa
dc.relation.referencesCurtis, B., Sappidi, J., & Szynkarski, A. (2012a). Estimating the principal of an application’s technical debt. IEEE Software, 29(6), 34–42. https://doi.org/10.1109/MS.2012.156spa
dc.relation.referencesCurtis, B., Sappidi, J., & Szynkarski, A. (2012b). presentatie - Estimating the Principal of Technical Debt. IEEE Software, 29(6), 34–42. https://doi.org/10.1109/MS.2012.156spa
dc.relation.referencesCurtis, B., Szynkarski, A., Worth, F., & York, N. (2012). Estimating the Size, Cost, and Types of Technical Debt, 812. https://doi.org/10.1109/MTD.2012.6226000spa
dc.relation.referencesdos Santos, P. S. M., Varella, A., Dantas, C. R., & Borges, D. B. (2013). Visualizing and managing technical debt in agile development: An experience report. Lecture Notes in Business Information Processing, 149, 121–134. https://doi.org/10.1007/978-3-642-38314-4_9spa
dc.relation.referencesEisenberg, R. J. (2012). A threshold based approach to technical debt. ACM SIGSOFT Software Engineering Notes, 37(2), 1. https://doi.org/10.1145/2108144.2108151spa
dc.relation.referencesFalessi, D., Shaw, M. A., Shull, F., Mullen, K., & Keymind, M. S. (2013). Practical considerations, challenges, and requirements of tool-support for managing technical debt. 2013 4th International Workshop on Managing Technical Debt, MTD 2013 - Proceedings, (Ml), 16–19. https://doi.org/10.1109/MTD.2013.6608673spa
dc.relation.referencesFayad, M. E. y Schmidt, D. C. (1997). Object-Oriented Application Frameworks. Communications of the ACM, 40(10):32–38.spa
dc.relation.referencesFontana, F. A., Ferme, V., & Spinelli, S. (2012). Investigating the impact of code smells debt on quality code evaluation. 2012 3rd International Workshop on Managing Technical Debt, MTD 2012 - Proceedings, 15–22. https://doi.org/10.1109/MTD.2012.6225993spa
dc.relation.referencesGreening, D. R. (2013). Release duration and Enterprise agility. Proceedings of the Annual Hawaii International Conference on System Sciences, 4835–4841. https://doi.org/10.1109/HICSS.2013.463spa
dc.relation.referencesGriffith, I. D. (2015). Design Pattern Decay – a Study of Design Pattern Grime and Its Impact on Quality and Technical Debt.spa
dc.relation.referencesGriffith, I., Reimanis, D., Izurieta, C., Codabux, Z., Deo, A., & Williams, B. (2014). The correspondence between software quality models and technical debt estimation approaches. Proceedings - 2014 6th IEEE International Workshop on Managing Technical Debt, MTD 2014, 19–26. https://doi.org/10.1109/MTD.2014.13spa
dc.relation.referencesGuo, Y., & Seaman, C. (2011). A portfolio approach to technical debt management. Proceeding of the 2nd Working on Managing Technical Debt - MTD ’11, 31. https://doi.org/10.1145/1985362.1985370spa
dc.relation.referencesGuo, Y., Seaman, C., & da Silva, F. Q. B. (2016). Costs and obstacles encountered in technical debt management – A case study. Journal of Systems and Software, 120, 156–169. https://doi.org/http://dx.doi.org/10.1016/j.jss.2016.07.008spa
dc.relation.referencesGuo, Y., Seaman, C., Gomes, R., Cavalcanti, A., Tonin, G., Da Silva, F. Q. B., … Siebra, C. (2011). Tracking technical debt — An exploratory case study. 2011 27th IEEE International Conference on Software Maintenance (ICSM), 528–531. https://doi.org/10.1109/ICSM.2011.6080824spa
dc.relation.referencesHamdan, S., & Alramouni, S. (2015). A Quality Framework for Software Continuous Integration. Procedia Manufacturing, 3(Ahfe 2015), 2019–2025. https://doi.org/10.1016/j.promfg.2015.07.249spa
dc.relation.referencesHolvitie, J., & Leppänen, V. (2013). DebtFlag: Technical debt management with a development environment integrated tool. 2013 4th International Workshop on Managing Technical Debt, MTD 2013 - Proceedings, 20–27. https://doi.org/10.1109/MTD.2013.6608674spa
dc.relation.referencesHolvitie, J., Licorish, S. A., Spínola, R. O., Hyrynsalmi, S., MacDonell, S. G., Mendes, T. S., … Leppänen, V. (2018). Technical debt and agile software development practices and processes: An industry practitioner survey. Information and Software Technology, 96, 141–160. https://doi.org/10.1016/j.infsof.2017.11.015spa
dc.relation.referencesIzurieta, C., Vetrò, A., Zazworka, N., Cai, Y., Seaman, C., & Shull, F. (2012). Organizing the technical debt landscape. 2012 3rd International Workshop on Managing Technical Debt, MTD 2012 - Proceedings, 23–26. https://doi.org/10.1109/MTD.2012.6225995spa
dc.relation.referencesKim, M., Zimmermann, T., & Nagappan, N. (2014). An empirical study of refactoring challenges and benefits at Microsoft. IEEE Transactions on Software Engineering, 40(7), 633–649. https://doi.org/10.1109/TSE.2014.2318734spa
dc.relation.referencesKosti, M. V., Ampatzoglou, A., Chatzigeorgiou, A., Pallas, G., Stamelos, I., & Angelis, L. (2017). Technical debt principal assessment through structural metrics. Proceedings - 43rd Euromicro Conference on Software Engineering and Advanced Applications, SEAA 2017, 1, 329–333. https://doi.org/10.1109/SEAA.2017.59spa
dc.relation.referencesKtata, O., & Lévesque, G. (2010). Designing and implementing a measurement program for Scrum teams. Proceedings of the Third Cspa
dc.relation.referencesConference on Computer Science and Software Engineering - C3S2E ’10, 101–107. https://doi.org/10.1145/1822327.1822341spa
dc.relation.referencesLi, Z., Avgeriou, P., & Liang, P. (2015). A systematic mapping study on technical debt and its management. Journal of Systems and Software, 101, 193–220. https://doi.org/10.1016/j.jss.2014.12.027spa
dc.relation.referencesMacCormack, A., & Sturtevant, D. J. (2016). Technical debt and system architecture: The impact of coupling on defect-related activity. Journal of Systems and Software, 120, 170–182. https://doi.org/10.1016/j.jss.2016.06.007spa
dc.relation.referencesMarinescu, R. (2012). Assessing technical debt by identifying design flaws in software systems. IBM Journal of Research and Development, 56(5), 9:1-9:13. https://doi.org/10.1147/JRD.2012.2204512spa
dc.relation.referencesMartini, A., Sikander, E., & Madlani, N. (2018). A semi-automated framework for the identification and estimation of Architectural Technical Debt: A comparative case-study on the modularization of a software component. Information and Software Technology, 93, 264–279. https://doi.org/10.1016/j.infsof.2017.08.005spa
dc.relation.referencesMelin, T. (2016). Implementation and evaluation of a continuous code inspection platform.spa
dc.relation.referencesMens, T., & Tourwé, T. (2004). A survey of software refactoring. IEEE Transactions on Software Engineering, 30(2), 126–139. https://doi.org/10.1109/TSE.2004.1265817spa
dc.relation.referencesMo, R., Garcia, J., Cai, Y., & Medvidovic, N. (2013). Mapping architectural decay instances to dependency models. 2013 4th International Workshop on Managing Technical Debt (MTD), 39–46. https://doi.org/10.1109/MTD.2013.6608677spa
dc.relation.referencesNord, R. L., Ozkaya, I., Kruchten, P., & Gonzalez-Rojas, M. (2012). In search of a metric for managing architectural technical debt. Proceedings of the 2012 Joint Working Conference on Software Architecture and 6th European Conference on Software Architecture, WICSA/ECSA 2012, 91–100. https://doi.org/10.1109/WICSA-ECSA.212.17spa
dc.relation.referencesRamasubbu, N., & Kemerer, C. F. (2014). Managing technical debt in enterprise software packages. IEEE Transactions on Software Engineering, 40(8), 758–772. https://doi.org/10.1109/TSE.2014.2327027spa
dc.relation.referencesRamasubbu, N., & Kemerer, C. F. (2017). Integrating Technical Debt Management and Software Quality Management Processes: A Normative Framework and Field Tests. IEEE Transactions on Software Engineering, 1–17. https://doi.org/10.1109/TSE.2017.2774832spa
dc.relation.referencesSchmid, K. (2013). On the limits of the technical debt metaphor some guidance on going beyond. 2013 4th International Workshop on Managing Technical Debt, MTD 2013 - Proceedings, 63–66. https://doi.org/10.1109/MTD.2013.6608681spa
dc.relation.referencesSeaman, C., Guo, Y., Zazworka, N., Shull, F., Izurieta, C., Cai, Y., & Vetrò, A. (2012). Using technical debt data in decision making: Potential decision approaches. 2012 3rd International Workshop on Managing Technical Debt, MTD 2012 - Proceedings, 45–48. https://doi.org/10.1109/MTD.2012.6225999spa
dc.relation.referencesSzyperski, C. (2000). Component versus Objects. ObjectiveView, 1(5):8–16.spa
dc.relation.referencesSzyperski, C. (1998). Component Software. Beyond Object-Oriented Programming. Addison-Wesleyspa
dc.relation.referencesTom, E., Aurum, A., & Vidgen, R. (2013). An exploration of technical debt. Journal of Systems and Software, 86(6), 1498–1516. https://doi.org/10.1016/j.jss.2012.12.052spa
dc.relation.referencesYan, M., Xia, X., Shihab, E., Lo, D., Yin, J., & Yang, X. (2018). Automating Change-level Self-admitted Technical Debt Determination. IEEE Transactions on Software Engineering, 5589(c), 1–18. https://doi.org/10.1109/TSE.2018.2831232spa
dc.relation.referencesYli-Huumo, J., Maglyas, A., & Smolander, K. (2016). How do software development teams manage technical debt? – An empirical study. Journal of Systems and Software, 120, 195–218. https://doi.org/10.1016/j.jss.2016.05.018spa
dc.relation.referencesZazworka, N., Vetro’, A., Izurieta, C., Wong, S., Cai, Y., Seaman, C., & Shull, F. (2014). Comparing four approaches for technical debt identification. Software Quality Journal, 22(3), 403–426. https://doi.org/10.1007/s11219-013-9200-8spa
dc.relation.referencesZhang, Y., Huang, G., Liu, X., Zhang, W., Mei, H., & Yang, S. (2012). Refactoring android Java code for on-demand computation offloading. ACM SIGPLAN Notices, 47(10), 233. https://doi.org/10.1145/2398857.2384634spa
dc.rights.creativecommonsAttribution-NonCommercial-ShareAlike 4.0 International
dc.type.versioninfo:eu-repo/semantics/publishedVersion
dc.type.versioninfo:eu-repo/semantics/acceptedVersion
dc.type.localTesis de Maestría
dc.type.driverinfo:eu-repo/semantics/masterThesis
dc.description.degreenameMagíster en Ingeniería de Software
dc.description.degreelevelMaestría
dc.publisher.grantorUniversidad de Medellín


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record

Attribution-NonCommercial-ShareAlike 4.0 International
Except where otherwise noted, this item's license is described as Attribution-NonCommercial-ShareAlike 4.0 International