- •«Об'єктно-орієнтоване програмування»
- •Розділ 1.Теоретична частина
- •1.1 Еволюція технології програмування
- •1.2 Відмінності об’єктного та функціонального підходів програмування
- •1.3 Об'єктно-орієнтований підхід
- •1.3.1 Головні поняття і різновиди ооп
- •1.3.5 Поля об'єктів
- •1.3.6 Методи
- •1.3.2 Інкапсуляція
- •1.3.3 Спадкування як найважливіша властивість об'єкта
- •1.3.4 Примірники об'єктних типів
- •1.3.7 Поліморфізм
- •Розділ 2.Аналітична частина
- •2.1 Недоліки ооп
- •2.1.1Критика реклами ооп
- •2.1.2 Оспорювання ефективності розробки методами ооп
- •2.2 Продуктивність об'єктно-орієнтованих програм
- •Розділ 3.Дослідження стану ринку
- •3.1Інтегровані середовища проектування та їх вартість
- •Висновки
- •Список використаної літератури
1.2 Відмінності об’єктного та функціонального підходів програмування
Є два принципово відмінних підходи до технології програмування: інженерно-конструкторський та математичний. Перший заснований на тому, що виготовлення програмного продукту по заданим вимогам суто ітеративний процес послідовної реалізації алгоритму рішення задачі. Другий підхід заснований на математичному доказі правильності програми і автоматичному (або напівавтоматичному) отриманні готової програми по заданих специфікаціям.
Об'єктно-орієнтований підхід до технології програмування - інженерно-конструкторський, в якому увага концентрується на самому процесі виконання завдання. В даній статті авторами узагальнюється досвід використання об'єктно-орієнтованої технології при розробці середовища об'єктно-орієнтованого програмування та деяких прикладних програм, що працюють в цьому середовищі.
Поетапна послідовна схема жорстко пов'язана з низхідним способом створення програми. Однак практика показує, що процес створення хоч скільки-небудь складної програми неминуче виявляється циклічним, з поверненнями для внесення змін у попередні етапи. Такі повернення пов'язані з великими витратами, оскільки втягують етапи з різними інтерфейсами і різними виконавцями.
Також, погане використання результатів попередніх розробок значно погіршує розробку складних програм. Низхідний тип проектування разом зі слабкою формалізацією мов специфікацій призводить до того, що результати проектування, як і готові програми та їх частини, практично неможливо використовувати для інших цілей. Виняток становлять бібліотеки мов програмування на етапі кодування.
Принципова відмінність від функціональної схеми полягає в тому, що поетапний цикл життя програмного продукту замінюється багаторівневим поданням процесу виконання завдання, яке виходить поєднанням низхідного і висхідного способів. З одного боку йде деталізація верхніх рівнів, з іншого боку з нижніх рівнів збираються відсутні компоненти верхніх рівнів. Суміжні та інші прилеглі рівні можуть перетинатися, тобто мати загальні компоненти. Таким чином, межі між рівнями розмиваються, їх число стає довільним і навіть невизначеним, а самі рівні втрачають свою специфіку.
Об'єктно-орієнтована мова програмування ґрунтується на понятті об'єкта як замкнутої незалежної сутності, яка взаємодіє із зовнішнім світом через строго певний інтерфейс у вигляді переліку повідомлень, які об'єкт може приймати. Об'єкт має властивості, поведінку і стан. Об'єкти з однаковими властивостями і поведінкою об'єднуються в класи. Програма на об'єктно-орієнтованої мови являє собою сукупність описів класів. Класи, в свою чергу, є описами властивостей і поведінки складових їх об'єктів. Властивості представляються іншими, як правило, більш простими об'єктами.
Об'єктно-орієнтована база класів являє собою ієрархічний набір (бібліотеку) класів - будівельних блоків для складання нових рівнів створюваного програмного продукту. Тут зберігаються класи «джентльменського набору» бібліотек мов програмування, а також класи, які описують поняття прикладних предметних областей.
Класи представляють собою накопичені знання про раніше виготовлених продуктах. База класів повинна забезпечувати легкий пошук класів, їх вивчення, модифікацію, включення нових класів. Мова і база класів об'єднуються в інтегровану об'єктно-орієнтоване середовище програмування, в якій всі засоби підтримки процесу розробки програм написані цією мовою і входять на рівних правах до складу бази класів. Типовими прикладами таких засобів є графічний багатовіконний інтерфейс з користувачем, ієрархічні меню, компілятор, інтерпретатор, відладчик, текстовий редактор.
Розробка програм по об'єктно-орієнтованій технології зводиться до створення нових класів, їх тестуванню і включенню до складу об'єктно-орієнтованого середовища розробки.
Розглянемо, яким чином в об'єктно-орієнтованої технології долаються дві перерахованих нестачі функціонального підходу.
Формалізація зв'язків між етапами. Всі етапи (рівні), починаючи аналізу програми, описуються на єдиному формалізованому мовою. Фактично чіткої межі між рівнями.
Гнучкість. Внесення змін всередині об'єкта або класу абсолютно не зачіпає його клієнтів, тобто тих об'єктів, які його використовують, зрозуміло, якщо зовнішній інтерфейс об'єкта залишається незмінним. Це фундаментальний принцип об'єктно-орієнтованого програмування. Таким чином забезпечується гнучкість при програмуванні знизу-вгору.
В даний час об'єктно-орієнтований підхід є одним з швидко розвиваються, у проектуванні систем. Прикладом можуть бути об'єктно-орієнтований аналіз - методологія розробки систем, запропонована Йорданом, об'єктно-орієнтоване проектування, об'єктно-орієнтоване програмування, реалізоване в численних компіляторах C ++, ObjectPascal, BorlandPascal, Smalltalk.
