Инструментальное программное обеспечение, его назначение и состав

Автор: Пользователь скрыл имя, 09 Января 2012 в 23:46, реферат

Описание работы

Инструментальное программное обеспечение — программное обеспечение (ПО), предназначенное для использования в ходе проектирования, разработки и сопровождения программ. Обычно этот термин применяется для акцентирования отличия данного класса ПО от прикладного и системного программного обеспечения.

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

Работа содержит 1 файл

Задание.doc

— 82.00 Кб (Скачать)

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

     Линковщик (также редактор связей, англ. linker, link editor) — программа, которая принимает на входе один или несколько объектных модулей и собирает по ним исполняемый модуль.

     Для связывания модулей, линковщик использует таблицы имён, созданные компилятором в каждом из объектных модулей. Такие имена могут быть двух типов:

     Определённые или экспортируемые имена — функции и переменные, определённые в данном модуле и предоставляемые для использования другим модулям

     Неопределённые или импортируемые имена — функции и переменные, на которые ссылается модуль, но не определяет их внутри себя

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

     Ассемблер (от англ. assemble — собирать) — компилятор с языка ассемблера в команды машинного языка. Русифицированное название - МНЕМОКОД. Предназначен для представления в удобном (мнемоническом) виде машинные коды команд. Пример команд на МНЕМОКОДЕ: СЛЖ - сложить, ВЧТ - вычесть, ПРХ - переход и другие. Обеспечивает наиболее эффективное использование ресурсов системы (процессор, память, периферия). Используется в "узких" местах - требуется большое быстродействие, ограничение по размеру оперативной памяти и другие. Ассемблером также называют иногда саму систему команд центрального процессора.

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

     Наиболее  распространённые на сегодня архитектуры — x86 и PowerPC.

     Наиболее  известными ассемблерами для операционной системы DOS являлись Borland Turbo Assembler (TASM) и Microsoft Assembler (MASM). Также в своё время был популярен простой ассемблер A86.

     Изначально  они поддерживали лишь 16-битные команды (до появления процессора Intel 80386). Более  поздние версии TASM и MASM поддерживают и 32-битные команды, а также все команды, введённые в более современных процессорах, и системы команд, специфических для конкретной архитектуры (такие как, например, MMX, SSE, 3DNow! и т. д.).

     Windows

     При появлении операционной системы  Windows появилось расширение TASM, именуемое TASM32, позволившее создавать программы для выполнения в среде Windows. Последняя известная версия Tasm — пятая, включая различные к ней дополнения. Но официально развитие программы полностью остановлено.

     Совсем  по-другому обстоит дело с программой MASM. Она продолжает развиваться и по сей день, последние версии включены в наборы DDK. Но версия программы, направленная на создание программ для ДОС, также не развивается.

     Для более удобного создания программ на ассемблере для Windows появился пакет, названный MASM32, автором которого является hutch (Стив Хатчессон). Более подробная информация доступна на сайте пакета MASM32 —

     Linux

     Несколько иначе обстоит ситуация с ассемблерами для другой известной операционной системы Linux. В её состав входит компилятор gcc, включающий в себя ассемблер gas (GNU Assembler)… Но в нём используется AT&T синтаксис, в отличие от Intel-синтаксиса, используемого в большинстве остальных ассемблеров.

     Переносимые ассемблеры

     Также существует открытый проект ассемблера, версии которого доступны под различные операционные системы, и который позволяет получать объектные файлы для этих систем. Называется этот ассемблер NASM (Netwide Assembler).

     FASM — молодой, но быстро развивающийся и завоёвывающий популярность ассемблер, распространяется с исходным кодом, есть версии для Linux и Windows, использует Intel-синтаксис. Достоинством является очень сильный макроязык, разнообразие форматов выходных файлов и несколько изменённый (в лучшую сторону, но несколько непривычный для «старой школы») синтаксис. 

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

     Например  низкоуровневый отладчик SoftICE для операционных систем семейства windows 
 

     Генератор документации — программа или пакет программ, позволяющая получать документацию, предназначенную для программистов (документация на API) и/или для конечных пользователей системы, по особым образом комментированному исходному коду и, в некоторых случаях, по исполняемым модулям (полученным на выходе компилятора).

     Обычно, генератор анализирует исходный код программы, выделяя синтаксические конструкции, соответствующие значимым объектам программы (типам, классам и их членам/свойствам/методам, процедурам/функциям и т. п.). В ходе анализа также используется мета-информация об объектах программы, представленная в виде документирующих комментариев. На основе всех собранной информации формируется готовая документация, как правило, в одном из общепринятых форматов — HTML, HTMLHelp, PDF, RTF и других.

     Документирующие комментарии

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

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

     Популярные  генераторы документации

     Наиболее  известные генераторы документации:

     Javadoc — для программ на Java

     Doxygen

     NDoc — для программ на C#, VB.NET и других языков платформы .NET

     Doc-O-Matic

     Document! X

     HappyDoc

     PHPDoc — адаптация Javadoc для использования с PHP

     POD

     ROBODoc

     TwinText

     VBdocman — для VB6 и VB.NET

     WEB / CWEB  
 
 

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

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

     Существует  несколько различных способов измерения  покрытия, основные из них:

     Покрытие  операторов — каждая ли строка исходного кода была выполнена и протестирована?

     Покрытие  условий — каждая ли точка решения (вычисления истинно ли или ложно выражение) была выполнена и протестирована?

     Покрытие  путей — все ли возможные пути через заданную часть кода были выполнены и протестированы?

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

     Непрерывная интеграция (англ. Continuous Integration) — термин, относящийся к разработке программного обеспечения и обозначающий автоматизированный процесс, выполняющий частые переборки и тесты приложения. Обычно это выглядит как процесс на сервере либо демон, который следит за изменениями на файловой системе либо в системе управления версиями (такой как Subversion или CVS) и автоматически запускает полную переборку всех модулей приложения и прогон тестов (например, на основе JUnit или NUnit). Во многих случаях, при сборке проекта помимо собственно компиляции может выполняться автоматическая генерация документации, веб-страниц, статистики и подготовка дистрибутивов (таких как .MSI-файлы для Windows или RPM-пакеты).

     Основные  преимущества непрерывной интеграции:

     проблемы  интеграции выявляются и исправляются непрерывно, а не в самом конце  разработки;

     ранние  предупреждения об испорченном /несовместимом коде;

     немедленное юнит-тестирование всех изменений;

     постоянное  наличие «текущей» собранной  версии — для тестирования, демонстрации, других применений;

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

     Основные  недостатки:

     затраты на поддержку работы непрерывной  интеграции;

     потенциальная необходимость в выделенном сервере  под нужды непрерывной интеграции;

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

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

     Такие системы наиболее широко применяются при разработке программного обеспечения, для хранения исходных кодов разрабатываемой программы. Однако, они могут с успехом применяться и в других областях, в которых ведётся работа с большим количеством непрерывно изменяющихся электронных документов, в частности, они всё чаще применяются в САПР, обычно, в составе систем управления данными об изделии (PDM). Управление версиями используется в инструментах конфигурационного управления (Software Configuration Management Tools).

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

     Общие сведения

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

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

Информация о работе Инструментальное программное обеспечение, его назначение и состав