· if @proftype_id = 0
· set @proftype_char = '%';
· else set @proftype_char = cast(@proftype_id as nvarchar(10));
В данном участке, создается текстовая переменная, где проверяется входной параметр. Если он равен 0, тогда значение переменной '%'. Это значит "любая строка" для конструкции LIKE в предложении WHERE оператора SELECT. Если не 0, тогда просто преобразуется число в строку. Дальше в коде можно заметить курсор, но с некоторыми изменениями.
Так же добавили следующие поля:
1. dbo.Prof_Types.[name],
2. dbo.Professions.[name]
Это нужно в соответствии с новой структурой переменной типа «Table». Так же имеется следующее изменение:
· cast(dbo.PK.proftype_id as nvarchar(10)) like @proftype_char A
Тут идет проверка вида деятельности. Выбирается либо конкретный вид, либо все. В курсоре происходит проход по тем связям, где компетенция привязана к ОТФ. Чуть ниже идет курсор по связям с ТФ.
Действия курсоров одинаковые. Курсор это такой объект, который проходит по записям, сформированным в запросе при его создании.
«report_t» - это переменная типа «table», куда мы все записываем. «@tf» - булевая переменная, если 1 - происходит группировка по ОТФ, если 0 - по видам деятельности и компетенциям.
Далее мы возвращаем все компоненты - все позиции, что нашлись по нашей специальности и дальше работаем с этой выборкой.
В приложении А приведен код работы по созданию XML-отчета.
Переменные типа «lastActivity» и т.д. отвечают за текущие значения. Например, составляем отчет для такого-то вида деятельности, для такой-то ОТФ и такой-то ТФ. Т.к. значений может быть много, а плодить одинаковые теги не нужно, при переходе к следующей записи полученной выборки проверяем тот же самый ли это вид деятельности, что и был или нет
Рассмотрим следующий пример. Запустим процедуру. На рисунке 3.42 можно заметить один вид деятельности, который относится к трем записям.
Рисунок 3.42 Работа процедуры
Профессия у нас одинаковая и надо, чтобы детали по этим видам деятельности были под одним родителем. Мы построчно читаем выборку, получаем вид деятельности, указанный в текущей записи в переменную «lastActivity», создаем тег вид деятельности.У него можно заметить потомка «название вида». И этому потомку, в текст, ставим значение «lastActivity». Дальше у вида деятельности потомок - «Компетенция», а у него потомок - «Название».
«lastCompetency» - последнее значение наименования компетенции. Считываем значение из выборки. Если значение из выборки не совпадает с нашим последним зафиксированным значением, тогда создаем тег (так же было и для вида деятельности) и пишем в текст наименование компетенции. После компетенции нам необходимо указать связь с ОТФ - создаем для нее свои теги (если последнее значение отличается от текущего). В качестве потомка ОТФ указываем название профессии. Для профессии мы не запоминаем текущее и предыдущее значения, потому что если меняется ОТФ, то и указывается сразу профессия. Если не меняется, то мы уже работаем с этой ОТФ (то есть уже указали профессию). Дальше создаем теги для ТФ (если конечно связь с ТФ существует). Если нет, данные теги не создаются. Далее переходим к требованиям ТФ. Используем процедуру «ShowTFdetails», которая используется при выводе требований в справочнике. На втором этапе разработки данная процедура не подверглась изменениям. В приложении Б приведен код данной процедуры. Передается id ТФ и получается список требований по порядку типов. Cначала трудовые действия, и так далее. Нам необходимо сгруппировать требования по типам (как и в файле от парсера). Поэтому мы проверяем, тот же самый ли это тип требований, что и раньше. Это фиксируется в переменной «currentDetailsTypeId». Если да - создаем соответствующие теги, где указываем наименование типа требований (detailNumber++;). В «detailNumber» считаем, какой это пункт по порядку в текущем типе требований, чтоб вывести item_1, item_2 и т.д. Ну и соответственно выводим само требование. И так дальше проходим по всем типам требований. Дальше считывается следующая строка из выборки связей между ТФ (ОТФ) и компетенциями и начинаем те же операции.
Так же на втором этапе разработки был добавлен множественный выбор профессий на главной форме. Код для работы с профессиями приведен на рисунке 3.43.
Рисунок 3.43 Работа с профессиями
«clbProfessions» - это объект для выбора профессий. В строку «profList» записываем все отмеченные професси через запятую. Затем передаем этот список в «qPS_tree», который вызывает хранимую процедуру «FetchOTFnTF». В приложении Б представлен код процедуры «FetchOTFnTF».
Данная процелура считывает ОТФ и ТФ по выбранным специальностям. «@professions» - сюда помещается список профессий через запятую.
Ниже в коде происходит «парсинг» данной строки и разбиение ее на подстроки с отдельными профессиями
· while(CHARINDEX(',', @professions) > 0) begin
· insert into @profList values (substring(@professions, 0, charindex(',', @professions)));
· set @professions = (select stuff(@professions, 1, charindex(',', @professions), ''));
· end;
«@profList» - переменная типа table, где и будут записаны наши профессии. Дальше идет курсор, который считывает ОТФ по всем специальностям
Изменению подверглась следующая строка:
· Professions.[name] in (select * from @profList);
В комментариях - осталась прошлая версия. То есть мы считываем наши профессии из табличной переменной. И записываем все в ОТФ. Происходит поиск ТФ по тем ОТФ, что уже записали в табличную переменную. «parent_id» - id ОТФ. Остальные модификации - это изменение размеров полей.
В приложении В приведены основные блок-схемы приложения.
3.5 Отчеты
После создания связей с помощью проекций и классификаторов на главной форме, между смысловыми компонентами сферы труда и сферы образовании, используя «FastReport» и XML, получаем следующие отчеты и документы:
· Отчет, где прослеживается связь между профессиональными задачами и трудовыми функциями;
· Отчет, где прослеживается связь между трудовыми функциями и профессиональными задачами;
· Отчет, где прослеживается связь между профессиональными компетенциями и трудовыми функциями;
· Отчет, где прослеживается связь между трудовыми функциями и профессиональными компетенциями;
· Xml - отчет, где прослеживается связь между профессиональными компетенциями с трудовыми функциями
Все отчеты, полученные с помощью FastReport и XML, представлены в приложении Ж. Отчет XML позволяет проследить за следующими компонентами:
1. Название специальности,
2. Связь между компетенциями и трудовыми функциями или Обобщенной трудовой функции
3. Специальность, к которой относится трудовая функция, так как их может быть несколько.
3.6 Выводы по третьей главе
Для сферы образования программа предоставляет возможность:
· Проанализировать компетенции и профессиональные задачи, которые содержаться в образовательном стандарте.
· Проанализировать, где используются компетенции и профессиональные задачи.
· Сопоставить компетенции и профессиональные задачи с обобщенными трудовыми функциями и трудовыми функциями.
· В будущем, автоматизированная система позволит экономить трудозатраты при подготовке ОПОП и РПД.
· Но самая главная особенность системы в том, что она позволит создать оптимальное соотношение потребности в наборе и уровне компетенций, диктуемой рынком труда, и материала, преподаваемого студентам.
4. Тестирование
В ходе работы над ВКР была проведена проверка функций системы и скорости работы данных функций. Были разработаны тестовые задания. Каждый тест включает в себя:
· Исходные данные.
· Эталон проверки.
· Процедуры проверки.
· Результат проверки.
Тест № 1 заключается в ручном добавлении записей в справочник «Федеральные государственные образовательные стандарты». Исходное состояние:
· пользователь находится в системе;
· справочник пуст.
Исходные данные:
a) Набор корректных данных: заполнены простые справочники: Кафедра, Специальность, Вид профессиональной деятельности»
b) Набор некорректных данных: добавление записи без выбора кафедры, специальности, вида профессиональной деятельности.
Эталоны для проверки:
a) при вводе корректных данных: в справочник успешно добавлена запись (рисунок 4.1).
Рис. 4.1 Успешное добавление записи
b) при вводе некорректных данных: на экран выведено сообщение с предупреждением о том, что в полях содержится нулевое значение и добавление записи невозможно (рисунок 4.2).
Рис. 4.2 Добавление записи невозможно
Тест № 1 был выполнен успешно.
Тест № 2 заключается во вставке из буфера обмена информации из ФГОС в справочник. Варианты состояния системы до выполнения теста № 2: В справочнике заполнены все необходимые поля
Варианты исходных данных:
a) набор корректных данных: вставка правильной структуры входных данных из ФГОС (рисунок 4.3)
Рис. 4.3 Правильная структура для занесения в буфер обмена
b) Набор некорректных данных: вставка неправильной структуры входных данных (рисунок 4.4)
Рис. 4.4 Неправильная структура для занесения в буфер обмена
Эталоны для проверки результатов после выполнения теста № 2:
a) при корректных данных: Заполнение справочника и его правильное формирование и отображение (рисунок 4.5)
Рис. 4.5 Отображение справочника
b) при некорректных данных: в таблице не выведено ни одной записи (рисунок 4.6).
Рис. 4.6 Неправильное отображение справочника
Тест № 2 выполнен успешно
Тест № 3 заключается в загрузке в справочник данных из xml-файла. Варианты состояния системы до выполнения теста №3:
· пользователь успешно подключился к серверу и базе данных;
· таблицы пусты
Варианты исходных данных:
a) набор корректных данных: вставка правильной xml-структуры полученного после парсинга документа ФГОС.
b) Набор некорректных данных: вставка неправильной структуры входных данных.
Эталоны для проверки результатов после выполнения теста № 3:
a) при корректных данных: Заполнение справочника и его правильное формирование и отображение и вывод формы об успешности завершения операции (рисунок 4.7)
Рис. 4.7 Отображение справочника
b) при некорректных данных: в таблице не выведено ни одной записи, выведена ошибка о том, что такие теги не поддерживаются (рисунок 4.8).
Рис. 4.8 Вывод ошибки
Тест № 3 выполнен успешно
Тест № 4 заключается в загрузке в справочник данных из документа ФГОС в формате.doc или.docx. Варианты состояния системы до выполнения теста №4:
· пользователь успешно подключился к серверу и базе данных;
· таблицы пусты
Варианты исходных данных:
a) набор корректных данных: выбор документа ФГОС в формате doc.
b) Набор некорректных данных: вставка любого другого документа.
Эталоны для проверки результатов после выполнения теста № 4:
a) при корректных данных: Заполнение справочника и его правильное формирование и отображение данных (рисунок 4.9)
Рис. 4.9 Отображение справочника
b) при некорректных данных: в таблице не выведено ни одной записи, выведена ошибка. (рисунок 4.10).
Рис. 4.10 Вывод ошибки
Тест № 4 выполнен успешно
Представленные выше результаты тестирования функций системы подтверждают правильность её реализации. На основе функционального тестирования можно сделать вывод, что реализованные в системе функции соответствуют постановке задачи на создание информационной системы.
Посмотрим, сколько времени занимает парсинг документа ФГОС. Будут проделаны следующие операции:
1. запустить парсер;
2. выбрать документ ФГОС;
3. выбрать выходной файл xml;
4. кликнуть левой кнопки мыши по кнопке 1.
5. открытие документа
6. работа алгоритма
7. занесение данных в форму
8. закрытие документа
Формирование документа занимает ровно 7 секунд.
Попробуем заполнить этим полученным xml-файлом справочник ФГОС.
Будут проделаны следующие операции:
1. кликнуть левой кнопки мыши по кнопке «получить данные из xml»;
2. Выбрать файл xml.
Заполнение справочника заняло 0.5 секунды.
Загрузим данные в справочник из самого документа ФГОС формата.doc.
Будут проделаны следующие операции:
1. кликнуть левой кнопки мыши по кнопке «добавить из документа»;
2. запуск функций парсера.
3. открытие документа
4. работа алгоритма
5. заполнение справочника
6. закрытие документа
Заполнение полей для профессиональных задач заняло 5 секунд. Заполнение полей для профессиональных компетенций заняло 4 секунды.
Анализируя результаты замеров времени работы, был сделан вывод, что система работает достаточно быстро.
Заключение
В ходе работы над диссертацией проведен анализ предметной области, рассмотрены аналогичные решения и документы сферы труда и сферы образования. Была выбрана методика по составлению программ, разработан набор удобных механизмов работы с текстами ФГОС и ПС. Разработаны механизмы формирования XML-документов для основной информации ФГОС и ПС. Были исследованы на предмет структуры и содержания многие профессиональные и образовательные стандарты, в том числе SWEBOK. Разработана база данных для хранения информации и различные механизмы для работы, поиска и структурирования информации. Разработана программа для поддержки деятельности заведующего кафедрой и профессорско-преподавательского состава при планировании и согласовании ОПОП и РПД, выполнены различные тесты, которые проверяли функциональность и скорость работы системы. Первый и второй этап разработки можно считать успешно завершенными.
Идеи и механизмы обработки информации были представлены в различных докладах и публикациях, которые представлены в списке литературы. Программный продукт планируется развивать и далее. Планируется доработка продукта и расширение его функциональности, уточнение отдельных деталей по нормативным документам, тем самым программа достигнет уровня готового продукта. К следующему этапу разработки можно отнести создание словаря предметной области для уточнения содержания компонентов ФГОС и ПС согласно методике SWEBOK.
Список используемых источников
1. Портал Федеральных государственных образовательных стандартов высшего образования. Методические разработки. [Электронный ресурс] - Режим доступа: http://fgosvo.ru/support/43/5/8