3.2 Identifying classes and attributes
The analysis process starts with the identification of a set of conceptual classes – the categories of things which are of significance in the system domain.
There is not usually a single correct choice of classes to model a given system domain. Different people or different software development teams starting with the same requirements will not necessarily come up with the same set of conceptual classes. But good choices – those that accurately model the system domain – are crucial to the software development process. Inappropriately chosen classes may add complexity to later phases of the development cycle, and could make the software difficult to maintain and/or extend.
When identifying appropriate classes, a good understanding of the system domain is important. The software developer often gains this through discussion with the client, assumed to be an expert in the area. Possible classes for inclusion may thus emerge during the course of the requirements specification process. You are in the rather artificial situation of having no client with whom to discuss the requirements. However, there are a number of other techniques that you can use to help identify appropriate classes from a requirements document.