Скачиваний:
44
Добавлен:
20.01.2016
Размер:
574.46 Кб
Скачать

Санкт-Петербургский

Государственный Университет Телекоммуникаций

им. проф. М. А. Бонч-Бруевича

Факультет «Информационные системы и технологии»

Кафедра «Безопасность информационных систем»

Дисциплина «Методы и средства проектирования

информационных систем и технологий»

Отчет

по лабораторной работе №4

«Методология объектно-ориентированного моделирования (диаграмма классов)»

Группа: ИСТ-22

Выполнил: Ковров В. В.

Проверил: Котлова М. В.

Санкт-Петербург

2015

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

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

Предметная область: терминальный доступ на базе продукта Citrix XenApp. Это решение для доставки приложений, позволяющее виртуализировать, централизировать и управлять любым приложением в центре обработки данных, а также доставлять его пользователям в виде сервиса в любое место и на любое устройство.

Ход выполненения работы:

В качестве отправной точки для создания диаграммы классов взят сценарий диаграммы прецедентов «Запуск сотрудником терминального приложения».

Диаграмма классов для данного сценария диаграммы прецедентов будет строиться с точки зрения реализации — классы диаграммы будут соответствовать реальным классам программной системы.

При составлении диаграммы классов не будем использовать методы сеттеры и геттеры (setX, getX). Они будут использоваться при программировании системы для соблюдения требований инкапсуляции, а на данном этапе проектирования эти методы не требуются.

Определим классы сущностей. Рассматриваемый сценарий содержит следующие сущности:

1 Employee

2 SecureGateway

3 WebInterface

4 XMLBrocker

5 DataStorage

6 LicenseServer

7 DataCollector

8 TerminalServer

Класс Employee:

Параметр

Значение

Комментарий

Класс, представляющий сотрудника компании

Атрибуты

login : String – логин для входа в систему

passord : String – пароль для входа в систему

name : String – имя сотрудника

surname : String – фамилия сотрудника

position : String – должность сотрудника

Операции

Employee(String l, String pa, String n, String s, String po) - конструктор класса для создания объекта нового сотрудника, в качестве параметров передаются все данные сотрудника.

getInfo() - получить информацию о сотруднике

changePass(String new) - сменить пароль

connectToSG() – подключиться к SecureGateway, в качестве параметров передаются логин и пароль.

auth(String l, String pa) – отправить WebInterface логин и пароль

chooseApp() - выбрать приложение

Класс SecureGateway:

Параметр

Значение

Комментарий

Класс, представляющий компонент Secure Gateway. Он предназначен для обеспечения безопасного шлюза между клиентом и веб-интерфейсом. Компонент Secure Gateway принимает подключение. Данные, передаваемые между данным компонентом и устройством пользователя, шифруются при помощи протокола TLS или SSL. По завершении обработки подключения Secure Gateway перенаправляет запрос компоненту Web-Interface.

Атрибуты

sertificate : String – SSL-сертификат

secConnect : Map<String, Employee> - карта сопоставления пользователей и их зашифрованных подключений

Операции

SecureGateway() - конструктор класса для создания объекта SecureGateway

creatCrypt(Employee e) – создать зашированное подключение к системе для сотрудника

redirect(Employee e) – перенаправить данные сотрудника компоненту WebInterface по зашифрованному каналу.

Класс WebInterface:

Параметр

Значение

Комментарий

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

Атрибуты

empls : List<Employee> - список подключенных пользователей

xmlBrocker : XMLBrocker – объект XMLBrocker, принадлежащий WebInterface

dataCollector : DataCollector - объект DataCollector, принадлежащий WebInterface

Операции

WebInterface(XMLBrocker x, DataCollector d) - конструктор класса для создания нового объекта WebInterface

authEployee(Employee e) – запросить у сотрудника логин и пароль

sendEmpl(Emploee e) - передача данных пользователя XMLBrocker

showApps(Emploee e) – отобразить перечень доступных пользователю приложений

Класс XMLBrocker:

Параметр

Значение

Комментарий

Класс, представляющий компонент XML Brocker, определяет приложения, которые будут отображаться в интерфейсе пользователя в зависимости от прав доступа.

Атрибуты

Операции

XMLBrocker() - конструктор класса для создания объекта XMLBrocker

getAppList(Employee e) – запрос перечня доступных пользователю приложений у объекта DataStorage

redirectAppList(Employee e, String[] a) – перенаправить перечень доступных пользователю приложений на Web-Interface

enableToConnect(Employee e) – запрос информации о возможности подключения пользователя к терминальному серверу у объекта LicenseServer

getTerminalServer() - запрос определения наименее загруженного сервера в пуле терминальных серверов

startApp(Employee e, TerminalServer t) - запрос запуска приложения у объекта TerminalServer

Класс DataStorage:

Параметр

Значение

Комментарий

Класс, представляющий SQL-сервер, хранящий статическую информацию о конфигурации системы

Атрибуты

emplApps : Map<Employee, String[]> - карта сопоставления сотрудников и доступных им приложений.

Операции

DataStorage() - конструктор класса для создания объекта DataStorage

