Історія розвитку прикладного програмного забезпечення персонального комп'ютера

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

Кафедра математичних дисциплін та інформатики

РЕФЕРАТ

з дисципліни: ”Вступ до спеціальності”

на тему:

”Історія розвитку прикладного програмного забезпечення персонального комп'ютера

Тернопіль-2008

ЗМІСТ

1. Вступ. Загальні поняття ПО для ПК

2. Пакети прикладних програм (ППП)

2.1 Поняття ППП

2.2 Структура і основні компоненти ППП

2.3 Етапи розвитку ППЗ

3. Висновок

4. Список використаної літератури

1. ВСТУП. ЗАГАЛЬНІ ПОНЯТТЯ ПЗ ДЛЯ ПК

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

Міняючи програми для комп'ютера, можна перетворити його на робоче місце бухгалтера або конструктора, дизайнера або ученого, письменника або агронома. Крім того, тенденція пониження вартості комп'ютерної техніки при одночасному зростанні її продуктивності привела до того, що комп'ютери стають предметом домашнього ужитку, як, наприклад, телевізор або холодильник, що розширює сферу застосування ПК ще більше. Відповідно, потрібне все більш різноманітне програмне забезпечення для вирішення завдань в нових областях застосування ПК. Безперервне підвищення потужності персональних комп'ютерів, периферійних пристроїв, а також розвиток засобів зв'язку дає розробникам програмного забезпечення все більше можливостей для максимально повного задоволення кінцевих запитів споживачів. Це і графічний інтерфейс, що став стандартом, для будь-якого ПО, і упроваджені можливості для відправки документів і даних з допомогою Інтернет безпосередньо з прикладної програми (Microsoft Word 2000, Excel 2000, Access 2000 і ін.), і можливість використання комп'ютера як сховища інформації завдяки появі нового вигляду накопичувачів великої місткості і малим часом доступу до даних, а також багато інших можливостей і сервісних функцій.

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

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

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

2. ПАКЕТИ ПРИКЛАДНИХ ПРОГРАМ ( ППЗ )

2.1 ПОНЯТТЯ ППЗ

Численні програмні засоби для вирішення різних типів обчислювальних завдань можна розділити на 4 групи:

    окремі прикладні програми;

    бібліотеки прикладних програм;

    пакети прикладних програм;

    інтегровані програмні системи.

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

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

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

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

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

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

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

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

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

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

Перейдемо тепер до розгляду пакетів прикладних програм (ППП) як самостійної форми прикладного програмного забезпечення. Для цього перш за все необхідно уточнити саме поняття пакету. В даний час не існує визнаної всіма фахівцями єдиної точки зору з цього питання. Відсутня також єдина термінологія в пакетній проблематиці. Це пояснюється перш за все новизною даного наукового напряму, який склався, в основному за останні 30 років (приблизно з початку 70-х років). Крім того, різні визначення ППП розглядають це поняття з різних точок зору, виділяючи ті або інші функціональні або структурні особливості пакетів. ППП визначається і як сукупність програм для вирішення певного класу завдань, до якої звертаються за допомогою простої символіки (мови) і як сукупність програм, сумісних по структурі даних, способам управління, об'єднуваних спільністю функціонального призначеннями тих, що є засобом рішення класу завдань певним кругом користувачів. При цьому під класом завдань розуміється безліч прикладних проблем, вживаних алгоритмів, що володіють спільністю, і інформаційних масивів, а також визначення пакету як комплексу взаємозв'язаних програм, що володіють спеціальною організацією, яка забезпечує значне підвищення продуктивності праці програмістів і користувачів пакету. В даному випадку не робиться спроби виділити ППП серед інших форм програмного забезпечення ЕОМ.

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

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

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

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

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

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

Перехід від створення бібліотек програм до розробки ППП був викликаний цілим рядом причин. До їх числа перш за все відноситься різке збільшення можливостей ЕОМ. Це привело до значного ускладнення системного забезпечення обчислювальних машин. Відбулися істотні зміни в більшості областей застосування ЕОМ.

2.2 СТРУКТУРА І ОСНОВНІ КОМПОНЕНТИ ППП

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

- вхідні мови;

- наочне забезпечення;

- системне забезпечення.

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

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

Розглянемо функції кожного з компонентів ППП.

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

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

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

Адміністратор, що відповідає за організацію доступу користувачів до пакету, вміст бази даних, захист інформації від несанкціонованого доступу;

Кінцевий користувач, що застосовує пакет для вирішення конкретних прикладних завдань.

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

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

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

1) класом вирішуваних задач і використовуваних для цих цілей методів

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

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

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

    засоби збірки програм з окремих модулів

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

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

