Проектування програмного забезпечення системи

КУРСОВА Робота

з дисципліни “Проблемно-орієнтоване програмування”

на тему:

Розробка програмного комплексу системи "Електронна книга рецептів"

 

Керівник курсової роботи

Машевська М.В.

“___”__________2014р.

 

Розробив студент гр. КН-39

Петелька Н.С.

 

“___”_________2014р.

Львів 2014

Анотація

За допомогою технології Windows Forms реалізовано програму "Електронна книга рецептів". Програма написана мовою С#. Мета курсової роботи – продемонструвати, на прикладі даної програми, можливості проблемно-орієнтованого програмування. Інтерфейс користувача розроблено у Windows Forms.


 

Зміст

Вступ...................................................................................................................4

РОЗДІЛ 1 Варіантний огляд та аналіз сучасних методів та засобів проектування програмного забезпечення комп’ютерних систем управління.............................................................................................................5

1.1 Аналіз об’єкту автоматизації ................................................................5

1.2 Класифікація об’єктно-орієнтованих мов програмування.............6

1.3 Огляд та аналіз сучасних технологій та засобів проектування програмного забезпечення КСУ..........................................................10

1.4 Універсальна мова проектування UML ............................................11

1.5 Уточнена постановка задачі на розробку програмного забезпечення...........................................................................................12

РОЗДІЛ 2 Проектування програмного забезпечення системи, що розробляється.......................................................................................................13

2.1 Формулювання вимог до системи ......................................................13

2.2 Розробка UML діаграми варіантів використання............................14

2.3 Розробка UML діаграм поведінки системи.......................................17

2.3.1 UML діаграма послідовності..........................................................17

2.3.2 UML діаграма діяльності ................................................................19

2.4 Розробка графічного інтерфейсу програмних засобів комп’ютерних систем управління...............................................................................................21

РОЗДІЛ 3 Розробка програмного забезпечення системи, що розробляється.......................................................................................................23

3.1 Розробка UML діаграм класів..............................................................23

3.2 Опис класів програмного комплексу.................................................24

3.3 Розробка структури бази даних ..........................................................24

РОЗДІЛ 4 Тестування програмного забезпечення.......................................25

4.1 Розробка тестів .....................................................................................25

РОЗДІЛ 5 Розробка документів на супроводження програмного забезпечення .......................................................................................................26

5.1 Інструкція користувачеві .....................................................................26

Висновки .............................................................................................................29

Список використаної літератури ......................................................................30

Додаток А Технічне завдання ...........................................................................31

Додаток Б Лістинг головної програми.............................................................34

 


 

ВСТУП

Об’єктно-орієнтоване програмування (ООП) – це еволюційний крок, який випливає із розвитку програмування. ООП дає нам можливість відчути себе не тільки програмістом, а й архітектором, проектуючи структуру програми, створюючи красиві форми.

Ціль моєї курсової роботи продемонструвати основи ООП на прикладі програми «Електронна книга рецептів».

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

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

 

 


 

РОЗДІЛ 1

Варіантний огляд та аналіз сучасних методів та засобів проектування програмного забезпечення комп’ютерних систем управління

1.1 Аналіз об’єкту автоматизації

Об'єктом автоматизації є книга рецептів.

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

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

Аналогічні системи.

Для аналізу аналогічної системи використаємо систему "Кулінарна книга". Для розробки програми було використано середовище Turbo Delphi 2006. Програма містить два меню (головне та контекстне), а також панель управління. Можна звертатися до пунктів меню або кнопок панелі управлінння у будь-якому порядку. Вибір відповідних пунктів меню здійснюється мишкою. Також є можливість користуватися гарячими клавішами. Про відповідність гарячих клавіш можна дізнатися із головного меню, кожний пункт якого містить інформацію про відповідну йому комбінацію клавіш. Програма дозволяє створювати необмежену кількість категорій і рецептів. Є лише одна умова: для користування програмою необхідно мати хоча б одну категорію, тому програма не дозволить користувачеві видалити єдину категорію. Є можливість виконувати багато дій над рецептами і категоріями. До них відносяться: створення, редагування, видалення, копіювання, переміщення, перейменування, пошук, завантаження з текстового файлу, збереження в текстовий файл.

