Главная
страница 1 ... страница 4страница 5страница 6страница 7

4.3 Анализ качества


Для анализа качества предложенного подхода были выбраны следующие критерии:

  • время отклика подсистемы (должно быть не более 5 с);

  • актуальность анализируемых данных.

Анализ качества предложенного подхода проводился на СППР для департамента радиоэлектронной промышленности Министерства промышленности и торговли РФ по методу «чёрного ящика».

При анализе качества было использовано OLAP-хранилище данных объемом порядка 100 тыс. записей. Программные продукты устанавливались согласно диаграмме развёртывания (рис. 4.12):



c:\documents and settings\администратор\мои документы\диаграмма развёртывания.png

Рис. 4.12 Диаграмма развёртывания реализованной подсистемы

Используемые программные продукты размещены на трёх физических серверах со следующими характеристиками: CPU – Xeon (4 ядра, 2800 МГц), ОЗУ – 4 Гб, ОС – Microsoft Windows 2003 Server, Java-машина – JDK 1.6.11. Скорость сети передачи данных – 100 Мбит/с. Для доступа к подсистеме многомерного анализа клиенты использовали веб-браузер Microsoft Internet Explorer 7.0. Время отклика системы измерялось с помощью простого таймера.

Для куба «Анализ показателей организаций-исполнителей» были получены следующие результаты (табл. 4.5):

Таблица 4.5

Анализ качества подхода при анализе первого куба данных



Количество запрашиваемых данных

Время отклика системы

Актуальность данных

1000



да

1500

2,5с

да

2000



да

Для куба «Анализ стоимости мероприятий» были получены следующие результаты (табл. 4.6):

Таблица 4.6

Анализ качества подхода при анализе второго куба данных

Количество запрашиваемых данных

Время отклика системы

Актуальность данных

1200



да

1700

2,5с

да

2200



да

Для куба «Анализ рисков и оценочной стоимости предложений» были получены следующие результаты (табл. 4.7):

Таблица 4.7

Анализ качества подхода при анализе третьего куба данных

Количество запрашиваемых данных

Время отклика системы

Актуальность данных

1200

2,5с

да

1800



да

2500

3,5с

да

На основании полученных результатов можно сделать следующие выводы:



  • все три куба данных удовлетворяют заданным критериям качества: время отклика составляет менее 5 с и все запрашиваемые данные актуальны;

  • в последнем кубе время отклика системы увеличивается за счёт использования пользовательских агрегирующих функций;

  • предложенный подход удовлетворяет заявленным критериям качества.

4.4 Выводы


В данной главе описано применение предложенного подхода построения подсистем многомерного анализа данных в СППР для департамента радиоэлектронной промышленности Министерства промышленности и торговли РФ. Результат представлен на диаграмме развёртывания (рис. 4.12) и на рис. П.5.1 прил. 5. Для анализа качества подхода были разработаны три многомерных куба данных и выбраны соответствующие критерии качества. В результате тестирования, проводимого по методу «черного ящика», предложенный подход можно признать работоспособным.

Заключение


  1. Выбран подход построения подсистемы многомерного анализа данных для СППР, учитывающих особенности изменяемых с течением времени факторов.

  2. Предложена архитектура подсистемы многомерного анализа, основанная на модифицированной трёхзвенной архитектуре построения OLAP-систем.

  3. Выбраны и доработаны программные средства для реализации предложенной архитектуры.

  4. Разработана подсистема многомерного анализа данных в СППР для департамента радиоэлектронной промышленности Министерства промышленности и торговли РФ.


