2.3.1. Определение объектов и классов
В пункте 1.3 сформулирована задача и приведена схема сети банковского обслуживания (рисунок 1.3). Анализируя эту постановку задачи, можно выделить возможные классы, сопоставив их существительным, упомянутым в ее предварительной формулировке; получится следующий список возможных имен классов (в алфавитном порядке):
ATM (банкомат) | кассир | программное обеспечение |
банк | кассовый терминал | система |
банковская сеть | квитанция | проверка безопасности |
данные проводки | клиент | служба ведения записей |
данные счета | компьютер банка | счет |
деньги | консорциум | цена |
доступ | пользователь | центральный компьютер |
карточка | проводка |
Исследуем этот список, исключая из него имена классов в соответствии с рекомендациями п. 2.2.1:
- избыточные классы: ясно, что клиент и пользователь означают одно и то же понятие; для банковской системы более естественно оставить класс клиент;
- нерелевантные классы: таким классом является класс цена (он не имеет непосредственного отношения к работе банковской сети);
- нечетко определенные классы: такими классами являются служба_ведения_записей и проверка безопасности (эти службы входят в состав проводки), система (в нашем случае непонятно, что это такое), банковская_сеть (вся наша программная система будет обслуживать банковскую сеть);
- атрибуты: данные проводки, данные счета, деньги (имеются в виду реальные деньги, выдаваемые клиенту кассиром или банкоматом, либо принимаемые кассиром), квитанция (выдается клиенту вместе с деньгами) более естественно иметь в качестве атрибутов;
- реализационные конструкции выражают такие имена как программное_обеспечение и доступ; их тоже следует исключить из списка имен возможных классов.
После исключения всех лишних имен возможных классов получаем следующий список классов, составляющих проектируемую систему банковского обслуживания (эти классы представлены на рисунке 2.5):
ATM (банкомат) | кассовый терминал | проводка |
банк | клиент | счет |
карточка | компьютер банка | центральный компьютер |
кассир | консорциум |