Análisis práctico del desempeño de los patrones de diseño de software: Observer, Strategy y Command en una aplicación

Este proyecto se centra en evaluar la influencia de la implementación de patrones de diseño GoF, Observer, Strategy y Command, mediante el uso de métricas cuantitativas en aplicaciones Java. En el ámbito del desarrollo de software, la elección de patrones de diseño es crítica y puede impactar signif...

Full description

Autores:
Miranda Bernal, Evelin Dayana
Urrego Blanco, Javier Dario
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2023
Institución:
Institución Universitaria Politécnico Grancolombiano
Repositorio:
Alejandría Repositorio Institucional
Idioma:
spa
OAI Identifier:
oai:alejandria.poligran.edu.co:10823/7552
Acceso en línea:
http://hdl.handle.net/10823/7552
Palabra clave:
GoF (Gang of Four)
Métricas de desarrollo
Observabilidad
Patrones de diseño
Cadenas de bloques - ordenadores
Innovaciones tecnológicas
Patrones de diseño
Design patterns
Development metrics
GoF (Gang of Four)
Observability
Rights
License
Atribución-NoComercial-SinDerivadas 2.5 Colombia
id Poli2_e115f0b9195b45fcb361392df05b0a9b
oai_identifier_str oai:alejandria.poligran.edu.co:10823/7552
network_acronym_str Poli2
network_name_str Alejandría Repositorio Institucional
repository_id_str
dc.title.spa.fl_str_mv Análisis práctico del desempeño de los patrones de diseño de software: Observer, Strategy y Command en una aplicación
dc.title.translated.spa.fl_str_mv Practical performance analysis of software design patterns: Observer, Strategy and Command in an application
title Análisis práctico del desempeño de los patrones de diseño de software: Observer, Strategy y Command en una aplicación
spellingShingle Análisis práctico del desempeño de los patrones de diseño de software: Observer, Strategy y Command en una aplicación
GoF (Gang of Four)
Métricas de desarrollo
Observabilidad
Patrones de diseño
Cadenas de bloques - ordenadores
Innovaciones tecnológicas
Patrones de diseño
Design patterns
Development metrics
GoF (Gang of Four)
Observability
title_short Análisis práctico del desempeño de los patrones de diseño de software: Observer, Strategy y Command en una aplicación
title_full Análisis práctico del desempeño de los patrones de diseño de software: Observer, Strategy y Command en una aplicación
title_fullStr Análisis práctico del desempeño de los patrones de diseño de software: Observer, Strategy y Command en una aplicación
title_full_unstemmed Análisis práctico del desempeño de los patrones de diseño de software: Observer, Strategy y Command en una aplicación
title_sort Análisis práctico del desempeño de los patrones de diseño de software: Observer, Strategy y Command en una aplicación
dc.creator.fl_str_mv Miranda Bernal, Evelin Dayana
Urrego Blanco, Javier Dario
dc.contributor.advisor.none.fl_str_mv Soto Forero, Wilson Eduardo
dc.contributor.author.none.fl_str_mv Miranda Bernal, Evelin Dayana
Urrego Blanco, Javier Dario
dc.subject.proposal.spa.fl_str_mv GoF (Gang of Four)
Métricas de desarrollo
Observabilidad
Patrones de diseño
topic GoF (Gang of Four)
Métricas de desarrollo
Observabilidad
Patrones de diseño
Cadenas de bloques - ordenadores
Innovaciones tecnológicas
Patrones de diseño
Design patterns
Development metrics
GoF (Gang of Four)
Observability
dc.subject.lemb.spa.fl_str_mv Cadenas de bloques - ordenadores
Innovaciones tecnológicas
Patrones de diseño
dc.subject.keywords.spa.fl_str_mv Design patterns
Development metrics
GoF (Gang of Four)
Observability
description Este proyecto se centra en evaluar la influencia de la implementación de patrones de diseño GoF, Observer, Strategy y Command, mediante el uso de métricas cuantitativas en aplicaciones Java. En el ámbito del desarrollo de software, la elección de patrones de diseño es crítica y puede impactar significativamente el rendimiento y la calidad de las aplicaciones. La falta de evidencia empírica sólida sobre cómo afectan estos patrones en métricas específicas deja a los desarrolladores en terreno incierto al tomar decisiones de diseño. La investigación aborda esta brecha al seleccionar patrones representativos y aplicar métricas Uso de CPU, tiempo de uso de CPU y Tiempo de Ejecución. Se justifica la elección de estos patrones por su relevancia y ventajas específicas en la implementación de in prototipo de aplicación la biblioteca de software, buscando aportar evidencia empírica y práctica para respaldar las decisiones de diseño.
publishDate 2023
dc.date.issued.none.fl_str_mv 2023-12-05
dc.date.accessioned.none.fl_str_mv 2025-02-19T13:24:41Z
dc.date.available.none.fl_str_mv 2025-02-19T13:24:41Z
dc.type.spa.fl_str_mv bachelorThesis
dc.type.local.spa.fl_str_mv Tesis/Trabajo de grado - Monografía - Pregrado
dc.type.driver.spa.fl_str_mv info:eu-repo/semantics/bachelorThesis
dc.type.coar.spa.fl_str_mv http://purl.org/coar/resource_type/c_7a1f
dc.type.hasversion.none.fl_str_mv info:eu-repo/semantics/acceptedVersion
dc.type.redcol.none.fl_str_mv https://purl.org/redcol/resource_type/TP
dc.type.version.spa.fl_str_mv info:eu-repo/semantics/acceptedVersion
format http://purl.org/coar/resource_type/c_7a1f
status_str acceptedVersion
dc.identifier.uri.none.fl_str_mv http://hdl.handle.net/10823/7552
dc.identifier.instname.spa.fl_str_mv instname:Politécnico Grancolombiano
dc.identifier.reponame.spa.fl_str_mv reponame:Alejandría Repositorio Comunidad
dc.identifier.repourl.spa.fl_str_mv repourl:http://alejandria.poligran.edu.co
url http://hdl.handle.net/10823/7552
identifier_str_mv instname:Politécnico Grancolombiano
reponame:Alejandría Repositorio Comunidad
repourl:http://alejandria.poligran.edu.co
dc.language.iso.spa.fl_str_mv spa
language spa
dc.relation.references.spa.fl_str_mv Atsuto Kubo, H. W. (2017). A Metric for Measuring the Abstraction Level of Design Patterns. CrossMark.
Cisco. (2020). AppDynamics. Obtenido de https://www.appdynamics.com/topics/devops-metrics-and-kpis#~8-devops-resources
Cloud, G. (2023). Cloud Architecture Center. Obtenido de Medición de DevOps: supervisión y observabilidad: https://cloud.google.com/architecture/devops/devops-measurement-monitoring-and-observability?hl=es-419
Coplien, J. O. (2003). Software design patterns.
Dynatrace. (2023). Unified observability and security. Dynatrace LLC.
Fernandez, L. F. (2006). Arquitectura de software. En Software Guru (págs. 40-45).
Han Santhanam, S. &. (2022). Application of Design Patterns for Efficiency in Cloud Computing Environments. Annals of Emerging Technologies in Computing, 21-29.
JMeter. (2023). Apache JMeter . The Apache Software Foundation.
Lee Chan, W. &. (2O21). The influence of design patterns on the performance of web applications. Computer Standards & Interfaces, 75.
Marco de Desarrollo de la Junta de Andalucía. (2019). Obtenido de Conceptos sobre la escalabilidad: https://www.juntadeandalucia.es/servicios/madeja/contenido/recurso/220
Motiso, D. (2022). indeed. Obtenido de guia profesional: https://www.indeed.com/career-advice/career-development/metrics-for-software-quality
Oracle. (2022). currentTimeMillis. Java Platform Standard Edition 11 API Specification.
Oracle. (2023). Oracle, Java Documentation. Obtenido de Java VisualVM: https://docs.oracle.com/javase/8/docs/technotes/guides/visualvm/
Oscar Danilo Gavilánez Alvarez, N. L. (2022). Comparative Analysis of Software Design Patterns. Polo del Conocimiento, 2547-2562.
Regalado, Y. V. (2010). The software architecture as scientific discipline. Universidad de las Ciencias Informáticas, 1-4.
Salón, T. (2023). ATLASSIAN. Obtenido de Métricas de DevOps, Por qué, qué y cómo medir el éxito en DevOps: https://www.atlassian.com/devops/frameworks/devops-metrics
Sharma. (2021). Impact of Design Patterns on Power Consumption. IEEE 18th India Council International Conference (INDICON).
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.creativecommons.spa.fl_str_mv Atribución-NoComercial-SinDerivadas 2.5 Colombia
rights_invalid_str_mv Atribución-NoComercial-SinDerivadas 2.5 Colombia
http://purl.org/coar/access_right/c_abf2
dc.format.mimetype.spa.fl_str_mv application/pdf
dc.coverage.spatial.none.fl_str_mv Bogotá D.C.
dc.publisher.program.spa.fl_str_mv Ingeniería de Sistemas
dc.publisher.faculty.spa.fl_str_mv Facultad de ingeniería y Diseño e Innovación
institution Institución Universitaria Politécnico Grancolombiano
bitstream.url.fl_str_mv https://alejandria.poligran.edu.co/bitstream/10823/7552/1/TrabajodeGrado_EvelinMiranda_JavierUrrego.pdf
https://alejandria.poligran.edu.co/bitstream/10823/7552/2/license.txt
https://alejandria.poligran.edu.co/bitstream/10823/7552/3/TrabajodeGrado_EvelinMiranda_JavierUrrego.pdf.jpg
bitstream.checksum.fl_str_mv 55cef70051b44b33a475116901489e02
8a4605be74aa9ea9d79846c1fba20a33
e7a9028193790c2e709c5bf33eb41de4
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Comunidad Politecnico Grancolombiano
repository.mail.fl_str_mv dspace@poligran.edu.co
_version_ 1851058987026350080
spelling Soto Forero, Wilson EduardoMiranda Bernal, Evelin DayanaUrrego Blanco, Javier DarioBogotá D.C.2025-02-19T13:24:41Z2025-02-19T13:24:41Z2023-12-05http://hdl.handle.net/10823/7552instname:Politécnico Grancolombianoreponame:Alejandría Repositorio Comunidadrepourl:http://alejandria.poligran.edu.coEste proyecto se centra en evaluar la influencia de la implementación de patrones de diseño GoF, Observer, Strategy y Command, mediante el uso de métricas cuantitativas en aplicaciones Java. En el ámbito del desarrollo de software, la elección de patrones de diseño es crítica y puede impactar significativamente el rendimiento y la calidad de las aplicaciones. La falta de evidencia empírica sólida sobre cómo afectan estos patrones en métricas específicas deja a los desarrolladores en terreno incierto al tomar decisiones de diseño. La investigación aborda esta brecha al seleccionar patrones representativos y aplicar métricas Uso de CPU, tiempo de uso de CPU y Tiempo de Ejecución. Se justifica la elección de estos patrones por su relevancia y ventajas específicas en la implementación de in prototipo de aplicación la biblioteca de software, buscando aportar evidencia empírica y práctica para respaldar las decisiones de diseño.1. INTRODUCCIÓN... 7 2. ALCANCE DEL PROYECTO... 9 3. PLANTEAMIENTO DEL PROBLEMA DE INVESTIGACIÓN... 10 4. OBJETIVOS DE INVESTIGACIÓN... 12 4.1. Objetivo General... 12 4.2. Objetivos Específicos... 12 5. REVISIÓN LITERARIA... 13 5.1. Arquitectura de Software... 13 5.2. Patrones de Diseño GOF ... 15 5.3. Características... 16 5.4. Beneficios... 18 5.5. Tipos y Características... 20 5.5.1. Creacionales (Creational Patterns)... 20 5.5.2. Estructurales (Structural Patterns)... 24 5.5.3. Comportamiento (Behavioral Patterns) ... 28 5.6. ¿Cómo evaluar la implementación de estos patrones?... 34 5.7. Métricas cuantitativas que se podrían evaluar... 34 5.7.1. Tiempo de espera... 35 5.7.2. Rendimiento del Sistema... 36 5.7.3. Tiempo Medio de Recuperación (MTTR)... 36 5.7.4. Número de Líneas de Código... 36 5.7.5. Reutilización de Código ... 37 5.7.6. Escalabilidad ... 37 5.7.7. Usabilidad... 37 5.7.8. Latencia ... 38 5.7.9. Disponibilidad... 40 5.8. Herramientas para calcular métricas... 40 6. DISEÑO METODOLÓGICO... 43 6.1. Fase de Diseño e Investigación... 43 6.1.1. Diseño de Experimento... 44 6.1.2. Selección de Métricas... 44 6.1.3. Selección de herramientas para medir las métricas... 44 6.1.4. Selección de Patrones de Diseño y Diseño de Aplicación... 44 6.1.5. Fase de Implementación y Evaluación ... 44 6.2. Implementación... 51 6.2.1. Implementación de prototipo utilizando patrones de diseño... 51 6.2.2. Implementación de prototipo sin patrones de diseño... 51 6.2.3. Recopilación de Datos... 54 7. RESULTADOS... 69 8. CONCLUSIONES... 69 9. ÁREAS DE INVESTIGACIÓN FUTURA Y RECOMENDACIONES... 71 10. REFERENCIAS BIBLIOGRÁFICAS... 74application/pdfspaAnálisis práctico del desempeño de los patrones de diseño de software: Observer, Strategy y Command en una aplicaciónPractical performance analysis of software design patterns: Observer, Strategy and Command in an applicationbachelorThesisTesis/Trabajo de grado - Monografía - Pregradoinfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1finfo:eu-repo/semantics/acceptedVersionhttps://purl.org/redcol/resource_type/TPinfo:eu-repo/semantics/acceptedVersionGoF (Gang of Four)Métricas de desarrolloObservabilidadPatrones de diseñoCadenas de bloques - ordenadoresInnovaciones tecnológicasPatrones de diseñoDesign patternsDevelopment metricsGoF (Gang of Four)ObservabilityAtsuto Kubo, H. W. (2017). A Metric for Measuring the Abstraction Level of Design Patterns. CrossMark.Cisco. (2020). AppDynamics. Obtenido de https://www.appdynamics.com/topics/devops-metrics-and-kpis#~8-devops-resourcesCloud, G. (2023). Cloud Architecture Center. Obtenido de Medición de DevOps: supervisión y observabilidad: https://cloud.google.com/architecture/devops/devops-measurement-monitoring-and-observability?hl=es-419Coplien, J. O. (2003). Software design patterns.Dynatrace. (2023). Unified observability and security. Dynatrace LLC.Fernandez, L. F. (2006). Arquitectura de software. En Software Guru (págs. 40-45).Han Santhanam, S. &. (2022). Application of Design Patterns for Efficiency in Cloud Computing Environments. Annals of Emerging Technologies in Computing, 21-29.JMeter. (2023). Apache JMeter . The Apache Software Foundation.Lee Chan, W. &. (2O21). The influence of design patterns on the performance of web applications. Computer Standards & Interfaces, 75.Marco de Desarrollo de la Junta de Andalucía. (2019). Obtenido de Conceptos sobre la escalabilidad: https://www.juntadeandalucia.es/servicios/madeja/contenido/recurso/220Motiso, D. (2022). indeed. Obtenido de guia profesional: https://www.indeed.com/career-advice/career-development/metrics-for-software-qualityOracle. (2022). currentTimeMillis. Java Platform Standard Edition 11 API Specification.Oracle. (2023). Oracle, Java Documentation. Obtenido de Java VisualVM: https://docs.oracle.com/javase/8/docs/technotes/guides/visualvm/Oscar Danilo Gavilánez Alvarez, N. L. (2022). Comparative Analysis of Software Design Patterns. Polo del Conocimiento, 2547-2562.Regalado, Y. V. (2010). The software architecture as scientific discipline. Universidad de las Ciencias Informáticas, 1-4.Salón, T. (2023). ATLASSIAN. Obtenido de Métricas de DevOps, Por qué, qué y cómo medir el éxito en DevOps: https://www.atlassian.com/devops/frameworks/devops-metricsSharma. (2021). Impact of Design Patterns on Power Consumption. IEEE 18th India Council International Conference (INDICON).Ingeniería de SistemasFacultad de ingeniería y Diseño e InnovaciónAtribución-NoComercial-SinDerivadas 2.5 Colombiahttp://purl.org/coar/access_right/c_abf2ORIGINALTrabajodeGrado_EvelinMiranda_JavierUrrego.pdfTrabajodeGrado_EvelinMiranda_JavierUrrego.pdfapplication/pdf940642https://alejandria.poligran.edu.co/bitstream/10823/7552/1/TrabajodeGrado_EvelinMiranda_JavierUrrego.pdf55cef70051b44b33a475116901489e02MD51open accessLICENSElicense.txtlicense.txttext/plain; charset=utf-81748https://alejandria.poligran.edu.co/bitstream/10823/7552/2/license.txt8a4605be74aa9ea9d79846c1fba20a33MD52open accessTHUMBNAILTrabajodeGrado_EvelinMiranda_JavierUrrego.pdf.jpgTrabajodeGrado_EvelinMiranda_JavierUrrego.pdf.jpgIM Thumbnailimage/jpeg3915https://alejandria.poligran.edu.co/bitstream/10823/7552/3/TrabajodeGrado_EvelinMiranda_JavierUrrego.pdf.jpge7a9028193790c2e709c5bf33eb41de4MD53open access10823/7552oai:alejandria.poligran.edu.co:10823/75522025-02-20 03:00:34.414open accessRepositorio Comunidad Politecnico Grancolombianodspace@poligran.edu.coTk9URTogUExBQ0UgWU9VUiBPV04gTElDRU5TRSBIRVJFClRoaXMgc2FtcGxlIGxpY2Vuc2UgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seS4KCk5PTi1FWENMVVNJVkUgRElTVFJJQlVUSU9OIExJQ0VOU0UKCkJ5IHNpZ25pbmcgYW5kIHN1Ym1pdHRpbmcgdGhpcyBsaWNlbnNlLCB5b3UgKHRoZSBhdXRob3Iocykgb3IgY29weXJpZ2h0Cm93bmVyKSBncmFudHMgdG8gRFNwYWNlIFVuaXZlcnNpdHkgKERTVSkgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgdG8gcmVwcm9kdWNlLAp0cmFuc2xhdGUgKGFzIGRlZmluZWQgYmVsb3cpLCBhbmQvb3IgZGlzdHJpYnV0ZSB5b3VyIHN1Ym1pc3Npb24gKGluY2x1ZGluZwp0aGUgYWJzdHJhY3QpIHdvcmxkd2lkZSBpbiBwcmludCBhbmQgZWxlY3Ryb25pYyBmb3JtYXQgYW5kIGluIGFueSBtZWRpdW0sCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYXVkaW8gb3IgdmlkZW8uCgpZb3UgYWdyZWUgdGhhdCBEU1UgbWF5LCB3aXRob3V0IGNoYW5naW5nIHRoZSBjb250ZW50LCB0cmFuc2xhdGUgdGhlCnN1Ym1pc3Npb24gdG8gYW55IG1lZGl1bSBvciBmb3JtYXQgZm9yIHRoZSBwdXJwb3NlIG9mIHByZXNlcnZhdGlvbi4KCllvdSBhbHNvIGFncmVlIHRoYXQgRFNVIG1heSBrZWVwIG1vcmUgdGhhbiBvbmUgY29weSBvZiB0aGlzIHN1Ym1pc3Npb24gZm9yCnB1cnBvc2VzIG9mIHNlY3VyaXR5LCBiYWNrLXVwIGFuZCBwcmVzZXJ2YXRpb24uCgpZb3UgcmVwcmVzZW50IHRoYXQgdGhlIHN1Ym1pc3Npb24gaXMgeW91ciBvcmlnaW5hbCB3b3JrLCBhbmQgdGhhdCB5b3UgaGF2ZQp0aGUgcmlnaHQgdG8gZ3JhbnQgdGhlIHJpZ2h0cyBjb250YWluZWQgaW4gdGhpcyBsaWNlbnNlLiBZb3UgYWxzbyByZXByZXNlbnQKdGhhdCB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3QsIHRvIHRoZSBiZXN0IG9mIHlvdXIga25vd2xlZGdlLCBpbmZyaW5nZSB1cG9uCmFueW9uZSdzIGNvcHlyaWdodC4KCklmIHRoZSBzdWJtaXNzaW9uIGNvbnRhaW5zIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8gbm90IGhvbGQgY29weXJpZ2h0LAp5b3UgcmVwcmVzZW50IHRoYXQgeW91IGhhdmUgb2J0YWluZWQgdGhlIHVucmVzdHJpY3RlZCBwZXJtaXNzaW9uIG9mIHRoZQpjb3B5cmlnaHQgb3duZXIgdG8gZ3JhbnQgRFNVIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdApzdWNoIHRoaXJkLXBhcnR5IG93bmVkIG1hdGVyaWFsIGlzIGNsZWFybHkgaWRlbnRpZmllZCBhbmQgYWNrbm93bGVkZ2VkCndpdGhpbiB0aGUgdGV4dCBvciBjb250ZW50IG9mIHRoZSBzdWJtaXNzaW9uLgoKSUYgVEhFIFNVQk1JU1NJT04gSVMgQkFTRUQgVVBPTiBXT1JLIFRIQVQgSEFTIEJFRU4gU1BPTlNPUkVEIE9SIFNVUFBPUlRFRApCWSBBTiBBR0VOQ1kgT1IgT1JHQU5JWkFUSU9OIE9USEVSIFRIQU4gRFNVLCBZT1UgUkVQUkVTRU5UIFRIQVQgWU9VIEhBVkUKRlVMRklMTEVEIEFOWSBSSUdIVCBPRiBSRVZJRVcgT1IgT1RIRVIgT0JMSUdBVElPTlMgUkVRVUlSRUQgQlkgU1VDSApDT05UUkFDVCBPUiBBR1JFRU1FTlQuCgpEU1Ugd2lsbCBjbGVhcmx5IGlkZW50aWZ5IHlvdXIgbmFtZShzKSBhcyB0aGUgYXV0aG9yKHMpIG9yIG93bmVyKHMpIG9mIHRoZQpzdWJtaXNzaW9uLCBhbmQgd2lsbCBub3QgbWFrZSBhbnkgYWx0ZXJhdGlvbiwgb3RoZXIgdGhhbiBhcyBhbGxvd2VkIGJ5IHRoaXMKbGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgo=