Разработка программной системы для использования сотовой связи

курсовая работа

1. Первая итерация

Анализ требований

В предметной области выделены следующие объекты:

Provider - класс, который является главным управляющим элементом нашей программной системы. Он необходим для предоставления сервисов клиенту, которые впоследствии будут использоваться. Также реализуется просмотр деятельности клиента. программный сотовый клиент провайдер

Client - класс, которому предоставляется возможность использования сервисов мобильной связи, предусмотренные выбранным провайдером.

Events - класс, в котором отображаются все действия, совершенные клиентом в процессе использования выбранного сервиса.

Диаграмма прецедентов

На первой итерации были поставлены следующие задачи:

1) Разработка удобного интерфейса для работы клиентов и провайдеров

2) Заключение нового договора с клиентом

3) Изменение информации о клиенте

4) Удаление клиента

5) Просмотр информации о клиенте

6) Вход клиента в систему под своим номером договора

7) Использование клиентом выбранного сервиса

Описание процесса проектирования

Опишем существующие отношения между вводимыми классами:

Между классами Provider и Client существует отношение ассоциации. Кратность отношения: 1 и *, поскольку при начале работы программной системы у провайдера может не быть ни одного зарегистрированного клиента, а каждый клиент привязан только к одному провайдеру.

Между классами Provider и Events существует отношение однонаправленной ассоциации (от Provider к Events), так как провайдер должен просматривать событие, совершенное клиентом, но по событию не нужно определять к какому провайдеру оно относится (то есть не требуется обеспечивать переход от события к провайдеру). Кратность отношения 1 и *, поскольку провайдер отслеживает события нескольких клиентов, а каждое событие относится к конкретному провайдеру.

Между классами Client и Events существует отношение однонаправленной ассоциации (от Client к Events), так как необходим переход от клиента к событию, при совершении какого-либо действия, но обратный переход от события к клиенту не нужен. Кратность отношения 1 и *, поскольку каждый клиент может выполнять несколько событий, или не выполнять вообще, а каждое событие относится к конкретному клиенту.

Описание классов

Опишем поля и методы, введенные нами в каждом классе на данной итерации.

В классе Client используются следующие поля:

Имя - имя клиента, носит информативный характер.

Фамилия - фамилия клиента, идентификатор клиента.

Отчество - отчество клиента, носит информативный характер.

Номер договора - порядковый номер договора (уникальный идентификатор клиента).

Выбранный провайдер - имя провайдера, выбранного клиентом при регистрации нового договора (Билайн, Мегафон, МТС).

Выбранный сервис - название сервиса, выбранного клиентом при регистрации (Звонки, СМС, Интернет), может быть изменено при вызове метода Изменение клиента.

Баланс - информация о состоянии счета клиента, изменяется при каждом использовании сервиса клиентом, а также при вводе суммы клиентом для пополнения баланса (целое, неотрицательное число).

Опишем теперь основные методы, реализуемые в данном классе:

Активность клиента - в этом методе моделируется использование клиентом различных сервисов, предоставляемых провайдером: мобильная связь, СМС, интернет. В частности, происходит снятие денег со счета клиента при использовании выбранного сервиса, соответственно тарифу провайдера.

Удаление клиента - этот метод позволяет удалить ранее зарегистрированного клиента, в частности файл с предоставленными личными данными.

Добавление клиента - метод реализующий создание нового клиента. Для этого необходимо создать новый файл и записать туда информацию о личных данных клиента, предоставленную при регистрации.

Изменение клиента - метод позволяющий изменить информацию о клиенте. Для этого очищается существующий файл выбранного клиента и записывается туда измененная информация.

В классе Provider используются следующие поля:

Имя - имя провайдера, выбранного пользователем при регистрации договора, носит информативный характер.

Цена интернета - цена за каждый скачанный Мб, которая снимается с баланса клиента при использовании данного сервиса.

Цена звонков - цена за каждую минуту разговора, которая снимается с баланса клиента при использовании данного сервиса.

Цена СМС - цена за каждое отправленное сообщение, которая снимается с баланса клиента при использовании данного сервиса.

Основные методы, реализуемые в данном классе:

Чтение файла провайдера - метод, позволяющий получить информацию о тарифах провайдера для использования ее в методе Активность клиента, класса Client.

В классе Events используются следующие поля:

Время окончания использования сервисов - время окончания использования какого-либо сервиса клиентом, требуется для вывода в статистике, а также для проверки клиента на последнюю активность.

Время использования сервиса - время, в течение которого клиент использовал сервис, носит информативный характер.

Используемый сервис - название сервиса, который в данный момент использует клиент. В зависимости от используемого сервиса выбирается соответствующий метод и снимается сумма, согласная тарифа на этот сервис.

Активность (булева переменная) - поле, показывающее активен ли данный клиент, изменяется, если клиент неактивен в течение определенного времени (месяц).

А также методы:

Проверка баланса - метод для проверки баланса на не отрицательность. Возвращает истину, если баланс положительный и ложь, если он отрицательный, чтобы впоследствии разрешать или запрещать использование сервиса в методе Активность клиента, класса Client.

Изменение баланса - в этом методе происходит изменение счета клиента на введенную им сумму.

Диаграмма классов

Программирование

Для хранения информации используются текстовые файлы: файл с информацией о клиенте (для просмотра полной информации о клиенте), файл базы данных с краткой информацией о клиенте, необходимой для вывода в таблицу базы данных, файл с порядковым номером договора.

Файл с порядковым номером договора хранит в себе номер, который присваивается следующему регистрирующемуся клиенту (после каждой регистрации хранящееся значение увеличивается на единицу).

Опишем структуру данных, хранимых в файле клиента:

Записывается построчно:

Номер договора / Имя / Фамилия / Отчество / Выбранный провайдер / Выбранный сервис / Баланс

Структура данных в файле базы данных:

Номер договора / Фамилия / Выбранный провайдер / Выбранный сервис / Адрес файла клиента

Описание классов

Client

Поля:

1) ClientName - переменная строкового типа: имя клиента

2) ClientSurname - переменная строкового типа: фамилия клиента

3) ClientSecondName - переменная строкового типа: отчество клиента

4) ClientRecordNumber - переменная строкового типа: номер договора

5) ChosenProvider - переменная строкового типа: выбранный провайдер

6) ChosenService - переменная строкового типа: выбранный сервис

7) Balance - переменная строкового типа: баланс

Методы:

1) Client - конструктор

2) activity_client - метод реализующий использование сервиса

3) Del_Client - метод реализующий удаление файла клиента

4) Add_Client - метод реализующий добавление файла клиента

5) Change_Client - метод позволяющий изменить информацию о клиенте в файле

Provider

Поля:

1) Provider_name - переменная строкового типа: имя провайдера

2) InternetPrice - переменная целого типа: цена на интернет

3) CallPrice - переменная целого типа: цена на звонки

4) SMSPrice - переменная целого типа: цена за СМС

Методы:

1) Provider - конструктор

2) ReadProviderFile - метод для чтения файла провайдера

Events

Поля:

1) EndTime - переменная типа DateTime:время окончания использования сервисов

2) TimeUsingService - переменная целого типа: время использования сервиса

3) used_service - переменная строкового типа: используемый сервис

4) activity - булева переменная: показывает, активен ли пользователь

Методы:

1) Events - конструктор

2) balance_sheet_audit - имеет параметр balance, проверка баланса на неотрицательность

3) Change_balance - имеет параметры balance, sum(сумма, на которую изменяется баланс), метод изменения баланса клиента

Интерфейс системы

Главное окно

Таблица базы данных клиентов

Делись добром ;)