Специфікація якості програмного засобу.
Функціональні вимоги. Експлуатаційні вимоги.
Для забезпечення взаємодії між підсистемами у ряді випадків не вимагається створювати які-небудь додаткові програмні компоненти (окрім реалізації зовнішніх функцій) - для цього може бути досить заздалегідь фіксованих угод і стандартних можливостей базового програмного забезпечення (операційної системи). Так в комплексі автономно виконуваних програм для забезпечення взаємодії досить опису (специфікації) загального зовнішнього інформаційного середовища і можливостей операційної системи для запуску програм. У шаруватій програмній системі може виявитися достатнім специфікації виділених програмних шарів і звичайний апарат звернення до процедур. У програмному конвеєрі взаємодія між програмами також може забезпечувати операційна система (як це має місце в операційній системі UNIX).
Проте у ряді випадків для забезпечення взаємодії між програмними підсистемами може потрібно створення додаткових програмних компонент. Так для управління роботою комплексу автономно виконуваних програм часто створюють спеціалізований командний інтерпретатор, зручніший в цій предметній області для підготовки необхідного зовнішнього інформаційного середовища і запуску необхідної програми, чим базовий командний інтерпретатор використовуваної операційної системи. У шаруватих програмних системах може бути створений особливий апарат звернення до процедур шару (наприклад, що забезпечує паралельне виконання цих процедур). У колективі паралельно діючих програм для управління портами повідомлень потрібно спеціальну програмну підсистему. Такі програмні компоненти ніяких зовнішніх функцій не виконують - вони реалізують функції, що виникли в результаті розробки архітектури програмного засобу. У зв'язку з цим такі функції ми називатимемо архітектурними.
Розробка специфікації якості зводиться, по-существу, до побудови своєрідної моделі якості ПС. У цій моделі має бути перелік усіх тих досить елементарних властивостей, які вимагається забезпечити в ПС, що розробляється, і які в сукупності утворюють прийнятну для користувача якість ПС. При цьому кожна з цих властивостей має бути достатньою мірою конкретизована з урахуванням визначення вимог до ПС, що розробляється, і можливості оцінки його наявності у розробленого ПС або необхідної міри володіння ним цим ПС.
Для конкретизації якості ПС по кожному з критеріїв використовується стандартизованный набір досить простих властивостей ПС, що однозначно інтерпретуються розробниками. Такі властивості ми називатимемо примітивами якості ПС. Деякі з примітивів можуть використовуватися за декількома критеріями. Нижче наводиться залежність критеріїв якості від примітивів якості ПС.
Функціональність: завершеність.
Надійність: завершеність, точність, автономність, стійкість, захищеність.
Легкість застосування : П-документированность, інформативність (тільки стосовно документації по застосуванню), комунікабельність, стійкість, захищеність.
Ефективність: временнaя ефективність, ефективність по пам'яті, ефективність по пристроях.
Сопровождаемость. З цим критерієм пов'язано багато різних примітивів якості. Проте їх можна розподілити по двох групах, виділивши два підкритерії якості : изучаемость і модифікується. Изучаемость - це характеристики ПС, які дозволяють мінімізувати зусилля із вивчення і розуміння програм і документації ПС. Та, що модифікується - це характеристики ПС, які спрощують внесення в нього необхідних змін і доопрацювань.
Изучаемость: С-документированность, інформативність (тут застосовно і до документації по супроводу), зрозумілість, структурованість, легкість для читання.
Модифікується: розширюваність, структурованість, модульність.
Мобільність: незалежність від пристроїв, автономність, структурованість, модульність.
Нижче даються визначення використовуваних примітивів якості ПС.
Завершеність - властивість, що характеризує міру володіння ПС усіма необхідними частинами і рисами, що вимагаються для виконання своїх явних і неявних функцій.
Точність - міра, що характеризує прийнятність величини погрішності у видаваних програмами ПС результатах з точки зору передбачуваного їх використання.
Автономність - властивість, що характеризує здатність ПС виконувати наказані функції без допомоги або підтримки інших компонент програмного забезпечення.
Стійкість - властивість, що характеризує здатність ПС продовжувати коректне функціонування, незважаючи на завдання неправильних (помилкових) вхідних даних.
Захищеність - властивість, що характеризує здатність ПС протистояти умисним або ненавмисним деструктивним (що руйнує) діям користувача.
П-документированность - властивість, що характеризує наявність, повноту, зрозумілість, доступність і наочність учбової, інструктивної і довідкової документації, необхідної для застосування ПС.
Інформативність - властивість, що характеризує наявність у складі ПС інформації, необхідної і достатньої для розуміння призначення ПС, прийнятих припущень, існуючих обмежень, вхідних даних і результатів роботи окремих компонент, а також поточного стану програм в процесі їх функціонування.
Комунікабельність - властивість, що характеризує міру, в якій ПС полегшує завдання або опис вхідних даних, а також забезпечує видачу корисних відомостей у формі і із змістом, простими для розуміння.
Временнaя ефективність - міра, що характеризує здатність ПС виконувати покладені на нього функції за певний відрізок часу.
Ефективність по пам'яті - міра, що характеризує здатність ПС виконувати покладені на нього функції при певних обмеженнях на використовувану пам'ять.
Ефективність по пристроях - міра, що характеризує економічність використання пристроїв машини для вирішення поставленого завдання.
С-документировапнность - властивість, що характеризує з точки зору наявності документації, що відбиває вимоги до ПС і результати різних етапів розробки цієї ПС, включаючі можливості, обмеження і інші риси ПС, а також їх обгрунтування.
Зрозумілість - властивість, що характеризує міру в якій ПС дозволяє особі, що вивчає його, зрозуміти його призначення, зроблені допущення і обмеження, вхідні дані і результати роботи його програм, тексти цих програм і стан їх реалізації. Цей примітив якості синтезований нами з таких примітивів ИСО, як узгодженість, самодокументированность, чіткість і, власне, зрозумілість.
Структурованість - властивість, що характеризує програми ПС з точки зору організації взаємозв'язаних їх частин в єдине ціле певним чином (наприклад, відповідно до принципів структурного програмування).
Легкість для читання - властивість, що характеризує легкість сприйняття тексту програм ПС (відступи, фрагментація, форматив-ность).
Розширюваність- властивість, що характеризує здатність ПС до використання більшого об'єму пам'яті для зберігання даних або розширення функціональних можливостей окремих компонент.
Модульність - властивість, характеризуюче ПС з точки зору організації його програм з таких дискретних компонент, що зміна однієї з них чинить мінімальну дію на інші компоненти.
Незалежність від пристроїв - властивість, що характеризує здатність ПС працювати на різноманітному апаратному забезпеченні (різних типах, марках, моделях ЕОМ).