Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2014 Лекції ТСПП (0-8).pdf
Скачиваний:
404
Добавлен:
12.02.2016
Размер:
1.74 Mб
Скачать

Лекція 2. Елементи програмної інженерії.

Лекція 2. Елементи програмної інженерії

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

1.Програмна інженерія, основні поняття

1.1.Інженери і програмні інженери

Кажучи про програмну інженерію, необхідно з'ясувати, хто такі інженери.

За відповіддю звернемося до Великої Радянської Енциклопедії: Інженер (франц. ingenieur, від латів. ingenium - здатність, винахідливість), фахівець з вищою технічною освітою. Спочатку - назва осіб, що управляли військовими машинами.

Поняття цивільний інженер з'явилося в 16 в. у Голландії стосовно будівельників мостів і доріг, потім в Англії і ін. країнах. З ІХХ ст. за кордоном почали розрізняти інженерів-практиків, або професійних інженерів (по суті фахівців, що мали кваліфікацію техніка), і дипломованих інженерів, що здобули вищу технічну освіту (Civil Engineer) .

Отже, інженер - дипломований фахівець, що має вищу технічну освіту. А програмний інженер

– це інженер в області розробки програмного забезпечення.

1.2.Програмна інженерія як інженерна дисципліна

Програмна інженерія (інженерія програмного забезпечення, software engineering) - інженерна дисципліна, пов'язана з теорією, методами і засобами професійної розробки ПЗ.

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

1.3.Область дії програмної інженерії

Програмна інженерія має справу зі всіма аспектами створення ПЗ. У західній літературі часто використовуються терміни: software engineering, system engineering і computer science. У чому різниця?

Computer science має справу з теорією і основами розробки ПЗ.

System engineering пов'язане з питаннями розробки систем за участю комп'ютерів (архітектура, дизайн, інтеграція, ПЗ...).

Software engineering - частина System engineering, що має справу з розробкою ПЗ.

Отже, computer science надає собою безумовно важливий, але переважно теоретичний базис. На практиці його недостатньо. До відкритих можна віднести наступні проблеми:

1.Пошук фінансування.

2.Робота із замовником.

3.Підбір персоналу.

4.Етичні питання. Мікроклімат в колективі. Команда.

5.Забезпечення якості програмного продукту.

6. ...

Всім цим займається програмна інженерія і програмні інженери.

2. Цілі програмних інженерів

Цілями програмних інженерів є: 1. Створити якісний продукт.

14

Лекція 2. Елементи програмної інженерії.

2.Вкластися до бюджету.

3.Вкластися в терміни.

Розберемо по черзі ці питання.

2.1.Поняття “якості” програмного продукту

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

Якість ПЗ - це сукупність його рис і характеристик, які впливають на його здатність задовольняти задані потреби користувачів.

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

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

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

1.функціональність

2.надійність

3.легкість застосування

4.ефективність

5.легкість супроводу

6.мобільність.

• ПП повинен надавати необхідну функціональність.

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

• ПП повинен бути надійним.

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

• ПП повинен бути зручним у використанні.

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

• ПП повинен бути ефективним.

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

• ПП повинен бути зручним в супроводі.

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

• ПП повинен бути мобільним.

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

15

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