Рис.1. Аналогічна система.

Ця система має такі переваги і недоліки:

Переваги – простота, надійність, дружній інтерфейс, працює у віконному режимі, розвита графіка.

Недоліки – великий обсяг необхідної оперативної пам'яті (близько 8 МБ), також немає візуалізації рецептів та можливості роздрукувати той чи інший рецепт.

1.2 Класифікація об’єктно-орієнтованих мов програмування

Класифікацій мов програмування існує багато, але наукової теорії поки що немає. Три основні класифікації склалися історично:

1. За функціональною силою:

1) універсальні мови ( в них можна промоделювати, умовно кажучи, будь-який алгоритм) ;

2) спеціалізовані мови (орієнтовані на певні класи задач).

2. За предметною орієнтацією:

Кожна мова програмування виникла в процесі розв’язання певного класу задач, наприклад, мови програмування для розв’язання задач символьної обробки (Lisp, Cobol) і т. п.

 

3. За рівнем абстракції :

1) мови низького рівня (машинно-залежні) - Assembler і т. п. ;

2) мови високого рівня (орієнтовані на користувача (людину) до певної міри) - Pascal, C, Fortran і т. п. ;

Мови програмування низького рівня - орієнтовані на конкретний тип процесора і враховують його особливості.
Переваги:

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

• Програміст, що працює з мовами низького рівня, має бути високої кваліфікації, добре розуміти будову комп’ютера.

• результуюча програма не може бути перенесена на комп’ютер з іншим типом процесора.

Асемблер

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

Мови програмування високого рівня.

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

С++

Мова C++ з'явився на початку 80-х років.

Створений Б’єрном Страуструпом з первісною метою позбавити себе й своїх друзів від програмування на асемблері, Сі або різних інших мовах високого рівня.

Очевидно, що найбільше C++ запозичив з мови Сі, а також з безпосереднього його попередника мови BCPL.

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

Це дає в C++ більш ефективні можливості для контролю типів і забезпечує модульність програми.

На думку автора мови, розходження між ідеологією С й C++ полягає приблизно в наступному: програма на С відображає “спосіб мислення” процесора, а C++ - спосіб мислення програміста. Відповідаючи вимогам сучасного програмування, C++ наголошує на розробці нових типів даних найбільше повно відповідним концепціям обраної області знань. Клас є ключовим поняттям C++. Опис класу містить опис даних, що вимагаються для подання об'єктів цього типу й набір операцій для роботи з подібними об'єктами.

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

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

Головною метою творця мови доктора Б’єрна Страустрапа було оснащення мови С++ конструкціями, що дозволяють збільшити продуктивність праці програмістів і полегшити процес оволодіння великими програмними продуктами.

Абстракція, реалізація, спадкування й поліморфізм є необхідними властивостями якими володіє мова С++, завдяки чому він не тільки універсальний, як і моваС, але і є об'єктною мовою.

Сі

Співробітник фірми BellLabs Денис Рітчі створив мову Сі в 1972 році під час спільної роботи з Кеном Томпсоном, як інструментальний засіб для реалізації операційної системи Unix, однак популярність цієї мови швидко переросла рамки конкретної операційної системи й конкретних завдань системного програмування. У цей час будь-яка інструментальна й операційна система не може вважатися повної якщо в її состав не входить компілятор мови Сі.

Рітчі не видумував Сі просто з голови - прообразом була мова Би розроблена Томпсоном. Мова програмування Сі була розроблена як інструмент для програмістів-практиків. Відповідно до цим головною метою його автора було створення зручної й корисної мови.

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

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

Сі - ефективна мова. ЇЇ структура дозволяє щонайкраще використати можливості сучасних ПЕОМ. Програмування на цій мові відрізняється компактністю й швидкістю виконання.

Сі - мобільна мова.

