Учебное пособие: Разработка корпоративной информационной системы на основе объектно-ориентированного подхода
дальнейшее исследование и усовершенствование модели.
1.2.1. Определение объектов и классов
Анализируя постановку задачи, можно выделить возможные классы, сопоставив их существительным, упомянутым в ее предварительной формулировке; получится следующий список возможных имен классов (в алфавитном порядке):
БМ (банкомат) | Кассир | Программное обеспечение |
Банк | Кассовый терминал | Система |
Банковская_сеть | Квитанция | Проверка_безопасности |
Данные_проводки | Клиент | Служба_ведения_записей |
Данные_счета | Компьютер_банка | Счет |
Деньги | Консорциум | Цена |
Доступ | Пользователь | Центральный_компьютер |
Карточка | Проводка |
Исследуем этот список, исключая из него имена классов:
избыточные классы: т.к. клиент и пользователь означают одно и то же понятие; для банковской системы более естественно оставить класс клиент;
нерелевантные классы: таким классом является класс - цена (этот класс не имеет непосредственного отношения к работе банковской сети);
нечетко определенные классы: например, служба_ведения_записей и проверка_безопасности (эти службы входят в состав проводки), система (в нашем случае непонятно, что это такое), банковская_сеть (вся наша программная система будет обслуживать банковскую сеть);
атрибуты: данные проводки, данные счета, деньги (имеются в виду реальные деньги, выдаваемые клиенту кассиром или банкоматом, либо принимаемые кассиром), квитанция (выдается клиенту вместе с деньгами) более естественно иметь в качестве атрибутов;
реализационные конструкции: например, программное_обеспечение и доступ.
После исключения лишних имен возможных классов получаем следующий список: БМ (банкомат), Консорциум, Банк, Кассовый терминал, Центральный компьютер, Компьютер банка, Карточка, Счет, Проводка, Клиент, Кассир.
1.2.2. Подготовка словаря данных
Приведем словарь данных, содержащий определения классов, используемых в проекте.
БМ (банкомат) - терминал, который дает возможность клиенту осуществлять свою собственную проводку, используя для идентификации свою карточку. БМ (банкомат) взаимодействует с клиентом, чтобы получить необходимую информацию для проводки, посылает информацию для проводки центральному_компьютеру, чтобы он проверил ее и в дальнейшем использовал при выполнении проводки, и выдает деньги и квитанцию клиенту. БМ (банкомату) не требуется работать независимо от сети.
Банк - финансовая организация, которая содержит счета своих клиентов и выпускает карточки, санкционирующие доступ к счетам через сеть БМ (банкоматов).
Карточка - пластиковая карточка, врученная банком своему клиенту, которая санкционирует доступ к счетам через сеть БМ (банкоматов). Каждая карточка содержит код банка и номер карточки, закодированные в соответствии с национальными стандартами на банковские карточки. Код_банка однозначно идентифицирует банк внутри консорциума. Номер_карточки определяет счета, к которым карточка имеет доступ. Карточка не обязательно обеспечивает доступ ко всем счетам клиента. Каждой карточкой может владеть только один клиент, но у нее может существовать несколько копий, так что необходимо рассмотреть возможность одновременного использования одной и той же карточки с разных БМ (банкоматов).
Кассир - служащий банка, который имеет право осуществлять проводки с кассовых_ терминалов, а также принимать и выдавать деньги и чеки клиентам. Проводки, деньги и чеки, с которыми работает каждый кассир, должны протоколироваться и правильно учитываться.
Кассовый_терминал - терминал, с которого кассир осуществляет проводки для клиентов. Когда кассир принимает и выдает деньги и чеки, кассовый_терминал печатает квитанции. Кассовый_терминал взаимодействует с компьютером_банка, чтобы проверить и выполнить проводку.
Клиент - держатель одного или нескольких счетов в банке. Клиент может состоять из одного или нескольких лиц, или организаций. То же самое лицо, держащее счет и в другом банке рассматривается как другой клиент.
Компьютер_банка - компьютер, принадлежащий банку, который взаимодействует с сетью БМ (банкоматов) и собственными кассовыми_терминалами банка. Банк может иметь свою внутреннюю компьютерную сеть для обработки счетов, но здесь мы рассматриваем только тот компьютер_банка, который взаимодействует с сетью БМ.
Консорциум - объединение банков, которое обеспечивает работу сети БМ (банкоматов). Сеть передает в консорциум проводки банков.
Проводка - единичный интегрированный запрос на выполнение некоторой последовательности операций над счетами одного клиента. Было сделано предположение, что БМ (банкоматы) только выдают деньги, однако для них не следует исключать возможности печати чеков или приема денег и чеков.
Счет - единичный банковский счет, над которым выполняются проводки. Счета могут быть различных типов; клиент может иметь несколько счетов.
Центральный_компьютер - компьютер, принадлежащий консорциуму, который распределяет проводки и их результаты между БМ (банкоматами) и компьютерами_банков. Центральный_компьютер проверяет коды банков, но не выполняет проводок самостоятельно.
1.2.3. Определение зависимостей
Выделим явные и неявные глагольные обороты из предварительной постановки задачи, рассматривая их как имена возможных зависимостей.
Глагольные обороты (явные и неявные):
Банковская сеть включает кассиров и БМ
Консорциум распределяет результаты проводок по БМ