getEmplApps(Employee e) - получить список доступных сотруднику приложений

Класс LicenseServer:

Параметр

Значение

Комментарий

Класс, представляющий сервер, хранящий лицензии для терминальных приложений.

Атрибуты

Licenses : Sring[] - лицензии

Операции

LicenseServer() - конструктор класса для создания объекта сервера лицензий

getLiс() - получить текущую информацию о лицензиях

Класс DataCollector:

Параметр

Значение

Комментарий

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

Атрибуты

data : String – динамические данные о системе

Операции

DataCollector() - конструктор класса для создания объекта DataCollector

getData() - получить информацию загруженности серверов

Класс TerminalServer:

Параметр

Значение

Комментарий

Класс, представляющий сервер, на котором запускаются копии приложений

Атрибуты

appNames : String[] - названия доступных для запуска приложений

Операции

TerminalServer() - конструктор класса для создания объекта нового терминального сервера

startApp(String n) – запустить приложение, в качетсве параметра имя приложения.

Между классами есть отношения:

1 Класс WebInterface и класс XMLBrocker - отношение композиции, поскольку компонент XML Brocker является частью компонента Web-Interface, и без него существовать не может. В один Web-Interface может входить только один XML Brocker, XML Brocker относится только к одному Web-Interface, поэтому кратность связи со стороны Web-Interface - 1, со стороны XML Brocker - 1;

2 Класс WebInterface и класс DataCollector - отношение композиции, поскольку компонент DataCollector является частью компонента Web-Interface, и без него существовать не может. В один Web-Interface может входить только один DataCollector, DataCollector относится только к одному Web-Interface, поэтому кратность связи со стороны Web-Interface - 1, со стороны DataCollector — 1;

3 Класс WebInterface и класс SecureGateway - отношение ассоциации, поскольку данные два класса просто связаны друг с другом и никакие другие типы связей здесь применить нельзя. Один объект SecureGateway может соединяться с несколькими объектами WebInterface, каждый объект WebInterface получает данные о пользователе только от одного объекта SecureGateway, поэтому кратность связи со стороны класса SecureGateway - 1, со стороны WebInterface — 1..n;

4 Класс XMLBrocker и класс DataStorage - отношение ассоциации, поскольку данные два класса просто связаны друг с другом и никакие другие типы связей здесь применить нельзя. Один объект DataStorage может соединяться с несколькими объектами XMLBrocker, каждый объект XMLBrocker получает перечень доступных пользователю приложений только от одного объекта DataStorage, поэтому кратность связи со стороны класса DataStorage - 1, со стороны XMLBrocker — 1..n;

5 Класс Employee и класс SecureGateway - отношение ассоциации, поскольку данные два класса просто связаны друг с другом и никакие другие типы связей здесь применить нельзя. Один объект SecureGateway может соединяться с несколькими объектами Employee, каждый объект Employee получает доступ к системе от одного объекта SecureGateway, поэтому кратность связи со стороны класса SecureGateway - 1, со стороны Employee — 1..n;

6 Класс Employee и класс WebInterface - отношение ассоциации, поскольку данные два класса просто связаны друг с другом и никакие другие типы связей здесь применить нельзя. Один объект WebInterface может соединяться с несколькими объектами Employee, каждый объект Employee получает по защищенному соединению доступ к системе от одного объекта WebInterface, поэтому кратность связи со стороны класса WebInterface - 1, со стороны Employee — 1..n;

7 Класс XMLBrocker и класс LicenseServer - отношение ассоциации, поскольку данные два класса просто связаны друг с другом и никакие другие типы связей здесь применить нельзя. Один объект LicenseServer может соединяться с несколькими объектами XMLBrocker, каждый объект XMLBrocker получает информацию о лицензиях только от одного объекта LicenseServer, поэтому кратность связи со стороны класса LicenseServer - 1, со стороны XMLBrocker — 1..n;

8 Класс XMLBrocker и класс TerminalServer - отношение ассоциации, поскольку данные два класса просто связаны друг с другом и никакие другие типы связей здесь применить нельзя. Один объект TerminalServer может соединяться с несколькими объектами XMLBrocker, каждый объект XMLBrocker может соединяться с несколькими объектами TerminalServer, поэтому кратность связи со стороны класса TerminalServer - 1..n, со стороны XMLBrocker — 1..n;

9 Класс XMLBrocker и класс DataCollector - отношение ассоциации, поскольку данные два класса просто связаны друг с другом и никакие другие типы связей здесь применить нельзя. Один объект DataCollector может соединяться только с одним объектом XMLBrocker, каждый объект XMLBrocker может соединяться только с одним объектом DataCollector, поэтому кратность связи со стороны класса DataCollector - 1, со стороны XMLBrocker — 1.

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

Диагрмма объектов:

Вывод: этап создания диаграммы классов является последним перед реализацией системы на языке программирования, на этом этапе должны быть исправлены все недостатки схемы проектируемой системы, которые не ыбли выявлены на предыдущих этапах, т. к. выявление ошибок проектирования на этапе разработки и внерения несет большие убытки.

Соседние файлы в предмете Методы и средства проектирования информационных систем и технологий