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

кандидата технических наук
Мартынов, Антон Иванович
город
Ульяновск
год
2005
специальность ВАК РФ
05.13.12
Диссертация по информатике, вычислительной технике и управлению на тему «Средства автоматизации обратного проектирования встроенных систем»

Автореферат диссертации по теме "Средства автоматизации обратного проектирования встроенных систем"

На правах рукописи

Мартынов Антон Иванович

Средства автоматизации обратного проектирования встроенных систем

Специальность: 05.13.12 - Системы автоматизации проектирования

по техническим наукам (промышленность)

Автореферат

диссертации на соискание ученой степени кандидата технических наук

Ульяновск - 2005

Работа выполнена в Ульяновском государственном техническом университете

Научный руководитель: доктор технических наук, доцент Негода Виктор Николаевич

Официальные оппоненты: доктор технических наук, профессор Кумунжиев Константин Васильевич кандидат технических наук, доцент Андреев Дмитрий Васильевич

Ведущая организация - ФГУП НПО «Марс»

Защита состоится «16» ноября 2005 года в 15.00 на заседании диссертационного совета Д 212.277.01 при Ульяновском государственном техническом университете по адресу: 432027 Ульяновск, ул. Северный Венец, 32, ауд. 211.

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

Автореферат разослан «14» октября 2005 года

Ученый секретарь

диссертационного совета Д 212.277.01 д.т.н., профессор

М.К.Казаков

ПНЮ 3

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

Основная часть функциональности большинства существующих встроенных систем сосредоточена в программном обеспечении (ПО). Согласно Б.У.Боэму стоимость внесения изменений в ПО с ростом его объема возрастает экспоненциально, причем для ВС значение коэффициента сложности разработки является максимальным. Это значение может быть снижено за счет использования средств автоматизации. Исследования В.В.Липаева показывают, что применение средств автоматизации проектирования программных систем дает наибольший эффект при создании систем реального времени, что определяется жесткими требованиями к параметрам функционирования таких систем и сложностью поведения внешней среды систем контроля и управления. Факторы, усложняющие прямое проектирование ПО ВС, при обратном проектировании обостряются. Это связано с двумя основными причинами. Во-первых, при прямом проектировании разработчик ПО всегда имеет доступ к спецификациям моделей поведения внешней среды, а при обратном проектировании такого доступа часто нет. Во-вторых, при порождении кода программ ВС активно используется хорошо структурированная система проемных решений, что декомпозирует сложные задачи па более простые и существенно упрощает процесс программирования. У специалиста по обратному проектированию обычно нет доступа к спецификациям проектных решений, и объем входных данных и неопределенностей, с которыми он имеет дело, многократно превышает то, с чем работает проектировщик ОПВС. Для того, чтобы средства автоматизации ОПВС успешно справлялись с указанными факторами сложности целесообразно наделить их следующими свойствами: а) возможность автоматизации наиболее трудоемких процессов ОПВС; б) поддержка интеграции артефактов обратного проектирования, полученных автоматическими анализаторами и человеком; в) иметь сквозной характер разработки, то есть возможность поддерживать различные этапы ОП и обеспечивать связь между ними; г) гетерогенность - универсальность по отношению к различным мик-

ропроцессорным архитектурам; д) возможю сздедйЭТДОИАДОДО [к изме-

БНБЛИОТЕК\, I

С.Пет«| 09

няющимся целям ОП и составу исходных данных; е) охватывать как программную, так и аппаратную составляющие.

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

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

Область исследования - автоматизация обратного проектирования встроенных систем.

Объект исследования - средства автоматизации обратного проектирования встроенных систем.

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

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

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

2. Анализ и классификация основных целей обратного проектирования с точки зрения их влияния на технологию и трудоемкость проведения ОПВС.

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

4. Разработка моделей артефактов обратного проектирования и процессов автоматизации его этапов.

5. Разработка базовых архитектурных решений средств автоматизации обратного проектирования и основ эффективной технологии его реализации на основе применения этих средств.

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

рования и экспериментального исследования программных средств поддержки опвс.

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

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

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

3. Для обеспечения возможности построения семейства конструктивных алгоритмических моделей, ориентированных на конкретные цели, построено отношение порядка в пространстве критериальных параметров «Степень модификации МПС - Требования к точности валидации».

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

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

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

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

2. Разработана ВОТ-форма для языка шаблонов обратного проектирования, обеспечивающая автоматическое построение интерпретаторов с использованием инструментальных средств построения лингвистических процессоров.

3. Построен набор базовых шаблонов ОПВС.

4. Разработана модель оценки эффективности СА ОПВС, базирующаяся на широко распространенных метриках Б.У. Боэма и М.Х. Холстеда. Достоверность и эффективность. Достоверность полученных в диссертации результатов подтверждается результатами экспериментальных разработок. Эффективность подхода оценивается на основе широко распространенных метрик М.Х.Холстеда и Б.У.Боэма и в проведенных

экспериментальных исследованиях характеризуется значением степени сокращения затрат на модификацию ПО ВС, лежащим в пределах 1,7 - 3,5.

Внедрение результатов. Диссертационная работа является обобщением результатов, полученных автором в Ульяновском государственном техническом университете в процессе выполнения в 2000-2005 годах научно-исследовательских работ, в том числе: "Разработка спецификаций и гипертекстовой документации программного обеспечения ультразвукового расходомера - теплосчетчика" (Ульяновск, ООО «Тисса»), Методика ОПВС передана для использования на Ульяновский завод тяжелых станков (ОАО УЗТС), Ульяновский автомобильный завод (АО УАЗ), внедрена в учебном процессе двух специальностей УлГТУ.

