И. Соммервилл - Инженерия программного обеспечения (1133538), страница 46
Текст из файла (страница 46)
Проз"отнпнрованне программных систем 179 2. Какао тип озоииооейсэмил с иооыооимемнУ Различные языки обеспечивают разные типы взаимодействия с пользователем. Некоторые языки, такие как Бспа!!сайс и )ага, хорошо интегрируются с гсСеЬ-броузерами, в то время как язык Ргосаи лучше всего подкодитдля разработки текстовых интерфейсов. 3. Какую уисбочую среду обгспочиооеж ломку Развитая рабочая среда поддержки языка со своими инструментальными средствами и легким доступом к повторно используе. мым компонентам упрощает процесс разработки прототипа. Таблица 8.1. Языки высокого уровня, используемые прн прототипировании Язык Тип языка Тип приложения Объектно-ориентированный Объектно-ориентированный БшаНсайс Интерактивные системы Интерактивные системы Системы обработки символьной информации Системы обработки символьной информации )ага Рго!ая Ьсзр Логссческий Основанный на списках Динамические языки высокого уровня для создания прототипа можно использовать совлсестно, когда различные части прототипа программируются на разных языках.
В работе [Вбб) описывается разработка прототипа телефонной сетевой системы. где были использованы четыре различных языка: Рго!ай для макетирования баз данных, Асс[с [5) для составления счетов, СБР [1бЯ) для спецификации протоколов и РА)БЬеу [951] для имитирования работы системы. Не существует идеального языка для прототипирования больших систем, поскольку обычно различные части системы раэнотипны.
Преимущество многоязычного подхода в том, чта для созданил каждого компонента можно подобрать наиболее подходящий язык и таким образом ускорить разработку прототипа Недостаток такого подхода в там, что трудно разработать коммуникационные свлэи для компонентов, написанных на разнородных языках, 8.2.2. Программирование баз данных Эволюционная разработка в настоящее время является стандартной методикой длл создания бизнес-приложений малого и среднего размера. Большинство бизнес- приложений включают в себя систему управления базой данных и обработку данных, находящихся в ней. Для поддержки разработки таких приложений все коммерческие системы управления базами данных имеют внутренние средства программирования.
Программирование баэ данных выполняется на основе специализированных языков, которые имеют встроенную базу знаний и средства, необходимыс для работы с базами данных. Рабочаи среда поддержки языка обеспечивает инструментальные средства для создания пользовательских интерфейсов, числовых вычислений и отчетов. Термин язык чеомороюго иокооеиил применяетсл как к самому языку программирования баз данных, так и к его рабочей среде. Языки четвертого поколения успешно применяются на практике, поскольку большннстао современных приложений в той или иной мере занимаются обработкой информации, заключенной в базах данных. Основные операции, выполняемые такими приложе. ннямн, — это модификация базы данных и создание отчетов на основе иссс)юрмации, извлеченной из базы данных.
Обычно для ввода и вывода данных используются стандартные формы. Языки четвертого поколения имеют средства для создания интерактивных приложений. позволяющие пользователям вносить изменения в базу данных. Пользовательский интерфейс обычно состоит из набора стандартных форм илн электронной таблицы. 180 г4асть Б. Требования Обычно рабочая среда языков четвертого поколения включает следующие инструментальные средства (рис. 8.6). 1.
В качестве языка программирования баз данных (точнее, языка запросов к базе данных) обычно используется БЩ. [871. 2. Генератор интерфейсов используется для создания форм ввода и отображения данных. 3. Электронная таблица применяется для анализа данных и выполнения различных действий над числовой информацией. 4. Генератор отчетов предназначен для создания отчетов на основе информации, содержащейся в базе данных.
Рис 8.б. Каитиенты ягъиса чэтвгртлого поколения Болынинство бизнес-приложений предполагают структурированные формы для ввода и вывода данных, поэтому языки четвертого поколения обеспечивают мощные средства для определения экранных форм и создания отчетов. Экранные формы часто определяются как ряд взаимосвязанных форм (в одном приложении, которое мы исследовали, было 137 различных форм), поэтому система, генерирующая экраны, должна обеспечивать следующее. 1. Интгйакмивное оиредсгэнис фаум, когда разработчик определяет поля ввода и их ор.
ганизацию. 2. Сэягмэаниг ффм, когда разработчик задает определенные данные, ввод которых вы- зывает отображение дальнейших форм.' 3. Проаеркл входных данных, когда разработчик при формировании полей форм опре. делает дозволенный диапазон входных величин. В настоящее время большинством языков четвертого поколения поддерживается раз. работка интерфейсов баз данных, основанных на ъгеЬброузерах. Они делают базу данных доступной с помощью 1пгегпеь Это снижает стоимость обучения и программного обеспечения и позволяет внешним пользователям иметь доступ к базе данных. Однако ограничения протоколов 1щегпег и медленный просмотр МеЬстраниц делают этот метод не под.
ходящим для систем, в которых требуется быстрое взаимодействие с пользователем. Методы, основанные на языках четвертого поколения, могут использоваться для эволюционного прототипирования или для генерирования "одноразового" прототипа систе. мы. Структура, которую САБЕ средства накладывают на разрабатываемое приложение н сопутствующую документацию, определяет более удобное сопровождение прототипов, 6. Прототипирование программных систем 181 чем предлагают прототипы, разработанные вручную. САЯЕ-средства потуг генерировать код Я~Е или код на языке низшего уровня, например СОВО1 В статье ~116] в кратком обзоре языков четвертого поколения описан ряд инструментальных средств этого типа. Хотя языки четвертого поколения подходят для разработки прототипов, все жс опн имеют ряд недостатков, проявляющихся при разработке систем.
Программы, написанные иа языках четвертого поколения, как правило, выполняются медленнее подобных программ, написанных на обычных языках программирования, и требуют намного больше памяти. Например, я участвовал в эксперименте, в котором перезапись на язык С++ программы, написанной на языке четвертого поколения, привела к 50%-му сокращению необходимой памяти. Программа на С также выполнялась в 10 рзз быстрее, чем аналогичная программа, написанная с использованием языка четвертого поколения. Несмотря на то что применение языков четвертого поколения снижает стоимость разработки систем, общая сумма затрат за полный жизненный цикл таких систем пока нс ясна.
Их программы обычно плохо структурированы и трудны в сопровождении. Специ. фические проблемы могут возникать при модификации подобных систем. В настоящее время языки четвертого поколения нс стандартизироваиы и пе унифицированы, поэтому при модификации систем, скорее всего, придется переписать программы, поскольку язык, на котором опи написаны, устареет. 8.2.3. Сборка приложений с повторным использованием компонентов Время, необходимое для разработки системы, можно умсныпить, если многие части такой системы будут использованы неоднократно. Для быстрого построения прототипа необходимо иметь набор компонентов, пригодных для повторного использования, н механизм сборки системы из этих компонсгггов. Зтот подход показан на рис.
8.7. Рис 8.7. сварка яааэмрна исяааыуемых каняаяелжог Прототипирование с повторна используемыми компопеитамн применяется прп разработке требований, конечно, если есть подходящие компоненты. Если подходшцих компонентов нет, то для реализации некоторых требований будет необходим компромиссный подход. Функциональные возможности доступных компонентов могут не точно соответствовать пользовательским требованиям.
Но, с другой стороны, этн требования обычно достаточно гибкие, поэтому во многих случаях возможно создание прототипа. Разработку прототипа с повторным использованием компонентов можно реализовать па двух уровнях. 1. Уровень приложения, когда целые прикладные системы интегрируются с прототипом так, чтобы были объединены их функциональные возможности. 11апримср. сслп прототипу требуются средства обработки текста, то это можно обеспечить путем ин.
тсграции в прототип стандартной системой текстового процсссора. Отметим, что приложения Мкгозойг ОБсе поддерживают интеграцию со сторонними системами. 182 класть 11. Требования 2. Уровень компонентов, когда отдельные компоненты объединяются внутри струк. туры, реализующей систему. Такая структура может быть создана с помощью одного из языков описания сценариев, таких, как Ч!виа! Ваяс, ТСЕ/ТК [267), Руг)гоп [225) или Рог! [887).
В качестве альтернативы могут применяться такие системы, как СОЕВА, РСОМ или )атайеапв [$11, 264, 280, 27*]. Повторно используемые приложения дают доступ ко всем своим функциональным возмояаюстям. Если, кроме того, приложение обеспечивает создание сценариев или средства автоматизации (например, макросы Ехсе!), они также могут использоваться для расширения функциональных возможностей прототипа. Для понимания этого метода разработки прототипа полезен составной документ, ко. торый представляет собой схему обработки данных прототипом и который можно рассматривать как контейнер для нескольких различных объектов.
Эти объекты содержат разные типы данных (такие, как таблица, диаграмма, форма), которые могут обрабаты. виться различными приложениями. На рис.8.8 представлен составной документ для прототипа системы, включающего текстовые элементы, элементы электронной таблицы и звуковые файлы. Текстовые элементы обрабатываютсл текстовым процессором, таблицы — электронной таблицей, а зву. ковыс файлы — аудиопроигрывателем. Когда пользователь системы обращается к объекту определенного типа, вызывается связанное с ним приложение.
Рис 8.8. Сгиывпнив ирилолгвний иог)гвдпнваи сопипвного до. кумгюнп Рассмотрим прототип системы, поддерживающей управление разработкой требоыний (см. главу 6). Для этой системы необходимы средства фиксации требований, их хранения, созданил отчетов, поиска зависимостей между требованиями и управления этими зависимостями с помощью матриц оперативного контроля. В прототипе должна быть база данных (для хранения требований), текстовый процессор (для ввода требований и созда. ния отчетов), электронная таблица (для управления иатрицами контроля) и специально написанная программа для поиска зависимостей между требованиями. Основное преимущество описываемого подхода к прототипированию состоит в том, что многие функциональные средства прототипа можно реализовать быстро и дешево.
Если пользователи. тестирующие прототип, знакомы с приложениями. интегрированны. ии в прототип, ии нет необходимости учиться использовать поные средства прототипа. Проблемы прн работе с прототипом могут возникнуть только при перекнючении с одного 8. Прототипирование програыыпьпс систем 183 приложения на другое. Но это в значительной степени зависит от используемой операционной системы.