link

January 21, Wednesday
14:00 – 16:00

Patterns for Implementing Generalization Sets
Graduate seminar
Lecturer : Guy Wiener
Affiliation : CS, BGU
Location : 201/37
Host : Graduate seminar
Generalization sets are a software analysis concept that describes specialization of behavior in a way less restrictive than inheritance in OOP languages. According to the UML 2.0 standard, a generalization set divides a type into disjoint sub-types. Each sub-type may override the behavior of the super-type. A type may have several generalization sets. The sets are non-disjoint. An instance of the super-type may be an instance of each sub-type in each set. For example, an instance of a Person can be both an instance of an Employed or Unemployed person, and of a Resident or a Foreigner person.

In this talk we present several possible designs for the concept of Generalization Sets. Each design is centered around a particular design pattern: Inheritance, State or Enumeration. We discuss the advantages and disadvantages of each approach, and show examples of combining instances of these patterns to implement a type that has more then one generalization set. Finally, we compare the different properties of the patterns.

This talk is based on a submission to ECOOP 2009 by Mayer Goldberg and Guy Wiener