Класифікація програмних продуктів за функціональною ознакою
Кожен програмний продукт призначений для виконання певних функцій. За призначенням усі програмні продукти можна розділити на три групи: системні, прикладні та гібридні (рис. 5.7).
Операційні системи, як правило, управляють ресурсами (процесором і пам'яттю), процесами (завданнями і потоками) і пристроями. Складність організації операційних систем обумовлюється ступенем автоматизації і досягнутою ефективністю процесів управління. Так мультипрограмні операційні системи істотно складніші однопрограмних, що добре видно на прикладі MS DOS, Windows. До утиліт прийнято відносити програми і системи, які безпосередньо не входять до складу операційної системи, але забезпечують виконання певних функцій, таких як Прикладні програми і системи орієнтовані на рішення конкретних для користувача завдань. Розрізняють користувачів: · розробників програм; · непрограмістів, що використовують комп'ютерні системи для досягнення своїх цілей. Розробники програм використовують спеціальні інструментальні засоби, такі як компілятори, компонувальники, відладчики, які останнім часом зазвичай інтегрують у системи програмування і середовища розробки. Сучасні середовища програмування, наприклад, Delphi, Visual C + +, реалізують візуальну технологію розробки програмних продуктів і надають програмістам величезні бібліотеки компонентів, які можна включати у свою розробку. До цієї ж групи відносять інструментальні комплекси створення баз даних, такі як Access, FoxPro, Oracle, засоби створення інтелектуальних систем, наприклад, експертних, навчальних, систем контролю знань і т. д. Останнє досягнення в цьому напрямі - CASE-засоби розробки програмного забезпечення, такі як ЕRwin, BPwin, Paradigm Plus, Rational Rose тощо. Користувачі-непрограмісти відповідно до сучасних вимог не повинні бути професіоналами в проблемах створення програмних продуктів і специфіці їх взаємодії Продукти загального призначення використовують різні групи користувачів. До них можна віднести текстові редактори, наприклад, WinWord, Excel електронні таблиці типу, графічні редактори, інформаційні системи загального призначення, наприклад, карта Москви, програми-перекладачі, і т. п. Професійні продукти призначені для фахівців у різних областях, наприклад, до них можна віднести: • системи автоматизації проектування, орієнтовані на різні технічні області; • системи-тренажери, наприклад, тренажер для відпрацювання дій пілотів в аварійній • бухгалтерські системи, наприклад. 1С; • видавничі системи, наприклад, PageMaker, QuarkXPress; • професійні графічні системи, наприклад, Adobe Illustrator, Photoshop, CorelDraw та т. п. • експертні системи і т. д. Системи автоматизації виробничих процесів відрізняються від професійних тим, Навчальні програми і системи відповідно до своєї назви призначені для навчання, наприклад, іноземним мовам, правилам дорожнього руху і т. п. До розважальних відносять ігрові програми, музичні програми, знову ж таки інформаційні системи, але з тестами розважального характеру, наприклад гороскопи і т. п. Гібридні системи поєднують в собі ознаки системного та прикладного програмного забезпечення. Як правило, це великі, але вузькоспеціалізовані системи, призначені До кожного з перерахованих вище типів програмного забезпечення при розробці, крім функціональних, зазвичай пред'являють ще й певні експлуатаційні вимоги.
Експлуатаційні вимоги визначають деякі характеристики розроблюваного програмного забезпечення, що виявляються в процесі його функціонування. До таких характеристик відносять: • правильність - функціонування відповідно до технічного завдання; • універсальність - забезпечення правильної роботи за будь-яких допустимих даних та захисту від неправильних даних; • надійність (перешкодозахищеність) - забезпечення повної повторюваності результатів, т. е. забезпечення їх правильності при наявності різного роду збоїв; • перевіряння - можливість перевірки отриманих результатів; • точність результатів - забезпечення похибки результатів не вище заданої; • захищеність - забезпечення конфіденційності інформації; • програмна сумісність - можливість спільного функціонування з іншим • апаратна сумісність - можливість спільного функціонування з деяким Прослухати обладнанням; • ефективність - використання мінімально можливої кількості ресурсів технічних • здатність до адаптації - можливість швидкої модифікації з метою пристосування до мінливих умов функціонування; • повторна входимість - можливість повторного виконання без перезавантаження з диска; • реєнтерабельність - можливість «паралельного» використання декількома процесами. Правильність є обов'язковою вимогою для будь-якого програмного забезпечення: все, що зазначено в технічному завданні, неодмінно має бути реалізовано. Проте слід розуміти, що ні тестування, ні верифікація не доводять правильності створеного програмного продукту. У цьому зв'язку звичайно говорять про певну ймовірність наявності помилок. Природно, чим більша відповідальність перекладається на комп'ютерну систему, тим менше повинна бути ймовірність як програмного, так і апаратного збою. Наприклад, очевидно, що ймовірність неправильної роботи для системи управління атомною електростанцією повинна бути близька до нуля. Вимога універсальності також зазвичай входить до групи обов'язкових. Нічого хорошого немає в тому, що розроблена система видає результат для некоректних даних або аварійно завершує свою роботу на деяких наборах даних. Однак, як уже згадувалося вище, довести універсальність порівняно складної програми, так само, як її правильність, неможливо, тому має сенс говорити про ступінь універсальності програми. Практично, чим вище вимоги до правильності та універсальності програмного забезпечення, тим вище і вимоги до його надійності. Джерелами перешкод можуть бути всі учасники обчислювального процесу: технічні засоби, програмні засоби та люди. Технічні засоби схильні до збоїв, наприклад, із-за різких стрибків напруги живлення Сучасні обчислювальні пристрої вже досить надійні. Збої технічних засобів, як правило, реєструються апаратно, відповідно результати обчислень у цьому Передача інформації по мережах також апаратно контролюється, крім того, зазвичай застосовується спеціальне завадозахищене кодування, яке дозволяє знаходити і виправляти помилки передачі даних. Однак повністю виключити помилки технічних засобів неможливо, тому в тих випадках, коли вимоги до надійності високі, зазвичай використовують дублювання систем, при якому дві системи вирішують одну і ту ж задачу паралельно, періодично звіряючи отримані результати. Часто самим «ненадійним елементом» сучасних систем є люди. Вже добре відомо, що в умовах монотонної роботи за пультом обчислювальної установки оператори Підвищені вимоги до надійності пред'являють при розробці систем управління, які функціонують в режимі реального часу, коли обчислення виконуються паралельно з Для забезпечення перевіряємості слід документально фіксувати вихідні дані, встановлені режими та іншу інформацію, яка впливає на отримувані результати. Точність або величина похибки результатів залежить від точності вихідних даних, ступеня адекватності використовуваної моделі, точності обраного методу і похибки виконання операцій у комп'ютері. Вимоги до точності результатів зазвичай найбільш жорсткі для систем управління технологічними процесами (наприклад, хімічними) і систем навігації (наприклад, система управління стиковкою космічних апаратів). Забезпечення захищеності (конфіденційності) інформації, що використовується проектованою системою, окрема і в умовах наявності мереж досить складне завдання. Вимога програмної сумісності може варіюватися від можливості спільної установки з зазначеним програмним забезпеченням до забезпечення взаємодії з ним, Вимогу апаратної сумісності в основному формулюють у вигляді мінімально можливої конфігурації обладнання, на якому буде працювати програмне забезпечення. Якщо передбачається використання нестандартного обладнання, то для нього повинні бути Ефективність системи зазвичай оцінюється окремо по кожному ресурсу обчислювальної установки. Часто використовують наступні критерії: • час відповіді системи (зазвичай віднесене до швидкодії використовуваного обладнання) - для систем, що взаємодіють з користувачем в інтерактивному режимі, і систем реального часу; • обсяг оперативної пам'яті - для продуктів, що працюють в системах з обмеженим об'ємом оперативної пам'яті, наприклад MS DOS; • обсяг зовнішньої пам'яті - для продуктів, що інтенсивно використовують зовнішню пам'ять, наприклад баз даних; • кількість обслуговуваних зовнішніх пристроїв - для продуктів, які здійснюють інтенсивну взаємодію із зовнішніми пристроями, наприклад давачами. Вимоги ефективності можуть суперечити один одному. Наприклад, щоб зменшити час виконання деякого фрагмента програми, може знадобитися додатковий Адаптованість, по суті справи, оцінює технологічну якість програмного забезпечення, тому оцінити цю характеристику кількісно практично неможливо. Вимога повторної входимості зазвичай пред'являється до програмного забезпечення, резидентно завантаженого в оперативну пам'ять, наприклад драйверів. Для забезпечення даної вимоги необхідно так організувати програму, щоб ніякі її вихідні дані не затиралися в процесі виконання або відновлювалися на початку або при завершенні кожного виклику. Вимога реєнтерабельності є більш жорсткою, ніж повторна входимість, так як в цьому випадку всі дані, що змінюються програмою в процесі виконання, повинні бути виділені в спеціальний блок, копія якого створюється для кожного процесу при виклику програми. Складність багатьох програмних систем не дозволяє відразу сформулювати чіткі вимоги до них. Зазвичай для переходу від ідеї створення деякого програмного забезпечення до чіткого формулювання вимог, які можуть бути занесені до технічного завдання, необхідно виконати передпроектні дослідження в області розробки.
|