Технологические проблемы проектирования систем управляющих алгоритмов.

В целом структурные и технологические проблемы проектирования систем управляющих алгоритмов можно объединить в единую проблему разработки методов и автоматизированных систем для проектирования сложных комплексов программ. К таким системам проектирования также необходим системный комплексный подход с учетом основных особенностей критериев эффективности, характерных для создания сложных систем. Автоматизированные системы проектирования программ могут превосходить по сложности, создаваемые с их помощью комплексы управляющих программ. Однако возможность широкого применения систем проектирования для различных управляющих алгоритмов делает рентабельной разработку автоматизированных систем проектирования программ.
Влияние основных компонент общего математического обеспечения на функциональные алгоритмы. Принятые в системе общего математического обеспечения методы решения задач накладывают ряд ограничений на способы структурного построения основных функциональных алгоритмов управляющей машины. Эти ограничения формализуются в виде требований к структуре и тексту функциональных подпрограмм и могут рассматриваться в качестве одной из внепрограммных компонент общего математического обеспечения. По характеру использования можно различать:
обязательные требования, невыполнение которых влечет за собой неправильное функционирование отдельных компонент системы управляющих алгоритмов; 
рекомендации, составленные на основании опыта применения средств общего математического обеспечения в аналогичных системах или в предыдущих разработках и направленные на повышение эффективности труда и использования ресурсов ЦВМ.
Требования систем автоматизации программирования и отладки к компонентам специального математического обеспечения включают в себя:
правила обозначения подпрограмм, зон оперативной памяти, констант и табличных функций, а также глобальных и локальных переменных, вытекающие из особенностей входных языков и трансляторов данной системы автоматизации;
правила распределения программной и числовой информации в памяти управляющей ЦВМ, ограничения и рекомендации по организации зон памяти и массивов обрабатываемой информации, по упаковке мало разрядных переменных и т. п.;
ограничения на величину единовременно транслируемых подпрограмм и на объемы массивов информации, обрабатываемых каждой подпрограммой;
правила описания условных и безусловных переходов, правила управляющего и информационного взаимодействия между отдельными подпрограммами и функциональными алгоритмами;
правила использования в программе специальных меток, позволяющих следить за ходом выполнения программы в процессе ее комплексной отладки в реальном масштабе времени;
рекомендуемые для данного класса задач стандартные приемы и правила программирования и отладки, ускоряющие процесс разработки подпрограмм и упрощающие чтение технической документации.
В качестве требований операционной системы и системы контроля к функциональным алгоритмам и подпрограммам можно указать следующие:
правила распределения функциональных и управляющих подпрограмм по уровням прерывания и приоритетам, программирования обращений к управляющим подпрограммам операционной системы и объединения взаимодействующих подпрограмм в крупные функциональные алгоритмы, с местной диспетчеризацией включения подпрограмм;
правила использования рабочих зон памяти и регистров ЦВМ при программировании на входных языках низкого уровня, обеспечивающие взаимную развязку подпрограмм в мультипрограммном режиме;
требования к структуре отдельных подпрограмм и правила их программирования, обеспечивающие возможность повторения отдельных участков программы с целью локализации и устранения последствий искажения результатов;
требования к размещению программной и числовой информации в запоминающих устройствах ЦВМ, предназначенные для повышения устойчивости системы к ошибкам в программах, к сбоям и отказам аппаратуры.
Характер перечисленных требований и рекомендаций свидетельствует о необходимости комплексного системного подхода к вопросам проектирования управляющих алгоритмов и средств общего математического обеспечения, которые играют роль связующего звена между аппаратной и программной частями системы автоматизированного управления. Средства, как общего, так и специального математического обеспечения.

Системы отладки комплексов управляющих программ.

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

Системы автоматизации программирования.

