2.2 Вибір засобів реалізації програми

Програма реалізована в середовищі об’єктно-орієнтованого програмування Borland С++ Builder 6.0, на основі мови програмування С++. Це пов’язано з тим, що даний напрям програмування має ряд переваг, необхідних для ведення обліку меблевого складу.

Відомо декілька версій C++. У версії 1.0 реалізовані основні механізми об'єктно-орієнтованого програмування, такі як одиночне наслідування і поліморфізм, перевірка типів і перевантаження функцій. У створеній в 1989 році версії 2.0 знайшли віддзеркалення багато додаткових властивостей (наприклад, множинне спадкоємство), що виникли на базі широкого досвіду застосування мови численним співтовариством користувачів. У версії 3.0 (1990) з'явилися шаблони (класи, що параметризуються) і обробка виключень. Комітет ANSI з C++ (X3J16) недавно схвалив пропозиції по введенню просторів імен (що відповідає нашому позначенню категорій класів) і перевірки типів під час виконання.

Основні характеристики C++ :

·        абстракції: змінні екземпляра, методи екземпляра, змінні класу, методи класу;

·        інкапсуляція: змінних, методів;

·        модульність: різновиди модулів;

·        ієрархії: наслідування, шаблони, мета класи;

·        типізація: сильна типізація, поліморфізм;

·        паралельність: багатозадачність;

·          збереженість: довго живучі об’єкти.

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

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

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

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

Ієрархія виступає, як процес впорядкування абстракцій, розташування їх по рівнях. Основними видами ієрархічних структур стосовно складних систем є структура класів (ієрархія "is-a") і структура об'єктів (ієрархія "part of"). Прикладом ієрархії є одиночне наслідування. Іншими словами, наслідування створює таку ієрархію абстракцій, в якій підкласи успадковують будову від одного або декількох батьківських класів.

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

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

Для об'єктно-орієнтованої розробки виділяють сім різних видів інструментів.

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

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

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

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

Для великих проектів потрібні інструменти управління конфігурацією і контролю версій. Для управління конфігурацією кращими одиницями є категорії класів і підсистеми.

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

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

Вибір даної мови програмування зумовлений через її переваги:

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

·        завдання, що розробляються, можуть бути настільки складними, що не залишається альтернативних рішень.

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

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

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

Інший наслідок розшарування: іноді методи служать лише для того, щоб дістати доступ до захищених атрибутів об'єкту. В результаті відбуваються дуже багато викликів. З позитивного боку таке шарування сприяє розумінню системи; до деяких складних систем неможливо навіть підступитися, якщо не почати з проектування шарів.


Висновки

В процесі роботи було створено програму - «Облік продуктового магазину». Програма реалізована в середовищі об’єктно-орієнтованого програмування Borland С++ Builder 6.0, на основі мови програмування С++.

Було досліджено предметну область - «Продуктовий магазин», що внесло багато ясності для розробки програми.

Детальний розгляд та створення програмної моделі дало можливість більш детально спроектувати створену програму, розбивши її на модулі так, що прискорило швидкість її створення та внесло ясність на деякі використовувані аспекти програми.

Створена програма «Облік продуктового магазину» в процесі доопрацювання може бути використана за основу для створення більш складної та великої бази даних по роботі в даній предметній області.


Список використаних джерел

 

1.      Гради Буч Объектно-ориентированный анализ и проектированиес примерами приложений на С++. Второе издание Rational Санта-Клара, Калифорния, перевод с английского под редакцией И. Романовского и Ф. Андреева.

2.      Павловская Т.А. С++. Объектно-ориентированное программирование: практикум. СПб: Питер, 2005.

3.      Б.С. Хусаинов. Структуры и алгоритмы обработки данных. – Примеры на языке Си: Учеб. Пособие, 2004.

4.      Кнут, Дональд, Эрвин. Искуство програмирования в 3-х т. М.: Вильянс, 2003.

5. Катренко А.В. Системний аналіз об’єктів та процесів комп’ютеризації. Львів: Новий світ-2000, 2007.

6. Б.С. Хусаинов. Структуры и алгоритмы обработки данных. – Примеры на языке Си: Учеб. Пособие. Финансы и статистика, 2004.

7. Гайдаржи В.І. Основи проектування та використання баз даних. К.: Політехніка, ТОВ фірма Періодика, 2004.

8. Малевич Б.Я. Теория алгоритмов. М.: Машиностроение, 2004.

9. Прокудин Г.С. Основы программирования и алгоритмические язики. К.: Изд-во Европейського университета, 2003.

10. Озеров В. Советы по Delphi. Советы програмистов. СПб.: Символ-плюс,2002.


Додаток А

 

Результат роботи програми «Облік продуктового магазину»

 

Рис. 1 - Форма обліку продуктового магазину


Додаток Б

 

Лістинг програми

 


Информация о работе «Об’єктно-орієнтована програма обліку продуктового магазину»
Раздел: Информатика, программирование
Количество знаков с пробелами: 40325
Количество таблиц: 0
Количество изображений: 3

Похожие работы

Скачать
304576
89
18

... Чарка, стакан 4 320 2 80 400 Столові прибори (комплект) 4 320 2 80 400 Далі наведемо характеристику посуду, який будуть використовувати в комплексному закладі ресторанного господарства (табл. 2.8–2.11). Таблиця 2.8. Характеристика та призначення класичного вітчизняного порцелянового та фаянсового посуду Найменування Розміри, мм Місткість, см3, порцій Призначення ...

Скачать
87719
8
5

... , що в свою чергу призводить до збільшення прибутку. Об’єктом дослідження в курсовій роботі виступає логістична система розподілу продукції на ЖКУВП “Біатрон-3”. Предметом дослідження є сукупність методичних та практичних проблем управління логістичною системою розподілу продукції. Метою написання курсової роботи є вивчення теоретичних аспектів управління логістичною системою розподілу та дослі ...

Скачать
169717
23
3

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

Скачать
157062
12
4

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

0 комментариев


Наверх