И.А. Волкова, И.Г. Головин, Л.Е. Карпов - Системы программирования (1119414), страница 4
Текст из файла (страница 4)
Наиболее удобныеотладчики работают в терминах классов, объектов, переменных, используясемантику и терминологию пользователей.Генераторы тестов, позволяющие формировать входные данные длятрансляторов. Генераторы тестов также способны генерировать тесты,содержащие ошибочные конструкции, что позволяет проверятьдиагностические средства трансляторов.Средства автоматизации прогонов тестов, позволяющие избежать “ручного”запуска большого количества тестов. В случаях тестирования графическихинтерфейсовполезнысредствазапоминания(ипоследующеговоспроизведения) действий пользователей по нажатию клавиш и открытиюэлементов управления интерфейсом (окон, форм).Средства автоматизации (хотя бы частичной) анализа результатов прогонатестов.
Эти результаты могут быть сложными, поэтому уровеньавтоматизации зависит от тестируемого приложения.Средства анализа уровня тестового покрытия (применяются притестировании программ методом “белого ящика”). Необходимо такжепроверять покрытие условий, решений и т. д.Многие современные системы программирования предоставляют развитыесредства этапа документирования создаваемых программных продуктов, сложностькоторых постоянно возрастает, что, в свою очередь, делает все более важной хорошуюдокументацию.
К документации программных продуктов следует относить не толькопользовательскую документацию, предназначенную для фазы использования, но такжетехническую документацию для сопровождения программных продуктов.Выполнение работ на этапах внедрения и тиражирования требуетиспользования средств управления проектами, а также средств управления версиямипрограммных продуктов.152. Классическая система программированияПрактически невозможно встретить систему программирования, в которойпоследовательно и полно были бы представлены сразу все компоненты,обеспечивающие полноценную поддержку процесса создания программ на всех стадияхи этапах.
Чаще всего отсутствуют средства первых этапов – подготовки требований ипроектирования. Иногда системы программирования строятся без какого-либоинтегрирующего звена. Первые операционные системы могли позволитьпользователям-программистам запускать компоненты систем программированиятолько в диалоге, последовательно, одну за другой, или собирая приказы на запуск этихкомпонентов в одном пакетном задании.Со временем были развиты сервисные средства операционных систем ипоявились командные процессоры, что позволило объединять последовательностьвызовов системных программ в единые командные файлы.
Это упростило работу позапуску компонентов систем и позволило перейти к еще более удобному способуработы–использованиюспециализированныхкомандныхпроцессоров,ориентированных на запуск компонентов систем программирования.Специализированные командные процессоры (координатор make иликомандный интерпретатор shell) представляли собой интерпретаторы, на входкоторым подавались файлы, записанные на особом командном языке. На этом языкекодировалась вся последовательность действий, необходимых для порождениярезультирующего исполняемого файла.
В программе для командного процессора(Makefile) перечислялись все используемые входные (исходные) текстовые файлы,библиотеки программ, все порождаемые объектные файлы (отдельно и независимооткомпилированные исходные файлы), а также параметры запуска отдельныхкомпонентов систем программирования и правила обработки каждого отдельногофайла. Удобны координаторы make тем, что позволяют отслеживать зависимости вбольших наборах файлов, составляющих цельную программу, что упрощает процесссборки проектов.Любая современная система программирования содержит не толькотрансляторы, но и служебные библиотеки процедур, функций, макроопределений,классов, а также средства компоновки программных комплексов из отдельныхсоставляющих – модулейСовременные системы программирования все чаще взаимосвязаны, а иногда иинтегрированы с программными средствами, применяемыми на первых этапахжизненного цикла – от формулирования требований и их анализа доавтоматизированного проектирования программ, включая в свой состав средстваавтоматизированного проектирования (CASE-технологии).
Такие системы имеютследующие характерные особенности:••••поддержка единой базы проектов (репозитория);поддержка визуальных методов проектирования (графическое создание,редактирование, визуализация, печать отчетов по ходу выполненияпроектов);использование унифицированного языка моделирования для фиксациирешений, принятых при проектировании;наличие и интеграция всех средств поддержки для всех этапов жизненногоцикла программных продуктов.162.1.
Общая схема работы систем программированияБольшинство систем программирования включают в свой состав ограниченныйнабор компонентов:••••••••••средства интеграции компонентов системы программированияредакторы текстов, в том числе макрогенераторыкомпиляторы и ассемблерыбиблиотекиредакторы связейсредства конфигурирования и управления версиямиотладчики и средства тестированиясредства тестированияпрофилировщикисправочные системы.СистематекстовогоредактированияСистемаграфическогоредактированияИсходнаяпрограммаМакрогенераторКомпиляторКомпоновщик(редакторсвязей)АссемблерБиблиотекиДинамическаязагрузкаОбъектныймодульГотоваяпрограммаОтладчик…Загрузчик(в составеОС)Выполнение2.2.
Интегрированная среда разработкиОсновной тенденций развития систем программирования является тенденцияинтеграции компонентов в единое системное окружение. Если первые системыпрограммирования представляли собой простые наборы программ, объединенныетолько общим описанием структур данных, то в настоящее время из прежних системпрограммирования возникли интегрированные среды разработки.17Простейший способ управления сложными последовательностями вызововсистемныхпрограмм,какимиявляютсявызовыкомпонентовсистемпрограммирования, называется режимом работы с командной строкой оператораили операционной системы:g++ -c -S -da -dp -dA b.cppРаботая в этом режиме, программист подает операционной системе задания повызову программ, указывая место размещения вызываемой программы, ее имя ипараметры конкретного вызова.
Существенным недостатком работы в таком режимеявляется необходимость постоянного присутствия квалифицированного пользователясистемы на рабочем месте для постоянного запуска следующих и следующихкомпонентов.Впоискахпреодоленияэтогонедостаткаразработчикисистемпрограммирования предложили концепцию командных файлов.В таких файлах заранее записывались директивы операционной системы,необходимые для активации всего тракта обработки программ – от запускакомпилятора до записи в архив системы готовой программы или передачи ее наисполнение, как в таком файле, содержащем директивы операционной системы MSDOS:@echo off@if exist t40.* del t40.*@if exist kopu.?n del kopu.?n@if exist kopu.?n0 del kopu.?n0@for %%f in (*.a40) do ..\..\exe\ac40 -d-l –i%%f@..\..\exe\rsv -it40.o40 -zt40.r40@..\..\exe\nstr -k0x0 -p0x0 -it40.r40 -zt40.n40@..\..\exe\Cpu -x0x86 -d-s0xfe000 -b0x4005ab -e0x400900 -zt40.n40 -k0x0 -f0x0 -ot40.se0@del t40.?40Особенно эффективна работа в режиме командного файла при выполнениимассовых подготовок версий одной программы, отличающихся каким-либо важнымпараметром, например, паролем, блокирующим несанкционированный запуск готовойпрограммы.
Процесс подготовки большого числа почти одинаковых программпроводится в пакетном режиме работы операционной системы без оперативногоконтроля со стороны оператора и даже без его присутствия.Все большее распространение получают интегрированные системыпрограммирования. Интегрированная среда разработки программ объединяет в себевозможности текстовых редакторов и командного языка компилятора, а такженекоторых других компонентов системы программирования, например, редакторасвязей и отладчика.При работе в интегрированной среде разработчик программы освобождается отнеобходимости устанавливать параметры запуска компонентов системы при всякомзапуске этих компонентов. Не требуется от пользователя и знания языка управлениязаданиями операционной системы.
Работа в интегрированной среде ведется в терминахописания программного проекта и его характеристик. Пользователю дается удобныйграфический интерфейс, с помощью которого он может определять свои программныепроекты, включать в их состав свои текстовые, ресурсные и библиотечные файлы,18устанавливать параметры запуска отдельных компонентов системы.
Интегрированнаясреда автоматически осуществляет запуск необходимых компонентов (фактическисоздавая невидимый программисту командный файл), получает от этих компонентоврезультаты их работы и сообщает пользователю обо всех допущенных им ошибках наразных этапах подготовки программ.Основное преимущество интегрированной среды – в удобстве работы еепользователя. Все свои действия он выполняет непосредственно в окне редактированияисходного текста программы. Получив сообщение о какой-нибудь ошибке,пользователь, руководствуясь сопутствующими сведениями о месте этой ошибки впрограмме, имеет возможность исправить ее, не прерывая работу в интегрированнойсреде.
Дополнительные удобства работы в таком режиме связаны с реальнымобъединением в одном технологическом процессе нескольких компонентов системыпрограммирования – текстовых редакторов, компиляторов, редакторов связей,отладчиков.Естественным следствием внедрения в практику интегрированных системпрограммирования явилось перенесение технологических приемов, использованныхпри их разработке на разработку того программного обеспечения, которая выполняетсяс их помощью. Программистам стали предоставлять графический пользовательскийинтерфейс, ставший вскоре после своего появления неотъемлемой составной частьюмногих современных операционных систем и графических оболочек.
В состав системпрограммирования стали включаться библиотеки, обеспечивающие поддержкуграфического интерфейса. Описание библиотек выполнялось с помощью прикладныхпрограммных интерфейсов, позволявших стандартизовать взаимодействие соперационными системами.Особенную помощь интеграция компонентов системы программированияприобретает при проведении отладки программ. Тесные связи между отдельнымикомпонентами помогают отладчику так представить информацию о ходе выполненияпрограммы, что отладка оказывается значительно более простым мероприятием, чемэто обычно бывает.Большинство систем программирования ориентированы на работу с каким-либоодним языком программирования.