Системы автоматизации программирования для управляющих ЦВМ (САП) представляют собой совокупность алгоритмических и программных средств, предназначенных для автоматизации этапа разработки программ, т. е. перевода исходных алгоритмов автоматизированного управления на машинный язык, используемый в данной управляющей ЦВМ. В общем случае, система автоматизации программирования состоит из одного или нескольких входных языков (проблемно – и машинно-ориентированных), системы трансляции программ с этих языков, «системы структурного контроля, информационной системы (включающей в себя архив программ для определенной системы автоматизированного управления и библиотеки их описаний) и системы выпуска технической документации на подпрограммы управляющей- ЦВМ.
Компонентами САП являются программы, обеспечивающие использование в процессе программирования архива информационной системы, а также соответствующие инструкции по размещению данных в этой системе. В общем случае, система автоматизации программирования управляющих ЦВМ обеспечивает выполнение следующих функций:
контроль синтаксической правильности записи программ на входных языках и выдачу информации о наличии, месте и характере синтаксических ошибок;
формирование структуры общего распределения памяти ЦВМ и библиотеки описаний глобальных переменных;
трансляцию, отдельных подпрограмм управляющего алгоритма, записанных на одном из входных языков, на языки более низкого уровня или же в коды команд данной машины;
автоматическую стыковку транслируемых подпрограмм по передачам управления, по глобальным переменным и константам, а также по использованию общих зон памяти ЦВМ в единую общую программу с помощью данных информационной системы;
накопление в выходной библиотеке результатов трансляции отдельных подпрограмм для их последующей отладки и загрузки в память управляющей ЦВМ;
автоматизированный выпуск технической документации на управляющие программы и ее корректировку.
В зависимости от сложности разрабатываемой системы автоматизированного управления, типа используемой ЦВМ и необходимого уровня автоматизации процессов программирования, отдельные компоненты из перечисленных выше могут быть менее развитыми, чем другие, или даже совсем отсутствовать.

Технология разработки систем управляющих алгоритмов.

Технология разработки систем управляющих алгоритмов в значительной степени определяется их сложностью, которая в первом приближении может быть выражена количеством команд в программе или числом операций, выполняемых в одном цикле решения. Особенно острой проблема технологии становится в тех случаях, когда объем функционально связанного комплекса программ исчисляется десятками и сотнями тысяч команд. Длительность и трудоемкость проектирования комплексов программ такого объема близки к длительности и трудоемкости разработки сложных комплексов аппаратуры и могут оказаться определяющими для затрат и сроков проектирования всей управляющей системы. В этом случае качество и степень автоматизации технологии проектирования алгоритмов определяет длительность их разработки, а в конечном итоге и качество системы алгоритмов. К сожалению, технология промышленного производства комплексов программ управления существенно отстает от реальных потребностей при создании систем. В значительной степени это обусловлено трудностью объединения усилий разработчиков для коллективного создания сложных комплексов программ с промышленным подходом к проектированию.
Для всех управляющих систем особенно близки технологические стадии программирования, откладки, выпуска документации и фиксирования программы в памяти ЦВМ. Наиболее специфичны начальные стадии исследования системы, определение общей структуры и основных характеристик системы управляющих алгоритмов. Проблемами технологии разработки алгоритмов охватываются следующие основные задачи:
планирование и организация всего технологического процесса проектирования комплекса программ вплоть до серийного изготовления управляющих систем, построенных на базе данных алгоритмов;
технологическое обеспечение программирования алгоритмов, включая автоматизацию самого процесса программирования, унификацию типовых компонент программ и т. д.;
технологическое обеспечение отладки программ с различными методами их контроля, обнаружения и диагностики ошибок и методами корректировки программ;
разработка математических моделей алгоритмов и других компонент управляющей системы для обеспечения качественного проектирования комплекса управляющих программ;
технологическое обеспечение испытаний алгоритмов и всей управляющей системы;
автоматизация изготовления документов, обеспечивающих серийное воспроизведение, контроль качества и эксплуатацию алгоритмов и программ в составе управляющей системы.
Математическое обеспечение технологических процессов разработки систем управляющих алгоритмов можно подразделить на программные средства „автоматизации программирования и средства автоматизации отладки алгоритмов. Это деление условное, так как функции отдельных компонент систем во многом пересекаются и дополняют друг друга.