La ingeniería de software establece que la construcción de programas debe ser encarada de la misma forma que los ingenieros construyen otros sistemas complejos. Los sistemas de procesamiento transaccional no son la excepción. Para lidiar con algunos de los desafíos de programar estas soluciones, se introduce una propuesta de marco de trabajo, que propone la construcción de una base de conceptos comunes, obtenidos del análisis de soluciones preexistentes, y experiencias de los desarrolladores. Esta obtención de factores comunes se hace de forma iterativa, y se capitaliza en elementos del framework que aquí se introduce. En este trabajo de tesis se propone una formalización del framework en cuestión, por medio de la implementación de metodologías dirigidas por modelos (MDD). Específicamente se propone la construcción y adopción de un lenguaje de dominio específico (DSL) que contemple los elementos que conforman el marco de trabajo, permitiendo la generación automática de código. De esta forma, se pretende facilitar tanto la reusabilidad y manutención de los sistemas transaccionales que lo adopten, como así también la integración de la experiencia acumulada por los desarrolladores en el dominio.
La ingeniería de requerimientos es una tarea fundamental en el proceso de comprensión de cómo debe comportarse el sistema que está siendo construido. Los sistemas complejos incluyen cientos o miles de requerimientos sobre múltiples incumbencias, tanto funcionales como no funcionales. Para algunos sistemas, las fuentes de requerimientos son muchas, resultando en varios -en muchos casos extensos- documentos. En ciertos casos, los requerimientos coinciden de forma directa con las incumbencias de la aplicación, lo que les permite ser limpiamente encapsulados en diferentes módulos del sistema resultante. Sin embargo es común encontrar situaciones donde esta premisa no se cumple, tomando por ejemplo la obligación de registrar (logging) todas las acciones del sistema. La correspondiente incumbencia, el registro, no puede ser limpiamente encapsulada en un módulo, ya que afecta a muchas de las partes del sistema. Las incumbencias transversales atraviesan la estructura de requerimientos a lo largo de los diferentes documentos que componen la especificación del sistema. El seguimiento de este tipo de incumbencias a lo largo de todo el documento de requerimientos, viendo a qué requerimiento afecta, es una tarea compleja. AORE ataca la problemática de los requerimientos complejos cuando estos son difíciles o imposibles de encapsular en módulos separados. Conocida también esta práctica como Early Aspects, AORE modela una primera impresión de estas incumbencias transversales como aspectos (en sentido de Aspect Oriented Programming), identificando y caracterizando la influencia que cada uno tiene sobre otros requerimientos del sistema. Estos requerimientos que afectan a muchos otros se los conocen con el nombre de Cross Cutting Concerns (CCC). El trabajo desarrolla una herramienta para el seguimiento de las incumbencias transversales, para ayudar al Ingeniero de Requerimientos.