7. Автоматизовані засоби розробки пз
Абревіатура САSЕ (Computer-Aided Software Engineering - автоматизована розробка ПЗ) позначає спеціальний тип програмного забезпечення, призначеного для підтримки таких процесів створення ПЗ, як розробка вимог, проектування, кодування і тестування програм. Тому до САSЕ-засобів відносяться редактори проектів, словники даних, компілятори, відладчики, засоби побудови систем і т.п.
САSЕ-технології пропонують підтримку процесу створення ПЗ шляхом автоматизації деяких етапів розробки, а також створення і надання інформації, необхідної для розробки.
Приведемо приклади тих процесів, які можна автоматизувати за допомогою САSЕ-засобів.
Розробка графічних моделей системи на етапах створення специфікації і проектування.
Проектування структури ПЗ з використанням словників даних, що зберігають інформацію про об'єкти структури і зв'язкаи між ними.
Генерування користувацьких інтерфейсів на основі графічного опису інтерфейсу, створюваного в діалоговому режимі.
Налагодження програм на основі інформації, одержуваної в ході виконання програми.
Автоматична трансляція програм, написаних на застарілих мовах програмування (наприклад, COBOL), у програми, написані на сучасних мовах.
В даний час відповідні САSЕ-технології існують для більшості процесів, виконуваних у ході розробки ПЗ. Це веде до певного поліпшення якості створюваних програм і підвищенню продуктивності праці розробників програмного забезпечення. Разом з тим ці досягнення значно уступають тем очікуванням, які були присутні при зародженні САSЕ-технологій. Тоді вважалося, що варто тільки впровадити САSЕ-засоби ‒ і можна одержати досить значне підвищення і якості програм, і продуктивності праці. Фактично це підвищення становить приблизно 40%. Хоча і це підвищення досить значне, САSЕ-технології не зробили революції в інженерії програмного забезпечення, як очікувалося.
Розширення застосування САSЕ-технологій обмежують два фактори.
Створення ПЗ, особливо етап проектування, багато в чому є творчим процесом. Існуючі САSЕ-засоби автоматизують рутинні процеси, спроби залучити їх до розв'язку інтелектуальних і творчих завдань проектування особливим успіхом не увінчалися.
У багатьох організаціях-розробниках створення ПЗ ‒ результат роботи команди фахівців із програмного забезпечення. При цьому багато часі витрачається на “порожнє” спілкування між членами команди розробників. У цій ситуації САSЕ-технології не можуть запропонувати нічого такого, що здатне підвищити продуктивність праці розробників.
Класифікація САSЕ-засобів
Класифікація САSЕ-засобів допомагає зрозуміти їхні основні типи і роль, яку вони відіграють у підтримці процесів створення програмного забезпечення. Існує кілька різних класифікацій САSЕ-засобів, і кожна пропонує свій погляд на ці програмні продукти. Розглянемо наступні класифікації.
Класифікація по виконуваних функціях.
Класифікація по типах процесів розробки, які вони підтримують.
Класифікація по категоріях, де САSЕ-засоби класифікуються по ступеню інтеграції програмних модулів, що підтримують різні процеси розробки.
У табл. 1.1 представлена класифікація по виконуваних функціях із прикладами відповідних САSЕ-засобів. Це неповний список типів САSЕ-засобів, зокрема тут не представлені засоби підтримки повторного використання програмних компонентів.
Таблиця 1.1. Класифікація САSЕ-засобів по виконуваних функціях
Тип САSЕ-засоби | Приклади |
Засоби планування | Засоби системи PERT (PERT (Program Evaluation and Review Technique) - відома система планування і керівництва розробками програмних систем), засоби оцінювання, електронні таблиці |
Засоби редагування | Текстові редактори, редактори діаграм, тестові процесори |
Засоби керування змінами | Засоби оперативного контролю над вимогами, системи керування змінами |
Засоби керування конфігурацією (Конфігурацією ПЗ називається сукупність його функціональних характеристик і фізичних показників, зафіксована в системній специфікації.) | Системи керування версіями ПЗ, засоби побудови систем |
Засоби прототипування | Мови програмування найвищого рівня, генератори користувацьких інтерфейсів |
Засоби, орієнтовані на підтримку певних методів | Редактори системних структур, словники даних, генератори програмного коду |
Засоби, орієнтовані на певні мови програмування | Компілятори, інтерпретатори |
Засоби аналізу програм | Генератори перехресних посилань, статичні і динамічні аналізатори програм |
Засоби тестування | Генератори тестових даних, компаратори файлів (Компаратори - спеціальні програми порівняння яких-небудь об'єктів. У цьому випадку маються на увазі програми порівняння файлів, що містять програмний код.) |
Засоби налагодження | Інтерактивні засоби налагодження |
Засоби документування | Програми розмітки сторінок, редактори зображень, генератори звітів |
Засоби модернізації ПЗ | Системи створення перехресних посилань, системи модернізації програм |
У табл. 1.2 представлена інша класифікація САSЕ-засобів. Класифікація по типах показує, які процеси створення ПЗ підтримуються тими або іншими САSЕ-засобами. Засоби планування і оцінювання, редагування текстів, підготовки документації і керування конфігурацією можна використовувати на всіх етапах розробки ПЗ.
Таблиця 1.2. Класифікація САSЕ-засобів по типах підтримуваних ними процесів розробки
Засоби модернізації ПЗ |
|
| • |
|
Засоби тестування |
|
| • | • |
Засоби налагодження |
|
| • | • |
Засоби аналізу програм |
|
| • | • |
Засоби, орієнтовані на певні мови програмування |
| • | • |
|
Засоби, орієнтовані на підтримку певних методів | • | • |
|
|
Засоби прототипування | • |
|
| • |
Засоби керування конфігурацією |
| • | • |
|
Засоби керування змінами | • | • | • | • |
Засоби документування | • | • | • | • |
Засоби редагування | • | • | • | • |
Засоби планування | • | • | • | • |
| Специфіку-вання | Проекту-вання | Реалізація | Атестація |
Інша класифікація САSЕ-засобів будується на основі широти охвату процесів розробки ПЗ, підтримуваних даним засобом. Запропонована класифікація, що містить наступні три категорії (У літературі по САSЕ-технологіям можна зустріти і іншу класифікацію САSЕ-засобів по категоріях: допоміжні програми (tools), інструментальні пакети розробника (toolkits) і автоматизовані робочі місця розробника (workbenches).
Допоміжні програми (tools) підтримують окремі процеси розробки ПЗ, такі як перевірка несуперечності архітектури системи, компіляція програм, порівняння результатів тестів і т.п. Допоміжні програми можуть бути універсальними функціонально-закінченими засобами (наприклад, текстової процесор) або можуть входити до складу інструментальних засобів.
Інструментальні засоби (workbenches) підтримують визначені процеси розробки ПЗ, наприклад створення специфікації, проектування і т.д. Зазвичай інструментальні засоби є набором допоміжних програм, які в більшому або меншому ступені інтегровані.
Робочі середовища розробника (environments) підтримують усі або більшість процесів розробки ПЗ. Робочі середовища зазвичай включають кілька різних інтегрованих інструментальних засобів.
Рис. 1.14. Класифікація САSЕ-засобів по категоріях
На рис. 1.14 схематично представлена класифікація по категоріях із прикладами САSЕ-засобів різних категорій. Зрозуміло, на одній схемі неможливо показати всі типи допоміжних програм і інструментальних засобів, багато хто з них тут не представлені.
Необхідні окремі допоміжні програми вибираються розробником ПЗ зазвичай за своїм розсудом. Інструментальні засоби, як правило, підтримують визначені методи розробки відповідно до деякої моделі процесу створення ПЗ і містять набори правил і нормативних вказівок, якими слід керуватися в процесі розробки. Робочі середовища розробника можна розділити на інтегровані і експертні. Інтегровані робочі середовища надають інфраструктуру підтримки для даних, керування і інтеграції системних представлень. Експертні робочі середовища більш інтелектуальні. Вони включають базу знань про процеси створення ПЗ і механізм, який відповідно до обраної моделі процесу створення ПЗ пропонує розробнику для застосування ті або інші допоміжні програми і інструментальні засоби.
На практиці границі між САSЕ-засобами різних категорій розмиті. Допоміжну програму можна придбати як окремий продукт, але вона може використовуватися для підтримки різних процесів розробки. Наприклад, більшість текстових процесорів у цей час мають у своєму розпорядженні вбудованих редактори діаграм; або інструментальні САSЕ-засоби для проектування все частіше пропонують підтримку процесам програмування і тестування, тим самим наближаючись до робочих середовищ. Тому не завжди можна легко позиціонувати який-небудь САSЕ-продукт по категоріях відповідно до цієї класифікації. Разом з тим класифікація по категоріях корисна для розуміння того, наскільки широкий діапазон процесів розробки, які можуть бути підтримані тем або іншим Сasе-засобом.
Завдання:
Розробіть модель інтерактивної системи перегляду залізничних розкладів для пасажирів і модель процесу тестування програми, що виконується.
Питання:
Поясніть, чому програми, створювані відповідно до еволюційної моделі розробки, важкі для супроводу.
Поясніть, як каскадну модель і еволюційну модель із прототипуванням можна об'єднати зі спіральною моделлю розробки ПЗ.
Поясніть, чому в процесі визначення вимог необхідно розрізняти розробку користувацьких вимог і розробку системних вимог.
Назвіть п'ять основних компонентів будь-яких методів проектування. Які методи проектування ви знаєте? Опишіть їхні компоненти. Оціните повноту цих методів.
Опишіть САSЕ-засоби, які можна використовувати у вашому робочому середовищі розробника, і класифікуйте їх по декільком параметрам (виконувана функція, підтримуваний процес, кількість підтримуваних процесів).
- Технологія проектування програмних систем
- 1.Опис навчальної дисципліни
- 2. Тематика і зміст лекцій
- 3. Практичні заняття по дисципліні "Технологія проектування програмних систем"
- 4. Шкала оцінювання
- 5. Оцінка успішності в балах при повному виконанні умов і графіку навчального процесу
- Лабораторна робота № 1
- 2. Ітераційні моделі розробки пз
- 3. Специфікація програмного забезпечення
- 4. Проектування і реалізація пз
- 6. Еволюція програмних систем
- 7. Автоматизовані засоби розробки пз
- Лабораторна робота № 2
- 2. Користувацькі вимоги
- 3. Системні вимоги
- 4. Документування системних вимог
- 4. Додатки
- 5. Покажчики
- Лабораторна робота № 3
- 1. Прототипування в процесі розробки пз
- 2. Технології швидкого прототипування
- 3. Прототипування користувацьких інтерфейсів
- Лабораторна робота № 4
- 1. Формальні специфікації в процесі розробки пз
- 2. Специфицирование інтерфейсів
- 3. Специфікація поведінки систем
- Лабораторна робота № 5
- 1. Проектування систем
- 2. Керуючі програми
- 3. Системи спостереження і керування
- 4. Системи збору даних