Проектирование ПО
Разработка алгоритмов программы
Алгоритм входа в систему.
Начало.
1. Ввод логина и пароля пользователя.
2. Поиск в БД в таблице Users пользователя с введённым логином.
3. Если логин не найден в БД, вывод сообщения "Неправильный логин или пароль". Выход из программы.
4. Если логин найден в БД, получение соответствующей ему строки пароля из БД.
5. Шифрование введённого пароля пользователя.
6. Если, полученная зашифрованная строка пароля, совпадает с полученной из БД зашифрованной строкой пароля, получение из БД прав данного пользователя.
7. Открытие основного окна программы.
8. Если полученная зашифрованная строка пароля, не совпадает с полученной из БД зашифрованной строкой пароля, вывод сообщения "Неправильный логин или пароль". Выход из программы.
Конец.
Алгоритм присвоения прав пользователю.
Начало.
1. Если права пользователя равны правам оператора, блокирование вкладок окна "Работа с абонентами" и "Настройки системы".
Конец.
Алгоритм добавления нового абонента.
Начало.
1. Запрос данных абонента.
2. Если в введённых данных присутствуют пустые поля, вывод сообщения "Проверьте корректность ввода". Переход к 1.
3. Поиск в БД введённого номера телефона.
4. Если в БД найден введённый номер телефона, вывод сообщения "Абонент с таким номером телефона уже зарегистрирован в системе". Переход к 1.
5. Иначе, запись в БД данных о новом абоненте.
6. Вывод "Абонент успешно зарегистрирован в системе".
Конец.
Алгоритм поиска абонента.
Начало.
1. Запрос номера телефона.
2. Поиск в БД абонента с введённым номером телефона.
3. Если абонент не найден в БД, вывод сообщения "Абонент с таким номером телефона не зарегистрирован в системе".
4. Иначе, вывод информации об абоненте, введённой при регистрации.
Конец
Алгоритм удаления абонента.
Начало.
1. Запрос номера телефона.
2. Поиск в БД абонента с введённым номером телефона.
3. Если абонент не найден в БД, вывод сообщения "Абонент с таким номером телефона не зарегистрирован в системе".
4. Иначе, вывод информации об абоненте, введённой при регистрации.
5. Вывод запроса на подтверждение удаления.
6. Если удаление подтверждается, атрибут "Удалён" в БД для текущей записи принимает значение TRUE.
7. Вывод сообщения "Абонент удалён".
Конец.
Алгоритм изменения данных абонента.
Начало.
1. Запрос номера телефона.
2. Поиск в БД абонента с введённым номером телефона.
3. Если абонент не найден в БД, вывод сообщения "Абонент с таким номером телефона не зарегистрирован в системе".
4. Иначе, вывод информации об абоненте, введённой при регистрации в поля, доступные для редактирования.
5. Модификация данных абонента пользователем.
6. Если был изменён номер телефона, поиск в БД такого номера телефона
7. Если номер телефона найден в БД, вывод сообщения "Абонент с таким номером телефона уже зарегистрирован в системе". Переход к 5.
8. Если номер телефона не найден в БД, запись в БД модифицированной информации о абоненте.
9. Вывод сообщения "Данные абонента успешно изменены".
Конец.
Алгоритм приёма информации о звонках от АТС.
Начало.
1. Установление соединения с АТС по SMDR протоколу.
2. Если соединение успешно, считывание данных о звонках из памяти АТС и запись в БД.
3. Если соединение не успешно, вывод сообщения об ошибке и запись сообщения в LOG файл.
Конец.
Алгоритм изменения имени сервера БД SQL ИС регистрации оплаты.
Начало.
1. Запрос нового имени сервера БД.
2. Запись в системный реестр нового имени сервера БД.
3. Вывод сообщения "Имя сервера успешно изменено".
Конец.
Алгоритм тестирования связи с сервером БД SQL.
Начало.
1. Установление соединения с сервером БД с таймаутом 10 секунд.
2. Если соединение успешно установлено, вывод сообщения "Соединение успешно".
3. Если соединение не установлено, вывод сообщения "Нет соединения".
Конец.
Алгоритм изменения пароля пользователя.
Начало.
1. Запрос логина, пароля, нового пароля и подтверждения нового пароля.
2. Если новый пароль и подтверждение не совпадают, вывод сообщения "Новый пароль и подтверждение не совпадают".
3. Иначе, поиск в БД введённого логина.
4. Если логин не найден, вывод сообщения "Пользователь не найден в БД"
5. Иначе, получение из БД зашифрованной строки пароля дял введённого логина.
6. Шифрование пароля.
7. Если зашифрованная строка пароля совпадает с полученной из базы, шифрование нового пароля.
8. Иначе, вывод сообщения "Неправильный логин или пароль". Переход к 1.
9. Шифрование нового пароля.
10. Запись в БД нового пароля на место старого.
Конец.
Алгоритм вывода расшифровки звонков.
Начало.
1. Запрос номера телефона, месяца и года.
2. Поиск в БД звонков абонентов с введённым номером телефона за указанный период.
3. Вывод полученной информации на экран.
Конец.
Алгоритм вывода кандидатов на отключение.
Начало.
1. Для каждого абонента выполняется поиск звонков, за весь период до предыдущего месяца.
2. Расчёт полной стоимости звонков.
3. Получение из БД ИС регистрации оплаты уплаченной абонентом суммы за весь период до прошлого месяца.
4. Получение суммы долга путём вычета из стоимости звонков уже уплаченной суммы.
5. Если сумма долга > 0 вывод на экран ФИО данного абонента и суммы долга.
Конец.
Алгоритм просмотра информации об оплате.
Начало.
1. Запрос номера телефона и года.
2. Для каждого месяца введённого года выполняется поиск в БД всех звонков абонента за месяц.
3. Расчёт общей стоимости звонков за месяц.
4. Поиск в БД ИС регистрации оплаты звонков абонента за тот же год и месяц.
5. Получение уплаченной суммы за звонки.
6. Расчёт суммы долга.
7. Вывод на экран ФИО абонента, суммы к оплате, уплаченной суммы, суммы долга.
Конец.