logo
ТППС / Магистры / ТППС-лаб

2. Технології швидкого прототипування

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

  1. Розробка із застосуванням динамічних мов високого рівня.

  2. Використання мов програмування баз даних.

  3. Складання додатків з повторним використанням компонентів.

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

У цей час розробка прототипів зазвичай опирається на набір інструментів, що підтримують принаймні два із цих методів. Наприклад, система Smalltalk VisualWorks підтримує мову дуже високого рівня і забезпечує повторне використання компонентів. Пакет Lotus Notes включає підтримку програмування баз даних за допомогою мови високого рівня і повторне використання компонентів, які можуть забезпечити операції над базою даних.

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

Застосування динамічних мов високого рівня

Динамічні мови високого рівня ‒ це мови програмування, які мають потужні засоби контролю даних під час виконання програми. Вони спрощують розробку програм, тому що зменшують число проблем, пов'язаних з розподілом пам'яті і керуванням нею. Такі мови мають засоби, які зазвичай повинні бути побудовані з більш примітивних конструкцій у мовах, подібних Ada або С. Приклади мов дуже високого рівня - Lisp (заснований на структурах списків), Prolog (заснований на алгебрі логіки) і Smalltalk (заснований на об'єктах).

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

Таким чином, для багатьох ділових додатків ці мови можуть замінити такі традиційні мови програмування, як С, COBOL і Ada. Мова Java, безсумнівно, є основною мовою розробки, що має коріння в мові C++, але із включенням багатьох засобів мови Smalltalk на зразок платформної незалежності і автоматичного керування пам'яттю. Мова Java поєднує в собі багато переваг мов високого рівня, сполучаючи це з точністю і можливістю оптимізації виконання, зазвичай пропонованої мовами третього покоління. У мові Java багато компонентів, доступних для повторного використання, усе це робить його підходящим для еволюційного прототипування.

У табл. 5.1 представлені динамічні мови, які найбільше використовуються при розробці прототипів. При виборі мови для написання прототипу необхідно відповісти на низку питань.

  1. Який тип розроблювального додатка? Як показано в табл. 5.1, для кожного типу додатка можна застосувати кілька різних мов. Якщо необхідний прототип додатка, який обробляє даних природньою мовою, то мови Lisp або Prolog більш підходять, чим Java або Smalltalk.

  2. Який тип взаємодії з користувачем?Різні мови забезпечують різні типи взаємодії з користувачем. Деякі мови, такі як Smalltalk і Java, добре інтегруються з Web-броузерами, у той час як мова Prolog найкраще підходить для розробки текстових інтерфейсів.

  3. Яке робоче середовище забезпечує мова?Розвинене робоче середовище підтримки мови зі своїми інструментальними засобами і легким доступом до повторно використовуваних компонентів спрощує процес розробки прототипу.

Таблиця 5.1. Мови високого рівня, використовувані при прототипуванні

Мова

Тип мови

Тип додатка

Smalltalk

Об'єктно-орієнтований

Інтерактивні системи

Java

Об'єктно-орієнтований

Інтерактивні системи

Prolog

Логічний

Системи обробки символьної інформації

Lisp

Заснований на списках інформації

Системи обробки символьної

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

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

Програмування баз даних

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

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

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

Зазвичай робоче середовище мов четвертого покоління включає наступні інструментальні засоби (рис. 5.6).

  1. У якості мови програмування баз даних (точніше, мови запитів до бази даних) зазвичай використовується SQL.

  2. Генератор інтерфейсів використовується для створення форм введення і відображення даних.

  3. Електронна таблиця застосовується для аналізу даних і виконання різних дій над числовою інформацією.

  4. Генератор звітів призначений для створення звітів на основі інформації, яка міститься в базі даних.

Рис. 5.6. Компоненти мови четвертого покоління

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

  1. Інтерактивне визначення форм, коли розробник визначає поля введення і їх організацію.

  2. Зв'язування форм,коли розробник задає певні дані, введення яких викликає відображення подальших форм:

  3. Перевірки вхідних даних,коли розробник при формуванні полів форм визначає дозволений діапазон вхідних величин.

У цей час більшістю мов четвертого покоління підтримується розробка інтерфейсів баз даних, заснованих на Web-броузерах. Вони роблять базу даних доступною за допомогою Internet. Це знижує вартість навчання і програмного забезпечення і дозволяє зовнішнім користувачам мати доступ до бази даних. Однак обмеження протоколів Internet і повільний перегляд Web-сторінок роблять цей метод не підходящим для систем, у яких потрібна швидка взаємодія з користувачем.

Методи, засновані на мовах четвертого покоління, можуть використовуватися для еволюційного прототипування або для генерування “одноразового” прототипу системи. Структура, яку САSЕ-засоби накладають на розроблювальний додаток і супутню документацію, визначає більш зручний супровід прототипів, чим пропонують прототипи, розроблені вручну. САSЕ-засоби можуть генерувати код SQL або код мовою нижчого рівня, наприклад COBOL.

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

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

Складання додатків з повторним використанням компонентів

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

Рис. 5.7. Складання повторно використовуваних компонентів

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

Розробку прототипу з повторним використанням компонентів можна реалізувати на двох рівнях.

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

  2. Рівень компонентів, коли окремі компоненти поєднуються усередині структури, що реалізує систему. Така структура може бути створена за допомогою одною з мов опису сценаріїв, таких, як Visual Basic, TCL/TK, Python або Perl. У якості альтернативи можуть застосовуватися такі системи, як CORBA, DCOM або javaВeans.

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

Для розуміння цього методу розробки прототипу корисний складений документ, який являє собою схему обробки даних прототипом і який можна розглядати як контейнер для декількох різних об'єктів. Ці об'єкти містять різні типи даних (такі, як таблиця, діаграма, форма), які можуть оброблятися різними додатками.

На рис. 5.8 представлений складений документ для прототипу системи, що включає текстові елементи, елементи електронної таблиці і звукові файли. Текстові елементи обробляються текстовим процесором, таблиці ‒ електронною таблицею, а звукові файли ‒ аудіопрогравачем. Коли користувач системи звертається до об'єкта певного типу, викликається пов'язаний з ним додаток.

Рис. 5.8. Зв'язування додатків за допомогою складеного документа

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

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

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

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

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

Рис. 5.9. Візуальне програмування з повторним використанням компонентів

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

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