Апробация работы. Основные научные и практические результаты исследований по теме диссертации докладывались на 4-ой международной конференции «Интерактивные системы: Проблемы человеко-компьютер-ного взаимодействия» (Ульяновск, 2001), на 6-ой международной конференции «Интерактивные системы: Проблемы человеко-компьютерного взаимодействия» (Ульяновск, 2005), на 6-ом международном симпозиуме «Интеллектуальные системы» (Москва, 2004), на международной конференции «Континуальные алгебраические логики, исчисления и нейроинформа-тика в науке и технике» (Ульяновск, 2005), на заседании кафедры «Вычислительная техника» (Ульяновск, 2005), на постоянно действующих городских семинарах «Встроенные системы» (Ульяновск).

Публикации. Материалы диссертации опубликованы в 10 работах. Из них 8 статей и 2 тезиса докладов научных конференций.

Структура и объем диссертации. Диссертация состоит из введения, четырех глав, заключения, списка используемой литературы, включающего 120 наименований, и приложения. Основная часть работы изложена на 180 страницах машинописного текста. Работа содержит 36 рисунков и 11 таблиц.

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

В первой главе «Обратное проектирование в САПР встроенных систем» дается понятие ВС и определение термина «ОПВС» как процесса восстановления проектных решений (ПР) более высокого уровня абстракции или подбора семантически эквивалентных аналогов ПР на основе анализа исходных данных (ИД) более низкого уровня. Показывается связь прямого проектирования (1111) с ОП, анализируются представленные в научно-технической литературе прецеденты осуществления обратного проектирования, рассматриваются инструментальные средства поддержки процесса ОПВС и формируются выводы по допустимости и целесообразности использования этих средств в задачах сопровождения и модификации МПС.

В процессе анализа нескольких десятков источников литературы выявлен следующий спектр задач, где активно используются элементы ОП: модификация поведения программ (В.В. Липаев, М. Фаулер, И. Соммервил,

М.Х. Халстед, Л.К.Латышев, А.Терехов, К. Верхуф, А. А. Смагин, В.Н. Негода, С.В. Скворцов), исследование программ (Д. Грин, Д. Кнут, Б. Лисков, Дж. Га тэг, Г. Майерс, К. Касперски, И. Скляров), восстановление проектных решений более высокого уровня абстракции (К. Цифуентс, П.Т. Брайер, Ф.Л. Фридман, М.Ю. Гусенко, Ф.Д. Френс, Р. Лингер, X. Милтс, Б. Уитт, Г. Буч, А.Г. Сергеев, А.М. Вендров).

На основе анализа выявленных задач показано, что процесс обратного проектирования невозможно построить как линейную инверсию процесса прямого проектирования и что современные инструментальные СА ОПВС не в состоянии решить задачу «сквозного» ОП в условиях полного или частичного отсутствия документации. За основу самой общей модели плохо документированной системы предложено взять модель вида D-{Dr,D5,Dd} где Dr - множество фрагментов машинного кода, Ds - множество фрагментов исходных текстов программ, Dd - эксплуатационная документация, важной частью которой для обратного проектирования являются структурно-функциональные и принципиальные схемы Dp с Dd.

Опираясь на предложенную модель, рассматриваются основные методы анализа фрагментов машинного кода Dr (такие как дизассемблирование, де-компиляция), анализа исходных текстов программ (поэтапное абстрагирование, CASE-системы с поддержкой обратного проектирования, Round Trip Process - процесс замкнутого проектирования) и анализа схем из Dp на примере фрагмента принципиальной схемы инженерного пульта МПС ЧПУ сверлильного станка.

Рассмотрены известные инструментальные средства, через призму возможности их применения в процессе ОПВС.

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

прямого и обратного проектирования в сочетании со статическими и динамическими методами определения эквивалентности программ.

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

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

Для каждой из приведенных целей построен сценарий в виде диаграмм деятельности языка ЦМЬ, который в последнее время активно используется при проектировании МПС и систем реального времени. Укрупненные блоки диаграмм деятельности представляют процессы, осуществляемые в ходе обратного проектирования. Более детальный анализ сценариев обеспечивает построение для каждой пары «Цель ОП - Процесс ОП» спецификатора, который несет информацию о необходимости осуществления этого процесса и об основных свойствах его реализации применительно к данной цели.

На основе данных, полученных в ходе анализа, построено отношение порядка в пространстве критериальных параметров «Степень модификации МПС - Требования к точности валидации», представленное на рис. 1.

В диссертации показано, что для формализации базовых процессов обратного проектирования с целью их автоматизации целесообразно использовать логико-алгебраические модели. В самом общем виде такая модель представляют собой многосортную алгебру Ч' = {0$%с,Аце,Н\ ф}, где Дэдс - множество исходных данных, представленное парой {Од.Лд}, в которой

Од- множество фрагментов машинного кода, Б ¡у - эксплуатационная документация. А ¡у? - множество артефактов ОП, Н - множество гипотез, ф = {^ЖУ. . РАБ < . ^> РУА1 - ^} ~ множество преобразований, осуществляемых в ходе процесса ОП.

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

Требования к точности валидашм

Средняя

Восстановление проектных решений

Анализ состояния разработки

Перенос системы на другую платформу условиях отсутствия исходных «одое

а

Перенос системы на другую платформу при наличии исходных ходов

Параметрическая модификация без исходных подо*

Параметрическая

модификация при наличии исходных косое

Перепроектирование системы без исходных кодов и проектной документации

Перепроектирование системы при наличии только исходных кодо*

Перепроектирование системы при наличии исходных щдоа и проектной документации

Нет Неэнмпалиая Значительная „даф^^

Рис. 1. Классификация сценариев ОП

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

Результат этой детализации представлен ниже.

р

1. Дизассемблирование: Иц-од ) Лдд-,

где Ат = Эцс иОю, Экс = \айг1,тсой1) 11 = 1,2,...} - упорядоченное множество пар «Адрес-Мнемокод машинной команды», - упоря-

