CC6101/CC71P Objetos y Aspectos
Objetivo General
El curso trata tópicos avanzados en lenguajes (mayoritariamente orientado a objetos) utilizados para obtener una mejor ingeniería de software. La primera parte trata de técnicas de modularizacion avanzados, enfocando mayoritariamente en aspectos, pero también tratando otras técnicas como traits y mixins. La segunda parte se ve lenguajes full orientado a objetos, reflexión y meta-programmación.
El solo prerequisito del curso es de haber aprobado Lenguajes 1
Programa Tentativo del Curso - 2013
Semana | Clase 1 | Clase 2 |
---|---|---|
1 (19 Ago) | Intro a los Aspectos | AspectJ |
2 (26 Ago) | AspectJ | |
3 (2 Sept) | Aspect Weavers | |
4 (9 Sept) | Tarea1 fin (profe en conferencia) | |
5 (16 Sept) | Vacaciones Fiestas Patrias | |
6 (23 Sept) | Tarea2 empiezo (profe en conferencia) | |
7 (30 Sept) | AspectMaps | Aspects & Design |
8 (7 Oct) | Traits, Mixins | |
9 (14 Oct) | Aspectual Source Code Analysis | |
10 (21 Oct) | Intro a Smalltalk | Smalltalk Meta-Arquitectura |
11 (28 Oct) | Smalltalk Meta-Arquitectura | |
12 (4 Nov) | Presentaciónes Artículos | |
13 (11 Nov) | ||
14 (18 Nov) | ||
15 (25 Nov) | ||
16 (2 Dec) | Continuaciones y Web | Self |
Tópicos Posibles de los Presentaciones de Artículos
- Lenguaje CaesarJ
- Lenguaje PHANtom
- Design Patterns with Aspects
- Domain-Specific Aspect Languages examples
- Domain-Specific Aspect Languages implementation
- Error handling and Aspects
- AO and Modular Reasoning
- Advanced Pointcut Languages
- Stateful Aspects
- Dependent Advice and Tracematches
- Aspects against Security
- Aspects for Security
- Compilation/Optimisation models of AOP
- Aspect Weaving and VM support
- Testing AOP with Mutation Testing
Evaluación
Asistencia a clases es obligatoria. Hay micro-controles en varias clases, típicamente consisten de una pregunta sobre los conceptos vistos en la clase anterior. El ultimo control 'grande' es una presentación de artículos. En la nota de controles también se considera participación en clase. Las tareas son incrementales, construyendo un software de tamaño bastante grande, usando aspectos. La ponderación de la nota final es 60% controles, 40% tareas.