A book called 'Applying uml and patterns by craig larm' emphasized the use of Description classes in software designing. For example, the book pointed out why putting attributes such as description, price etc in a separate class ProductDescription and associating it with Item class which only have a serialNumber attribute is better. How does it makes any difference if we list those attributes directly in Item class rather than making a separate class. The book gave some reasons which I dont get. The book gives this reason,
The Need for Specification or Description Conceptual Classes · Preceding problem illustrates the need for a concept of objects that are specifications or descriptions of other things. · To solve the Item problem, what is needed is a ProductSpecification (or ItemSpecification, ProductDescription, ...) conceptual class that records information about items.
A ProductSpecification does not represent an Item, it represents a description of information about items.
Note that even if all inventoried items are sold and their corresponding Item software instances are deleted, the ProductSpecifications still remain.
See the second point. How is it useful? If an item in the inventory is sold or deleted, the stock count will be updated from the database. I am attaching a complete screenshot of what is written exactly or see http://csis.pace.edu/~marchese/CS616/Lec5/se_l5a.htm ( search by Specification or Description Conceptual ).