Алгоритмічна і об'єктна декомпозиції. Класи і об'єкти



 

Принципово можна виділити 2 види розбиття предметної області на елементи, що становлять:

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

 

Об'єктна декомпозиція(основні елементи програми-види абстракцій(класи)іпредставники цих класів (об'єкти)).

 

Відповідно до алгоритмічної декомпозиції предметної області при аналізі завдання ми

 

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

 

3


програмування даний підхід повною мірою підтримується засобами модульного програмування (бібліотеки, модулі, підпрограми).

 

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

 

На сьогоднішній день об'єктний підхід і його основи - об'єктна модель і об'єктна декомпозиція - підтримуються усіма сучасними об'єктно-орієнтованими мовами програмування (Object Pascal, C++, Java, C#.).

 

Складові частини об'єктного підходу

 

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

Об'єктний підхід:

• OOA (object oriented analysis) - об'єктно-орієнтований аналіз.

• OOD (object oriented design) - об'єктно-орієнтоване проектування.

• OOP (object oriented programming) - об'єктно-орієнтоване програмування.

Що означають ці ключові поняття [1]:

Об'єктно-орієнтований аналіз -це методологія,при якій вимоги до системи

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

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

 

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

У російськомовній і україномовній літературі , як правило, під абревіатурою ООП розглядають всі 3 складових об'єктного підходу. Далі і ми слідуватимемо цьому принципу.

 

Курси з циклу "Методи програмування" і, конкретніше, "Об'єктно-орієнтоване програмування" переважно концентруються на OOP. Даний курс, принаймні, його теоретична частина основна увага приділяє OOA і OOD.

 

Принципи об'єктного підходу

Розглянемо найбільш важливі принципи об'єктного підходу.

 

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

 

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

 

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

 

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

 

 

4


Дата добавления: 2018-05-09; просмотров: 1427; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!