Розробка автоматизованої системи обліку мобільних телефонів на складі-магазині

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 06.06.2012
Размер файла 4,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Зміст

  • Вступ
  • 1. Загальна частина
  • 1.1 Постановка задачі і вимоги до програми
  • 1.2 Вимоги до технічних засобів, що використовуються
  • 1.2.1 Вимоги до апаратного забезпечення
  • 1.2.2 Вимоги до програмного забезпечення
  • 1.3 Опис інструментальних засобів розробки програмного забезпечення
  • 1.3.1 Опис мови та середовища програмування
  • 1.3.2 Опис операційної системи
  • 1.3.3 Опис функцій для роботи з файлами
  • 2. Спеціальна частина
  • 2.1 Програмна частина
  • 2.1.1 Опис вхідних та вихідних даних
  • 2.1.2 Опис полів записів файлів даних
  • 2.1.3 Контроль вхідних даних на коректність
  • 2.1.3.1 Перевірка рядка
  • 2.1.3.2 Перевірка числового значення
  • 2.1.4 Опис програми та складових її частин
  • 2.1.5 Узагальнена схема зв'язку між складовими частинами програми
  • 2.2 Експлуатаційна частина
  • 2.2.1 Підготовка програми до виконання
  • 2.2.2 Інструкція користувача
  • 2.2.3 Тестування програми
  • 2.2.4 Опис критичних ситуацій
  • 2.2.5 Опис процесу відлагодження програми
  • 3. Економічна частина
  • 3.1 Розрахунок фонду заробітної плати виробничої дільниці
  • 3.2 Розрахунок вартості виробничих фондів та амортизаційних відрахувань
  • 3.3 Розрахунок витрат на електроенергію
  • 3.4 Розрахунок загальних витрат на виробництво програмного продукту
  • 4. Охорона праці
  • 4.1 Організації робочого місця користувача електронно-обчислювальною машиною
  • 4.2 Вимоги безпеки під час експлуатації електронно-обчислювальної машини
  • 4.2.1 Вимоги безпеки перед початком роботи
  • 4.2.2 Вимоги безпеки під час виконання роботи
  • 4.2.3 Вимоги безпеки після закінчення роботи
  • 4.3 Безпека праці
  • 4.3.1 Організація охорони праці на підприємстві
  • 4.3.2 Причини виробничого травматизму та захворювань
  • 4.3.3 Електробезпека
  • 4.4 Санітарно-гігієнічні вимоги
  • 4.4.1 Мікроклімат робочої зони
  • 4.4.2 Ергономіка та виробнича естетика робочого місця
  • 4.4.3 Опалення та вентиляція
  • 4.4.4 Виробниче освітлення
  • 4.4.5 Захист від випромінювань
  • 4.4.6 Захист від шуму та вібрації
  • 4.5 Вимоги до персоналу
  • 4.6 Протипожежний захист
  • Висновки
  • Література

Вступ

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

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

Програма працює на операційній системі Microsoft Windows XP\Vista\7. За даними компанії Net Applications, на липень 2011 року ринкова частка Windows становила 87,6% [7]. Тому програма може бути встановлена на широке коло комп'ютерів.

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

У загальній частині описано технічні вимоги до ПК, які необхідні для роботи програми, інструментальні засоби, що були використані для розробки програми. Зокрема був використаний компілятор Visual C++ 10.0.

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

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

1. Загальна частина

1.1 Постановка задачі і вимоги до програми

