Anotācija




НазваниеAnotācija
страница9/19
Дата публикации13.07.2013
Размер1.03 Mb.
ТипДокументы
exam-ans.ru > Информатика > Документы
1   ...   5   6   7   8   9   10   11   12   ...   19
^

Показатель и критерий качества SLO


Каждый SLO содержит по одному модулю (классу) с Java Script функциями, отвечающими за вызов функций SCORM API. Эти методы не используют вызовов методов других модулей, а также не обращаются к свойствам других модулей. Поэтому использование метрик, направленных на оценку иерархии классов программной системы, а также метрики сцепления и отклика будет нецелесообразно В случае наличия только одного класса одной из составляющих при расчёте показателя качества будет метрика LCOM из метрического набора Чидамбера и Кемерера. Также будут применены метрики из набора Лоренца и Кидда – Размер класса, Средний размер операции, Среднее количество параметров на операцию. Ещё одной составляющей показателя будет метрика, оценивающая наличие методов для вызова всех функций SCORM API.

С помощью LCOM будет определена составляющая степени связности внутри модуля. Метрики Лоренца и Кидда помогут определить сложность реализации SCORM API, предложенную разными разработчиками. Однако, оценка сложности реализации с помощью только оценки размера класса и количества операций может оказаться некорректной. Дело в том, что не все разработчики SLO включают в модуль реализации SCORM API вызов функций поддержки – GetLastError(), GetErrorString(), GetDiagnostics(). В таком случае может возникнуть ситуация, в которой SLO с относительно низкими значениями показателей метрик Лоренца и Кидда будут оценены как более качественные, хотя низкие значения могли возникнуть из-за отсутствия реализации каких-либо функций поддержки. Всвязи с этим вводится дополнительная составляющая показателя качества – наличие методов для вызова всех функций SCORM API – Methods Presence (MP).

Так как составляющие показателя качества разнообразны по своей природе, необходима общая шкала их оценки. Шкала оценок будет введена позже, на основании полученных значений метрик.

Полученные значения будут оценены с помощью введённой шкалы (каждому значению будет поставлена оценка – MarkMP, MarkLCOM и т. д.), а окончательное значение показателя качества для SLO будет рассчитываться по формуле:



(4.1)

Критерий качества – чем выше значение показателя качества SLO, тем он качественнее.
    1. ^

      Методика расчёта показателей качества


Методика состоит из следующих шагов:

Шаг 1: Поиск в упаковке SLO файла с JavaScript функциями, реализующими вызов методов SCORM API.

Шаг 2: Расчёт значений выбранных метрик для найденного JavaScript модуля

^ Шаг 3: Ранжирование полученных значений с помощью введённой шкалы

Шаг 4: Расчёт значения показателя качества с помощью формулы 4.1

Шаг 5: Оценка качества SLO с помощью введённого критерия качества

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

        Выбор JavaScript модулей


Перед построением диаграмм классов рассмотрим перечень модулей каждого SLO и выделим классы, необходимые для исследования. Это удобно сделать с помощью файлов imsmanifest.xml. Рассмотрим раздел ресурсов файла imsmanifest.xml каждого из исследуемых SLO и выделим JavaScript модуль, содержащий функции вызова методов SCORM API:

  • SLO Articulate – SCORMFunctions.js;

  • SLO eXe – APIWrapper.js

  • SLO Learning Content Development System - sco_api.js;

Раздел ресурсов файла imsmanifest.xml каждого из исследуемых SLO приведён в приложениях 1, 2, 3.
      1. ^

        Расчёт метрик


В этом разделе приведён порядок расчёта выбранных метрик для исследуемых модулей. Так как выбранные метрики основываются на методах и свойствах класса, для каждого SLO указывается перечень методов вызова функций SCORM API и используемые свойства. Реализации методов приведены в приложениях 4, 5, 6. Для расчёта значения каждой метрики для каждого SLO приводятся таблицы, содержащие промежуточные данные для расчётов.

  • ^ SLO Articulate

Методы:

- SCORM_CallLMSInitialize()

- SCORM_CallLMSSetValue(strElement, strValue)

- SCORM_CallLMSGetValue(strElement)

- SCORM_CallLMSCommit()

- SCORM_CallLMSFinish()

- SCORM_GetLastError()

- SCORM_GetLastErrorDesc()

Свойства

- SCORM_TRUE:Boolean

- SCORM_FALSE:Boolean

- SCORM_findAPITries:Number

- SCORM_objAPI:Number

- intSCORMError:Object

- strSCORMErrorString:String

- strSCORMErrorDiagnostic:String

- blnReviewModeSoReadOnly:Boolean

В таблице 4.2 представлено значение метрики MP:

Таблица 4.2

MPArticulate

^ Функция SCORM API

Наличие вызова (есть/нет)

