Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

note

.pdf
Скачиваний:
7
Добавлен:
07.03.2015
Размер:
1.91 Mб
Скачать

31 КП-02068195-341-07-14

Служащие организации (Employees) готовят сообщения для рассылки в процессе проведения ежедневных бизнес-транзакций.

Отправку этих сообщений выполняют служащие отдела работы с клиентами (Customer Department Employees). Обычно эти действия выполняются во время сбора и проверки данных о рекламных операциях и при подготовке сообщений об операциях для клиентов. Служащие отдела работы с клиентами могут:

-просматривать список сообщений, предназначенных для отсылки, но ещё не отосланных;

-просматривать текст указанного сообщения;

-отсылать указанное сообщение по электронной почте.

3 Основные технические решения

3.1Архитектура системы

Система EM имеет двухуровневую клиент-серверную архитектуру (Рис. 3.1).

На уровне данных размещается подсистема хранения данных. Она содержит СУБД и БД.

На прикладном уровне размещается подсистема приложений. Она содержит байт-код

приложения, виртуальную Java-машину и библиотеку JavaMail API.

Подсистема хранения данных предназначена для хранения оперативных данных системы и данных для формирования аналитических отчетов.

Подсистема приложений предназначена для автоматизации процедур управления электронной почтой.

32 КП-02068195-341-07-14

Прикладной уровень

<<Client>> ПК

<<ByteCode>> *.class

<<JVM>> Java 6.0

<<Library>> JavaMail API

 

<<Server>>

Уровень

Сервер БД

 

данных

<<DBMS>>

 

 

Oracle 11g

 

<<DataBase>>

 

EMDB

Рис. 3.1. Диаграмма развёртывания

Функциональное деление компонентов программного обеспечения по слоям выполняется в

соответствии со структурным паттерном PCMEF+ (Рис. 3.2).

33 КП-02068195-341-07-14

<<layer>> presentation

aquaintance

<<layer>> control

 

<<layer>>

 

entity

domain

mediator

 

<<layer>> foundation

Рис. 3.2. Структурный шаблон PCMEF

Слой presentation (представление) содержит классы, которые определяют GUI-объекты.

Слой control (управление) управляет запросами слоя presentation. Он состоит из классов,

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

Пакет entity (сущность) слоя domain (предметная область) имеет дело с запросами слоя control. Он содержит классы, представляющие «бизнес-объекты». Они хранят (в памяти) объекты,

извлеченные из БД или созданные с тем, чтобы поместить их в БД. Многие классы-сущности — контейнерные классы.

Пакет mediator (посредник) слоя domain устанавливает канал связи между классами пакетов entity и foundation. Такое посредничество обеспечивает две главные цели: во-первых, изолировать два пакета так, чтобы изменения в любом из них могли быть представлены независимо, и, во-

вторых, устранить потребность в классах control, чтобы связаться непосредственно с классами foundation всякий раз, когда должны быть извлечены из БД новые объекты пакета entity (такие запросы от классов пакета control затем передаются через классы пакета mediator).

Слой foundation (основание) отвечает за все коммуникации с БД. Здесь формируются запросы к сохраняемым данным и инициируются транзакции БД.

34 КП-02068195-341-07-14

Пакет acquaintance - пакет знакомств — это автономный пакет, состоящий только из интерфейсов. Он не представляет ни слой, ни часть иерархии слоёв. Пакет acquaintance

группирует интерфейсы как для восходящих связей, так и для нисходящих связей с несоседними объектами.

Информационный обмен между компонентами системы

Входящие в состав EM подсистемы в процессе функционирования должны обмениваться информацией на основе открытых форматов обмена данными по протоколам на основе TCP/IP.

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

3.2 Решения по взаимосвязям со смежными системами

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

3.3Решения по режимам функционирования, диагностированию работы системы

В работе системы можно выделить следующие режимы работы:

1)Работа неавторизованного пользователя

2)Работа авторизованного пользователя

3)Аварийный режим

Специальных процедур диагностирования состояния компонентов системы не предусмотрено.

3.4Решения по численности, квалификации и функциям персонала, режимам его работы, порядку взаимодействия

