Сделай Сам Свою Работу на 5

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





Командный проект

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

Выполнили:

Студенты группы К5-681

Дыдышко Ирина

(главный программист)

Серегин Артем

Медведева Ольга

Барсукова Ольга

Сорокина Евгения

Содержание

Расширенная постановка задачи………………………………………………………….....3

Первая итерация……………………………………………………………………………….4

Вторая итерация…………………………………………………………………………........10

Третья итерация………………………………………………………………………………16

Тестовые данные и результаты тестов…………………………………………………….29

Распределение работы в бригаде……………………………………………………………30

Заключение…………………………………………………………………………………….31
Расширенная постановка задачи

Разработать программную систему, позволяющую контролировать использование сервисов сотовой связи клиентами.

Программная система должна позволять провайдеру выполнять следующие действия:

· Редактирование данных клиента.

- Идентификация изменяемого клиента

- Изменение личных данных клиента

- Сохранение изменений



· Удаление клиента из базы.

- Идентификация удаляемого клиента

- Удаление клиента

· Просмотр таблицы базы данных

- Поиск клиента по номеру договора/фамилии в таблице

- Удаление/изменение клиента

· Просмотр статистики клиентов

- Просмотр текстового представления статистики

- Просмотр графического представления статистики

Программная система должна позволять пользователю выполнять следующие действия:

· Регистрация нового договора

- Ввод личных данных

- Создание договора

- Сохранение личных данных

· Использование сервисов (звонки, СМС, интернет).

- Проверка на платежеспособность

- Совершение звонка/отправка СМС/использование интернета

- Снятие денег со счета

- Сохранение совершенных действий в статистике

· Пополнение баланса.

- Ввод суммы

- Изменение баланса

· Просмотр информации о тарифах провайдеров.

Дополнительные требования к программной системе:

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



2) Программная система должна иметь дружественный пользовательский интерфейс.

3) К программной системе должна прилагаться документация, содержащая в себе в себе все построенные UML – диаграммы, тестовые данные, описания процессов анализа требований, проектирования, программирования.

Язык разработки: Данная программная система разработана на языке C#.

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

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

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

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(сумма, на которую изменяется баланс), метод изменения баланса клиента

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

Главное окно

 

 

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

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

На второй итерации был реализован новый класс – 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 используются следующие методы:

Добавление контракта – добавление файла контракта, запись в него определенной информации о клиенте.

Удаление контракта – метод удаления файла контракта при удалении клиента из базы данных.

Изменение контракта – метод, реализующий изменение данных в файле контракта при изменении личных данных клиента.

 

 


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


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

В структуре файла клиента произошли изменения. Также был добавлен новый файл для хранения информации о действиях, совершенных клиентом (использование сервисов, пополнение баланса).

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

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

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

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

Дата использования сервиса / Совершенное действие / Сумма пополнения баланса или количество скачанных Мб или минут звонка или количество смс / Время, в течение которого использовался сервис / Остаток счета

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.