Л.Е. Карпов - Системы программирования (1114903), страница 4
Текст из файла (страница 4)
При этом развитие систем программирования приводит ктому, что в их состав включается все большее количество компонентов, имеющих14отношение не только (и не столько) непосредственно к этапу программирования, но и кдругим этапам.Этап компоновки есть этап формирования полной программы илипрограммного комплекса из некоторого количества автономно запрограммированных,автономно отлаженных и автономно протестированных компонентов.
Для компоновкипрограмм используется часть инструментария, применяемого также на этапепрограммирования (прежде всего, редакторы связей). Кроме того, для использования наэтом этапе создается специальный инструментарий, в котором особую важность имеютсредства контроля версий программных компонентов.Важную роль в получении высококачественного программного продукта играютсредства, применяемые на этапах отладки и тестирования программ. В состав этихсредств входят•••••Отладчики, как очень простые, уже давно включенные в состав системпрограммирования, так и более сложные, позволяющие устанавливать точкиостанова, просматривать значения переменных, проводить прямую иобратную трассировку хода выполнения программ.
Наиболее удобныеотладчики работают в терминах классов, объектов, переменных, используясемантику и терминологию пользователей.Генераторы тестов, позволяющие формировать входные данные длятрансляторов. Генераторы тестов также способны генерировать тесты,содержащие ошибочные конструкции, что позволяет проверятьдиагностические средства трансляторов.Средства автоматизации прогонов тестов, позволяющие избежать “ручного”запуска большого количества тестов. В случаях тестирования графическихинтерфейсовполезнысредствазапоминания(ипоследующеговоспроизведения) действий пользователей по нажатию клавиш и открытиюэлементов управления интерфейсом (окон, форм).Средства автоматизации (хотя бы частичной) анализа результатов прогонатестов. Эти результаты могут быть сложными, поэтому уровеньавтоматизации зависит от тестируемого приложения.Средства анализа уровня тестового покрытия (применяются притестировании программ методом “белого ящика”).
Необходимо такжепроверять покрытие условий, решений и т. д.Многие современные системы программирования предоставляют развитыесредства этапа документирования создаваемых программных продуктов, сложностькоторых постоянно возрастает, что, в свою очередь, делает все более важной хорошуюдокументацию. К документации программных продуктов следует относить не толькопользовательскую документацию, предназначенную для фазы использования, но такжетехническую документацию для сопровождения программных продуктов.Выполнение работ на этапах внедрения и тиражирования требуетиспользования средств управления проектами, а также средств управления версиямипрограммных продуктов.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Особенно эффективна работа в режиме командного файла при выполнениимассовых подготовок версий одной программы, отличающихся каким-либо важнымпараметром, например, паролем, блокирующим несанкционированный запуск готовойпрограммы.
Процесс подготовки большого числа почти одинаковых программпроводится в пакетном режиме работы операционной системы без оперативногоконтроля со стороны оператора и даже без его присутствия.Все большее распространение получают интегрированные системыпрограммирования. Интегрированная среда разработки программ объединяет в себевозможности текстовых редакторов и командного языка компилятора, а такженекоторых других компонентов системы программирования, например, редакторасвязей и отладчика.При работе в интегрированной среде разработчик программы освобождается отнеобходимости устанавливать параметры запуска компонентов системы при всякомзапуске этих компонентов.