- •Перелік скорочень
- •1 Аналіз предеметної області та відомих реалізацій
- •Аналіз предметної області
- •Огляд відомих реалізацій
- •Постановка задачі на розробку програмного забезпечення
- •2 Проектування програмного модуля
- •2.1. Особливості ооп
- •2.2 Універсальна мова проектування uml
- •2.3 Розробка алгоритму програми
- •2.4 Розробка uml-діаграм класів
- •Програмна реалізація спроектованого модуля
- •3.1 Обґрунтування вибору мови та середовища програмування
- •3.2 Програмна реалізація основних модулів
- •3.3 Результати тестування додатку
- •Висновки
- •Список використаної літератури
- •Додатки додаток а
Постановка задачі на розробку програмного забезпечення
Метою даного курсового проекту є розробка програмного модуля гри "Сапер". Гра має бути зрозуміла для користувачів, тобто має бути схожа на звичну стандартну гру сапер.
Вікно гри має місити панель головного меню, де можна обрати розмір поля: Новачок(9х9), Любитель(16х16), Професіонал(16х30) та Особливий, тобто розмір поля і кількість мін задається вручну.
У головному вікні повинно відображатись кількість мін, котрі залишились не помічені, таймер, який рахує час з початку гри, та кнопка початку нової гри.
Гра повинна починатись з відкриття однієї комірки, після чого має автоматично генеруватись поле з мінами і показниками мін. Неможлива ситуація програшу при першому відкритті комірки.
Гра закінчується після того як гравець правильно помітить всі міни, це буде означати перемогу гравця. Гра закінчується програшом у випадку відкриття комірки з міною.
При реалізації програми було вирішено використовувати об'єктно-орієнтований підхід, що дозволить уникнути проблем проектування, характерних для процедурного підходу. Важливим наслідком цього є можливість формування такої структури програми, коли додавання нових компонентів при її подальшому розвитку не буде впливати на існуючі компоненти, або такий вплив буде зведено до мінімуму.
2 Проектування програмного модуля
2.1. Особливості ооп
Об'єктно-орієнтоване
програмування (ООП) — одна з парадигм
програмування, яка розглядає програму
як множину «об'єктів», що взаємодіють
між собою.
Центральний елемент ООП – абстракція. Дані за допомогою абстракції перетворяться в об'єкти, а послідовність обробки цих даних перетворюється на набір повідомлень, що передаються між цими об'єктами. Кожен з об'єктів має свою власну унікальну поведінку. До об'єктів можна звертатися як до окремих сутностей, якщо наказувати їм виконати якісь дії.
Основу ООП складають три основні концепції: інкапсуляція, успадкування та поліморфізм. Одною з переваг ООП є краща модульність програмного забезпечення (тисячу функцій процедурної мови, в ООП можна замінити кількома десятками класів із своїми методами). Попри те, що ця парадигма з'явилась в 1960-тих роках, вона не мала широкого застосування до 1990-тих, коли розвиток комп'ютерів та комп'ютерних мереж дозволив писати надзвичайно об'ємне і складне програмне забезпечення, що змусило переглянути підходи до написання програм.
На думку Алана Кея, розробника мови Smalltalk, якого вважають одним з «батьків-засновників» ООП, об'єктно-орієнтований підхід полягає в наступному наборі основних принципів:
Все є об'єктами.
Всі дії та розрахунки виконуються шляхом взаємодії (обміну даними) між об'єктами, при якій один об'єкт потребує, щоб інший об'єкт виконав деяку дію. Об'єкти взаємодіють, надсилаючи і отримуючи повідомлення. Повідомлення — це запит на виконання дії, доповнений набором аргументів, які можуть знадобитися при виконанні дії.
Кожен об'єкт має незалежну пам'ять, яка складається з інших об'єктів.
Кожен об'єкт є представником (екземпляром, примірником) класу, який виражає загальні властивості об'єктів.
У класі задається поведінка (функціональність) об'єкта. Таким чином усі об'єкти, які є екземплярами одного класу, можуть виконувати одні й ті ж самі дії.
Класи організовані у єдину деревоподібну структуру з загальним корінням, яка називається ієрархією успадкування. Пам'ять та поведінка, зв'язані з екземплярами деякого класу, автоматично доступні будь-якому класу, розташованому нижче в ієрархічному дереві.
Таким чином, програма являє собою набір об'єктів, що мають стан та поведінку. Об'єкти взаємодіють використовуючи повідомлення. Стійкість та керованість системи забезпечуються за рахунок чіткого розподілення відповідальності об'єктів (за кожну дію відповідає певний об'єкт), однозначного означення інтерфейсів міжоб'єктної взаємодії та повної ізольованості внутрішньої структури об'єкта від зовнішнього середовища (інкапсуляції).
