Identifying Inheritance/Generalization

Although the words inheritance and generalization sound abstract and ``object-oriented'', you can explain it to your client fairly easily. To say that ``student generalizes CIS student'', it is the same as saying ``every CIS student is also a student''. It is natural that ``a CIS student can do everything a student can''. The advantage of having your client understand inheritance is that your client can help you identify such relationships among actors.

With use cases, it is a little more difficult to identify inheritance. You may need to perform the analysis without the help of your client. On the other hand, sometimes your client may say ``to process a store credit refund is a special case of a refund, with the exception of ...''. This is a good clue that ``process refund'' is the generalization of ``process store credit refund''.

Since your client is unlikely to be an programmer/analyst familiar with object-oriented programming or the UML, you need to look for key phrases other than ``generalization'', ``specialization'', ``subclass'' and etc. Here is a short list of phrases that suggest inheritance/generalization:

Copyright © 2005-05-16 by Tak Auyeung