Por favor, use este identificador para citar o enlazar este ítem: https://rinacional.tecnm.mx/jspui/handle/TecNM/4431
Título : Re-Factorización De Código Para Reducir El Acoplamiento Entre Clases Relacionadas Por Herencia De Implementación En Arquitecturas Orientadas A Objetos
Autor : Ortiz Gutierrez, Orlando%887345
Fecha de publicación : 2020-06-15
Editorial : Tecnológico Nacional de México
metadata.dc.publisher.tecnm: Centro Nacional de Investigación y Desarrollo Tecnológico
Descripción : La programación orientada a objetos es un paradigma de programación que utiliza objetos de datos para desarrollar sistemas de software. Se basa en técnicas como la herencia, abstracción y polimorfismo, con la finalidad de crear software de calidad. Además, se apoya en el uso de principios de diseño de software, como lo son los principios de “Abierto-Cerrado” y el de “Inversión de Dependencias”. En los sistemas de software se pueden encontrar Marcos de Aplicaciones Orientados a Objetos (MAOO), cada marco es un conjunto de clases que trabajan colaborativamente para ofrecer soluciones a problemas específicos y servicios dentro de un mismo dominio de aplicaciones. Al utilizar un MAOO se suelen reducir los tiempos de desarrollo de un sistema de software, ya que, si se tiene uno para cumplir con una tarea específica, dicha función se puede reusar para otro sistema sin tener que modificar el código original del MAOO, siempre que se respeten los principios de diseño de software. Si un MAOO no cumple con los principios de diseño se suelen producir unidades de programa con poca reusabilidad y con un alto costo en su mantenimiento. Uno de los problemas que se presenta al no respetar los principios de diseño de software es la herencia de implementación la cual viola dos principios de diseño importantes, el principio de “Abierto-Cerrado” y el principio de “Inversión de Dependencias”. La herencia de implementación es una relación donde una subclase hereda la implementación funcional de un método de su clase base (Pinto, 2015). Esta herencia de implementación hace que aumente el acoplamiento y disminuya la flexibilidad entre clases, ya que, las subclases dependen de las clases base para poder realizar alguna función, impidiendo satisfacer las demandas funcionales requeridas por nuevas aplicaciones desarrolladas a partir de éstas, por mecanismos de herencia, integración, ensamble y/o composición de componentes reusables. Para resolver este problema se propone un método de refactorización denominado “Reducción de Herencia de Implementación” el cual consiste en invertir las llamadas directas de código de cliente a código de librerías (call forward) por llamadas de código de librerías hacia código de cliente (call back). A pesar de que el acoplamiento por herencia de implementación es un problema existente, no se tiene una forma de medir el grado en que afecta a los MAOO. Por este motivo se propone un conjunto de cinco métricas de calidad, tres de ellas son para medir el factor de herencia de implementación, las cuales son: Factor de Herencia de Implementación (FHI), Factor de Herencia de Implementación por Jerarquía de Clases (FHIJ) y Factor Herencia de Implementación de una Arquitectura de Clases (FHIAC); las dos métricas restantes son para medir el factor de flexibilidad, estas son: Factor de Flexibilidad de Clase (FFC) y Factor Medio de Flexibilidad de Clases(FMFC). Se presentan dos casos de estudio en donde se realiza el cálculo del conjunto de métricas definido y se aplica el método de “Reducción de Herencia de Implementación”. Además, se muestran las ventajas que se obtienen al aplicar este método de refactorización a los marcos orientados a objetos.
metadata.dc.type: info:eu-repo/semantics/masterThesis
Aparece en las colecciones: Tesis de Maestría en Computación

Ficheros en este ítem:
Fichero Descripción Tamaño Formato  
MC_Orlando_Ortiz_Gutierrez_2020.pdfTesis2.86 MBAdobe PDFVisualizar/Abrir
MC_Orlando_Ortiz_Gutierrez_2020.pdf
  Restricted Access
Cesión de derechos147.9 kBAdobe PDFVisualizar/Abrir  Request a copy


Este ítem está protegido por copyright original



Este ítem está sujeto a una licencia Creative Commons Licencia Creative Commons Creative Commons