- •3. Аналіз вимог і визначення специфікацій програмного забезпечення
- •3.1. Визначення вимог до програмних продуктів
- •3.1.1. Функціональні вимоги
- •3.1.2. Експлуатаційні вимоги.
- •3.2. Вибір архітектури програмного забезпечення
- •3.3. Структура і формат даних. Статичні, напівстатичні і динамічні структури
- •3.3.1. Класифікація структур даних
- •3.3.2. Прості структури даних
- •3.3.3. Статичні структури даних
- •3.3.4. Напівстатичні структури даних
- •3.3.5. Динамічні структури даних
- •3.4. Модульне програмування
- •3.4.1. Поняття модуля
- •3.4.2. Основні характеристики програмного модуля
- •3.4.3. Модульна структура програмних модулів
- •3.4.4. Методи розробки при модульному програмуванні
- •Ціленаправлена конструктивна реалізація
- •3.5. Аналіз вимог і визначення специфікацій при структурному підході
- •3.5.1. Специфікації процесів
- •3.5.2. Словник термінів
- •3.5.4. Функціональні діаграми
- •3.5.5. Діаграми потоків даних (dfd)
- •3.5.6. Діаграма сутність-зв’язок
- •3.6. Аналіз вимог і визначення специфікацій при об’єктному підході
- •3.6.1. Деякі теоретичні відомості про uml
- •3.6.2. Визначення прецедентів (варіантів використання)
- •3.6.3. Побудова концептуальної моделі предметної області
3.3.3. Статичні структури даних
Статичні структури представляють собою структуровану множину примітивних структур. Наприклад, вектор може бути представлений впорядкованою множиною чисел. Мінливість не властива статичним структурам, тобто розмір пам’яті комп’ютера, яка відводиться для цих даних, сталий і виділяється на етапі компіляції чи виконання програми.
Вектори
З логічної точки зору вектор (одновимірний масив) представляє собою структуру даних з фіксованим числом елементів одного і того ж типу. Кожен елемент вектора має свій унікальний номер (індекс). Звернення до елемента вектора виконується по імені вектора і номеру елемента.
З фізичної точки зору елементи вектора розміщуються в пам’яті у підряд розміщених комірках пам’яті. Під елемент вектора виділяється кількість байт пам’яті, яка визначається базовим типом елемента цього вектора. Тоді розмір пам’яті визначається співвідношенням: , де– кількість елементів (довжина) вектора, а– розмір пам’яті, яка необхідна для збереження одного елементу вектора.
Двовимірні масиви
Двовимірний масив (матриця) – це вектор, кожен елемент якого вектор. Тому те, що справедливо для вектора, справедливо і для матриці (аналогічно для -вимірних масивів).
Множини
Множиною є структура, яка представляє собою набір даних, які не повторюються, одного і того ж типу. Множина може приймати всі значення базового типу. Оскільки базовий тип не повинен перевищувати 256 можливих значень, типом елементу можуть бути byte, char і похідні від них типи.
Множиною в пам’яті (рис. 3.7) зберігається як масив бітів, в якому кожен біт вказує, чи належить елемент об’явленій множині чи ні. Таким чином, максимальне число елементів множини 256, а дані типу множина можуть займати не більше 32 байти.
Розмір пам’яті (в байтах), яка виділяється під множину обчислюється за формулою: , деі– верхня і нижня границі базового типу даної множини, а– цілочисельне ділення.
Записи
Запис – це комбінований тип, значення якого представляють собою нетривіальну структуру даних. Вони складаються з декількох полів різного типу, доступ до яких здійснюється по їх іменам. Записи представляють собою засіб для представлення програмних моделей реальних об’єктів предметної області, так як кожен такий об’єкт володіє декількома властивостями, які можуть описуватись даними різних типів.
Приклад запису – набір даних про співробітника кафедри.
Об’єкт «співробітник» може володіти наступними властивостями:
табельний номер – ціле додатне число;
прізвище, ім’я, по-батькові – рядок символів і т.д.;
стать – символ;
вчена ступінь – рядок символів;
заробітна плата – дійсне число;
ти ін.
В пам’яті ця структура може бути представлена в одному з двох видів:
у вигляді послідовності полів, які займають неперервну область пам’яті (рис. 3.8). Щоб отримати доступ до будь якого елемента запису, потрібно знати адресу початку запису і зміщення відносно початку. При цьому досягається економія пам’яті комп’ютера, але затрачується зайвий час на обчислення адрес полів;
у вигляді зв’язного списку з вказівниками на значення полів запису (рис. 3.9). При такій організації має місце швидкий доступ до елементів, але неекономна трата пам’яті для збереження.