ПВНЗ ЄВРОПЕЙСЬКИЙ УНІВЕРСИТЕТ
ЧЕРКАСЬКА ФІЛІЯ
Кафедра математичних і комп’ютерних дисциплін
КУРСОВА РОБОТА
з дисципліни: “Об’єктно-орієнтована розробка програмних систем”
на тему: “Об’єктно-орієнтована програма обліку продуктового магазину”
Черкаси 2008
Вступ
Успішна розробка і впровадження складних програмних систем - це щось більше, ніж просто програмування. Існує багато прийомів традиційних програмних розробок, наприклад, перегляд, що застосовні і в об'єктно-орієнтованій технології. У стабільному стані об'єктно-орієнтовані проекти вимагають менших ресурсів, а методи, необхідні для управління цими ресурсами, декілька відрізняються від традиційних, тому в процесі об'єктно-орієнтованої розробки не можна проводити інтеграцію всього відразу і за один раз; структурними одиницями управління для релізів повинні бути категорії класів і підсистеми, а не окремі файли і класи.
До позитивних якостей об'єктно-орієнтованих програм відносяться - графік числа виявлених помилок за певний час і щільність помилок. Існує ряд позитивних характеристик, орієнтованих на класи. Об'єктно-орієнтована розробка вимагає іншого інструментарію в порівнянні з традиційними методами. Перехід організації на об'єктно-орієнтовані технології - це зміна світогляду, а не просто вивчення нової мови програмування.
Завданням курсової роботи є вивчення предметної області «Продуктового магазину» та програмна реалізація даної області за допомогою об’єктно-орієнтованого напрямку програмування.
Програма реалізована в середовищі об’єктно-орієнтованого програмування С++Builder6.0, на основі мови програмування С++. Це пов’язано з тим, що даний напрям програмування має ряд переваг, необхідних для ведення обліку меблевого складу. Одна з переваг пов’язана з використанням віртуальних функцій, завдяки яким можна заощадити на перевірці типів і опустити багато конструкцій, що здійснюють управління. Згідно досвіду, код об'єктно-орієнтованої програми зазвичай коротше, ніж інших.
Мета курсової роботи – створення об’єктно-орієнтованої програми по веденню обліку продуктового магазину.
Об’єктом курсової роботи є продуктовий магазин, де здійснюється роздрібна торгівля продовольчих товарів, певної кількості та вартості.
Курсова робота розділена на два розділи:
- в Розділі 1 проведено дослідження предметної області «Продуктового магазину» та визначено головні напрямки і дані, що необхідно відобразити в програмі по веденню обліку продуктового магазину.
- в Розділі 2 детально розкрито поняття моделі в об’єктно-орієнтованих мовах програмування, реалізована побудова програмної моделі «Обліку продуктового магазину» та надано обґрунтування вибору мови програмування для створення програми.
1. Аналіз предметної області
Продуктовий магазин є кінцевим пунктом збуту товару. Кожний продуктовий магазин має свій асортимент товару для роздрібної торгівлі. В магазині присутні продукти загалом різного виду. До основних належать:
· молочні продукти (молоко, сметана, сир, ряжанка, кефір);
· хлібобулочні (хліб, батон, булочки);
· горілчані (горілка, вино, коняк, портвейн, пиво, слабоалкогольні напої);
· тютюнові вироби;
· кондитерські вироби (печиво, торти, цукерки, то що);
· консервні вироби;
· продукти швидкого приготування;
· інші продукти широкого вжитку.
Продукт циркулює наступним чином:
1. приход товару в магазин – продукти поступають на склад за накладними по приходу;
2. продаж з магазину – відбувається за видатковими чеками.
Продукти зберігаються до їх продажу, чи списання (останнє трапляється відносно періодично, тому що закінчився термін вжитку товару).
Облік продуктового магазину передбачає наступні етапи:
· додавання даних про товар в магазині;
· видалення даних з магазину;
· зберігання даних;
· сортування даних;
· перегляд даних;
· редагування даних.
Кожен з цих етапів є досить важливим і необхідним для ведення обліку. Також актуальним було б передбачати при внесенні даних реєстрацію дати приходу товару на магазин: день, місяць, рік. Для реалізації задуманого необхідним є створення програми, що буде в повному обсязі забезпечувати виконання цих етапів та відображати наступну інформацію:
· вид продукції;
· назва товару;
· ціна (за одиницю товару);
· виробник;
· число, місяць, рік приходу на склад;
· сума всього товару в магазині.
2. Модель в об’єктно-орієнтованих мовах програмування
Об'єктно-орієнтована технологія ґрунтується на так званій об'єктній моделі. Основними її принципами є:
· абстрагування;
· інкапсуляція;
· модульність;
· ієрархічність;
· типізація;
· паралелізм і збереження.
Кожен з цих принципів сам по собі не новий, але в об'єктній моделі вони вперше застосовані в сукупності.
Принципи об'єктно-орієнтованого програмування створені, щоб допомогти розробникам застосовувати могутні виразні засоби об'єктного і об'єктно-орієнтованого програмування, що використовує як блоки класи і об'єкти.
Оскільки побудова моделей украй важлива при проектуванні складних систем, об'єктно-орієнтоване проектування пропонує багатий вибір моделей. Об'єктно-орієнтовані моделі проектування відображають ієрархію і класів, і об'єктів системи. Ці моделі покривають весь спектр найважливіших конструкторських рішень, які необхідно розглядати при розробці складної системи, і таким чином надихають на створення проектів, що володіють всіма п'ятьма атрибутами добре організованих складних систем.
Об'єктна модель принципово відрізняється від моделей, які пов'язані з більш традиційними методами структурного аналізу, проектування і програмування. Це не означає, що об'єктна модель вимагає відмови від всіх раніше знайдених і випробуваних часом методів і прийомів. Швидше, вона вносить деякі нові елементи, які додаються до попереднього досвіду. Об'єктний підхід забезпечує ряд істотних переваг, які іншими моделями не передбачалися. Найбільш важливо, що об'єктний підхід дозволяє створювати системи, які задовольняють п'яти ознакам добре структурованих складних систем. Згідно досвіду, є ще п'ять переваг, які дає об'єктна модель.
По-перше, об'єктна модель дозволяє повною мірою використовувати виразні можливості об'єктних і об'єктно-орієнтованих мов програмування. Істотно підвищити ефективність і якість коду можна просто за рахунок використання C++ як "покращуваного C" з елементами абстракції даних. Проте набагато значнішим досягненням є введення ієрархії класів в процесі проектування.
По-друге, використання об'єктного підходу істотно підвищує рівень уніфікації розробки і придатність для повторного використання не тільки програм, але і проектів, що врешті-решт веде до створення середовища розробки. Об'єктно-орієнтовані системи часто виходять компактнішими, ніж їх не об'єктно-орієнтовані еквіваленти. А це означає не тільки зменшення об'єму коду програм, але і здешевлення проекту за рахунок використання попередніх розробок, що дає виграш у вартості і часі.
По-третє, використання об'єктної моделі приводить до побудови систем на основі стабільних проміжних описів, що спрощує процес внесення змін. Це дає системі можливість розвиватися поступово і не приводить до повної її переробки навіть у разі істотних змін початкових вимог.
По-четверте, об'єктна модель зменшує ризик розробки складних систем, перш за все тому, що процес інтеграції розтягується на весь час розробки, а не перетворюється на одноразову подію. Об'єктний підхід складається з ряду добре продуманих етапів проектування, що також зменшує ступінь риску і підвищує упевненість в правильності схвалюваних рішень
Кожна модель при реалізації використовує наступні методи розподілу пам’яті:- за допомогою визначення змінних стандартних типів (цілі, дійсні та ін);- за допомогою визначення змінних, визначених користувачем;- за допомогою списків, стеків, черг, масивів, дерев тощо.Існують ще декілька способів, наприклад, створення нового екземпляра форми чи елемента управління, але вони не дають великих можливостей при створенні складних структур даних. Використовуючи ці методи, можна легко будувати статичні структури даних, такі як великі масиви визначених типів. Проте перерозподіл даних може бути досить складним. Наприклад, для того, щоб перемістити елемент з одного кінця масиву на інший, потрібно пере впорядкувати весь масив, зсунувши всі елементи на одну позицію, аж потім можна помістити елемент на нове місце. Крім того, масиви мають фіксований розмір, тому коли наперед не відомо про розмір створюваної програми, їх використання не доречне.Динамічні структури даних дозволяють швидко і легко виконати такого роду зміни. Всього за кілька кроків можливо перемістити будь-який елемент в структурі даних в інше місце. До таких структур даних належать списки. Найпростіша форма писку - це група об’єктів, до яких можна звернутись. Зв’язане зберігання лінійного списку являється списком з двома зв’язками або двухзв’язним списком, якщо кожен елемент, що зберігається має два компонента вказівника (на попередній і на наступний елементи лінійного списку). Графічне зображення двухзв’язного списку представлене на мал.1.Мал. 1 - Схема зберігання двухзв’язного списку
В залежності від методу доступу до елементів лінійного списку виділяють різновиди лінійних списків - стеки, черги, двохсторонні черги.
Стек являє собою кінцеву послідовність деяких однотипних елементів - скалярних змінних, масивів, структур або об’єднань, серед яких можуть бути й однакові. Він відноситься до динамічних структур даних, його кількість елементів наперед не вказується і в процесі роботи, як правило змінюється.