Вибір архітектури програмного забезпечення. Структура і формат даних.

Вибір архітектури програмного забезпечення

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

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

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

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

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

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

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

З точки зору кількості користувачів, що працюють з однією копією ПО, розрізняють:

· розраховану на одного користувача архітектуру;

· розраховану (мережеву) на багато користувачів архітектуру.

Крім того, у рамках розрахованої на одного користувача архітектури розрізняють:

· програми. Програма (program, routine) - впорядкована послідовність формалізованих інструкцій для вирішення завдання за допомогою комп'ютера. Це найпростіший вид архітектури, який зазвичай використовується при рішенні невеликих завдань;

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

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

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

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