Проектирование программного обеспечения банкомата
Анализ теоретических аспектов функциональной деятельности современного банкомата и его сценариев. Разработка программного обеспечения работы банкомата, включающее спецификацию вариантов использования "Аутентификация", "Запрос баланса" и "Снять деньги".
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 18.01.2011 |
Размер файла | 15,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Федеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образования Пермский государственный технический университет
Работа на тему:
«Проектирование программного обеспечения банкомата»
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
//если денег на счете не меньше, чем требует клиент
if Self.Sum >= Summ then
//то уменьшить сумму счета
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;
//получить информацию о клиенте
procedure TKlient.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;
Подобные документы
Разработка программного продукта и описание использования банкомата с помощью диаграммы прецедентов, с помощью IDEF0 диаграмм. Разработка информационной системы банкомата. Создание базы данных, форм, бизнес-правил. Возможные пути развития и реинжиниринга.
курсовая работа [1,6 M], добавлен 25.03.2015Разработка программного обеспечения, моделирующего работу банкомата. Особенности области применения терминала и выделение главных функциональных частей. Разработка алгоритма работы программы и реализация системы. Ее тестирование и анализ результатов.
курсовая работа [5,5 M], добавлен 12.10.2011Цели и задачи программной инженерии. Понятие программного обеспечения. Шесть принципов эффективного использования программного обеспечения. Виды программного обеспечения: общесистемное, сетевое и прикладное. Принципы построения программного обеспечения.
курсовая работа [30,4 K], добавлен 29.06.2010Назначение, применение и принципы технологий разработки программного обеспечения RAD, ХР, MSF, ICONIX. Разработка сценариев вариантов использования для учёта автомобилей и документов для их постановки на стоянку. Определение классов для каждого ВИ.
дипломная работа [2,7 M], добавлен 01.12.2014Понятие программного обеспечения, вопросы его разработки и использования. Общая характеристика системного программного обеспечения и работа операционной системы. Специфика процесса управления разработкой программного обеспечения и его особенности.
курсовая работа [636,2 K], добавлен 23.08.2011Оснащенность предприятия системным программным обеспечением, используемым для организации производственного процесса. Проектирование, внедрение и эксплуатация системного и прикладного программного обеспечения. Тестирование и отладка программного продукта.
отчет по практике [272,2 K], добавлен 29.12.2014Разработка программного обеспечения, предназначенного для автоматизации деятельности туристической фирмы. Анализ и проектирование базы данных предметной области. Создание концептуальной, логической и физической моделей данных и программы их обработки.
курсовая работа [816,5 K], добавлен 05.02.2018Специфика системы управления телевизором. Особенности модели вариантов использования. Анализ основных вариантов использования телевизора: просмотр, переключение каналов, изменение громкости и настроек. Проектирование и реализация системы, генерация кода.
курсовая работа [226,4 K], добавлен 10.06.2011Схемы взаимодействия между заказчиком и разработчиком программного обеспечения. Качество программного обеспечения и определение основных критериев его оценка на современном этапе, особенности управления на стадиях жизненного цикла, анализ достаточности.
презентация [114,7 K], добавлен 14.08.2013Проектирование структур данных и пользовательского интерфейса. Разработка руководства системного программиста и пользователя. Основные элементы организации работы менеджера по работе с клиентами. Характеристика программного обеспечения ООО "Доминион+".
курсовая работа [1,7 M], добавлен 14.10.2012