reforef.ru 1
КАЧЕСТВО НА ПП - основни понятия, класификационен модел на качеството

1. Общи понятия

Всеки потребител желае да придобива и използва качествен софтуер.

От това следва, че и стремежът на всеки разработчик е да създава софтуер с високо качество.

Стимулът за това е не само етичен, но има очевидни икономически причини.

Възможността даден програмен продукт да бъде продаден, и то на по-висока цена, зависи силно от неговото качество.

Теоретиците на софтуерните технологии и производство са разбирали важността на качеството на софтуера и в повечето определения на предмета са включвали тази характеристика.



Напоследък повечето автори са склонни да дават по-обща дефиниция на понятието “качество”.

Причината е, че всеки опит за по-подробно определение ще доведе до намирането на контра-примери и, следователно, до опровергаване.

Това е поради

  • прекалената универсалност на понятието “качество” (дори ако се абстрахираме от философския му аспект) и

  • изключително широката му приложимост и уязвимост от практиката.

Така че напоследък като че ли най-добре се възприема определението, дадено в International Standard Quality Vocabulary (ISO 8402-1986).


То има в известен смисъл статут на стандарт:

Качеството е съвкупността от средства и характеристики на даден продукт или услуга, носители на способността му да отговори на явно или неявно указани нужди.

Понякога изразът “указани нужди” се заменя с привидно по-конкретното “нужди на потребителя”.

Но дори един не особено задълбочен анализ показва, че това едва ли е стъпка към по-голяма яснота и конструктивност.

Причината е в значителната размитост на понятието “потребител” и още по-голямата неопределеност на неговите нужди.

При наличието на това определение може да се пристъпи към създаването на модел на качеството на софтуера.


2.3. Класификационен модел

2.3.1. Основна идея

В [6] и [7] е предложен един друг модел на качеството на програмните продукти.

Той се опитва да преодолее някои от недостатъците на йерархичните модели, преди всичко субективността в значителна степен, както и трудоемкостта.

Естествено, тъй като всяко подобрение има своята цена, в този случай това е известна загуба на точност.

Последната обаче, както ще се види, не винаги е жизнено важна.

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

Следователно, ако сме в състояние да кажем за даден програмен продукт А, че

  • той е приблизително толкова добър по качество, колкото добре известните и отлични по качество X и Y, както и че

  • А не е в категорията на добре известните и средни по качество M и N,

  • нито пък в категорията на също така добре известните и лоши по качество P и Q,

то това би било достатъчно в повечето от случаите, в които се поставя проблемът за качеството на програмния продукт А.

 


От това разбиране следва самият модел. Той се основава на т.н. класификационни методи.

2.3.2. Математическа основа на модела

Нека да разгледаме даден тип програмни продукти (текстови редактори, счетоводни програми т.н.).

За този тип определяме множество от характеристики: j1, j2, . . . , jn .

На всяка характеристика може да се присвоява стойност:

1, ако конкретният програмен продукт притежава тази характеристика,

0 - ако не я притежава и

x - ако няма информация за това дали я притежава.

Нека да предположим още, че няколко продукта от този тип са добре известни и че стойността на всяка характеристика за всеки от тези продукти може да бъде определена.

Тези продукти ще наричаме еталони.

Интуитивно ясно е, че е желателно броят на х-овете да се намали, т.е. да работим с максимално пълна информация.

По-нататък, на основата на опита на експерти и потребители, еталоните се разбиват на няколко класа в зависимост от своето качество.

 На практика обикновено се определят два класа (добър и лош) или три (отличен, добър, лош).

Няма обаче никакви принципни трудности, ако класовете са повече.

По този начин всеки еталон е представен чрез вектор Ei = (ai1, ai2, . . ., ain) , където n е броят на характеристиките и aik може да взема стойности от множеството {0, 1, x}.

Ако s е броят на класовете, то Ei принадлежи на точно един клас Kg, където g = 1, 2, . . . , s.

Следователно сечението на всеки два класа е празно.

Така дефинираните данни могат да се представят в таблица Tmn, обикновено наричана обучаваща.

Създадена веднъж, таблицата е относително постоянна в рамките на даден тип програмни продукти.



Нека предположим, че е даден нов програмен продукт Е.

Определяме съответния му вектор E = (a1, a2, . . ., an ), т.е. определяме стойността на всяка от характеристиките на Е.

Основната идея на предлагания метод е чрез използване на обучаващата таблица Tmn и на описанието на E, зададено чрез горния вектор, новият програмен продукт Е да бъде класифициран, т.е. отнесен към един от s-те предварително дефинирани класове.

Това би ни дало информация за неговото качество, която в много случаи е напълно достатъчна.


В основата на метода стои търсенето на подмножества от признаци, които отразяват различията между класовете.

Тест на таблицата е такова подмножество от стълбове, че всеки два реда на подтаблицата, образувана от тези стълбове, които принадлежат на различни класове, се различават в поне един от стълбовете.

Неприводим се нарича тест, никое собствено подмножество на който не е тест.

Ще го означаваме с НТ.

Като пример нека разгледаме следната таблица, в която продукти 1 и 2 принадлежат на клас 1, 3, 4 и 5 - на клас 2 и останалите - 6, 7 и 8 - на клас 3:


Вижда се, че например стълбовете 7 и 9 образуват тест.

Комбинацията (0,1) се среща само в първия клас, (0,0) - само в третия, а останалите две комбинации - (1,0) и (1,1) - само във втория.

Представителен набор за даден клас по някакво подмножество от стълбове е такава част от описание, която в подтаблицата, образувана от този стълбове, се среща в дадения клас, но не се среща в останалите класове.

Неприводим се нарича представителен набор, никоя част от който не е представителен набор.

Ще го означаваме с НПН.

Ако в горната таблица, разгледаме стълбовете 1, 3 и 5, ще забележим, че описанието (0,0,0) е характерно само за третия клас (то се среща в Е7 и Е8 и в никой друг клас).

Тестовете са общи за цялата таблица и различават всички класове едновременно, докато представителните набори отличават само даден клас от всички останали.

Представителните набори са толкова по-добри, колкото кратността им е по-голяма (брой на появяванията им за дадения клас).

Двете понятия - НТ и НПН - се характеризират с дължина - броя на признаците, които участват в тях.

 

2.3.3. Алгоритми

Създадени са няколко алгоритъма, които по различен начин, използвайки било НТ, било НПН, се опитват да класифицират даден обект (продукт) към някой от класовете на таблицата.


2.3.4. Пример

Един от първите реални примери, чрез които е проверяван и валидиран разглежданият класификационен метод, оценява програмни продукти за труд и работна заплата.

Избрани са 9 такива продукта, разпределени в 3 класа - много добри, добри, слаби.

Това разпределение е направено от експерти.

Определени са и 22 характеристики и всеки от продуктите е описан като вектор по тези характеристики.

По-нататък се оказва, че 9 от признаците не са информативни, защото имат еднакви стойности за всичките 9 продукта.

Така остават следните 13 признака:

  • Минимални входни данни

  • Просто кодиране на входните данни

  • Степен на автоматичност

  • Приложимост при изменящи се условия

  • Оптималност на организацията на данните

  • Рационалност на интерфейса

  • Бързина на изпълнение

  • Независимост от операционната система

  • Лекота на експлоатация

  • Структурираност

  • Възможности за интерфейс с други продукти

  • Рационалност на потребителския език

  • Защита на данните