Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
os_sapr_lk.DOC
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1.69 Mб
Скачать

4.6. Загальна характеристика методів проектування програмного забезпечення сапр

Проектування є найважливішим етапом у сучасній технології створення ПЗ. На цьому етапі закладаються не тільки основні технічні характеристики програмних виробів, а й визначається зміст і характер роботи на інших етапах розробки: кодування, тестування і налагодження. Рішення, прийняті на етапі проектування, визначають простоту або складність супроводу.

Методи проектування програмних систем

У 60-70-ті роки ефективність застосування комп'ютерів різко зросла. У результаті стало вигідно створювати все більше прикладних програм підвищеної складності. В якості основних інструментів створення програмних продуктів почали застосовуватися алгоритмічні мови високого рівня. Ці мови розширили можливості окремих програмістів і груп розробників, що в свою чергу призвело до збільшення рівня складності програмних систем. У ці роки було розроблено багато методів, що допомагають впоратися зі зростаючою складністю програм. Найбільшого поширення набуло структурне проектування за методом зверху-вниз, або комбінований метод. Він був безпосередньо заснований на топології мов високого рівня типу FORTRAN і COBOL. У цих мовах основною базовою одиницею є підпрограма, і програма в цілому приймає форму дерева, в якому одні підпрограми в процесі роботи викликають інші підпрограми. Структурне програмування використовує саме такий підхід: алгоритмічна декомпозиція застосовується для розбиття великого завдання на маленькі.

Спосіб управління складними системами був відомий ще в давнину: divide et impera (розділяй і володарюй). При проектуванні складної програмної системи необхідно складати її з невеликих підсистем, кожну з яких можна налагодити незалежно від інших. У цьому випадку ми не виходимо за межі можливостей людини, відпущених їй природою: при розробці будь-якого рівня системи нам потрібно буде одночасно тримати в голові інформацію лише про небагатьох її частинах (аж ніяк не про всіх!).

Починаючи з 60-70-х років стали з'являтися комп'ютери ще більших можливостей. Значення структурного підходу залишилося колишнім, але виявилося, що структурний підхід не працює, якщо обсяг програми перевищує приблизно 100 000 рядків. Останнім часом з'явилися десятки методів, у більшості яких усунуті очевидні недоліки структурного проектування.

В даний час методи проектування можна розділити на три основні групи:

• метод структурного проектування "зверху вниз";

• метод організації потоків даних;

• об'єктно-орієнтоване проектування.

Приклади методів структурного проектування наведені в роботах Йордана і Костянтина (Yourdon E. and Constantine), Вірта (Wirth N.), Даля, Дейкстри і Хоара (Dahl O., Dijkstra EW, and Hoare C.A.R.) та ін. У кожному з цих підходів присутня алгоритмічна декомпозиція. Слід зазначити, що більшість існуючих програм написано у відповідності з одним з цих методів. Тим не менш структурний підхід не дозволяє виділяти абстракції і забезпечувати захист доступу до даних, не представляє він також достатніх коштів для організації паралелізму. Структурний підхід не може забезпечити створення гранично складних систем, і він, як правило, неефективний при використанні об'єктно-орієнтованих мов програмування.

Метод організації потоків даних найповніше описаний у роботі Джексона (Jackson M.), а також Уорніера і Орра (Orr K.). У цьому методі структура програмної системи будується як організація перетворень вхідних потоків у вихідні. Метод організації потоків даних, як і структурний метод, з успіхом застосовувався при вирішенні ряду складних завдань, зокрема, в системах інформаційного забезпечення, де існують прямі зв'язки між вхідними і вихідними потоками системи і де не потрібно приділяти багато уваги швидкодії.

В основі об'єктно-орієнтованого проектування (OOП) лежить уявлення про те, що програмну систему необхідно проектувати як сукупність взаємодіючих один з одним об'єктів, розглядаючи кожен об'єкт як екземпляр певного класу, причому класи при цьому утворюють ієрархію. Об'єктно-орієнтований підхід відображає топологію нових мов високого рівня, таких, як Smalltalk, Object Pascal, C + + і Ada.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]