Створити автоматизовану систему (комп'ютерну програму для ведення файлу) обліку мобільних телефонів на складі-магазині.

Розроблена програма повинна бути добре прокоментованою та менюмізованою. Головне меню програми повинно містити наступні обов'язкові пункти:

- Створення нового файлу даних.

- Перегляд існуючого файлу даних.

- Додавання записів до файлу даних.

- Видалення записів із файлу даних.

- Редагування запису файлу даних.

Окрім перелічених стандартних пунктів з ведення файлу даних програма повинна виконувати наступні запроси:

- Перелік всіх записів, у яких ціна більше 1000 і розмір екрану більше або дорівнює 3.5.

- Перелік всіх записів, кількість яких менше 10.

- Пошук певного запису за виробником, моделлю або кольором.

- Відображення загальної кількості та вартості телефонів.

- Відображення найдешевшого та найдорожчого телефонів, а також середню вартість телефону на складі.

- Вибір типу сортування даних: за виробником або ціною.

Файл даних повинен містити:

- Виробник.

- Модель.

- Розмір екрану.

- Колір.

- Ціна.

- Кількість на складі.

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

Рекомендовано розробити алгоритм "перегортання сторінок екрану" вперед та назад (чи тільки вперед).

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

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

1.2 Вимоги до технічних засобів, що використовуються

1.2.1 Вимоги до апаратного забезпечення

Для нормальної роботи програми необхідний комп'ютер з апаратним забезпеченням, вказаним в таблиці 1.2.1.1.

Таблиця 1.2.1.1 Вимоги до апаратного забезпечення

Процесор

x86-сумісний процесор з тактовою частотою 300 МГц або вище

Оперативна пам'ять

128 Мб або вище

Відеоадаптер

Super VGA (800 x 600) або вище

Вільне місце на HDD

1,5 Гб або вище

Пристрої взаємодії з користувачем

Клавіатура

Процесор електронний блок або мікросхема виконавець машинних інструкцій (коду програм), головна частина апаратного забезпечення комп'ютера або програмованого логічного контролера. Іноді називають мікропроцесором. Спочатку термін центральний процесорний пристрій описував спеціалізований клас логічних машин, призначених для виконання складних комп'ютерних програм. Внаслідок досить точної відповідності цього призначення функціям існуючих в той час комп'ютерних процесорів, він природним чином був перенесений на самі комп'ютери. Початок застосування терміну і його абревіатури по відношенню до комп'ютерних систем було покладено в 1960-ті роки. Пристрій, архітектура і реалізація процесорів з тих пір неодноразово змінювалися, однак їх основні виконувані функції залишилися тими ж, що і раніше [17].

Головними характеристиками процесора є тактова частота та архітектура.

Для роботи програми потрібен процесор, який є сумісним з архітектурою процесорів x86 (загальна назва мікропроцесорної архітектури, започаткованої Intel). Архітектура x86 нині домінує на ринку настільних і мобільних комп'ютерів та малих серверів. Назва x86 походить від останніх цифр у назвах перших моделей (8086, 80186, 80286, 80386, 80486 тощо) цієї родини процесорів.

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

Відеоадаптер пристрій, що перетворює графічний образ, що зберігається, як вміст пам'яті комп'ютера або самого адаптера, в іншу форму, призначену для подальшого виведення на екран монітора. В даний час ця функція втратила основне значення, і в першу чергу під графічним адаптером розуміють пристрій з графічним процесором графічний прискорювач, який і займається формуванням самого графічного образу. Сучасні відеоадаптери не обмежуються простим виведенням зображення, вони мають вбудований графічний процесор, який може виробляти додаткову обробку, знімаючи це завдання з центрального процесора комп'ютера. Наприклад, усі сучасні відеоадаптери NVidia і AMD здійснюють рендеринг графічного конвеєра OpenGL і DirectX на апаратному рівні. Останнім часом також має місце тенденція використовувати обчислювальні можливості графічного процесора для вирішення неграфічних завдань [13].

VGA стандарт моніторів та відеоадаптерів. SuperVGA загальна назва відеоадаптерів, сумісних з VGA, але маючих розширені по відношенню до нього можливості роздільність від 800х600 і вище при кількості кольорів від 2 (монохромний режим) до 16 мільйонів (24 біт на піксель), а також великі обсяги відеопам'яті. Всі сучасні відеоадаптери підтримують цей стандарт [22].

Жорсткий диск (HDD, англ. Hard Disk Drive) запам'ятовуючий пристрій (пристрій зберігання інформації) довільного доступу, заснований на принципі магнітного запису. Є основним накопичувачем даних в більшості комп'ютерів [14].

З програмою можна працювати лише за допомогою клавіатури.

1.2.2 Вимоги до програмного забезпечення

Програма працює на операційній системі Windows наступних версій: XP/Vista/7 розрядності х86 та х64 (за допомогою підсистеми WoW64). WoW64 (Windows-on-Windows 64-bit) це підсистема операційної системи Windows, що дозволяє запускати 32-бітні програми на всіх 64-бітних версіях Windows.

1.3 Опис інструментальних засобів розробки програмного забезпечення

1.3.1 Опис мови та середовища програмування

Для реалізації дипломного проекту була обрана мова програмування С++ для покращення знань та навиків роботи з С++ та дослідження нових можливостей, запроваджених стандартом С++11. Мова програмування С/С++. Сі (англ. C) стандартизована процедурна мова програмування, розроблена на початку 1970-х років співробітниками Bell Labs Кеном Томпсоном і Деннісом Рітчі як розвиток мови Бі. Сі був створений для використання в операційній системі UNIX. З тих пір він був портований на багато інших операційних систем і став одним з найбільш використовуваних мов програмування. Сі цінують за його ефективність. Він є найпопулярнішою мовою для створення системного програмного забезпечення. Його також часто використовують для створення прикладних програм. Незважаючи на те, що Сі не розроблявся для новачків, він активно використовується для навчання програмуванню. Надалі синтаксис мови Сі став основою для багатьох інших мов.

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

С++ у порівнянні з його попередником мовою C, найбільшу увагу приділено підтримці об'єктно-орієнтованого і узагальненого програмування. Назва "C++" походить від назви мови C, у якій унарний оператор ++ позначає інкремент змінної. Будучи одним з найбільш популярних мов програмування, C++ широко використовується для розробки програмного забезпечення. Сфера його застосування включає створення операційних систем, різноманітних прикладних програм, драйверів пристроїв, додатків для вбудованих систем, високопродуктивних серверів, а також розважальних програм (наприклад, відео-ігри). Існує декілька реалізацій мови C++ як безкоштовних, так і комерційних. Найбільш популярні проект GNU, Microsoft, Intel і Embarcadero (Borland) [20].

C++11 нова версія стандарту мови C++, прийнята у серпні 2011 комітетом ISO зі стандартизації мови замість ISO/IEC 14882: 2003 (С++03). Новий стандарт включає доповнення в ядрі мови та розширення STL [21]. В програмі було використано декілька нових можливостей C++11, такі як:

Визначення типів. У стандартному С\C++ тип змінної повинен бути явно вказаним. Однак, після появи шаблонних типів і технік шаблонного метапрограмування, тип деяких речей, особливо значення, котре повертає функція, не може бути легко заданим. Це призводить до складнощів при зберіганні проміжних даних в змінних, іноді може знадобитися знання внутрішньої будови конкретної бібліотеки метапрограмування. C++11 пропонує використовувати ключове слово auto. Це призведе до того, що буде створена змінна з типом, котрий має ініціалізуюче значення. Наприклад, довге визначення змінної iter:

vector<Phone*>:: iterator iter = phones. begin ();

можна замінити на

auto iter = phones. begin ();

Компілятор автоматично визначить тип змінної iter, у даному випадку виходячи з типу, що повертається функцією phones. begin (), тобто vector<Phone*>:: iterator.

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

function<int (int, int) > func = [] (int x, int y) { return x + y; }

Програму було створено з використанням компілятора Microsoft Visual C++ 10.0 за допомогою інтегрованого середовища розробки (англ. Integrated Development Environment, IDE) Microsoft Visual Studio 2010. Microsoft Visual Studio серія продуктів фірми Майкрософт, які включають інтегроване середовище розробки програмного забезпечення та ряд інших інструментальних засобів. Ці продукти дозволяють розробляти як консольні програми, так і програми з графічним інтерфейсом.

Компілятор комп'ютерна програма (або набір програм), що перетворює (компілює) програмний код, написаний певною мовою програмування (мова джерела, англ. source language), на семантично еквівалентний код в іншій мові програмування (цільова мова, англ. target language), який, як правило, необхідний для виконання програми машиною, наприклад, комп'ютером. Коротко компілятор можна визначити, як програму або технічний засіб, що виконує компіляцію. Компілятор Visual C++ складається з наступних компонентів:

Засоби компілятора Visual C++ 2010. Компілятор підтримує як традиційну розробку з використанням машинного коду, так і розробку з використанням платформ віртуальних машин, таких як середу CLR. Visual C++ 2010 містить компілятори для цільового об'єкта x64 і Itanium. Компілятор продовжує безпосередньо підтримувати архітектуру x86 і оптимізує продуктивність коду для обох платформ. Бібліотеки Visual C++. Містять загальновизнану бібліотеку шаблонних класів (ATL), бібліотеки Microsoft Foundation Class (MFC) і стандартні бібліотеки, такі як стандартна бібліотека C++, яка складається з бібліотеки iostreams, бібліотеки стандартних шаблонів (STL) та бібліотеки мови C (CRT). Середа розробки Visual C++. Середа розробки надає всебічну підтримку при управлінні проектами та їх налаштування (включаючи поліпшену підтримку великих проектів), редагуванні вихідного коду, перегляді вихідного коду, а також потужні засоби налагодження. Середа розробки також підтримує технологію IntelliSense, яка надає при написанні коду докладні підказки, що враховують контекст [15].

1.3.2 Опис операційної системи

Програма працює на операційній системі Microsoft Windows версій XP\Vista\7. Windows сімейство пропрієтарних операційних систем корпорації Microsoft, орієнтованих на застосування графічного інтерфейсу при керуванні. Спочатку були лише графічними компонентами для MS-DOS.

В даний час під управлінням операційних систем сімейства Windows, за даними ресурсу Net Marketshare (Net Applications) станом на грудень 2011 року, працює близько 86% персональних комп'ютерів [7].

Операційні системи Windows працюють на платформах x86, x86-64, IA-64, ARM. Найбільш сучасною операційною системою з сімейства Windows є Windows 7. В березні 2012 року частка Windows 7 серед операційних систем, що використовуються у світі склала 49,9%, тим самим, ця операційна система знаходиться на першому місці в світі по використанню, перевершивши в серпні 2011 року за цим показником попереднього лідера Windows XP.

Windows 7 операційна система сімейства Windows NT, наступна за Windows Vista. У лінійці Windows NT система носить номер версії 6.1 (Windows 2000 ? 5.0, Windows XP ? 5.1, Windows Server 2003 ? 5.2, Windows Vista і Windows Server 2008 - 6.0). Серверної версією є Windows Server 2008 R2, версією для інтегрованих систем (побудованих з компонентів Windows) Windows Embedded Standard 2011 (Quebec), мобільного - Windows Embedded Compact 2011 (Chelan, Windows CE 7.0).

Операційна система Windows є однією з найбільш перспективною платформою для написання прикладних програм для настільних ПК [16].

1.3.3 Опис функцій для роботи з файлами

Файл це сутність, що дозволяє отримати доступ до певного ресурсу обчислювальної системи і має такі ознаки: фіксоване ім'я (назва файлу) (послідовність символів, число чи щось інше, що однозначно характеризує файл), певне логічне представлення і відповідні йому операції читання/запису. На практиці це іменований блок інформації, який зберігається на носії інформації. Існують 2 типи файлів: бінарний та текстовий. Бінарні файли містять послідовність довільних байтів, а текстові послідовність символів. Двійкові файли протиставляються текстовим, але насправді, текстові файли є частковим випадком двійкових файлів, і тому під означення "бінарний файл" підходить будь-який файл.

Для роботи з файлами використовувались наступні функції: fopen, fread, fwrite, fclose.

Функція "fopen".

FILE* fopen (const char* filename, const char* mode);

Відкриває файл, ім'я якого зазначено в параметрі "filename" і пов'язує його з потоком, який може бути ідентифікований об'єктом "FILE" (вказівник якого повертається функцією) в подальших операціях. Операції, які дозволено застосовувати на потоці і як вони виконуються визначається параметром "mode".

Параметри функції "fopen".

Параметр "filename". Рядок, що містить ім'я файлу, який необхідно відкрити. Може включати в себе повний шлях до файлу.

Параметр "mode". Рядок, що містить режими доступу до файлу (див. таблицю 1.3.3.1).

Таблиця 1.3.3.1 Режими доступу до файлу

"r"

Відкрити файл для читання. Файл повинен існувати.

"w"

Створити порожній файл для запису. Якщо файл з таким ім'ям вже існує, його вміст стирається, і файл розглядається як новий порожній файл.

"a"

Додавати до файлу. Записуючі операції додають данні в кінець файлу. Якщо файл не існує, він буде створений.

"r+"

Відкрити файл для читання та запису. Файл повинен існувати.

"w+"

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

"a+"

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

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

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

Функція "fread".

size_t fread (void* ptr, size_t size, size_t count, FILE* stream);

Зчитує масив елементів кількістю "count", кожен з яких має розмір "size" з потоку та зберігає їх у блоку пам'яті, визначеного параметром "ptr".

Параметри функції "fread".

Параметр "ptr". Вказівник на блок пам'яті з мінімальним розміром "size" * "count" байт.

Параметр "size". Розмір в байтах елемента, що буде зчитаний.

Параметр "count". Число елементів, кожний розміром "size" байт.

Параметр "stream". Вказівник на об'єкт "FILE", що визначає вхідний потік.

Значення, що повертається. Загальне число зчитаних елементів, повертається як об'єкт "size_t". Якщо це число відрізняється від значення параметру "count", то сталася помилка, або був досягнутий кінець файлу.

Функція "fwrite".

size_t fwrite (const void* ptr, size_t size, size_t count, FILE* stream);

Записує масив елементів кількістю "count", кожен з яких має розмір "size" з блоку пам'яті, визначеного параметром "ptr", до поточної позиції в потоку "stream".

Параметри функції "fwrite".

Параметр "ptr". Вказівник на масив елементів, який буде записаний.

Параметр "size". Розмір в байтах кожного елемента.

Параметр "count". Число елементів, кожний розміром "size" байт.

Параметр "stream". Вказівник на об'єкт "FILE", що визначає вихідний потік.

Значення, що повертається. Загальне число записаних елементів, повертається як об'єкт "size_t". Якщо це число відрізняється від значення параметру "count", то сталася помилка.

Функція "fclose".

int fclose (FILE* stream);

Закриває файл, пов'язаний з потоком "stream". Вміст всіх не записаних буферів записується у файл, а всіх непрочитаних буферів відкидається. Навіть якщо виклик функції не вдається, потік, переданий в параметрі "stream" більше не буде пов'язаний з файлом.

Параметри функції "fclose".

Параметр "stream". Вказівник на об'єкт "FILE", що визначає потік, який треба закрити.

Значення, що повертається. Якщо потік успішно закритий, повертається нульове значення. В іншому випадку, повертається значення константи "EOF" [18].

мова програмування інструкція програма

2. Спеціальна частина

2.1 Програмна частина

2.1.1 Опис вхідних та вихідних даних

Вхідними даними програми є дані, що вводяться користувачем з клавіатури. Програма отримує наступні дані від користувача:

- Виробник (рос. Производитель) назва фірми виробника телефону (послідовність будь-яких символів кількістю від 1-го до 23-х).

- Модель (рос. Модель) назва моделі телефону (послідовність будь-яких символів кількістю від 1-го до 23-х).

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

- Колір (рос. Цвет) колір телефону (послідовність будь-яких символів кількістю від 1-го до 23-х).

- Ціна (рос. Цена) ціна телефону в доларах США (раціональне число у вигляді десяткового дробу, яке має бути більше, або дорівнювати нулю).

- Кількість (рос. Количество) кількість телефонів на складі в штуках (ціле число, яке має бути більше, або дорівнювати нулю).

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

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

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

- Перелік всіх записів.

- Перелік записів, що задовольняють умові ціна > 1000 та розмір екрану >= 3.5.

- Перелік записів, що задовольняють умові кількість < 10.

- Перелік записів, знайдених під час пошуку.

- Загальна кількість та вартість телефонів, які знаходяться на складі.

- Відображення найдешевшого та найдорожчого з телефонів.

- Відображення середньої ціни телефонів на складі

Вихідні дані детально описані в додатку Б.

2.1.2 Опис полів записів файлів даних

Опис запису телефону представлений в програмі у вигляді структури Phone (див. рис.2.1.2.1). Структура конструкція більшості мов програмування, що дозволяє утримувати в собі набір змінних різних типів. У мові С++ структури оголошуються за допомогою ключового слова struct.

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

struct Phone

{

char Manuf [STR_SZ];

char Model [STR_SZ];

float Screen;

char Color [STR_SZ];

float Price;

int Count;

};

Рисунок 2.1.2.1 Структура запису "Phone"

Константа STR_SZ визначає загальний розмір рядка в програмі та дорівнює 24-м (символам).

Запис складається з наступних полів:

- Виробник (char Manuf [STR_SZ]) масив символів.

- Модель (char Model [STR_SZ]) масив символів.

- Екран (float Screen) число з плаваючою точкою.

- Колір (char Color [STR_SZ]) масив символів.

- Ціна (float Price) число з плаваючою точкою.

- Кількість (int Count) ціле число.

2.1.3 Контроль вхідних даних на коректність

2.1.3.1 Перевірка рядка

Всі дані, що вводяться в програму, ретельно перевіряються на коректність. Припустимі значення полів:

- Виробник рядок від 1-го до 23-х символів.

- Модель рядок від 1-го до 23-х символів.

- Екран число з плаваючою точкою, більше нуля.

- Колір рядок від 1-го до 23-х символів.

- Ціна число з плаваючою точкою, більше або дорівнює нулю.

- Кількість ціле число, більше або дорівнює нулю.

Якщо одну з вимог не буде дотримано, програма видасть відповідне повідомлення.

Після вводу користувачем строки, відбувається перевірка останнього коду помилки на предмет переповнення буферу вводу. Якщо переповнення відбулося, виводиться повідомлення про перевищення максимально допустимої довжини строки, та запит вводу повторюється знову (див. рис.2.1.3.1.1).

if (errno == ERANGE) {

OUT_COLOR (COLOR_RED,

printf (STR_ERROR_ERANGE_i, STR_SZ-1);

)

}

Рисунок 2.1.3.1.1 Повідомлення про помилку переповнення буферу вводу

Далі перевіряється довжина введеної строки. Якщо не було введено жодного символу, також видається повідомлення про помилку.

2.1.3.2 Перевірка числового значення

Після вводу користувачем числа відбувається перевірка введеного значення на відповідність до коректного цілого числа, або числа з плаваючою крапкою. Тобто, якщо потрібно ввести ціле число, то введене значення не повинно містити букв або спеціальних символів, якщо число з плаваючою точкою то число може містити символ"." (крапка). Далі число перевіряється на відповідність вимогам конкретного поля. У випадку з полем "Екран", число має бути більше нуля, а у випадку з полями "Ціна" або "Кількість", поле має бути більше або дорівнювати нулю (див. рис.2.1.3.2.1).

template <typename T>

bool check_constraint (T number, NUMBER_CONSTRAINT constr)

{

if (constr == CONSTRAINT_NONE)

return true;

bool result = true;

if (constr & CONSTRAINT_NOTZERO)

result = result && (number! = 0);

if (constr & CONSTRAINT_POSITIVE)

result = result && (number >= 0);

return result;

}

Рисунок 2.1.3.2.1 Перевірка числового значення на коректність

2.1.4 Опис програми та складових її частин

Програма складається з 8 модулів: головний модуль (файли phonesd. h, phonesd. cpp), модуль, що містить клас для роботи зі списком записів (List. h, List. cpp), модуль, що відповідає за вивід записів на екран (файли Printer. h, Printer. cpp), модуль, що відповідає за вивід меню (файли Menu. h, Menu. cpp), модуль, в якому містяться допоміжні функції для введення/виведення інформації на екран (файли conutils. h, conutils. cpp), модуль, в якому міститься структура запису (Phone. h), модуль, що містить функції для роботи з файловою системою (файли file_io. h, file_io. cpp), та модуль, що містить строкові ресурси програми на 2-х язиках: англійському та російському (файли resources. h, resources_en. h, resources_ru. h).

Головний модуль. (файли phonesd. h, phonesd. cpp). Містить головну функцію (_tmain), 11 функцій, пов'язаних із завданням, та допоміжні функції, в які виділений код, що найчастіше повторюється.

Основні функції:

- Створення нового файлу (CreateNewFile).

- Відображення всіх записів на екрані (PrintDatabase).

- Додавання запису (AddNewRecord).

- Видалення запису (DeleteRecord).

- Редагування запису (EditRecord).

- Фільтрування записів, перша функція (Filter1).

- Фільтрування записів, друга функція (Filter2).

- Пошук записів (Search).

- Загальна інформація про телефони на складі (TotalInfo).

- Статистика телефонів (Stats).

- Вибір типу сортування (SortType).

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

Функція CreateNewFile (створення нового файлу). Виводить на екран запит на видалення даних та у разі згоди користувача видаляє всі записи з бази даних.

Функція PrintDatabase (відображення всіх записів на екрані). Виводить пронумерований список записів у вигляді таблиці. Якщо всі записи не вміщаються на екрані, вони будуть поділені на сторінки, між якими можна переміщатися вперед і назад за допомогою клавіш зі стрілками.

Функція AddNewRecord (додавання запису). В циклі запитує у користувача дані: виробник, модель, екран, колір, ціну, кількість товару та добавляє запис до бази даних. Потім виводиться запит на продовження додавання, і якщо відповідь позитивна, то цикл повторюється ще раз. Після додавання кожного запису виводиться загальна кількість введених записів. При введенні, дані перевіряються на коректність, і якщо користувач ввів не вірні дані (пусту строку або некоректне ціле або дійсне число), виводиться відповідне повідомлення про помилку, та дані запитуються ще раз. Після введення всіх записів, викликається функція сортування.

Функція DeleteRecord (видалення запису). На початку роботи функції виводиться запит на вибір критерію, за яким будуть видалені записи: за номером, або за допомогою функції пошуку даних. У разі вибору видалення за номером, програма виводить на екран всі записи, а у разі пошуку тільки знайдені записи, що задовольняють умовам пошуку. Далі запрошується номер запису для видалення та перевіряється на коректність (номер має бути більше нуля та менше загальної кількості записів). Якщо номер був введений не вірно, виводиться запит на повторення вводу, та номер запитується ще раз, у випадку позитивної відповіді.

Функція EditRecord (редагування запису). На початку роботи функції всі записи виводяться на екран. Далі запрошує номер запису для редагування, який перевіряється на коректність. Потім виводиться меню редагування запису, яке містить перелік полів запису, пункти "Редактировать все поля" (дозволяє ввести одразу всі поля, а не по одному), "Удалить запись" (видаляє поточний запис), "Назад" (повертається до вибору запису). В залежності від введеного номеру вводиться нове значення для відповідного поля. Введення даних повторюється до тих пір, доки користувач не вибере пункт "В главное меню". В режимі редагування всіх полів, виконуються інструкції у всіх гілках оператору switch, спираючись на його властивість переходити до наступної гілки case без пере-вірки умови, якщо не була виконана команда break у попередній гілці. Це дозволяє зменшити кількість коду та спростити налагодження програми. Дані, що вводяться, як і в функції додавання перевіряються на коректність, і в разі помилки виводиться відповідне повідомлення.

Функція Filter1 (фільтрування записів). Ця функція виводить на екран записи, які задовольняють умові фільтрування (Ціна > 1000 та Екран >= 3.5). Виконується перебір всіх записів у циклі, та перевірка їх на відповідність умові. Якщо запис відповідає умові фільтрування, він виводиться на екран, якщо ні програма переходить до наступного запису.

Функція Filter2 (фільтрування записів). Принцип дії такий самий, як і у функції onFilter1, за виключенням іншої умови фільтрування (Кількість < 10).

Функція Search (пошук записів). Спочатку програма запрошує у користувача введення тексту для пошуку, та переводить всі символи введеного тексту у верхній регістр. Далі виконується алгоритм пошуку, який послідовно перевіряє кожен запис на відповідність введеному тексту. Для цього алгоритм видаляє зайві символи, переводить їх у верхній регістр та перевіряє рядки на відповідність. Підготовка рядків до пошуку дозволяє знаходити дані, навіть якщо користувач ввів їх не ідентичними тим, що знаходяться в базі. Наприклад, в базі даних знаходиться модель телефону "Galaxy Note", а користувач ввів " gALaXy, nOtE." Навіть у цьому випадку програма знайде коректний запис. Алгоритм шукає введені дані у полях "Виробник", "Модель", "Колір.

Функція TotalInfo (загальна інформація про телефони). Ця функція підраховує загальну кількість телефонів на складі та їх вартість за допомогою циклу та математичних операцій та виводить на екран отримані значення.

Функція Stats (статистика телефонів). Аналогічно функції TotalInfo підраховує найдешевший та найдорожчий телефони, середню ціну та кількість телефонів та виводить отримані значення на екран.

Функція SortType (вибір типу сортування). Запрошує у користувача критерій, за яким потрібно сортувати записи, та зберігає його у змінній. Потім сортує записи за вибраним критерієм. Слід зауважити, що немає необхідності самостійно сортувати записи після кожного додавання або редагування. Програма буде сортувати записи автоматично за вибраним критерієм.

Модуль, що відповідає за організацію меню (файли Menu. h, Menu. cpp). Файл Menu. cpp містить клас для роботи з меню (Menu), та структуру що описує пункт меню (MenuEntry). Клас Menu містить функцію Show, яка виводить меню на екран, та запрошує у користувача вибір пункту меню. Структура MenuEntry представляє пункт меню і складається із наступних полів:

- Текст, тип масив з символів (const char *Text).

- Функтор (function<void (void) > OnSelect).

- Колір, тип цілий (int Color).

- Логічна змінна, що визначає активний цей пункт меню, чи ні (bool Enabled).

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

Menu q_menu ("Тестове питання", true /* Режим діалогу */);

MenuEntry entries [] = { // Масив пунктів меню

MenuEntry ("Так"),

MenuEntry ("Ні")

};

q_menu. SetEntries (entries); // Встановити пункти до меню

int id = q_menu. Show (); // Змінна id зберігає вибрану відповідь

Рисунок 2.1.4.1 Використання меню

Функція Show виводить меню на екран. Спочатку виводяться на екран пункти меню. Далі в циклі do. while зчитується символ з потоку введення.

В залежності від натиснутої клавіші, "курсор" меню пересувається на нову позицію (вниз, або вгору). Під пересуванням розуміється вивід символу курсору в нову позицію, та очищення символу в попередній позиції. Також можливе пряме переміщення до конкретного пункту меню натисненням клавіш 1-9 на цифровій клавіатурі. Цикл переривається натисненням клавіші enter або escape. Якщо була натиснута клавіша enter, викликається функція за адресою вказівника, заданого у вибраному пункті меню (який знаходиться під номером, на який вказує курсор). При переміщенні курсору неактивні пункти меню пропускаються і перехід здійснюється до наступного активного пункту меню.

Модуль, що відповідає за збереження та завантаження записів із файлу (файли file_io. h, file_io. cpp).

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

Функція зчитування записів з файлу (Load). Як і в функції збереження програма також відкриває файл, але в режимі зчитування бінарних даних. У випадку помилки виводиться повідомлення, інакше виконується зчитування збереженого типу сортування, а потім записів з файлу по одному з використанням циклу while, доки не зустрінеться символ кінцю файлу (EOF, end of file). Потім файл зачиняється і функція припиняє роботу.

Модуль, що відповідає за зберігання записів (файли List. h, List. cpp). Для зберігання записів використовується клас std:: vector<Phone*>.

Функція сортування записів (Sort). Сортує записи алгоритмом "Пузырьковой сортировки" за виробником або ціною, в залежності від обраного типу сортування. Опис алгоритму: Алгоритм полягає в повторюваних проходах по сортованому масиву. За кожен прохід елементи послідовно порівнюються попарно і, якщо порядок у парі невірний, виконується обмін елементів. Проходи по масиву повторюються до тих пір, поки на черговому проході не виявиться, що обміни більше не потрібні, що означає масив відсортований. При проході алгоритму, елемент, що стоїть не на своєму місці, "спливає" до потрібної позиції як бульбашка у воді, звідси і назва алгоритму.

Файли resources_en. h, resources_ru. h містять строкові ресурси програми на двох мовах: англійській та російській. У файлі resources. h здійснюється підключення потрібного язику в залежності від певної константи компіляції.

Завдяки цьому програма компілюється у двох варіантах: англійському та російському.

Модуль, в якому містяться загальні функції для роботи з введенням/виведенням консолі.

void setOutputColor (COLOR color). Встановлює колір "color" виведення тексту на консоль.

void pause (). Виводить повідомлення "Нажмите любую клавишу для продолжения" та очікує натиснення будь-якої клавіші.

void clear (). Очищує весь текст в консолі.

void clearAt (COORD coords). Очищує екран в заданій точці "coords". Використовується при відображенні меню, для очищення попередніх позицій курсору.

void setCursorAt (COORD coords). Встановлює курсор у позицію "coords".

COORD getCursorPos (); Повертає проточну позицію курсору.

void setCursorState (bool state). Включає або виключає відображення курсору, в залежності від стану змінної "state".

void getStr (const char* _Prompt, char* _Buf). Виводить повідомлення "_Prompt" та зчитує строку символів з потоку введення в буфер "_Buf". Також перевіряє введену строку на коректність (якщо строка пуста, виводить повідомлення та запрошує введення знову).

int getInt (const char* _Prompt). Виводить повідомлення "_Prompt" та зчитує ціле число з потоку вводу та перевіряє його на коректність.

float getFloat (const char* _ Prompt). Виводить повідомлення "_Prompt" та зчитує дійсне число з потоку вводу та перевіряє його на коректність.

void puts_c (const char *_Str, COLOR color). Виводить текст "_Str" заданим кольором "color".

bool question (const char* _Str). Виводить заданий запит "_Str" на екран у вигляді меню, очікує вводу користувача, та повертає результат у вигляді логічної змінної: чи позитивною була відповідь.

bool _strcomp (const char *_Str, const char *_Substr). Видаляє зайві символи, та порівнює рядки "_Str" та "_Substr".

bool check_constraint (T number, NUMBER_CONSTRAINT constr). Перевіряє число "number" на коректність, використовуючи задані обмеження "constr".

2.1.5 Узагальнена схема зв'язку між складовими частинами програми

Схема (див. рис.2.1.5.1) показує зв'язки між основними функціями програми. Допоміжні функції (setOutputColor, pause, clear, тощо) викликаються майже з усіх частин програми. Вони не показані на схемі, оскільки це занадто ускладнить її читання.

Функції setOutputColor, pause, clear, getStr, getInt, getFloat, question, puts_c викликаються майже з усіх основних функцій і призначені для полегшення роботи з введенням-виведенням, так як в них виділений часто повторюваний код. Функції clearAt, setCursorAt, getCursorPos, setCursorState викликаються із функцій для роботи з меню. Функція _strcomp використовується при пошуку даних, функція check_constraint викликається з функцій getInt та getFloat для перевірки коректності вхідних даних.

Рисунок 2.1.5.1 Узагальнена схема зв'язку між функціями

2.2 Експлуатаційна частина

2.2.1 Підготовка програми до виконання

Програма складається з двох виконуваних файлів "phonesd_en. exe" та "phonesd_ru. exe". Файл "phonesd_en. exe" містить текстові ресурси програми на англійській мові, "phonesd_ru. exe" на російській. Для того щоб запустити програму на виконання необхідно двічі клацнути на одному з цих файлів. Файл, що виконується це файл, який містить програму у вигляді, в якому вона може бути (після завантаження в пам'ять і настройки за місцем) виконана комп'ютером. Містить бінарне уявлення машинних інструкцій для певного процесора. Програма зберігає записи у файлі "data. bin", що знаходиться у каталозі з файлом, що виконується. Якщо файлу не існує, він буде автоматично створений після додавання записів.

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

Після запуску програми з'являється головне меню програми (див. рис.2.2.2.1).

Рисунок 2.2.2.1 Головне меню

При першому запуску програми, або коли записи відсутні, у головному меню доступно лише два пункти: "Добавить новую запись" та "Сохранить и выйти" (див. рис.2.2.2.2).

Навігація по меню здійснюється клавішами "вниз" або "вгору". Для підтвердження вибору пункту натисніть клавішу "Enter". Також можна безпосередньо переходити на конкретний пункт меню натисненням клавіш 1-9 на цифровій клавіатурі. Символ "" вказує на вибраний пункт меню.

Рисунок 2.2.2.2 Доступно лише два пункти меню

Пункт меню "Создать новый файл" дозволяє видалити всі записи з бази даних. Після вибору цього пункту з'являється попередження про те, що всі записи будуть видалені (див. рис.2.2.2.3). Для підтвердження виберіть "Да", для скасування "Нет".

Рисунок 2.2.2.3 Попередження про видалення всіх записів

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

Рисунок 2.2.2.4 Перегляд записів

Якщо всі записи не вміщаються на одну сторінку, вони будуть поділені на сторінки. Між сторінками можна переміщуватися вперед і назад, використовуючи клавіші зі стрілками "вправо" та "вліво", або "вниз" та "вгору". Для виходу з перегляду записів натисніть клавішу "Esc" або "Enter".

Наступний пункт меню ("Добавить новую запись") призначений для додавання нового запису до бази даних. Спочатку послідовно виводяться запити на додавання запису (див. рис.2.2.2.5).

Рисунок 2.2.2.5 Додавання запису

Після цього буде виведено кількість доданих записів та запит на продовження вводу. Для продовження треба вибрати "Да". Вимоги до вводу даних: у поля "Производитель", "Модель", "Цвет" можна вводити будь-які символи в кількості від 1-го до 23-х. У поле "Экран" можна вводити десяткові числа, які мають бути більше нуля. У поле "Цена" можна вводити десяткові числа, які мають бути більше, або дорівнювати нулю. У поле "Кол-во" можна вводити цілі числа, які мають бути більше, або дорівнювати нулю. Якщо будь-яка з цих вимог не буде дотримана, програма виведе відповідне повідомлення, та введення треба буде повторите ще раз. Приклади помилок: введений рядок занадто довгий (див. рис.2.2.2.6), введений пустий рядок (див. рис.2.2.2.7), введене некоректне десяткове число (див. рис.2.2.2.8), введене некоректне ціле число (див. рис.2.2.2.9), введене неприпустиме значення (див. рис.2.2.2.10, рис.2.2.2.11).

Рисунок 2.2.2.6 Введений рядок занадто довгий

Рисунок 2.2.2.7 Введений пустий рядок

Рисунок 2.2.2.8 Введене некоректне десяткове число

Рисунок 2.2.2.9 Введене некоректне ціле число

Рисунок 2.2.2.10 Введене неприпустиме значення

Рисунок 2.2.2.11 Введене неприпустиме значення

Наступний пункт меню ("Удалить запись") дозволяє видалити будь-який запис за номером або за допомогою пошуку записів. Спочатку виводиться меню вибору критерію видалення (див. рис.2.2.2.12).

Рисунок 2.2.2.12 Вибір критерію для видалення

Якщо був вибраний режим видалення за номером, виводяться всі записи і запит на введення номеру запису (див. рис.2.2.2.13). У разі введення невірного номеру запису з'являється відповідне повідомлення (див. рис.2.2.2.14). Якщо номер введений коректно, виводиться підтвердження видалення запису (див. рис.2.2.2.15). Якщо був вибраний режим видалення за допомогою пошуку, виконується функція пошуку та підтвердження видалення знайдених записів (див. рис.2.2.2.16), якщо такі є.

Рисунок 2.2.2.13 Видалення за номером

Рисунок 2.2.2.14 Невірний номер запису

Рисунок 2.2.2.15 Підтвердження видалення запису

Рисунок 2.2.2.16 Підтвердження видалення групи записів

Наступний пункт меню ("Редактировать запись") дозволяє відредагувати будь-який запис в базі даних. Спочатку на екран виводиться база даних, та запрошується номер запису для редагування (див. рис.2.2.2.17).

Рисунок 2.2.2.17 Запис номеру запису для редагування

Потім з'являється меню вибору поля для редагування (див. рис.2.2.2.18).

Рисунок 2.2.2.18 Меню редагування запису

Навігація здійснюється так само, як і у головному меню. Можна вибрати окреме поле для редагування, або пункт меню "Редактировать все поля", щоб одразу відредагувати всі поля послідовними запитами. Пункт меню "Удалить эту запись" дозволяє видалити поточний запис (див. рис.2.2.2.19).

Рисунок 2.2.2.19 Видалення запису з меню редагування

Після видалення запису програма повертається до вибору запису. При редагуванні полів вхідні дані також перевіряються на коректність (див.рис 2.2.2.20).

Рисунок 2.2.2.20 Помилка вводу при редагуванні запису

Наступний пункт меню ("Фильтр 1: Цена > 1000 и Экран >= 3.5") виводить на екран тільки ті записи, які задовольняють вказаній умові (див. рис.2.2.2.21).

Рисунок 2.2.2.21 Фільтрування записів 1

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

Наступний пункт меню ("Фильтр 2: Кол-во < 10") так само виводить на екран записи, але з іншою умовою (див. рис.2.2.2.22).

Рисунок 2.2.2.22 Фільтрування записів 2

Наступний пункт меню ("Поиск") дозволяє знайти записи за одним з полів з подальшим редагуванням. Спочатку з'являється запит на введення (див.рис.2.2.2.23) виробника, моделі або кольору. Можна вводити текст в будь-якому регістрі. Зайві символи, такі як крапка, кома або пропуск будуть проігноровані при пошуку. Результат пошуку". gAlaXy,nOte,." показано на рисунку 2.2.2.24.

Рисунок 2.2.2.23 Пошук запису

Пошук запису за кольором показаний на рисунку 2.2.2.25.

Рисунок 2.2.2.24 Результат пошуку

Рисунок 2.2.2.25 Результат пошуку за кольором

Пункт меню "Кол-во и стоимость телефонов" виводить на екран загальну кількість та вартість телефонів (див. рис.2.2.2.26).

Рисунок 2.2.2.26 Кількість та вартість телефонів

Пункт меню "Информация о ценах" виводить на екран наступну інформацію: найдорожчий та найдешевший телефони, середня ціна телефону (див. рис.2.2.2.27).

Рисунок 2.2.2.27 Інформація о цінах

Пункт меню "Тип сортировки" дозволяє вибрати критерій, за яким програма буде сортувати записи, та відразу відсортувати записи (див. рис.2.2.2.28).

Рисунок 2.2.2.28 Вибір типу сортування

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

Останній пункт меню "Сохранить и выйти" записує записи у файл та виходить з програми.

2.2.3 Тестування програми

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

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

Зазвичай, поняття якості обмежується такими поняттями, як коректність, надійність, практичність, безпечність, але може містити більше технічних вимог, які описані в стандарті ISO 9126. Склад і зміст супутньої документації процесу тестування, визначається стандартом IEEE 829-1998 Standard for Software Test Documentation. Існує багато підходів до тестування програмного забезпечення, але ефективне тестування складних продуктів це по суті дослідницький та творчий процес, а не тільки створення і виконання рутинної процедури [27].

У розділі 2.2.2 (Інструкція користувача) знаходяться рисунки станів програми, за якими можна відстежити поведінку програми при взаємодії з користувачем.

2.2.4 Опис критичних ситуацій

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

У програмі передбачена обробка критичних ситуацій та повідомлення користувача про помилку. Критичні ситуації, які можуть виникнуть під час роботи програми: введений рядок занадто довгий (див. рис.2.2.4.1), введений пустий рядок (див. рис.2.2.4.2), введене некоректне десяткове число (див.рис.2.2.4.3), введене некоректне ціле число (див. рис.2.2.4.4), введене неприпустиме значення (див. рис.2.2.4.5, рис.2.2.4.6), введено невірний номер запису (див. рис.2.2.4.7), помилка при завантаженні файлу (див. рис.2.2.7.8).


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.