Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
opi.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.81 Mб
Скачать

Основи програмної інженерії Тема 1. Поняття програмної інженерії. Вступ

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

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

Інженерія програмного забезпечення - порівняно молода наукова дисципліна. Термін software engineering був вперше запропонований в 1968 році на конференції, присвяченій так званій кризі програмного забезпечення. Ця криза був викликаний появою потужної ( за мірками того часу) обчислювальної техніки третього покоління. Нова техніка дозволяла втілити в життя не реалізовуються раніше програмні додатки . В результаті програмне забезпечення досягло розмірів і рівня складності, набагато перевищують аналогічні показники у програмних систем, реалізованих на обчислювальній техніці попередніх поколінь.

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

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

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

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

  2. "Всі аспекти створення програмного забезпечення" . Інженерія програмного забезпечення не розглядає технічні аспекти створення ПЗ - в її віданні такі питання, як управління проектом створення ПЗ та розробка засобів, методів і теорій, необхідних для створення програмних систем .

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

Основні проблеми, що стоять перед фахівцями з програмного забезпечення

У XXI столітті фахівці з програмного забезпечення зіткнуться з описаними нижче проблемами.

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]