Главная страница

Реферат 1 Введение 3 Аналитическая часть 5


Скачать 1.24 Mb.
НазваниеРеферат 1 Введение 3 Аналитическая часть 5
Дата11.03.2018
Размер1.24 Mb.
Формат файлаdocx
Имя файлаdiplom_-_Copy_1_checked.docx
ТипРеферат
#38138
страница14 из 16
1   ...   8   9   10   11   12   13   14   15   16

Разработка модуля статистических отчетов и его интеграция с общей программной системой

Реализация модуля отчетов


В соответствии с описанным в теоретической части пояснительной записки, был разработан модуль, позволяющий реализовывать «обобщенные» отчеты.
С клиентской стороны реализация представляет из себя html-страницу, логику взаимодействия с сервером на которой осуществляется с помощью angularjs-контроллера.
С серверной стороны был выбран следующий подход:
В слое бизнес-логики есть модуль, описываемый интерфейсом IReportBl. Этот интерфейс объявляет метод GetNextStep, который принимает на вход все предыдущие шаги и тип отчета, и возвращает либо поля для нового шага, либо результаты. Результаты могут быть любых из стандартных видов – таблица, график, столбчатая диаграмма.
Сам модуль базового отчета описывается интерфейсом IReportBase, так-же имеющим метод GetNextStep, с сигнатурой и выходным типом идентичным IReportBl.GetNextStep
Базовая реализация IReportBl.GetNextStep, в свою очередь, является некой «фабрикой», которая по типу отчета определяет реализацию IReportBase и делегирует ему исполнение GetNextStep.
При реализации конкретных отчетов было выявлено, что они обладают, по сути, одинаковым количеством шагов и типом параметров на этих шагах.
В результате этого был создан абстрактный класс BaseReportSimple, который реализует IReportBase. В конкретных отчетах, реализуемых в данной работе, необходимо реализовать методы GetStartList и GetViewResult, которые возвращают список для выбора параметра отчета, и сам результат в виде таблицы или графика.
Также, для реализации отчета по оценки адекватности составления теста был реализован класс RushStatistics.

Классы


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

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



Описание классов

        1. Класс BaseController

Данный класс описывает базовый функционал для «контроллера» - модуля слоя представления.

public abstract class BaseController : Controller

Элементы класса

Описание

Поля

protected IBlFactory BlFactory;

Поле, содержащее ссылку на реализацию IBlFactory

Методы

protected override void OnActionExecuting(ActionExecutingContext filterContext)

Метод, в котором происходит инициализация поля BlFactory



        1. Класс ReportController

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

public class ReportsController : BaseController

Элементы класса

Описание

Свойства

private IMessageBl _bl;

Содержит ссылку на реализацию модуля бизнес-логики сообщений

Методы

public ActionResult Index()

Возвращает клиентское представление для основной страницы модуля

public ViewResult BaseReport(int type)

Возвращает клиентское представление для базового отчета

public JsonResult BaseReportPost (List prevSteps,int type)


Возвращает json со следующим шагом построения отчета.



        1. Класс BaseBl

Данный класс описывает базовый функционал модуля слоя бизнес-логики.

public abstract class BaseBl

Элементы класса

Описание

Свойства

protected IBlManager Manager;

Содержит ссылку на ядро слоя бизнес-логики

Методы

protected Func GetDalFactory;

Возвращает реализацию фабрики слоя доступа к данным

protected BaseBl(IBlManager manager)

Базовый конструктор, который должен явно наследоваться в дочерних классах.



        1. Интерфейс IBlFactory

Интерфейс ядра слоя бизнес-логики для взаимодействия со слоем представления

public interface IBlFactory

Элементы класса

Описание

Методы

void Init(string initUserName);

Инициализация ядра

TEtity GetOf();

Возвращает реализацию интерфейса TEntity модуля бизнес-логики



        1. Интерфейс IBlManager

Интерфейс ядра слоя бизнес-логики для взаимодействия с модулями слоя бизнес-логики

public interface IBlManager

Элементы класса

Описание

Методы

int GetInitUserId();

Возвращает идентификатор пользователя, от которого совершается вызов.

string GetInitUserName();

Возвращает имя пользователя, от которого совершается вызов

Func GetDalFactoryFunc();

Возвращает реализацию фабрики модулей слоя доступа к данным

TEntity GetOf();

Возвращает реализацию интерфейса TEntity модуля бизнес-логики



        1. Класс BlFactory

Данный класс описывает ядро слоя бизнес-логики.

public class BlFactory : IBlFactory, IBlManager

