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