доменное множество троек Drd = {(adr^sz^valj) | i = 1,2,...} «Адрес-Размер-Значение элемента данных», A du с Are .

2. Структурный анализ: ADIS —Fsn ) Л^д,

где ASjR = {(mgcod^spec^l i = 1,2,...}, - множество пар, левый элемент в которых является продуктом группировки последовательности мнемокодов из Apjg, что позволяет перейти от мнемокода одноадресных и полутороад-ресных архитектур к более короткому мнемокоду двухадресной псевдомашины. Правый элемент spect представляет собой спецификатор вида speCj ={typei,adrj,desci,rell}, где type, -тип элемента метаданных; adrt-адрес размещения элемента; descl - текстовое описание элемента; relf-множество связей между структурными элементами, отражающее их взаимное расположение, включая вложенность, Ац-рд с Agg.

3. Анализ схем: Dp-

где Ayis = Bk>sbk I ^ = ^2, - >} - множество пар, в котором \ - функциональный блок, представленный подмножеством Вк-\с Акя ,Ткт | т = 1,2,... >), в котором Акп - адрес линии ввода/вывода;

- тип линии, который может принимать значения «Ввод», «Вывод», «Ввод/Вывод» и «Не используется»; SBk - множество связей с другими функциональными блоками.

4. Укрупнение алгоритмов и семантический анализ: А\с > ,

1 jfe+1

где к- уровень абстракции и Ajq = A^^r , Aj@ с Ащ? - подмножество артефактов {к +1) -го уровня, получаемых через процесс агрегации последовательности артефактов из Адд, именования объектов данных и программных функций, а также порождения определений констант для адресации полей записей, смещений к областям памяти и т.п.

5. Валидация: AkAG х Тк FyAL ) V,

где Тк - набор тестовых данных к-то уровня, V = (Vj-,Vt,Vv^j - булев вектор, представляющий результаты тестирования по функциональности (Ку),

по времени выполнения (Vt) и по объему кода (Vv ).

F

6. Формирование гипотез:

Я—

Функция формирования FG обеспечивает добавление новых гипотез из общего множества Н, замещение одной гипотезы другой в ходе отладки БД шаблонов и связывание гипотез в цепочки, обслуживающие многошаговый процесс агрегации нескольких артефактов ОП, не выходя за пределы к -го уровня.

к F к

7. Формирование тестов: AAq —» f (

где Тк = {Tf,Ef,Tlk_mm,T,k_aanJy_max} - набор тестовых данных, в котором: Тк - множество тестов для выбранного фрагмента; Ек- множество эталонов, то есть троек переменных Vk, значений этих переменных до выполнения теста ЕВк и значений этих переменных после выполнения теста ЕАк; Тк ^ -минимально допустимое значение времени, отводимое для выполнения фрагмента; Тк ^ - максимально допустимое значение времени, отводимое

для выполнения фрагмента; Тк гаах- максимально допустимое значение объема фрагмента в байтах.

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

• Pnla ~ предикат, определяющий, что достигнут новый уровень абстракции (new level of abstraction), то есть все выбранные фрагменты mgcodj представлены конструктами следующего уровня абстрагирования Акс;

• fyu ~ предикат, определяющий, что исчерпан лимит времени, отведенный для данного этапа абстрагирования (time limit)-,

• Pv - предикат, определяющий что валидация пройдена, следовательно можно продолжать процесс укрупнения;

• ^712 ~ предикат, определяющий, что исчерпан лимит времени, отведенный для процедуры валидации (time limit). Этот предикат должен иметь силу только в том случае, если Vj = 1, и означает, что фрагмент

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

• рш - предикат, определяющий что достигнут требуемый уровень абстракции (requires level of abstraction), зависящий от целей ОПВС;

• Рш - предикат, определяющий, что исчерпан лимит времени, отведенный для всего процесса абстрагирования.

Далее показано, что для автоматизации процесса ОПВС необходимо наличие набора специальных языковых средств, в который входят: язык представления результатов агрегации (ЯПРА); язык представления укрупненных функциональных схем (ЯПУФС); язык шаблонов обратного проектирования (ЯШОП).

Для ЯПРА предъявлены следующие требования: требование полноты языка, требование простоты использования, требование простоты восприятия, требование универсальности, требование поддержки поэтапного абстрагирования, требование поддержки валидации и в качестве одного из вариантов предложено использование языка С. Для ЯПУФС основными требованиями являются простота восприятия и возможность представления укрупненных функциональных схем (УФС). Основными требованиями к ЯШОП являются: возможность идентификации программного фрагмента с заданным уровнем точности, универсальность и, в то же время, простота

составления шаблона, поэтому для ЯШОП предложен синтаксис XML, для которого составлена BNF-форма.

Необходимость структурных преобразований в процессе ОПВС обеспечивается графовыми моделями вида G = (N, Е, h), где N - список узлов; Е -список ребер; h - начальный узел, в которых каждый узел графа нагружен дополнительной информацией, полученной из множества A$tR. Такого рода модели используются для выполнения следующих преобразований: разбиение графа на множество непересекающихся интервалов; получение производных последовательностей; классификация полученных последовательностей. Для каждого преобразования приведены алгоритмические модели, построенные на основе анализа потоков данных (DFA, Data Flow Analysis) и анализа управляющих потоков (CFA, Control Flow Analysis).

Отдельный параграф отведен исследованию моделей валидации, в результате которых построена модель драйвера тестирования, базирующаяся на преобразованиях множества Тк = {тк,Ек,Тктш,ТкШК,Тк пш|, условия перехода в модели задаются предикатами Р/ЕЯ : Екв = (Екв+^ )' л ЕкЛ = (е*+1 ) - предикат определяющий, что все функциональные тесты выполнены; Pver тш - № } ^ Тк шх - предикат, определяющий, что время выполнения фрагмента лежит в допустимых пределах; PyER : (г*^ ) < Г*_тах - предикат, определяющий, что размер фрагмента является допустимым.

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

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

Предложено оценивать эффективность средств автоматизации на основе использования метрик М.Х. Холстеда и Б.У. Боэма. Предлагаемая модель оценки эффективности представляется следующей обобщенной функцией: EJL+Tv+Tr+Ts =KL.TL+KlJ.Tv+KR.TR + Ts в ой

TL + TU+TR TL+TU+TR

Т =TL + TÙ + TR+fs ~ затраты времени на осуществление процесса обратного проектирования с использованием СА ОПВС, Т=TL + TU + TR - затраты времени на осуществление процесса обратного проектирования без использования специальных средств поддержки.

Если средства автоматизации не используются, то Т представляется как сумма: a) TL - времени, затрачиваемого на локализацию нужного фрагмента;

б) Ту - времени, затрачиваемого на понимание и в) Тк - времени, затрачиваемого на модификацию, в случае использования СА ОПВС необходимо дополнить эту сумму еще одной составляющей - 3$. Это - время, затрачиваемое на выполнение дополнительных операций по настройке автоматизированной системы (Гд, - время на пополнение БД шаблонов, Т$с - время на составление структурных схем и таблиц ввода/вывода, - время на дополнение БД описаний системы команд, Ту - время на настройку взаимодействия межпрограммных интерфейсов, т'$ь - время на создание скриптов управления подсистемами). Эффект от использования оценивается как отношение, выраженное через соответствующие коэффициенты (К1,Ки,Кя).

К^ = —= '^2("1)+п2^°ё2("2) _ коэффициент эффективности . г£ «1 ' '°82 (Л1 ) + "2 ' (л2 )

, (AT, + JV2). log2

Ки-~---

Ju

Г • ' Л[ +»2

(Nt +М2)1оё2

——у L = 2 "2, L = --коэффициент эф-

Л] -jV2

