1. Общи понятия - vinss.files.wordpress.com file · web viewКАЧЕСТВО НА ПП -...

5
КАЧЕСТВО НА ПП - основни понятия, класификационен модел на качеството 1. Общи понятия Всеки потребител желае да придобива и използва качествен софтуер качествен софтуер. От това следва, че и стремежът на всеки разработчик стремежът на всеки разработчик е да създава софтуер с високо качество. Стимулът за това е не само етичен етичен, но има очевидни икономически икономически причини причини. Възможността даден програмен продукт да бъде продаден продаден, и то на по- висока цена, зависи силно от неговото качество зависи силно от неговото качество. Теоретиците на софтуерните технологии и производство са разбирали важността на качеството на софтуера важността на качеството на софтуера и в повечето определения на предмета са включвали тази характеристика. Напоследък повечето автори са склонни да дават по-обща дефиниция по-обща дефиниция на понятието “качество”. Причината е, че всеки опит за по-подробно определение по-подробно определение ще доведе до намирането на контра-примери контра-примери и, следователно, до опровергаване. Това е поради прекалената универсалност прекалената универсалност на понятието “качество” (дори ако се абстрахираме от философския му аспект) и изключително широката му приложимост и уязвимост от практиката приложимост и уязвимост от практиката. Така че напоследък като че ли най-добре се възприема определението, дадено в International Standard Quality Vocabulary (ISO 8402-1986) International Standard Quality Vocabulary (ISO 8402-1986). То има в известен смисъл статут на стандарт: Качеството е съвкупността от средства и характеристики на даден Качеството е съвкупността от средства и характеристики на даден продукт или услуга, носители на способността му да отговори на явно продукт или услуга, носители на способността му да отговори на явно или неявно указани нужди. или неявно указани нужди. Понякога изразът “ указани нужди указани нужди” се заменя с привидно по-конкретното нужди на потребителя нужди на потребителя”. Но дори един не особено задълбочен анализ показва, че това едва ли е стъпка към по-голяма яснота и конструктивност. Причината е в значителната размитост на понятието “потребител” значителната размитост на понятието “потребител” и още по-голямата неопределеност на неговите нужди. При наличието на това определение може да се пристъпи към създаването на модел на качеството на софтуера модел на качеството на софтуера. 2.3. Класификационен модел 2.3. Класификационен модел 2.3.1. Основна идея 2.3.1. Основна идея

Upload: truongtu

Post on 08-Feb-2018

229 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: 1. Общи понятия - vinss.files.wordpress.com file · Web viewКАЧЕСТВО НА ПП - основни понятия, класификационен модел на качеството

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

1. Общи понятия Всеки потребител желае да придобива и използва качествен софтуеркачествен софтуер. От това следва, че и стремежът на всеки разработчикстремежът на всеки разработчик е да създава софтуер с високо качество. Стимулът за това е не само етиченетичен, но има очевидни икономически причиниикономически причини. Възможността даден програмен продукт да бъде продаденпродаден, и то на по-висока цена, зависи силно отзависи силно от неговото качествонеговото качество. Теоретиците на софтуерните технологии и производство са разбирали важността на качеството наважността на качеството на софтуерасофтуера и в повечето определения на предмета са включвали тази характеристика.

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

примерипримери и, следователно, до опровергаване. Това е поради

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

изключително широката му приложимост и уязвимост от практикатаприложимост и уязвимост от практиката. Така че напоследък като че ли най-добре се възприема определението, дадено в InternationalInternational

Standard Quality Vocabulary (ISO 8402-1986)Standard Quality Vocabulary (ISO 8402-1986)..

То има в известен смисъл статут на стандарт:Качеството е съвкупността от средства и характеристики на даден продукт или услуга, носителиКачеството е съвкупността от средства и характеристики на даден продукт или услуга, носители

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

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

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

на софтуерана софтуера.

2.3. Класификационен модел2.3. Класификационен модел2.3.1. Основна идея2.3.1. Основна идеяВ [6] и [7] е предложен един друг модел на качеството на програмните продукти. В [6] и [7] е предложен един друг модел на качеството на програмните продукти. Той се опитва да преодолее някои от недостатъците на йерархичните модели, преди всичкоТой се опитва да преодолее някои от недостатъците на йерархичните модели, преди всичко

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

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

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

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

качество X и Y, както и че качество X и Y, както и че

Page 2: 1. Общи понятия - vinss.files.wordpress.com file · Web viewКАЧЕСТВО НА ПП - основни понятия, класификационен модел на качеството

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

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

  

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

2.3.2. Математическа основа на модела2.3.2. Математическа основа на моделаНека да разгледаме даден тип програмни продукти (текстови редактори, Нека да разгледаме даден тип програмни продукти (текстови редактори, счетоводни счетоводни програми т.н.).програми т.н.). За този тип определяме множество от характеристики: jЗа този тип определяме множество от характеристики: j11, j, j22, . . . , j, . . . , jnn . . На всяка характеристика може да се присвоява стойностНа всяка характеристика може да се присвоява стойност:: 1, ако конкретният програмен продукт притежава тази характеристика, 1, ако конкретният програмен продукт притежава тази характеристика, 0 - ако не я притежава и 0 - ако не я притежава и x - ако няма информация за това дали я притежава.x - ако няма информация за това дали я притежава.

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

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

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

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

