logo
Інформатика відповіді

5. Методи розробки програм.

У процесі розробки програми її модульна структура може по-різному формуватися і використовуватися для визначення порядку програмування і налагодження модулів, зазначених у цій структурі. Тому можна говорити про різні методи розробки структури програми. Звичайно в літературі обговорюються два методи: метод висхідної розробки і метод спадної розробки.

Метод висхідної розробки полягає в наступному. Спочатку будується модульна структура програми у виді дерева. Потім по черзі програмуються модулі програми, починаючи з модулів самого нижнього рівня (листи дерева модульної структури програми), у такому порядку, щоб для кожного програмувального модуля минулого вже запрограмовані всі модулі, до яких він може звертатися. Після того, як усі модулі програми запрограмовані, виробляється їхнє почергове тестування і налагодження в принципі в такому ж (висхідному) порядку, у якому велося їхнє програмування. Такий порядок розробки програми на перший погляд здається цілком природним: кожен модуль при програмуванні виражається через уже запрограмовані безпосередньо підлеглі модулі, а при тестуванні використовує вже налагоджені модулі. Однак, сучасна технологія не рекомендує такий порядок розробки програми. По-перше, для програмування якого-небудь модуля зовсім не потрібно наявності текстів використовуваних їм модулів, а для тестування його можливо використовувані модулі заміняти їх імітаторами (заглушками). По-друге, кожна програма в якомусь ступені підкоряється деяким внутрішньої для неї, але глобальним для її модулів розумінням (принципам реалізації, припущенням, структурам даних і т.п.), що визначає її концептуальну цілісність і формується в процесі її розробки. При висхідній розробці ця глобальна інформація для модулів нижніх рівнів ще не ясна в повному обсязі, тому дуже часто приходиться їх перепрограмувати, коли при програмуванні інших модулів виробляється істотне уточнення цієї глобальної інформації (наприклад, змінюється глобальна структура даних). По-третє, при висхідному тестуванні для кожного модуля (крім головного) приходиться створювати ведучу програму (модуль), що повинний підготувати для модуля що тестується необхідний стан інформаційного середовища і зробити необхідне звертання до йому. Це приводить до великого обсягу «відлагоджувального» програмування й у той же час не дає ніякої гарантії, що тестування модулів вироблялося саме в тих умовах, у яких вони будуть виконуватися в робочій програмі.

Метод спадної розробки полягає в наступному. Як і в попередньому методі спочатку будується модульна структура програми у виді дерева. Потім по черзі програмуються модулі програми, починаючи з модуля самого верхнього рівня (головного), переходячи до програмування якого-небудь іншого модуля тільки в тому випадку, якщо уже запрограмований модуль, що до нього звертається. Після того, як усі модулі програми запрограмовані, виробляється їхнє почергове тестування і налагодження в такому ж (спадному) порядку. При цьому першим тестується головний модуль програми, що представляє всю програму тестування і тому тестується при «природному» стані інформаційного середовища, при якому починає виконуватися ця програма. При цьому ті модулі, до яких може звертатися головний, заміняються їхніми імітаторами (так називаними заглушками). Кожен імітатор модуля представляється дуже простим програмним фрагментом, що, в основному, сигналізує про самий факт звертання до імітованого модуля, робить необхідну для правильної роботи програми обробку значень його вхідних параметрів (іноді з їх роздруківкою) і видає, якщо це необхідно, заздалегідь запасений придатний результат. Після завершення тестування і налагодження головного і будь-якого наступного модуля виробляється перехід до тестування одного з модулів, що у даний момент представлені імітаторами, якщо такі маються. Для цього імітатор обраного для тестування модуля заміняється самим цим модулем і, крім того, додаються імітатори тих модулів, до яких може звертатися обраний для тестування модуль. При цьому кожен такий модуль буде тестуватися при «природних» станах інформаційного середовища, що виникають до моменту звертання до цього модуля при виконанні програми тестування. Таким чином, великий обсяг «відлагоджувального» програмування при висхідному тестуванні заміняється програмуванням досить простих імітаторів використовуваних у програмі модулів. Крім того, імітатори зручно використовувати для того, щоб пригравати процесу підбора тестів шляхом завдання потрібних результатів, видаваних імітаторами. При такому порядку розробки програми вся необхідна глобальна інформація формується вчасно, тобто ліквідується дуже неприємне джерело прорахунків при програмуванні модулів. Деяким недоліком спадної розробки, що приводить до визначених утруднень при її застосуванні, є необхідність абстрагуватися від базових можливостей використовуваної мови програмування, видумуючи абстрактні операції, що пізніше потрібно буде реалізувати за допомогою виділених у програмі модулів. Однак здатність до таких абстракцій представляється необхідною умовою розробки великих програмних засобів, тому її потрібно розвивати.

Етапи створення мат моделі

При математичному моделюванні вивчається не сам реальний фізичний процес, а деяка його модель, від якої вимагається, щоб вона зберігала основні риси процесу, що розглядається, і в той же час була настільки простою, щоб піддаватися вивченню математичними методами.

Створення математичної моделі фізичного явища можна розбити на такі етапи:

1. Вибирається основна величина (кілька основних величин), яка характеризує процес. При математичному моделюванні поширення тепла такою величиною є температура точок середовища, яка в загальному випадку є функцією просторових координат і часу .

2. На другому етапі виводиться визначальне рівняння для основної величини, яка характеризує процес. При вивченні поширення тепла таким рівнянням є рівняння теплопровідності. Для виведення цього рівняння використовується закон збереження тепла в деякому довільному об’ємі нерівномірно нагрітого середовища.

3. Одержане на другому етапі диференціальне рівняння має безліч розв’язків. Отже, його не досить для описання конкретного процесу. Тому на третьому етапі побудови математичної моделі виводяться так звані умови однозначності, які з безлічі розв’язків визначального рівняння дозволяють виділити єдиний розв’язок, що характеризує даний процес, який моделюється. Нагадаємо, що для рівнянь математичної фізики такими додатковими умовами є крайові й початкові умови.

Таким чином, математична модель процесів, які вивчаються за допомогою рівнянь математичної фізики, складається з диференціального рівняння для основної величини, яка характеризує процес, і додаткових умов, які дозволяють отримати єдиний розв’язок цього рівняння – розв’язок, що описує даний, конкретний фізичний процес.