Список литературы


  1. Архипенков С. Хранилища данных. / Д. Голубев, О. Максименко – М.: Диалог-МИФИ, 2002.

  2. Методы и модели анализа данных: OLAP и Data Mining. / А. Барсегян [и др.] – СПб.: БХВ-Петербург, 2004.

  3. Бергер А. Microsoft SQL Server 2005 Analysis Services. OLAP и многомерный анализ данных. – СПб.: БХВ-Петербург, 2007.

  4. Смит Г. Grails. Гибкость Groovy и надежность Java. / П. Ледбрук – М.: Символ-Плюс, 2010.

  5. Спирли Э. Корпоративные хранилища данных. Планирование, разработка и реализация. – М.: Вильямс, 2001.

  6. Харинатх С. SQL Server 2005 Analysis Services и MDX для профессионалов. / С. Куинн – М.: Диалектика, 2008.

Интернет-ресурсы:

  1. http://ru.wikipedia.org/wiki - свободная Интернет-энциклопедия.

  2. http://www.fpm.com/refer/codd.html - статья Е.Ф. Кодда, С.Б. Кодда и С.Т. Солли "OLAP для пользователей-аналитиков: информационно- технологический мандат".

  3. http://www.olap.ru – сайт о бизнес-аналитике.


Приложения


Приложение 1. Схема данных СППР РЭП

c:\documents and settings\администратор\мои документы\модель мероприятий.png

Рис. П.1.1 Схема данных СППР РЭП



Приложение 2. Код модифицированного класса OLAP-сервера, вызывающего агрегирующие функции

package mondrian.rolap;

import mondrian.calc.Calc;

import mondrian.olap.Aggregator;

import mondrian.olap.EnumeratedValues;

import mondrian.olap.Evaluator;

import mondrian.olap.fun.FunUtil;

import java.util.List;


public abstract class RolapAggregator

extends EnumeratedValues.BasicValue

implements Aggregator {

private static int index = 0;


public static final RolapAggregator Sum =

new RolapAggregator("sum", index++, false) {

public Object aggregate(Evaluator evaluator, List members, Calc exp) {

return FunUtil.sum(evaluator, members, exp);

}

};
public static final RolapAggregator Count =



new RolapAggregator("count", index++, false) {

public Aggregator getRollup() {

return Sum;

}
public Object aggregate(Evaluator evaluator, List members, Calc exp) {


return FunUtil.count(evaluator, members, false);

}

};


public static final RolapAggregator Min =

new RolapAggregator("min", index++, false) {

public Object aggregate(Evaluator evaluator, List members, Calc exp) {
return FunUtil.min(evaluator, members, exp);

}

};


public static final RolapAggregator Max =

new RolapAggregator("max", index++, false) {

public Object aggregate(Evaluator evaluator, List members, Calc exp) {
return FunUtil.max(evaluator, members, exp);

}

};


public static final RolapAggregator Avg =

new RolapAggregator("avg", index++, false) {

public Aggregator getRollup() {

return null;

}
public Object aggregate(Evaluator evaluator, List members, Calc exp) {
return FunUtil.avg(evaluator, members, exp);

}

};


public static final RolapAggregator DistinctCount =

new RolapAggregator("distinct-count", index++, true) {

public Aggregator getRollup() {

// Distinct counts cannot always be rolled up, when they can,

// it's using Sum.

return Sum;

}
public RolapAggregator getNonDistinctAggregator() {

return Count;

}
public Object aggregate(Evaluator evaluator, List members, Calc exp) {

throw new UnsupportedOperationException();

}
public String getExpression(String operand) {

return "count(distinct " + operand + ")";

}

};
public static final RolapAggregator Prob =



new RolapAggregator("prob_aggr", index++, false) {

public Aggregator getRollup() {

return null;

}
public Object aggregate(Evaluator evaluator, List members, Calc exp) {

return FunUtil.count(evaluator, members, false);

}

};



public static final EnumeratedValues enumeration =

new EnumeratedValues(

new RolapAggregator[]{Sum, Count, Min, Max, Avg, DistinctCount, Prob});
protected abstract static class BaseAggor extends RolapAggregator {

protected final String factCountExpr;


protected BaseAggor(final String name, final String factCountExpr) {

super(name, index++, false);

this.factCountExpr = factCountExpr;

}
public Object aggregate(Evaluator evaluator, List members, Calc exp) {

throw new UnsupportedOperationException();

}

}



public static class AvgFromSum extends BaseAggor {

public AvgFromSum(String factCountExpr) {

super("AvgFromSum", factCountExpr);

}
public String getExpression(String operand) {

StringBuilder buf = new StringBuilder(64);

buf.append("sum(");

buf.append(operand);

buf.append(") / sum(");

buf.append(factCountExpr);

buf.append(')');

return buf.toString();

}

}


public static class AvgFromAvg extends BaseAggor {

public AvgFromAvg(String factCountExpr) {

super("AvgFromAvg", factCountExpr);

}
public String getExpression(String operand) {

StringBuilder buf = new StringBuilder(64);

buf.append("sum(");

buf.append(operand);

buf.append(" * ");

buf.append(factCountExpr);

buf.append(") / sum(");

buf.append(factCountExpr);

buf.append(')');

return buf.toString();

}

}


public static class SumFromAvg extends BaseAggor {

public SumFromAvg(String factCountExpr) {

super("SumFromAvg", factCountExpr);

}
public String getExpression(String operand) {

StringBuilder buf = new StringBuilder(64);

buf.append("sum(");

buf.append(operand);

buf.append(" * ");

buf.append(factCountExpr);

buf.append(')');

return buf.toString();

}

}



private final boolean distinct;
public RolapAggregator(String name, int ordinal, boolean distinct) {

super(name, ordinal, null);

this.distinct = distinct;

}
public boolean isDistinct() {

return distinct;

}
public String getExpression(String operand) {

StringBuilder buf = new StringBuilder(64);

buf.append(name);

buf.append('(');

if (distinct) {

buf.append("distinct ");

}

buf.append(operand);



buf.append(')');

return buf.toString();

}
public RolapAggregator getNonDistinctAggregator() {

throw new UnsupportedOperationException();

}
public Aggregator getRollup() {

return this;



}

}