Сі - потужна й гнучка мова. Більша частина операційної системи Unix, компілятори й інтерпретатори мов Фортран, Паскаль, Лісп, і Бейсик написані саме з його допомогою.

Сі - зручна мова. Він досить структурований, щоб підтримувати гарний стиль програмування й разом з тим не зв'язаний твердими обмеженнями.

Java

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

Три ключових елементи об'єдналися в технології мови Java:

Java надає для широкого використання свої аплети (applets) — невеликі, надійні, динамічні, що не залежать від платформи активні мережні додатки,що вбудовують у сторінки Web. Аплети Java можуть настроюватися й поширюватися споживачам з такою же легкістю, як будь-які документи HTML.

Java вивільняє міць об’єктно-орієнтованої розробки додатків, сполучаючи простий і знайомий синтаксис із надійним й зручним в роботі середовищем розробки.

Це дозволяє широкому колу програмістів швидко створювати нові програми й нові аплети.

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

 

1.3 Огляд та аналіз сучасних технологій та засобів проектування програмного забезпечення КСУ

Комп'ютерна система управління (КСУ) — автоматизована система, що ґрунтується на комплексному використанні технічних, математичних, інформаційних та організаційних засобів для управління складними технічними й економічними об'єктами. КСУ - це сукупність керованого об’єкта й автоматичних вимірювальних та керуючих пристроїв, у якій частину функцій виконує людина.

Створені за тридцятилітню історію впровадження ЕОМ у сферу управлінської діяльності численні КСУ різняться призначенням, проблемною орієнтацією, місцем застосування, автоматизованими функціями і т. ін. З метою підвищення ефективності витрат на розвиток діючих систем та проектування нових, усунення паралелізму і дублювання в проведенні наукових досліджень і проектно-конструкторських робіт, створення типових проектних рішень і типових КСУ зроблено їх класифікацію.

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

Функціональна частина КСУ включає систему моделей планово-економічних і управлінських задач, забезпечувальна частина — інформаційну і технічну бази, математичне забезпечення, економіко-організаційну базу та інше.

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

1.4 Універсальна мова проектування UML

UML (англ. UnifiedModelingLanguage) — уніфікована мова моделювання, використовується у парадигмі об'єктно-орієнтованого програмування. Є невід'ємною частиною уніфікованого процесу розробки програмного забезпечення. UML є мовою широкого профілю, це відкритий стандарт, що використовує графічні позначення для створенняабстрактної моделі системи, називаної UML-моделлю. UML був створений для визначення, візуалізації, проектування й документування в основному програмних систем. UML не є мовою програмування, але в засобах виконання UML-моделей як інтерпретованого коду можлива кодогенерація. Перша версія (1.0) UML вийшла 13 січня 1997, вона була створена за запитом ObjectManagementGroup (OMG) — організації, відповідальної за прийняття стандартів в галузі об'єктних технологій і баз даних. Після обговорення, у вересні 1997 року, версія 1.1 UML була представлена на голосування в OMG. Розробку UML підтримали і вже тоді використовували як стандарт такі гранди ринку інформаційних технологій, як Microsoft, IBM, Hewlett-Packard, Oracle,DEC, Sybase, Logic Works й інші.

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

Основною причиною використання мови UML є спілкування розробників між собою.

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

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

Практично усі CASE-засоби (програми автоматизації процесу аналізу і проектування) мають підтримку UML. Моделі розроблені в UML, дозволяють значно спростити процес кодування і направити зусилля програмістів безпосередньо на реалізацію системи.

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

1.5 Уточнена постановка задачі на розробку програмного забезпечення

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

Розробити зручний графічний інтерфейс для роботи з інформацією. Основні дії та взаємодія між користувачем та системою повинні супроводжуватися відповідними повідомленнями для користувача

Створити навігаційні клавіші для можливості швидкого та зручного отримання доступу до потрібної функції в системі.

Програма «Електронна книга рецептів » повинна бути універсальною, такою, щоб підходила як для домашнього користування, так і для установ громадського харчування.

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


 

РОЗДІЛ 2

Проектування програмного забезпечення системи