Академический Документы
Профессиональный Документы
Культура Документы
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к расчетной работе
по курсу “Объектно-ориентированное программирование и проектирование”
на тему “ Объектно-ориентированный анализ и проектирование
программного обеспечения. Программное обеспечение банкомата”
Минск 2010
Содержание
Содержание....................................................................................................................................2
Введение.........................................................................................................................................3
1. Постановка задачи.....................................................................................................................4
1.1. Цель разработки..................................................................................................................4
1.2. Постановка задачи заказчиком..........................................................................................4
1.3. Глоссарий проекта..............................................................................................................4
1.4. Анализ и определение требований...................................................................................5
2. Проектирование программного продукта...............................................................................7
2.1. Описание модели вариантов использования...................................................................7
2.1.1. Диаграмма вариантов использования............................................................................7
2.2. Описание модели анализа системы..................................................................................7
2.2.1. Диаграммы деятельности................................................................................................7
2.2.2. Диаграммы последовательностей и кооперации..........................................................9
2.2.3. Диаграммы состояний...................................................................................................10
2.2.4. Диаграмма классов........................................................................................................11
2.3. Описание модели реализации..........................................................................................13
2.3.1. Диаграмма компонентов...............................................................................................13
3. Процесс генерации программного кода............................................................................14
Заключение...................................................................................................................................15
Список литературы......................................................................................................................16
Приложения..................................................................................................................................17
Приложение 1. Диаграмма вариантов использования.........................................................17
Приложение 2. Диаграмма деятельности для прецедента «Наполнение базы»................18
Приложение 3. Диаграмма деятельности для прецедента «Запрос к базе».......................19
Приложение 4. Диаграмма кооперации для прецедента «Наполнение базы»...................20
Приложение 5. Диаграмма кооперации для прецедента «Запрос к базе»..........................20
Приложение 6. Диаграмма последовательности для прецедента «Наполнение базы»....21
Приложение 7. Диаграмма последовательности для прецедента «Запрос к базе»...........22
Приложение 8. Диаграмма состояний системы....................................................................23
Приложение 9. Диаграмма классов........................................................................................23
Приложение 10. Диаграмма компонентов............................................................................24
2
Введение
4
1. Постановка задачи
Вариант 7.
Банкомат – это автомат для выдачи наличных денег по кредитным
пластиковым карточкам. В его состав входят следующие устройства:
дисплей, панель управления с кнопками, приемник кредитных карт,
хранилище денег и лоток для их выдачи, хранилище конфискованных
кредитных карт, принтер для печати справок, сервисная консоль. Банкомат
подключен к линии связи для обмена данных с банковским компьютером,
хранящим сведения о счетах клиентов.
Обслуживание клиента начинается с момента помещения пластиковой
карточки в банкомат. После распознавания типа пластиковой карточки,
банкомат выдает на дисплей приглашение ввести персональный код.
Персональный код представляет собой четырехзначное число. Затем
банкомат проверяет правильность введенного кода, сверяя с кодом,
хранящимся на карте. Если код указан неверно, пользователю
предоставляются еще две попытки для ввода правильного кода. В случае
повторных неудач карта перемещается в хранилище карт, и сеанс
обслуживания заканчивается. После ввода правильного кода банкомат
предлагает пользователю выбрать операцию. Клиент может либо снять
наличные со счета, либо узнать остаток на его счету.
При снятии наличных со счета банкомат предлагает указать сумму
(100, 200, 500, 1000, 5000, 10000 рублей). После выбора клиентом суммы
банкомат запрашивает, нужно ли печатать справку по операции. Затем
банкомат посылает запрос на снятие выбранной суммы центральному
компьютеру банка. В случае получения разрешения на операцию, банкомат
проверяет, имеется ли требуемая сумма в его хранилище денег. Если он
может выдать деньги, то на дисплей выводится сообщение "Выньте карту".
После удаления карточки из приемника, банкомат выдает указанную сумму в
лоток выдачи. Банкомат печатает справку по произведенной операции, если
она была затребована клиентом.
Если клиент хочет узнать остаток на счету, то банкомат посылает
запрос центральному компьютеру банка и выводит сумму на дисплей. По
требованию клиента печатается и выдается соответствующая справка.
5
Сервисная консоль, которая используется обслуживающим
персоналом, находится в специальном отделении банкомата, закрываемом на
замок. С консоли производится управление доступом к хранилищу денег для
загрузки банкнот, управление доступом к хранилищу конфискованных карт,
запуск самодиагностики банкомата, конфигурация сетевого соединения с
банковским компьютером.
6
5. Дата смерти
6. Биография
7
- список всех предков;
- список всех потомков;
- список всех родственников;
Так же должна быть возможность прослеживать цепочку
родственных связей между двумя персонами, то есть выходить с одной
заданной персоны на другую через общих родственников.
К предкам персоны относятся родители, их родители, родители их
родителей и т.д.
К потомкам персоны относятся дети, их дети, дети их детей и т.д.
К родственникам персоны относятся все персоны, прямо или косвенно
связанные с ней.
База данных хранится в файле на внешнем носителе. Должна быть
возможность сохранения текущей базы и загрузки ранее созданной.}
8
2. Проектирование программного продукта
9
2. Выполняется вариант использования «Аутентификация».
3. Клиент выбирает пункт «Снять деньги».
4. Банкомат запрашивает сумму.
5. Клиент вводит сумму.
6. Банкомат запрашивает банковскую систему о наличии нужной суммы на счёте.
Если денег на счёте недостаточно, выполняется альтернативный поток А2. При
возникновении ошибки выполняется поток ошибки Е1.
7. Банкомат вычитает сумму из счёта.
8. Банкомат выдаёт требуемую сумму.
9. Выполняется запрос на печать чека. При необходимости выполняется вариант
использования «Печать чека».
10. Банкомат возвращает клиенту карточку.
11. Вариант использования завершается.
Поток ошибок Е1
Предусловия.
1. Система должна находиться в состоянии «Ожидание действий от
пользователя».
Постусловия.
12
1. Система возвращается в состояние «Ожидание действий от
пользователя».
Предусловия.
1. Система должна находиться в состоянии «Ожидание действий от
пользователя».
Постусловия.
1. Система возвращается в состояние «Ожидание действий от
пользователя».
13
кооперации.
Для построения диаграмм взаимодействия были выбраны следующие
объекты:
1. Актер Пользователь.
2. Объект класса CGenealogicalTreeView – класса вида, содержащего
методы-обработчики пользовательских действий.
3. Объект класса CGenealogicalTreeDoc – класса документа.
15
2.2.4. Диаграмма классов
Атрибуты:
int id_persona; //код персоны
CString name; //имя
int gender; //пол
COleDateTime birthdate; //дата рождения
COleDateTime deathdate; //дата смерти
CString bio; //биография
Функции:
int GetId(); //возвращает идентификатор персоны
CString GetName(); //возвращает имя персоны
int GetGender(); //возвращает пол персоны
COleDateTime GetBirthdate(); //возвращает дату рождения персоны
COleDateTime GetDeathdate();//возвращает дату смерти персоны
CString GetBio(); //возвращает биографию персоны
CRelationship – класс, описывающий строку в таблице «Связь».
16
Атрибуты:
int id_relationship; //идентификатор связи
int pers1; //идентификатор первой персоны
int pers2; //идентификатор второй персоны
int variety; //идентификатор типа связи
CString variety_name; //название типа связи
Функции:
int GetId(); //возвращает идентификатор связи
int GetPers1(); //возвращает идентификатор первой персоны
int GetPers2(); //возвращает идентификатор второй персоны
int GetVarietyNumb(); //возвращает идентификатор типа связи
CString GetVariety(); //возвращает название типа связи
Атрибуты:
//таблица персон
CTypedPtrArray<CObArray,CPersona*> PersonaTable();
//таблица связей
CTypedPtrArray<CObArray,CRelationship*> RelationshipTable();
Функции:
void AddPerson(); //добавить персону в базу
void AddRelationship(); //добавить связь в базу
void ChangePerson(); //отредактировать персону
//проверить возможность создания связи между указанными
//персонами
bool CheckCorrectRelationship();
//проверить, есть ли связи между указанными персонами
bool CheckRelationshipExist();
void DeletePersona(); //удалить персону из базы
void DeleteRelationship(); //удалить связь из базы
void FindAllAncestors(); //рекурсивная функция поиска родителей
void FindAllDescendants(); //рекурсивная функция поиска детей
//рекурсивная функция поиска ближайших родственников
void FindAllRelatives();
void FindRelationship(); //рекурсивная функция поиска связей
17
void ShowAncestor(); //функция поиска предков
void ShowBrotherSister(); //функция поиска братьев и сестер
void ShowChild(); //функция поиска детей
void ShowDescendant(); //функция поиска потомков
vod ShowParent(); //функция поиска родителей
void ShowRelative(); //функция поиска родственников
//функция прослеживания связи между персонами
void TraceRelationship();
Атрибуты и функции класса CGenealogicalTreeView в проекте не
рассмотрены, т.к. это класс, обеспечивающий ввод-вывод данных
пользователем, который не несет реализации алгоритмов функционирования
системы. По этой же причине опущены прочие классы реальной программы
и нкоторые атрибуты и функции выше описанных классов.
18
3. Процесс генерации программного кода
19
Заключение
20
Список литературы
21
Приложения
банкомат
снить деньги
клиент
«include» банкомат
«include»
выполнить
операции
«include» пополнить счет предоставление
«include» услуг
«include»
«include»
просмотреть остаток
счета
22
23
Приложение 2. Диаграмма деятельности для прецедента «Наполнение
базы»
sd ми
клиент
ввод
считывает номера
запрос пин-кода
отправка пин-кода
ввод пин-кода
сравнение пин-кода
вывод результата
24
cd s
банкомат
корпус
n
1
ПО 1 состоит 1 табло
1
1
1
отображает
выполняет панель кнопок
n
n
1
информацию
операции
осуществляет
выбор
n
операций
25
26
Приложение 3. Диаграмма деятельности для прецедента «Запрос к
базе»
27
Приложение 4. Диаграмма кооперации для прецедента «Наполнение
базы»
28
Приложение 6. Диаграмма последовательности для прецедента
«Наполнение базы»
29
Приложение 7. Диаграмма последовательности для прецедента «Запрос
к базе»
30
Приложение 8. Диаграмма состояний системы
карта операции
«use»
банкомат
банк
«use»
новая операция
+ выполнение() : void
31
32
Приложение 10. Диаграмма компонентов.
33