Добавлен: 28.03.2023
Просмотров: 821
Скачиваний: 18
СОДЕРЖАНИЕ
2. Работа над проектом в среде Rational Rose
2.1 Разработка диаграммы вариантов использования
2.2 Анализ вариантов использования и разработка диаграммы классов
2.3 Разработка диаграммы состояний
2.4 Разработка диаграммы последовательности
2.5 Разработка кооперативной диаграммы
2.6 Разработка диаграммы развертывания
2.7 Разработка диаграмм состояний, деятельности, компонентов и размещения
Введение
UML (сокр. от англ. Unified Modeling Language – унифицированный язык моделирования) – язык графического описания для объектного моделирования в области разработки программного обеспечения. UML является языком широкого профиля, это открытый стандарт, использующий графические обозначения для создания абстрактной модели системы, называемой UML моделью. UML был создан для определения, визуализации, проектирования и документирования в основном программных систем. UML не является языком программирования, но в средствах выполнения UML–моделей как интерпретируемого кода возможна кодогенерация.
UML применяется для моделирования программного обеспечения, также используют для моделирования бизнес–процессов, системного проектирования и отображения организационных структур.
UML позволяет также разработчикам программного обеспечения достигнуть соглашения в графических обозначениях для представления общих понятий (таких как класс, компонент, обобщение (generalization), объединение (aggregation) и поведение) и больше сконцентрироваться на проектировании и архитектуре.
Для создания программного обеспечения для управления работой банкомата необходимо изучить предметную область, то есть четко представить работу считывания данных с пластиковой карты и идентификации данных с существующей базой данных.
Заказчики часто сами с трудом представляют работу будущей системы и не могут ответить на вопросы: какие функции необходимо автоматизировать, какие алгоритмы будут задействованы.
Задача проектировщика системы заключается в том, чтобы получить от заказчика всю необходимую информацию ещё на этапе проектирования, до того, в создание кода вложены значительные ресурсы.
1 Анализ предметной области
Банкомат или ATM (Automatic Teller Machine) – это электронно-механическое устройство, предназначенное для выдачи и приема денежных средств, имеющее постоянную связь с процессинговым центром банка и выполняющее все финансовые операции с карточным счетом клиента в режиме online.
Любой банкомат состоит из двух частей: верхней (инженерной) и нижней (сейфовой). В инженерной части находится компьютер с установленной на него операционной системой и прикладным программным обеспечением, которое управляет работой банкомата. В этой же части располагается картридер (устройство для считывания информации с карты), блок управления специальной электроникой, чековый принтер, журнальный принтер, монитор и функциональная клавиатура. В верхней части также размещают оборудование связи (модемы, роутеры), чтобы иметь к нему доступ в случае сбоев, не прибегая к вскрытию сейфа.
Сейфовая часть банкомата состоит непосредственно из самого сейфа, кодового замка (они бывают механические и электронные), диспенсора (устройства выдачи денег), находящегося внутри сейфа. Диспенсоры различают в зависимости от принципа работы с купюрой, механизма выдачи и количества кассет. В банкоматах фирмы NCR для извлечения купюры из кассеты используется специальные вакуумные присоски, в то время как в банкоматах Wincor Nixdorf и Diebold для этой цели служат резиновые ролики со специальным рисунком протектора. Наиболее распространены диспенсоры с четырьмя кассетами, однако существуют и другие конфигурации с количеством кассет от двух до шести. В кассету помещается до трех тысяч купюр, причем кассета может быть настроена под любую купюру, благодаря наличию в ней специальных направляющих, позволяющих регулировать их высоту и ширину. Информация о номинале и валюте банкноты хранится в специальной флэш-карте на самой кассете и заносится туда при первом использовании кассеты в банкомате.
Рассмотрим механизм выдачи денег. После того, как клиент вставил карту, ввел пин-код и выбрал нужную операцию, идет запрос в процессинговый центр банка, выпустившего карту. Проверяется состояние карточного счета, и, если он не заблокирован и там есть требуемая сумма, банкомату дается команда на выдачу денег. Далее банкомат в соответствии с алгоритмом выдачи набирает необходимое количество купюр в стекере (накопительном устройстве), после чего вся сумма выдается клиенту. Следует отметить, что на пути купюры от кассеты к клиенту находится большое количество датчиков, отслеживающих перемещение купюры. Основным «фильтром» является датчик Double Detect, который проверяет следующие параметры: перекос, наличие слипшихся купюр, загнутые края, толщину. Если купюра не проходит отбор, она попадает в специальную диверт-кассету, которая является хранилищем отбракованных купюр. В случае, если купюра застряла в транспортном пути, либо какое-либо устройство, участвующие в выдаче денег, неисправно, банкомат прекращает работу и выдает соответствующее сообщение об ошибке.
Нередки случаи, когда клиент забывает, либо не успевает взять деньги. В этом случае банкомат после определенного промежутка времени «забирает» деньги и перемещает их в диверт-кассету в специальный отсек для забытых купюр. Такая же мера защиты предусмотрена и для карт – банкомат помещает забытые карты в специальный контейнер.
2. Работа над проектом в среде Rational Rose
Исходным шагом разработки нового проекта является создание отдельных моделей или представлений в контексте построения канонических диаграмм.
Общий процесс работы над проектом заключается в добавлении на диаграммы соответствующих графических элементов, установлении отношений между этими элементами, их спецификации и документировании. После проверки правильности модели и согласованности спецификаций ее элементов можно сгенерировать текст программного кода на одном из выбранных языков программирования.
2.1 Разработка диаграммы вариантов использования
Диаграмма вариантов использования является высокоуровневым представлением модели, поэтому она не должна содержать слишком много вариантов использования и актеров. В последующем построенная диаграмма может быть изменена добавлением новых элементов, таких как варианты использования и актеров, или их удалением.
Действующие лица:
Клиент банка – вставляет карту в банкомат.
Система идентификации – проверяет наличие данных о карте.
В среде Rational Rose диаграммы вариантов использования создаются в представлении вариантов использования. Главная диаграмма (Main) предлагается по умолчанию. Для моделирования системы можно затем разработать необходимое количество дополнительных диаграмм.
Построенная диаграмма вариантов использования представлена на рисунке 1.
Рисунок 1. Разработка диаграммы варианта использования «Наличие карты в банкомате» в среде Rational Rose
Вариант использования «Снять наличные» позволяет клиенту снять деньги со своего счета.
Основной поток:
- Вариант начинается, когда клиент вставляет свою карточку в приемник кредитных карт;
- Банкомат выдает на дисплей приглашение ввести персональный код;
- Клиент вводит код;
- Банкомат проверяет введенный код. Если код введен неверно, клиенту предоставляется еще 2 попытки. В случае повторных неудач выполняется альтернативный поток событий А1;
- Банкомат предлагает пользователю выбрать операцию:
- Узнать остаток по счету,
- Снять наличные.
- Клиент выбирает «Снять наличные»;
- Банкомат предлагает указать сумму;
- Клиент вводит требуемую сумму;
- Банкомат запрашивает подтверждение на печать справки;
- Клиент подтверждает;
- Банкомат посылает запрос на снятие центральному компьютеру банка и проверяет, имеется ли нужная сумма в хранилище денег. Если денег недостаточно, выполняется альтернативный поток А2;
- Банкомат выводит на дисплей сообщение «Выньте карту»;
- После удаления карточки из приемника банкомат выдает указанную сумму в лоток для выдачи денег;
- Банкомат печатает справку, если она затребована клиентом;
- Вариант завершается.
Альтернативный поток А1. Трехкратный неправильный ввод PIN кода:
- Банкомат информирует клиента, что карта будет перемещена в хранилище карт;
- Сеанс обслуживания заканчивается;
- Вариант использования завершается;
Альтернативный поток А2. Недостаточно денег в банкомате:
- Банкомат информирует клиента, что денег в хранилище недостаточно;
- Банкомат возвращает клиенту карту;
- Вариант использования завершается.
Вариант использования «Узнать остаток по счету» позволяет клиенту узнать баланс своего банковского счета
Основной поток:
- Вариант начинается, когда клиент вставляет свою карточку в приемник кредитных карт;
- Банкомат выдает на дисплей приглашение ввести персональный код;
- Клиент вводит код;
- Банкомат проверяет введенный код. Если код введен неверно, клиенту предоставляется еще 2 попытки. В случае повторных неудач выполняется альтернативный поток событий А1;
- Банкомат предлагает пользователю выбрать операцию:
- Узнать остаток по счету,
- Снять наличные.
- Клиент выбирает «Узнать остаток по счету»;
- Банкомат запрашивает подтверждение на печать справки;
- Клиент подтверждает;
- Банкомат посылает запрос на снятие центральному компьютеру банка;
- Банкомат выводит на дисплей остаток;
- Банкомат выводит на дисплей сообщение «Выньте карту»;
- После удаления карточки из приемника банкомат печатает справку, если она затребована клиентом;
- Вариант завершается.
Альтернативный поток А1. Трехкратный неправильный ввод PIN кода.
- Банкомат информирует клиента, что карта будет перемещена в хранилище карт;
- Сеанс обслуживания заканчивается;
- Вариант использования завершается.
2.2 Анализ вариантов использования и разработка диаграммы классов
Идентификация классов, участвующих в реализации потоков событий варианта использования. В потоках событий варианта использования выявляются классы трех типов:
- граничные классы (Boundary) - служат посредниками при взаимодействии внешних объектов с системой. Как правило, для каждой пары «действующее лицо - вариант использования» определяется один граничный класс. Типы граничных классов: пользовательский интерфейс (обмен информацией с пользователем, без деталей интерфейса - кнопок, списков, окон), системный интерфейс и аппаратный интерфейс (используемые протоколы, без деталей их реализации);
- классы-сущности (Entity) - представляют собой ключевые абстракции (понятия) разрабатываемой системы. Источники выявления классов-сущностей: ключевые абстракции, созданные в процессе архитектурного анализа, глоссарий, описание потоков событий вариантов использования;
- управляющие классы (Control) - обеспечивают координацию поведения объектов в системе. Могут отсутствовать в некоторых вариантах использования, ограничивающихся простыми манипуляциями с хранимыми данными. Как правило, для каждого варианта использования определяется один управляющий класс. Примеры управляющих классов: менеджер транзакций, координатор ресурсов, обработчик ошибок.
Пример набора классов, участвующих в реализации варианта использования «Наличие карты в банкомате», приведен на рисунке 2.
Диаграмма классов является основным логическим представлением модели и содержит самую подробную информацию о внутреннем устройстве объектно-ориентированной программной системы. Активизировать диаграмму классов в окне диаграммы можно также несколькими способами:
- эта диаграмма появляется по умолчанию в окне диаграммы после создания нового проекта;
- щелкнуть на кнопке с изображением диаграммы классов на стандартной панели инструментов;
- раскрыть логическое представление в браузере (Logical View) и дважды щелкнуть на пиктограмме Main (Главная);
- через пункт меню Browse->Class Diagram (Браузер->Диаграмма классов).
В данном примере показаны варианты использования устройства Считывания данных с пластиковой карты: датчик является актером, а процедура считывания и выдача результатов по запросу – вариантами использования данного актера.
Рисунок 2. Пример графического изображения диаграммы классов в унифицированной нотации
Клиент
Объекты класса Клиент создаются для каждого клиента, который вставляет карточку в банкомат
Поля класса Клиент:
- Номер карты;
- PIN код – PIN код, который вводит клиент;
- Печать – клиент подтверждает печать справки;
- Операция – выбранная клиентом операция.
Банкомат
Поля класса Банкомат:
- Количество денег в хранилище;
- Карта вставлена – логическая переменная.
Методы класса Банкомат:
- Проверить PIN код – сверяет PIN код клиента с PIN кодом счета, в случае несовпадения предлагает клиенту ввести PIN код повторно;
- Поместить карту в хранилище – метод срабатывает при трехкратном неправильном вводе PIN кода;
- Выдать деньги – аргументом принимает сумму, введенную клиентом, выдает нужную сумму в случае достаточного количества денег в хранилище;
- Напечатать справку – принимает три аргумента: запрос на печать справки, операцию, выбранную клиентом и баланс;
- Выдать карту – завершает сеанс обслуживания.
Счет
Объекты класса Счет создаются для каждой новой карты, вставленной в банкомат
Поля класса Счет:
- Номер счета,
- Баланс,
- PIN код счета.
Методы класса Счет:
- Уменьшить баланс – уменьшает остаток по счету на сумму, введенную клиентом; аргументом принимает сумму
Дисплей