Крім розглянутого підходу до оформлення модулів як програмних одиниць використовуються і інші способи.

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

    монітор, що управляє процесом рішення і взаємодією всіх компонентів ППП;

    транслятори з вхідних мов;

    засоби роботи з даними;

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

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

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

2.3 ЕТАПИ РОЗВИТКУ ППЗ

Пакетна проблематика як самостійне науково напрями склалася в основному за останні 15-20 років. Перші ППЗ були простими тематичними підбірками програм для вирішення окремих завдань в тій або іншій прикладній області. Сучасний пакет є складною програмною системою, що включає спеціалізовані системні і мовні засоби. У щодо короткої історії розвитку обчислювальних ППЗ можна виділити 4 основних покоління (класу) пакетів. Кожний з цих: класів характеризується певними особливостями тих, що входять склад ППЗ компонентів - вхідних мов, наочного і системного забезпечення.

Як вхідні мови ППЗ першого покоління використовувалися універсальні мови програмування (Фортран, Алгол-60 і т. п.) або мови управління завданнями відповідних операційних систем Проблемна орієнтація вхідних мов досягалася за рахунок відповідної мнемоніки в іменах змінних, функцій процедур, а також в текстових константах. Складання завдань на такій мові практично не відрізнялося від написання програм на алгоритмічній мові.

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

Як системне забезпечення пакетів першого покоління звичайно використовувалися штатні компоненти програмного забезпечення ЕОМ: компілятори з алгоритмічних мов, редактори текстів, засоби організації бібліотек програм, архівні системи і т. д. Ці пакети не вимагали скільки-небудь розвиненої системної підтримки, і для їх функціонування цілком вистачало вказаних системних засобів загального призначення. В більшості випадків розробниками таких пакетів були прикладні програмісти, які намагалися пристосувати універсальні мови програмування до своїх потреб.

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

Як модулі в пакетах цього класу стали використовуватися не тільки програмні одиниці (тобто закінчені програми на тій або іншій мові програмування), але і такі об'єкти, послідовність операторів мови програмування, сукупність даних, схема рахунку і ін.

Істотні зміни зазнали також принципи організації системного забезпечення ППЗ. У достатньо розвинених пакетах другого покоління вже можна виділити елементи системного забезпечення, характерні для сучасних пакетів: монітор, транслятори з вхідних мов, спеціалізовані банки даних, засобу опису моделі наочної області і планування обчислень і ін.

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

Нарешті, четвертий етап характеризується створенням ППЗ, експлуатованих в діалоговому режимі роботи. Основною перевагою діалогової взаємодії з ЕОМ є можливість активного зворотного зв'язку з користувачем в процесі постановки завдання, її рішення і аналізу отриманих результатів. Поява і інтенсивний розвиток різних форм діалогового спілкування обумовлена перш за все прогресом у області технічних засобів забезпечення діалогу. Сюди відноситься створення різноманітної дисплейної техніки (растрові дисплеї, засоби реалізації графічних, колірних і звукових можливостей, різні технічні пристрої для ведення діалогу і т. д.), а також надійних і швидкісних ліній зв'язку. Розвиток апаратного забезпечення спричинив за собою створення різноманітних програмних засобів підтримки діалогового режиму роботи (діалогові операційні системи, діалогові пакети програм різного призначення і т. д.). У багатьох додатках діалог вже повністю замінив пакетну обробку, а відрядковий режим діалогу поступається місцем по екранному режиму і багато віконному графічному способу спілкування.

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

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

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

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

3. ВИСНОВОК

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

Західні найбільші виробники програмного забезпечення вирішили рухатися 2-а шляхами: з одного боку, вони укупі з правоохоронними органами все частіше привертають продавців піратського ПО до кримінальної відповідальності, а з іншою прагнуть тримати ціни на свої продукти мінімально низькими, розробляючи і запускаючи різного роду партнерські програми. Так, наприклад, в травні 2000г. фірма Microsoft проводила опит керівників підприємств, що використовують від 50 ПК, на предмет реєстрації підприємств в московському офісі Microsoft для того, що б в майбутньому вони могли придбати фірмові продукти із значними знижками. Окрім цього, та ж фірма Microsoft пропонує всім охочим «викачати» її новітній браузер Microsoft Explorer 5.01 з вузла в мережі Інтернет абсолютно безкоштовно.

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

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

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

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

4. СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

    Можаров Р.В., Можарова Н.Р., Евтеев В.В., Кузьменко О.А., Шевченко М.О. Программное обеспечение персональных компьютеров // Учебное пособие для вузов. – М.: Финстатинформ, 1999.

    Хомоненко А.Д. Основы современных компьютерных технологий// Учебное пособие для вузов.– Ст-Петербург: Корона принт, 1998.

    Борисов В.А. Разработка пакетов программ вычислительного типа. - М. : Изд-во МГУ, 1990.

    http://referats.net.ua