Приложение 3. Файл конфигурации OLAP-сервера Risks.mondrian.xml























































































































































































































































































Приложение 4. Исходный код GSP-страницы с OLAP-клиентом





СППР РЭП

Многомерный анализ





div#contentBody{

background-color:transparent;

}



Многомерный анализ данных в СППР РЭП













Приложение 5. Графический пользовательский интерфейс подсистемы многомерного анализа данных в СППР РЭП



Рис П.5.1 Окно анализа стоимости мероприятий

<< предыдущая страница  
Смотрите также:
Диссертация посвящена вопросу оперативного многомерного анализа данных (olap) в системах поддержки принятия решений (сппр). Рассматривается класс систем, учитывающих для формирования оптимальных решений изменяемые с течением времени факторы
945.67kb.
7 стр.
«модели представления времени и их применение в интеллектуальных системах»
44.04kb.
1 стр.
На выполнение работ по созданию информационной системы поддержки оперативного принятия решений на основе цифровых ситуационных карт шельфовых проектов
115.71kb.
1 стр.
Программа «Методы анализа и синтеза проектных решений»
26.32kb.
1 стр.
Трехуровневая модель планирования и принятия решений
586.19kb.
5 стр.
Представленная Соколовой Татьяной Петровной диссертация
28.8kb.
1 стр.
Разработка программных средств для интерактивного анализа публикаций на основе olap-технологии
27.73kb.
1 стр.
Теоретические особенности принятия управленческого решения 2 1 Роль и место принятия решений в процессе управления 2
441.69kb.
2 стр.
Маркетинговые информационные системы
187.16kb.
1 стр.
Перспективы создания информационной системы поддержки принятия решений абитуриентами Г. И. Болтунов, А. Л. Лымарь
30.16kb.
1 стр.
Технология принятия управленческих решений
1188.33kb.
7 стр.
Лабораторная работа №5 «Анализ оптимального решения в условиях риска и неопределенности» Задание на лабораторную работу
253.42kb.
1 стр.