Элементы класса

Описание

Методы

protected Dictionary GetTypeCollection()

Возвращает словарь соответствий типов интерфейсов к типам реализаций.

int GetInitUserId();

Реализует метод интерфейса IBlManager

string GetInitUserName();

Реализует метод интерфейса IBlManager

Func GetDalFactoryFunc();

Реализует метод интерфейса IBlManager

TEntity GetOf();

Реализует метод интерфейса IBlManager

void Init(string initUserName);

Реализует метод интерфейса IBlFactory

TEntity GetOf();

Реализует метод интерфейса IBlFactory



        1. Интерфейс IReportsBl

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

public interface IReportsBl

Элементы класса

Описание

Методы

ReportBaseModel GetViewNext (List prevSteps, ReportBaseTypes type);


Возвращает следующий шаг построения заданного отчета

string GetViewTitle(ReportBaseTypes type);

Возвращает визуальное название отчета

List GetBaseTypes();

Возвращает список базовых отчетов



        1. Интерфейс IDalFactory

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

public interface IDalFactory : IDisposable

Элементы класса

Описание

Методы

TEntity GetOf();

Возвращает реализацию интерфейса TEntity модуля доступа к данным

void BeginTransaction();

Начинает транзакцию

void CommitTransaction();

Завершает транзакцию и сохраняет данные в бд



        1. Класс BaseSimpleReport

Данный класс является базовым для простых одношаговых отчетов.

public abstract class BaseSimpleReport : IReportBase

Элементы класса

Описание




public ReportBaseModel GetViewNext(List prevSteps, IBlManager manager)

Возвращает следующий шаг отчета

public abstract string GetViewTitle();

Возвращает визуальное название отчета



        1. Интерфейс IReportBase

Данный интерфейс описывает базовый отчет

public interface IReportBase

Элементы класса

Описание

Методы

ReportBaseModel GetViewNext( List prevSteps, IBlManager manager);


Возвращает следующий шаг отчета

string GetViewTitle();

Возвращает визуальное название отчета



        1. Класс ReportsHelper

Данный интерфейс описывает модуль доступа к данным подсистемы сообщений.

public static class ReportsHelper

Элементы класса

Описание

Методы

public static double GetTestFinalScore (TestItemModel test, List answers)


Рассчитывает оценку прохождения теста

public static ReportBaseModel GetSimpleSelectStepModel (List selectList,


Возвращает простой шаг

public static string GetPercentString(double inp)

Возвращает представление числа в процентах



        1. Класс DisciplineDetailsReport

Данный класс реализует отчет успеваемости студентов по курсу

public class DisciplineDetailsReport : BaseSimpleReport

Элементы класса

Описание

Методы

public CustomTable GetReport(int discId)


Возвращает результат отчета

protected override ReportBaseModel GetStartList()

Возвращает первый шаг отчета

protected override ReportBaseModel GetViewResult(string paramId)


Возвращает визуальный результат отчета




public override string GetViewTitle()

Возвращает визуальное название отчета



        1. Класс GroupDetailsReport

Данный класс реализует отчет успеваемости студентов в группе

public class GroupDetailsReport : BaseSimpleReport

Элементы класса

Описание

Методы

public CustomTable GetReport(int groupId)


Возвращает результат отчета

protected override ReportBaseModel GetStartList()


Возвращает первый шаг отчета

protected override ReportBaseModel GetViewResult(string paramId)


Возвращает визуальный результат отчета

public override string GetViewTitle()

Возвращает визуальное название отчета



        1. Класс StudentDetailsReport

Данный класс реализует отчет успеваемости студента

public class StudentDetailsReport : BaseSimpleReport

Элементы класса

Описание

Методы

public List GetReport (int studentId)


Возвращает результат отчета

protected override ReportBaseModel GetStartList()


Возвращает первый шаг отчета

protected override ReportBaseModel GetViewResult(string paramId)


Возвращает визуальный результат отчета




public override string GetViewTitle()

Возвращает визуальное название отчета



        1. Класс StudentDetailsReport

Данный класс реализует отчет успеваемости студента

public class StudentDetailsReport : BaseSimpleReport

Элементы класса

Описание

Методы

public List GetReport (int studentId)


Возвращает результат отчета

protected override ReportBaseModel GetStartList()


Возвращает первый шаг отчета

protected override ReportBaseModel GetViewResult(string paramId)


Возвращает визуальный результат отчета




public override string GetViewTitle()

Возвращает визуальное название отчета


1   ...   8   9   10   11   12   13   14   15   16


написать администратору сайта