ECTS
5 credits
Component
Faculty of Science
Description
Students will be able to model and develop using advanced aspects of object-oriented programming, and will have acquired good programming practices. They will be able to draw UML diagrams expressing the dynamics of interactions in a system, and will consolidate their knowledge of structural modeling.
Objectives
This unit teaches object-based modeling and programming, using the UML and Java languages as a framework. The Liskov substitution principle is studied, and the notions of dynamic linking and static linking are explored in depth. Advanced aspects of object-oriented programming in a statically typed language are studied: modularity with the different kinds of nested classes, packages and modules; genericity and the relationships between specialization, genericity and sub-typing; contract programming with interfaces, assertions and exceptions; elements of meta-programming with the notion and practice of introspection and annotations; declarative programming through data streams. The course also covers UML dynamic diagrams and their relationship to code, component diagrams and deployment diagrams.