Особливості розробки програмних засобів на основі об’єктно-орієнтованого програмування
Сучасна практика програмування вимагає вдосконалення прийомів розробки комп’ютерних програм, прискорення та полегшення процесу їх проектування. При цьому програмні засоби повинні бути орієнтовані на тривалу роботу з користувачем. Це ставить перед розробником-програмістом завдання, що спрямовані не тільки на технологічні вимоги організації інтерфейсу програми, а й на психолого-фізіологічні особливості сприймання людиною інформації. Ріст приватного сектору економіки призвів до перегляду об’ємів витрат на комп’ютерну техніку та на спеціалізоване програмне забезпечення. Набагато вигідніше стало розробляти нескладні програмні засоби, орієнтовані на розв’язання вузько спеціалізованих завдань. Тому, перед навчальними закладами постала мета підготувати спеціалістів, які спроможні створювати гнучкі програмні засоби, не витрачаючи на їх розробку та впровадження багато фінансів та часу. Особливі можливості надають об’єктно-орієнтовані середовища програмування, що дозволяють швидко конструювати програмний засіб, використовуючи готові компоненти та описуючи процедури обробки події певного об’єкта, тоді як традиційне, процедурне програмування вимагає більш ретельного опису та налагодження програм. Для кращого порівняння традиційної та об’єктно-орієнтованої технологій програмування розглянемо їх основні переваги та недоліки. Традиційне програмування базувалося на розробці тексту основної програми, яка викликала окремі процедури, що накопичувалися у великі бібліотеки розрахункових та службових процедур. Основним недоліком такої технології була наявність високої вірогідності помилок при зростанні кількості процедур, а це значно утруднювало налагодження програми. Складність програмного засобу обмежувала можливість слідкування за процесом обробки даних, з’являлися проблеми узгодження інтерфейсу при розробці програми кількома програмістами. Зусиллями спеціалістів була представлена структурна технологія програмування, яка являла собою сукупність технологічних прийомів, що охоплюють виконання всіх етапів розробки програмного засобу. Така технологія програмування базувалася на декомпозиції складних систем і вимагала побудови ієрархічної структури розв’язання задачі з використанням методу покрокової деталізації. Створена програма мала правильну структурну організацію і містила декілька процедур, які викликалися основною програмою або процедурою більш високого рівня. Підтримка принципів структурного програмування була закладена до основи процедурних мов програмування. Ці мови містили основні оператори управління, дозволяли вкладення процедур, функцій, локалізацію та обмеження даних. Усе це дало змогу зробити перші кроки до абстрагування та маскування інформації, що є засобами об’єктно-орієнтованого програмування. Подальше зростання складності та розмірів програмного забезпечення розвивало можливості структурування даних, дозволяло описувати типи даних користувача. Одночасно виникла необхідність розмежувати доступ до глобальних даних програми, тому з’явилася технологія модульного програмування. Вона припускає виокремлення групи процедур та функцій з однаковими глобальними даними в окремі файли, які використовуються в інших програмах як окремо компілюючі модулі: модуль графічних ресурсів, модуль виведення інформації на принтер та інші. Усі змінні в модульних програмах розподіляються на дві частини: відкриті (public), тобто доступні поза модулем в інших програмах, та закриті (private) – доступ до яких може бути тільки в межах процедури. Такий підхід значно поліпшив розробку програм кількома програмістами, кожний з яких розробляв свій окремий модуль, який можна було використовувати в інших програмах. Таку технологію програмування підтримували Pascal, C, С++ та інші. Дані середовища програмування були орієнтовані на користування операційною системою MS-DOS. Недоліком модульного програмування була обмеженість у розмірі програми. Так, при використанні програмістом понад 100 операторів зростала складність міжмодульних інтерфейсів, тому передбачити взаємовплив окремих частин програми було практично неможливо. Технологія об’єктно-орієнтованого програмування зменшила кількість зв’язків між окремими частинами програми, що дозволило скоротити час її розробки та полегшити процес створення Windows-додатків, тобто програм, що орієнтуються на операційну систему Windows. Дана технологія базується на описі окремих об’єктів, кожний з яких належить до певного класу. Параметри об’єкта кожного класу утворюють ієрархію властивостей, а процедури та функції, які називають методами, виконуються після запитів. Основною перевагою об’єктно-орієнтованого програмування є значне зменшення кількості міжмодульних повідомлень та зменшення об’єму інформації, що передається між модулями. Локалізація даних, їх інтегрування з процедурами обробки дозволяють створювати незалежні між собою окремі частини програми, які також можуть бути використані в інших програмах. Так, на основі поєднання готових, уже описаних блоків можна сконструювати кінцевий програмний засіб. При використанні об’єктно-орієнтованих програм вимоги до об’єму пам’яті такі, як і при традиційному програмуванні, при цьому склад програми став більш компактний, а процес її вдосконалення - полегшений. Об’єктно-орієнтований підхід використовує такі технологічні засоби, як спадкування, поліморфізм, композицію та наповнення. Усе це сприяє проектуванню складних об’єктів при використанні більш простих. Ці засоби є основними показниками об’єктно-орієнтованого програмування. Механізм спадкування реалізується через доступ до методів і властивостей об’єкта певного класу і дозволяє приписати їх іншому об’єкту цього ж класу. Цей механізм забезпечує створення похідних класів. Ці класи розширюють можливості вже існуючих класів без їх перепрограмування та повторної компіляції. Саме це дозволило зменшити об’єм програмного засобу та збільшити його функціональність. Механізм поліморфізму забезпечує можливість визначення різних аспектів єдиного за назвою методу для класів різних рівнів ієрархії. Подібний підхід дозволяє будувати більш гнучкі й досконалі ієрархії класів, змінюючи в похідних класах методи відповідно до вимог програми. Композицією є відношення між класами, коли один клас є часткою іншого. Композиція реалізується включенням у клас об'єктного поля та застосовується, якщо спадкування неможливе або недоцільне. Наповнення відрізняється від композиції тим, що замість об'єктного поля використовуються поля, що містять покажчики на об'єкти. При використанні перелічених засобів зростає показник повторного використання кодів, з'являється можливість створення бібліотек об'єктів з метою різнопланового їх застосування. В основу орієнтованого програмування покладені такі принципи, як абстрагування, обмеження доступу, модульність, ієрархічність, типізація, паралелізм та стійкість. Мова програмування вважається об’єктно-орієнтованою, якщо в ній реалізовані перші чотири принципи, серед них С++Builder, Visual С++, Delphi та інші. Так, абстрагуванням є процес виокремлення певних характеристик об'єкту, що відрізняють його від інших та визначають його особливості. Залежно від поставленої задачі характеристикою може бути форма предмета, його вага, матеріал або закон руху тощо. Абстрагування допускає об’єднання усіх характеристик, що визначають стан та поведінку об’єкта, в єдину програмну одиницю певного типу. Так формується клас об’єкта. Обмеження доступу дозволяє приховувати окремі елементи об'єкта, що не відображають його істотні характеристики. Необхідність обмеження доступу припускає розмежування двох частин в описі характеристик об’єкта, а саме на інтерфейс та реалізацію. Інтерфейсом є сукупність доступних елементів, що характеризують стан та поведінку об'єкта, тоді як реалізація відображає сукупність тільки недоступних елементів цього ж об'єкта. Це дозволяє розробнику програмного засобу виконувати конструювання програми за етапами, а також легко модифікувати реалізацію окремих об’єктів. Об'єднання усіх властивостей об'єкта в єдину абстракцію та обмеження доступу до реалізації його властивостей визначило таке важливе поняття об’єктно-орієнтованого програмування, як інкапсуляція. Модульність припускає реалізацію програм у вигляді окремих частин, так званих модулів. Використання модульності спрощує проектування та налагодження програми. Ієрархічність є впорядкованою системою характеристик об’єкта. Вона використовується під час розробки структури класу, при побудові складних класів на базі простих за рахунок додавання нових характеристик та інших уточнень. Основним недоліком об’єктно-орієнтованого програмування є зниження швидкості роботи середовища через більш складну організацію програмної системи. Цей недолік усувається при використанні розробником сучасної високошвидкісної комп’ютерної техніки. Відсутність єдиної прийнятої термінології є недоліком теоретичного аспекту об’єктно-орієнтованого програмування. Розробка програмних засобів для операційних систем Windows має ряд особливостей. Так, взаємодія програмного засобу з користувачем та з операційною системою здійснюється через відправлення та обробку повідомлень. Таку побудову обробки повідомлень в програмі назвали подією. Управління подіями є процесом самостійним, не зв’язаним з програмуванням. Існують програми, що працюють за принципом події, але не є об’єктно-орієнтованими. Поєднання об’єктно-орієнтованої технології та опис реакції програми на подію дозволили істотно спростити процес програмування. Існуючі об’єктно-орієнтовані середовища програмування дозволяють порівняно легко розробляти складні Wіndows-програми, автоматизувати операції розробки програмного засобу та пропонують велику кількість різних шаблонів та заготовлень. Процес розробки комп’ютерної програми на основі об’єктно-орієнтованого програмування містить такі етапи, як аналіз, проектування, еволюція та модифікація. Метою аналізу є максимально повний опис поставленої задачі. На цьому етапі аналізується предметна область задачі, виконується об'єктна декомпозиція програми та визначаються особливості поведінки об'єктів. За результатами аналізу розробляється структурна схема програми, описуються об'єкти та події над ними. Проектування поділяється на логічне та фізичне. Логічне полягає у розробці структури класів, коли визначаються поля для збереження складових об'єктів, алгоритми методів, що описують поведінку об'єктів. Розробляючи класи об'єктів, слід відповісти на такі питання: - Скільки класів потрібно для реалізації об'єктів, отриманих при декомпозиції задачі? - Які дані необхідно описати як поля класу? - Які методи, що визначають поведінку об'єктів, треба помістити до класу? - Чи зв'язані між собою класи задачі? Чи потрібна побудова ієрархії класів? Фізичне проектування містить об'єднання опису класів у модулі, вибір схеми їх підключення (статична або динамічна), визначення способів взаємодії з обладнанням, операційною системою та іншим програмним забезпеченням (базами даних, мережним оточенням), забезпечення синхронізації процесів для систем рівнобіжної обробки тощо. На етапі проектування використовуються такі прийоми розробки класів як спадкування, композиція, наповнення. Результатом етапу проектування є створення ієрархії класів та їх опис. Еволюція системи представляє етап послідовної реалізації та підключення класів до проекту. Процес починається із створення основного інтерфейсу проекту, бібліотеки класів, описуються тип поля класу, розробляються алгоритми методів, уточнюються вимоги до програми та вносяться певні зміни. Одержаний прототип продукту тестується й налагоджується. Модифікація являє собою етап додавання нових функціональних можливостей до програми. Зміни торкаються лише реалізації класу, не змінюючи його інтерфейсу, інакше внесення на цьому етапі змін до інтерфейсу викличе необхідність узгодження процесів взаємодії між об'єктами та потребує змін в інших класах програми. Простота модифікації дозволяє легко адаптувати програмний продукт до умов експлуатації, що постійно змінюються. Порівнюючи середовища програмування Vіsual C++, Delphі та C++ Buіlder, треба відзначити, що Vіsual C++ є найбільш універсальним програмним пакетом, а тому найбільш складним. Він використовує розвинуту об'єктну модель C++ та має більш могутню бібліотеку об'єктів. Інтерфейс і засоби Vіsualпотребують більше часу на їх освоєння й орієнтовані на професійні розробки високого рівня. Delphі та C++ Buіlder використовують ідентичні середовища програмування та бібліотеку об'єктів VCL (Vіsual Component Lіbrary). Розробка програмних засобів у цих середовищах у порівнянні з Vіsualзначно більш автоматизована й полегшена. Вони містять засоби зв'язку з популярними базами даних, дозволяють створювати якісні програмні продукти за істотно коротший термін. Виходячи з того факту, що Паскаль є найкращою навчальною мовою програмування, ми визначили Delphі (Object Pascal) найбільш сприятливим середовищем для навчання студентів програмування. Будь-який програмний засіб, розроблений на основі Delphi містить об'єкт-форму (вікно програми), де розміщуються певні компоненти. При цьому всі об’єкти форми повинні відповідати вимогам замовника та орієнтуватися на тривалу роботу з користувачем. Тому, крім техніко-технологічних вимог до розробки програм, слід також урахувати психолого-фізіологічні вимоги до поданої на екрані інформації. Основна увага під час процесу розробки комп’ютерної програми зосереджується на проектуванні форми з включенням змістового, наочного та емоційного компонентів, що впливають на ефективність роботи програмного засобу. Кожний з компонентів знаходиться у постійному взаємозв’язку з іншими компонентами. Змістовий компонент визначається вимогами до коректного представлення інформації та вимагає правильності отриманих результатів при розрахунках. Так, під час роботи з фінансовими документами варто вибирати правильний спосіб представлення числових даних. Отримані результати, що містять дрібну частину, мають бути правильно округлені та однозначно представлені. При цьому варто дотримувати єдиних вимог, використовуючи однакову кількість знаків у дрібній частині числа, роздільник груп розрядів у числових даних з великим значенням, єдиний формат числових даних в одній області представлення (шрифт, колір, вид тощо). До змістового компонента відносять наявність у програмі інформаційних областей з необхідними довідковими відомостями, точну розробку необхідних вихідних форм згідно із законодавством України, можливості роботи у комп’ютерній мережі з використанням клієнт–серверних технологій. Наочний компонент програми ставить вимоги до розміщення інформації на екрані згідно з особливостями сприймання її людиною. Так, людське око, звичне до читання зліва направо, розпочинає перегляд інформації від лівого верхнього кута екрану до правого нижнього кута. Тому початкову або найважливішу за логікою представлення інформацію слід розташовувати у лівому верхньому куті екрану. Комп’ютерна програма повинна містити допоміжну, спливаючу інформацію, що пояснює призначення кожного компонента форми на екрані. Це значно полегшує освоєння користувачем роботи програмного засобу. При цьому слід уникати зайвих текстових подробиць та незначущих графічних прикрас, що відволікає увагу людини під час роботи з програмою. Особливу увагу треба приділити кольоровому оформленню програмного засобу, який повинен відповідати закономірностям сприймання людиною спектру кольорів. Дотримання цих вимог дозволяє користувачеві працювати з програмою без впливу на його фізичний стан. Тому розробнику комп’ютерної програми слід пам’ятати такі правила: короткохвильові кольори (фіолетовий, синій) при систематичному використанні призводять до пригніченого стану користувача, надмірного напруження його очей; чим більша довжина хвилі колірного спектру (червоний, рожевий, жовтогарячий), тим сильнішим є вплив на зоровий аналізатор користувача, а це призводить до його стомлення; кольори середньої частини спектра (зелений, прилеглі до жовтого та блакитного, а також сірий) створюють найкращі умови для сприйняття інформації, оскільки не викликають ні пригнічуваної, ні збуджуючої дії; велика кількість областей з різнокольоровими відтінками спричинює роззосередження уваги користувача. Контрастне забарвлення створює різкий перепад довжини хвиль кольору, що важко сприймається людським оком, тому екран слід оформлювати в єдиній тональності; одночасно рекомендується використовувати не більше 4-х основних кольорів; однакові відтінки кольорів, окремі рамки використовують для передачі єдності інформації, її подібності, тоді як контрастні кольори або взагалі відсутність кольору (білий чи фоновий) - для розходження, ізолювання інформації. Деякі інформаційні об’єкти програмного засобу потребують підвищеної уваги користувача. З метою її активізації слід використовувати коректні способи, що зосереджують увагу, при цьому не відволікають людину від змісту інформації. До таких прийомів відносять збільшення шрифту або підкреслення тексту, кольорове оформлення, використання короткочасного переміщення об'єкта або його нетривале мерехтіння (кілька секунд) з низькою частотою. Велике значення має ефективне використання площі екрана програми. Слід раціонально використовувати під усі види інформації не більше 90% від загальної площі екрану. При цьому краще розподілити екран на окремі зони для компонентів уведення інформації, отримання результатів, а також для компонентів виклику додаткової інформації, переходу до попереднього або наступного етапів роботи комп’ютерної програми. Емоційний компонент орієнтований на розвиток позитивних емоційних умов роботи користувача з програмним засобом, застосування ним ефективних засобів управління програмою. Найбільш сприятливою формою організації програмного засобу є використання компонента меню, однак при цьому також слід дотримуватися певних норм. Так, при створенні меню необхідно обмежуватися не більше як дев'ятьма командами, тоді як кожна команда меню не повинна перевищувати трьох укладень. Робота з пунктами меню має здійснюватися за допомогою одночасної роботи користувача як з мишею, так і з клавіатурою. Обробка інформації припускає можливості сортування, пошуку та вибірки даних за певною умовою. При роботі з інформацією великих об’ємів треба використовувати швидкі методи розміщення на формі екранних покажчиків процентного виконання операції обробки даних. Рутинна робота користувача при введенні чи редагуванні даних викликає втому та знижує уважність, веде до зростання кількості помилок. Наявність режиму автоматичного збереження даних та можливість скасування останньої дії допоможуть уникнути зайвих проблем. Для покращення емоційного стану користувача під час роботи розробники програмного засобу передбачають звуковий супровід, створення мовних або музичних фрагментів. Робота із звуковою інформацією також має певні особливості. Так, слід пам’ятати, що час обробки звукової інформації довший, ніж зорової, тому звук і текст не повинні дублюватися, а можуть лише доповнювати один одного. Для більш осмисленого сприймання звукової інформації її чергують із текстовою. При використанні музичних збірників треба пам’ятати, що використання спокійного музичного супроводу підтримує увагу, тоді як ритмічна музика увагу роззосереджує. Одним із важливих факторів підтримки сприятливих умов роботи з програмним засобом є стійкість програми до некваліфікованих дій користувача. Тому при введенні інформації слід передбачити використання маски введення даних, застосування єдиного роздільника дрібної частини числа незалежно від способу введення користувачем. Це дозволяє уникнути введення некоректних даних та "зависання" системи. Урахування перелічених техніко-технологічних та психолого-фізіологічних особливостей розробки програмного засобу дозволяє спеціалісту значно знизити термін створення ефективної комп’ютерної програми, зорієнтованої на підвищену якість обробки інформації та продуктивну роботу користувача.
ЛІТЕРАТУРА Глушаков С.В., Мельников В.В., Сурядный А.С. Програм-ми-рование в среде Windows: Учебный курс. – Харьков: Фолио; М.: ООО «Издательство АСТ», 2001. – 487 с. Иванова Г.С., Ничушкина Т.Н., Пугачев Е.К. Объектно-ориентированное программирование: Учеб. для вузов. – М.: Изд-во МГТУ имени Н.Э.Баумана, 2001. – 320 с., ил. (Сер. Информатика в техническом университете). Мархель И.И. Компьютерная технология обучения: Психолого-педагогические проблемы // Советская педагогика. - 1990. - № 5. - С. 87-91. Мачто Д., Фолкнер Д.Р. Delphi: Пер. с анг. – М: Бином, 1995. – 464 с. Машбиц Е.И. Психолого-педагогические проблемы компьютеризации обучения. – М.: Педагогика, 1988. – 191 с. Скляров В.А. Язык С++ и объектно-ориентированное программирование. – М.: Высш. шк., 1997. - 478 с. Фаронов В.В. Delphi 5. Руководство программиста. – М.: Нолидж, 2001. – 880 с.
Рефераты по информатикеСучасна практика програмування вимагає вдосконалення прийомів розробки комп’ютерних програм, прискорення та полегшення процесу їх проектування. При
Оценок: 431 (Средняя 5 из 5)
Специалисты RetsCorp работают в digital-сфере более 7 лет. За это время мы разработали более 500+ успешных проектов. Основываясь на своем опыте и знании рынка, мы с уверенностью можем сказать, что будет работать, а что — нет. Заказывая создание лендинга для бизнеса в нашей студии, вы получаете работающие решения, необходимые именно вашему бизнесу.
Сотрудничая с нами, вы будете не клиентом, а нашим партнером. Благодаря этому мы будем развивать ваш бизнес как собственный. Мы так же как и вы заинтересованы в успехе проекта, поскольку ваша успешность будет нашей рекламой.