Розробка об’єктно-орієнтованої програми “Магазин”
Сьогодні не існує сфери діяльності людини, де б не використовувалися комп'ютери. Не можливо уявити систему державного управління, банківську систему, системи фінансового забезпечення, медицину, транспорт, системи екологічного моніторингу без використання інформаційних технологій та комп'ютерів. Системність проблем інформатизації та комп'ютеризації вимагає вироблення комплексного підходу до розвитку основних складових інформатики та обчислювальної техніки, якими є комп'ютерні науки, програмна інженерія, інженерія комп'ютерного обладнання та інформаційних систем. Серед вказаних складових галузі інформатики та обчислювальної техніки найбільш перспективною є програмна інженерія, яка в найближчі роки суттєвим чином впливатиме на розвиток індустрії інформаційних технологій.
Процес проектування ПЗ (програмне забезпечення) виконується за допомогою спеціальних методів. Методи є набором стандартного керівництва і відображають успішну практику проектування. Слідуючи керівництву цих методів, можна розумно організувати процес проектування.
Самим розробленим підходом до проектування ПЗ володіють структурні методи, наприклад
- Структурне проектування
- Структурний аналіз систем
- Розробка систем Джексона
- Різноманітні методи, засновані на об'єктно-орієнтованому підході.
Структурна технологія програмування являє собою сукупність технологічних прийомів, що охоплюють виконання всіх етапів розробки програмного засобу. Така технологія програмування базується на декомпозиції складних систем і вимагає побудови ієрархічної структури розв’язання задачі з використанням методу покрокової деталізації. Створена програма малє правильну структурну організацію і містить декілька процедур, які викликаються основною програмою або процедурою більш високого рівня. Підтримка принципів структурного програмування закладена до основи процедурних мов програмування. Ці мови містять основні оператори управління, дозволяють вкладення процедур, функцій, локалізацію та обмеження даних.
Об'єктно-орієнтоване проектування є стратегією, в рамках якої розробники системи замість операцій і функцій мислять в поняттях «об'єкти». Програмна система складається з взаємодіючих об'єктів, які мають свій стан і можуть виконувати певний набір операцій, визначуваний станом об'єкту.
Основною перевагою об’єктно-орієнтованого програмування є значне зменшення кількості міжмодульних повідомлень та зменшення об’єму інформації, що передається між модулями. Локалізація даних, їх інтегрування з процедурами обробки дозволяють створювати незалежні між собою окремі частини програми, які також можуть бути використані в інших програмах. Так, на основі поєднання готових, уже описаних блоків можна сконструювати кінцевий програмний засіб.
При використанні об’єктно-орієнтованих програм вимоги до об’єму пам’яті такі, як і при традиційному програмуванні, при цьому склад програми став більш компактний, а процес її вдосконалення - полегшений.
Об’єктно-орієнтований підхід використовує такі технологічні засоби, як спадкування, поліморфізм, композицію та наповнення. Усе це сприяє проектуванню складних об’єктів при використанні більш простих. Ці засоби є основними показниками об’єктно-орієнтованого програмування.
При використанні перелічених засобів зростає показник повторного використання кодів, з'являється можливість створення бібліотек об'єктів з метою різнопланового їх застосування.
В даній роботі приведено розробку об’єктно-орієнтованої програми “Магазин”, яка реалізована в середовищі Visual J# 2005.
1 ЗАГАЛЬНА ЧАСТИНА
1.1 Загальна характеристика об‘єктно-орієнтовного проектування
В основі об‘єктно-орієнтованого проектування (object-oriented design, OOD) лежить подання про те, що програмну систему необхідно проектувати як сукупність взаємодіючих один з одним об'єктів, розглядаючи кожний об'єкт як екземпляр певного класу, причому класи утворять ієрархію. Об‘єктно-орієнтований підхід відбиває топологію новітніх мов високого рівня, таких як Smalltalk, Object Pascal, C++, CLOS і Ada.
Об‘єктно-орієнтована технологія ґрунтується на так званій об'єктній моделі. Основними її принципами є: абстрагування, інкапсуляція, модульність, ієрархічність, типізація, паралелізм і зберігаємiсть (сохраняемость). Кожний із цих принципів сам по собі не новий, але в об'єктній моделі вони вперше застосовані в сукупності.
Об‘єктно-орієнтований процес розробки системи має на увазі виконання трьох етапів:
- Об‘єктно-орієнтований аналіз. Створення об‘єктно-орієнтованої моделі предметної області додатка ПО. Тут об'єкти відбивають реальні сутності. Визначаються операції, виконувані об'єктами (див. 2.2).
- Об‘єктно-орієнтоване проектування. Розробка об‘єктно-орієнтованої моделі системи ПО (системної архітектури) з урахуванням системних вимог. В ОО моделі визначення всіх об'єктів підлегло рішенню конкретного завдання.
- Об‘єктно-орієнтоване програмування. Реалізація архітектури (моделі) системи за допомогою об‘єктно-орієнтованої мови програмування.
Об‘єктно-орієнтований
підхід до програмування
Складність програмної системи
Проблеми, які ми намагаємося вирішити за допомогою програмного забезпечення, часто неминуче містять складні елементи, а до відповідних програм пред'являється безліч різних, часом взаємовиключних, вимог.
Як говорить Брукс, «складність програмного забезпечення - аж ніяк не випадкова його властивість». Складність викликається чотирма основними причинами: складністю реальної предметної області, з якої виходить замовлення на розробку; труднощами керування процесом розробки; необхідністю забезпечити достатню гнучкість програми; незадовільними способами опису поводження більших дискретних систем.
Як відзначає Дейкстра, «Спосіб керування складними системами був відомий ще в стародавності - divide et impera (розділяй і пануй)». При проектуванні складної програмної системи необхідно розділяти її на всі менші й менші підсистеми, кожну з яких можна вдосконалювати незалежно.
Більшість із нас формально навчено структурному проектуванню «зверху вниз», і ми сприймаємо декомпозицію як звичайний поділ алгоритмів, де кожний модуль системи виконує один з етапів загального процесу.
Сутність об‘єктно-орієнтованого підходу полягає в тім, що навколишню нас дійсність ми розглядаємо як сукупність взаємодіючих між собою об'єктів, кожний з яких характеризується властивостями й поводженням. Це, з одного боку, надає розроблювачеві інструмент, що дозволяє описати завдання в термінах, що характеризують предметну область, з іншої сторони цей інструмент не пов'язаний з яким-небудь класом завдань.
Об‘єктно-орієнтовані системи можна розглядати як сукупність автономних і в певній мері незалежних об'єктів. Зміна реалізації якого-небудь об'єкта або додавання нових функцій не впливає на інші об'єкти системи. Часто існує чітка відповідність між реальними об'єктами (наприклад, апаратними засобами) і керуючими ними об'єктами програмної системи. Такий підхід полегшує розуміння й реалізацію проекту.
Основні принципи об¢єктно-орієнтованого програмування
Об'єктно-орієнтоване програмування — це методологія програмування, заснована на представленні програми у вигляді сукупності об'єктів, кожен з яких є екземпляром певного класу, а класи утворюють ієрархію спадкоємства.
У цьому визначенні можна виділити три частини:
1) OOP використовує як базові елементи об'єкти, а не алгоритми;
2) кожен об'єкт є екземпляром якого-небудь певного класу;
3) класи організовані ієрархічно.
Програма буде об'єктно-орієнтованою тільки при дотриманні усіх трьох вказаних вимог.
Головні елементи об'єктно-орієнтованого стилю програмування :
- абстрагування
- інкапсуляція
- модульність
- ієрархія.
Ці елементи є головними в тому сенсі, що без будь-якого з них модель не буде об'єктно-орієнтованою. Окрім головних, є ще три додаткові елементи, які корисні в об'єктній моделі, але не обов'язкові:
- типізація
- паралелізм
- сохраняемость.
1.2 Аналіз технічних і програмних засобів
Опис та обгрунтування складу технічних засобів.
Найбільш широке застосування в наш час отримали ПК(персональний компьютер) з процесором Pentium IV. Процесор Pentium IV можна віднести до сьомого покоління, тому що в ньому використано досить багато принципових нововведень. Для Pentium IV Intel розробила нову архітектуру, яку назвала Intel NetBurst Micro-Architecture.
У кеш-пам'яті першого рівня
Відносно L 2-кэша, видимо, розроблювачі порахували, що "краще ворог гарного", тому він залишився таким же, як в Pentium III Coppermine: "учетверенной" ширини 256-бітова шина й робота на частоті ядра. А от обсяг L 1-кэша зменшився вдвічі й становить по 8 КВ на команди й дані. Трохи дивне рішення, однак, можливо, справа просто в тім, що процесор "не гумовий", і з огляду на кількість всіх інших модулів, більший розмір L1 просто не вдалося інтегрувати в ядро. До того ж не варто забувати, що Pentium 4 має істотно збільшеними в обсязі "схованими кэшами" - фактично й 4-килобайтовый Branch Target Buffer, і Instruction Window за принципом своєї роботи цілком підходять під це визначення.
Кэш другого рівня - швидкодіюча пам'ять, що використовується процесором для зберігання часто використовуваних даних. Завдяки високій швидкості роботи, дані з кэша другого рівня завантажуються набагато швидше, ніж з основної пам'яті. У процесорах Pentium III Coppermine, AMD Ahtlon, Thunderbird і Duron кэш другого рівня перебуває безпосередньо на ядрі процесора й працює на його повній частоті.
Pentium IV показав у тестах Windows’XP найкращі результати. Тому він обраний у використання для даної розробки. Дана продуктивність цілком достатня для рішення постановленої задачі.
Опис та обгрунтування вибору операційного середовища.
Для обраної техніки, а саме Pentium IV, використовують різні ОС, а саме: Windows NT, Windows XP, Windows Vista. Windows XP працює на основі апаратних конфігурацій. Спочатку були випущені дві версії – Windows XP Home і Windows XP Professional Система розроблена так, що у більшості випадків вона може самостійно відновлюватися після збоїв прикладних програм. Windows XP повністю 32-розрядна ОС із пріоритетною багатозадачністю. У її основі лежать ті принципи, на яких базувалися всі NT. Крім цього, існує 64-бітна версія Windows XP Professional, зроблена для 64-бітного Intel Itanium. XP Home позиціонується як ОС на зміну лінійки Windows 9x, XP Professional як зміна для Windows 2000 Professional. З істотних відмінностей між ними можна відзначити тільки відсутність підтримки SMT XP Home. Але, не зважаючи на це, навіть XP Home побудована на ядрі NT. Windows XP Pro підтримує SMT на два процесори.
Mіcrosoft Wіndows XP Professіonal є оптимальним рішенням для підприємства будь-якого розміру. Дана версія операційної системи Wіndows сполучить у собі переваги Wіndows 2000 Professіonal (наприклад, засобу безпеки, керованість і надійність) із кращими якостями Wіndows 98 і Wіndows ME (підтримка Plug and Play, простий користувальницький інтерфейс і передові служби підтримки). Це робить Wіndows XP Professіonal найбільш підходящою операційною системою для настільних комп'ютерів, застосовуваних у корпоративному середовищі. Незалежно від того, де встановлюється Wіndows XP Professіonal - на одному комп'ютері або в масштабі локальної мережі, - ця система підвищує обчислювальні можливості підприємства, одночасно скорочуючи сукупну вартість програмного забезпечення всіх настільних комп'ютерів.
Mіcrosoft® Wіndows® XP Professіonal: вимоги до системи
Рекомендується комп'ютер із процесором, тактова частота якого становить не менш 300 МГЦ; припустимий мінімум - 233 МГЦ (система з одним або двома процесорами);* використовуватися можуть процесори сімейств Іntel Pentіum/Celeron, AMD K6/Athlon/Duron, або інші сумісні процесори.
Рекомендується не менш 128 МБ ОЗУ (припустимий мінімум - 64 МБ, при цьому швидкодія й деякі можливості операційної системи можуть бути обмежені).
1,5 ГБ вільного місця на
Клавіатура й миша Mіcrosoft Mouse, або сумісний пристрій уведення.
Сьогодні більше 1 мільярда персональних комп'ютерів по усьому світі працюють на операційній системі Wіndows. Всі ці роки Wіndows є каталізатором інновацій, які змінили способи спілкування, доступу до інформації, створення й передачі документів, як на роботі, так і будинку. Більшість користувачів вибирають цю операційну систему для максимально ефективної реалізації можливостей персональних комп'ютерів. Wіndows - це платформа, що пропонує вибір з найширшого спектра ПК, периферійних пристроїв і додатків.
Обгрунтування вибору та опис мови програмування.
Для реалізації програми обране середовище Microsoft Visual J# 2005.
Visual Studio – це повний набір засобів розробки для створення інтернет-додатків на платформі ASP.NET, веб-служб на базі XML, настільних і мобільних додатків. Загальне інтегроване середовище розробки для Visual Basic, Visual C++, Visual C# і Visual J# , дозволяє створювати програми з фрагментами коду на різноманітних мовах, максимально використовуючи можливості кожної мови. Функціональні можливості цих мов чудово доповнюють платформу .NET Framework, об’єднуючу ключові технології для швидкої розробки інтернет-додатків і web-служб на базі технології ASP і мови XML.
Для реалізації даного кусового проекту була обрана мова програмування Java. Три ключових елементи об'єдналися в технології мови Java і зробили її відмінною від усього, що існує на сьогоднішній день.
Java вивільняє міць об'єктно-
Особливості мови Java.
- Простота і міць
Після освоєння основних понять об'єктно – орієнтованого програмування ви швидко навчитеся програмувати на Java. Прагнення до простоти найчастіше приводило до створення неефективних і невиразних мов типу командних інтерпретаторів. Java до числа таких мов не відноситься– для вас уся потужність бібліотек класів.
- Безпека
Один із ключових принципів розробки мови Java полягав у забезпеченні захисту від несанкціонованого доступу. Програми на Java не можуть викликати глобальні функції й одержувати доступ до довільних системних ресурсів, що забезпечує в Java рівень безпеки, недоступний для інших мов.
- Об'єктна орієнтованість
Об'єктна модель у Java проста і легко розширюється, у той же час, заради підвищення продуктивності, числа й інші прості типи даних Java не є об'єктами.
- Надійність
Java сприяє виявленню помилок
на ранніх стадіях розробки
програми. У той же час у
ній відсутні багато джерел
помилок, властивих іншим
- Незалежність від архітектури ЕОМ
Програми на Java можуть виконуватись в різних операційних системах (де існує віртуальна Java-машина – броузери на всіх платформах, OS/2, Netware). Це дуже зручно при написанні програм для Internet.
- Інтерпретація плюс висока продуктивність
Надзвичайна здатність Java виконувати свій код на кожній з підтримуваних платформ досягається тим, що її програми транслюються в деяке проміжне представлення , що називається байт-кодом (bytecode). Байт-код, у свою чергу, може інтерпретуватися в будь-якій системі, у якій є середовище часу виконання Java. Незважаючи на те, що в Java використовується інтерпретатор, байт-код легко переводиться безпосередньо в “рідні” машинні коди . При цьому досягається дуже висока продуктивність .
- Простота вивчення
Java, хоча і більш складна , ніж мови командних інтерпретаторів, усе-таки незмірно простіша для вивчення, ніж інші мови програмування, наприклад C++.
2 Спеціальна частина
2.1 Вимоги до програмної системи
2.1.1 Загальний опис
Метою розробки даного курсового проекту є створення об'єктно- орієнтованої програмної системи, що демонструє роботу з розподілом товарів по відділах магазинах.
Система повинна виконувати наступні функції
- Виведення (створення) об’єктів товару та відділів у вікні
- Очищення вікна
- Переміщення об’єктів товару
- Видалення об’єктів товару
- Вибір товару для продажу
- Підтвердження продажу
- Виведення інформації про програму
Вимоги до застосування:
Вимоги до програмного засобу
Визначення вимог – це відображення потреб користувача до програмного забезпечення. Це задача системного рівня.
Перелік типів вимог
- функціональні вимоги;
- інформаційні вимоги;
- експлуатаційні вимоги;
- вимоги до якості;
- вимоги до ресурсів.
Функціональні вимоги – відобразити все те, що має робити система.
Результат визначення вимог є перелік задач функції системи, опис яких приведено вище.
Інформаційні вимоги – визначаються вимоги до джерел і приймачів інформації, об’єми і області збереження інформації, способи передачі інформації.
Експлуатаційні вимоги поділяються на:
- вимоги до технічних засобів (номенклатура, кількість , характеристика та інше);
- вимоги до програмних засобів(операційне оточення);
- вимоги до інтерфейсу (простота, зручність);
- характеристики використання(хт
о користувачі, кількість, кваліфікація, частота використання, середовище використання, види обслуговування).
Вимоги до якості – викладаються вимоги до всіх характеристик якості.
Вимоги до ресурсів поділяються на:
- вимоги до апаратної частини(тип процесора, кількість внутрішньої пам’яті);
- вимоги до програмних ресурсів(засоби автоматизації програмування);
- вимоги до інтелектуальних ресурсів(обслуговуючий персонал).
2.1.2 Опис операцій
Діаграма — графічне подання безлічі елементів, найбільше часто зображується як зв'язний граф з вершин (предметів) і дуг (відносин). Діаграми рисуються для візуалізації системи з різних точок зору, потім вони відображаються в систему. Звичайно діаграма дає неповне подання елементів, які становлять систему. Хоча той самий елемент може з'являтися у всіх діаграмах, на практиці він з'являється тільки в деяких діаграмах. Теоретично діаграма може містити будь-яку комбінацію предметів і відносин, на практиці обмежуються малою кількістю комбінацій, які відповідають п'яти поданням архітектури ПС. Із цієї причини UML включає дев'ять видів діаграм:
- діаграми класів;
- діаграми об'єктів;
- діаграми компонентів;
- діаграми розміщення (розгортання).
- діаграми Use Case (діаграми прецедентів);
- діаграми послідовності;
- діаграми співробітництва (кооперації);
- діаграми схем станів;
- діаграми діяльності;
Діаграма Use Case визначає поводження системи з погляду користувача. Діаграма Use Case розглядається як головний засіб для первинного моделювання динаміки системи, використається для з'ясування вимог до розроблювальної системи, фіксації цих вимог у формі, що дозволить проводити подальшу розробку.
До складу діаграм Use Case входять елементи Use Case( ), актори, а також відносини залежності, узагальнення й асоціації.
Діюча особа (actor) – будь-який об'єкт, суб'єкт або система, взаємодіюча з даною системою ззовні й использующая її функціональні можливості для досягнення певних цілей або рішення приватних завдань. Служать для позначення безлічі ролей, які можуть грати користувачі стосовно системи.
Сценарій являє собою
Варіант використання (use-case) - являє собою безліч сценаріїв, об'єднаних разом деякою загальною метою користувача.
Діаграма варіантів
Діючі особи пов'язані з варіантами використання. Одна діюча особа може виконувати кілька варіантів використання. У свою чергу, у варіанта використання може бути кілька діючих осіб, які його виконують.
Малюнок 1. Діаграма Use Case
Діаграма схем станів показує кінцевий автомат, представляє стани, переходи, події й дії. Діаграми схем станів забезпечують динамічне подання системи. Вони особливо важливі при моделюванні поводження інтерфейсу, класу або співробітництва. Ці діаграми виділяють таке поводження об'єкта, що управляється подіями, що особливо корисно при моделюванні реактивних систем.
Діаграма схем станів показує:
- набір станів системи;
- події, які викликають перехід з одного стану в інше;
- дії, які відбуваються в результаті зміни стану.
Діаграма схем станів даної прорамної системи приведена на малюнку 2.
Малюнок 2. Діаграма схем станів
2.1.3 Моделювання функцій програмної системи
Взаємодія описує поведінку, показуючи обмін повідомленнями між об'єктами. Взаємодії представляють систему як співтовариство спільно працюючих об'єктів. Тому їх вважають основним засобом для визначення повної динаміки системи. Реалізується за допомогою діаграм послідовності,яка наочно представляє порядок передачі повідомлень і діаграм співробітництва, що відображають взаємодію об‘єктів в процесі функціонування.
Діаграма послідовності — це діаграма взаємодії, що виділяє впорядкування повідомлень за часом.
Діаграма діяльності представляє особливу форму кінцевого автомата, в якій показуються процес обчислень і потоки робіт. У ній виділяються не звичайні стани об'єкту, а стану виконуваних обчислень — стани дій. При цьому вважається, що процес обчислень не уривається зовнішніми подіями. Діаграми діяльності дуже схожі на блок-схеми алгоритмів.
Взаємодія описує поведінку, показуючи
обмін повідомленнями між об'єктами.
Взаємодії представляють
Діаграма співробітництва (діаграма кооперації) — це діаграма взаємодії, що виділяє структурну організацію об'єктів, що посилають і приймає повідомлення. Діаграми послідовності й діаграми співробітництва ізоморфні, що означає, що одну діаграму можна трансформувати в іншу діаграму.