Методи об'єктного аналізу і моделювання 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Методи об'єктного аналізу і моделювання



 

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

Метод об’єктно-орієнтованого моделювання передбачає послідовне виконання двох етапів: об’єктно-орієнтованого аналізу та об’єктно-орієнтованого проектування.

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

Основні поняття об’єктно-орієнтованих методів аналізу.

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

Відповідно до теорії Фреге специфікацію об’єкта можна трактувати як трійку:

· <ім’я об’єкта > <денотат > <концепт>;

де <ім’я об’єкта> – ідентифікатор, рядок з літер і чисел;

· <денотат> – сутність реальної ПрО, що позначається

цим ідентифікатором;

· <концепт > – семантика (зміст) денотата ПрО.

Схематично це можна подати за допомогою трикутника Фреге, котрий зображено на рис 1.4. В ньому містяться елементи реального світу, які мають такі властивості і характеристики:

· знак – ідентифікатор, який позначає денотат;

· денотат – сутність знаку, позначеного цим ідентифікатором;

· концепт – семантика денотату.

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

Рис. 1.4. Подання об’єктів ПрО за трикутником Фреге

(http://upload.wikimedia.org/wikipedia/commons/2/24/%D0%97%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%BD%D1%8F_1_%D0%B4%D0%BE_%D1%81%D1%82%D0%B0%D1%82%D1%82%D1%96_%D0%B6%D0%B8%D1%82%D1%82%D1%94%D0%B2%D0%B8%D0%B9_%D1%86%D0%B8%D0%BA%D0%BB_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B7%D0%B0%D0%B1%D0%B5%D0%B7%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%BD%D1%8F.jpeg)

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

 

 


 

2. НАВЧАЛЬНА ПРОГРАМА «ТЕХНОЛОГІЯ РОЗРОБКИ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ» У СЕРЕДОВИЩІ ПРОГРАМУВАННЯ C++ BUILDER

 

 

2.1 Історія виникнення мови програмування С++ та її технічні особливості.

C++ - мова програмування високого рівня з підтримкою декількох парадигм програмування: об'єктно-орієнтованої, узагальненої та процедурної. Розроблена Б'ярном Страуструпом

(англ. Bjarne Stroustrup) в AT&T Bell Laboratories (Мюррей-Хілл, Нью-Джерсі) у 1979 році та названа «С з класами». Страуструп перейменував мову у C++ у 1983 р. Базується на мові С. Визначена стандартом ISO/IEC 14882:2003.

У 1990-х роках С++ стала однією з найуживаніших мов програмування загального призначення. Мову використовують для системного програмування, розробки програмного забезпечення, написання драйверів, потужних серверних та клієнтських програм, а також для розробки розважальних програм таких як відео ігри. С++ суттєво вплинула на інші, популярні сьогодні, мови програмування: С# та Java.

Історія назви. Назва «С++» була вигадана Ріком Масситті (Rick Mascitti) і вперше була використана в грудні 1983 року. Раніше, на етапі розробки, нова мова називалася «С з класами». Ім'я, що вийшло у результаті, походить від оператора С «++» (збільшення значення змінної на одиницю) і поширеному способу присвоєння нових імен комп'ютерним програмам, що полягає в додаванні до імені символу «+» для позначення поліпшень. Згідно зі Страуструпом, «ця назва указує на еволюційну природу змін C». Виразом «С+» називали ранішню, не пов'язану з С++, мову програмування.

Деякі програмісти на С можуть відмітити, що якщо виконуються вирази x=3; y=x++; то в результаті вийде x=4 і y=3, тому що x збільшується тільки після присвоєння його у. Проте якщо другий вираз буде y=++x; то вийде x=4 і y=4. Виходячи з цього, можна зробити висновок, що логічніше було б назвати мову не С++, а ++С. Проте обидва вирази c++ і ++c збільшують с, а крім того вираз c++ поширеніший.

Педанти також можуть відмітити, що введення мови С++ не змінює самого С, тому найточнішим ім'ям було б «С+1».

Технічний огляд мови. В 1998 році мова С++ була стандартизована Міжнародною організацією стандартизації під номером 14882:1998 — Мова Програмування С++. Поточний стандарт — C++11, він був прийнятий у 2011 році робочою групою МОС після десятирічної підготовки.

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

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

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

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

 

2.2 Об’єктно-орієнтовані особливості мови

Інкапсуляція. Основним способом організації інформації в С++ є класи. На відміну від типу структура (struct) мови Сі, що складається тільки з полів, клас (class) С++ складається з полів і функцій-членів або методів (англ. member functions). Поля бувають публічними (public), захищеними (protected) і приватними (private). У С++ тип структура аналогічний типу клас, відмінність в тому, що за умовчанням поля і функції-члени у структури публічні, а у класу — приватні.

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

Використовуючи інкапсуляцію, автор класу може захистити свої дані від некоректного використання. Крім того, вона замислювалася для полегшення сумісної розробки класів. Малося на увазі, що зміна способу зберігання даних, якщо вони оголошені як захищені або приватні не вимагає відповідних змін в класах, які використовують змінений клас. Наприклад, якщо в старій версії класу дані зберігалися у вигляді лінійного списку, а в новій версії — у вигляді дерева, ті класи, які були написані до зміни формату зберігання даних, переписувати не буде потрібно, якщо дані були приватними або захищеними (у останньому випадку — якщо використовуючі класи не були класами-нащадками), оскільки жоден з них цих класів не міг би безпосередньо звертатися до даних, а тільки через стандартні функції, які в новій версії мають вже коректно працювати з новим форматом даних. Навіть оператор доступу operator [] може бути визначений як така стандартна функція.

Функції-члени, як і поля, можуть бути публічними, захищеними і приватними. Публічні функції може викликати будь-хто, а захищені і власні — тільки функції-члени і друзі.

Конструктори і деструктори. Проте в наведеному прикладі не вирішена важлива проблема: функції Alloc і Free як і раніше треба викликати вручну. Інша проблема даного прикладу — небезпека оператора присвоєння. Для вирішення цих проблем в мову були введені конструктори і деструктори. Конструктор викликається щоразу, коли створюється об'єкт даного типу; деструктор — при знищенні. При перетвореннях типів, присвоєнні, передачі параметра теж викликаються конструктори і при необхідності деструктори.

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

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

Нащадок — це більш ніж базовий клас, тому він може використовуватися скрізь, де використовується базовий клас, але не навпаки.

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

Клас може бути нащадком декількох класів. Це називається множинним успадкуванням. Такий клас володіє полями і функціями-членами всіх його предків. Наприклад, клас FlyingCat може бути нащадком класів Cat і FlyingAnimal.

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

 

 

2.3 Переваги та недоліки мови програмування.

Як і кожна мова програмування, C++ має ряд своїх переваг та недоліків.

Переваги мови С++:

· швидкодія. Швидкість роботи програм на С++ практично не поступається програмам на С, хоча програмісти отримали в свої руки нові можливості і нові засоби;

· масштабованість. На мові C++ розробляють програми для найрізноманітніших платформ і систем;

· можливість роботи на низькому рівні з пам'яттю, адресами, портами. (Що, при необережному використанні, може легко перетворитися на недолік);

· можливість створення узагальнених алгоритмів для різних типів даних, їхня спеціалізація, і обчислення на етапі компіляції, з використанням шаблонів;

· підтримуються різні стилі та технології програмування, включаючи традиційне директивне програмування, ООП, узагальнене програмування, метапрограмування (шаблони, макроси);

Недоліки мови С++:

· наявність безлічі можливостей, що порушують принципи типобезпеки приводить до того, що в С++ програми може легко закрастися важковловима помилка. Замість контролю з боку компілятора розробники вимушені дотримуватися вельми нетривіальних правил кодування. По суті, ці правила обмежують С++ рамками якоїсь безпечнішої підмови. Більшість проблем типобезпеки С++ успадкована від С, але важливу роль в цьому питанні грає і відмова автора мови від ідеї використовувати автоматичне управління пам'яттю (наприклад, збірку сміття). Так візитною карткою С++ стали вразливості типу «переповнювання буфера»;

· погана підтримка модульності. Підключення інтерфейсу зовнішнього модуля через препроцесорну вставку заголовного файлу (#include) серйозно уповільнює компіляцію, при підключенні великої кількості модулів. Для усунення цього недоліку, багато компіляторів реалізують механізм прекомпіляції заголовних файлів (англ. Precompiled Headers);

· недостача інформації про типи даних під час компіляції (CTTI);

· мова C++ є складною для вивчення і для компіляції;

· деякі перетворення типів неінтуїтивні. Зокрема, операція над беззнаковим і знаковим числами видає беззнаковий результат;

· препроцесор С++ (успадкований від C) дуже примітивний. Це приводить з одного боку до того, що з його допомогою не можна (або важко) здійснювати деякі завданняметапрограмування, а з іншою, в наслідку своєї примітивності, він часто приводить до помилок і вимагає багато дій з обходу потенційних проблем. Деякі мови програмування (наприклад, Scheme і Nemerle) мають набагато могутніші і безпечніші системи метапрограмування (також звані макросами, але макроси С/С++ вони мало нагадують);

З кінця 1990-х в співтоваристві С++ набуло поширення так зване метапрограмування на базі шаблонів. По суті, воно використовує особливості шаблонів C++ в цілях реалізації на їхній базі інтерпретатора примітивної функціональної мови програмування, що виконується під час компіляції. Сама по собі ця можливість вельми приваблива, але, внаслідкок вище згаданого, такий код вельми важко сприймати і зневаджувати. Мови Lisp/Scheme, Nemerle і деякі інші мають могутніші і водночас простіші для сприйняття підсистеми метапрограмування. Крім того, в мові D реалізована порівнянна за потужністю, але значно простіша в застосуванні підсистема шаблонного метапрограмування.

Хоча декларується, що С++ мультипарадигмена мова, реально в мові відсутня підтримка функціонального програмування. Частково, даний пропуск усувається різними бібліотеками (Loki, Boost) що використовують засоби метапрограмування для розширення мови функціональними конструкціями (наприклад, підтримкою лямбд/анонімних методів), але якість подібних рішень значно поступається якості вбудованих у функціональні мови рішень. Такі можливості функціональних мов, як зіставлення зі зразком взагалі украй складно емулювати засобами метапрограмування.

Перспективи розвитоку мови. С++ продовжує розвиватися, щоб відповідати сучасним вимогам. Одна з груп, що займаються мовою С++ в її сучасному вигляді і що направляють комітету зі стандартизації С++ поради з її поліпшення, — це Boost. Наприклад, один з напрямів діяльності цієї групи — вдосконалення можливостей мови шляхом додавання в неї особливостей метапрограмування.

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

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

Одним із каменів спотикання у цьому питанні є ключове слово export, що використовується також і для розділення оголошення і визначення шаблонів. Першим компілятором, що підтримав export в шаблонах, став Comeau C++ на початку 2003 року (п'ять років після виходу стандарту). У 2004 році бета-версія компілятора Borland C++ Builder X також почала його підтримку. Обидва цих компілятора засновані на зовнішньому інтерфейсі EDG. Інші компілятори, такі як Microsoft Visual C++ або GCC, взагалі цього не підтримують. Ерб Саттер (Herb Sutter), секретар комітету із стандартизації С++, рекомендував прибрати export з майбутніх версій стандарту унаслідок серйозних складнощів в повноцінній реалізації, проте згодом остаточним рішенням було вирішено його залишити.

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

 

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

 

Директиви препроцесора – це команди компілятора відповідної мови програмування, які виконуються на початку компіляції програми. Директиви мови С++ починаються із символу #.

Директива #include означає, що до програми необхідно приєднати програмний код із зазначеного після неї файлу.

Усі стандартні команди та функції мови С++ визначенні у файлах заголовків. Щоб приєднати модуль до програми користувача, директиву препроцесора необхідно зазначити на початку програми так:

#include <назва файлу.розширення>

або так:

#include «шлях до файлу\назва файлу.розширення»

Головна функція, яка має бути у кожній програмі, - це функція вигляду

main(void)

{

тіло функції з командою return 0;

}

Мain() – заголовок функції. Ключове слово void означає, що функція не залежить від параметрів, його записувати не обов’язково.

У тілі функції містяться команди та виклики інших функцій. Команди одну від одної відокремлюють символом «;» (крапка з комою). Текст функції закінчується командою повернення return. Тіло функції (усі команди після заголовка) записується у фігурних дужках { }.

Команда присвоєння. Команда присвоєння має такий загальний вигляд:

<назва змінної> = <вираз>

або

<назва змінної 1>=<назва змінної 2> =…= <назва змінної N> = <вираз>

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

Операції інкременту (++) та декременту (--). Операції інкременту і декременту існують у двох формах – перфіксній та постфіксній. Якщо символи ++ (--) записані перед змінною – то це інкремент (декремент) у префіксній формі, а якщо після змінної – у постфіксній. Операція інкременту має такий вигляд:

++<змінна> або <змінна>++

Дія операції. Значення змінної збільшується на одиницю. Команда ++а, а++ рівносильні команді а = а + 1. Форма інкременту (декременту) впливає на порядок виконання операцій у виразах.

Керуючі послідовності. Для виведення даних авторизації та результатів тестування у менеджер звітів, при розробці програми було використано куруючі послідовності, таблиця 2.1, і команду <<, які визначені у бібліотеці iostream.h (ostream.h):

Таблиця 2.1. Керуючі послідовності

Символи керуючих послідовностей Коментар
\a, \7 Подати звуковий сигнал
\b Повернути курсор на один символ назад (знищити попередній символ)
\f Перейти на нову сторінку
\n Перейти на новий рядок
\r Повернути курсор на початок рядка
\t Перевести курсор до наступної позиції табуляції
\v Вертикальна табуляція
\\ Вивести символ похилої риски
\’ Вивести символ апострофа
\” Вивести символ лапок
\? Вивести знак запитання

Команда розгалуження if. Дія команди. Обчислюється значення логічного виразу. Якщо це значення істинне, то виконується команда 1, у протилежному випадку – команда 2. Команда 1 та команда 2 можуть бути порожніми, простими або складеними.

if (<логічний вираз>) <команда 1>; else <команда 2>;

Зчитування даних із файлу. Щоб зчитати вхідні дані з файлу, необхідно оголосити файлову змінну та відкрити файл для читання так (розглянемо два способи):

· іfstream <назва файлової змінної>(<зовнішня назва>, ознака1 |ознака2| … | ознакаN);

або так:

· іfstream <назва файлової змінної>; <назва файлової змінної>.open(<зовнішня назва>);

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

Виведення даних у файл. Відкрити файл для записування у нього даних можна так:

ofstrem <назва файлової змінної>(<зовнішня назва>, ознака1 | ознака2 | … | ознака N)

або так:

ofstrem <назва файлової змінної>;

<назва файлової змінної>.open(<зовнішня назва>);

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

Команда вибору (switch). Команда вибору має вигляд:

switch (<вираз>);

{

case <ознака 1>: <команда 1>; break;

case <ознака N>: <команда N>; break;

default: <команда N+1>;

}

Вираз та ознаки мають бути цілочисельні. Оскільки транслятор мови С++ може розглядати значення змінних типу char і enum як цілі дані, то на місці виразу та ознак можуть бути сталі цілого, символьного або перерахованого типів. На місці команд 1 – N може бути одна команда, декілька або не бути жодної команди. Команда break не є обов’язковою і записується у разі потреби. Вона слугує для виходу з команди switch.

Складова частина default: <команда N+1> також може бути відсутня – тоді матимемо коротку форму команди вибору switch.

Дія команди. Якщо значення виразу збігається зі значенням ознаки п, то виконується команда з номером п і розглядається наступний за нею рядок case і т. д. Для того, щоб припинити дію команди switch, наприклад, після виконання команди п (тобто щоб вийти з цієї команди), записують команду break;. Якщо значення виразу не збігається із жодною з ознак, то виконується команда N+1 або, у випадку короткої форми, наступна команда після команди switch.

 

2.5 Структура програми

 

При запуску середовища програмування C++ Builder відкривається головне вікно (Рис. 2.1), на якому розміщені такі структурні елементи:

· головне вікно – C++builder;

· вікно стартової форми – Form1;

· вікно редактора властивостей об'єктів – Object Inspector;

· вікно перегляду списку об'єктів – Object Treeview;

· вікно редактора кодів – Unitl.cpp.

Рис. 2.1. Вид головного вікна C++ Builder

У головному вікні (виділено коричневим кольором на рис. 2.1.) знаходиться меню команд, панелі інструментів і палітра компонентів.

Вікно стартової форми Form 1 (виділено червоним кольором на рис. 2.1.) є заготівкою програми, на якій розміщуються усі необхідні компоненти.

Вікно Object Inspector (виділено жовтим кольором на рис. 2.1.) - вікно редактора властивостей об'єктів, призначене для редагування значень властивостей об'єктів. У термінології візуального проектування об'єкти – це діалогові вікна і елементи управління (поля введення і виводу, командні кнопки, перемикачі і ін.). Властивості об'єкту – це характеристики, що визначають вигляд, положення і поведінку об'єкту. Наприклад, властивості Width і Height задають розмір (ширину і висоту) форми, властивості Тор і Left – положення форми на екрані, властивість Caption – текст заголовка. У верхній частині вікна вказаний об'єкт (ім'я об'єкту), значення властивостей якого відбиті у вікні Object Inspector.

Вікно Object TreeView cpp (виділено фіолетовим кольором на рис. 2.1.) відображає усі компоненти (кнопки, поля вводу інформації, мітки і т.д.), які розробник розміщає на формі.

У вікні редактора кодів Unit 1.cpp (виділено зеленим кольором на рис. 2.1.), вводиться текст програми. Перед розробкою нового проекту дане вікно має шаблон для створення нової програми.

Об’єкт Form та його властивості. Робота над новим проектом (так в C++ Builder називається додаток, що розробляється) починається із створення стартової форми – головного вікна програми.

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

Основні властивості форми, які визначають її вигляд і поведінку під час роботи програми, приведені в таблиці 2.2.

Для зміни значень властивостей об'єктів, у тому числі і форми, використовується вкладка Properties (Властивості) діалогового вікна Object Inspector. У лівій колонці цієї вкладки перераховані властивості вибраного об'єкту, в правій — вказані значення властивостей.

При створенні форми насамперед слід змінити значення властивості Caption (Заголовок). Щоб це зробити, потрібно у вікні Object Inspector клацнути лівою кнопкою миші в рядку Caption (в результаті буде виділено значення властивості і з'явиться курсор) і ввести потрібний текст.

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

Форма — це звичайне вікно. Тому розмір форми можна змінити точно так, як і розмір будь-якого вікна Windows, тобто шляхом перетягання межі. Після закінчення переміщення межі значення властивостей Height і Width автоматично зміняться. Вони відповідатимуть встановленому розміру форми.

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

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

Властивості форми (об'єкту Form) представлено у таблиці 2.2.

Таблиця 2.2. Властивості форми

Властивістьь Опис властивості
Name Ім'я форми. У програмі ім'я форми використовується для управління формою і доступу до компонентів форми
Caption Текст заголовка
Width Ширіна форми
Height Висота форми
Тор Відстань від верхньої межі форми до верхньої межі екрану
Left Відстань від лівої межі форми до лівої межі екрану
Borderstyle Вид межі. Межа може бути звичайною (bssizeable), тонкою (bssingle) або бути відсутнім (bsnone). Якщо біля вікна звичайна межа, то під час роботи програми користувач може за допомогою миші змінити розмір вікна. Змінити розмір вікна з тонкою межею не можна. Якщо межа відсутня, то на екран під час роботи програми буде виведено вікно без заголовка. Положення і розмір такого вікна під час роботи програми змінити не можна
Borderlcons Кнопки управління вікном. Значення властивості визначає, які кнопки управління вікном будуть доступні користувачеві під час роботи програми. Значення властивості задається шляхом привласнення значень уточнюючим властивостям bisystemmenu, biminimaze, bimaximaze і bihelp. Властивість bisystemmenu визначає доступність кнопки Скрутити і кнопки системного меню biminimaze — кнопки Скрутити, bimaximaze— кнопки Розвернути, bihelp — кнопки виведення довідкової інформації
Icon Значок в заголовку діалогового вікна, що позначає кнопку виведення системного меню
Color Колір фону. Колір можна задати, вказавши назву кольору або прив'язку до поточної колірної схеми операційної системи. У другому випадку колір визначається поточною колірною схемою, вибраним компонентом прив'язки і міняється при зміні колірної схеми операційної системи
Font Шрифт. Шрифт, використовуваний "за умовчанням" компонентами, що знаходяться на поверхні форми. Зміна властивості Font форми приводить до автоматичної зміни властивості Font компоненту, розташованого на поверхні форми. Тобто компоненти успадковують властивість Font від форми (є можливість заборонити спадкоємство)

Деякі властивості є складними, тобто їх значення визначається сукупністю значень інших (що уточнюють) властивостей. Наприклад, властивість BorderIcons визначає, які кнопки управління вікном будуть доступні під час роботи програми. Значення цієї властивості визначається сукупністю значень властивостей biSystemMenu, biMinimize, biMaximize і biHelp кожне з яких, у свою чергу, визначає наявність відповідної командної кнопки в заголовку вікна під час роботи програми. Перед іменами складних властивостей є значок "+", в результаті клацання на якому розкривається список уточнюючих властивостей, значення яких можна задати звичайним способом (ввести в поле або вибрати в списку допустимих значень).

В результаті вибору деяких властивостей (клацання кнопкою миші на властивості), поряд із значенням властивості з'являється командна кнопка з трьома крапками. Це означає, що задати значення властивості можна в додатковому діалоговому вікні, яке з'явиться в результаті клацання на цій кнопці. Наприклад, значення складної властивості Font можна задати у вікні Object Inspector шляхом введення значень уточнюючих властивостей, а можна скористатися стандартним діалоговим вікном Шрифт, яке з'явиться в результаті клацання на кнопці з трьома крапками.

Структура програми. На рис. 2.2. зображено структуру програми «Технологія розробки програмного забезпечення». Код розробленої програми подано у додатку А.

Рис. 2.2. Структурна схема програми

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

Рис. 2.3. Головне вікно програми «Технологія розробки програмного забезпечення»

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

Рис. 2.4. Дерева об’єктів головного вікна та вікна тестування

 

 

2.6 Інструкція користувача

 

Перейшовши до вкладки «Теорія», зображеної на рис. 2.5, користувач має змогу ознайомитися з теоретичним матеріалом курсу, а саме:

• основи ТРПЗ;

• розробка та супровід ПЗ;

• моделі розробки ПЗ (каскадна, спіральна, еволюційна);

• принципи ООП.

Перейшовши до вкладки «Тестування», рис. 2.6, користувач може перевірити свої знання у розділі «Самотестування», що показано на рис. 2.7, де по закінченню тесту користувач отримує оцінку та підказки, в якому саме питанні він зробив помилку, або пройти тест із будь-якої теми. У цьому випадку користувач повинен пройти процедуру авторизації, ввівши свої прізвище та ім’я у відповідну форму, рис. 2.8. Після авторизації користувач проходить тест, а отримана оцінка заноситься до менеджеру звітів, що зображено на рис. 2.9, який вказує на студента, тему, з якої проводилось тестування та отриману оцінку.

Рис. 2.5. Вікно теоретичних відомостей

Рис. 2.6. Вікно тестування

Рис. 2.7. Вікно самоперевірки

Рис. 2.8 Форма авторизації

Рис. 2.9. Менеджер звітів

 

 


 

3. ТЕХНІКА БЕЗПЕКИ

 

 

Під час роботи на комп'ютерах можуть діяти такі небезпечні та шкідливі фактори, як:

· фізичні;

· психофізіологічні.

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

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

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

1. Освітлення. Система освітлення повинна відповідати таким вимогам:
освітленість на робочому місці повинна відповідати характеру зорової роботи, який визначається трьома параметрами:

· об'єктом розрізнення -найменшим розміром об'єкта, що розглядається на моніторі ПК;

· фоном, який характеризується коефіцієнтом відбиття;

· контрастом об'єкта і фону.

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

3. в полі зору не повинно бути відблисків (підвищеної яскравості поверхонь, які світяться та викликають осліплення);

4. величина освітленості повинна бути постійною під час роботи;

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

Вимоги до монітору. Основним обладнанням робочого місця користувача є монітор, системний блок та клавіатура.

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

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

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

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

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

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

Ще одним моментом, який стосується зору, є необхідність створення неоднорідного поля зору. Для цього можна розвісити на поверхнях (стінах) плакати та картини, виконані у спокійних тонах. Наприклад, пейзажі.
При роботі з текстовою інформацією (в режимі введення даних та редагування тексту, читання з екрану) найбільш фізіологічним правильним є зображення чорних знаків на світлому (чорному) фоні.
Монітор повинен бути розташований на робочому місці так, щоб поверхня екрана знаходилася в центрі поля зору на відстані 400-700 мм від очей користувача. Рекомендується розміщувати елементи робочого міс



Поделиться:


Последнее изменение этой страницы: 2017-01-24; просмотров: 657; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.219.215.75 (0.155 с.)