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

Кам’янець-Подільський національний університет імені Івана Огієнка

Кафедра інформатики

Курсова робота

з дисципліни «Теорія програмування»

на тему:

«Аспектно орієнтоване програмування»

Студента 3 курсу 34-і групи

напряму підготовки 6.040302 Інформатика

МАЗУР ВОЛОДИМИР ВОЛОДИМИРОВИЧ

Керівник: кандидат технічних наук, доцент,

КОВАЛЕНКО ОЛЕКСІЙ ЄПИФАНОВИЧ

Національна шкала __________________

Кількість балів: ___Оцінка: ECTS _____

Члени комісії ________________ Федорчук В.А.

(підпис) (прізвище та ініціали)

________________ Коваленко О.Є.

(підпис) (прізвище та ініціали)

м. Кам’янець-Подільський – 2013рік

Зміст

Вступ

Об'єктно­-орієнтоване програмування (ООП) було представлене як технологія, що сприяє процесу проектування ПЗ, оскільки об'єктна модель краще вписується в реальну наочну область і може бути представленна наочно. Але виявлено безліч проблем в реалізації систем, де ООП не достатньо для чіткої фіксації важливих архітектурних рішень програми. Існують деякі проблеми, для яких не підходять ні об'єктно­орієнтовані (ООП) ні процедурно­орієнтовані мови програмування (ПІП).

Аспектно­-орієнтоване програмування (АОП) дозволяє чітко виразити код, залучений в аспект, включаючи відповідну ізоляцію, композицію, і повторне використання. Не дивлячись на те, що АОП і є новою ідеєю, існують інші системи, що мають схожі властивості.

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

Істотна межа програмної системи — рівень складності: один розробник практично не в змозі охопити всі деталі системи, причому складність властива більшості сучасних програмних систем. Дана складність неминуча: з нею можна справитися, але позбавитися від неї не можна. Складність програмних систем обумовлена  чотирма основними причинами: складністю реальної наочної області, з якої виходить замовлення на розробку; трудністю управління процесом розробки; необхідністю забезпечити достатню гнучкість програми; незадовільними способами опису поведінки великих дискретних систем.

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

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

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

Поява нових парадигм програмування завжди була цікавою темою, оскільки кожна нова методологія розробки програмного забезпечення дозволяла вирішувати проблеми, що є посилками для її появи, і значно просувала науку Computer Science і індустрію ПЗ в цілому. Ускладнення програмних систем — як глобальна проблема вимагає постійної уваги і вивчення, тому поява АОП представляється широким полем для досліджень з подальшим їх практичним застосуванням.