"l +п:

фективности Ти;

. г..' \1»2

К = = R m

JR

КПдр

Кпор j

- коэффициент эффективности Тц;

Для доказательства эффективности использования СА ОПВС необходимо выполнение неравенства Е < 1, то есть Т < Т. Для этого доказываются следующие неравенства:

1) TL < TL - выполняется за счет: автоматической структуризации исходных данных на уровне функций: построение списка функций и их описаний, построение дерева вызовов функций (ДВФ); анализа потоков данных, позволяющих строить трассы в ДВФ, отталкиваясь от известных данных; использования механизма шаблонов, позволяющего: распознавать элементарные идиомы, идентифицировать типовые алгоритмы обработки данных, производить агрегацию данных; автоматической генерации кода на ЯВУ для типовых алгоритмов.

El =п} log2(й, ) + я2 log2(n2) - метрика М.Х. Холстеда, оценивающая затраты на понимание программы, через понятие ее длины.

2) Тц < Ту - опираясь на характеристики М.Х. Холстеда затраты на восприятие готовой программы описываются соотношением

£ = JV'log2^j = (^! +N2)-log2^y^-j, где - число уникальных операторов программы, включая символы разделители, имена процедур и знаки one-

раций (словарь операторов); п2 - число уникальных операндов программы (словарь операндов); Л^ - общее число операторов в программе; - общее число операндов в программе. Поскольку в результате укрупнения алгоритмов происходит агрегация функций и данных, то это неизбежно влечет к уменьшению пх,пг,Ы\ и ЛГ2, а следовательно и к уменьшению затрат Е на восприятие программы.

3) ТК<ТЯ - выполняется за счет того что: модифицировать программы на ЯВУ гораздо проще, чем ассемблерные программы; объем кода программ на ЯВУ гораздо меньше; возможно использование стандартных библиотек. Т = 3,6 ■ (Кпор )1,2 - оценка сложности по Б.У. Боэму.

Четвертая глава «Экспериментальные исследования разработанных моделей» является экспериментальной, в которой подтверждается достоверность проводимых исследований, моделей и предложенных средств автоматизации основных процессов ОГТВС.

Целями первого эксперимента «Разработка спецификаций и гипертекстовой документации программного обеспечения ультразвукового расходомера - теплосчетчика» являются: показать возможность применения предложенных моделей для анализа текущего состояния разработки, выявить наиболее слабо проработанные модули, оценить качество и степень различных рисков, а также сформировать описание программных функций модулей, позволяющих продолжить разработку. Исходными данными выступали исходные тексты модулей программ (34 модуля) с общим объемом в 15801 строк, в том числе 10362 операторных строк.

Таблица 1

Результаты идентификации методов численного интегрирования

J6 Компилятор/Платформ а/Параметры Процент распознавания, % Процент ошибки, %

1. Microsoft Visual С++ 6.0, 18ОЗ86+ (стандартные параметры) 100% 0%

2 Microsoft Visual С++ 6.0, ¡80386+ (огггн-мюация по скорости) 100% 0%

3. Keil mVi»ion2 v2.07, Infenion С166 (стандартные параметры) 100% 0%

4 Keil mVision2 v2.07, Infenion С166 (оптимизации по размеру) 96% 0%

5. LAR EW ICCP1C, PIC16C61 (оптимизация по размеру) 61% 14%

6 GNU С, Í80386+ (оптимизация по скорости) 84% 5%

7. GNU С, AVR (оптимизация по размеру кода) 67% 12%

8. GNU С, ARM (оптимизация по скорости) 68% 12%

9. Borland С++ 3.1, 18ОЗ86+ (стандартные параметры) 100% 0%

В ходе второго эксперимента «Поиск типовых решений на примере идентификации методов численного интегрирования» исследовался процесс идентификации типовых ПР на примере разнообразных вариантов реализации алгоритмов численного интегрирования. Исходными данными для экс-

