Nombre de la Cátedra Dependencia Nombre del docente Semestre Duración
Programación Orientada a aspectos Ingenieria de Computacion Rainier Araujo VI 48HA

Introducción

En esta asignatura aporta al perfil del egresado los conceptos de la metodología orientada a aspectos que permiten la creación y optimización de aplicaciones basadas en clases. Se estudian aquí los mecanismos que permitan un desarrollo ágil a través de la reutilización de tipos de aspectos y control de errores.

Justificación

La importancia de la materia se centra en la solución de problemas en un lenguaje de programación orientado a aspectos, por lo que se recomienda desarrollar programas demostrativos en cada unidad de la aplicación de los conceptos vistos en clase, poniendo atención en los avances de los estudiantes.

Objetivos

• Utilizar técnicas de modelado para la solución de problemas.

• Aplicar la sintaxis de un lenguaje orientado a aspectos.

• Aplicar un lenguaje orientado a aspectos para la solución de problemas.

Competencias

  • Uso de técnicas de modelado para la solución de problemas.
  • Aplicación la sintaxis de un lenguaje orientado a aspectos.
  • Aplicar un lenguaje orientado a aspectos para la solución de problemas.

Estrategias

  • Simposio
  • Taller

Metodos

  • Estudio de caso
  • Proyectos
Unidad Tema Contenido Actividades Indicadores de Logro
1 Fundamentos de la POA. 1.1 Entorno de desarrollo.

1.2 Palabras reservadas.

1.3 Tipos de datos.

1.4 Variables.

1.5 Constantes.

1.6 Operadores.

1.7 Sentencias.

1.8 Conversión de tipos de datos (cast).

1.9 Estructuras de control.

• Seleccionar e instalar el compilador.

• Utilizar comandos en ambiente de consola para la compilación y ejecución de los programas.

• Realizar ejercicios utilizando las estructuras if, if-else y switch.

• Realizar ejercicios utilizando las estructuras for, while y do.

• Dominio del Compilador y entorno de desarrollo.
• Utilización de Estructuras de Control dentro del programa.
• Utilización de Estructuras de Repetición dentro del programa.
2 Clases y aspectos. 2.1 Definición de una clase.

2.2 Declaración de clases.

2.3 Miembros de una clase.

2.4 Especificadores de acceso.

2.5 Creación de aspectos.

2.6 Constructores y destructores.

2.7 Clases Predefinidas.

2.8 Definición, creación y reutilización de paquetes/librerías.

• Realizar ejercicios en donde se declaren arreglos de tipos de datos básicos.
• Realizar ejercicios en donde se declaren arreglos de clases.
• Realizar ejercicios de inicialización de un arreglo y la determinación del número de elementos del arreglo.
• Dominio de la terminología sobre clases, aspectos e instancias.
• Creación de clases con atributos diversos.
• Instanciacion de clases para producir aspectos.
3 Métodos. 3.1 Definición de un método.

3.2 Estructura de un método.

3.3 Valor de retorno.

3.4 Declaración de un método.

3.5 Ámbito y tiempo de vida de variables. 3.6 Argumentos y paso de parámetros.

3.7 Sobrecarga de métodos.

3.8 Encapsulamiento.

• Creación de métodos estáticos.
• Creación de métodos dentro de una clase.
• Llamadas cercanas y lejanas a métodos.
• Aplicación de principios de sobrecarga y polimorfismo.
• Desarrollar ejercicios en donde se definan los comportamientos de los aspectos.
4 Herencia 4.1 Concepto de herencia y polimorfismo. 4.2 Definición de una clase base.

4.3 Definición de una clase derivada.

4.4 Clases abstractas.

4.5 Definición de herencia múltiple.

4.6 Implementación de herencia múltiple. 4.7 Reutilización de la definición de paquetes / librerías.

• Desarrollar y analizar las semejanzas y diferencias entre herencia y polimorfismo para determinar las posibles relaciones entre ellos.

• Crear aplicaciones en donde se pueda demostrar la sobrecarga de métodos y razonar su utilidad.

• Aplicar la reutilización de código para el diseño de clases nuevas a partir de clases ya probadas.

• Estudiar y comprender el concepto de interfaces para implementar la herencia múltiple en el diseño de clases.

• Herencia de atributos y métodos.
• Creación de clases abstractas.
• Herencia obligada.

Evaluación

Unidad Tipo Forma Técnica Instrumento Ponderación
Fundamentos de la POA Formativa Etero Evaluación Prueba Examen Temático 15%
Clases y Aspectos Sumativa Etero Evaluación Pruebas de Ejecución Escala de Estimación 25%
Métodos Sumativa Etero Evaluación Pruebas de Ejecución Escala de Estimación 25%
Herencia Sumativa Etero Evaluación Pruebas de Ejecución Escala de Estimación 35%

Recursos

  • Compilador o interprete para POA.
  • Lenguaje de programación con soporte para POA.
  • Computador con Arquitectura x86-64.

Bibliografía

  • Joyanes Aguilar, Luis. Java 2: Manual de Programación. 4ª edición. Ed. Prentice Hall.
  • Joyanes Aguilar, Luis. Programación en Java 2 Algoritmos, Estructura de Datos y Programación Orientada a aspectos. Ed. Prentice Hall.
  • Sierra, Katherine. SCJP Sun Certified Programmer for Java 6. Ed. McGraw Hill.

2 thoughts on “Programación Basada en Competencias: Programación Orientada a Aspectos

Leave a comment