Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



Розробка методів І засобів текстурування для покращення

Розробка методів І засобів текстурування для покращення




Сторінка6/9
Дата конвертації09.04.2017
Розмір0.84 Mb.
1   2   3   4   5   6   7   8   9

4 ПРОГРАМНА РЕАЛІЗАЦІЯ ОТРИМАНИХ РЕЗУЛЬТАТІВ

4.1 Вибір мови програмування та середовища розробки

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

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

Продукти́вність пра́ці (англ. productivity, labour productivity; нім. Arbeitsleistung f, Leistung f, Arbeitsproduktivität f) - це показник трудової діяльності працівників. Характеризує кількість продукції, виробленої за одиницю часу, або витрати часу на виробництво одиниці продукції.

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

Для цього мови Java та C# наділені деякими додатковими можливостями. Наприклад, на відміну від C , програміст не повинен в явному вигляді "звільняти" виділену пам’ять. Звільнення пам’яті (збір "сміття") автоматично забезпечується середовищем виконання Java (.

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

NET для C#) в збиток продуктивності та ефективності використання пам’яті. Це звільняє програміста від втомливої задачі по нагляду за звільненням пам’яті - головного джерела помилок в програмному забезпеченні. Одна ця можливість мов мала б значно збільшити продуктивність програмування в порівнянні с C . Однак проведені дослідження показують, що на практиці збір "сміття" та інші можливості Java та C# не завдають значного впливу на продуктивність програмування.

