
- •Аннотация
- •Введение
- •Анализ существующих информационных технологий поддержки систем профессиональной диагностики. Постановка задачи проектирования
- •О компании оао «ржд» и квалификационной аттестации
- •Целесообразность проведения квалификационной аттестации в компании оао «ржд»
- •Основные подходы к оценке качества персонала
- •Анализ существующих технологий оценки качества персонала
- •Основные достоинства существующихтехнологий
- •Важнейшие недостатки существующих технологий
- •Обоснование целесообразности разработки автоматизированной процедуры интерактивной оценки квалификационной готовности персонала
- •Постановка задачи
- •Техническое задание на измерительную часть
- •Требования к разрабатываемой системе оценки качества персонала
- •Требования к системе в целом
- •Требования к разрабатываемой измерительной процедуре
- •Требования к функциям системы
- •Требования к программному обеспечению
- •Требования к хостингу
- •Требования к политике информационной безопасности
- •Анализ исходных данных
- •Требования к пользовательскому интерфейсу
- •Требования к персоналу системы оценки качества персонала
- •Описание разработанных подсистем оценки квалификационной готовности персонала
- •Введение в главу
- •Обоснование выбора средств разработки подсистем оценки квалификационной готовности персонала
- •Обоснование выбора системы управления контентом
- •Обоснования выбранной субд
- •Обоснование выбора хостинга
- •Обоснование выбора средстваAdobeFlashдля разработки инструментов оценки квалификационной готовности персонала
- •Обоснование выбора средства eRwin для проектирования и генерации базы данных
- •Описание созданной базы данных
- •Логическая и физическая модели базы данных
- •Генерация базы данных из eRwin в MySql
- •Описание разработанной системы
- •Описание функциональных характеристик разработанных подсистем оценки квалификационной готовности
- •Описание модулей системы
- •Описание модулей подсистемы «Рисуночный экзамен по иностранному языку»
- •Описание модулей подсистемы «Цветовой экзамен по иностранному языку»
- •Интерфейс системы
- •Демонстрация разработанных процедур оценки квалификационной готовности персонала
- •Заключение к главе
- •Системотехнические расчеты
- •Расчет среднего времени реакции системы
- •Выбор модели расчёта
- •Расчёт среднего времени реакции
- •Оценка безошибочности исходных данных
- •Общие сведения
- •Выбор модели расчёта
- •Расчёт информационной цепи
- •Вероятности возникновения ошибок на различных этапах переработки данных
- •Вероятности пропуска ошибок при различных методах контроля
- •Построение информационной цепи
- •Вероятность возникновения ошибки после I-ой операции переработки данных
- •Заключение
- •Экономика
- •Эффективность автоматизации
- •Постановка экономической задачи
- •Расчет затрат, связанных с разработкой проекта автоматизации
- •Затраты на техническое обеспечение
- •Затраты на программное обеспечение
- •Затраты на организационное обеспечение
- •Затраты на информационное обеспечение
- •Итоговые затраты
- •Расчет показателей эффективности проекта
- •Расчет показателя «уровень информационного обеспечения» разрабатываемой системы
- •Расчет показателя «уровень трудозатрат отдела кадров»
- •Расчет экономического эффекта.
- •Анализ человеко-машинного взаимодействия (ачмв)
- •Рисуночный экзамен по иностранному языку
- •Цветовой экзамен по иностранному языку
- •Инструкция лаборанта
- •Тестовые результаты прохождения методики «Рисуночный экзамен по иностранному языку»
- •Заключение
- •Список использованной литературы
- •Приложение №1 Инструкция пользователя
- •Рисуночный экзамен по языку
- •Цветовой экзамен по языку
- •Приложение №2 Листинг методики «Рисуночный экзамен по иностранному языку» Слой «Диагностика: Кадр 1»
- •Слой «Диагностика: Кадр 2»
- •Слой «Диагностика: Кадр 3»
- •Слой «Buttons: Кадр 1»
- •Фрагмент ролика «StartBtnMc»
- •Кнопка «Save_username»
- •Кнопка «Save»
- •Фрагмент ролика «StopBtnMc»
- •Кнопка «Закрыть»
- •Фрагмент ролика «в начало»
- •Кадр 1 «StartBtnMc: Layer 1»
- •Кадр 1 «StopBtnMc: Слой 1»
- •Кадр 1 «в начало: Слой 1»
- •Приложение №3 Листинг методики «Цветовой экзамен по иностранному языку» Слой «Оппонентные цвета: Кадр 1»
- •Кадр 2 «Оппонентные цвета»
- •Кадр 3 «Оппонентные цвета»
- •Слой «Buttons: Кадр 1»
- •Фрагмент видеоролика «StartBtnMc»
- •Кнопка «Save_username»
- •Кнопка «Save»
- •Фрагмент видеоролика «StopBtnMc»
- •Оглавление
- •Глава 1Анализ существующих информационных технологий поддержки систем профессиональной диагностики. Постановка задачи проектирования 5
- •Глава 2 Описание разработанных подсистем оценки квалификационной готовности персонала 37
- •Глава 3Системотехнические расчеты 69
- •Глава 4Экономика 82
- •Глава 5Анализ человеко-машинного взаимодействия (ачмв) 95
Кнопка «Save»
//----------------------ЗАПИСЬ ОТВЕТОВ В БАЗУ ДАННЫХ------------------------
//@id пользователя
//@id метода
//@время начала теста
//@ответ пользователя
//@время ответа
//@время окончания теста
//@id картинки
//@номер детали
//@вариант методики
on (press)
{
var blok:Number=0;
if(example1.data.met=='a')
{
if((example1.data.o1%2 == 0)and(example1.data.o2%2 == 0)and(example1.data.o3%2 == 0)and(example1.data.o4%2 == 0))
{
blok=1;
trace("БЛОКИРОВАТЬ!!!");
}
else
{
blok=0;
trace("РАЗБЛОКИРОВАТЬ!!!");
}
}
if(example1.data.met=='b')
{
if((txt.text==' ')or(txt.text=='')or(txt.text=='Вы не дали ответ!'))
{
blok=1;
txt.text='Вы не дали ответ!'
trace("БЛОКИРОВАТЬ!!!");
}
else
{
blok=0;
trace("РАЗБЛОКИРОВАТЬ!!!");
}
}
if(example1.data.met=='c')
{
blok=0;
trace("РАЗБЛОКИРОВАТЬ!!!");
}
if (blok==0)
{
//******************СЧИТЫВАЕМ ОТЫЕТЫ ЮЗЕРА*****************************
if(example1.data.met=='a')
{
if(o1.selected==true)
{
example1.data.Answer=o1.label;
trace('Она выбрала 1 вариант!!!'+example1.data.Answer);
}
if(o2.selected==true)
{
if(o1.selected==true)
{
example1.data.Answer=example1.data.Answer+','+o2.label;
trace('Она выбрала еще и 2 вариант!!!'+example1.data.Answer);
}
else
{
example1.data.Answer=o2.label;
trace('Она выбрала 2 вариант!!!'+example1.data.Answer);
}
}
if(o3.selected==true)
{
if((o1.selected==true)or(o2.selected==true))
{
example1.data.Answer=example1.data.Answer+','+o3.label;
trace('Она выбрала еще и 3 вариант!!!'+example1.data.Answer);
}
else
{
example1.data.Answer=o3.label;
trace('Она выбрала 3 вариант!!!'+example1.data.Answer);
}
}
if(o4.selected==true)
{
if((o1.selected==true)or(o2.selected==true)or(o3.selected==true))
{
example1.data.Answer=example1.data.Answer+','+o4.label;
trace('Она выбрала еще и 4 вариант!!!'+example1.data.Answer);
}
else
{
example1.data.Answer=o4.label;
trace('Она выбрала 4 вариант!!!'+example1.data.Answer);
}
}
if((o1.selected==false)and(o2.selected==false)and(o3.selected==false)and(o4.selected==false))
{
example1.data.Answer="-";
trace('Юзер ничего не выбрал!!!'+example1.data.Answer);
}
}
//------------------------
if (example1.data.met=='b')
{
example1.data.Answer=txt.text;
}
//------------------------
if (example1.data.met=='c')
{
example1.data.Answer='Пройдено '+Math.round((example1.data.count+1)/example1.data.schet*100)+'%';
}
//---присваиваем значения чекбоксам
o1.label=' ';
o2.label=' ';
o3.label=' ';
o4.label=' ';
//*************ПРИСВАИВАЕМ ЗНАЧЕНИЯ ЧЕКБОКСАМ************************
var example1:SharedObject=SharedObject.getLocal("example1");
//увеличиваем значение счетчика на 1
example1.data.count=example1.data.count+1;
trace("счетчик: "+example1.data.count);
//указываем номер детали, о которой спрашиваем
per=example1.data.count+1;
//---присваиваем значения чекбоксам (вариант а)------------
if(example1.data.met=='a')
{
o1.enabled=true;
o2.enabled=true;
o3.enabled=true;
o4.enabled=true;
var rand: Number;
var massiv=new Array();
massiv[1]=NameDetails[example1.data.countcount][example1.data.count+1];
massiv[2]=FalseNameDetails1[example1.data.countcount][example1.data.count+1];
massiv[3]=FalseNameDetails2[example1.data.countcount][example1.data.count+1];
massiv[4]=FalseNameDetails3[example1.data.countcount][example1.data.count+1];
var massiv1=new Array();
massiv1[1]=o1;
massiv1[2]=o2;
massiv1[3]=o3;
massiv1[4]=o4;
var p=new Array();
for(var i:Number=1;i<=4;i++)
{
p[i]=0;
}
var t:Number=1;
while((massiv1[1].label==' ')or(massiv1[2].label==' ')or(massiv1[3].label==' ')or(massiv1[4].label==' '))
{
while((p[1]==rand) or (p[2]==rand) or (p[3]==rand) or (p[4]==rand))
{
rand=Math.round(Math.random()*3+1);
trace ('случайное число равно '+rand);
}
trace('значение параметра t равно '+t);
massiv1[rand].label=massiv[t];
p[t]=rand;
t++;
}
for(var i:Number=1;i<=4;i++)
{
if(massiv1[i].label=='undefined')
{
massiv1[i].label=massiv[1];
}
}
}
//---присваиваем значения чекбоксам (вариант b)------------
if (example1.data.met=='b')
{
o1.enabled=false;
o2.enabled=false;
o3.enabled=false;
o4.enabled=false;
_root.createTextField('txt',120,535,197,230,25);
txt.type='input'; //поле ввода
txt.text = ' ';
txt.background = true;
txt.border = true;
_root.attachMovie("ris", "mc",1);
_root["mc"]._x = 511;
_root["mc"]._y = 150;
}
//---присваиваем значения чекбоксам (вариант c)------------
if(example1.data.met=='c')
{
o2.label=' '+NameDetails[example1.data.countcount][example1.data.count+1];
o1.enabled=false;
o3.enabled=false;
o4.enabled=false;
_root.attachMovie("ris", "mc",1);
_root["mc"]._x = 511;
_root["mc"]._y = 150;
}
//********************ОПРЕДЕЛЯЕМ ВРЕМЯ ОТВЕТА***************************
mydate = new Date();
sec = mydate.getSeconds();
min = mydate.getMinutes();
hour = mydate.getHours();
milli=mydate.getMilliseconds();
if (sec<10)
{
sec = "0"+sec;
}
if (min<10)
{
min = "0"+min;
}
if (hour<10)
{
hour = "0"+hour;
}
if (milli<10)
{
milli = "0"+milli;
}
time = hour add ":" add min add ":" add sec add ":" add milli;
trace("Время ответа: "+time);
//***************ЗАПИСЬ ОТВЕТОВ В БАЗУ ДАННЫХ***************************
var my_lv:LoadVars = new LoadVars();
var lo_lv:LoadVars = new LoadVars();
lo_lv.onLoad = function(success:Boolean)
{
if (success)
{
}
else
{
trace("Ошибка в загрузке / разборе результирующей строки.");
ttt.text="Ошибка в загрузке / разборе результирующей строки.";
}
}
{
mysql_query ($table)
//отправляем id пользователя
my_lv.idusera=example1.data.idusera;
//отправляем время начала тестирования
if(example1.data.count==1)
{
my_lv.StartTime=example1.data.vremya_nachala;
}
else
{
my_lv.StartTime="-";
}
//отправляем ответ пользователя
my_lv.Answer=example1.data.Answer;
//отправляем время каждого ответа
my_lv.AnswerTime=time;
//отправляем время окончания тестирования
if(example1.data.count==example1.data.schet)
{
my_lv.ExitTime=time;
example1.data.min_exit=min;
example1.data.sec_exit=sec;
example1.data.mill_exit=milli;
example1.data.hour_exit=hour;
}
else
{
my_lv.ExitTime="-";
}
//отправляем id картинки, id детали, вариант методики
my_lv.pic=example1.data.pic;
my_lv.detal=IdDetails[example1.data.countcount][example1.data.count];
my_lv.variant=example1.data.met;
//отправляем дату
my_lv.current_data=example1.data.Data;
my_lv.sendAndLoad("http://site.ru/UsersAnswerPic.php", lo_lv, "POST");
}
//*****************************ОБНУЛИМ ЧЕКБОКСЫ************************
o1.selected=false;
o2.selected=false;
o3.selected=false;
o4.selected=false;
//*****************************************************************
//если пользователь ответил на все вопросы, то блокируем кнопку и меняем ее цвет
if(example1.data.count==example1.data.schet)
{
//*****************ЗАПИСЬ ОТВЕТОВ В БАЗУ ДАННЫХ*************************
var my_lv1:LoadVars = new LoadVars();
var lo_lv1:LoadVars = new LoadVars();
lo_lv1.onLoad = function(success:Boolean)
{
if (success)
{
}
else
{
trace("Ошибка в загрузке / разборе результирующей строки.");
ttt.text="Ошибка в загрузке / разборе результирующей строки.";
}
}
{
mysql_query ($table)
//отправляем id пользователя
my_lv1.idusera=example1.data.idusera;
//отправляем id метода (в данном случае это 1, т.к. метод "рисуночный)
my_lv1.idmetod='1';
//отправляем id картинки, id детали, вариант методики
my_lv1.additional_inf=example1.data.pic+','+example1.data.met+','+IdDetails[example1.data.countcount][example1.data.count];
my_lv1.sendAndLoad("http://site.ru/UsersAnswerPicCompleted.php", lo_lv1, "POST");
}
//--------------------------------------------------
if (example1.data.r==1)
{
save.enabled= false;
gownColor=new Color(save);
gownColor.setRGB(0xCCCCCC);
_root["txt"].removeTextField();
_root.mc.removeMovieClip();
//--присваиваем пустое значение кол-ву деталей
per='';
//---присваиваем значения чекбоксам
o1.label=' ';
o2.label=' ';
o3.label=' ';
o4.label=' ';
//-------------------заблокировали чекбоксы------
o1.enabled=false;
o2.enabled=false;
o3.enabled=false;
o4.enabled=false;
}
else
{
example1.data.countcount=example1.data.countcount+1;
example1.data.risunok=risunok[example1.data.countcount][1];
example1.data.r=example1.data.r-1;
example1.data.schet=a[example1.data.countcount];
trace(example1.data.schet);
example1.data.pic=pic[example1.data.countcount];
trace(example1.data.pic);
example1.data.met=met[example1.data.countcount];
trace(example1.data.met);
example1.data.count=0;
per='1';
if(example1.data.met=='a')
{
_root["txt"].removeTextField();
_root.mc.removeMovieClip();
o1.label=' ';
o2.label=' ';
o3.label=' ';
o4.label=' ';
o1.enabled=true;
o2.enabled=true;
o3.enabled=true;
o4.enabled=true;
//---присваиваем значения чекбоксам (вариант а)------------
var rand: Number;
var massiv=new Array();
massiv[1]=NameDetails[example1.data.countcount][1];
massiv[2]=FalseNameDetails1[example1.data.countcount][1];
massiv[3]=FalseNameDetails2[example1.data.countcount][1];
massiv[4]=FalseNameDetails3[example1.data.countcount][1];
var massiv1=new Array();
massiv1[1]=o1;
massiv1[2]=o2;
massiv1[3]=o3;
massiv1[4]=o4;
var p=new Array();
for(var i:Number=1;i<=4;i++)
{
p[i]=0;
}
var t:Number=1;
while((massiv1[1].label==' ')or(massiv1[2].label==' ')or(massiv1[3].label==' ')or(massiv1[4].label==' '))
{
while((p[1]==rand) or (p[2]==rand) or (p[3]==rand) or (p[4]==rand))
{
rand=Math.round(Math.random()*3+1);
}
massiv1[rand].label=massiv[t];
p[t]=rand;
t++;
}
for(var i:Number=1;i<=4;i++)
{
if(massiv1[i].label=='undefined')
{
massiv1[i].label=massiv[1];
}
}
}
if(example1.data.met=='b')
{
//---присваиваем значения чекбоксам
o1.label=' ';
o2.label=' ';
o3.label=' ';
o4.label=' ';
o1.enabled=false;
o2.enabled=false;
o3.enabled=false;
o4.enabled=false;
_root.createTextField('txt',120,535,197,230,25);
txt.type='input'; //поле ввода
txt.text = ' ';
txt.background = true;
txt.border = true;
_root.attachMovie("ris", "mc",1);
_root["mc"]._x = 511;
_root["mc"]._y = 150;
}
if(example1.data.met=='c')
{
//---присваиваем значения чекбоксам
o1.label=' ';
o2.label=' ';
o3.label=' ';
o4.label=' ';
_root["txt"].removeTextField();
_root.attachMovie("ris", "mc",1);
_root["mc"]._x = 511;
_root["mc"]._y = 150;
o1.enabled=false;
o2.enabled=true;
o3.enabled=false;
o4.enabled=false;
o2.label=' '+NameDetails[example1.data.countcount][1];
}
//--------------------------------------------------------------
//выводим картинку на экран
/*
ширина и высота контейнера
*/
WIDTH = 510;
HEIGHT = 450;
/*
дальше расположен код с обработчиками событий, который позволяет следить за процессом загрузки изображения
*/
var movieClipLoader:MovieClipLoader = new MovieClipLoader();
var obj:Object = new Object();
obj.onLoadStart = function(target:MovieClip)
{
trace("Загрузка стартовала...");
};
obj.onLoadProgress = function(target:MovieClip, loadedBytes:Number, totalBytes:Number)
{
trace("Загружено: "+(totalBytes/totalBytes*100)+" %");
};
obj.onLoadComplete = function(target:MovieClip)
{
trace("Загрузка завершена...");
};
obj.onLoadInit = function(target:MovieClip)
{
trace("С загруженным объектом можно работать...");
/*
масштабируем полученное изображение, если это изображение по ширине или высоте превышает размеры контейнера
*/
if (target._width>WIDTH || target._height>HEIGHT)
{
var n;
if (target._width>WIDTH)
{
n = target._width/WIDTH;
target._width /= n;
target._height /= n;
}
if (target._height>HEIGHT)
{
n = target._height/HEIGHT;
target._width /= n;
target._height /= n;
}
}
/*
располагаем изображение по центру контейнера
*/
target._x = (WIDTH-target._width)/2;
target._y = (HEIGHT-target._height)/2;
};
obj.onLoadError = function(target:MovieClip, errorCode:String)
{
trace("Ошибка при загрузке файла! Код ошибки: "+errorCode);
};
movieClipLoader.addListener(obj);
/*
создаём контейнер, в который будем загружать изображение
*/
_root.createEmptyMovieClip("conteiner", _root.getNextHighestDepth());
/*
запускаем загрузку изображения
*/
movieClipLoader.loadClip(example1.data.risunok, conteiner);
}
}
//*************************************************************************
example1.data.o1=0; // обнуляем счетчик для нажатий на чебокс о1
example1.data.o2=0; //обнуляем счетчик для нажатий на чебокс о2
example1.data.o3=0; //обнуляем счетчик для нажатий на чебокс о3
example1.data.o4=0; //обнуляем счетчик для нажатий на чебокс о4
}
}