Информационно-образовательный портал СОДРУЖЕСТВА НЕЗАВИСИМЫХ ГОСУДАРСТВ
ИНФОРМАТИЗАЦИЯ ОБРАЗОВАНИЯ
И ДИСТАНЦИОННОЕ ОБУЧЕНИЕ В СНГ
Информационно-образовательный портал СОДРУЖЕСТВА НЕЗАВИСИМЫХ ГОСУДАРСТВ  

Страны
Азербайджанская Республика
Республика Армения
Республика Беларусь
Республика Казахстан
Кыргызская Республика
Республика Молдова
Российская Федерация
Республика Таджикистан
Туркменистан
Республика Узбекистан
Украина

Типы материала
Информационно-коммуникационные технологии
Дополнительные информационные материалы
Нормативно-правовое обеспечение
Организация и методики обучения
Экономика образования
Межгосударственное сотрудничество
Образовательные центры
Методики обучения
Межвузовское сотрудничество
Повышение квалификации
Международные проекты и гранты, конкурсы
Конференции, симпозиумы, семинары и др.
Библиотека
 
Журнал «Вестник РУДН» серия «Информатизация образования»
 
2014, №4
2014, №3
2014, №2
2014, №1
2013, №4
2013, №3
2013, №2
2013, №1
2012, №4
2012, №3
2012, №2
2012, №1
2011, №4
2011, №3
2011, №2
2011, №1
2010, №4
2010, №3
2010, №2
2010, №1
2009, №4
2009, №3
2009, №2
2009, №1
2008, №4
2008, №3
2008, №2
2008, №1
2007, №4
2007, №3
2007, №2-3
2007, №1
2006, №1(3)
2005, №1(2)
2004, №1
Научные и специальные электронные ресурсы
Учебная, научная и специальная литература
Комиссия по дистанционному обучению совета по сотрудничеству в области образования государств-участников СНГ
Новости

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


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

Текст документа

 Введение. О дидактических аспектах информатизации образования. В начале второго десятилетия XXI века едва ли нужно доказывать кому-либо необходимость информатизации образования. Информатизация является потребностью, диктуемой временем. Уже сегодня подавляющее большинство вузов и школ оснащены самыми современными компьютерными классами. Во многих передовых вузах и школах введены системы компьютеризированного контроля обучения, контроля успеваемости, а также системы ведения отчётности преподавателей. Компьютерные системы повсеместно используются для автоматизированной охраны учебных заведений.

С учётом степени уже существующей компьютеризации есть возможность широко внедрять информационные и телекоммуникационные технологии. И в последние годы они всё шире используются в образ??вании, в сфере научных исследований, провидимых в вузах и средних технических учебных заведениях. Не случайно в «Послании Президента РФ Д.А.Медведева Федеральному Собранию Российской Федерации (2009)» главная дидактическая цель обучения определена как “раскрытие способностей обучаемого, воспитание личности, готовой к жизни в высокотехнологичном, конкурентном мире”.

 Говоря о перспективных задачах обучения, Дмитрий Анатольевич подчеркнул, что “обучение должно способствовать личностному росту так, чтобы выпускники смогли самостоятельно ставить серьёзные цели, и достигать их, уметь реагировать на различные жизненные ситуации” [Медведев, 2009]. Такая постановка цели и задач представляется правильной с различных точек зрения. Во-первых, интеллектуальный потенциал общества, служащий фактором его научного прогресса, экономического и социального развития, в значительной степени зависит от качества образования в отечественных школах, профессиональных училищах и вузах. Во-вторых, будущее общества зависит от наличия в нём хорошо воспитанных и обученных граждан, которым предстоит жить в мире, где степень сложности технологий будет лишь возрастать со временем, предъявляя к обучаемым и технологиям обучения всё более высокие требования.

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

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

На сегодняшний день в мире практически отсутствуют программные комплексы, предназначенные для анализа программ, синтеза программ или какие-либо иные программные системы, которые были бы построены на основе гибких логико-смысловых моделей и, следовательно, могли бы быть легко (оптимально по времени) изменены или полностью перестроены с учётом возникших новых потребностей и задач.

