Технология программирования и основные этапы ее развития

Тема 1. Технология программирования. Основные понятия и подходы

Лекция 1

Приведите пример и прокомментируйте структурные схемы САР непосредственного цифрового управления.

Приведите пример и прокомментируйте самонастраивающуюся схемы САР со стабилизацией динамической характеристики.

Приведите пример и прокомментируйте самонастраивающуюся схемы САР со стабилизацией частотной характеристики.

Приведите пример и прокомментируйте самонастраивающуюся схемы САР с анализом отклонения показателя качества.

Приведите пример и прокомментируйте самонастраивающуюся схемы САР с подстраиваемой моделью.

Приведите пример и прокомментируйте самонастраивающуюся схемы САР с контролем временной характеристики.

Приведите пример и прокомментируйте самонастраивающуюся схемы САР с контролем АЧХ.

Приведите пример экстремального регулирования сжигания топлива в термической печи.

6. Приведите пример и прокомментируйте самонастраивающуюся схемы САР с обобщённым настраивым объектом.

Литература по лекции 7.

1.Ульянов В,А., Леушин И.О., Гущин В,Н. Технологические измерения, автоматика и управление в технических системах. Ч.1. Н.Новгород: НГТУ, 2000. –С.7-77.

2.Майзель М.М. Автоматика и системы управления производственными процессами. М.: Высшая школа,1972. С.85-264.

3.Глинков Г.М., Косырев А.И., Шевцов Е.К. Контроль и автоматизация металлургических процессов. М.: Металлургия, 1989. С.94-143.

4.Воронов А.А., Титов В.К., Новогранов Б.Н. Основы теории автоматического регулирования и управления. М.: Высшая школа, 1977. С.154-356.

5.Коганов В.Ю., Блинов О.М., Беленький А.М. Автоматизация управления металлургическими процессами. М.: Металлургия,!974. С.17-80.

6.Дорф Р., Бишоп Р. Современные системы управления. М.: Лаборатория Базовых Знаний, 2002. С.243-564.

7.Филипс Ч., Харбор Р. Системы управления с обратной связью. М.: Лаборатория Базовых знаний, 2001. С.113-326.

8.Методы классической и современной теории автоматического управления. Т.1 /Под ред. К.А. Пупкова. М.: МГТУ, 2004. С.150-179.

9.Никулин Е.А. Основы теории автоматического управления. Частотные методы анализа и синтеза систем. СПб.: БХВ-Петербург, 2004.

Технология программирования (ТП) – это совокупность методов и средств, используемых в процессе разработки программного обеспечения (ПО). Как любая технология, ТП представляет собой набор технологических инструкций, включающих:

o указание последовательности выполнения технологических операций;

o перечисление условий, при которых выполняется та или иная операция:

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

Кроме набора операций и их последовательности ТП также определяет способ описания модели проектируемой системы, используемой на конкретном этапе разработки.

Различают два вида ТП:

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

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

Рассмотрим основные этапы развития программирования вообще и ТП в частности.

Первый этап – «стихийное» программирование. Этот этап охватывает период от момента появления первых ЭВМ до середины 60-х годов ХХ вв. В этот период практически отсутствовали сформулированные технологии, и программирование фактически было искусством. Первые программы имели простейшую структуру. Они состояли из программы на машинном языке и обрабатываемых ею данных. Появление ассемблеров позволило вместо двоичных или 16-ричных кодов использовать символические имена данных и кодов операций. В результате программы стали более «читаемыми».

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

В начале 60-х годов ХХ в. разразился «кризис» программирования. Анализ причин возникновения большинства ошибок позволил сформулировать структурный подход к программированию.

Второй этап – структурный подход к программированию (6070-е годы ХХ вв.). Структурный подход к программированию (СПкП) представляет собой совокупность технологических приемов, охватывающих выполнение всех этапов разработки ПО. В основе СПкП лежит декомпозиция (разбиение на части) сложных систем с целью последующей реализации в виде отдельных небольших (до 50 операторов) подпрограмм. С появлением других принципов декомпозиции (объектного, логического и др.) данный способ получил название процедурной декомпозиции.

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

Поддержка принципов структурного программирования была заложена в основу процедурных языков программирования. Такие языки обычно содержат операторы передачи управления, поддерживают вложение подпрограмм, локализацию и ограничение области «видимости» данных (PL/1, ALGOL-68, Pascal, C).

Дальнейший рост сложности и размеров программ потребовал развития структурирования данных. Как следствие, в языках появилась возможность определения пользовательских типов данных. Одновременно усилилось стремление разграничить доступ к глобальным данным программы. В результате появилась технология модульного программирования.

Модульное программирование предполагает выделение групп подпрограмм, использующих одни и те же глобальные данные в отдельно компилируемые модули (библиотеки подпрограмм). Например, модуль графических ресурсов, модуль подпрограмм вывода на принтер и др. Связи между модулями при использовании данной технологии осуществляются через специальный интерфейс, а доступ к реализации модуля (телам подпрограмм и некоторым «внутренним» переменным) запрещен. Эту технологию поддерживают современные версии языков Pascal, С++, новые языки Ada, Modula.

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