перимента выступали наиболее известные реализации алгоритмов вычисления определенного интеграла (метод прямоугольников, метод Симпсона и метод Монте-Карло), полученные с помощью нескольких компиляторов с языка С (Microsoft Visual Studio, GNU С и Borland С) для различных платформ (18О86, MicroChip и Infenion С166). Результаты идентификации приведены в табл. 1

Третий эксперимент «Построение модели для программы управления шаговым двигателем на базе МК PIC16» проводился с целью исследования технологии построения модели управления шаговым двигателем и переноса на другую платформу. Исходными данными для эксперимента выступали готовая программа управления двигателем, реализованная для МК PIC16C56 и представленная в виде шестнадцатеричных кодов и принципиальная схема управления. В результате получен работоспособный код на языке «С», который позволил осуществить безболезненный перенос на платформы МК Infenion С166 и Intel i80386.

В ходе четвертого эксперимента «Реконструкция ОС реального времени для МК Infenion С167» исследовалась технология реконструкции и параметрической модификации операционной системы реального времени RTX Tiny OS для микроконтроллера Infenion С167. В качестве исходных данных использовались открытые исходные коды операционной системы RTX Tiny OS на языке ассемблера МК Siemens Infenion С16Х (общий объем 4072 операторных строки). В результате проведения эксперимента были улучшены характеристики ОСРВ, реализована вытесняющая приоритетная многозадачность с исключением инверсии приоритетов, появилась возможность использования семафоров с разделением по приоритетам.

Эффект от использования ОПВС

0,00 1 2 3 4 5

—♦— И сходное состояние 3,60 в,27 13,45 19,00 24,84

-»—Mal 80386 (32) 1.42 3,26 5,30 7,48 в,7В

-*—Slemsm CT 66 (16) 0,65 1,49 2,43 3,43 4,48

—t— РЮ1вС58(в) 0,46 1,06 1.72 fc4S 3,17

тыс. строк

Рис. 3. Эффект от использования ОПВС

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

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

Общий эффект от использования СА ОПВС, с учетом затрат fs составляет выигрыш в сложности внесения изменений от 1,7 до 3,5 раза.

В заключении приведены основные выводы и результаты диссертационной работы.

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

Основные результаты работы:

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

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

3. Для базовых целей проведения ОП построено отношение порядка в пространстве критериальных параметров «Степень модификации МПС - Требования к точности валидации».

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

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

6. Построен прототип программной системы поддержки ОПВС, эксперименты с которой, позволили добиться снижения стоимости внесения изменений в 1,7 - 3,5 раза за счет использования разработанных моделей средств автоматизации ОПВС.

Основное содержание работы (положения диссертации) опубликовано в 10 работах в том числе:

Статьи в журналах и сборниках трудов, тезисы и доклады конференций:

1. Martynov A.I., Negoda V.N. Formal models of embedded system reverse engineering process / Interactive Systems and Thechnologies: The Problem of Human-Computer Ineraction, - Collection of scientific papers, Ulyanovsk: U1STU, 2005, pp. 190-195.

2. Martynov A.I., Negoda V.N. Estimation of external effect from automation of embedded systems reverse engineering process / Interactive Systems and

Thechnologies: The Problem of Human-Computer Ineraction. - Collection of scientific papers, Ulyanovsk: U1STU, 2005, pp. 185-189.

3. Мартынов А.И. Модель процесса дезассемблирования в ходе обратного проектирования встроенных систем / Тезисы международной научно конференции «Континуальные алгебраические логики, исчисления и нейроинформатика в науке и технике», УлГТУ, Ульяновск, 2005, с. 102-105.

4. Мартынов А.И. Модель процесса укрупнения алгоритмов в ходе обратного проектирования встроенных систем / Тезисы международной научно конференции «Континуальные алгебраические логики, исчисления и нейроинформатика в науке и технике», УлГТУ, Ульяновск, 2005, с. 99-102.

5. Мартынов А.И. Общий подход к технологии проведения обратного проектирования / Труды шестого международного симпозиума «Интеллектуальные системы», Москва, 2004, с. 315-319.

6. Мартынов А.И. Технологический процесс обратного проектирования программного обеспечения встроенных систем / Тезисы международной научно-технической конференции «Современные информационные технологии», ПГТА, Пенза, 2004, с. 185-187.

7. Негода В.Н., Мартынов А.И. О выборе лингвистического обеспечения средств поддержки обратного проектирования / Тезисы международной научно-технической конференции «Современные информационные технологии», ПГТА, Пенза, 2004, с. 182-185.

8 Мартынов А.И. Автоматизация процесса распознавания программных функций в учебном процессе / Тезисы международной научно-технической конференции «Современные информационные технологии», ПГТА, Пенза, 2004, с. 275-277.

9. Martynov A.I. The emulator MCU PIC17C4X for Inranet / Interactive Systems: The Problem of Human-Computer Ineraction. Proceeding of the International Conference, Ulyanovsk: U1STU, 2001, p. 157.

10.Martynov A.I. General Scheme of Reverse Engineering / Interactive Systems: The Problem of Human-Computer Ineraction. Proceeding of the International Conference, Ulyanovsk: U1STU, 2003, pp. 58-59.

Список сокращений принятых в автореферате

ВС - встроенная система

ДВФ - дерево вызовов функций

ИД - исходные данные

МПС - микропроцессорная система

ОП - обратное проектирование

ОПВС - обратное проектирование встроенных систем

СЮ - операционная система

ПО - программное обеспечение

ПП - прямое проектирование

ГЕР - проектное решение

СА - средства автоматизации

СА ОПВС - средства автоматизации обратного проектирования встроенных систем

УФС - укрупненная функциональная схема

ЧПУ - числовое программное управление

ЯВУ - язык высокого уровня

ЯПРА - язык представления результатов агрегации

ЯПУФС - язык представления укрупненных функциональных схем

ЯШОП - язык шаблонов обратного проектирования

