Проектирование технологических процессов обработки данных в пакетном режиме

К задачам, решаемым в пакетном режиме (запускаемым, как правило, в виде фоновых заданий), относятся задачи, характеризующиеся следующими признаками: слабой разветвленностью алгоритма, отсутствием необходимости вмешательства пользователя в ход решения и выбора варианта решения, большими объемами обрабатываемых данных и длительным временем решения и получения результатной информации. К таким задачам относятся, например, задачи статистической обработки данных, планирования производственной программы, расчета заработной платы и др.

Процесс проектирования внутримашинной технологии решения задач в пакетном режиме состоит из выполнения ряда операций, содержание и последовательность которых, а также состав получаемых проектных документов зависят от методов и инструментальных средств проектирования, выбираемых на предпроектной стадии. В условиях использования оригинальной технологии и канонического проектирования к методам и инструментальным средствам проектирования программного обеспечения задач относят методы IРТ-технологии проектирования и процедурно-ориентированные языки программирования.

В первую группу входит совокупность взаимосвязанных методов проектирования, которые были разработаны фирмой IBM:

· метод структурного проектирования;

· метод модульного проектирования;

· метод проектирования сверху-вниз;

· метод структурного программирования;

· метод HIРО-документирования.

Все эти методы хорошо описаны в различных литературных источниках, например в [7]. Кратко остановимся на содержании каждого из них.

Основной задачей структурного проектирования является выделение полного состава функций, для выполнения которых предназначаются разрабатываемые программные средства задачи. Выделяют два главных этапа структурного проектирования:

· этап общего проектирования, после которого проектировщик получает полный состав функциональных блоков и связей между ними;

· этап детального проектирования, задачей которого является определение полного состава программных блоков и связей между ними, показывающего, по какой технологии реализуются выявленные ранее функции.

Структурное проектирование позволяет на раннем этапе проектирования определить необходимые функции, которые должна реализовывать задача в процессе своей эксплуатации и убрать дублирующие.

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

По своему назначению модули делят на управляющие и исполнительные, а по степени общности - на стандартные и оригинальные.

Метод модульного проектирования поддерживается методом проектирования «сверху-вниз». Традиционно применяемое проектирование методом «снизу-вверх» включает выполнение операций по разработке программного обеспечения в следующей последовательности: разработка отдельных компонентов программы, кодирование этих компонентов, отладка и интеграция, т.е. сборка их на последнем шаге, что приводит к вероятности выявления стольких неувязок в программе, сколько было в ней составных частей.

Проектирование методом «сверху-вниз» позволяет свести процесс разработки программы к выполнению двух операций: логическая разработка с одновременным интегрированием и выполнение кодирования с отладкой. При таком подходе вначале разрабатывается логическая структура программы в виде дерева программных модулей с установлением всех типов связей между ними, а затем идут кодирование и отладка модулей. При этом проектирование начинается с модулей, занимающих верхние уровни иерархии, с одновременной проработкой связей их со всеми соподчиненными модулями, для которых разрабатываются временные «заглушки» с целью проведения их отладки.

Структурное программирование основывается на выполнении нескольких ограничений. Первое касается размеров модулей и сегментов, согласно которым небольшой по размеру модуль (до 500 операторов) вначале сегментируется на небольшие разделы (сегменты) размером на один лист (до 60 операторов). Дальнейшая сегментация идет в пределах листа с выполнением расположения сегментов на листе со сдвигом слева направо для улучшения визуальных характеристик программы.

Другим ограничением, применяемым в этом методе, является ограничение на типы используемых операторов и структур. Рекомендуется использование линейной структуры (последовательность взаимосвязанных операторов), иерархической структуры с оператором if и циклических (кольцевых) структур с использованием оператора do while. He рекомендуется применение оператора go to.

Структурное программирование позволяет повысить степень читаемости программной документации и качество сопровождаемости программного продукта.

Для обеспечения качественного документирования разработки программного продукта в этой технологии предлагалось использование нескольких методов, в частности, например, использование стандартного пакета документов HIPO (иерархия - вход - процесс - выход), в который входят три типа документов.