ЕМ — многопользовательское приложение.

Авторизация пользователя и его права доступа к различным средствам приложения управляются централизованно из БД, которая соединена с прикладной программой.

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

3.5Сведения об обеспечении заданных в ТЗ потребительских характеристик системы, определяющих ее качество

3.5.1Временные характеристики

Время отклика для подпотоков S1 (Просмотреть непосланные сообщения) и S2 (Отобразить

текст сообщения) с 90-процентной вероятностью будет меньше 5 секунд за счет использования

35 КП-02068195-341-07-14

высокопроизводительной СУБД - Oracle 11g Standard Edition, которая обеспечивает работу 4-х

сокетов.

Время отклика для подпотока S3 (Послать сообщение) с 90-процентной вероятностью будет меньше 10 секунд для сообщений электронной почты, не превышающих 1 мегабайт в размере

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

MS Exchange Server 2007 Standard Edition, средств библиотеки JavaMail API и скоростью сети 100

Мбит/с.

3.5.2Надёжность

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

3.5.3Эргономика и техническая эстетика

Требования эргономичности и технической эстетики начиная со 2-ой итерации будут обеспечены использованием набора компонентов Swing библиотеки классов Java Foundation Classes (JFC).

3.5.4Защищенность информации

Защита от несанкционированного доступа обеспечивается в системе EM за счёт парольной аутентификации Пользователя при входе в систему и разделением прав доступа для двух классов пользователей:

1)Сотрудник;

2)Служащий отдела работы с клиентами.

Для восстановления работоспособности системы после сбоев предусмотрено резервное копирование БД средствами СУБД Oracle 11g.

3.6Состав функций, реализуемых системой

На диаграмме вариантов использования (Рис. 3.3) приведены функции системы.

36 КП-02068195-341-07-14

uc Use Case Model

Создать сообщение

Сотрудник

Просмотреть непосланные сообщения

Отобразить текст

сообщения Служащий отдела

работы с клиентами

Послать сообщение

Рис. 3.3. Диаграмма вариантов использования

Итерация 1 системы рассматривает только варианты использования для Служащего отдела работы с клиентами:

1.Просмотреть непосланные сообщения.

2.Отобразить текст сообщения.

3.Послать сообщение.

3.7Решения по комплексу технических средств

В соответствии с ТЗ:

1)в качестве сервера БД будет использован компьютер, имеющийся у AEM-организации, и

установленный в специальном серверном помещении;

2)в качестве ПК пользователей будут использованы компьютеры установленные в настоящее время на рабочих местах Сотрудников;

3)все компьютеры объединены локальной вычислительной сетью с пропускной способностью 100 Мбит/с.

Характеристики сервера

процессор – 2 х Intel Xeon 3 ГГц;

объем оперативной памяти – 16 Гб;

дисковая подсистема – 4 х 146 Гб;

устройство чтения компакт-дисков (DVD-ROM);

37 КП-02068195-341-07-14

– сетевой адаптер – 100 Мбит/с.

Минимальные характеристики для ПК пользователя

процессор – Intel Pentium 1.5 ГГц;

объем оперативной памяти – 256 Мб;

дисковая память – 40 Гб;

сетевой адаптер – 100 Мбит/с.

3.8Решения по информационному обеспечению

Компонентом информационного обеспечения является системная БД «EM».

Итерация 1 ЕМ предполагает, что БД существует заранее и загружена данными

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

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

3.8.1Логическая модель БД

На основе Концептуальной модели предметной области, приведённой в ТЗ (п. 3.2) была получена логическая модель реляционной БД (Рис. 3.4).

 

Employee

 

employee_id

<pi> Characters (4)

<M>

first_name

Variable characters (20)

 

family_name

Variable characters (40)

<M>

login_name

Variable characters (40)

<M>

employee_email

Variable characters (60)

<M>

Key_1 <pi>

 

 

 

 

Contact

 

contact_id

<pi> Characters (5)

<M>

organization

Variable characters (80)

 

first_name

Variable characters (20)

 

family_name

Variable characters (40)

<M>

contact_email

Variable characters (60)

 

Key_1

<pi>

 

 

 

 

 

