Please enable JavaScript.
Coggle requires JavaScript to display documents.
Инструментальные средства разработки ПО. - Coggle Diagram
Инструментальные средства разработки ПО.
**Специализированные – используются в исключительных случаях,
решают довольно специфичные задачи:
программы отслеживания зависимостей;
дизассемблеры;
декомпиляторы;
hex-редакторы;text
программы отслеживания активности системы и изменений,
происходящих в системе;
программы-вериферы и контейнеры (создают виртуальную среду
для отдельных классов программ, в которой можно исследовать
поведение программы)
и т.д.**
1.1.9. Дизассемблеры и декомпиляторы;
Предназначены для получения исходного кода на языке
программирования из исполняемого модуля.
Характеристики:
поддерживаемые языки (компиляторы).
возможность использования символьной информации о файле
(отладочной и др.)
возможность интерактивной работы с листингом (замены имен
переменных и функций, отслеживания вызовов, модификация
кода)
Представители.
Interactive DisAssembler (Data Resource), Sourcer, Decafe Pro, DeDe,
1.1.10. Программы отслеживания активности системы и
изменений, происходящих в системе;
Позволяют отслеживать действия программ по изменению реестра,
файловой системы, вызовов системных сервисов и т.д. Следят за
загруженностью системы в целом.
Характеристики
тип отслеживаемых изменений/активности;
возможность протоколирования (логирования);
возможность фильтрации получаемой информации;
возможность уведомления;
Представители.
Microsoft: Spy++, Process Viewer, ApiMon, SysMon (для Win2000/XP –
ActiveX компонент для mmc).
Winternals Systems (Mark E. Russinovich): RegMon, FileMon, HandleEx.
1.1.11. Программы-вериферы и контейнеры.
Создают виртуальную среду для отдельных классов программ, в которой
можно исследовать поведение программы):
Представители.
Driver Verifier, ActiveX Control Test Container (Microsoft Corp.)
Часто используемые – средства, использования которых, в отличие
от необходимых, можно избежать. Но без них процесс разработки
весьма затрудняется и удлиняется;
Из часто используемых средств стоит назвать:
утилиты автоматической сборки проекта;
отладчики;
программы создания инсталляторов;
редакторы ресурсов;
профилировщики;
программы поддержки версий;
программы создания файлов помощи (документации).
1.1.3. Отладчики
Предназначены для пошагового отслеживания работы программы,
слежения за изменением ее и системных переменных, изменением состояния
процессора во время работы программы и т.д.
Различают два основных типа отладчиков:
отладчики пользовательского режима;
отладчики режима ядра;
Первые могут лишь следить за работой программ пользовательского
режима и не способны ни отслеживать системные вызовы, ни следить за
работой ядра. Кроме того, для использования таких отладчиков программа
должна быть соответствующим образом подготовлена (скомпилирована).
Отладчики же режима ядра, напротив, позволяют полностью
контролировать работу системы, а, следовательно, и всех программ.
1.1.4. Программы создания инсталляторов
Предназначены для создания дистрибутивов программ и пакетов
программ.
Задачи, выполняемые подобными программами для различных платформ,
могут сильно различаться. Мало того, с выходом Windows Installer и
опубликования его API для платформы Win32 началось разделение программ
на поддерживающие WI и использующие свои средств.
Как правило, все дистрибутивы имеют интерфейс программ-мастеров (т.е.
пошаговое уточнение настроек). Кроме того, почти всегда имеется
возможность удаления установленной программы.
1.1.5. Редакторы ресурсов
Создают и обрабатывают файлы ресурсов, которые после обработки
могут быть скомпилированы и включены в исполнимый модуль. Эти
программы специфичны для платформы Win.
1.1.6. Профилировщики
Дают возможность отслеживать время работы программы в целом и
отдельных ее частей.
1.1.7. Программы поддержки версий
Представители.
Visual Source Safe (Microsoft Cor.), Nexus Safe Source;
1.1.8. Программы создания файлов помощи (документации).
Позволяют создавать файлы помощи, автоматизировать
документирование.
Необходимые – те, без которых невозможно в принципе получить
исполняемый код;
К необходимым можно отнести:
редакторы текстов;
компиляторы и ассемблеры;
компоновщики или редакторы связей (linkers);
1.1.1. Компиляторы (ассемблеры) и редакторы связей
Эти два класса программ следует объединить, т.к. в поставку любого
современного компилятора входит и редактор связей.
Компилятор (ассемблер) формирует объектный код, переводя программу с
языка программирования (языка ассемблера), а редактор формирует
исполнимый файл, собирая объектные и библиотечные файлы и редактируя
перекрестные ссылки.
1.1.2. Редакторы текстов
Предназначены для ввода и корректировки текстов программ. Могут быть
как общими, так и предназначенными для поддержки конкретного языка(ов)
и/или сред(ы).
Интегрированные среды – содержат большую часть из приведенных
выше программ и позволяют осуществлять
В каждом классе существуют огромное число продуктов, каждый со
своими особенностями, достоинствами и недостатками.
Дадим краткую характеристику названным классам программ и приведем
некоторые критерии оценки, по которым можно сравнивать программы из
одного класса.
Но сначала укажем на характеристики, универсальные для всех программ:
фирма-производитель, автор (зачастую имя производителя
значит больше, чем все остальное).
название продукта;
номер последней версии;
класс продукта, который установил для него производитель
(например, HackersViewer, который включает в себя неплохой
дизассемблер и редактор PE-файлов, поставляется просто как
hex-редактор);
тип дистрибьюции программы (с открытыми кодами/бесплатная
(freeware)/условно-бесплатная (shareware)/платная) и стоимость;
наличие и тип поддержки, ее стоимость;
доступность и качество документации;
простота и понятность интерфейса;
наличие пробных версий (для платных программ);
сайт программы и возможность ее скачки;
размер дистрибутива и его состав;
дополнительные (не основные) возможности, предоставляемые
программой;
1.2.Интегрированные среды
Включают в себя большую часть выше перечисленных средств и
обеспечивают их взаимосвязь.
Представители.
Microsoft Visual Studio (.Net) (Microsoft Corp.), Borland Delphi, Borland C++
Builder, Kylix (Borland Software Corporation), NuMega Driver Studio (NuMega),
Eclipse (IBM).