1. Таблица содержания пакета, в которой рисуется иерархическая структура пакета, состоящего из полной совокупности соподчиненных функциональных блоков.

2. Обзорная схема каждой функции, в которой описываются документы, массивы, данные, идущие на вход функции, этапы обработки и перечень документов и массивов, получаемых на выходе функции.

3. Подробная схема функции (описываются вход, процесс и выход каждого программного блока и дается указание внешних и внутренних потоков информации).

Положительной стороной использования пакета HIPO являлась стандартность представления описания программных продуктов и возможность поддерживать хорошую его читаемость на этапе эксплуатации и сопровождения. К отрицательным сторонам можно отнести: трудность внесения изменений в документацию, поскольку документация включает большое количество схем; высокую сложность каждой схемы и большую степень их связанности; высокие требования к квалификации исполнителя.

Схема выполнения работ по проектированию технологичес­кого процесса обработки информации для конкретной задачи, решаемой в пакетном режиме, представлена на рис. 9.1.

Рис. 9.1.Технологическая сеть проектирования процесса обработки информации в пакетном режиме. Здесь приняты следующие обозначения: U1.1 - универсум методов разработки ПО; Д1.1 - материалы обследования (описание задачи); Д 1.2 - комплекс технических средств и операционная система; Д1.3 - принципы организации информационной базы; Д1.4 - ТЗ на разработку; Д 2.1 - постановка задачи; U3.1 - универсум факторов выделения функциональных блоков; U3.2 - универсум критериев выделения функ­циональных блоков; U3.3 - универсум подходов к выделению функциональных блоков; U3.4 - универсум методов выделения функциональных блоков; Д3.1 - функциональная блок-схема задачи; U4.1 - универсум критериев и методов разбиения функциональных блоков; Д 4.1 - схема взаимосвязи программных модулей и информационных файлов (укрупненный алгоритм); U5.1 -универсум алгоритмических языков; Д5.1 - детальные блок-схемы программных модулей; Д5.3 - описание текста программ; Д5.2 - распечатка программы; Д6.1 - отлаженный текст программы; Д7.1 - исходные данные контрольного примера; Д7.2 -отлаженный текст программы; Д7.3 - описание контрольного примера; Д8.1 - документация по ПО; Д9.1 - технологическая документация.

Содержанием первой операции (П1) является анализ описания задачи, полученного в результате выполнения предпроектной стадии, содержания «Технического задания» к ЭИС; состава предварительно выбранных на предпроектной стадии КТС и ОС, выработка требований к задаче и разработка «Технического задания» на проектирование задачи.

На вход данной операции поступают «Описание задачи», полученное на этапе анализа материалов обследования (Д1.1), описание выбранного комплекса технических средств и операционной системы (Д1.2), принципы организации информационной базы (Д1.3), универсум методов разработки программного обеспечения (U1.1).

На выходе операции получают «Техническое задание» на разработку программирования задачи (Д1.4). ТЗ должно отражать: функции управления и операции обработки, выполняемые при решении данной задачи; состав и содержание документов, файлов информационной базы; особенности и параметры решаемой задачи.

На второй операции (П2) осуществляется разработка «Постановки задачи». Исходными данными для операции служит ТЗ на разработку (Д1.4), полученное на предыдущей операции. В результате выполнения этой операции получают документ «Постановка задачи» (Д2.1), включающий, как об этом было сказано выше, описание цели и назначения решения задачи, экономическую и организационную сущность данной задачи, характеристику регулярности и периодичности счета, формализованный алгоритм решения, описание входных и выходных сообщений и документов.

Содержание следующих операций проектирования зависит в значительной степени от выбранных методов и инструмента проектирования. В случае использования методов IPT-технологии и в качестве инструмента - процедурно-ориентированного языка программирования содержанием следующей операции является функциональный анализ задачи (ПЗ). Входными данными для данной операции служат «Постановка задачи» (Д2.1), «ТЗ на разработку» (Д1.4), описание выбранного средства разработки, универсумы методов разработки (U1.1), факторов выделения функциональных блоков (U3.1), критериев (U3.2) и подходов к выделению функциональных блоков (U3.3).

