- •1. Етапи проектування програм
- •4) Побудова моделі.
- •2. Основні особливості і проблеми сучасних програмних проектів
- •3. Сучасні тенденції в програмній інженерії
- •4. Проблеми проектування складних програмних систем
- •5. Основні проблеми при проектуванні програмних засобів
- •6. Етапи проектування складних програмних засобів
- •Технічне проектування:
- •8. Проектування програм
- •9. Вимоги до сучасного програмного комплексу для побудови інтегрованої системи безпеки середнього або крупного підприємства Масштабованість
- •Універсальність
- •Розширюваність
- •Переносимість
- •Відвертість
3. Сучасні тенденції в програмній інженерії
На початку 2001 року століття ряд провідних фахівців в області програмної інженерії (Алістер Коберн, Мартін Фаулер, Джим Хайсміт, Кент Бек та інші) сформували групу під назвою Agile Alliance. Слово agile (швидкий, спритний, стрімкий) відображало в цілому їх підхід до розробки ПЗ, заснований на багатому досвіді участі в різноманітних проектах протягом багатьох років.
Цей підхід під назвою "Швидка розробка ПЗ" (Agile software development) базується на чотирьох ідеях, сформульованих ними в документі "Маніфест швидкої розробки ПЗ" (Agile Alliance's Manifesto) і що полягають в наступному:
індивідууми і взаємодії між ними цінуються вище за процеси і інструменти;
працююче ПЗ цінується вище за всеосяжну документацію;
співпраця із замовниками цінується вище за формальні договори;
реагування на зміни цінується вище за строге проходження плану.
При такому підході технологія займає в процесі створення ПЗ цілком певне місце. Вона підвищує ефективність діяльності розробників за наявності будь-яких з наступних чотирьох умов:
коли вона дозволяє людям легше виразити свої думки;
коли вона виконує завдання, нездійсненні уручну;
коли вона автоматизує утомливі і схильні до помилок дії.;
коли вона полегшує спілкування між людьми;
Технологія не повинна діяти проти характеру культурних цінностей і пізнавальної здатності людини.
При цьому слід чітко розуміти: при всіх перевагах швидкої розробки ПЗ цей підхід не є універсальним і застосовний тільки в проектах певного класу. Для характеристики таких проектів Алістер Коберн ввів два параметри - критичність і масштаб.
Критичність визначається наслідками, дефектами, що викликаються, в ПЗ, її рівень може мати одне з чотирьох значень:
C - дефекти викликають втрату зручності;
D - дефекти викликають втрату возместимых засобів (матеріальних або фінансових);
E - дефекти викликають втрату невозместимых засобів;
L - дефекти створюють загрозу людському життю.
Масштаб визначається кількістю розробників, що беруть участь в проекті:
від 1 до 6 чоловік - малий масштаб;
від 6 до 20 чоловік - середній масштаб;
понад 20 чоловік - великий масштаб.
За оцінкою Коберна, швидка розробка ПЗ застосовна тільки в проектах малого і середнього масштабу з низькою критичністю (C або D).
Загальні принципи оцінки технологій в таких проектах полягають в наступному:
інтерактивне спілкування лицем до лиця - це найдешевший і швидший спосіб обміну інформацією;
надмірна "тяжкість" технології коштує дорого;
численніші команди вимагають "важчих" і формальніших технологій;
велика формальність підходить для проектів з більшою критичністю;
зростання зворотного зв'язку і комунікації скорочує потреба в проміжних і кінцевих продуктах;
дисципліна, уміння і розуміння протистоять процесу, формальності і документуванню;
втрата ефективності в некритичних видах діяльності цілком допустима.
Одним з найбільш відомих прикладів практичної реалізації підходу швидкої розробки ПЗ є "Екстремальне програмування" (Extreme Programming - XP). Цей метод призначений для невеликих компактних команд, націлених на отримання якомога вищої якості і продуктивності, і досягає цього за допомогою насиченої, неформальної комунікації, додання на персональному рівні особливого значення умінню і навикам, дисципліні і розумінню, зводячи до мінімуму всі проміжні робочі продукти.
