Лекция. Лекция 1 Инструменталка. Структура программного обеспечения компьютера. Понятие инструментальное средство Под программным обеспечением
Скачать 251.19 Kb.
|
Структура программного обеспечения компьютера. Понятие «инструментальное средство» Под программным обеспечением (Software) понимается сово- купность программ и соответствующей документации, выполняе- мых вычислительной системой. К программному обеспечению (ПО) относится также вся об- ласть деятельности по проектированию и разработке ПО: – технология проектирования программ (например, нисходящее проектирование, структурное и объектно-ориентированное проек- тирование и др.); – методы тестирования программ; – методы доказательства правильности программ; – анализ качества работы программ; – документирование программ; – разработка и использование программных средств, облегча- ющих процесс проектирования программного обеспечения; и др. В первом приближении все программы, работающие на ком- пьютере, можно условно разделить на три категории. 1. Прикладные программы, непосредственно обеспечиваю- щие выполнение необходимых пользователям работ. 2. Системные программы, выполняющие различные вспомо- гательные функции, например: – управление ресурсами компьютера; – создание копий используемой информации; – проверка работоспособности устройств компьютера; – выдача справочной информации о компьютере; и др. 3. Инструментальные программные системы, облегчающие процесс создания новых программ для компьютера. Инструментальные программные средства – это программы, которые используются в ходе разработки, корректировки или раз- вития других прикладных или системных программ. По своему назначению они близки системам программирова- ния. К инструментальным программам, например, относятся: – текстовые редакторы; – интегрированные среды разработки; – SDK; – компиляторы; – интерпретаторы; – компановщики (линковщики); – парсеры; – ассемблеры; – отладчики; – профилировщики; – генераторы документации; – средства анализа покрытия кода; – средства непрерывной интеграции; – средства автоматизированного тестирования; – системы управления версиями; – графические пакеты программ. Инструментальные программные средства могут оказать по- мощь на всех стадиях разработки ПО. Текстовый редактор – самостоятельная компьютерная про- грамма или компонента программного комплекса, предназначен- ная для создания и изменения текстовых данных. Построчный (строковый) текстовый редактор (line editor) ра- ботает с текстом как с последовательностью пронумерованных строк, выполняя операции над текстом в указанных строках. Примером та- кого редактора может быть Edlin, входивший в состав MS-DOS. Контекстный (строковый) редактор (context editor), при- мером которого может быть ECCE (Edinburgh Compatible Context Editor), выполняет операции над текстом в текущей позиции. Экранный текстовый редактор позволяет пользователю переме- щать курсор в тексте с помощью клавиш или других устройств ввода. Многие текстовые редакторы являются редакторами исходного кода, то есть они ориентированы на работу с текстами программ на тех или иных компьютерных языках. Интегрированная среда разработки (ИСР) (IDE, Integrated development environment или Integrated debugging environment) – си- C стема программных средств, используемая программистами для разработки программного обеспечения. Обычно среда разработки включает в себя: – текстовый редактор; – компилятор и/или интерпретатор; – средства автоматизации сборки; – отладчик. Иногда среда разработки содержит также средства для интегра- ции с системами управления версиями и разнообразные инстру- менты для упрощения конструирования графического интерфейса пользователя. Хотя и существуют ИСР, предназначенные для не- скольких языков программирования – такие как Eclipse, NetBeans, Embarcadero RAD Studio, Qt Creator или Microsoft Visual Studio, но обычно ИСР предназначается для одного определенного язы- ка программирования, такого, например, как Visual Basic, Delphi, Dev-C++. Частный случай ИСР – среды визуальной разработки, которые включают в себя возможность визуального редактирования интер- фейса программы. ИСР обычно представляет собой единственную программу, в которой проводилась вся разработка. Она обычно содержит много функций для создания, изменения, компилирования, развертыва- ния и отладки программного обеспечения. SDK (Software development kit) – комплект средств разработки, который позволяет специалистам по программному обеспечению создавать приложения для определенного пакета программ, про- граммного обеспечения базовых средств разработки, аппаратной платформы, компьютерной системы, игровых консолей, операци- онных систем и прочих платформ. Программист, как правило, получает SDK непосредственно от разработчика целевой технологии или системы. Часто SDK рас- пространяется через Интернет. Многие SDK распространяются бесплатно для того, чтобы побудить разработчиков использовать данную технологию или платформу. Поставщики SDK иногда заменяют слово «software» в словосо- четании «software development kit» на более точное определение. Например, Microsoft и Apple предоставляют Driver Development Kit (DDK) для разработки драйверов устройств, PalmSource называ- ет свой инструментарий для разработки PalmOS Development Kit (PDK), а Oracle – Java Development Kit (JDK). Компилятор – программа или техническое средство, выполня- ющее компиляцию. Компиляция – трансляция программы, составленной на исход- ном языке высокого уровня, в эквивалентную программу на низко- уровневом языке, близком машинному коду. Входной информаци- ей для компилятора (исходный код) является описание алгоритма или программа на проблемно-ориентированном языке, а на выходе компилятора – эквивалентное описание алгоритма на машинно- ориентированном языке (объектный код). Компилировать – проводить трансляцию машинной програм- мы с проблемно-ориентированного языка на машинно-ориентиро- ванный. Интерпретатор – программа (разновидность транслятора) или аппаратное средство, выполняющее интерпретацию. Интерпретация – пооператорный (покомандный, построчный) анализ, обработка и тут же выполнение исходной программы или запроса (в отличие от компиляции, при которой программа транс- лируется без ее выполнения). Компоновщик (редактор связей, линкер) – программа, кото- рая производит компоновку: принимает на вход один или несколь- ко объектных модулей и собирает по ним исполнимый модуль. Работа компоновщика заключается в том, чтобы в каждом мо- дуле определить и связать ссылки на неопределенные имена. Для каждого импортируемого имени находится его определение в дру- гих модулях, упоминание имени заменяется на его адрес. Синтаксический анализ (парсинг) – это процесс сопоставле- ния линейной последовательности лексем (слов, токенов) языка с его формальной грамматикой. Результатом обычно является дере- во разбора (синтаксическое дерево). Например, XML, HTML, CSS, ini-файлы, специализированные конфигурационные файлы и т.п. Ассемблер (от англ. assembler – сборщик) – компьютерная про- грамма, компилятор исходного текста программы, написанной на языке ассемблера, в программу на машинном языке. Как и сам язык (ассемблера), ассемблеры, как правило, специ- фичны для конкретной архитектуры, операционной системы и ва- рианта синтаксиса языка. Вместе с тем существуют мультиплат- форменные или вовсе универсальные (точнее, ограниченно-уни- версальные, потому что на языке низкого уровня нельзя написать аппаратно-независимые программы) ассемблеры, которые могут работать на разных платформах и операционных системах. Среди последних можно также выделить группу кросс-ассемблеров, спо- собных собирать машинный код и исполняемые модули (файлы) для других архитектур и ОС. Отладчик (дебаггер) – компьютерная программа, предназна- ченная для поиска ошибок в других программах, ядрах операцион- ных систем, SQL-запросах и других видах кода. Отладчик позволя- ет выполнять пошаговую трассировку, отслеживать, устанавливать или изменять значения переменных в процессе выполнения кода, устанавливать и удалять контрольные точки или условия останов- ки и т.д. Популярные отладчики: – AQtime – коммерческий отладчик для приложений, созданных для .NET Framework версии 1.0, 1.1, 2.0, 3.0, 3.5 (включая ASP.NET приложения), а также для Windows 32- и 64-битных приложений; – DBX – стандартный отладчик уровня исходного кода для язы- ков C, C++, Фортран и Java, доступный для операционных систем Solaris, AIX, IRIX, Tru64 UNIX, GNU/Linux и BSD; – DDD – графический фронтэнд к отладчикам DBX и GDB, ис- пользующий библиотеку виджетов Motif; – DTrace – фреймворк динамической трассировки для Solaris, OpenSolaris, FreeBSD, Mac OS X и QNX; – GNU Debugger – портабельный отладчик уровня исходного кода и дизассемблер из системы программирования GNU, работа- ющий со многими языками программирования, операционными системами и системными архитектурами; – Microsoft Visual Studio – среда разработки программного обе- спечения корпорации Microsoft, включающая средства отладки уровня исходного кода; – TotalView – коммерческий отладчик для Unix; – WinDbg – бесплатный отладчик от корпорации Microsoft; – FlexTracer – коммерческий отладчик SQL-запросов для раз- личных СУБД. Профилирование – сбор характеристик работы программы, таких как время выполнения отдельных фрагментов (обычно под- программ), число верно предсказанных условных переходов, чис- ло кэш промахов и т.д. Инструмент, используемый для анализа работы, называют профилировщиком. Обычно выполняется со- вместно с оптимизацией программы. Характеристики могут быть аппаратными (время) или вызванными программным обеспечени- ем (функциональный запрос). Инструментальные средства анализа программы чрезвычайно важны для того, чтобы понять поведение программы. Проектировщики ПО нуждаются в таких инструмен- тальных средствах, чтобы оценить, как хорошо выполнена работа. Программисты нуждаются в инструментальных средствах, что- бы проанализировать их программы и идентифицировать крити- ческие участки программы. К профилировщикам можно отнести VTune, CodeAnalyst, AQtime. Генератор документации – программа или пакет программ, позволяющая получать документацию, предназначенную для про- граммистов (документация на API) и/или для конечных пользова- телей системы, по особым образом комментированному исходному коду и (в некоторых случаях) по исполняемым модулям (получен- ным на выходе компилятора). Покрытие кода – мера, используемая при тестировании про- граммного обеспечения. Она показывает в процентах долю проте- стированного исходного кода программы. Непрерывная интеграция (Continuous Integration) – это прак- тика разработки программного обеспечения, которая заключа- ется в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. В обычном проекте, где над разными частями системы разработчики трудятся независимо, стадия интеграции является заключительной. Автоматизированное тестирование программного обеспече- ния – часть процесса тестирования на этапе контроля качества в процессе разработки программного обеспечения. Оно использует программные средства для выполнения тестов и проверки резуль- татов выполнения, что помогает сократить время тестирования и упростить его процесс. Существует два основных подхода к автома- тизации тестирования: тестирование на уровне кода и тестирование пользовательского интерфейса. Для автоматизации тестирования существует большое количество приложений: HP LoadRunner, HP QuickTest Professional, HP Quality Center, Segue SilkPerformer, IBM Rational FunctionalTester, IBM Rational PerformanceTester, IBM Rational TestStudio, SmartBear Software TestComplete. Система управления версиями (Version Control System, VCS или Revision Control System) – программное обеспечение для облег- чения работы с изменяющейся информацией. Система управления версиями позволяет хранить несколько версий одного и того же до- кумента, при необходимости возвращаться к более ранним верси- ям, определять, кто и когда сделал то или иное изменение, и многое другое. В частности, системы управления версиями применяются в системах автоматизированного проектирования (САПР), обычно в составе систем управления данными об изделии (PDM). Управ-ление версиями используется в инструментах конфигурационного управления (Software Configuration Management Tools) |