Special Topics in Software Engineering:

Attribute-oriented Programming

339.014 1KV Porubän Block Begin: 11.5.2011

Attribute-Oriented Programming is program element marking technique which extends programs with meta-data with influence on system semantics. The course presents background of attribute-oriented programming and it is accompanied with examples, patterns and practices in both Java and .Net platforms, contrasting differences in their implementation.


Prof. Dr. Jaroslav Porubän
Technical University of Košice, Slovak Republic
Department of Computers and Informatics


  1. Attribute-oriented programming, the role of attributes in programming
  2. Java platform annotations, .Net platform attributes
  3. Runtime annotation reflection
  4. Processing annotated source code
  5. Domain specific annotations
  6. Metaprogramming with annotations, generating implementations from annotated source codes
  7. Tools support for attribute-oriented programming
  8. Defining constraints on attributes
  9. Examples: frameworks based on attributes


Date Time Room
We 11.5.2011 15:30 - 18:00 P 004
Th 12.5.2011 15:30 - 18:00 T 038/1
Fr 13.5.2011 13:45 - 17:00 T 038/1


Students will have to do a project and send it to the lecturer. The marks for this course will be based on the project.


course material: hornad.fei.tuke.sk/~poruban/atop


  1. Horstmann Cay S. - Cornell Gary: Core Java 2, Volume II: Advanced Features, 8th Edition, Prentice-Hall, 2008 (Chapter 11).
  2. JSR-000175 A Metadata Facility for the JavaTM Programming Language.
  3. Wada Hiroshi, Suzuki Junichi: Modeling Turnpike Frontend System: a Model-Driven Development Framework Leveraging UML Metamodeling and Attribute-Oriented Programming, In Proc. of the 8th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (MoDELS/UML 200), http://www.cs.umb.edu/~jxs/pub/models05.pdf
  4. Rouvoy Romain, Merle Philippe: Leveraging Component-Oriented Programming with Attribute-Oriented Programming, In Proc. of the 11th ECOOP International Workshop on Component-Oriented Programming, 2006, http://research.microsoft.com/~cszypers/events/WCOP2006/rouvoy-wcop-06.pdf
  5. Porubän Jaroslav, Forgác Michal, Sabo Miroslav, Behálek Marek: Annotation Based Parser Generator, Computer Science and Information Systems, Vol. 7, No. 2, 2010, pp. 291-307, ISSN 1820-0214, http://www.comsis.org/ComSIS/Vol7No2/RegularPapers/paper3.pdf
  6. Sabo Miroslav, Porubän Jaroslav: Preserving Design Patterns using Source Code Annotations, Journal of Computer Science and Control Systems, Vol. 2, No. 1, 2009, pp. 53-56, ISSN 1844-6043, http://electroinf.uoradea.ro/reviste%20CSCS/documente/JCSCS_2009/Articole_pdf_JCSCS_C_nr_1/JCSCS_2009_Nr_1_CS_Sabo_Preserving.pdf
  7. Ruska Štefan, Porubän Jaroslav: Defining Annotation Constraints in Attribute Oriented Programming, Acta Electrotechnica et Informatica, Vol. 10, No. 4, 2010, ISSN 1335-8243, http://www.aei.tuke.sk/pdf/2010-04/17_Poruban.pdf