Третий этап – объектный подход к программированию (середина 80-х – конец 90-х годов ХХ в.). Объектно-ориентированное программирование (ООП) – это технология создания сложного ПО, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного типа (класса), а классы образуют иерархию с наследованием свойств и методов. (Взаимодействие программных объектов в такой систем осуществляется путем передачи сообщений.) Примеры ООЯ: ObjectPascal (Delphi), C++, Modula, Java.

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

Использование объектного подхода имеет много преимуществ, однако его конкретная реализация в ООЯ программирования (Object Pascal, C++) имеет и ряд недостатков. Сохраняется зависимость модулей ПО от адресов экспортируемых полей и методов, а также структур и форматов данных. Эта зависимость объективна, т.к. модули должны взаимодействовать друг с другом, обращаясь к ресурсам друг друга. Связи модулей нельзя разорвать, но можно попробовать стандартизовать их взаимодействие, на чем и основан компонентный подход к программированию.

Четвертый этап – компонентный подход и CASE -технологии (середина 90-х годов ХХ в. – наше время). Компонентный подход (КП) предполагает построение ПО из отдельных компонентов, т.е. физически отдельно существующих частей ПО, которые взаимодействуют между собой через стандартизованные двоичные интерфейсы. В отличие от обычных объектов объекты-компоненты можно собрать в динамически вызываемые библиотеки или исполняемые файлы, распространять в двоичном виде (без исходных текстов) и использовать в любом языке программирования, поддерживающем соответствующую технологию.

КП лежит в основе технологий, разработанных на базе COM (Component Object Model – компонентная модель объектов), и технологии создания распределенных приложений CORBA (Common Object Request Broker Architecture – общая архитектура с посредником обработки запросов объектов). Эти технологии используют сходные принципы и различаются лишь особенностями реализации.

Технология COM фирмы Microsoft является развитием технологии OLE (Object Linking and Embedding – связывание и внедрение объектов), которая использовалась в ранних версиях Windows для создания составных документов. Технология COM определяет общие принципы взаимодействия программ любых типов: библиотек, приложений, операционной системы, т.е. позволяет одной части ПО использовать функции (службы), предоставляемые другой, независимо от того, функционируют ли эти части в пределах одного процесса, в разных процессах на одном ПК или на разных ПК. Модификация COM, обеспечивающая передачу вызовов между компьютерами, называется DCOM (Distributed COM – распределенная COM). На базе технологии COM и DCOM разработаны компонентные технологии, решающие различные задачи разработки ПО:

1. OLE – automation или просто Automation (автоматизация) – технология создания программируемых приложений, обеспечивающая программируемый доступ к внутренним службам этих приложений. Вводит понятие диспинтерфейса (dispinterface) – специального интерфейса, облегчающего вызов функций объекта. Эту технологию поддерживает, например, Microsoft Excel, предоставляя другим приложениям свои службы.

2. ActiveX – технология, построенная на базе OLE - automation, предназначенная для создания ПО как установленного на одном ПК, так и распределенного в сети. Предполагает использование визуального программирования для создания компонентов – элементов управления ActiveX. Полученные таким образом элементы управления можно устанавливать на компьютер дистанционно с удаленного сервера, причем устанавливаемый код не зависит от используемой ОС. Это позволяет применять элементы управления ActiveX в клиентских частях приложений Интернет. Основные преимущества технологии ActiveX:

o быстрое написание программного кода (поскольку все действия, связанные с организацией взаимодействия сервера и клиента, берет на себя ПО COM, программирование сетевых приложений становится похожим на программирование для отдельного компьютера);

o открытость и мобильность (спецификации технологии недавно были переданы в Open Group как основа открытого стандарта);

o возможность написания приложений с использованием знакомых средсв разработки (Visual Basic, Visual C++, Borland Delphi, Borland C++ и любых средств разработки на Java);

o большое количество уже существующих бесплатных программных элементов ActiveX;

o стандартность (технология ActiveX основана на широко используемых стандартах Интернет (TCP/IP, HTML, Java) и стандартах COM, OLE).

3. MTS (Microsoft Transaction Server – сервер управления транзакциями ) – технология, обеспечивающая безопасность и стабильную работу распределенных приложений при больших объемах передаваемых данных.

4. MIDAS (Multitier Distributed Application Server – сервер многозвенных распределенных приложений) – технология, организующая доступ к данным разных компьютеров с учетом балансировки нагрузки сети.

Все указанные технологии реализуют компонентный подход, заложенный в COM.

Технология CORBA, разработанная группой компаний OMG (Object Management Group – группа внедрения объектной технологии программирования), реализует подход, аналогичный COM, на базе объектов и интерфейсов CORBA. Программное ядро CORBA реализовано для всех основных аппаратных и программных платформ и поэтому технологию можно использовать для создания распределенного ПО в гетерогенной (разнородной) вычислительной среде. Организация взаимодействия между объектами клиента и сервера в CORBA осуществляется с помощью специального посредника VisiBroker и др. специализированного ПО.

Отличительной особенностью современного этапа развития ТП, кроме изменения подхода, является создание и внедрение автоматизированных технологий разработки и сопровождения ПО, которые называются CASE- технологии (Computer-Aided Software/System Engineering – разработка ПО/ПС с использованием компьютерной поддержки). На сегодняшний день существуют CASE- технологии, поддерживающие как структурный, так и объектный (в том числе и компонентный) подходы к программированию.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: