Файл: «Управление взаимоотношениями с клиентами с помощью UML».pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 16.06.2023

Просмотров: 391

Скачиваний: 6

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Сущность

Атрибуты

Тип данных

Сделка (deal)

ID (ключевой атрибут)

Integer

Название сделки

Text

Дата создания

DataTime

Ответственный

Text

Сумма

Integer

Комментарий к сделке

Text

Цена продукта

Integer

Компания (внешний ключевой атрибут)

Integer

Продукт (внешний ключевой атрибут)

Integer

Лицензия (внешний ключевой атрибут)

Integer

Статус сделки (внешний ключевой атрибут)

Integer

Название лицензии

Text

Стоимость лицензии

Integer

В таблице 7 сущности «Сделка» содержатся внешние ключевые атрибуты, используемые для связи с данными таблиц, представленных выше.

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

Диаграмма классов предназначена для представления статической структуры модели системы в терминологии классов объектно­ориентированного программирования. При этом диаграмма классов может содержать интерфейсы, пакеты, отношения и даже отдельные экземпляры классификаторов, такие как объекты и связи. Когда говорят о данной диаграмме, имеют в виду статическую структурную модель проектируемой системы, т.е. графическое представление таких структурных взаимосвязей логической модели системы, которые не зависят от времени.

Класс (class) - абстрактное описание множества однородных объектов, имеющих одинаковые атрибуты, операции и отношения с объектами других классов. Графически класс в нотации языка UML изображается в виде прямоугольника, который дополнительно может быть разделен горизонтальными линиями на разделы или секции. В этих секциях могут указываться имя класса, атрибуты и операции класса.

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

Рисунок2 - UML Диаграмма прецедентов взаимодействия классов системы CRM-ROMZA


На рисунке 2 показана диаграмма Use Case, на которой изображено взаимодействие классов в системе. На этой диаграмме актерами изображены классы, а действия этих актеров (Use Case) изображают методы классов.

Посредством методов классы взаимодействуют друг с другом. Совокупность всех методов классов образует интерфейс системы.

Некоторые методы классов включают в себя методы других классов. Например, метод «Получить список сделок» включает в себя метод «Получить компанию по ID», указанной в этой сделке, «Получить продукт по ID», который приобретается клиентом, «Получить лицензию по ID», «Получить статус по ID». В свою очередь, метод «Получить компанию по ID» является расширением метода «Получить список компаний».

Рисунок 3 - UML Диаграмма классов системы CRM-ROMZA

На рисунке 3 изображена диаграмма классов Class Diagram UML [18], на которой представлена структура классов из диаграммы Use Case (рисунок 6). Из диаграммы видно, что экземпляр класса CrmDeal включает в себя объекты классов CrmCompany, CrmProduct, CrmLicense, CrmStatus. Все классы содержат общие методы Add(), Update() для создания и редактирования сущностей,

GetList(), GetLictCount() для организации постраничного вывода сущностей и GetByID() для вывода детальной страницы сущности. Класс Crmlnvoice имеет уникальный метод CreateInvoiceDocx(), с помощью которого происходит генерация готового документа счет-оферты.

Рисунок 4 - UML Диаграмма компонентов системы CRM-ROMZA

На рисунке 4 изображена диаграмма компонентов системы. В роли компонента выступают модули сайта 1С-Битрикс. Модуль Main реализует классы CModule и CBitrixComponent, на основе которых были созданы модуль и компоненты системы CRM-ROMZA. Класс COption реализует хранение настроек модуля. Модуль Highload реализует класс HighloadBlockTable, через который реализована работа с сущностями системы CRM-ROMZA. Все классы необходимые для работы системы CRM-ROMZA находятся в модуле romza.crm и используют классы модулей Main и Highload.

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

Рисунок 5 - UML Диаграмма развертывания системы CRM-ROMZA

На рисунке 5 показана диаграмма развертывания системы CRM-ROMZA. Взаимодействие между персональным компьютером пользователя и базой данных сайта осуществляется через сервер. Для работы сайта необходимо, чтобы на персональном компьютере пользователя был установлен браузер. Отображенные страницы сайта можно распечатать, используя принтер.


Диаграмма взаимодействия предназначена для моделирования отношений между объектами, в нашем случае данные диаграммы покажут не просто взаимодействие классов системы между собой, а взаимодействие классов во времени, посредством методов [19]. Эти диаграммы покажут некий алгоритм работы системы.

На рисунке 6 изображена диаграмма последовательности UML [20], на которой показана последовательность действий во время выполнения метода «Получить список счетов».

Рисунок 6 - UML Диаграмма последовательности системы CRM- ROMZA. Получение списка счетов.

В процессе получения списка счетов для каждого объекта счета мы запрашиваем объекты классов «Шаблон счета» (CrmInvoiceTemplate) и «Сделка» (CrmDeal).

Рисунок 7 - UML Диаграмма кооперации системы CRM-ROMZA. Получение списка счетов

На рисунке 7 изображена диаграмма кооперации UML [20], на которой показано взаимодействие классов на примере метода GetList() класса CrmInvoice. Логика работы метода аналогична описанию диаграммы последовательности (рисунок 7).

Рисунок 8 - UML Диаграмма последовательности системы CRM- ROMZA. Получение списка сделок.

На рисунке 8 изображена диаграмма последовательности UML, на которой показана последовательность действий во время выполнения метода «Получить список сделок».

Рисунок 8 - UML Диаграмма кооперации системы CRM-ROMZA.

Получение списка сделок 30В процессе получения списка сделок для каждого объекта счета мы запрашиваем объекты классов «Компания» (CrmCompany), «Продукт» (CrmProduct), «Лицензия» (CrmLicense) и «Статус» (CrmStatus).

На основе представленных выше диаграмм был спроектирован и разработан модуль romza.crm на основе CMS 1С-Битрикс.

Рисунок 9 - Структура модуля системы «CRM-ROMZA»

На рисунке 9 изображена диаграмма кооперации UML, на которой показано взаимодействие классов на примере метода GetList() класса CrmDeal. Логика работы метода аналогична описанию диаграммы последовательности.

На рисунке 9 показана структура модуля системы «CRM-ROMZA». В корне модуля лежит обязательный файл include.php, в котором происходит подключение сторонних библиотек, модулей, зависимостей, которые могут потребоваться. По умолчанию он пустой.

В файле options.php описывается в виде массива настройки модуля. В данном случае в нем хранятся реквизиты компании ROMZA, которые используются при генерации счета. Все описанные в файле options.php параметры доступны для редактирования на странице настроек модуля, в стандартной административной странице 1С-Битрикс.


В разделе admin хранятся страницы для использования в административном пространстве сайта. В директории lang хранятся файлы языковых сообщений (переводов) модуля. В папку install кладут исходные компоненты, шаблон сайта, файлы и т.д. Директория lib хранит файлы, в которых хранятся классы модуля. Последние две раздела рассмотрим подробнее.

Рисунок 10 - Структура раздела install модуля системы «CRM-ROMZA»

На рисунке 10 показана структура раздела install модуля системы «CRM- ROMZA». В файле index.php описываются инструкции, которые выполняются в момент установки или удаления модуля. Файл version.php содержит в себе информацию о версии и дате текущего модуля. В директории components хранятся исходные компоненты системы, в директории public хранятся страницы публичной части сайта, остальные директории являются вспомогательными.

Рисунок 11 - Список компонентов системы «CRM-ROMZA»

На рисунке 11 изображен список компонентов используемых в системе «CRM-ROMZA». Все компоненты находятся в директории romza, то есть в пространстве имен romza, в то время как встроенные компоненты 1С-Битрикс имеют пространстве имен bitrix. Название компонентов состоит из двух частей: имя сущности и вид взаимодействия над ней. Таким образом, company.add реализует страницу добавления/редактирования компании, company. detail используется для вывода детальной страницы компании и company.list для вывода списка компаний. Компонент index вызывается на главной странице, которая является собранной из трех списков компаний, сделок и счетов.

Рисунок 12 - Структура компонента company.add

На примере компонента company.add (рисунок 12) рассмотрим стандартную структуру компонентов 1С-Битрикс. Файл .description.php хранит в себе название и описание компонента. В файле component.php выполняется вся логика компонента, включающая в себя запросы к БД и обработку результатов этих запросов. Результатом выполнения файла component.php является глобальный массив SarResult, которые передается в шаблон компонента.

Шаблоны компонентов хранятся в папке templates. У каждого компонента по умолчанию есть шаблон .default, который выводит результат работы components.php в виде готового HTML, CSS и JavaScript кода. Соответственно в файлах script.js и style.css находится JavaScript и CSS соответственно. В файле template.php хранится HTML разметка со вставками PHP кода.

Компонент хранит все, что ему необходимо для работы в своей папке, поэтому его можно использовать многократно и в разных проектах.


Рисунок 13 - Структура публичной части системы «CRM-ROMZA»

На рисунке 13 изображены разделы публичной части сайта системы «CRM-ROMZA». В каждом каталоге находится индексный файл index.php, в котором находится код вызова соответствующего компонента. В разделах company и deal дополнительно присутствуют файлы detail.php, которые вызывают компоненты отображения детальной страницы компании и сделки.

В файл .top.menu.php хранится массив, описывающий структуру главного меню сайта. Для отображения меню на сайте используется стандартный компонент bitrix.menu, который на основании файла .top.menu.php выводит пункты меню.

Рисунок 14 - Список классов системы «CRM-ROMZA»

В корне модуля расположен раздел lib, который хранит классы системы «CRM-ROMZA» (рисунок 14). Название файла класса должно совпадать с названием класса, описанного в этом файле. При выполнении этого условия, классы подключаются автоматически в момент выполнения кода сайта.

2 глава. Проектная часть

2.1. Выбор средства для моделирования предметной области решаемой задачи

При разработке сайта первым и главным вопросом является выбор платформы. От выбора платформы зависит как сама по себе реализуемость необходимого функционала, так и возможность дальнейшего развития проекта. Как правило, для создания сайта выбирается одна из платформ: CMS, фреймворк или SaaS-решение.

Система управления сайтом (Content Management System) — это программный продукт, который служит для разработки некоторых стандартных разновидностей сайтов. Большая часть сайтов строится именно на CMS- платформах. Требования к таким сайтам с технической точки зрения невысокие, а встроенные в CMS модули обычно удовлетворяют требуемым задачам. Примером служат отечественные коммерческие CMS 1С-Битрикс и UMI.CMS [21].

Фреймворк — это программный продукт, служащий основой для сайта, но обычно не содержащий в себе готовых программных модулей для реализации конкретных бизнес-процессов. При создании сайта на фреймворке, создают не только публичную часть сайта, но и проектируют базу данных, алгоритмы для модулей системы, создают административный интерфейс для управления проектом. Примером служат известные PHP-фреймворки Zend Framework [22], Drupal [23], Yii [24].