1.1 Conceptualising the system domain as classes
The first step in structuring the system is to model the system domain in terms of a collection of classes and the relationships between them. The system domain is the real-world context specific to the software system being developed. These classes are conceptual classes – not the software classes that will eventually form part of a working system. They are modelling elements, corresponding to real-world entities mentioned in the requirements document. The relationships between them represent connections that are important in the system domain. The classes and relationships should all be ones that the client who has commissioned the software can easily relate to. You will see that, although building this initial model takes expertise, the result ought to be meaningful to someone who is non-technical but who knows about the system domain. So, for instance, if the requirement was for a system to administer a chain of shops, we might have classes such as 'shop', 'manager' and so on. Relationships such as ‘works at’, and ‘manages’. This picture of the system domain as a collection of related conceptual classes will be referred to as the conceptual model.
Once you have drawn up the conceptual model, you will use it as the basis for a series of models of the structure of the system, which will lead eventually to a specification of the software that is to be implemented.