МАРТЫНОВ Антон Иванович Средства автоматизации обратного проектирования встроенных систем Автореферат диссертации на соискание ученой степени кандидата технических наук

Подписано в печать 10.10.05. Формат 60x84/16. Бумага писчая. Усл. п.л. 1.86. Уч.-изд.л. 1.00. Тираж 100 экз. Заказ .

Типография УлГТУ, 432027, Ульяновск, Северный Венец, 32.

N8 1 9 2 28

PI Ш Русский фон.д

2006-4 17410

Оглавление автор диссертации — кандидата технических наук Мартынов, Антон Иванович

Оглавление.

Введение.

Глава 1 Обратное проектирование в САПР встроенных систем.

1.1 Модели прямого проектирования и их связь с обратным проектированием.

1.2 Состав и анализ исходных данных для ОПВС.

1.2.1 Анализ фрагментов машинного кода.

1.2.2 Анализ исходных текстов программ.

1.2.3 Анализ схем.

1.3 Инструментальные средства поддержки ОПВС.

1.3.1 Дизассемблеры.

1.3.2 Декомпиляторы.

1.3.3 СА8Е-средства.

1.4 Базовые положения подхода к проведению ОПВС.

Выводы по первой главе.

Глава 2 Разработка и исследование моделей поддержки процесса ОПВС.

2.1 Разработка базовых сценариев обратного проектирования.

2.1.1 Сценарий анализа состояния разработки.

2.1.2 Сценарий восстановления проектных решений.

2.1.3 Сценарий поиска эффективного решения.

2.1.4 Сценарий параметрической модификации.

2.1.5 Перенос на другую платформу.

2.1.6 Перепроектирование системы.

2.1.7 Классификация сценариев ОП.

2.2 Разработка базовых моделей процесса ОП.

2.3 Разработка лингвистических моделей.

2.3.1 Язык представления результатов агрегации.

2.3.2 Язык представления укрупненных функциональных схем.

2.3.3 Язык шаблонов обратного проектирования.

2.4 Разработка графовых моделей для представления продуктов ОП.

2.4.1 Разбиение графа на множество непересекающихся интервалов.

2.4.2 Получение производных последовательностей.

2.4.3 Классификация полученных последовательностей.

2.5 Разработка моделей валидации.

2.5.1 Функциональное тестирование.

2.5.2 Валидация по времени.

2.5.3 Валидация по объему кода.

2.5.4 Модель драйвера тестирования.

2.6 Выводы по второй главе.

Глава 3 Разработка и исследование моделей средств поддержки ОП.

3.1 Разработка обобщенной структурно-функциональной схемы системы поддержки ОПВС.

3.2 Алгоритмические модели основных преобразований процесса ОПВС.

3.2.1 Дизассемблирование.

3.2.2 Структурный анализ.

3.2.3 Анализ схем.

3.2.4 Укрупнение алгоритмов и семантический анализ.

3.2.5 Оценка результатов и создание документации.

3.3 Модель оценки эффективности С А ОПВС.

3.4 Выводы по третьей главе.

Глава 4 Экспериментальные исследования разработанных моделей.

4.1 Разработка спецификаций и гипертекстовой документации программного обеспечения ультразвукового расходомера — теплосчетчика.

4.2 Поиск типовых решений на примере идентификации методов численного интегрирования.

4.3 Построение модели для программы управления шаговым двигателем на базе МК PIC16.

4.4 Реконструкция ОС реального времени для МК Infenion С167.

4.5 Выводы по четвертой главе.

Введение 2005 год, диссертация по информатике, вычислительной технике и управлению, Мартынов, Антон Иванович

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

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

Известно, что стоимость внесения изменений в разрабатываемую систему возрастает экспоненциально. Для ВС, которые традиционно относятся к сложным системам, значение коэффициента сложности разработки по Б.У.Боэму [5] является максимальным. Это значение может быть снижено за счет использования средств автоматизации. Исследования В.В.Липаева [47] показывают, что применение средств автоматизации проектирования программных систем дает наибольший эффект при создании систем реального времени, что определяется жесткими требованиями к параметрам функционирования таких систем и сложностью поведения внешней среды систем контроля и управления. Факторы, усложняющие прямое проектирование ПО ВС, при обратном проектировании обостряются. Это связано с двумя основными причинами. Во-первых, при прямом проектировании разработчик ПО всегда имеет доступ к спецификациям моделей поведения внешней среды, а при обратном проектировании такого доступа часто нет. Во-вторых, при порождении кода программ ВС активно используется хорошо структурированная система проектных решений, что декомпозирует сложные задачи на более простые и существенно упрощает процесс программирования. У специалиста по обратному проектированию обычно нет доступа к спецификациям проектных решений, и объем входных данных и неопределенностей, с которыми он имеет дело, многократно превышает то, с чем работает проектировщик ОПВС. Для того, чтобы средства автоматизации ОПВС успешно справлялись с указанными факторами сложности целесообразно наделить их следующими свойствами:

• возможность автоматизации наиболее трудоемких процессов ОПВС;

• поддержка интеграции артефактов и процессов ОП, полученных автоматическими анализаторами и человеком;

• иметь сквозной характер разработки, то есть возможность поддерживать различные этапы ОП и обеспечивать связь между ними;

• гетерогенность - универсальность по отношению к различным микропроцессорным архитектурам;

• возможность адаптации средств к изменяющимся целям ОП и составу исходных данных;

• охватывать как программную, так и аппаратную составляющие.

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

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

Область исследования — автоматизация обратного проектирования встроенных систем.

Объект исследования — средства автоматизации обратного проектирования встроенных систем.

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

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

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

2. Анализ и классификация основных целей обратного проектирования с точки зрения их влияния на технологию и трудоемкость проведения ОПВС.

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

4. Разработка моделей артефактов обратного проектирования и процессов автоматизации его этапов.

