Tesis profesional presentada por Jair Cazarin Villanueva [jair.cazarin@gmail.com]

Licenciatura en Ingeniería en Sistemas Computacionales. Departamento de Computación, Electrónica y Mecatrónica. Escuela de Ingeniería y Ciencias, Universidad de las Américas Puebla.

Jurado Calificador

Presidente: Dra. Genoveva Vargas-Solar
Vocal y Director: Dr. Mauricio Javier Osorio Galindo
Secretario: Dr. Fernando Antonio Aguilera Ramírez

Cholula, Puebla, México a 5 de diciembre de 2008.

Resumen

El diseño orientado a objetos se ha vuelto el estándar de facto en la industria de software tanto para el desarrollo de aplicaciones de negocios así como de software en general. Hoy en día, existen muchos programadores que utilizan los principios de la POO como la herencia, el polimorfismo y en la encapsulación en sus diseños.

Sin embargo, se ha demostrado a lo largo del tiempo que saber estos conceptos no te hacen un buen desarrollador orientado a objetos. Las características primordiales en un diseño deben ser sus capacidades de extensibilidad así como de reusabilidad.

Lamentablemente, muchos desarrolladores sin los conocimientos y la experiencia necesaria están creando aplicaciones pobremente diseñadas, e incluso desarrolladores expertos han tenido problemas con aplicaciones que después de un tiempo necesitan ser extensibles en puntos que no fueron tomados en cuenta en el diseño inicial.

La solución para este problema se conoce como refactorización. Básicamente, la refactorización se encarga de modificar el código fuente de tal forma que se mejore su diseño pero se mantenga su funcionalidad. Esta técnica solo se puede aplicar a nivel de código. Por tanto el objetivo de esta tesis, es el de crear y estudiar una herramienta para romper dependencias entre componentes mediante la creación de una aplicación que refactoriza ensamblados binarios automáticamente.

Índice de contenido

Portada (archivo pdf, 3 kb)

Índices (archivo pdf, 29 kb)

Capítulo 1. Introducción (archivo pdf, 64 kb)

  • 1.1 Objetivos
  • 1.2 Alcances y limitaciones
  • 1.3 Hardware and Software

Capítulo 2. Marco teórico y trabajo relacionado (archivo pdf, 350 kb)

  • 2.1 NET Framework
  • 2.2 Refactorización
  • 2.3 Patrón de diseño: Inyección de dependencias
  • 2.4 Generación de código

Capítulo 3. Análisis del problema (archivo pdf, 10 kb)

Capítulo 4. Diseño e implementación del Software (archivo pdf, 1 mb)

  • 4.1 La capa del framework (API)
  • 4.2 Implementación del API
  • 4.3 La capa de aplicación

Capítulo 5. Pruebas y Resultados (archivo pdf, 605 kb)

  • 5.1 Ejemplo de aplicación: Current Date
  • 5.2 Ejemplo de aplicación: Generación de bitácoras

Capítulo 6. Conclusiones (archivo pdf, 14 kb)

  • 6.1 Conclusión
  • 6.2 Trabajo a futuro

Referencias (archivo pdf, 22 kb)

Cazarin Villanueva, J. 2008. Herramienta para romper depedencias directas en ensamblados .NET mediante la refactorización de su código intermedio. Tesis Licenciatura. Ingeniería en Sistemas Computacionales. Departamento de Computación, Electrónica y Mecatrónica, Escuela de Ingeniería y Ciencias, Universidad de las Américas Puebla. Diciembre. Derechos Reservados © 2008.