Initialize()

1

Terminate()

1

GetValue()

1

SetValue()

1

Commit()

1

GetLastError()

1

GetErrorString()

1

GetDiagnostic()

0




МР: 1х7=7

Для расчёта LCOM выделены наборы переменных, используемых каждым методом:

- (1) SCORM_CallLMSInitialize() = {SCORM_objAPI, SCORM_FALSE, intSCORMError, strSCORMErrorString, strSCORMErrorDiagnostic}

- (2) SCORM_CallLMSSetValue(strElement, strValue) = {blnReviewModeSoReadOnly, SCORM_objAPI, SCORM_FALSE, intSCORMError, strSCORMErrorString, strSCORMErrorDiagnostic}

- (3) SCORM_CallLMSGetValue(strElement) = {SCORM_objAPI, intSCORMError, strSCORMErrorString, strSCORMErrorDiagnostic}

- (4) SCORM_CallLMSCommit() = {SCORM_objAPI, SCORM_FALSE, intSCORMError, strSCORMErrorString, strSCORMErrorDiagnostic}

- (5) SCORM_CallLMSFinish() = {SCORM_objAPI, SCORM_FALSE, intSCORMError, strSCORMErrorString, strSCORMErrorDiagnostic}

- (6) SCORM_GetLastError() = {intSCORMError}

- (7) SCORM_GetLastErrorDesc() = {strSCORMErrorString, strSCORMErrorDiagnostic}

Пары методов без общих экземплярных переменных: (6)(7). Общее количество – 1.

Пары методов с общими экземплярными переменными: (1)(2), (1)(3), (1)(4), (1)(5), (1)(6), (1)(7), (2)(3), (2)(4), (2)(5), (2)(6), (2)(7), (3)(4), (3)(5), (3)(6), (3)(7), (4)(5), (4)(6), (4)(7), (5)(6), (5)(7). Общее количество – 20. Отсюда LCOM = 0.

В таблице 4.3 представлен расчёт значения метрики «CS»:

Таблица 4.3

CSArticulate

Операция

Локальные переменные

^ Глобальные переменные

SCORM_CallLMSInitialize()

strResult

SCORM_FALSE,

SCORM_objAPI,

intSCORMError,

strSCORMErrorString,

strSCORMErrorDiagnostic,

blnReviewModeSoReadOnly

SCORM_CallLMSSetValue(strElement, strValue)

strResult

SCORM_CallLMSGetValue(strElement)

strResult

SCORM_CallLMSCommit()

strResult

SCORM_CallLMSFinish()

strResult

SCORM_GetLastError()

-

SCORM_GetLastErrorDesc()

-







Кол-во операций: 7

Кол-во переменных: 11

CS: 7+11=18

В таблице 4.4 представлен расчёт значения метрики «OSavg»:

Таблица 4.4

OSavg(Articulate)

Операция

Количество сообщений

SCORM_CallLMSInitialize()

12

SCORM_CallLMSSetValue(strElement, strValue)

15

SCORM_CallLMSGetValue(strElement)

15

SCORM_CallLMSCommit()

12

SCORM_CallLMSFinish()

12

SCORM_GetLastError()

3

SCORM_GetLastErrorDesc()

1




Кол-во операций: 7

Кол-во сообщений: 12х3+15х2+3+1=70

OSavg: 70/7=10

В таблице 4.5 представлен расчёт значения метрики «NPavg»:

Таблица 4.5

NPavg(Articulate)

Операция

Количество параметров

SCORM_CallLMSInitialize()

0

SCORM_CallLMSSetValue(strElement, strValue)

2

SCORM_CallLMSGetValue(strElement)

1

SCORM_CallLMSCommit()

0

SCORM_CallLMSFinish()

0

SCORM_GetLastError()

0

SCORM_GetLastErrorDesc()

0




Кол-во операций: 7

Кол-во параметров: 2+1=3

NPavg: 3/7=0.43

Здесь и далее в этом разделе, в случае необходимости рассмотрения операции класса, операцией считается вызов функции SCORM API.

  • ^ SLO Learning Content Development System

Методы:

- scormInitialize()

- scormTerminate()

- scormCommit()

- scormGetValue(name)

- scormSetValue(name, value)

- scormGetLastError()

- scormGetErrorString()

- scormGetDiagnostics()

Свойства:

- _sAPI:String

- apiHandle:Null

В таблице 4.6 представлено значение метрики МР:

Таблица 4.6

МРLCDS

^ Функция SCORM API

Наличие вызова (есть/нет)

Initialize()

1

Terminate()

1

GetValue()

1

SetValue()

1

Commit()

1

GetLastError()

1

GetErrorString()

1

GetDiagnostic()

1




МР: 8

Для расчёта LCOM выделены наборы переменных, используемых каждым методом:

