Cтраница 3
Выдача или загрузка информации выполняется прикладной программой, являющейся инициатором других системных действий. Прикладная программа закрепляется в системе созданием блока спецификации программ, в котором перечисляются те данные, к которым программе разрешается доступ. Данные в свою очередь определяются логическими и физическими описаниями баз данных. Описания данных и программ рассматриваются в системе как неотъемлемые элементы программного обеспечения, базовые по отношению к прикладной программе. [31]
Прикладная программа может также связываться с обычными файлами через управление данными операционной системы, получать из них данные для формирования сегментов и переносить последние в базы данных. Начальная загрузка корневых сегментов осуществляется дополнительной функцией LOAD блока спецификации программы; сегменты перемещаются в базу функцией включения ISRT. Загрузка выполняется в восходящей последовательности управляющего ключевого поля корневого сегмента. Особенности загрузки, модификации и выборки сегментов рассматриваются в руководстве по прикладному программированию для ИМС. Там же приводятся сведения об оформлении блоков в обрабатывающей программе: декларация и формирование блоков PSB, аргументов поиска сегментов SSA, которые рекомендуется оформлять стандартным способом. Это облегчает чтение программы разработчиками и помогает системным программистам выявлять ошибки. [32]
Из нее довольно просто получить рабочую версию прикладной программы, удалив макрокоманды измерения времени и других параметров и полностью запрограммировав логику обработки данных. Помимо модели прикладной программы необходимо, конечно, предусмотреть блок спецификации программы, который описывает требования к базе данных со стороны модели. [33]
Радикальную перестройку всей информационной технологии сулит развитие объектно-ориентированной парадигмы, сутью которой является эволюция традиционной программы в модель. Пока этот подход формирует лишь фундамент будущей технологии, делая объектную спецификацию программы все более близкой к структурной модели, но оставляя прежним алгоритмический характер управления процессом выполнения программы. Перспективной является также технология активных программных агентов, направленная на интеграцию объектно-ориентированного подхода с технологией ограничений и аппаратом недоопределенных моделей. [34]
Заметим, что поиск разбиения конечного множества элементов произвольной природы на блоки, удовлетворяющие заданным требованиям, является весьма распространенной оптимизационной задачей. В этом параграфе мы рассмотрели процедуру доопределения, результатом которой является разбиение спецификации программы на блоки, оптимальные в очень сильном смысле - по Гейлу. Сложность поиска оптимального по Гейлу решения задачи доопределения линейно зависит от суммарного числа пересечений множеств промежуточного представления. [35]
Вторая группа тестов должна удостоверить, что программа работает правильно при задании входных данных, принимающих как типичные, так и предельные значения для задачи. В идеальном случае типичные значения входных данных и ожидаемое поведение программы определяются в спецификации программы с тем, чтобы программа была обязательно проверена в условиях основного режима ее функционирования. Важную роль в тестировании может сыграть и хороший комментарий к модулям, так как детальное описание функционирования модуля само по себе определяет перечень тестовых входных данных. [36]
Из схемы, показанной на рис. 12.17, может быть получено несколько различных подсхем. На рис. 12.18 показана одна из них и для нее приведено описание блока спецификации программы. Сегмент СЛУЖАЩИЙ является исходным для сегмента ТРУДОВАЯ-ДЕЯТЕЛЬНОСТЬ. [37]
Шестой реквизит указывает размерность одной физической записи ( блока) в количестве записей файла, ее составляющих. Обычно это количество имеет постоянное значение для всех блоков данного файла, кроме последнего, и определяется либо в спецификации программы заранее, либо устанавливается непосредственно - программистом в процессе отладки задачи. Неудачный выбор этого реквизита приводит к усложнениям программы и снижению качества записи. Значение размерности блока устанавливается в программе в. Реквизит обеспечивает возможность настройки модулей и создания жесткой схемы контроля состояния файла на МЛ. [38]
Языком общения с системой является так называемый язык данных ДЛ / 1 ( DL / 1 - Data Language), представляющий собой набор макрокоманд и псевдооператоров, используемых на различных этапах работы с системой, начиная от описаний баз данных и спецификаций прикладных программ и кончая действиями над данными в прикладной программе. Прикладная программа, закодированная на Ассемблере, ПЛ / 1 или Коболе, может установить связь с базами данных через блоки спецификации программы и получать или размещать данные в базах. Средствами языка ДЛ / 1 можно логически описывать базы данных вне зависимости от физических носителей и устройств и включать новые типы сегментов без изменения прикладных программ. Допускается расширение как объема данных, так и изменение структуры баз. [39]
Наконец, необходимо подчеркнуть, что рассмотренные выше комбинаторные схемы и методы ни в коей мере не претендуют на полноту формализации процесса синтеза архитектуры. Они изначально основываются на экспертных знаниях и предназначены для того, чтобы справиться с объективно существующей неполнотой этих знаний о реализации функций, заданных спецификацией программы, и неизбежно высокой трудоемкостью обоснованного выбора архитектурного решения. [40]
В i [7] приводятся статистические данные исследования ошибок при программировании, допущенных группой программистов ( 30 начинающих и 12 профессиональных) по 69 программам объемом в 00 - 30 операторов каждая, которые программировались на языках АЛГОЛ, БЭЗ ИК, КОБОЛ, ФОРТРАН и PL-I. Под ошибкой понимался каждый пропуск команд и искажение оператора или такие указания программиста, которые приводят к нежелательным потенциальным или фактическим действиям ЭВМ или неприемлемым действиям в рамках интерпретации оро-граммнстом спецификаций программ. [41]
На стадии проектирования это очень ценно, так как позволяет в известной мере прогнозировать требующиеся ресурсы тестирования. Блок-схемы проекта, оценки вероятностей ветвления и количества инструкций могут использоваться для спецификации программ в виде ориентированного графа. Программа далее засевается ошибками и подвергается проверке по случайным входам. Модель может использоваться также для определения меры сложности программы с последующим предсказанием возможностей обнаружения ошибок. Для реализации этой возможности необходимо собрать данные по модели о характеристиках обнаружения ошибок для различных структур, а затем выполнить статистический анализ полученных данных. Полученные данные позволяют измерять сложность различных программ и предсказывать возможное число ошибок. [42]
Подсхему иногда называют частным представлением или LVIEW. Одна подсхема может обслуживать несколько прикладных программ и может быть оппелелена отдельно от ппогозмм. IMS фирмы IBM, где она размещается в блоке PSB - - блоке спецификации программы. Для определения подсхемы используется также термин подмодель. [43]
Вероятно наиболее примечательной особенностью Кобол-программы является ее разбиение на четыре раздела. Такая организация отражает в основном две цели, преследовавшиеся при разработке языка: разделение машинно-зависимых и машинно-независимых элементов программы и отделение описа-ний данных от описаний алгоритмов, что позволяет изменять одно, не воздействуя на другое. Раздел процедур содержит алгоритмы, Раздел данных содержит описания данных и Раздел оборудования содержит машинно-зависимые спецификации программы, такие, как связь между программой и внешними файлами данных. Четвертый раздел, Раздел идентификаций, на чинает каждую программу и служит для задания имени программы и указания ее автора, а также для включения в программу пояснений, необходимых для ее документирования. [44]
Рассмотренные в этой главе комбинаторные схемы и методы позволяют формализовать отдельные этапы выбора целевой архитектуры на основе заданных спецификацией функций программных приложений. При этом применяются классические комбинаторные алгоритмы или их модификации. В случае синтеза описания архитектуры сеть строится для отыскания общей трансверсали Н семейств, что связано с Н вариантами начальной фрагментации спецификации программы. [45]