Название: Проектирование программного обеспечения банкомата
Вид работы: контрольная работа
Рубрика: Информатика и программирование
Размер файла: 20.14 Kb
Скачать файл: referat.me-140106.docx
Краткое описание работы: Анализ теоретических аспектов функциональной деятельности современного банкомата и его сценариев. Разработка программного обеспечения работы банкомата, включающее спецификацию вариантов использования "Аутентификация", "Запрос баланса" и "Снять деньги".
Проектирование программного обеспечения банкомата
Федеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образования Пермский государственный технический университет
Работа на тему:
«Проектирование программного обеспечения банкомата»
2010
Введение
Перед проектированием системы управления банкоматом, важную роль сыграло обдумывание всех сценариев его использования. В современной жизни, банкоматы все больше, и больше преобразуются в функциональном смысле. Сейчас доступны множество сервисов: платеж за коммунальные услуги, пополнение мобильного счета, перевод средств на другой счет и многое другое, но я остановился на 2-х основных функциях банкомата – снятие наличности и запрос баланса. Так же невозможна работа системы без аутентификации клиента, т.к. этаких пользователей большое множество. Так и получилось, что система делится на три основных блока.
Спецификация варианта использования «Аутентификация»
Основное действующее лицо: Клиент.
Краткое описание: Перед выполнением любого действия клиент должен быть аутентифицирован.
Основной сценарий:
Предусловия: Запущен сценарий «Снять деньги» или сценарий «Показать баланс».
1. Система запрашивает пароль.
2. Клиент вводит пароль.
3. Если пароль верен, то происходит возврат в запущенный ранее сценарий.
4. Если пароль не верен, то
4.1Если количество вводов неверного пароля меньше 4, то
4.1.1Выдать предупреждение о неправильном пароле.
4.1.2Вернуться к началу сценария.
4.2Иначе:
4.2.1Выдать сообщение о блокировке карты.
4.2.2Заблокировать карту.
Постусловия: Нет.
Спецификация варианта использования «Снять деньги»
Основное действующее лицо: Клиент.
Краткое описание: Клиент запрашивает некоторую сумму денег. Если на его счету есть необходимая сумма, то система выдает ее.
Основной сценарий:
Предусловия: Клиент вставил карточку в банкомат и выбрал действие «Снять деньги».
1. Переход к подчиненному сценарию «Аутентификация».
2. Если аутентификация прошла успешно, то
2.1Система запрашивает требуемую сумму.
2.2Клиент вводит сумму.
2.3Если эта сумма в наличие на счете, то
2.3.1Сумма списывается со счета.
2.3.1Выдаются деньги.
2.4Иначе, выдается сообщение о невозможности операции.
Постусловия: Клиент переходит к выбору действия.
Спецификация варианта использования «Показать баланс»
Основное действующее лицо: Клиент.
Краткое описание: Клиент запрашивает баланс своего счета.
Основной сценарий:
Предусловия: Клиент вставил карточку в банкомат и выбрал действие «Показать баланс».
1. Переход к подчиненному сценарию «Аутентификация».
2. Если аутентификация прошла успешно, то система показывает баланс счета клиента.
Постусловия: Клиент переходит к выбору действия.
Текст программы
TAccount = class //класс Счет
private
Code: integer; //код счета
Sum: real; //количество денег на счете
public
function WithdrawMoney(Summ: real): real; //снятьденьги
function GetBalance(): real; //получитьбаланссчета
end;
TKlient = class //классКлиент
private
Code: integer; //кодклиента
Password: integer; //парольклиента
Acct: TAccount; //счетклиента
public
function GetCode():integer; //получитькодклиента
function GetPassword(): real; //получить пароль клиента
function GetAccount(): TAccount; //получитьсчетклиента
procedure Get(Code: integer); //получить информацию о клиенте из платежной системы
end;
TManager = class //классуправляющий
private
function Authenticate(out TrueKlient: TKlient): boolean; //проверитьподлинность
public
function GetCode():integer; //получитькодкарты
function GetPassword():integer; //получитьпарольклиента
function GetSum(): real; //получить запрашиваемую сумму
procedure WithdrawMoney(); //снятьденьги
procedure GetBalance(); //получитьбаланссчета
end;
//снятьденьги
function TAccount.WithdrawMoney(Summ: real): real;
begin
//если денег на счете не меньше, чем требует клиент
ifSelf.Sum >= Summthen
//то уменьшить сумму счета
Self.Sum := Self.Sum - Summ;
//вернуть остаток
Result := Self.Sum;
end;
//получитьбаланссчета
function TAccount.GetBalance(): real;
begin
//вернутьсуммусчета
Result := Self.Sum;
end;
//получитькодклиента
function TKlient.GetCode():integer;
begin
//вернуть код клиента
Result := Self.Code;
end;
//получить пароль клиента
function TKlient.GetPassword(): real;
begin
//вернуть пароль клиента
Result := Self.Password;
end;
//получитьсчетклиента
function TKlient.GetAccount(): TAccount;
begin
//вернуть счет клиента
Result := Self.Acct;
end;
//получить информацию о клиенте
procedureTKlient.Get(Code: integer);
begin
//Здесь должен выполняться запрос к платежной системе
//примерно такие данные должны возвращаться:
Self.Code := 12345; //код карты клиента
Self.Password := 54321; //пароль
Self.Acct.Code := 12345; //код счета
Self.Acct.Sum := 111.50; //сумма денег на счете
end;
//получить код карты
function TManager.GetCode():integer;
begin
//Здесь информация должна считываться с банковской карты
Result := 12345;
end;
//получить пароль клиента
function TManager.GetPassword():integer;
begin
//Здесь информация должна считываться с терминала
Result := 12345;
end;
//получитьзапрашиваемуюсумму
function TManager.GetSum(): real;
begin
//Здесь информация должна считываться с терминала
Result := 100;
end;
//проверитьподлинность
function TManager.Authenticate(out TrueKlient: TKlient): boolean;
var
KlientCode: integer;
KlientPass: integer;
begin
Result := false;
KlientCode := Manager.GetCode();//получаемкодкартыклиента
KlientPass := Manager.GetPassword();//получаем пароль, введенный клиентом
TrueKlient.Get(KlientCode);//получаем данные клиента из платежной системы
if TrueKlient.Password = KlientPass then//еслипаролисовпадают
Result := true;
end;
//снятьденьги
Procedure TManager.WithdrawMoney();
var
TrueKlient: TKlient; //клиент
Summ : real; //запрашиваемаяклиентомсумма
Rest1, Rest2 : real; //остаток на счете до и после операции
St : string; //текст сообщения
begin
TrueKlient := TKlient.Create; //конструктор класса клиент
if Manager.Authenticate(TrueKlient) then //есликлиентаутентифицирован
begin
Summ := Manager.GetSum(); //получаем сумму, запрашиваемую клиентом
if Summ <> 0 then //если введена не 0-вая сумма
begin
Rest1 := TrueKlient.Acct.GetBalance; //получим остаток до снятия денег
Rest2 := TrueKlient.Acct.WithdrawMoney(Summ); //получим остаток после снятия денег
if Rest2 <> Rest1 then exit //если деньги были сняты - выходим из процедуры
else St := 'Операция не может быть выполнена';
end
else St := 'Введитесумму';
Form1.PutMessage(St); //выдатьсообщение
end;
end;
//получитьбаланссчета
Procedure TManager.GetBalance();
var
TrueKlient: TKlient; //клиент
Summ : real; //запрашиваемаяклиентомсумма
St : string; //текстсообщения
begin
TrueKlient := TKlient.Create; //конструкторклассаклиент
if Manager.Authenticate(TrueKlient) then //есликлиентаутентифицирован
begin
Summ := TrueKlient.Acct.GetBalance; //получимостатокнасчете
St := 'Остаток средств на вашем счете: ' + FloatToStr(Summ); //переведем число в строку
Form1.PutMessage(St); //выведемнаэкран
end;
end;
Похожие работы
-
Базис стандартной и рекурсивной схемы. Верификация программы
Базис класса стандартных схем программ. Стандартная схема в линейной форме. Протокол выполнения программы рекурсивной схемы. Слабейшие предусловия операторов программы в линейной форме. Верификация программы с помощью метода индуктивных утверждений.
-
Разработка систем управления организациями с использованием информационных технологий
Принципы построения системы управления организацией. Построение моделей экономических систем методом самоорганизации.
-
Опасности при поисковом продвижении сайтов
Опасности, связанные с поисковым продвижением сайтов бывают двух видов: Опасность для заказчика; Опасность для исполнителя.с
-
Построение и анализ простой эконометрической модели
Проверка наличия линейной связи между соответствующими показателями деятельности коммерческих банков Украины в модуле Multiple Regression ППП Statistica. Расчет теоретических значений зависимой переменной и ошибки модели, вид графика линейной функции.
-
WEB сервис поиска терминалов банка
Обзор существующих систем атоматизированного поиска. Мир электронных денег. Разработка структуры системы автоматизированного поиска отделений и терминалов банков. Обоснование выбора технологии разработки, программной среды и языка программирования.
-
Техническое устройство банкоматов и правила работы с ним
Виды и внутреннее устройство банкоматов. Банкоматы круглосуточного и ограниченного доступа. Правила пользования банкоматом. Выдача наличных денег как главная функция банкомата. Перечень шагов для получения наличных денег со счета платежной карточки.
-
Аутентификация пользователей
Трансляция полей формы. Метод аутентификации в Web как требование к посетителям предоставить имя пользователя и пароль. Форма для передачи данных. Использование базу данных для хранения паролей. Разработка сценарий для аутентификации посетителей.
-
Средства структурного анализа
Понятие средств структурного анализа: контекстная диаграмма, DFD трех уровней и с аспектами реального времени. Спецификации процессоров, словари данных и диаграммы "сущность-связь" (ERD) переходных состояний, независимой сущности в нотации Чена.
-
Разработка информационной системы "Система обслуживания банкоматов"
Создание приложения в программе Rational Rose для удобного функционирования системы обслуживания банкоматов. Методы создания баз данных в программе и разработки диаграмм: последовательности, действий и состояния. Составление инструкции для пользователя.
-
Контекстные диаграммы отпуска товара со склада
Отпуск товара со склада предприятия, его основные этапы и предъявляемые требования, нормативная документация. Проектирование схемы отпуска товара со склада с помощью методологий структурного анализа. Построение контекстной диаграммы и декомпозиции IDEF0.