Автор: Пользователь скрыл имя, 07 Января 2013 в 16:20, курсовая работа
Целью курсовой работы является приобретение навыков моделирования программных продуктов в среде Rational Rose.
Задачей работы является разработка программной системы от начала (анализ требований) до конца (тестирование и сопровождение-документация). В процессе выполнения курсовой работы была создана модель системы на языке UML, подготовленная в Rational Software Architect и программный продукт в виде исполняемого файла и исходных файлов.
1. Постановка задачи
2. Описание модели поведения системы, представленной на диаграммах активности
2.1 Диаграмма активности «Жизненный цикл проведения одного платежа»
2.2 Диаграмма активности для прецедента «Проверка данных»
2.3 Диаграмма активности для прецедентов «Проверка купюроприемника» и «Внесение наличных»
2.4 Диаграмма активности для прецедента «Печать чека»
2.5 Диаграмма активности для прецедента «Обработка платежа»
3. Описание модели взаимодействия, представленной на диаграммах последовательностей и кооперации
3.1 Диаграмма последовательностей
3.2 Диаграмма коопераций
4. Описание модели поведения, представленной на диаграммах состояний
5. Описание логической структуры системы, представленной на диаграммах классов
6. Описание физической структуры системы, представленной на диаграммах компонентов
7. Процесс генерации программного кода
8. Описание C# программы
9. Результаты тестирования
Заключение
Список использованной литературы
Приложения
Имеет поля: _manager(хранит экземпляр класса, создается при первом обращении к StateManager. Instance), _privKioskForm(хранит предыдущее состояние терминала для возврата);
Свойства: Instance – возвращает экземпляр класса StateManager;
Функции: ChangeState – переключение текущего состояния киоска,- текущая форма сохраняется в _privKioskForm и скрывается, новая форма выводится на экран.
Класс KioskFormInterface – интерфейс для состояний терминала (форм)
Функции: HideForm(скрыть форму), ShowForm (показать форму)
Класс Provider – интерфейс провайдеров, содержит данные провайдеров;
Функции:
GetCode – возвращает код провайдера
Length – возвращает длину маски (кол-во символов в реквизите)
Name – возвращаем имя провайдера
Title – возвращает заголовок маски (какой реквизит, например «номер телефона»)
Класс Payment – для хранения данных о платежах
Свойства: Amount, Property, Provider и ReceiptNumber – возвращают данные о платеже, такие как - сумма, реквизиты, провайдер и номер чека;
Функции:
AddAmount - добавляет сумму в платеж,
Payment - конструктор класса Payment, создает класс платежа,
Set ReceiptNumber - устанавливает номер чека
9. Результаты тестирования
При тестировании критичных ошибок не обнаружено.
Заключение
Система имеет необходимый и достаточный набор функций и возможностей. Полностью удовлетворяет требованиям, разработанным на этапе постановки задачи и формирования спецификации.
Для дальнейшего развития системы необходимо:
- расширить количество операторов
- доработать дизайн
интерфейса для привлечения
- доработать программу так, чтобы она могла работать с реальным купюроприемником, фискальным регистратором и обращаться в процессинговый центр
- разработать систему
удаленного управления и
Список использованной литературы
Приложения
Рисунок 1. Use case diagram
Приложение 2
моделирование программный файл язык
Activity diagram
Рисунок 2. Activity diagram
Приложение 3
Sequence diagram
Рисунок 3. Sequence diagram
Рисунок 4.Collaboration diagram
Приложение 5
Statechart diagram
Рисунок 5. Statechart diagram
Рисунок 6. Class diagram_1
Рисунок 7.Class diagram_2
Приложение 7
Component diagram
Приложение 8
Руководство пользователя
По умолчанию программа находится в главном меню:
Рисунок 8. Главное меню
После выбора оператора попадаем в форму ввода реквизитов:
Рисунок 9. Форма ввода реквизитов
Вводим данные:
Рисунок 10. Форма ввода реквизитов с данными
И нажимаем кнопку вперед, происходит переход в форму проверки реквизитов:
Рисунок 11. Форма проверки реквизитов
Если номер был введен не правильно, то увидим сообщение:
Рисунок 12. Форма проверки реквизитов. Проверка не прошла
При нажатии кнопки назад происходит возврат в форму ввода реквизитов, где можно скорректировать введенные данные.
Если реквизиты были введены правильно, переходим по кнопке вперед в форму приема денег:
Рисунок 13. Форма приема денег
При нажатии на кнопку внести деньги имитируем работу купюроприемника:
Рисунок 14. Внесение денег с помощью эмулятора купюроприменика
Нажимаем кнопку вперед и переходим в результирующую форму, где сразу будет выведен текс чека на экран:
Рисунок 15. Результирующая форма с выводом текста чека на экран
Если закрыть окно вывода чека остаемся в результирующей форме, где отображена информация о платеже:
Рисунок 16. Результирующая форма
При переходе по кнопке вперед снова попадаем в главное меню.
Данные о платеже отправляются оператору, и вскоре пополняется счет пользователя.
Приложение 9
Руководство программиста
Компиляция и компоновка производится в среде Visual Studio 2008
Проект содержит следующие файлы:
BillValidator.cs – реализация класса купюроприемника
FiscalRegistrator.cs – реализация класса фискального регистратора
PC.cs – реализация класса ПЦ
Program .cs – основной класс, запуск
StateManager.cs – реализация класса состояний
States\BillAcceptForm.cs и т.д. – реализация класса форм
Providers.cs – класс наследованый от провайдера
Kiosk.exe – запускающий файл приложения
Приложение 10
Листинг программы
Класс: StateManager
public class StateManager
{
private static StateManager _manager;
private KioskFormInterfase _prevKioskForm;
public static StateManager Instance
{
get
{
if (_manager == null)
_manager = new StateManager();
return _manager;
}
}
public void ChangeState(KioskFormInterfase kioskForm)
{
if (_prevKioskForm != null)
_prevKioskForm.HideForm();
_prevKioskForm = kioskForm;
kioskForm.ShowForm();
}
}
Класс Payment
public class Payment
{
public Payment(Provider provider, string reqvezit)
{
Property = reqvezit;
Provider = provider;
}
public Provider Provider { get; private set; }
public int ReceiptNumber { get; private set; }
public string Property { get; private set; }
public int Amount { get; private set; }
public void AddAmount(int amount)
{
Amount += amount;
}
public void SetReceiptNumber(int receiptNumber)
{
ReceiptNumber = receiptNumber;
}
}
Интерфейс KioskFormInterfase
public interface KioskFormInterfase
{
void ShowForm();
void HideForm();
}
Интерфейс Provider
public interface Provider
{
int GetCode();
int Length();
string Name();
string Title();
Размещено на Allbest.ru