По този начин всеки еталон е представен чрез вектор EПо този начин всеки еталон е представен чрез вектор E ii = (a = (ai1i1, a, ai2i2, . . ., a, . . ., ainin) , където n е броят на) , където n е броят на характеристиките и aхарактеристиките и aikik може да взема стойности от множеството {0, 1, x}. може да взема стойности от множеството {0, 1, x}.

Ако s е броят на класовете, то EАко s е броят на класовете, то Ei i принадлежи на точно един клас K принадлежи на точно един клас Kgg, където g = 1, 2, . . . , s. , където g = 1, 2, . . . , s. Следователно сечението на всеки два класа е празно. Следователно сечението на всеки два класа е празно. Така дефинираните данни могат да се представят в таблица TТака дефинираните данни могат да се представят в таблица Tmnmn, обикновено наричана обучаваща., обикновено наричана обучаваща. Създадена веднъж, таблицата е относително постоянна в рамките на даден тип програмниСъздадена веднъж, таблицата е относително постоянна в рамките на даден тип програмни

продукти. продукти.

Нека предположим, че е даден новНека предположим, че е даден нов програмен продукт Е. програмен продукт Е. Определяме съответния му вектор E = (aОпределяме съответния му вектор E = (a11, a, a22, . . ., a, . . ., ann ), т.е. определяме стойността на всяка от ), т.е. определяме стойността на всяка от

характеристиките на Е.характеристиките на Е. Основната идея на предлагания метод е чрез използване на обучаващата таблица T Основната идея на предлагания метод е чрез използване на обучаващата таблица Tmnmn и на и на

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

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

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

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

Неприводим се нарича тест, никое собствено подмножество на който не е тест. Неприводим се нарича тест, никое собствено подмножество на който не е тест. Ще го означаваме с НТ. Ще го означаваме с НТ. Като пример нека разгледаме следната таблица, в която продукти 1 и 2 принадлежат на клас 1, 3, 4Като пример нека разгледаме следната таблица, в която продукти 1 и 2 принадлежат на клас 1, 3, 4

Page 3: 1. Общи понятия - vinss.files.wordpress.com file · Web viewКАЧЕСТВО НА ПП - основни понятия, класификационен модел на качеството

и 5 - на клас 2 и останалите - 6, 7 и 8 - на клас 3:и 5 - на клас 2 и останалите - 6, 7 и 8 - на клас 3:

Вижда се, че например стълбовете 7 и 9 образуват тест. Вижда се, че например стълбовете 7 и 9 образуват тест. Комбинацията (0,1) се среща само в първия клас, (0,0) - само в третия, а останалите двеКомбинацията (0,1) се среща само в първия клас, (0,0) - само в третия, а останалите две

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

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

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

характерно само за третия клас (то се среща в Ехарактерно само за третия клас (то се среща в Е77 и Е и Е88 и в никой друг клас). и в никой друг клас).

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

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

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

  2.3.3. Алгоритми2.3.3. АлгоритмиСъздадени са няколко алгоритъма, които по различен начин, използвайки било НТ, било НПН, сеСъздадени са няколко алгоритъма, които по различен начин, използвайки било НТ, било НПН, се

опитват да класифицират даден обект (продукт) към някой от класовете на таблицата. опитват да класифицират даден обект (продукт) към някой от класовете на таблицата.

2.3.4. Пример2.3.4. ПримерЕдин от първите реални примери, чрез които е проверяван и валидиран разглежданиятЕдин от първите реални примери, чрез които е проверяван и валидиран разглежданият

класификационен метод, оценява програмни продукти за труд и работна заплата. класификационен метод, оценява програмни продукти за труд и работна заплата. Избрани са 9 такива продукта, разпределени в 3 класа - много добри, добри, слаби. Избрани са 9 такива продукта, разпределени в 3 класа - много добри, добри, слаби. Това разпределение е направено от експерти. Това разпределение е направено от експерти. Определени са и 22 характеристики и всеки от продуктите е описан като вектор по тезиОпределени са и 22 характеристики и всеки от продуктите е описан като вектор по тези

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

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

Минимални входни данниМинимални входни данни Просто кодиране на входните данниПросто кодиране на входните данни Степен на автоматичностСтепен на автоматичност Приложимост при изменящи се условияПриложимост при изменящи се условия Оптималност на организацията на даннитеОптималност на организацията на данните Рационалност на интерфейсаРационалност на интерфейса Бързина на изпълнениеБързина на изпълнение Независимост от операционната системаНезависимост от операционната система Лекота на експлоатацияЛекота на експлоатация СтруктурираностСтруктурираност Възможности за интерфейс с други продуктиВъзможности за интерфейс с други продукти Рационалност на потребителския езикРационалност на потребителския език Защита на даннитеЗащита на данните