< Попередня  Змiст  Наступна >

1.4. ІНСТРУМЕНТИ ПРОГРАМНОЇ ІНЖЕНЕРІЇ


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

 

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

Інструменти і методи програмної інженерії

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

Інструменти роботи з вимогами (Software Requirements Tools):

 

— інструменти керування вимогами (моделювання вимог)

— засоби здобуття, аналізу, специфікації та перевірки вимог;

— інструменти трасування вимог.

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

 

Функціональні можливості інструментів роботи з вимогами можуть варіювати залежно від складності проектів і рівня зрілості процесів. Якщо на другому рівні зрілості за моделлю CMMI Staged визначено «управління вимогами» (Requirement Management), то для 3го встановлюється «розробка вимог» (Requirement Development). Водночас вимоги можуть сприйматися і як елементи конфігурації поряд із запитами на зміни та іншими активами проекту. Таким чином , іноді у програмних засобах, доступних на ринку ПЗ, для роботи з вимогами пропонуються системи конфігураційного керування.

 

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

 

Інструменти проектування (Software Design Tools) охоплюють засоби створення і перевірки програмного дизайну. За відсутності загальноприйнятої класифікації існує розмаїття таких інструментів. Їх можна поділити на окремі категорії за базовими нотаціями моделювання і проектування (SADT/IDEF, UML, BPMN/BPEL, Microsoft DSL тощо) або за цільовими завданнями (бізнесмоделювання, проектування БД, об’ єктноорієнтоване проектування, інтеграційне/SOAпроектування тощо).

 

Інструменти конструювання (Software  Construction  Tools) призначені для виробництва й трансляції програмного подання (зокрема, початкового коду), досить детального і явного для машинного виконання. До цієї категорії відносять:

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

 

вищах розробки (Integratel development environment IDE);

— компілятори і генератори коду. Традиційно компілятори є неінтерактивними (командними) трансляторами початкового коду. Однак існує тенденція інтеграції компіляторів і редакторів в інтегровані середовища програмування. До цього класу також належать препроцесори, лінковники/завантажувачи та генератори коду (за винятком, хіба що, об’єктноорієнтованих засобів проектування, які підтримують зв’язок з початковим кодом і, як тенденція, тісно інтегровані з новим поколінням IDE);

 

— інтерпретатори забезпечують виконання програм через емуляцію. Вони можуть підтримувати дії з конструювання ПЗ, надаючи для виконання програм оточення, більш контрольоване, ніж може надати операційна система. Нині існує тенденція щодо злиття компіляторів та інтерпретаторів, зокрема в так званій компіляції «на льоту», коли проміжний програмний код під час виконання або із випередженням (наприклад, у процесі запуску/завантаження програми) перетворюється на набір інструкцій, виконуваних безпосередньо засобами операційної системи, але під контролем середовища виконання. Такий підхід покладено в основу низки сучасних програмних платформ, наприклад Java і.NET. У цьому контексті можна говорити про об’єднання інтерпретаторів із компіляторами та генераторами коду в клас засобів безпосередньої підготовки (трансляції) початкового коду до виконання;

 

— відладники підтримують процес конструювання ПЗ, функціонально відрізняючись від редакторів і компіляторів.

В окрему категорію можна об’єднати інтегровані засоби розробки, а також програмні бібліотеки (бібліотеки компонентів). Надкатегоріями можна вважати програмні платформи (наприклад, Java, J2EE, Microsoft.NET) і платформи розподілених обчислень (CORBA і WebServices), що містять як інструменти, так і певні моделі конструювання, перетворення та виконання коду.

 

Інструменти тестування (Software Testing Tools):

 

— генератори тестів, що надають допомогу з розроблення сценаріїв тестування;

— засоби виконання тестів, що забезпечують середовище виконання тестових сценаріїв у контрольованому оточенні, яке дає змогу відстежувати поведінку тестованого об’єкта;

— інструменти оцінювання тестів підтримують оцінювання результатів виконання тестів, допомагаючи визначити місце і міру відповідності поведінки об’єкта очікуванням;

— засоби керування тестами надають підтримку всім аспектам процесу тестування програмного забезпечення;

— інструменти аналізу продуктивності використовують для кількісного оцінювання та аналізу продуктивності ПЗ.

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

 

Інструменти супроводу (Software Maintenance Tools):

— інструменти полегшення розуміння програм, зокрема засоби візуалізації;

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

 

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

 

Інструменти конфігураційного керування (Software Configuration Management Tools):

— інструменти відстежування дефектів, розширень і проблем;

— інструменти керування версіями;

— інструменти складання і випуску.

Інструменти керування інженерною діяльністю (Software Engineering Management Tools):

 

— інструменти планування і відстежування проектів, що використовуються для календарного планування робіт, кількісного оцінювання зусиль і вартості проекту;

— інструменти керування ризиками, призначені для ідентифікації, оцінювання та моніторингу ризиків;

— інструменти кількісного оцінювання.

Інструменти підтримки процесів (Software Engineering Process Tools):

— інструменти моделювання, які дають змогу, зокрема, описати модель процесів (див. п. 2.2);

— інструменти керування процесами;

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

 

ALMсистем (Application Lifecycle Management, системи керування життєвим циклом, див. тему 8).

Інструменти забезпечення якості (Software Quality Tools):

— інструменти інспектування, що використовуються для підтримки огляду та аудиту;

— інструменти (статичного) аналізу.

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

Додаткові аспекти інструментального забезпечення (Miscellaneous Tool Issues):

— техніки інтеграції інструментів — платформи, подання, процеси, дані та настанови;

— метаінструменти, які генерують інші інструменти, наприклад компілятор компіляторів;

— оцінювання інструментів. 


< Попередня  Змiст  Наступна >
Iншi роздiли:
1.6. ВИБІР І ВПРОВАДЖЕННЯ CASEСИСТЕМ
1.6.1. Процес оцінювання та вибору CASEсистем
1.6.2. Процес упровадження CASEсистем. Результати впровадження
Тема 2. АВТОМАТИЗОВАНЕ КЕРУВАННЯ ПРОЦЕСАМИ ЖИТТЄВОГО ЦИКЛУ ІНФОРМАЦІЙНИХ СИСТЕМ
2.1. КЕРУВАННЯ ПРОЦЕСАМИ ЯК ОБЄКТ АВТОМАТИЗАЦІЇ
Дисциплiни

Англійська моваБанківська справаБухгалтерський облікЕкономікаМікроекономікаМакроекономікаЕтика та естетикаІнформатикаІсторіяМаркетингМенеджментПолітологіяПравоСтатистикаФілософіяФінанси

Бібліотека підручників та статтей Posibniki