- (1) scormInitialize() = {_sAPI}

- (2) scormTerminate() = {_sAPI }

- (3) scormCommit() = {_sAPI }

- (4) scormGetValue(name) = {_sAPI }

- (5) scormSetValue(name, value) = {_sAPI }

- (6) scormGetLastError() = {_sAPI }

- (7) scormGetErrorString() = {_sAPI }

- (8) scormGetDiagnostic() = {_sAPI }

Пары методов без общих экземплярных переменных: отсутствуют. Общее количество – 0.

Общее количество пар методов с общими экземплярными переменными – 28. Отсюда LCOM = 0.

В таблице 4.7 представлен расчёт значения метрики CS:

Таблица 4.7

CSLCDS

Операция

Локальные переменные

^ Глобальные переменные

scormInitialize()

API, result

_sAPI

scormTerminate()

API, result

scormCommit()

API, result

scormGetValue(name)

API, value, errCode

scormSetValue(name, value)

API, result

scormGetLastError()

API

scormGetErrorString()

API

scormGetDiagnostic()

API







Кол-во операций: 8

Кол-во переменных: 15

CS: 15+8=23

В таблице 4.8 представлен расчёт значения метрики OSavg:

Таблица 4.8

OSavg(LCDS)

Операция

Количество сообщений

scormInitialize()

3

