Understanding refinement and specialization in the UML
Material type:
Item type | Home library | Collection | Call number | URL | Status | Date due | Barcode | |
---|---|---|---|---|---|---|---|---|
![]() |
Biblioteca de la Facultad de Informática | Biblioteca digital | A0125 (Browse shelf(Opens below)) | Link to resource | No corresponde |
Formato de archivo: PDF. -- Este documento es producción intelectual de la Facultad de Informática-UNLP (Colección BIPA / Biblioteca.) -- Disponible también en línea (Cons. 12/03/2009)
The old technique of abstraction and refinement makes it possible to understand complex systems by describing them in successive levels of detail. On the other hand the more modern technique of generalization and specialization (or Inheritance) facilitates the construction of systems by enabling reuse of specifications. Both techniques enable developers to specify a taxonomic relationship between a more general element and a more specific one. Abstraction is frequently used as a mere synonym for generalization -respectively refinement as a synonym for specialization. Confusion also stems for the occasional use of the same specification Notation for both concepts. However, these terms have different implications and the lack of distinction is the cause of much wrong model interpretations. The purpose of this article is to analyze both refinement and specialization relationship between UML model elements, in order to clarify the main differences (and similarities) between them. -- Keywords: modeling languages, UML, semantics, formalization, abstraction, refinement, generalization, specialization.
Proceeding of Workshop on Managing Specialization/Generalization Hierarchies: MASPEGHI 2003, ASE (Event of the Automated Software Engineering Conference), October 2003.