О программном комплексе, предназначенном для поддержки

обучения приемам практического анализа содержания программ

 

Постановка задач исследования. В рамках большого проекта РАН была поставлена задача создания гибких аналитических программных комплексов высокой производительности, которые могли бы быть использованы как в практическом анализе программ и программных систем, так и в обучении будущих программистов.

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

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

О подходе к решению задачи. С учётом постановки задач нами был разработан подход, который предполагал следующее. Во-первых, для решения поставленной задачи была использована созданная нами оригинальная инструментальная среда программирования ЗИРУС [1]. На её базе был разработан универсальный метод, который предполагал семантическую интерпретацию анализируемых компьютерных программ в виде моделей данных и наборов отношений [5]. Он был основан на общих принципах теории построения баз данных и рассчитан на формирование и перестройку внешних текстовых форм программ и получение различных их графических отображений. Применение теории графов в качестве аппарата модельного отображения построенной программной системы позволяет, как выяснилось, существенно упростить интерпретацию сложных структур и алгоритмов анализируемых программ [2]. Это имеет большое значение с точки зрения обучения.

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

 

 

Рис.1. Схема процесса анализа программной системы, построения её модели и отображения  этой модели в различные её внешние представления

 

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

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

 

 

Рис. 2. Технологический принцип статического анализа исходных текстов

программ (по существу это – технология формирования графов связей)

 

Рис. 2 детализирует общий технологический принцип анализа (рис. 1), осуществляемого в процессе функционирования программного комплекса, рассчитанного на статический анализ кода. На основе этого принципа и была реализована оригинальная технология автоматического формирования графов связей в текстах анализируемых программ и программных систем. Логический аппарат функционирования статического анализатора программного комплекса написан нами на скриптовых языках Lua и Python.

Необходимо пояснить, что означает утверждение о том, что разработанное программное средство использует статический анализ кода (САК). Заметим, что данный термин обычно применяют к анализу, производимому специальным программным обеспечением. САК производится без реального выполнения исследуемой программы, в большинстве случаев – над версией исходного кода, хотя в принципе анализу может быть подвергнут какой-нибудь один вид объектного кода.

Если оказывается возможной декомпозиция системы на основании некоторого принципа или правила (например, правила применения кластеризации к графу), то можно найти подсистемы, соответствующие этому принципу/правилу (кластеру). Такой подход к анализу архитектуры объектных программных систем позволяют не только упростить понимание внутреннего устройства программной системы (ПС), но и осуществить её рефакторинг, т.е. выполнить моделирование архитектуры программной системы с целью её улучшения. Это позволяет, например, избежать неоправданного дублирования подсистем ПС, обнаружить в ней сильно связанные компоненты и т.п.

 

О возможностях, предоставляемых статическим анализом исходного текста анализируемой программной системы

 

В последние годы статический анализ всё чаще используется при исследовании и проверке надежности и свойств программного обеспечения, применяемого в современных вычислительных системах высокой производительности. Уже поэтому его роль в обучении может быть велика. Например, с точки зрения обучения важно то, что обучаемый может отслеживать процесс статического анализа и видеть, как: 1) выполняется исследование архитектуры объектной ПС, её объектов и связей между объектами; 2) дело в том, что на основании анализа связей между объектами возможна декомпозиция ПС на подсистемы (она упрощает дальнейший анализ ПС за счёт уменьшения количества объектов архитектуры и связей между ними, на каждом конкретном этапе анализа системы или её части); 3) кроме того, процесс анализа предполагает получение данных, необходимых для построения модели ПС в форме графа (причём, последняя немедленно помещается в хранилище (базу) моделей как один из модельных эталонов, который позднее может потребоваться для сравнения как прецедент).

С точки зрения обучения важно и то, что 4) информация, полученная в ходе анализа, и построенная модель используются для: (а) оперативного выявления мест в ПС, которые содержат ошибки (если таковые есть); (б) определения основных свойств ПС и, главное, для определения (в) функционально-смыслового назначения ПС или (г) её соответствия функционально-смысловому назначению, указанному в спецификации. Заметим, что в зависимости от целей и, как следствие, инструмента анализа, используемого в каждом конкретном случае, глубина анализа может варьировать от определения поведения (функций) отдельных операторов программы до анализа всего исходного кода.

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

 

