- •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.2. Вибір архітектури програмного забезпечення
В технології програмування немає чіткого визначення архітектури ПЗ. Деякі з тих, що зустрічаються у літературі.
Архітектурою програмного забезпечення називають сукупність базових концепцій (принципів) його побудови.
Архітектурою програмного засобу – це його побудова, як це видно (чи повинно бути видно) ззовні нього, тобто представлення програмного засобу як системи, яка складається з деякої сукупності взаємодіючих підсистем.
Архітектура програми або комп’ютерної системи – це структура чи структури системи, які включають елементи програми, видимі ззовні властивості цих елементів чи зв’язки між ними.
Архітектура – це структура організації і пов’язана з нею поведінка системи. Архітектура можна рекурсивно розібрати на частини, які взаємодіють засобами інтерфейсів, зв’язки, які об’єднують частини, та умови зборки частин. Частини, які взаємодіють через інтерфейси, включають класи, компоненти і підсистеми.
Архітектура програмного забезпечення системи чи набору систем складається з усіх важливих проектних рішень по поводу структур програми і взаємодії між цими структурами, які складають системи. Проектні рішення забезпечують бажаний набір властивостей, які повинна підтримувати система, щоб бути успішною. Проектні рішення надають концептуальну основу для розробки системи, її підтримки і обслуговування.
Вибір архітектури ПЗ визначається задачами, поставленими перед розробниками, функціональними та експлуатаційними вимогами.
З точки зору кількості користувачів, які працюють з однією копією ПЗ, розрізняють:
однокористувальницьку архітектуру;
багатокористувальницьку (мережеву) архітектуру.
Крім того, в рамках однокористувальницької архітектури розрізняють:
програми. Програма (program, routine) – впорядкована послідовність формалізованих інструкцій для розв’язування задач з допомогою комп’ютера. Це самий простий вид архітектури, який зазвичай використовується при розв’язанні невеликих задач;
пакети програм. Пакети програм представляють собою декілька окремих програм, які розв’язують задачі деякої визначеної предметної області. Наприклад, пакет графічних програм, пакет математичних програм. Пакет програм реалізується як набір окремих програм, кожна з яких сама вводить необхідні дані та виводить результати, тобто програми пакету зв’язані між собою тільки приналежністю до деякої прикладної області;
програмні комплекси. Програмні комплекси представляють собою сукупність програм, які сумісно забезпечують розв’язання невеликого класу складних задач однієї предметної області. При цьому для виконання деякої задачі програмою-диспетчером послідовно викликаються декілька програм із програмного комплексу. Оскільки декілька програм для розв’язання однієї задачі працюють з одними і тими ж початковими даними і проміжковими результатами, бажано зберігати ці дані і результати викликів в оперативній пам’яті або у файлах в межах одного користувацького проекту. Програми комплексу можуть компілюватись як самостійні одиниці чи сумісно. Програма-диспетчер може мати примітивний інтерфейс і просту довідкову систему;
програмні системи. Програмні системи представляють собою організаційну сукупність програм (підсистем), яка дозволяє розв’язувати широкий клас задач з деякої предметної області. Програми, які входять в програмну систему, взаємодіють через загальні дані. Програмні системи мають достатньо розвинутий інтерфейс, що вимагає їх детального проектування і розробки.
Багатокористувацьку архітектуру реалізують системи, побудовані по принципу «клієнт–сервер».