Поняття програмного забезпечення

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

Це визначення, дане Харальдом Мілсом, відомим фахівцем в області програмної інженерії з компанії IBM, містить в собі наступне.

1. Логічні розпорядження – це не тільки самі програми, але і різна документація (наприклад, по експлуатації програм) і ширше – певна система відносин між людьми, що використовують ці програми в рамках деякого процесу діяльності.

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

3. Задачи решаемые современным ПО, часто требуют различных вычислительных ресурсов в силу различной специализации этих задач, из-за большого объема выполняемой работы, а также из соображений безопасности. Например, появляется сервер базы данных, сервер приложений и пр. Таким образом, вычислительная среда, в которой ПО функционирует, оказывается многопроцессорной.

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

Властивості. Таким чином, ПО є складною динамічною системою, що включає технічні, психологічні і соціальні аспекти. ПО помітно відрізняється від інших видів систем, що створюються (створених) людиною, – механічних, соціальних, наукових і ін., і має наступні особливості, виділені Фредеріком Бруксом в його знаменитій статті "Срібної кулі немає".

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

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

3. Змінність – ПО легко змінити і, як наслідок, вимоги до нього постійно міняються в процесі розробки. Це створює багато додаткових труднощів при його розробці і еволюції.

4. Нематеріальність 2) – ПО неможливо побачити, воно віртуальне. Тому, наприклад, важко скористатися технологіями, заснованими на попередньому створенні креслень, успішно використовуваними в інших промислових областях (наприклад, в будівництві, машинобудуванні). Там на кресленнях в схемному вигляді відтворюються геометричні форми створюваних об'єктів. Коли об'єкт створений, ці форми можна побачити. А на чому ми грунтуємося, коли зображаємо ПО?


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: