Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_ООП_заочники.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
321.02 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ

ДОНЕЦЬКИЙ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСІТЕТ

методичні вказівки

до виконання лабораторних робіт з курсу

«Об’єктно орієнтоване програмування»

(для студентів спеціальності 6.050201

“ Системи управління та автоматика” (СУА)

заочної форми навчання)

Розглянута на засіданні кафедри АТ

Протокол №_5_ від 26.04.2012 р.

Затверджена на засіданні

учбово-видавницької ради ДонНТУ

Протокол №__ от __________

-2012-

УДК 621.391.26

Методичні вказівки до виконання лабораторних робіт з курсу «Об’єктно орієнтоване програмування»(для студентів спеціальності “ Системи управління та автоматика” (СУА) за напрямом підготовки 6.050201 «Системна інженерія» (СУА) денної форми навчання)/ Укладачі: О.О.Ярошенко, І.В. Дегтяренко, А.В. Дзюба - Донецьк: ДонНТУ, 2012.-

Укладачі: доц. Дегтяренко І.В.

ст. викл. Ярошенко О.О.

ас. Дзюба А.В.

Рецензент: Омельченко А.А.

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

При вирішенні окремих завдань або комплексу взаємопов'язаних завдань на ЕОМ виділяються наступні етапи:

1. Розробка математичної моделі розв'язуваної задачі. Отримання опису процесу у вигляді алгебраїчних або логічних виразів;

2. Розробка методики рішення, визначення обмежень на вирішувану задачу, вибір засобів рішення;

3. Розробка алгоритму;

4. Реалізація рішення задачі на одній з мов програмування;

5. Тестування та налагодження програми або комплексу програм;

6. Рішення задачі на ЕОМ.

Комп'ютер вирішує задачу, виконуючи безліч дрібних дій, інструкцій. Послідовність виконання цих елементарних дій називається алгоритмом. Алгоритм може бути представлений у вигляді блок-схеми, словесного опису і, нарешті, у вигляді тексту програми на конкретній мові програмування.

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

Алгоритм повинен відповідати наступним вимогам:

1.Дискретність.

Алгоритм повинен представляти процес вирішення завдання як послідовність конкретних кроків (етапів).

2. Однозначність.

Алгоритм передбачає точний і однозначно зрозумілий порядок рішення. Це значить, що скільки б разів ми не використовували цей алгоритм з одними і тими ж вихідними даними - результат буде однаковий.

3. Масовість (універсальність).

Можливість використання даного алгоритму для вирішення не тільки даної конкретної задачі, а й для всіх інших однотипних задач.

4. Результативність (збіжність).

Кінцевий результат повинен бути отриманий після виконання певного не нескінченної кількості кроків.

Для складних завдань не відразу можна визначити набір і послідовність необхідних елементарних дій. В такому випадку основне завдання розбивають на ряд більш дрібних підзадач. У свою чергу, будь-яку підзадачі (програмний модуль) можна розбити на ще більш дрібні. Це дроблення може тривати до тих пір, поки не стане ясний алгоритм реалізації, спрощеної в черговий раз завдання. Такий метод отримав назву декомпозиція.

При цьому треба чітко визначити, які з параметрів і змінних будуть передаватися від програмного модуля більш високого рівня - модулю нижчого рівня і назад.

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

Це дозволяє скоротити кількість розглянутих модулів, зменшити розмір програми і тим самим збільшити її ефективність. Робить підсумковий алгоритм більш наочним і читаним.

Такий підхід отримав назву модульної структуризації.

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

Для написання програми на конкретній мові програмування необхідно знати синтаксис мови (зарезервовані слова), стандартні конструкції мови, структуру програм для цієї мови програмування, структуру самої мови (його окремі модулі, зовнішні бібліотеки), склад його стандартних функцій і процедур. Необхідно освоїти кошти розробки даної мови (інтегрована середа, редактор, компілятор).

Рекомендується кожен програмний модуль писати і налагоджувати окремо з подальшим включенням його в основну програму.

Після введення в комп'ютер тексту програмного модуля необхідно зробити компіляцію. При компіляції може бути виявлено більшість помилок не пов'язаних з алгоритмом (синтаксичні, явні протиріччя в структурі і призначення змінних, не передбачені засобами мови використання змінних і т.д.). Після внесення виправлень у текст модуля компіляцію необхідно повторити.

Наступний етап створення програмного модуля - тестування. Цей етап включає в себе прогонку програми з конкретними вхідними значеннями, в тому числі і в покроковому режимі, порівняння отриманих результатів з результатами контрольного прорахунку. Виявлення і виправлення помилок алгоритму.

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

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

Після тестування програма вважається налагодженої, текст її роздруковується і разом з контрольними рішеннями підшивається до звіту.

Завдання структурного проектування:

1) Формування загальної структури програмного пакета;

2) Формування структури програмних модулів;

3) Попередня оцінка і розподіл ресурсів ЕОМ на реалізацію модулів.

Вимоги до мови програмування:

  • мати адекватну систему команд;

  • досить розвиненою інтерфейс користувача;

  • забезпечення необхідними програмними засобами підтримки розробки;

  • бажана наявність бібліотеки реалізації стандартних функцій;

  • повинен забезпечувати створення пакетних програмних модулів з достатнім швидкодією.

Специфікація програмного модуля:

1) Ім'я модуля.

2) Функція модуля та її опис.

3) Вхідні параметри.

4) Вихідні параметри.

5) Вимоги до модуля за показниками призначення.

6) Інші вимоги та обмеження.

7) Порядок оцінки якості роботи модуля і контрольні рішення.

У більшості розробок є реально існуючі поняття, які важко уявити у вигляді одного з основних типів. В такому випадку необхідно визначити новий тип - клас. Клас задає поведінку об'єктів, що відповідають цим поняттям: як вони створюються, як здійснюється робота з ними, як вони знищуються.

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

Концепція класу призначена для того, щоб надати програмістові інструмент для створення нових типів, настільки ж зручних в обігу, як і вбудовані типи.

Таким чином, парадигма об'єктно-орієнтованого програмування говорить:

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

При розробці об'єктно-орієнтованої програми корисно слідувати деяким правилам:

а) Якщо Ви вважаєте "це" окремим поняттям, зробіть його класом.

б) Якщо Ви вважаєте "це" окремим об'єктом, зробіть його об'єктом деякого класу.

с) Якщо два класи мають щось спільне, зробіть це загальне базовим класом.

Коли Ви визначаєте клас який не реалізує математичний об'єкт начебто матриці або комплексного числа, або тип низького рівня, на зразок зв'язного списку, то:

а) Не використовуйте глобальні дані та функції.

б) Не використовуйте відкриті дані члени.

в) Не використовуйте "друзів", крім випадків, коли треба уникнути а) і б).

г) Не розміщуйте в клас поле ознаки типу - використовуйте віртуальні функції.

д) Не використовуйте inline-функції, крім випадків, коли необхідна суттєва оптимізація.

Програму з використанням методів об'єктно-орієнтованого програмування легше писати, тестувати, а в наслідку, супроводжувати і доповнювати.