- •Тема 9. Програмне забезпечення Лекція 16
- •14.1. Класифікація програмного забезпечення
- •Прикладне пз
- •14.2. Поняття операційної системи
- •14.3. Координація операційною системою дій еом
- •14.4. Стисла характеристика основних операційних систем ос сім'ї dos
- •Ос сім'ї unix
- •Ос сім'ї Windows
- •Сім'я ос реального часу
- •Ос Linux
- •Покоління мов програмування
Сім'я ос реального часу
Термін реальний час у найширшому сенсі можна застосовувати до системи з обробки інформації в тих випадках, коли необхідно, щоб система мала гарантований час реакції, тобто затримка не перевищувала визначеного часу.
Операційна система реального часу (ОС РЧ) - операційна система, що гарантує визначений час реакції системи. Як правило, цей час коливається від кількох мікросекунд до кількох часток секунди.
ОС РЧ в основному застосовується в автоматизації таких галузей, як транспортування нафти і газу, управління технологічними процесами в металургії і машинобудуванні, управління хімічними процесами, енергетиці, управління роботами. Застосовують ОС РЧ і в банківських системах.
Серед найбільш відомих ОС РЧ для ІВМ РС використовуються: OS-0000, FLEX OS, QNX та ін. З них вигідно вирізняється ОС QNX повним набором інструментальних засобів.
Ос Linux
Дуже популярною ОС кінця XX ст. стала недорога некомерційна альтернатива дорогим (НР-UNIX, SUN Solaris, Digital UNIX) рішенням - ОС Linux. Темпи освоєння ринку цією системою в порівняно з іншими відомими ОС є інтенсивними.
Сильною стороною ОС Linux є її універсальність: система покриши весь діапазон застосувань - від настільного РС до надпотужних багатопроцесорних серверів і кластерів. Зараз багатопроцесорна ОС Linux стійко працює на платформах РС, Alpha, PowerPC, Macintosh, SGI MIPS, Strong ARM, SGI Visual Workstation, VAX, 8086, РС-98, Palm Pilot, НР РА-RISK, Sparc & UltraSparc64 system, m68k.
Будучи ОС, Linux виконує багато які з функцій, характерних для DOS і Windows. Однак слід зазначити, що ця ОС відрізняється особливою потужністю і гнучкістю. Більшість ОС персональних комп'ютерів, наприклад DOS, створювалися для невеликих ПК, що мали обмежені можливості. Такі ОС постійно модернізуються, оскільки вони мають відповідати можливостям апаратних засобів персональних комп'ютерів, що безупинно розвиваються. Система ж Linux розроблялася зовсім в іншому контексті. Вона являє собою ПК-версію операційної системи Unix, що десятиліттями використовується на мейнфреймах і міні-ЕОМ і є основною ОС робочих станцій. Linux надає в розпорядження ПК швидкість, ефективність і гнучкість Unix, використовуючи при цьому всі переваги сучасних персональних машин.
Управління файлами, управління програмами і взаємодія з користувачами - це традиційні функції, спільні для всіх операційних систем, У Linux є ще дві особливості: вона є багатокористувальницькою і багатозадачною системою.
Linux відрізняється гнучкістю, обумовленою насамперед тим, що ця ОС розвивалася в середовищі дослідників і вчених.
ОС надає в розпорядження користувача набір високоефективних інструментів. Така орієнтація на користувача означає, що ви можете конфігурувати і програмувати систему відповідно до своїх конкретних потреб. Операційна система Linux є операційним середовищем.
Життєвий цикл програмного забезпечення
Програми будь-якого виду характеризуються життєвим циклом - від моменту виникнення ідеї, розробки програми до моменту відмовлення зід використання програми. Тривалість життєвого циклу різних програм неоднакова і для більшості з них виміряється в роках (3-4 роки). Стадії життєвого циклу програм визначають склад і зміст робіт зі створення програмних продуктів.
Життєвий цикл програмного забезпечення містить у собі ряд етапів:
аналіз вимог;
визначення специфікацій;
проектування;
кодування;
тестування;
супровід.
Розглянемо їх.
Аналіз вимог. При розробці програмного забезпечення він винятково важливий. Помилки, допущені на цьому етапі, навіть за умови бездоганного виконання наступних етапів можуть призвести до того, що розроблений програмний продукт не буде відповідати вимогам практики.
Визначення специфікацій. Певною мірою цей етап можна розглядати
як формулювання висновків, що випливають з результатів попереднього етапу. Вимоги до програми мають бути представлені у вигляді ряду специфікацій, що явно визначають робочі характеристики майбутньої програми. До числа таких характеристик можуть входити швидкість виконання, обсяг споживаної пам'яті, гнучкість застосування та ін.
Проектування. На цьому етапі створюється загальна структура програми, яка має відповідати специфікаціям; визначаються загальні принципи управління і взаємодії між різними компонентами програми.
Кодування. Полягає в перекладі на мову програмування конструкцій, записаних мовою проектування.
Тестування. На цьому етапі здійснюється всебічна перевірка програм.
Супровід. Це етап експлуатації системи. Яким би детальним не було тестування програм, на жаль, у великих програмних комплексах надзвичайно важко усунути абсолютно всі помилки. Усунення виявлених при експлуатації помилок - найперше завдання цього етапу. Однак це далеко не все, що виконується при супроводі. Виконуваний у ході супроводу аналіз досвіду експлуатації програми дозволяє виявляти «вузькі місця» чи невдалі проектні рішення в тих чи інших частинах програмного комплексу. В результаті такого аналізу може бути прийняте рішення про проведення робіт з удосконалювання розробленої системи.
Методи розробки алгоритмів і програм
Найважливішими класифікаційними ознаками методів проектування алгоритмів і програм є:
ступінь автоматизації виконання проектних робіт;
методологія процесу розробки.
За ступенем автоматизації процесу проектування алгоритмів і програм можна виділити методи неавтоматизованого проектування і методи автоматизованого проектування (САSE, Соmputer Аіded Sistem Еngsneering).
Неавтоматизоване проектування використовується при розробці невеликих за трудомісткістю й структурною складністю програмних продуктів, що не вимагають участі великого числа розробників.
Автоматизоване проектування виникло в зв'язку з необхідністю скорочення витрат і термінів виконання проектних робіт, створення і використання типових елементів та їх комплексів при розробці алгоритмів і програм, координації робіт великого колективу розробників, використання засобів обчислювальної техніки на різних етапах створення і супроводу програмних продуктів. Автоматизація проектування може охоплювати усі чи окремий етап життєвого циклу програмного продукту, в ізольованому вигляді чи в комплексі.
Проектування алгоритмів і програм може ґрунтуватися на різних підходах, серед яких найбільш поширені:
структурне проектування і програмування;
інформаційне моделювання предметної області і пов'язаних з нею додатків;
об'єктно-орієнтоване проектування.
Початок розвитку структурного проектування алгоритмів і програм припадає на 60-і роки. У його основу покладені послідовна декомпозиція і структурування цілого, від загального до частки.;
Технології структурного підходу орієнтовані, у першу чергу, на процеси обробки з подальшим установленням необхідних для них даних, а також на правильну організацію інформаційних потоків між пов'язаними процесами..
Інформаційне моделювання предметної області має вирішальне значення для розробки алгоритмів і програм, що працюють із БД. В основі даного підходу лежить положення про визначальну роль і незалежність даних при проектуванні алгоритмів і програм. Підхід склався в умовах появи концепції БД. Один з основоположників інформаційної інженерії – Дж. Мартін виділяє такі складові даного підходу:
інформаційний аналіз предметних областей;
побудова взаємозалежних моделей даних;
системне проектування функцій обробки даних;
детальне конструювання процедур обробки даних.
Традиційні підходи до розробки програмних продуктів завждгґ) підкреслювали розходження між даними і процесами їх обробки (програмні / модулі забезпечують обробку вхідних даних, але не містять цих даних). На відміну від традиційного структурного підходу, об'ектно-орієитова-ний підхід до проектування програмних продуктів ґрунтується на:
виділенні класів;
встановленні характерних властивостей класів і методів їх обробки;,
створенні ієрархії класів;
спадкуванні властивостей класів та методів їх обробки.
Кожен об'єкт поєднує в собі як дані, так і програму обробки цих] даних. Об'єкт - це конкретний екземпляр класу. За допомогою класу і той самий програмний код можна багаторазово використовувати для різних об'єктів того самого класу.
Для проектування програмних продуктів розроблені об'єктно-орієн товані технології, які містять у собі спеціалізовані мови програмування й інструментальні засоби розробки інтерфейсу користувача. При вико- ЮННІ програми об'єкту посилається повідомлення, яке ініціює обробку , даних об'єкта.
Методи об'єктно-орієнтованого проектування ґрунтуються на: моделі побудови системи як сукупності об'єктів абстрактного типу даних, модульній структурі програм, спадному проектуванні при виділенні об'єктів. Об'єктно-орієнтований підхід використовує такі базові поняття: клас, об'єкт, подія, властивості об'єкта, метод обробки.
Об'єкт - сукупність властивостей (даних) визначених сутностей і методів їхньої обробки. Об'єкт містить інструкції (програмний код), що визначають дії, які може виконувати об'єкт, та оброблювані дані.
Властивість - характеристика об'єкта, його параметр. Властивості об'єкта в їх сукупності виділяють об'єкт із множини інших об'єктів, задають якісну визначеність, обумовлюють незалежність створення й обробки від інших об'єктів.
Метод - це програма дій над об'єктом чи його властивостями. Метод розглядається як програмний код, пов'язаний з певним об'єктом, за : допомогою якого здійснюється перетворення властивостей об'єкта або і зміна його поведінки. Методи виконуються при настанні наперед визна-; чених подій.