Заключение. В выступлении на «Петербургском экономическом форуме 2010», а позднее в «Послании Президента РФ Федеральному Собранию» (2010) Президент РФ Д.А.Медведев существенно конкретизировал постановку задачи, связанной с инновациями: «Мы должны изменить нашу страну, мы должны внедрить новые технологии, мы должны поменять культуру производства… Мы должны создать технологический приоритет. Мы должны перевести нашу экономику на рельсы инноваций, т.е. высоких технологий» [4, с. 28].

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

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

Перечень наглядных аналитических операций, обеспечиваемых созданным нами программным комплексом и позволяющих быстро и качественно выполнять анализ программ большого размера посредством построения графов отношений, обеспечивает: 1) быструю навигацию по исходным файлам, 2) выявление свойств анализируемой программы (типов, методов, функций, используемых в ней), 3) выявление ошибок в программе, 4) определение функционально-смыслового назначения программы. Программный комплекс рассчитан на формирование различных внешних форм представления текста программы и различных его графических отображений. Иными словами, он позволяет строить модели программной системы, получая при этом различные формы её внешнего представления, что весьма удобно для обучения программистов и квалифицированных пользователей.

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

 

ЛИТЕРАТУРА

 

[1] Абасов Н.В. Основы универсальной среды программирования ЗИРУС // Вестник ИрГТУ. – 2006. – № 2 (26).–  С. 62–68.

[2] Касьянов В.Н., Евстигнеев В.А. Графы в программировании: обработка, визуализация и применение. – СПб: БХВ-Петербург, 2003. – 1104 с.

[3] Медведев Д.А. Послание Федеральному Собранию Российской Федерации: выступления и стенограммы // URL: http://www.kremlin.ru/transcripts/5979

[4] Медведев Д.А. Послание Президента Российской Федерации Дмитрия Анатольевича Медведева Федеральному Собранию РФ // Вестник российской нации. – 2010. – № 5–6. – С. 10–29.

[5] Chernyshov M.Yu., Bychkov I.V. On the Way to a Sense-Analyzing Intelligent System Oriented to Earth and Solar Sciences. Part 1: The Principles of Investigation and the Logic of Mapping  // Data Science Journal. – 2009. – Issue. 2.

 

 

A COMPLEX OF SOFTWARE SEMANTIC ANALYSIS INTENDED

FOR INFORMATIZATION OF TRAINING FUTURE PROGRAMMERS

AND EXPERIENCED USERS

 

M.Yu. Chernyshov

 

Presidium of Irkutsk Scientific Center, Siberian Branch of RAS,

134, Lermontov st., Irkutsk, Russia, 664033

 

The government statement of the issue of education informatization and some didactic aspects of this complicated problem are discussed. A software complex, which provides for training future programmers and experienced users in techniques of practical analysis of the content of programs and visualization of each analytical operation, is proposed.

Key words: informatization of education, information technology, software product, education.


Автор оригинала: М.Ю. Чернышов
Источник оригинала: Журнал "Вестник РУДН" серия "Информатизация образования", 2012, №2

Новости
16.06.2017

Российский университет дружбы народов объявляет о проведение первой волны вступительных испытаний среди иностранных граждан для обучения на программах магистратуры на контрактной основе. Первая ...

13.10.2016

26 октября-27 октября 2016 года Российский университет дружбы народов проводит Международную конференцию «Сетевые университеты и международный рынок труда (пространства БРИКС, СНГ, ШОС)».

19.05.2016

The Peoples’ Friendship University of Russia (PFUR) announces the beginning of admission of foreign citizens who graduated from Bachelor and Specialist Degree programs of PFUR and other Russian and ...

19.05.2016

Российский университет дружбы народов (РУДН) объявляет о наборе иностранных граждан -выпускников бакалавриата и специалитета РУДН и других российских и зарубежных ВУЗов на программы магистратуры на ...

11.12.2015

Проект рекомендаций Семинара-совещания научной общественности по проблемам международного научно-технического и образовательного сотрудничества