Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
derzh.docx
Скачиваний:
3
Добавлен:
17.09.2019
Размер:
10.8 Mб
Скачать

15. Правила віртуалізації методів в ооп.

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

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

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

class Ancestor

{

public:

virtual void function1 () { cout << "Ancestor::function1()" << endl; }

void function2 () { cout << "Ancestor::function2()" << endl; }

};

class Descendant : public Ancestor

{

public:

virtual void function1 () { cout << "Descendant::function1()" << endl; }

void function2 () { cout << "Descendant::function2()" << endl; }

};

Descendant* pointer = new Descendant ();

Ancestor* pointer_copy = pointer;

pointer->function1 ();

pointer->function2 ();

pointer_copy->function1 ();

pointer_copy->function2 ();

Буде виведено:

Descendant::function1()

Descendant::function2()

Descendant::function1()

Ancestor::function2()

16. Поняття технології створення програмного забезпечення та основні технологічні етапи. Приклади технологій.

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

розробка, узгодження та затвердження ТЗ на створюваний програмний комплекс;

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

обґрунтування необхідної технології розробки;

написання програмного комплексу;

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

налагоджування та тестування ПЗ;

створення необхідної програмної документації;

верифікація ПЗ – здійснення перевірки ПЗ на кожному етапі проектування системи АНД на предмет виконання вимог, сформульованих на попередньому етапі;

атестація та валідація ПЗ – здійснення тестування та оцінки інтегрованої системи АНД (апаратного та програмного забезпечення) на предмет відповідності функціональним вимогам, а також вимогам до інтерфейсу та продуктивності;

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

проведення міжвідомчою комісією його приймальних випробувань;

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

сертифікація створеного ПЗ.

Деякі етапи можуть бути відсутні, або навпаки – введені додаткові.

Приклади технологій:

модульне програмування – полягає у декомпозиції задачі на сукупність модулів. Модуль є окремою функціонально завершеною програмною одиницею.

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

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

багаторівневе структурне програмування поєднує спадне і структурне програмування.

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

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