Результатом выполнения этой операции является описание общей структуры программного обеспечения задачи и состава функциональных блоков, реализующих основные функции, для которых предназначается данная задача, т.е. ее функциональная блок-схема (Д3.1).

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

К основным подходам (U3.1), по которым осуществляют разбиение задачи на функциональные блоки, можно отнести следующие:

· достижение минимальных трудовых и стоимостных затрат на стадиях проектирования, внедрения и сопровождения проекта;

· сокращение числа ошибок в тексте за счет повышения степени читаемости текстов программ.

К основным подходам, применяемым при разбиении задач на функциональные блоки (U3.3), относят следующие:

· подход от анализа результатной информации, который применяется, если задача связана с выдачей большого числа сводок;

· подход, основанный на анализе состава входных файлов для задач, связанных с организацией загрузки и корректировки файлов информационной базы;

· подход, базирующийся на анализе сложного алгоритма решения задачи, если в нем можно выделить блоки, реализующие функции управления и обработки;

· Подход от анализа структуры алгоритма, основывающегося на использовании экономико-математических методов и построении математической модели;

· смешанный вариант.

В процессе функционального анализа в качестве критериев разбиения задачи на функциональные блоки (U3.2) выбирают:

· размерность задачи;

· территориальную рассредоточенность задачи;

· распределенность решения задачи во времени;

· количество входных файлов;

· количество файлов-корректур;

· количество функциональных связей и др.

При этом используют следующие методы разбиения (U3.4):

· по функциям технологии управления, автоматизируемым с помощью решаемой задачи;

· по операциям обработки;

· смешанный вариант.

Выполнение четвертой операции (П4) связано с разработкой укрупненного машинного алгоритма решения задач, реализующего внутримашинный технологический процесс обработки данных.

Исходными данными для такой операции являются универ­сум критериев и методов разбиения функциональных блоков на программные блоки (U4.1), ТЗ (Д1.4), общее описание задачи (Д1.1) и функциональная блок-схема задачи (Д3.1). Результатом выполнения операции являются укрупненные блок-схемы алгоритмов решения задачи по каждому функциональному блоку, представляющие собой схемы взаимосвязи программных модулей и информационных файлов (Д4.1).

Следует отметить, что причины и критерии, по которым производится разбиение функциональных блоков на программные модули, остаются те же, что и при выделении функциональных блоков. Блок-схемы алгоритмов функциональных блоков строятся с использованием двух подходов (U4.1):

· классического метода, который характеризуется установлением последовательной связи между программными блоками, реализующими типовые операции обработки экономической информации, что позволяет строить линейную структуру алгоритма, где связь между отдельными программными блоками осуществляется через данные;

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

При использовании первого подхода основной задачей проектировщика является определение состава обрабатываемых файлов с переменной и постоянной информацией, файлов с результатной информацией, состава и последовательности типовых операций обработки данных, к которым относят следующие:

· чтение записей файлов с переменной информацией;

· сортировку введенных файлов по ключевым признакам;

· чтение записей файлов с постоянной информацией, необходимой для выполнения операций обработки;

· выполнение операций обработки над записями с постоянной и переменной первичной информацией и получение файлов с результатной информацией;

· чтение записей файлов со справочной информацией для формирования файлов результатной информации для выдачи ее на печать;

· печать файла результатной информации и получение отчетов или сводных ведомостей.

Особенность второго метода заключается в необходимости построения иерархической структуры взаимосвязи функциональных и входящих в них программных блоков, в которой выделяют управляющие и исполнительные модули. Исполнительные модули, в свою очередь, могут быть подразделены на специальные модули, предназначенные для использования в определенных функциональных блоках, и стандартные модули, которые могут быть использованы при исполнении других функциональных блоков, реализуемых данной задачей. Передача управления между модулями в этом случае может осуществляться через данные и через совокупность параметров.

