Учебное пособие: Разработка корпоративной информационной системы на основе объектно-ориентированного подхода
Кассир вводит проводку
Проводка относится к счету
БМ взаимодействуют с центральным компьютером
Проводка начинается с БМ
Центральный компьютер взаимодействует с компьютером банка
Консорциум состоит из банков
Консорциум владеет центральным компьютером
Клиенты имеют карточки
Карточка обеспечивает доступ к счету
В банке служат кассиры
Уточним семантику оставшихся зависимостей следующим образом:
переименуем неверно названные зависимости, чтобы смысл их стал более понятен; так зависимость «Компьютер_банка поддерживает счета» удобнее заменить зависимостью «Банк держит счета».
имена ролей можно не использовать, например, зависимость «БМ взаимодействуют с центральным компьютером»;
неучтенные зависимости: «Проводка начинается с кассового_терминала», «Клиенты имеют счета», «Проводка регистрируется карточкой» следует добавить в модель.
После уточнения зависимостей можно составить начальную объектную диаграмму (рис. 1.2).
Рисунок 1.2 - Первая версия объектной диаграммы для банковской сети
1.2.4. Уточнение атрибутов
Карточка содержит код_банка и код_карточки; их можно считать атрибутами объектов класса карточка, но удобнее использовать в качестве квалификаторов, так как код_банка обеспечивает выбор банка, сокращая кратность зависимости консорциум - банк; для аналогичного использования кода_карточки необходимо добавить зависимость Банк_выпускает_ карточки, квалификатором которой будет код_карточки.
После внесения перечисленных изменений диаграмма примет вид, представленный на рис 1.3
1.2.5. Организация системы классов с использованием наследования
В рассматриваемом примере естественно определить суперклассы для объектов, определяющих различные терминалы: кассовый_терминал и БМ (банкомат), и для объектов, определяющих проводки: проводка_кассира и удаленная_проводка (с банкомата).
Внеся соответствующие изменения, получим объектную диаграмму, представленную на рисунке 1.4.
Рисунок 1.3 - Объектная диаграмма для банковской сети после уточнения атрибутов и добавления квалификаторов
Рисунок 1.4 - Объектная диаграмма для банковской с учетом наследования
1.2.6. Усовершенствование модели
Карточка выступает в двух сущностях: как регистрационная единица в банке (сберкнижка), обеспечивающая клиенту доступ к его счетам, и как структура данных, с которой работает БМ. Поэтому удобно расщепить класс карточка на два класса: регистрация_карточки и карточка; первый из этих классов обеспечивает клиенту доступ к его счетам в банке, а второй определяет структуру данных, с которой работает БМ.