Як показує досвід, Java (C#) – програми виконуються приблизно в 2-3 рази (іноді до 10 разів) повільніше своїх C аналогів. На задачах, орієнтованих на інтенсивне використання процесора, Java (C#)- програми програють ще сильніше.

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

Пояснення того, чому Java (С#) – програми повільніші C програм, полягає в наступному: C програми компілюються компілятором C в двійковий формат, який потім виконується безпосередньо процесором; таким чином, виконання програми здійснюється апаратними засобами. З іншої сторони, компілятор Java (С#) компілює вихідний код в "байт-код", який безпосередньо виконується не процесором, а з допомогою іншого програмного забезпечення, віртуальної машини Java (Java Virtual Machine, JVM) або .

Компілятор (англ. Compiler від англ. to compile - збирати в ціле) - комп'ютерна програма (або набір к. програм), що перетворює (компілює) вихідний код, написаний певною мовою програмування (мова джерела, англ. source language)

Віртуальна машина Java (англ. Java Virtual Machine; JVM) - набір комп'ютерних програм та структур даних, що використовують модель віртуальної машини для виконання інших комп'ютерних програм чи скриптів.

NET Framework для C#. В свою чергу, JVM (.NET) виконується процесором. Таким чином, виконання керованого коду забезпечується не швидким апаратними засобами, а з допомогою більш повільної програмної емуляції.

Фреймворк (англ. Framework, каркас, платформа, структура, інфраструктура) -інфраструктура програмних рішень, що полегшує розробку складних систем. Спрощено дану інфраструктуру можна вважати своєрідною комплексною бібліотекою.

Керо́ваний код (англ. managed code) - термін, запропонований корпорацією Майкрософт для позначення сирцевого коду комп'ютерної програми, що потребує та виконується виключно віртуальною машиною Common Language Runtime, наприклад .



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

Інтегроване середовище розробки, ІСР (англ. IDE, Integrated development environment) – система програмних засобів, використовувана програмістами для розробки програмного забезпечення (ПЗ) [7].

Розробка програмного забезпечення (англ. software engineering, software development) - це рід діяльності (професія) та процес, спрямований на створення та підтримку працездатності, якості та надійності програмного забезпечення, використовуючи технології, методологію та практики з інформатики, керування проектами, математики, інженерії та інших областей знання.

Зазвичай, середа розробки включає в себе:

- текстовий редактор,

- компілятор і / або інтерпретатор,

- засоби автоматизації збирання,

- відладчик.

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

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

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

Автома́тика (грец. αύτόματος - самодіючий) - галузь науки і техніки, яка розробляє технічні засоби і методи для здійснення технологічних процесів без безпосередньої участі людини.

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

Система керування версіями (англ. source code management, SCM) - програмний інструмент для керування версіями одиниці інформації: вихідного коду програми, скрипту, веб-сторінки, веб-сайту, 3D-моделі, текстового документу тощо.

Графі́чний інтерфе́йс кори́стувача́ (ГІК, англ. GUI, Graphical user interface) - тип інтерфейсу, який дозволяє користувачам взаємодіяти з електронними пристроями через графічні зображення та візуальні вказівки, на відміну від текстових інтерфейсів, заснованих на використанні тексту, текстовому наборі команд та текстовій навігації.

Багато сучасних середовища розробки також включають браузер класів, інспектор об'єктів і діаграму ієрархії класів - для використання при об'єктно-орієнтованої розробки ПЗ. Хоча й існують ІСР, призначені для декількох мов програмування – такі як Eclipse, Embarcadero RAD Studio, Qt Creator, останні версії NetBeans, Xcode або Microsoft Visual Studio, але зазвичай ІСР призначається для одного певної мови програмування – як, наприклад, Visual Basic, Delphi, Dev-C .

Embarcadero Technologies - американська компанія, що займається розробкою програмного забезпечення для створення баз даних і засобів управління ними. Компанія була заснована в жовтні 1993 року Стефаном Вонгом і Стюартом Браунінгом з єдиним на той момент продуктом для адміністрування БД Sybase.

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

Microsoft Visual Studio - серія продуктів фірми Майкрософт, які включають інтегроване середовище розробки програмного забезпечення та ряд інших інструментальних засобів. Ці продукти дозволяють розробляти як консольні програми, так і програми з графічним інтерфейсом, в тому числі з підтримкою технології Windows Forms, а також веб-сайти, веб-застосунки, веб-служби як в рідному, так і в керованому кодах для всіх платформ, що підтримуються Microsoft Windows, Windows Mobile, Windows Phone, Windows CE, .NET Framework, .NET Compact Framework та Microsoft Silverlight.

Microsoft Visual Basic - засіб розробки програмного забезпечення, створений і підтримуваний корпорацією Microsoft, який складається з мови програмування і середовища розроблення. Мова Visual Basic успадкувала дух, стиль і, частково, синтаксис свого предка - мови Бейсік, яка має чимало діалектів.

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

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

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

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

Також вважається, що важка інтеграція завдань розробки може далі підвищити продуктивність. Наприклад, ІСР дозволяє проаналізувати код і тим самим забезпечити миттєвий зворотний зв'язок і повідомити про синтаксичні помилки.

Сьогодні існує досить велика кількість ІСР для С : Embarcadero RAD Studio, Qt Creator, NetBeans, Microsoft Visual Studio, Dev-C . Проте їхні можливості поки що не можуть задовольнити усіх потреб розробників програмного забезпечення. Основним середовищем для розробки сервісу поштових розсилок було обрано CLion.

CLion – інтегроване середовище розробки для мови програмування С .

Список розсилки (англ. mailing list, англ. mail-list) - сервіс Інтернет, що надає можливість об'єднати певну кількість людей в єдину закриту групу розсилки. Це практично єдиний сервіс, який не має власного протоколу та програми-клієнта і працює винятково через електронну пошту.

Інтегроване середовище розробки (ІСР, англ. Integrated development environment або англ. IDE) - комплексне програмне рішення для розробки програмного забезпечення. Зазвичай, складається з редактора початкового коду, інструментів для автоматизації складання та відлагодження програм.

Надає засоби для аналізу коду, графічний відгадчик та інструмент для запуску юніт-тестів. CLion розроблена чеською компанією JetBrains на основі IntelliJ IDEA.

JetBrains - компанія з розробки програмного забезпечення з офісами у Празі, Санкт-Петербурзі, Бостоні, Москві та Мюнхені. Відома розробкою інтегрованого середовища розробки для Java IntelliJ IDEA.

IntelliJ IDEA - комерційне інтегроване середовище розробки для різних мов програмування (Java, Python, Scala, PHP та ін.) від компанії JetBrains. Система поставляється у вигляді урізаної по функціональності безкоштовної версії «Community Edition» і повнофункціональної комерційної версії «Ultimate Edition», для якої активні розробники відкритих проектів мають можливість отримати безкоштовну ліцензію. Сирцеві тексти Community-версії поширюються рамках ліцензії Apache 2.0. Двійкові збірки підготовлені для Linux, Mac OS X і Windows.


pycharm

Рисунок 4.1 – Інтерфейс CLion


CLion працює під операційними системами Windows, Mac OS X і Linux та має такі переваги:

  • Статичний аналіз коду, підсвічування синтаксису і помилок

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

  • Рефакторинг: перейменування, витяг методу , введення змінної, введення константи, підйом і спуск методу і т. д.

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

    Підсвітка синтаксису - виділення певним чином (зазвичай кольором), певних елементів тексту (лексем), для покращення сприйняття його вмісту. Зазвичай застосовується до кодів програм, та розмітки документів.

    Операці́йна систе́ма, скорочено ОС (англ. operating system, OS) - це базовий комплекс програм, що виконує управління апаратною складовою комп'ютера або віртуальної машини; забезпечує керування обчислювальним процесом і організовує взаємодію з користувачем.



  • Вбудований відладчик для С

  • Вбудовані інструменти для юніт-тестування

  • Підтримка систем контролю версій: загальний користувальницький інтерфейс для Mercurial, Git, Subversion, Perforce і CVS з підтримкою списків змін та злиття

  • Велика кількість плагінів, що дозволяють значно розширити можливості ІСР

Отже, для розробки программного забезпечення обрано мову програмування С та середовище розробки CLion.

4.2 Розробка программного модуля

У магістерській роботі розроблено програмний модуль для текстурування тривимірних графічних об’єктів та їх порівняння.

Mercurial - вільна розподілена система керування версіями файлів та спільної роботи, розроблена для ефективної роботи з дуже великими репозиторіями сирцевого коду. Mercurial спочатку був написаний для Linux, та пізніше портований під Windows, Mac OS X і більшість Unix-систем.

Subversion (з 2010 називається Apache Subversion) - вільна система управління версіями.

Модуль - функціонально завершений фрагмент програми, оформлений у вигляді окремого файлу з сирцевим кодом або його іменованої частини (наприклад, Active Oberon), призначений для використання в інших програмах.

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

Основними функціями програмного модуля є:

а) введення вихідних текстур та формування їх архіву;

б) вибір простого низькополігонального об’єкту з списку доступних. В програмі закладено декілька об’єктів, для яких уже видалено невидимі поверхні;