При выполнении следующей операции (П5) осуществляется «Разработка детальных блок-схем программных модулей и их кодирование» (Д5.1). На входе данной операции разработчик использует блок-схемы укрупненных алгоритмов функциональных блоков (Д4.1), разработанные на предыдущей операции, и универсум алгоритмических языков (U5.1).

К основным критериям выбора алгоритмических языков относят следующие:

· мощность алгоритмического языка, т.е. наличие достаточного количества языковых конструкций, покрывающих все потребности алгоритма решаемой задачи;

· синтаксическую и семантическую ясность языка, что способствует его быстрому освоению;

· объем алгоритма, размерность программы;

· время написания программы;

· время отладки, трансляции, решения задачи;

· объем памяти, занимаемой разработанной программой;

· диагностические возможности языка;

· совместимость с другими языками;

· возможность удаленной обработки информации;

· возможность управления файлами;

· степень готовности языка;

· надежность языка.

Целью выполнения шестой операции (Пб) является осуществление синтаксической и семантической отладки каждого программного модуля (Д6.1), которая осуществляется на основе описания текста (Д5.3) и распечатки (Д5.2) программы, а также блок-схем программных модулей (Д5.1).

На следующей операции (П7) выполняется комплексная отладка программных модулей на контрольном примере. На входе операции используют отлаженные тексты программных модулей (Д6.1) и исходные данные контрольного примера (Д7.1), на выходе получают полностью отлаженное программное обеспечение задачи (Д7.2) и описание контрольного примера (Д7.3).

В процессе отладки проектировщик может использовать несколько методов контроля правильности работы программы, такие, как: метод усеченного алгоритма; выход на контрольные результаты; контроль времени решения задачи и др.

Заключительной операцией при проектировании технологии, обработки данных на компьютере является подготовка программной документации (П8), в состав которой входят: общее описание задачи, описание структуры программного обеспечения и назначения каждой из его составных частей, тексты программ, перечни используемых файлов информации, руководства пользователям, программистам и описание контрольного примера (Д8.1). По схеме взаимосвязи программных модулей и информационных файлов (Д4.1) формируется на соответствующей операции (П9) технологическая документация (Д9.1).

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

Выделяют следующие виды средств частичной автоматизации проектирования типовых операций обработки данных:

· библиотеки макрогенераторов;

· библиотеки стандартных подпрограмм;

· генераторы программ;

· интерпретаторы, ориентированные на предметную область.

Суть метода использования библиотеки макрогенератора заключается в том, что проектировщики, исходя из опыта проектирования, выделяют в теле задач часто повторяющиеся последовательности операторов, реализующие небольшие функции обработки. На эти последовательности разрабатываются макрорасширения, имена которых обрабатываются макрогенератором, поэтому в тело программы включаются макрокоманды с параметрами, что значительно сокращает объем работ по программированию. В случае использования данного средства проектировщик должен вы­полнить следующие работы:

· анализ алгоритма задачи;

· анализ содержания библиотеки макроопределений (библиотека макрогенератора);

· написание на базовом языке исходной программы;

· включение в тело программы макрокоманд с параметрами (макроопределения);

· подготовка программы к вводу;

· ввод программы и ее обработка макрогенератором, который включает макрорасширения из библиотеки;

· трансляция и редактирование программы;

· испытание на контрольном примере, подготовка документации.

Если проектировщик использовал библиотеку стандартных подпрограмм, то в состав операций по проектированию должны входить такие операции, как: декомпозиция задачи на функциональные блоки; выбор типовых процедур и состава стандартных подпрограмм; разработка принципов связи программных модулей, списков передаваемых параметров; разработка алгоритмов оригинальных программных модулей; выбор языка программирования, написание и отладка кодов программ; соединение типовых процедур и оригинальных программных модулей; разработка управляющих модулей; комплексная отладка на контрольном примере с разработкой программной документации.

Дальнейшее развитие методика проектирования внутримашинной технологии обработки данных получила при использовании генераторов программ и программ интерпретирующего типа.