Этапы разработки программной системы, позволяющей контролировать использование сервисов сотовой связи клиентами. Описание процесса проектирования и классов. Описание структуры данных, хранимых в файле клиентов. Диаграмма деятельности для провайдера.
Аннотация к работе
Между классами Provider и Events существует отношение однонаправленной ассоциации (от Provider к Events), так как провайдер должен просматривать событие, совершенное клиентом, но по событию не нужно определять к какому провайдеру оно относится (то есть не требуется обеспечивать переход от события к провайдеру). Между классами Client и Events существует отношение однонаправленной ассоциации (от Client к Events), так как необходим переход от клиента к событию, при совершении какого-либо действия, но обратный переход от события к клиенту не нужен. Баланс - информация о состоянии счета клиента, изменяется при каждом использовании сервиса клиентом, а также при вводе суммы клиентом для пополнения баланса (целое, неотрицательное число). Основные методы, реализуемые в данном классе: Чтение файла провайдера - метод, позволяющий получить информацию о тарифах провайдера для использования ее в методе Активность клиента, класса Client. Для хранения информации используются текстовые файлы: файл с информацией о клиенте (для просмотра полной информации о клиенте), файл базы данных с краткой информацией о клиенте, необходимой для вывода в таблицу базы данных, файл с порядковым номером договора.Ввод неверного пароля при идентификации клиента Вывод сообщения о неверном пароле Результат теста совпадает с ожидаемым Тест прошел без исправлений Использование сервиса клиентом при отрицательном балансе Вывод сообщения о недостатке средств Результат теста совпадает с ожидаемым Тест прошел без исправлений При создании нового клиента не заполнение одного из полей Вывод сообщения о необходимости ввода всех данных Результат теста совпадает с ожидаемым Тест прошел без исправлений Поиск в таблице базы данных несуществующего клиента Вывод сообщения о неудачном поиске Результат теста совпадает с ожидаемым Тест прошел без исправлений· Тестирование и отладка программной системы · Разработка интерфейса системы · Проектирование системы: диаграмма классов, диаграмма последовательностей · Кодирование элементов интерфейса: CHANGETARIFF, Graph, MAINMENU · Разработка интерфейса системыПеред нашей бригадой стояла задача разработки программной системы, позволяющей контролировать использование сервисов сотовой связи клиентами. Для этого мы использовали CASE средство под названием Software Ideas Modeler - инструмент моделирования программного обеспечения с использованием UML-диаграмм (версия 4.10, 2009-2010 года, автор Dusan Rodina). Также обсуждались результаты этапа программирования: каждый член бригады пояснял фрагмент кода программы, написанный им, и в случае возникновения предложений от остальных членов команды, модифицировал программу с учетом замечаний. После согласования расширенной постановки задачи и анализа предметной области, были сформированы основные функциональные требования, такие, как заключение клиентом договора с провайдером; использование клиентом выбранного сервиса; предоставление статистических данных провайдеру о конкретном пользователе. На этапе первой итерации был спроектирован и создан прототип системы, позволяющей использовать ее клиенту и провайдеру.
План
Содержание
Введение
1 Первая итерация
2 Вторая итерация
3 Третья итерация
4 Тестовые данные и результаты тестов
5 Распределение работы в бригаде
Заключение
Список использованной литературы
Введение
Разработать программную систему, позволяющую контролировать использование сервисов сотовой связи клиентами.
Программная система должна позволять провайдеру выполнять следующие действия: · Редактирование данных клиента.
- Идентификация изменяемого клиента
- Изменение личных данных клиента
- Сохранение изменений
· Удаление клиента из базы.
- Идентификация удаляемого клиента
- Удаление клиента
· Просмотр таблицы базы данных
- Поиск клиента по номеру договора/фамилии в таблице
- Удаление/изменение клиента
· Просмотр статистики клиентов
- Просмотр текстового представления статистики
- Просмотр графического представления статистики
Программная система должна позволять пользователю выполнять следующие действия: · Регистрация нового договора
Дополнительные требования к программной системе: 1) Данные о клиентах, их договорах, их активности и провайдерах должны храниться в файлах (используются текстовые файлы).
2) Программная система должна иметь дружественный пользовательский интерфейс.
3) К программной системе должна прилагаться документация, содержащая в себе в себе все построенные UML - диаграммы, тестовые данные, описания процессов анализа требований, проектирования, программирования.
Язык разработки: Данная программная система разработана на языке C#.
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 - переменная строкового типа: фамилия клиента
4) activity - булева переменная: показывает, активен ли пользователь
Методы: 1) Events - конструктор
2) balance_sheet_audit - имеет параметр balance, проверка баланса на неотрицательность
3) Change_balance - имеет параметры balance, sum(сумма, на которую изменяется баланс), метод изменения баланса клиента
Интерфейс системы
Главное окно
Таблица базы данных клиентов
2. Вторая итерация
Анализ требований
На второй итерации был реализован новый класс - Contract. Он необходим для организации взаимодействия клиента с провайдером. В частности, для хранения личных данных клиента, и расторжения взаимодействия в случае истечения определенного срока договора или несоблюдения клиентом пунктов договора (неактивность в течение месяца).
На данной итерации основными целями работы были: 1) Добавление статистики
2) Улучшение дизайна для удобства работы, возможность смены языка
3) Добавления поиска клиента по номеру договора и фамилии
4) Добавление учета последней активности клиента
5) Добавление информации о стоимости предоставляемых услуг
6) Добавление пароля для клиента
7) Добавление нового класса Contract
Описание процесса проектирования
Описание классов
В классе Events был добавлен метод для изменения статуса активности клиента. В классе Client были добавлены поля для сохранения пароля и времени последней активности клиента. В классе Provider добавлен метод для изменения информации о провайдере.
Опишем отношения взаимодействия между введенным классом и уже существующими: Между классами Provider и Contract существует отношение ассоциации. Кратность отношения: 1 и *, поскольку при начале работы программной системы у провайдера может не быть ни одного зарегистрированного договора, а каждому контракту соответствует только один провайдер.
Между классами Contract и Client существует отношение ассоциации. Кратность отношения 1 и 1, так как каждому объекту класса клиент соответствует один объект класса контракт, а контракту соответствует единственный клиент.
Опишем изменения, произошедшие в интерфейсе классов на второй итерации.
В классе Client введены следующие поля: Пароль - поле, в которое записывается пароль введенный клиентом при регистрации (набор символов). Далее используется для идентификации клиента.
Последнее время активности - поле, хранящее время самого последнего использования сервиса, включая пополнение баланса.
На данной итерации не было добавлено новых методов для класса Client.
В классе Provider был добавлен один метод, новые поля в данном классе не понадобились.
Изменение файла провайдера - метод для сохранения измененных данных о тарифах провайдера в соответствующем файле. Происходит удаление старой информации в файле и запись новых данных.
В классе Events также был добавлен новый метод: Изменение активности - метод, возвращающий булевское значение: истина, если клиент активен, ложь, если клиент неактивен в течение месяца. Этот метод будет впоследствии использован для выявления и удаления неактивного клиента из базы данных.
Класс Contract был добавлен только на второй итерации, поэтому опишем введенные вместе с ним поля и методы. Для использования данного класса необходимы следующие поля: Номер договора - порядковый номер договора (уникальный идентификатор клиента)
Активный период - поле, в котором хранится период активности договора (год), по окончании которого клиент будет удален.
Выбранный сервис - имя выбранного клиентом провайдера при регистрации нового договора.
Фамилия клиента - фамилия клиента (идентификатор клиента).
А для функционирования класса Contract используются следующие методы: Добавление контракта - добавление файла контракта, запись в него определенной информации о клиенте.
Удаление контракта - метод удаления файла контракта при удалении клиента из базы данных.
Изменение контракта - метод, реализующий изменение данных в файле контракта при изменении личных данных клиента.
Диаграмма классов
Программирование
В структуре файла клиента произошли изменения. Также был добавлен новый файл для хранения информации о действиях, совершенных клиентом (использование сервисов, пополнение баланса).
Опишем структуру данных, хранимых в файле клиента: Записывается построчно: Номер договора / Пароль / Имя / Фамилия / Отчество / Выбранный провайдер / Выбранный сервис / Баланс / Последнее время активности
Структура данных в файле статистики: Дата использования сервиса / Совершенное действие / Сумма пополнения баланса или количество скачанных Мб или минут звонка или количество смс / Время, в течение которого использовался сервис / Остаток счета
4) Surname - переменная строкового типа: фамилия клиента
Методы: 1) Contract - конструктор
2) ADDCONTRACT - добавление файла контракта
3) DELCONTRACT - удаление файла контракта
4) CHANGECONTRACT - изменение файла контракта
Интерфейс системы
Главное окно
Форма использования сервиса
Таблица базы данных клиентов
Форма создания нового клиента
3. Третья итерация
Анализ требований
На третьей итерации был выделен класс WORKWITHFILES для удобной организации работы с имеющимися файлами клиента, контракта, провайдера и статистики. В этот класс были перенесены методы из классов Provider, Client, Contract, работающие с файлами.
На данной итерации основными целями нашей работы стали: 1) Введение нового класса WORKWITHFILES для работы с файлами.
2) Проверка клиента на неактивность, удаление, если клиент не активен больше месяца
3) Добавление проверки на окончание активного периода договора
4) Добавление графического представления статистики
5) Возможность просмотра статистики клиентом
6) Изменение тарифов провайдера
7) Улучшение интерфейса
Описание процесса проектирования
Описание классов
Опишем отношения взаимодействия между введенным классом и уже существующими: Класс WORKWITHFILES зависит от класса Events, так как метод Чтение статистики из файла использует объект класса Events.
Класс WORKWITHFILES зависит от класса Contract, так как методы Чтение файла клиента, Чтение файла клиента, Чтение контракта из файла, Изменение контракта в файле, класса WORKWITHFILE, используют для работы объект класса Contract.
Класс Provider зависит от класса WORKWITHFILES, так как методы класса Provider используют объект класса WORKWITHFILES.
Класс Client зависит от класса WORKWITHFILES, так как методы класса Client используют объект класса WORKWITHFILES. А класс WORKWITHFILES зависит от Client, так как методы Добавление и изменение файла клиента, Чтение файла клиенте, класса WORKWITHFILES, использует объект класса Client.
В классе Provider добавлены методы для проверки клиента на неактивность, изменения тарифов. В классе Contract добавлен метод для удаления неактивного пользователя, а также поля, описанные далее. В классе Client было добавлено поле Адрес, для ввода дополнительной личной информации о клиенте, и Время действия контракта.
Опишем подробно изменения, произошедшие на третьей итерации в интерфейсе классов.
В классе Client добавлены поля: Адрес - поле для хранения адреса клиента, носит информативный характер.
Файл статистики - поле, содержащее адрес файла, хранящего данные о действиях, совершенных клиентом.
Контракт - договор, связанный с данным клиентом.
Список событий - поле, содержащее действия, совершенные клиентом (статистика клиента).
А также метод: Новый индекс - метод, определяющий порядковый номер (номер договора) при регистрации клиента.
В классе Provider также произошли изменения.
Были добавлены поля: Список контрактов - содержит весь список контрактов данного провайдера.
А также методы: Неактивный клиент - этот метод реализует удаление всей информации о клиенте (файл клиента, файл контракта, файл статистики) при выявлении неактивного клиента с помощью метода - Изменение активности. Если клиент неактивен в течение определенного периода времени (то есть метод Изменение активности возвращает ложь), то клиент удаляется из базы данных.
Изменение тарифа - метод, позволяющий редактировать цены на использование сервисов.
Добавление контракта в список - метод, который заносит договор нового зарегистрированного клиента в список.
Удаление контракта из списка - метод, позволяющий удалить из списка контракт при удалении клиента.
Изменение контракта в списке - метод, изменяющий данные о контракте в списке провайдера.
Чтение статистики - метод, который позволяет считать статистику данного клиента в переменную Статистика.
В классе Events добавлены поля: Количество - содержит количество отправленных СМС/минут разговора/скачанных Мб для отображения в статистике
Баланс - текущий счет клиента, для отображения в текстовом представлении статистики.
Добавлены методы: Использование сервиса Интернет - метод, записывающий информацию о времени проведенном в интернете, количестве скачанной информации (эти данные выбираются произвольным образом), о балансе, измененном после использования сервиса. Затем информация записывается в файл клиента и файл статистики для последующего отображения в программе.
Использование сервиса СМС - метод, записывающий информацию о количестве отправленных сообщений (оно выбирается произвольным образом), о балансе, измененном после использования сервиса. Эта информация потом записывается в файл клиента и файл статистики для последующего отображения в программе.
Использование сервиса Звонки - метод, записывающий информацию о времени совершенных звонков (оно выбирается произвольным образом), о балансе, измененном после использования сервиса. Эта информация потом записывается в файл клиента и файл статистики для последующего отображения в программе.
В классе Contract изменения интерфейса таковы: добавлены два поля: Выбранный провайдер - провайдер, у которого был зарегистрирован договор данного клиента.
Клиент - клиент, которому принадлежит данный договор.
И один метод: Конец активного периода - в этом методе происходит сравнение текущего времени со сроком окончания активного периода договора. В случае их равенства вызывается метод удаления файла клиента и файла статистики клиента.
Опишем также интерфейс добавленного класса WORKWITHFILES: Для описания данного класса используются следующие поля: Файл провайдера - поле, содержащее адрес файла, хранящего информацию о тарифах провайдера.
Файл клиента - поле, содержащее адрес файла с личными данными клиента
Файл контракта - поле, содержащее адрес файла, хранящего данные о контракте
Файл статистики - поле, содержащее адрес файла, хранящего данные о действиях, совершенных клиентом.
В новый класс WORKWITHFILES перенесены методы из старых классов (Contract, Client, Provider), для более удобной работы: Добавление файла статистики - метод, создающий файл статистики для последующей записи в него информации о действиях клиента, а затем вывода информации на экран в текстовом или графическом представлении.
Удаление файла статистики - метод, удаляющий весь фал статистики при вызове метода удаления клиента из базы данных.
Изменение файла статистики - метод, позволяющий изменить фал статистики, при совершении клиентом новых действий (использование какого либо сервиса, или пополнение баланса).
Очищение файла статистики - метод, очищающий файл статистики при обновлении данных клиента вызовом метода - изменить клиента (так как при этом клиент выбирает для использования какой либо другой сервис, и мы будем отображать в статистике только действия измененного клиента).
Изменение контрактов в файле - метод, реализующий изменение данных в файле контрактов при изменении личных данных клиента (добавление, изменение, удаление контрактов в списке провайдера).
Изменение файла провайдера - метод для сохранения измененных данных о тарифах провайдера в соответствующем файле. Происходит удаление старой информации в файле и запись новых данных.
Чтение файла провайдера - метод, позволяющий получить информацию о тарифах провайдера для использования ее в методе Активность клиента, класса Client.
Удаление клиента из файла - этот метод позволяет удалить ранее зарегистрированного клиента, в частности файл с предоставленными личными данными, для этого происходит считывание клиентов из файла в список, в нем удаляются данные о выбранном клиенте, измененный список записывается обратно в файл.
Чтение файла клиента - получение личных данных клиента, для этого считываем информацию о клиентах из файла в список, ищем нужного клиента в списке по номеру договора и возвращаем найденного клиента.
Добавление клиента в файл - метод реализующий запись информации о клиенте. Для этого необходимо записать в конец файла личные данные клиента, предоставленные при регистрации.
Изменение клиента в файле - метод, позволяющий изменить информацию о клиенте в файле, для этого происходит считывание клиентов из файла в список, в нем изменяются данные о выбранном клиенте, измененный список записывается обратно в файл.
Чтение контрактов из файла - метод, считывающий информацию о контрактах всех клиентов данного провайдера, содержащуюся в файле базы данных.
Чтение статистики из файла - метод, считывающий информацию о статистике данного клиента, содержащуюся в файле статистик.
Диаграмма классов
Диаграмма последовательностей
Программирование
Опишем структуру данных, хранимых в файле клиентов: Записывается построчно (для каждого клиента): Номер договора / Пароль / Имя / Фамилия / Отчество / Выбранный провайдер / Выбранный сервис / Баланс / Последнее время активности / Время окончания активного периода договора / Адрес
Структура данных в файле статистики: Дата использования сервиса / Совершенное действие / Сумма пополнения баланса или количество скачанных Мб или минут звонка или количество СМС / Время, в течение которого использовался сервис / Остаток счета
Структура данных в файле провайдера: Цена за СМС / Цена за Мб скачанной информации из интернета / Цена минуты разговора
Структура данных в файле договоров (в котором хранится список всех договоров, относящихся к отдельному провайдеру): Номер договора / Фамилия / Выбранный провайдер / Выбранный сервис / Время окончания активного периода договора
Описание изменений, произошедших в классах
Client
Поля: 1) Address - переменная строкового типа: адрес клиента.
2) FILELOG - переменная строкового типа: путь к файлу статистик
3) Contract - переменная типа Contract: договор, связанный с данным клиентом
4) EVENTSLIST - список List: статистика клиента.
Методы: 1) NEWINDEX - определяет порядковый номер клиента.
Provider
Поля: 1) CONTRACTLIST - список List: содержит список контрактов
2) Statistic - список List:содержит список выполненных действий
Методы: 1) CHANGETARIFF - изменение информации о тарифах в файле провайдера
2) NOTACTIVECLIENT - метод для проверки клиента на неактивность
3) ADDCONTRACTTOLIST - добавление контракта в список контрактов
4) DELCONTRACTFROMLIST - удаление контракта из списка
5) CHANGECONTRACTINLIST - изменение контракта в списке
2) Balance - переменная строкового типа: состояние баланса клиента
Методы: 1) USINGSERVICESMS - использование сервиса СМС
2) USINGSERVICEINTERNET - использование сервиса Интернет
3) USINGSERVICECALL - использование сервиса Звонок
Contract
Поля: 1) Selectprovider - переменная типа Provider: выбранный провайдер
2) Client - переменная типа Client: клиент, которому принадлежит данный договор.
Методы: 1) ENDACTIVPERIOD - метод для удаления неактивного пользователя
WORKWITHFILES
Поля: 1) CLIENTFILE - переменная строкового типа: путь к файлу клиента
2) PROVIDERFILE - переменная строкового типа: путь к файлу провайдера
3) LOGFILE - переменная строкового типа: путь к файлу статистики клиента
4) CONTRACTFILE - переменная строкового типа: путь к файлу контракта
Методы: 1) CHANGECONTRACSINFILE - имеет параметры CONTRACTLIST, метод изменения контракта в файле.
2) READPROVIDERFILE - имеет параметр PROVIDERNAME, возвращает значение типа Provider, метод чтения файла провайдера
3) CHANGEPROVIDERFILE - имеет параметры sms, call, internet, метод изменения файла провайдера
4) ADDLOGFILE - метод добавления файла статистик
5) CLEANLOGFILE - метод очищения файла статистик
6) DELLOGFILE - метод удаления файла статистик
7) CHANGELOGFILE - имеет параметры message, Count, TIMEUSINGSERVICE, Balance, метод изменения файла статистик
8) DELCLIENTFROMFILE - имеет параметр CLIENTNUMBER, удаление из файла личных данных клиента по номеру договора.
9) READCLIENTFILE - метод для чтения файла клиента, возвращает значение типа Client.
10) ADDCLIENTINFILE - имеет параметр client, метод добавления клиента в файл.
11) CHANGECLIENTINFILE - имеет параметр client, метод, изменяющий информацию о клиенте в файле
12) READCONTRACTSFROMFILE - считывание информации о контрактах всех клиентов данного провайдера.
13) READSTATISTICFROMFILE - считывание информации о статистике клиента.
Диаграмма деятельности для провайдера
Диаграмма деятельности для клиента
Интерфейс системы
Главное окно
Форма создания нового клиента
Таблица базы данных клиентов
Форма изменения тарифов провайдера
Форма с информацией о тарифах
Текстовая статистика клиента
Графическое представление статистики клиента
Вывод
Перед нашей бригадой стояла задача разработки программной системы, позволяющей контролировать использование сервисов сотовой связи клиентами. В процессе работы над проектом был осуществлен коллективный подход к созданию программной системы. В качестве языка разработки был выбран C#. В процессе работы использовался язык моделирования UML. Для этого мы использовали CASE средство под названием Software Ideas Modeler - инструмент моделирования программного обеспечения с использованием UML-диаграмм (версия 4.10, 2009-2010 года, автор Dusan Rodina). Также активно использовались средства интернета, обеспечивающие файлообмен, голосовую связь и передачу изображений с экрана монитора для более удобной совместной разработки на больших расстояниях.
На каждой итерации проводился анализ текущих результатов проведенной работы (так называемые инспекции). Мы собирались в удобное время всей командой после пар и обсуждали различные моменты нашей программной системы. Так, например, на этапе проектирования обсуждались имеющиеся у нас на данное время диаграммы классов, уточнялись функции каждого класса, и перенос отношений, отраженных в диаграмме на процесс программирования. Также обсуждались результаты этапа программирования: каждый член бригады пояснял фрагмент кода программы, написанный им, и в случае возникновения предложений от остальных членов команды, модифицировал программу с учетом замечаний. На этапе тестирования вся команда провела ряд тестов по каждому классу эквивалентности, а полученные результаты были занесены в соответствующую таблицу.
После согласования расширенной постановки задачи и анализа предметной области, были сформированы основные функциональные требования, такие, как заключение клиентом договора с провайдером; использование клиентом выбранного сервиса; предоставление статистических данных провайдеру о конкретном пользователе. Процесс создания нашей программной системы состоит из трех итераций.
На этапе первой итерации был спроектирован и создан прототип системы, позволяющей использовать ее клиенту и провайдеру. На этапах анализа требований и проектирования были построены диаграмма прецедентов и диаграмма классов. Был создан начальный интерфейс, для простейшей работы с программной системой. Информацию о провайдерах и клиентах было решено хранить в текстовых файлах. Была реализована возможность записи новой информации о клиенте и чтение ее из файлов.
На этапе второй итерации был сделан упор на повышение удобства нашей системы при работе провайдера с ней. Для этого были реализованы: текстовое представление статистики клиентов, поиск по таблице базы данных конкретного клиента. Для клиента была предоставлена информация о тарифах провайдера. На данной итерации был введен новый класс Contract. Также был разработан более удобный интерфейс программной системы.
На этапе третьей итерации было решено выделить новый класс, обеспечивающий работу с файлами. А для более удобной работы с клиентом было добавлено графическое представление статистики. Для провайдера появилась возможность изменения цен на тарифы. Интерфейс программной системы был доработан. Также реализовано удаление клиента по истечении срока действия договора и его неактивности. Был реализован этап тестирования с помощью стратегии черного ящика, и отлажены возникшие ошибки.
Итак, мы разработали программную систему для использования мобильных сервисов. Было очень интересно работать в команде. Мы научились разрабатывать систему поэтапно, проектируя ее и тщательно рассматривая основные функции, а затем тестируя их. Разработка этой программной системы помогла нам лучше понять принципы ООП. Также мы научились работе с CASE средствами. Вся наша деятельность не прошла зря, и мы надеемся, что эти навыки пригодятся нам в будущем.
Список литературы
1. Кочержевский Г.Н. «Антенно-фидерное устройство», М., Изд. «Связь», 2010 г.
2. Кинбер Б.Е., Классен В.И. «Теория и техника антенн», М., МФТИ, 1985 г.
3. Сазонов Д.М. «Антенные устройства СВЧ», Учебник для радиотехнич. спец. ВУЗОВ. - М.: Высш. шк., 2008 г.
4. Классен В.И. «Теория и техника антенно-фидерных устройств», Конспект курса лекций. 2012г.г.