Л.Е. Карпов - Системы программирования (1119429), страница 28
Текст из файла (страница 28)
Архитектурастроящейся системы описывается в терминах языка UML в виде набора графических98моделей. Работа по реализации системы определяется целями проектируемогопроцесса, которые формулируются в виде сценариев взаимодействия строящейсяпрограммной системы с другими системами или пользователями. Во время каждойитерации система автоматически контролирует приближение реализации к описаннымвариантам использования.При разработке программного продукта выделяются 4 основные фазы, которыемогут повторяться циклически необходимое число раз.
Внутри каждой из фаз такжевозможно циклическое повторение отдельных работ. К этим фазам относятся:••••Задание отправной точки проекта (Inception), которая определяется приформулировании целей, назначении руководящих органов и исполнителейпроекта, утверждении бюджета и выборе основных методов и инструментовреализации проекта.
По оценкам эта фаза занимает около 10% времени итребует около 5% бюджета всего проекта.Фаза проектирования (Elaboration), которая состоит в разработке структурыпрограммного продукта, решающего поставленные задачи. Фаза занимаетоколо 30% времени и требует около 20% бюджета.Построение системы (Construction), то есть окончательное уточнениетребований и собственно разработка системы в рамках ранее определеннойструктуры.
Получающаяся система должна удовлетворять всем выделеннымвариантам ее использования. Разработка системы занимает около 50%времени и 65% бюджета.Внедрение (Transition), заключающееся в том, что система делаетсядоступной пользователям. На этой же фазе проводится тестированиесистемы. Фаза занимает около 10% времени и требует около 10% бюджета.В ходе работы над проектом могут создаваться различные таблицы информации,базы данных, текстовые документы, тексты программ, объектные модули, а такжеразличные модели поведения системы, описываемые в виде диаграмм UML.4.6.2.
Интегрированная среда разработки EclipseИнтегрированная среда Eclipse является примером системы, построенной на базеобычного диалогового редактора, и превратившейся в интегрированнуюсамодостаточнуюсредуразработкипрограммногообеспечения,служитприобретающая все больше пользователей среда разработки Eclipse. Эта система,сопровождаемая компанией IBM, работает с различными операционными системами(Windows, UNIX/Linux) и различными языками программирования (Java, Си, Си++,Кобол, UML).
Свойства расширяемости и настраиваемости позволяют еепользователям самим создавать подобия систем программирования, подключаяотдельно распространяемые модули или создавая такие модули своими силами.Среда разработки Eclipse (то есть основное окно Eclipse в целом) называетсярабочим столом. Внутри основного окна расположены различные панели, называемыевидами, которые отображают консольный вывод, текущий проект в виде дереваобъектов и т. д.
Многочисленные виды объединяются в группы и могут быть выбраныпри помощи закладок. Кроме видов рабочий стол содержит одну специальную панель –редактор, в котором можно редактировать документы различных типов, например,исходный текст программы. При выполнении различных задач, таких какпрограммирование, отладка или синхронизация изменений текстов программ с99централизованным репозиторием, можно устанавливать расположение окон, удобноедля конкретной задачи. Это (зависящее от задачи) расположение окон называетсяперспективой.Перспектива может иметь много видов, но только один редактор, являющийсяцентральным объектом рабочего стола.
Если в редакторе открыт файл, остальные видыотображают различные аспекты этого файла. Если это файл с текстом программы, одинвид покажет физическое месторасположения в файле и иерархии пакета, а другой видпокажет методы класса и атрибуты. При открытии нескольких файлов эти виды будутменяться при переходе на различные файлы в редакторе.В среде Eclipse достаточно просто открывать новые перспективы ипереключаться между ними, но в процессе работы в этом обычно нет необходимости,поскольку перспективы меняются автоматически в нужное время. Перспективыявляются простым и естественным способом работы, поскольку удаляют из интерфейсавсе инструментальные кнопки, меню и виды, которые не относятся к текущей задаче.Это значительно облегчает поиск необходимых инструментов.Среда Eclipse обладает всеми современными возможностями по проверкесинтаксической правильности вводимых текстов программ.
При вводе ведетсянемедленный синтаксический анализ и выдаются подсказки по продолжению ввода(например, при вводе имени класса выдается список методов класса, из которогопрограммист может выбрать нужный).Важной возможностью, имеющейся в среде Eclipse, является ее способностьосуществлять рефакторинг текстов программ, то есть изменение структуры текста безизменения его функциональности:•••переименование полей, переменных, классов, интерфейсов,изменение логической организации программ на уровне классов, например,перемещение методов или полей из класса во вложенный или объемлющийкласс,изменение состава классов, например, преобразование локальныхпеременных в поля класса, выделение части метода и организация новогометода на ее основе, генерация установочных методов для полей.Интегрированная среда Eclipse предоставляет также возможность управлятьверсиями создаваемых программ.
Для этого она может взаимодействовать с системойCVS, используя две отдельные перспективы. Первая перспектива служит для выборарепозиториев и модулей для подсоединения и анализа содержащихся в них файлов.Вторая перспектива нужна для объединения изменений в репозитории. Такой подходпоощряет дисциплину и структурированность рабочего процесса.Очень важным фактором развития системы Eclipse является ее свободноераспространение с полным набором исходных текстов.
Это привлекает к ее развитиюбольшое сообщество разработчиков, проектирующих для этой системы подключаемыемодули, как свободно распространяемые, так и коммерческие.4.6.3. Системы программирования ЭВМ zSeriesКомпания IBM выпускает программное обеспечение, в том числе и системыпрограммирования, не только для персональных ЭВМ, но и для больших ЭВМ,предназначенных для одновременной работы многих самых разнообразныхпользователей. В настоящее время аппаратная платформа IBM носит наименование100zSeries, она является развитием выпускающейся на протяжении несколькихдесятилетий линии ЭВМ S/360, S/370 и S/390. На платформе zSeries могут работатьразличные операционные системы, наиболее распространенными среди которыхявляются z/VM, z/OS и Linux (z/OS UNIX).
Наиболее характерной для архитектурыzSeries является система программирования, работающая под управлением z/OS, таккак система программирования Linux в точности соответствует всем остальнымсистемам, построенным на базе операционных систем типа UNIX, а операционнаясистема виртуальных машин z/VM обычно работает в качестве промежуточнойсистемной платформы, над которой в свою очередь надстраиваются другиеоперационные системы, в частности, и Linux, и z/OS (возможно даже одновременно).В состав системы программирования z/OS входят все необходимые средства, спомощью которых можно создавать, модифицировать, хранить и распространять новоеприкладное программное обеспечение на различных языках программирования,включая язык ассемблера и языки высокого уровня, такие как Си, Си++, Кобол, PL/1,Фортран, Ада, Java и др.
(всего – около 20 языков программирования). Помимо базовыхсредств разработки, включающих текстовый редактор, набор компиляторов, редакторысвязей и средства загрузки программ, в z/OS реализована универсальная языковая средаLanguage Environment, содержатся многочисленные библиотеки программ и классов,представлен менеджер сопровождения разработки программного обеспечения(ISPF/SCLM). Кр оме того , выпускается целый р яд продуктов, таких как IBM VisualAge, IBM Application Development Tool, которые поставляются вне z/OS и служат дляавтоматизации и повышения эффективности процесса разработки приложений.Поскольку от программных продуктов, создаваемых и работающих подуправлением системы z/OS, требуется совместимость с продуктами, разработаннымидля ранее выпускавшегося аппаратного и системного программного обеспечения,обладавших ограниченными возможностями (например, ранее использовался только24-разрядная система аппаратной адресации и короткие имена внешних объектов), всостав новой системы программирования включаются сразу по несколько компонентов,выполняющих сходные функции, но работающие в разных режимах совместимости.Так, например, в систему входят сразу два редактора связей: стандартныйLinkage Editor и усовершенствованный Program Management Binder.
Стандартныйредактор связей служит для построения объектных модулей “старого” формата,поддерживающих только 24- и 31-разрядные режимы адресации с ограничениемобщего объема кода в 16 мегабайт. Усовершенствованный компоновщик Binderобеспечивает возможность связывания объектных модулей в модули нового формата(64-разрядный режим), называемые программными объектами. Объем кода пр и этомможет достигать одного гигабайта.Базовый компонент z/OS, называемый языковым окружением LE (LanguageEnvironment), поддерживает единую универсальную среду выполнения дляприложений, созданных на языках программирования высокого уровня Cи, Cи++,Кобол, PL/1 и Фортран. Библиотеки языковой среды включают наиболее существенныеи часто используемые компоненты времени выполнения, такие как формированиесообщений, обработка событий, управление памятью, поддержка функций даты ивремени и т. п.
Эти компоненты доступны всем приложениям, независимо отиспользуемого языка программирования. Кроме того, языковое окружение упрощаетвзаимодействие между приложениями, написанными на разных языках или для разныхоперационных сред, за счет специальных интерфейсных средств. Средства языковой101среды LE через соответствующие макровызовы доступны и тем приложениям, которыенаписаны на языке ассемблера. Языковая среда LE состоит из следующих элементов:•••базовые программы, обеспечивающие универсальную обработку сообщений,запуск и завершение программ, динамическое распределение памяти,обработку событий (в том числе ошибок) времени выполнения,взаимодействие между программами, написанными на разных языках;общие библиотеки, содержащие набор модулей для поддержкиматематических функций и функций даты и времени, реализуемых на основестандартного интерфейса вызовов функций LE;специфические библиотеки, содержащие модули, применяемые только дляодного из поддерживаемых языков высокого уровня.Создаваемые с использованием универсальных модулей языковой средыприложения могут выполняться в различных операционных средах, включая каквнутрисистемные (например, UNIX shell), так и ср еды пр омежуточного слоя (DB2,CICS).
Все компоненты, входящие в состав системных библиотек LE, делятся на двегруппы: резидентные (статически загружаемые) и динамические. Резидентныепрограммы при редактировании связей включаются в объектный модуль приложения.К ним относятся, например, программы запуска и завершения приложения.Динамические программы не включаются в объектный модуль, они добавляются кпрограмме уже при ее выполнении при непосредственном их вызове.Огромное внимание в описываемой системе программирования уделяетсяподготовке программ для использования в пакетном режиме – традиционном способеразработки программ, применяемом программистами для ЭВМ, выпускавшимисякомпанией IBM, а также многими ее последователями в течение десятилетий.Ключевым элементом данного способа является использование стандартных процедурязыка управления заданиями (Job Control Language, JCL), хранящихся в системнойбиблиотеке и предназначенных для компиляции, редактирования связей и исполненияразличных программ, написанных на том или ином языке высокого уровня.
Посуществу, язык JCL (точнее первые его версии, существенные развитые к настоящемувремени) еще 1960-х годах стал основой для проектирования множества различныхкомандных языков множества операционных систем, в том числе систем,используемых на персональных ЭВМ.Примером может служить, “каталогизированная” процедура ASMACLG(представляющая собой, по-существу, полный аналог командных файлов других системпрограммирования), предназначенная для компиляции, редактирования связей ивыполнения ассемблерной программы, представленной в виде исходного модуля. Напервом шаге (C) вызывается ассемблер ASMA90, на втором шаге (L) – редактор связейHEWL, а на третьем (G) – запускается созданный объектный модуль.