My team and I have designed a simple, affordable conceptual modelling language as part or a larger research project. This language is aimed to end users with little or no training in information technologies. It allows them to create class models using basic constructs such as classes, attributes, associations, and the like.

The language is working nicely, but we are considering whether we should add multivalued attributes to it. In the OO paradigm, attributes are usually considered to be single-valued, i.e. they can take a value on each instance of a class, or they can be null, but they can never take multiple simultaneous values. However, some situations in certain application domains call for multivalued attributes. For example, imagine a Garment class with a Colour attribute. That attribute may as well be multivalued, since garments can be multi-coloured: the shirt I'm wearing as type this is white and purple.

However, very few approaches to OO conceptual modelling use multivalued attributes, and none of them are mainstream as far as I know. I seem to recall reading that multivalued attributes are not a good way to model things, but I can't recall a sound reason, and I can't think of one, and I refuse to accept this at face value. In addition, most of the work I know of about multivalued attributes is at the database level rather than at the conceptual modelling level.

So, my question is: Do you think that multivalued attributes make sense in a conceptual modelling language? Can you point me to any books, papers or other sources that discuss this? Thank you.

没有正确的解决方案

许可以下: CC-BY-SA归因
scroll top