for

 

 

 

OutMessage

 

 

message_id

<pi>

Integer

<M>

creator

conact_id

<fi1>

Characters (5)

<M>

 

creator_emp_id

<fi2>

Characters (4)

<M>

 

sender_emp_id

<fi3>

Characters (4)

 

 

message_subject

 

Variable characters (40)

<M>

sender

message_text

 

Variable characters (255)

<M>

 

date_created

 

Date & Time

<M>

 

date_emailed

 

Date & Time

 

 

Key_1 <pi>

 

 

 

Рис. 3.4. Логическая модель БД EM

Каждому концептуальному классу поставлена в соответствие таблица:

1)таблица Employee – предназаначена для хранения данных о служащих

AEM-организации;

38 КП-02068195-341-07-14

2)таблица Contact – предназаначена для хранения данных о деловых партнёрах

AEM-организации;

3)таблица OutMessage – предназаначена для хранения сведений об исходящих сообщениях.

3.8.2Физическая модель БД

Рис. 3.5 представляет физическую модель БД, полученную из логической модели,

изображенной на Рис. 3.4.

 

Employee

 

 

employee_id

CHAR(4)

<pk>

not null

first_name

VARCHAR2(20)

 

null

family_name

VARCHAR2(40)

 

not null

login_name

VARCHAR2(40)

<i>

not null

employee_email

VARCHAR2(60)

 

not null

login_UN <i>

 

 

 

employee_id = creator_emp_id

 

employee_id = sender_emp_id

0..*

 

 

0..*

 

Contact

 

contact_id

CHAR(5)

<pk> not null

organization

VARCHAR2(80)

null

first_name

VARCHAR2(20)

null

family_name

VARCHAR2(40)

not null

contact_email

VARCHAR2(60)

null

 

contact_id = conact_id

 

0..*

 

 

 

OutMessage

 

 

message_id

INTEGER

<pk>

not null

conact_id

CHAR(5)

<fk1>

not null

creator_emp_id

CHAR(4)

<fk2>

not null

sender_emp_id

CHAR(4)

<fk3>

null

message_subject

VARCHAR2(40)

 

not null

message_text

VARCHAR2(255)

 

not null

date_created

DATE

 

not null

date_emailed

DATE

 

null

Рис. 3.5. Физическая модель БД EM

Модель определяет физические характеристики (индексы) и использует типы данных конкретной СУБД - Oracle 11g.

Кроме неявных индексов на первичных ключах определен дополнительный уникальный индекс (login_UN) на login_name в таблице Employee. Этот индекс используется, чтобы засвидетельствовать, что пользователь программы работает под login_name БД, который внесен в список таблицы Employee. Такой пользователь рассматривается как законный служащий,

уполномоченный использовать систему EМ.

Нет никаких индексов, определенных на внешних ключах. Считается, что таблицы будут содержать относительно небольшое число записей (скорее тысячи, чем миллионы) и индексы внешнего ключа будут редко использоваться в СУБД, но увеличат стоимость сопровождения.

Таблица 3.1 – Структура таблицы Employee (Сотрудник)

 

 

Тип

Обязат.

Нач. знач.

Только для

 

 

Имя поля (Code)

Название (Name)

(null/

чтения

(Data Type)

(Initial Value)

 

 

not null)

(Read-only)

 

 

 

 

39 КП-02068195-341-07-14

employee_id

 

Код сотрудника

Char(4)

not null

 

FALSE

first_name

 

Имя

Varchar2(20)

null

 

FALSE

family_name

 

Фамилия

Varchar2(40)

not null

 

FALSE

login_name

 

Логин

Varchar2(40)

not null

 

FALSE

employee_email

 

Эл. почта

Varchar2(60)

not null

 

FALSE

Таблица 3.2 – Структура таблицы Contact (Деловой партнёр)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тип

 

Обязат.

Нач. знач.

Только для

Код (Code)

 

Название (Name)

 

(null/

чтения

 

(Data Type)

 

(Initial Value)

 

 

 

 

not null)

(Read-only)

 

 

 

 

 

 

contact_id

Код делового партнёра

Char(5)

 