5. Разработка базовых архитектурных решений средств автоматизации обратного проектирования и основ эффективной технологии его реализации на основе применения этих средств.

6. Экспериментальное исследование разработанных методов и моделей.

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

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

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

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

3. Для обеспечения возможности построения семейства конструктивных алгоритмических моделей, ориентированных на конкретные цели, построено отношение порядка в пространстве критериальных параметров «Степень модификации МПС -Требования к точности валида-ции».

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

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

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

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

2. Разработана ВМБ-форма для языка шаблонов обратного проектирования, обеспечивающая автоматическое построение интерпретаторов с использованием инструментальных средств построения лингвистических процессоров.

3. Построен набор базовых шаблонов ОПВС.

4. Разработана модель оценки эффективности СА ОПВС, базирующаяся на широко распространенных метриках Б.У. Боэма и М.Х. Холстеда.

Достоверность и эффективность. Достоверность полученных в диссертации результатов подтверждается результатами экспериментальных разработок. Эффективность подхода оценивается на основе широко распространенных метрик М.Х.Холстеда и Б.У .Боэма и в проведенных экспериментальных исследованиях характеризуется значением, лежащим в пределах 1,7- 3,5.

Внедрение результатов. Диссертационная работа является обобщением результатов, полученных автором в Ульяновском государственном техническом университете в процессе выполнения в 2000-2005 годах научно-исследовательских работ, в том числе: "Разработка спецификаций и гипертекстовой документации программного обеспечения ультразвукового расходомера - теплосчетчика" (Ульяновск, ООО «Тисса»). Методика ОПВС передана для использования на Ульяновский завод тяжелых станков (ОАО УЗТС), Ульяновский автомобильный завод (АО УАЗ), внедрена в учебном процессе двух специальностей УлГТУ.

Апробация работы. Основные научные и практические результаты исследований по теме диссертации докладывались на 4-ой международной конференции «Интерактивные системы: Проблемы человеко-компьютер-ного взаимодействия» (Ульяновск, 2001), на 6-ом международном симпозиуме «Интеллектуальные системы» (Москва, 2004), на международной конференции «Континуальные алгебраические логики, исчисления и нейроин-форматика в науке и технике» (Ульяновск, 2005), на заседании кафедры

Вычислительная техника» (Ульяновск, 2005), на постоянно действующих городских семинарах «Встроенные системы» (Ульяновск).

Публикации. Материалы диссертации опубликованы в 18 работах. Из них 8 статей, 2 тезиса докладов и материалов научных конференций и 8 свидетельств о регистрации программно-информационных продуктов.

Структура и объем диссертации. Диссертация состоит из введения, четырех глав, заключения, списка используемой литературы, включающего 120 наименований, и приложения. Основная часть работы изложена на 180 страницах машинописного текста. Работа содержит 36 рисунков и 11 таблиц.

Заключение диссертация на тему "Средства автоматизации обратного проектирования встроенных систем"

4.5 Выводы по четвертой главе

В результате экспериментирования с прототипом СА ОПВС были подтверждены предложенные в работе модели и языковые средства автоматизации ОПВС.

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

В ходе второго эксперимента «Поиск типовых решений на примере идентификации методов численного интегрирования» исследовался процесс идентификации типовых ПР на примере разнообразных вариантов реализации алгоритмов численного интегрирования.

Третий эксперимент «Построение модели для программы управления шаговым двигателем на базе МК Р1С16» проводился с целью исследования технологии построения модели управления шаговым двигателем и переноса на другую платформу.

В ходе четвертого эксперимента «Реконструкция ОС реального времени для МК Infenion С167» исследовалась технология реконструкции и параметрической модификации операционной системы реального времени RTX Tiny OS для микроконтроллера Infenion С167.

Общие результаты экспериментов представлены на рис. 4.7.

Эксперимент №2

Поиск типовых решений на примере идентификации методов численного интегрирования оу

-:-•

Эксперимент №1

Разработка спецификаций и гипертекстовой документации по незавершенной разработке ПО ультразвукового расходомера- теплосчетчика

Анализ состояния разработки

Параметрическая модификация

Восстановление проектных решений

Перенос на другую платформу

Поиск эффективного решения

Эксперимент №3

Построение модели программы управления шаговым двигателем на базе МК Р1С16С56

Эксперимент №4

Реконструкция ОС реального времени для МК 1^епюп С167

Рис. 4.7. Результаты экспериментов

Заключение

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

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

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

3. Выявлены основные критерии ОПВС, на основе которых произведена классификация сценариев обратного проектирования.

4. Разработан набор лингвистических средств, необходимых для автоматизации ОПВС. Сформулированы требования к ЯПРА, составлена ВОТ-форма для ЯШОП, определены правила перехода от принципиальных схем к УФС и описан ЯПУФС.

5. Разработаны базовые алгоритмические, графовые модели процессов, входящих в состав ОПВС на основе которых осуществляется автоматизация.

6. Построен прототип программной системы поддержки ОПВС, эксперименты с которой, позволили добиться снижения стоимости внесения изменений в 1,7 - 3,5 раза за счет использования разработанных моделей средств автоматизации ОПВС.

Список сокращений принятых в диссертации

ВС - встроенная система

ДВФ - дерево вызовов функций

ИД - исходные данные

МПС - микропроцессорная система

ОП - обратное проектирование

ОПВС - обратное проектирование встроенных систем

ОС - операционная система

ПО - программное обеспечение

ПП - прямое проектирование

ПР - проектное решение

СА - средства автоматизации

САОПВС - средства автоматизации обратного проектирования встроенных систем

УФС - укрупненная функциональная схема

ЧПУ - числовое программное управление

ЯВУ - язык высокого уровня

ЯПРА - язык представления результатов агрегации

ЯПУФС - язык представления укрупненных функциональных схем

