Please enable JavaScript.
Coggle requires JavaScript to display documents.
Инструментальные средства разработки ПО. - Coggle Diagram
Инструментальные средства разработки ПО.
Инструментальное ПО условно делится на 4 группы:
часто используемые
– средства, использования которых, в отличие
от необходимых, можно избежать. Но без них процесс разработки
весьма затрудняется и удлиняется;
Из часто используемых средств стоит назвать:
утилиты автоматической сборки проекта;
отладчики;
программы создания инсталляторов;
редакторы ресурсов;
профилировщики;
программы поддержки версий;
программы создания файлов помощи (документации).
специализированные
– используются в исключительных случаях,
решают довольно специфичные задачи:
программы отслеживания зависимостей;
дизассемблеры;
декомпиляторы;
hex-редакторы;
программы отслеживания активности системы и изменений,
происходящих в системе;
программы-вериферы и контейнеры (создают виртуальную среду
для отдельных классов программ, в которой можно исследовать
поведение программы)
и т.д.
необходимые
– те, без которых невозможно в принципе получить
исполняемый код;
К необходимым можно отнести:
редакторы текстов;
компиляторы и ассемблеры;
компоновщики или редакторы связей (linkers);
интегрированные среды
– содержат большую часть из приведенных
выше программ и позволяют осуществлять
В каждом классе существуют огромное число продуктов, каждый со
своими особенностями, достоинствами и недостатками.
Универсальные характеристики для всех программ:
фирма-производитель, автор (зачастую имя производителя
значит больше, чем все остальное).
название продукта;
номер последней версии;
класс продукта, который установил для него производитель
(например, HackersViewer, который включает в себя неплохой
дизассемблер и редактор PE-файлов, поставляется просто как
hex-редактор);
тип дистрибьюции программы (с открытыми кодами/бесплатная
(freeware)/условно-бесплатная (shareware)/платная) и стоимость;
наличие и тип поддержки, ее стоимость;
доступность и качество документации;
простота и понятность интерфейса;
наличие пробных версий (для платных программ);
сайт программы и возможность ее скачки;
размер дистрибутива и его состав;
дополнительные (не основные) возможности, предоставляемые
программой;
Обычные программы (не интегрированные среды)
Компиляторы (ассемблеры) и редакторы связей
Эти два класса программ следует объединить, т.к. в поставку любого
современного компилятора входит и редактор связей.
Компилятор (ассемблер) формирует объектный код, переводя программу с
языка программирования (языка ассемблера), а редактор формирует
исполнимый файл, собирая объектные и библиотечные файлы и редактируя
перекрестные ссылки.
Для компиляторов можно указать следующие характеристики:
язык, с которого производится компиляция;
диалект/стандарт языка;
аппаратные платформы и ОС, для которых может формироваться
объектный и исполнимый файл;
наличие возможности и качество оптимизации кода;
форматы поддерживаемых объектных, библиотечных и
исполнимых файлов;
Представители.
C/C++: Intel C++ Compiler (Intel), Borland C++ Compiler, Watcom C++,
GNU C.
Pascal: Free Pascal, GNU Pascal
Редакторы текстов
Предназначены для ввода и корректировки текстов программ. Могут быть
как общими, так и предназначенными для поддержки конкретного языка(ов)
и/или сред(ы).
Характеристики:
формат и кодировка обрабатываемых файлов;
возможность выделения лексем в тексте;
возможность поддержки оформления текста в соответствии с
парадигмами языка;
возможность вызывать процесс компиляции прямо из редактора;
возможность генерации части текста программы (чаще бывает не
у редакторов, а у сред).
Отладчики
Предназначены для пошагового отслеживания работы программы,
слежения за изменением ее и системных переменных, изменением состояния
процессора во время работы программы и т.д.
Различают два основных типа отладчиков:
отладчики пользовательского режима;
отладчики режима ядра;
Отладчики пользовательского режима могут лишь следить за работой программ пользовательского
режима и не способны ни отслеживать системные вызовы, ни следить за
работой ядра. Кроме того, для использования таких отладчиков программа
должна быть соответствующим образом подготовлена (скомпилирована).
Отладчики же режима ядра, напротив, позволяют полностью
контролировать работу системы, а, следовательно, и всех программ.
Характеристики:
тип (режима ядра/пользовательский);
поддержка символьной отладки (способность читать исходные
коды программы и работать с ними). Набор поддерживаемых
языков (сред/диалектов);
набор отображаемой информации: регистры процессора, стек,
память (режимы отображения содержимого памяти);
поддерживаемые режимы отладки: пошаговый, с точками
останова, с реакцией на события в системе;
состав отслеживаемых событий в системе: аппаратные
прерывания, обращения к драйверу (другому модулю ядра),
вызов функции и т.д.
(обычно для отладчиков режима ядра) требования к аппаратной
поддержке, возможность работы на «живой» системе;
возможность анализа файлов дампа.
Представители.
Отладчики пользовательского режима: Turbo Debugger (Borland Software
Corporation), Cool Debugger (Wei Bao), W32Dasm
Отладчики режима ядра: i386kd/alphakd/ia64kd и WinDbg (Microsoft
Corporation) (для работы в “живую” требуют 2 машины. Для обхода этого
ограничения существует надстройка LiveKd (Mark E. Russinovich)), SoftIce
(NuMega).
Программы создания инсталляторов
Предназначены для создания дистрибутивов программ и пакетов
программ.
Задачи, выполняемые подобными программами для различных платформ,
могут сильно различаться. Мало того, с выходом Windows Installer и
опубликования его API для платформы Win32 началось разделение программ
на поддерживающие WI и использующие свои средств.
Как правило, все дистрибутивы имеют интерфейс программ-мастеров (т.е.
пошаговое уточнение настроек). Кроме того, почти всегда имеется
возможность удаления установленной программы.
Характеристики:
ориентированны на использование Windows Installer или
используют свои средства;
возможность автоматического отслеживания зависимостей
исполнимых файлов и разделяемых библиотек;
наличие встроенного языка сценариев;
возможность и пределы, в которых можно изменять поведения
мастера инсталляции;
возможность использования и поддержка национальных языков;
функции, поддерживаемые в процессе установки (кроме
копирования файлов):
a) создание ключей реестра;
b) регистрация COM-объектов;
c) перезагрузка системы после или в процессе установки;
возможность удаления установленной программы;
возможность контроля версий устанавливаемой программы
(перезапись, если необходимо) и разделяемых библиотек;
возможность и степень сжатия дистрибутива;
возможность создания дистрибутива, состоящего из одного, или
заданного количества файлов;
Представители.
InstallShield (Install Shield Corp.), Wise InstallMaster Setup (Wise Solutions),
Factory (Indigo Rose Corp.), Ghost Installer Studio;
GkSetup (Gero Kuehn), Nullsoft Install System (Nullsoft), GP-Install (Quality
Software Components), Little Setup Builder (
http://www.ammasw.eboard.com
),
Inno Setup (
http://www.gentee.com
), Setup Generator
(
http://www.jrsoftware.org
), Ghost Installer (
http://www.ginstall.com
).
Редакторы ресурсов
Создают и обрабатывают файлы ресурсов, которые после обработки
могут быть скомпилированы и включены в исполнимый модуль. Эти
программы специфичны для платформы Win.
Характеристики:
состав поддерживаемых ресурсов;
возможность работы с нестандартными ресурсами;
возможности импорта и экспорта ресурсов.
Представители.
Borland Resource Workshop, eXe Scope, Resource Builder (SiComponents),
Resource Explorer (
http://batry.hypermart.net
).
Профилировщики
Дают возможность отслеживать время работы программы в целом и
отдельных ее частей.
Характеристики:
поддерживаемые платформы;
возможности кросс-профилировки (эмуляции системы);
вид выдаваемых данных (графики, гистограммы, таблицы);
Представители.
Intel VTune (Intel), AMD Code Analyst (AMD).
Программы поддержки версий
Представители.
Visual Source Safe (Microsoft Cor.), Nexus Safe Source;
Программы создания файлов помощи (документации).
Позволяют создавать файлы помощи, автоматизировать
документирование.
Характеристики:
форматы поддерживаемых выходных файлов (hlp, chm, html, pdf,
...);
средства, необходимые для работы с файлами документации;
возможность конвертирования из других распространенных
форматов;
возможность структурирования информации в файле помощи;
возможность организации поиска по документации;
возможность интеграции в существующие среды (например, для
библиотеки COM – объектов возможность вызывать справку по
ней при нажатии F1, если курсор стоит на объекте из этой
библиотеки)
возможность автоматической генерации помощи (или заготовки)
по описанию библиотеки, COM-объекта.
Представители.
RoboHelp (), Anet Help Tool, Help and Manual, Visual CHM, Adobe Acrobat
(Adobe)
Дизассемблеры и декомпиляторы;
Предназначены для получения исходного кода на языке
программирования из исполняемого модуля.
Характеристики:
поддерживаемые языки (компиляторы).
возможность использования символьной информации о файле
(отладочной и др.)
возможность интерактивной работы с листингом (замены имен
переменных и функций, отслеживания вызовов, модификация
кода)
Представители.
Interactive DisAssembler (Data Resource), Sourcer, Decafe Pro, DeDe,
Программы отслеживания активности системы и
изменений, происходящих в системе;
Позволяют отслеживать действия программ по изменению реестра,
файловой системы, вызовов системных сервисов и т.д. Следят за
загруженностью системы в целом.
Характеристики
тип отслеживаемых изменений/активности;
возможность протоколирования (логирования);
возможность фильтрации получаемой информации;
возможность уведомления;
Представители.
Microsoft: Spy++, Process Viewer, ApiMon, SysMon (для Win2000/XP –
ActiveX компонент для mmc).
Winternals Systems (Mark E. Russinovich): RegMon, FileMon, HandleEx.
Программы-вериферы и контейнеры.
Создают виртуальную среду для отдельных классов программ, в которой
можно исследовать поведение программы):
Представители.
Driver Verifier, ActiveX Control Test Container (Microsoft Corp.)
Интегрированные системы
Включают в себя большую часть выше перечисленных средств и
обеспечивают их взаимосвязь.
Представители.
Microsoft Visual Studio (.Net) (Microsoft Corp.), Borland Delphi, Borland C++
Builder, Kylix (Borland Software Corporation), NuMega Driver Studio (NuMega),
Eclipse (IBM).