not null

 

FALSE

organization

Организация

Varchar2(80)

 

null

 

FALSE

first_name

Имя

Varchar2(20)

 

null

 

FALSE

family_name

Фамилия

Varchar2(40)

 

not null

 

FALSE

contact_email

Эл. почта

Varchar2(60)

 

null

 

FALSE

Таблица 3.3 – Структура таблицы OutMessage (Исходящее сообщение)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тип

Обязат.

Нач. знач.

Только для

Код (Code)

 

Название (Name)

(null/

чтения

 

(Data Type)

(Initial Value)

 

 

 

not null)

(Read-only)

 

 

 

 

 

 

message_id

Код сообщения

Integer

not null

 

FALSE

contact_id

Код делового партнёра

Char(5)

not null

 

FALSE

creator_emp_id

Код создателя сообщения

Char(4)

not null

 

FALSE

sender_emp_id

Код отправителя сообщения

Char(4)

null

 

FALSE

message_subject

Тема сообщения

Varchar2(40)

not null

 

FALSE

message_text

Текст сообщения

Varchar2(255)

not null

 

FALSE

date_created

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

Date

not null

 

FALSE

date_emailed

Дата отправки

Date

null

 

FALSE

3.9 Решения по программному обеспечению

Проектные решения по программному обеспечению представлены проектом классов

(диаграмма классов и описание полей и методов классов), моделью инициализации объектов

(диаграмма инициализации) и моделью взаимодействия (диаграммы последовательности).

3.9.1Классы

Врезультате детального проектирования, получены следующие классы:

3.9.1.1 acquaintance.IAConstants

Интерфейс IAConstants (константы) используется для хранения констант системы.

Поля интерфейса:

String DB_DRIVER - Драйвер в формате, указанном поставщиком БД. Используется

Oracle.

String DB_URL - JDBC URL для БД.

int MAX_MESSAGE - Предельное число сообщений, которые могут быть отображены.

String SMTP_ADDRESS - SMTP-адрес для передачи по электронной почте.

40 КП-02068195-341-07-14

3.9.1.2 acquaintance.IAEmployee

Интерфейс acquaintance.IAEmployee (служащий) реализуется классом entity.EEmployee.

Объект EEmployee представляет текущего пользователя ЕМ-приложения.

Методы интерфейса:

String getEmail() - Получение электронного адреса служащего.

String getEmployeeID() - Получение идентификатора служащего.

String getFamilyName() - Получение фамилии служащего.

String getFirstName() - Получение имени служащего.

String getLoginName() - Получение регистрационного имени служащего.

Collection getUnsentOutMessages(int numMsgRetrieve) - Получение всех сообщений

(вплоть до numMsgRetrieve — число извлеченных сообщений), предназначенных этому

служащему.

void removeSentOutMessage() - Удаление сообщения из списка этого служащего,

вероятно, потому, что оно уже послано.

void setEmail(java.lang.String email) - Задание электронного адреса служащего.

void setEmployeelD(java.lang.String id) - Задание идентификатора служащего.

void setFamilyName(java.lang.String familyName) - Задание фамилии данного служащего.

void setFirstName(java.lang.String fname) - Задание имени данного служащего.

void setLoginName(java.lang.String login) - Задание регистрационного имени служащего.

3.9.1.3 acquaintance.IAContact

Интерфейс acquaintance.IAContact (деловой партнер) реализуется классом entity.Econtact.

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

Методы интерфейса:

String getContactID() - Получение идентификатора делового партнера.

String getEmail() - Получение электронного адреса делового партнера.

String getFamilyName() - Получение фамилии делового партнера.

String getFirstName() - Получение имени делового партнера.

String getOrganization() - Получение организации, которой принадлежит данный деловой партнер.

Collection getUnsentOutMessages(int numMsgToBeRetrieved) - Получение всех исходящих сообщений, предназначенных данному деловому партнеру.

void removeSentOutMessage(IAOutMessage msg) - Удаление исходящего сообщения,

предназначенного данному деловому партнеру, вероятно, потому, что оно уже послано.

void setContactID(java.lang.String contactID) - Задание идентификатора делового партнера.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]