в) текстурування згідно з вибраним методом;

г) зміна положення тривимірного об’єкта у просторі;

д) зміна центру перспективи;

ж) визначення загальної кількості тактів роботи мікропроцесора для

базових операцій вибраного методу текстурування.

Мікропроце́сор (англ. microprocessor) - інтегральна схема, яка виконує функції центрального процесора (ЦП) або спеціалізованого процесора. Сьогодні слово мікропроцесор є практично повним синонімом слова процесор, оскільки функціональний блок, що на ранніх стадіях розвитку обчислювальної техніки займали цілу плату чи навіть шафу, тепер вміщається в одну невеличку інтегральну схему із сотнями мільйонів транзисторів всередині. З середини 1980-х мікропроцесори витіснили інші види ЦП. Проте загалом це не так: центральні процесорні пристрої деяких суперкомп'ютерів навіть сьогодні є складними комплексами великих (ВІС) і надвеликих (НВІС) інтегральних схем.

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

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

Графічний інтерфейс розробленої програми включає п’ять функціональних частин (рис. 4.2).

Рисунок 4.2. Інтерфейс користувача програмного модуля

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

Трив́имірний о́пис об'є́кта (англ. 3D) - представлення об'єкта в трьох просторових вимірах. Як правило, ці виміри представлені в вигляді координат X, Y, та Z. Можливо мати дані з ідентичними координатами x та y при відмінній координаті Z.

Координати вершин можна змінювати набором заданих полів редагування.

Рисунок 4.3. Поля редагування для зміни параметрів розміщення об’єкта


Друга частина інтерфейсу користувача включає набір кнопок для керування процесом текстурування (рис. 4.3).

Рисунок 4.4. Поля керування процесом текстурування


Вибір текстури для накладання її на тривимірну площину здійснюється з використанням кнопки “Load texture”. З’являється діалогове вікно, де слід обрати *.

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

BMP файл (рис. 4.4).

Після натискання на кнопку “Открыть” текстура завантажується в список текстур і може бути використання для накладання на тривимірну площину.

Кнопка “Set texture” встановлює виділену текстуру як поточну, яка буде використовуватися у вибраному методі текстурування.

Третя частина інтерфейсу користувача призначена для виводу згенерованих тривимірних об’єктів (рис. 4.5).

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


Рисунок 4.5. Вибір текстури для накладання на тривимірну площину


П’ята частина інтерфейсу призначена для вибору методу текстурування тривимірного об’єкта (рис. 4.6).


Рисунок 4.6. Поле для виводу згенерованих тривимірних об’єктів


Рисунок 4.7. Поля для вибору методу текстурування
Лістинг основних програмних модулів наведено в додатку А.

Моделювання та тестова перевірка методів текстурування здійснювалося на комп’ютері з такою конфігурацією: операційна система – Windows ХР; процесор – Intel Pentium 2400; графічний відеоадаптер – вбудований у материнську плату Intel(R) 82865G Graphics Controller;

