1. Изучение предметной области
1.1 Заинтересованные лица и их требования
Заинтересованные лица:
1. Водитель
2. Бухгалтер
3. Депо
4. Диспетчер
5. Кондуктор
Основные требования:
1. Безошибочный ввод данных.
2. Программа работает без сбоев.
3. Хороший и удобный интерфейс.
4. Быстрое и качественное обслуживание
1.2 Документ «Видение»
Заинтересованные лица:
Водитель: хочет осторожно и точно по расписанию производить маршрут.
Бухгалтер: хочет безошибочно и вовремя производить оплату с рабочими, точно отсчитывать прибыль и деньги в амортизационный фонд, в фонд налогов, за электроэнергию. Вовремя фиксировать необходимые данные в соответствующих журналах.
Депо: хочет, в случае необходимости производить ремонт - амортизацию транспорта.
Кондуктор: хочет зафиксировать в начале каждого маршрута количество билетов, выданных диспетчером, а также подсчитать их количество в конце маршрута.
Диспетчер: хочет правильно создавать путевые листы (расписание маршрутов), вовремя отправлять (принимать) транспорт на линию (с линии) маршрута. Следить за соответствием расписания и движения транспортов и регистрировать все отправления и прибытия транспортов в журнале регистрации.
Место системы.
Систему можно использовать на такой государственной организации, как городской электротранспорт.
Пользователи системы.
В качестве непосредственных пользователей системы могут выступать: водитель, диспетчер, бухгалтер и кондуктор городского электротранспорта.
Задачи и свойства системы.
1. Обеспечивать удобный интерфейс пользователя.
2. Реагировать на ошибки ввода - вывода данных.
3. Искать данные в системе по запросу.
1.3 График выполнения курсовой работы
Период выполнения |
Выполняемый этап курсовой работы |
|
2 неделя |
Изучение предметной области. |
|
34 неделя |
Выполнение анализа системы. |
|
59 неделя |
Окончание проектирования. |
|
1013 неделя |
Написания программного кода. |
|
1314 неделя |
Предоставление окончательной программы. |
|
1415 неделя |
Защита курсовой работы. |
1.4 Диаграмма прецедентов и описание прецедентов
Диаграмма прецедентов
Описание прецедентов
Прецедент П1: Подсчет прибыли.
Основной исполнитель: Бухгалтер.
Заинтересованные лица и их требования:
Кондуктор: Хочет в начале и в конце каждого рабочего дня знать количество билетов, выданных диспетчером, и соответственно оставшихся.
Бухгалтер: Хочет подсчитать полученную прибыль от продажи билетов и распределить ее на оплату налогов и зарплаты.
Предусловия: Бухгалтер должен быть идентифицирован и аутентифицирован.
Постусловия: Прибыль посчитана, и данные о подсчете занесены в систему.
Основной, успешный сценарий:
1).В начале рабочего дня бухгалтер фиксирует в «журнале учета»: дату, количество выдающихся билетов, в соответствии с маршрутом; выдает билеты диспетчеру, который передает кондуктору.
2).В конце рабочего дня кондуктор возвращает диспетчеру оставшееся количество билетов и сумму от проданных. Диспетчер передает их бухгалтеру, который заносит всю необходимую информацию (дата, №маршрута, количество оставшихся билетов, количество выданных билетов, сумма) в «журнал учета».
3).Бухгалтер учитывает образовавшуюся прибыль и высчитывает денежные финансы на оплату налогов и заработной платы. А также, фиксирует количество денежных финансов на налоги в «журнале налогов», а заработную плату в «журнале ЗП».
Альтернативный сценарий 1:
2.а). В конце рабочего дня кондуктор возвращает диспетчеру всё оставшееся количество билетов, но не всю сумму денег за проданные билеты.
1. Диспетчер передает все бухгалтеру. Бухгалтер заносит всю необходимую информацию в систему.
2. Система при подсчете обнаруживает ошибку недостачи, а также количество штрафа.
3. Бухгалтер вызывает кондуктора и информирует его о недостаче. Кондуктор платит необходимую сумму штрафа, по ранее определенной сумме. Бухгалтер заносит заплаченную сумму штрафа в «журнал штрафов».
4. Бухгалтер заносит в систему уже новые данные. Переход к п. 1).
Прецедент П2: Распределение транспорта по маршрутам.
Основной исполнитель: Диспетчер.
Заинтересованные лица и их требования:
Диспетчер: Хочет точно и правильно создать путевые листы для каждого маршрута. Хочет правильно распределить транспорт по маршрутам, в соответствии с количеством пассажиров на маршрутах, а также не допустить пересечение или столкновение транспортов. Провести регистрацию в соответственном журнале.
Водитель: Хочет иметь в наличии маршрут своего транспорта, путевой лист, расписание остановок, точное время передвижения и остановок.
Предусловия: Диспетчер должен быть идентифицирован и аутентифицирован.
Постусловия: Транспорт распределен по маршрутам.
Основной, успешный сценарий.
1).Диспетчер создает путевые листы в системе для всех необходимых маршрутов, в зависимости от количества мест, приходящихся на каждый транспорт, и количеством пассажиров на маршрутах. Все путевые листы хранятся в «журнале П_лист'.
2).В начале рабочего дня диспетчер выдает каждому водителю его путевой лист. Диспетчер отправляет транспорт по маршруту. Регистрирует начало каждого маршрута в «журнале регистрации отправки и прибытия транспортов».
3).Диспетчер принимает транспорт, проверяет его, и не найдя повреждений отпускает водителя, регистрирует в «регистрации отправки и прибытия транспортов», а также сообщает системе о завершении определенного маршрута.
Альтернативный сценарий 1:
3.а) В конце рабочего дня транспорт не возвращается в Депо
1. Диспетчер фиксирует в системе отсутствие транспорта. Информирует необходимых лиц. Производятся поиски транспорта.
2. При прибытии с маршрута транспорта переход к п. 3).
Альтернативный сценарий 2:
3.б) Принимая и осматривая транспорт в конце рабочего дня, диспетчер находит незначительные повреждения.
1. Диспетчер сообщает о повреждениях водителю, в Депо, в систему в «журнал повреждений».
2. Транспорт снимают с линии маршрута, заменяя его другим и фиксируя смену в системе.
3. Депо вызывает мастера по ремонтным работам, регистрируя в системе оплату работнику за ремонт.
4. После ремонта транспорт возвращают на линию маршрута. Переход к п. 3).
Прецедент П3: Расчет с работниками.
Основной исполнитель: Бухгалтер.
Заинтересованные лица и их требования:
Бухгалтер. Хочет точно и быстро выделить средства для оплаты услуг работников.
Руководство. Хочет аккуратно и точно записать и хранить информацию о выделенных средствах в систему.
Предусловия: Бухгалтер идентифицирован и аутентифицирован (имеет доступ к определенным ресурсам). Программа загружена.
Постусловия: Расчет с работниками. Занесение и сохранение соответствующей информации в журналах системы.
Основной, успешный сценарий
1).В систему бухгалтером заноситься количество выданных билетов и количество оставшихся, за весь месяц.
2).Система считает прибыль от всех проданных билетов. Бухгалтер отсчитывает некоторую часть прибыли на оплату налогов, заносит в «журнал налогов».
3).Система вычисляет заработную плату работникам в соответствии с установленным коэффициентом k, который (от всей суммы прибыли) составляет:
- для водителя = 0,3
- для кондуктора = 0,15
- для диспетчера = 0,15
- для бухгалтера =0,2
5).Система выводит конечные данные по оплате и сохраняет их. Бухгалтер расплачивается с работниками, фиксируя все расчеты в «журнале ЗП».
Альтернативный сценарий 1:
1.а). В систему бухгалтер заносит не всю информацию.
1. Бухгалтер заносит только количество выданных билетов.
2. Система выдает сообщение: «НЕДОСТАТОЧНО ДАННЫХ ДЛЯ РАСЧЕТА!!!»
3. Бухгалтер вводит уже всю информацию заново. Переход к п. 1.
Прецедент П4: Расчет с поставщиком электроэнергии.
Основной исполнитель: Бухгалтер.
Заинтересованные лица и их требования:
Бухгалтер. Хочет точно и быстро выделить средства для оплаты услуг энергопоставщика.
Руководство. Хочет аккуратно и точно записать в систему, и хранить информацию о выделенных энергопоставщику средствах.
Предусловия: Бухгалтер идентифицирован и аутентифицирован (имеет доступ к определенным ресурсам). Программа загружена.
Постусловия: Произведен расчет за электроэнергию. Занесение и сохранение соответствующей информации в базе данных системы.
Основной, успешный сценарий:
1).Бухгалтер заносит все необходимые данные (количество маршрутов, пройденные ими расстояния) в систему.
2).Система в конце каждого дня производит подсчет затраченной электроэнергии на каждый маршрут, соответственно учитывая расстояния маршрутов. Бухгалтер сохраняет в системе все данные в конце каждого дня.
3).В конце каждой недели бухгалтер суммирует окончательный результат за оплату электроэнергии. Бухгалтер сохраняет в системе все данные в конце каждой недели.
4).Бухгалтер представляет полученный отчет поставщику электроэнергии. Поставщик сверяет со своими расчетами, и при совпадении принимает оплату. Бухгалтер фиксирует в системе все проведенные расчеты и уплаты в «журнале оплаты за электричество».
Альтернативный сценарий 1:
4).Не совпадение расчетов бухгалтера и поставщика.
1. Бухгалтер заново вносит свои данные в систему. Система выдает новые данные об оплате.
2. Бухгалтер представляет новый полученный отчет поставщику электроэнергии. Переход к п4).
1.5 Составление концептуальных классов
Список категорий концептуальных классов
Категории концептуальных классов |
Пример |
|
Физические или материальные объекты |
Трамвай, троллейбус |
|
Спецификации, элементы проектных решений или описание объектов |
Описание регистрации |
|
Места |
Остановки, Депо |
|
Транзакции |
Регистрация |
|
Роль людей |
Водитель, кондуктор, диспетчер, бухгалтер |
|
Контейнеры других объектов |
Трамвай, троллейбус |
|
Содержимое контейнеров |
Пассажиры, кондуктор |
|
Организации |
Служба авторизации платежей, налоговая служба, амортизационная служба. |
|
События |
Продажа билета, создание путевого листа. |
|
Правила и политика |
Правило возврата путевого листа |
|
Записи различных деятелей |
Различного вида журналы |
Описание концептуальных классов.
Бухгалтер - Accountant
Пассажир - Passenger
Водитель - Driver
Диспетчер - Dispatch
Кондуктор - Conductor
Депо - Depo
Служба авторизации платежей - Service payment
Амортизационный фонд - Repair fund
Билет - Ticket
Налог - Tax
Прибыль - Profit
Заработная плата - Salary
Трамвай - Tram
Троллейбус - Trolley-bus
Путевой лист - Plist
Продажа - Sale
Оплата - Payment
Маршрут - Itinerary
Расписание - Time_table
Налоговая служба - Tax_Service
Энергопоставщик - ElSupplier
Журнал регистрации транспорта - Journal transport register
Журнал путевых листов - Journal_Plist
Журнал учета - Journal_Ychet
Журнал ЗП (Заработной платы) - Journal_ZP
Журнал налогов - Journal_Tax
Журнал оплаты за электроэнергию - Journal_Elect
Журнал штрафов - Journal_sh
Журнал повреждений - Journal_break
Ассоциации классов
Категория |
Пример |
|
А является физической частью В |
Троллейбус =вагон |
|
А физически содержится в В |
Маршрут =остановка |
|
А логически содержится в В |
Остановка =расписание остановок |
|
А получает В |
Пассажир =билет |
|
А начисляет В |
Бухгалтер =зарплата |
|
А использует В |
Водитель = расписание |
|
А выдает В |
Диспетчер =путевой лист |
|
А получает В |
Водитель =путевой лист |
|
А принимает В |
Кондуктор =оплату |
Диаграмма концептуальных классов
Атрибуты классов
Itinerary |
|
nameIt-ry: text Col. Stop: int nameStop: text time between Stop: double timeA: double timeB: double |
|
Salary |
|
Summa: double Col sale ticket: double Bonus: double Tax: double Procent: double Holiday: double |
PList |
|
NumberT-t: int Itinerary: text timeA: double timeB: double surnameDriver: text year: double month: double |
|
Accountant |
|
name: FIO addres: text tel: PhoneNumber |
|
Transport_Register |
|
Surname_Dispatch: text NumberIt-ry: double Number_Tr-t: double timeA: double TimeB: double |
Transport |
|
Tip: text Number: int Ser_number: int |
2. Проектирование системы
2.1 Описание операций и диаграмм взаимодействия
Прецедент: Распределение транспорта по маршрутам.
Описание операции ОП 1:
Операция |
Transport_Itinerary |
|
Ссылки |
Распределение транспорта по маршрутам и занесение данных в журнал регистрации |
|
Предусловия |
Бухгалтер идентифицирован и аутентифицирован. |
|
Постусловия |
Транспорт распределен. Данные занесены в журнал. |
Прецедент: Начисление заработной платы.
Описание операции ОП 2:
Операция |
Receive_Profit |
|
Ссылки |
Подсчет прибыли. |
|
Предусловия |
Бухгалтер идентифицирован и аутентифицирован. |
|
Постусловия |
Прибыль подсчитана, данные занесены в систему. |
Описание операции ОП 3:
Операция |
Pay_Salary |
|
Ссылки |
Выделение средств оплаты услуг работникам |
|
Предусловия |
Бухгалтер идентифицирован и аутентифицирован. |
|
Постусловия |
Средства выделены, данные записаны в журнале системы. |
Прецедент: Оплата за электроэнергию.
Описание операции ОП 4:
Операция |
Pay_Supplier |
|
Ссылки |
Выделение средств оплаты услуг поставщика энергии. |
|
Предусловия |
Бухгалтер идентифицирован и аутентифицирован |
|
Постусловия |
Средства выделены, данные записаны в журнале системы |
2.2 Программные классы
Journal_Plist |
|
FIO_driver: String FIO_cond: String №marsh: Byte data: Byte №Plist: Byte |
|
Plist (№marsh, data, №Plist, FIO_driver, FIO_cond) |
Journal_Ychet |
|
data: Byte colvo_t №1: Byte colvo_t №2: Byte №marsh: Byte sum: Byte |
|
Beginwork_day (data, colvo_t №1, №marsh) Endwork_day (data, colvo_t №1, colvo_t №2, sum, №marsh) |
Journal_ZP |
|
pribul: Byte sumZP: Byte zp: Byte zp_account: Byte zp_driv: Byte zp_disp: Byte zp_cond: Byte |
|
Podschet_ZP (pribul, sumZP) Pay_ZP (zp, zp_account, zp_driv, zp_disp, zp_cond) |
Journal_transport register |
|
data: Byte №marsh: Byte timeA: Byte timeB: Byte |
|
Begin_marsh (data, №marsh, timeA) End_marsh (data, №marsh, timeB) |
Journal_sh |
|
№marsh: Byte sum_sh: Byte data: Byte FIO: String |
|
Shtraff (sum_sh, data, FIO, №marsh) |
Journal_Tax |
|
pribul: Byte sumTax: Byte data: Byte |
|
Podschet_Tax (pribul, sumTax) Pay_ZP (sumTax, data) |
Journal_break |
|
№marsh: Byte data: Byte |
|
Polomka (data, №marsh) |
Journal_Elect |
|
data: Byte sum_el: Byte |
|
El_oplata (data, sum_el) |
System |
|
FIO_driver: String FIO_cond: String №marsh: Byte data: Byte №Plist: Byte colvo_t №1: Byte colvo_t №2: Byte sum: Byte pribul: Byte sumZP: Byte zp: Byte zp_account: Byte zp_driv: Byte zp_disp: Byte zp_cond: Byte data: Byte timeA: Byte timeB: Byte sum_sh: Byte FIO: String pribul: Byte sumTax: Byte sum_el: Byte time_now: Byte №marsh_old: Byte №marsh_new: Byte sum_pay: Byte all_prible: Byte |
|
Plist (№marsh, data, №Plist, FIO_driver, FIO_cond), Beginwork_day (data, colvo_t №1, №marsh), Endwork_day (data, colvo_t №1, colvo_t №2, sum, №marsh), Podschet_ZP (pribul, sumZP), Pay_ZP (zp, zp_account, zp_driv, zp_disp, zp_cond), Begin_marsh (data, №marsh, timeA), End_marsh (data, №marsh, timeB), Shtraff (sum_sh, data, FIO, №marsh), Podschet_Tax (pribul, sumTax), Pay_ZP (sumTax, data), Polomka (data, №marsh), El_oplata (data, sum_el), Otsyts_tr (FIO_driver, FIO_cond, data, time_now, №marsh), Zamena (№marsh_old, №marsh_new), Pay_break (sum_pay, data), Salary (all_prible, data) |
3. Описание интерфейса приложения
При входе в систему, она запрашивает пароль. Без него пользователь не сможет иметь доступ к системе.
Далее, пользователь может выбирать необходимое действие, нажав в открывшемся окне - File -> Action.
В результате, получив список, необходимых действий.
Для начала выбираем создание путевого листа (Path List). В необходимых колонках вводим соответствующие данные. После создания обязательно сохраняем в созданном и указанном журнале.
Сделаем проверку журнала, в котором должен был сохраниться наш 1-й путевой лист.
Далее выбираем учет билетов (Uchet). Здесь аналогично вводим необходимые данные. Также сохраняем в журнале.
Проверяем журнал.
Далее выбираем операции с заработной платой и налогом. Введя необходимые данные, сохраняем в журнале.
Проверяем выданное и оставшееся количество билетов.
Начисляем заработную плату.
Проверяем начисление зарплаты.
Выбрав пункт Поломка (Polomka), мы видим следующее окно, в котором вводим необходимые данные.
Проверяем в журнале.
Если необходимо произвести отчет, то нажав на главной панели кнопочку Browse, мы видим следующее окно.
В котором выбрав необходимый нам журнал или файл, видим его в окне на главной панели.
И дополнительная информация об авторе этого замечательного проекта может быть найдена по адресу - About -> Show.