scormTerminate(0

3

scormCommit()

3

scormGetValue(name)

5

scormSetValue(name, value)

3

scormGetLastError()

3

scormGetErrorString()

3

scormGetDiagnostic()

3




Кол-во операций: 8

Кол-во сообщений: 26

OSavg: 26/8=3.25

В таблице внизу представлен расчёт значения метрики «NPavg»:

Таблица 4.9

NPavg(LCDS)

Операция

Количество параметров

scormInitialize()

0

scormTerminate(0

0

scormCommit()

0

scormGetValue(name)

1

scormSetValue(name, value)

2

scormGetLastError()

0

scormGetErrorString()

0

scormGetDiagnostic()

0




Кол-во операций: 8

Кол-во параметров: 1+2=3

NPavg: 3/8=0.38




  • SLO eXe

Методы:

- doLMSInitialize()

- doLMSFinish()

- dolLMSGetValue(name)

- dolLMSSetValue(name, value)

- dolLMSCommit()

- doLMSGetLastError()

- doLMSGetErrorString(errorCode)

- dolLMSGetDiagnostics(errorCode)

Свойства:

- UNABLE_TO_LOCATE_THE_LMS_API:String

- LMSINITIALIZE_WAS_NOT_SUCCESSFUL:String

- LMSFINISH_WAS_NOT_SUCCESSFUL:String

- LMSGETVALUE_WAS_NOT_SUCCESSFUL:String

- LMSSETVALUE_WAS_NOT_SUCCESSFUL:String

- LMSCOMMIT_WAS_NOT_SUCCESSFUL:String

- LMSGETLASTERROR_WAS_NOT_SUCCESSFUL:String

- LMSGETERRORSTRING_WAS_NOT_SUCCESSFUL:String

- LMSGETDIAGNOSTICS_WAS_NOT_SUCCESSFUL:String

В таблице 4.10 представлено значение метрики МР:

Таблица 4.10

МРeXe

^ Функция SCORM API

Наличие вызова (есть/нет)

Initialize()

1

Terminate()

1

GetValue()

1

SetValue()

1

Commit()

1

GetLastError()

1

GetErrorString()

1

GetDiagnostic()

1




МР: 1х8=8

Для расчёта LCOM выделены наборы переменных, используемых каждым методом:

- (1) doLMSInitialize() = { UNABLE_TO_LOCATE_THE_LMS_API, LMSINITIALIZE_WAS_NOT_SUCCESSFUL}

- (2) doLMS Finish() = {UNABLE_TO_LOCATE_THE_LMS_API, LMSFINISH_WAS_NOT_SUCCESSFUL }

- (3) doLMSGetValue(name) = {UNABLE_TO_LOCATE_THE_LMS_API, LMSGETVALUE_WAS_NOT_SUCCESSFUL}

- (4) doLMSSetValue(name, value) = { UNABLE_TO_LOCATE_THE_LMS_API, LMSSETVALUE_WAS_NOT_SUCCESSFUL }

- (5) doLMSCommit() = {UNABLE_TO_LOCATE_THE_LMS_API, LMSCOMMIT_WAS_NOT_SUCCESSFUL}

- (6) doLMSGetLastError() = {UNABLE_TO_LOCATE_THE_LMS_API, LMSGETLASTERROR_WAS_NOT_SUCCESSFUL}

- (7) doLMSGetErrorString(errorCode) = {UNABLE_TO_LOCATE_THE_LMS_API, LMSGETERRORSTRING_WAS_NOT_SUCCESSFUL}

- (8) doLMSGetDiagnostics(errorCode) = {UNABLE_TO_LOCATE_THE_LMS_API, LMSGETDIAGNOSTICS_WAS_NOT_SUCCESSFUL}

Пары методов без общих экземплярных переменных: отсутствуют. Общее количество – 0.

Пары методов с общими экземплярными переменными: (1)(2), (1)(3), (1)(4), (1)(5) , (1)(6), (1)(7), (1)(8), (2)(3), (2)(4), (2)(5), (2)(6), (2)(7), (2)(8), (3)(4), (3)(5) , (3)(6), (3)(7), (3)(8), (4)(5), (4)(6), (4)(7), (4)(8), (5)(6), (5)(7), (5)(8), (6)(7), (6)(8), (7)(8). Общее количество – 28. Отсюда LCOM = 0.

В таблице 4.11 представлен расчёт значения метрики «CS»:

Таблица 4.11

CSeXe

Операция

Локальные переменные

^ Глобальные переменные

doLMSInitialize()

api, result, err

UNABLE_TO_LOCATE_THE_LMS_API

LMSINITIALIZE_WAS_NOT_SUCCESSFUL

LMSFINISH_WAS_NOT_SUCCESSFUL

LMSGETVALUE_WAS_NOT_SUCCESSFUL

LMSSETVALUE_WAS_NOT_SUCCESSFUL

LMSCOMMIT_WAS_NOT_SUCCESSFUL

LMSGETLASTERROR_WAS_NOT_SUCCESSFUL

LMSGETERRORSTRING_WAS_NOT_SUCCESSFUL

LMSGETDIAGNOSTICS_WAS_NOT_SUCCESSFUL

_GeneralError

doLMSFinish()

api, result, err

dolLMSGetValue(name)

api, value, errCode

dolLMSSetValue(name, value)

api, result, err

dolLMSCommit()

api, result, err

doLMSGetLastError()

api

doLMSGetErrorString(errorCode)

api

dolLMSGetDiagnostics(errorCode)

api







Кол-во операций: 8

Кол-во переменных: 18+10=28

CS: 8+28=36

В таблице 4.12 представлен расчёт значения метрики «OSavg»:

Таблица 4.12

OSavg(eXe)

Операция

Количество сообщений

doLMSInitialize()

5

doLMSFinish()

5

dolLMSGetValue(name)

6

dolLMSSetValue(name, value)

4

dolLMSCommit()

4

doLMSGetLastError()

3

doLMSGetErrorString(errorCode)

3

dolLMSGetDiagnostics(errorCode)

3




Кол-во операций: 8

Кол-во сообщений: 5х2+4х2+3х3+6=33

OSavg: 33/8=4.13

В таблице 4.13 представлен расчёт значения метрики «NPavg»:

Таблица 4.13

NPavg(eXe)

Операция

Количество параметров

doLMSInitialize()

0

doLMSFinish()

0

dolLMSGetValue(name)

1

dolLMSSetValue(name, value)

2

dolLMSCommit()

0

doLMSGetLastError()

0

doLMSGetErrorString(errorCode)

1

dolLMSGetDiagnostics(errorCode)

1




Кол-во операций: 8

Кол-во параметров: 1х3+2=5

NPavg: 5/8=0.63

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

Таблица 4.14

^ Оценка значений метрик

CH

CS

LCOM

OSavg

NPavg

Значение

Оценка

Значение

Оценка

Значение

Оценка

Значение

Оценка

Значение

Оценка

< 8

8

1

3

30-39

20-29

10-19

1

2

3

10-20

1-9

0

1

2

3

10-15

4-9

1-4

1

2

3

> 0.7

0.5-0.7

< 0.5

1

2

3

Заметим, что при выведении оценок для значений каждой из вышеперечисленных метрик, учитывался диапазон значений метрик, полученных при практических расчётах в разделе 5.4. Применив введённую шкалу оценок, получим исходные данные для расчёта оценки качества каждого из исследуемых SLO. Исходные данные приведены в таблице 4.15.

Таблица 4.15

Исходные данные для расчёта показателей качества

SLO/Метрика

CH

LCOM

CS

OSavg

NPavg

Articulate

1

3

3

1

3

LCDS

3

3

2

3

3

eXe

3

3

1

2

2

На основании данных таблицы и с использованием формулы 4.1 произведён расчёт показателей качества для трёх видов SLO:

Quality(Articulate) = (1+3+3+1+3)/5=2.2

Quality(LCDS) = (3+3+2+3+3)/5=2.8

Quality(eXe) = (3+3+1+2+2)/5=2.2
1   ...   5   6   7   8   9   10   11   12   ...   19

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2015
контакты
exam-ans.ru
<..на главную