ЯШОП - язык шаблонов обратного проектирования

Библиография Мартынов, Антон Иванович, диссертация по теме Системы автоматизации проектирования (по отраслям)

1. Абрамов С.А. Элементы анализа программ. - М.: Наука, 1986.

2. Безруков Н. Разработка программ с открытыми исходниками как особый вид научных исследований / http://firstmonday.org/issues/ issue410/

3. Бенькович Е., Колесов Ю., Сениченков Ю. Практическое моделирование динамических систем. СПб.: БХВ-Петербург, 2002

4. Блюмин СЛ., Щеглов К.Е. Декомпиляция выражений в объектных модулях // Материалы научно-технической конференции МГТУ / Секция «Компьютерные и информационные технологии в технических системах, экономике, науке и образовании», 2000.

5. Боэм Б.У. Инженерное проектирование программного обеспечения: Пер. с англ. Радио и связь, 1985. - 512с.

6. Буч Г. Объектно-ориентированное проектирование с примерами применения. -М.: Конкорд, 1992.

7. Буч Г., Рамбо Д., Джекобсон А. Язык UML. Руководство пользователя: Пер. с англ. -ДМК, 2000. 432с.

8. Вендров A.M. CASE-технологии. Современные методы и средства проектирования информационных систем. М.- МП "Экономика", 1998

9. Вендров A.M. Проектирование экономических систем. М.: Финансы и статистика, 2002. - 352с.

10. Гаврилова Т.А., Хорошевский В.Ф. Базы знаний интеллектуальных систем СПб. Литер, 2001.

11. Гибсон Г., Лю Ю-Ч. Аппаратные и программные средства микро-ЭВМ / Под ред. В.В. Степашина. Пер. с англ. B.JI. Григорьева. М:. Финансы и статистика, 1983. 255с.:ил.

12. Гома X. UML. Проектирование систем реального времени, распределенных и параллельных приложений. — М:ДМК, 2002. с.704.

13. Григорьев В.Л. Программное обеспечение микропроцессорных систем.-М., 1983.

14. Грин Д., Кнут Д. Математические методы анализа алгоритмов. -М.: Мир, 1987

15. Грофф Дж., Вайнберг П. 8С>Ь: Полное руководство. Киев.:ВНУ,1998

16. Губанов Ю.А. Возвратное проектирование программного обеспечения в САБЕ-средствах: дипломная работа, СПбГУ, 2000.

17. Гуляев В.А. Коростиль Ю.М. Диагностирование программного обеспечения микропроцессорных систем. К: Тэхшка, 1991. - 140с.

18. Гусенко М.Ю. Анализ и метод восстановления управляющих конструкций кода структурной обработки исключений в приложениях \Vin32 // Информационные технологии. М., 1999. - № 9, - С. 32-44.

19. Гусенко М.Ю. Вопросы обратной трансляции программного обеспечения специального назначения // Научно-технический сборник «Специальная техника средств связи», ПНИЭИ, 2000 г.

20. Гусенко М.Ю. Декомпиляция типов данных исполняемых модулей "^п32 // Безопасность и конфиденциальность информации в сетях и системах: Тез. докл. науч.-тех. конф. 6-9 октября 1998 г. Пенза, 1998. -С. 35.

21. Гусенко М.Ю. Декомпиляция типов данных исполняемых модулей "^п32 // Информационные технологии и информационная безопасность: Тез. науч.-техн. конф. 22-23 апреля 1999 г.

22. Гусенко М.Ю. Метод анализа идиом в исполняемом коде с целью декомпиляции // Межрегиональная конференция «Информационная безопасность регионов России»: Тез. науч.-техн. конф. 13—15 октября1999 г. // СПб: Издательство СПбГТУ, 1999. С. 65-67.

23. Гуссенс М., Ратц С. Путеводитель по пакету Latex и его Web-приложениям. М.:Мир, 2001

24. Джонс Дж.К. Методы проектирования. М.: Мир, 1986.

25. Дубаков М. Веб-мастеринг средствами CSS. СПб.:БХВ-Петербург, 2002

26. Ершов А.П. Введение в теоретическое программирование: беседы о методе. М, Наука, 1981.

27. Ершов А.П. Теория схем программ: состояние дел. Проблемы кибернетики. т.27,1973.

28. Зелковиц М., Шоу А., Гэнон Дж. Принципы разработки программного обеспечения / Пер. с англ. М.: Мир, 1982. - 386 с.

29. Зиндер Е.З. Новое системное проектирование: информационные технологии и бизнес-реиинжениринг. // Системы управления базами данных. 1995. - №4.- с. 37-49.

30. Иванников А.Д. Моделирование микропроцессорных систем / Под ред. H.A. Медведева. М.: Энергоатомиздат, 1990. 144с.: ил.

31. Интегрированная среда разработки программного обеспечения встроенных систем Winter, http://nit.gsu.unibel.by/ru/ winter.

32. Каган Б.М., Мкртумян И.Б. Основы эксплуатации ЭВМ. М.: 1983

33. Капитонова Ю.В., Летичевский A.A. Математическая теория проектирования вычислительных систем. -М.: Наука, 1988

34. Кармайкл Э., Хейвуд Д. Быстрая и качественная разработка программного обеспечения. М.: Вильяме - 2003.

35. Касперски К. Записки исследователя компьютерных вирусов. СПб.: Питер, 2005.-320с.

36. Касперски К. Образ мышления — дизассемблер IDA. Том I. Описание функций встроенного языка IDA Pro. — М.: Солон, 2001. 480с.

37. Касьянов В.Н. Оптимизирующие преобразования программ. М.: Наука, Гл. ред. физ.-мат. лит. 1988. - 336 с.

38. Кознов Д.В. Визуальное моделирование компонентного программного обеспечения: диссертация на соискание ученой степени кандидата физико-математических наук, СПбГУ, 2000.40