Відеока́рта (англ. video card, також графічна карта, графічний адаптер, графічний прискорювач) - пристрій, призначений для обробки і генерації зображень з подальшим їхнім виведенням на екран периферійного пристрою.

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

оперативна пам’ять – 512 Mb.

Розроблений програмний модуль дозволяє виконати тестування різних методів текстурування.

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

Основні функції програмного модуля:

а) завантаження тривимірних графічних об’єктів з *.3DS файлу;

б) завантаження файлу текстури *.JPG;

в) вибір моделі освітлення для методу текстурування, який ураховую z-координату при перспективному відображені об’єкта.

Програмний модуль побудовано на основі бібліотеки idx3d, яка має базові функції для роботи з 3D-моделями та тривимірною геометрією.

Об’єктну модель програмного модуля наведена на рисунку 4.8.

Графічний конвеєр у розробленій програмі включає етап геометричних перетворень, де над об’єктом виконують афінні та видові перетворення, що дозволяє здійснювати переміщення об’єкта в просторі, та етап рендерингу, на якому виконується видалення невидимих поверхонь за методом z-буфера та текстурування об’єкта згідно з запропонованим методом.

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

Графічний інтерфейс розробленої програми включає три функціональних частин (рис. 4.8).

Перша частина інтерфейсу користувача включає набір кнопок для керування процесом текстурування (рис. 4.9). Вибір об’єктів для текстурування здійснюється з використанням кнопки “Вибрати об’єкт…”. З’являється діалогове вікно, де слід обрати *.3DS файл, в якому міститься необхідний об’єкт.



Кнопка “Пауза” призупиняє процес динамічного відображення об’єктів.

Дина́міка (грец. δύναμις - сила) - розділ механіки,в якому вивчаються причини виникнення механічного руху. Динаміка оперує такими поняттями, як маса, сила, імпульс, момент імпульсу, енергія.



Рисунок 4.8. Об’єктну модель програмного модуля


Рисунок 4.9. Інтерфейс користувача програмного модуля



Друга частина інтерфейсу користувача призначена для виводу згенерованих тривимірних об’єктів (рис. 4.11).



Рисунок 4.10. Кнопки для керування процесом текстурування



Рисунок 4.11. Поля для вибору методу текстурування тривимірного об’єкта



Рисунок 4.12. Перспективно-коректне накладання текстур
У програмі реалізовано багатопотокову модель класів, яку схематично зображено на рисунку 4.12.


Рисунок 4.12. Багатопотокова модель, реалізована в програмному модулі

Моделювання та тестова перевірка методів зафарбовування здійснювалося на комп’ютері з наступною конфігурацією: операційна система – Windows ХР; процесор – Intel Pentium 2400; графічний відеоадаптер – вбудований у материнську плату Intel(R) 82865G Graphics Controller; оперативна пам’ять – 512 Mb.

Розроблений програмний модуль дозволяє виконати моделювання і тестування різних методів текстурування.

4.3 Висновки



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

Програ́мний проду́кт (англ. programming product) - це: програмний засіб, програмне забезпечення, які призначені для постачання користувачеві (покупцеві, замовникові). програма, яку може запускати, тестувати, виправляти та змінювати будь-яка людина.

Проведено експериментальні дослідження розроблених методів


текстурування тривимірних об’єктів, які підтвердили достовірність основних теоретичних положень:

  1. Використання квадратичної апроксимації для перспективно-коректного текстурування, дало можливість прискорити процесс текстурування на 5% за рахунок зменшення кількості операцій ділення

  2. Модифікація методу Хесберга для визначення координат текелів дозволила прискорити процесс текстурування на 6% за рахунок зменшення кількості операцій множення та додавання.

    Достовірність (validity, adequacy) - властивість інформації бути правильно сприйнятою, ймовірність відсутності помилок, безсумнівна вірність наведених відомостей, які сприймає людина. Таким чином, достовірність - не те ж саме, що істинність.



  3. Метод підвищення продуктивності перспективно-коректного нанесення текстури за рахунок використання неортогонального напрямку растеризації ділянки, обмеженої полігоном дозволяє підвищити продуктивність текстурування до 4%.

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

  5. Використання апроксимаційних формул дозволило підвищити продуктивність обрахунків із застосуванням для Гаусівської моделі пікселя до рівня, достатнього для використання в системах реального часу.


1   2   3   4   5   6   7   8   9



  • 4.2 Розробка программного модуля
  • 4.3 Висновки