Сосонкин_Системы_ЧПУ (1087166), страница 39
Текст из файла (страница 39)
132. Итеративная разработкасистемы PCNCАнализПроектированиеРазработкаИнтеграцияВыпускрелиза^Итерация216В.Л. Сосонкин, Г.М. Мартинов. Системы числового программного управленияархитекторам сконцентрироваться на возможности повторного использования и совершенствования общего кода в последующих итерациях. А кроме того, приводит к более устойчивой архитектуре, поскольку слабые места обнаруживаются в ранних итерациях, когда критические параметрыэффективности системы в целом легко обнаруживаются и исправляются.Сопоставим стадии разработки, показанные на рис. 132, системе решений, рассмотренных ранее.
Соответственно, Rational Rose и State MachineBuilder закрепим за фазами анализа и проектирования, NCs AppWizard за фазами проектирования и разработки, a Visual C++ и Win32 API - зафазой разработки. В результате получим целостную систему, наполняющую все фазы разработки и поддерживающую ведение проекта. Системуэту назовем «окружением разработки» открытой системы PCNC (рис. 133).В окружение разработки, помимо рассмотренных механизмов и инструментов, можно ввести дополнительный инструментарий, например систе-MSDN окружение разработкиСистема поддержки проектаCASE система(Visual Source Save)(Rational Rose)итеративное проектирование;проверка корректности модели.Интегрированнаясреда разработки(Visual C++)• редактирование;• компиляция;• линковка.• ведение проекта;• фиксация релизов;• архивация версии.Дополнительныйинструментарийроцесс разработкиоткрытой системыPCNCБиблиотеки ядра ОС(Win32 API)механизм сообщения;объекты синхронизации потоков.ведениедокументации:Оригинальныеинструментальные средства(Ncs AppWizard, State Machine Builder)• генерация машины состояния;• генерация скелета приложения.Рис.
133. "Окружениеразработки" системы PCNCГлава 4. Технологии разработки программного обеспечения систем управления217му ведения документации (на рис. 133 показана серым цветом). Интеграция всего окружения осуществлена на базе MSDN.ЗаключениеОткрытость систем PCNC следует передать на уровень пользователей,которые являются их конечными потребителями. Построение модулей системы ЧПУ по типу открытого языкового процессора создает строгую архитектуру и конфигурируемую систему команд. Построение открытых языковых процессоров на базе объектно-ориентированного подхода решаетпроблему совместимости модулей.
Ряд проблем разработки открытых систем PCNC может быть решен с помощью системных возможностейWindows NT, таких как многозадачность, синхронизация и обмен данными между задачами. При этом возникает возможность использовать отлаженные решения и накопленный опыт; что снижает затраты на разработку иповышает надежность системы. Стандартные инструментальные средствадолжны быть использованы для поддержания открытой архитектуры иформирования мощной подгруппы в окружении разработки системы PCNC.Однако стандартных средств недостаточно, поэтому для формализованных задач необходимо иметь собственный инструментарий.
Созданиекаркасов модуля (или внешнего приложения), подключенного к внешнеймагистрали, и машины состояния - задачи наиболее трудоемкие и в то жевремя формализуемые. Они могут быть решены соответственно мастеромразработки Ncs AppWizard и генератором кода машины состояния StateMachine Builder. Формирование окружения разработки позволяет предложить комплексное решение проблемы создания открытой системы ЧПУ,при этом конкретные решения закрепляются за отдельными фазами процесса разработки таким образом, что охваченным оказывается весь итерационный процесс разработки.4.4. Технология компонентной организациипрограммного обеспеченияПредставлена компонентная организация программного обеспечения систем управления.
Рассмотрены базовые понятия, изложены методические рекомендации по выбору компонентов и проанализированы сложные случаи создания компонентных моделейв системах управления, в том числе на базе стандартных библиотек MFC и A TL. Установлена приоритетная область использования СОМ-подхода в системах управления. Отмечена возможность инструментальной поддержки компонентного проектирования на основе формализма Г. Буча.248вл- Сосонкин, Г.М. Мартинов. Системы числового программного управленияВысокие темпы эволюции технических требований к системам управления заставляют регулярно выпускать новые версии программного обеспечения. Это ставит перед производителями серьезные проблемы, в томчисле и инвестиционного характера.
Их решение видится на основе компонентной архитектуры, которая предполагает выделение компонентов, связываемых непосредственно в процессе работы системы управления («runtime»). Именно на эту возможность авторы стремились обратить внимание в этой статье.Компонентная архитектура является развитием модульной реализациисистем управления, при которой конкретная конфигурация собирается изготовых модулей. Однако компоненты привносят в программное обеспечение новые возможности. Так, компоненты можно подключать к приложению и отключать от него.
Для этого они должны удовлетворять двумтребованиям: компоноваться динамически и скрывать (инкапсулировать)детали внутренней организации. При этом компонентный подход использует все возможности объектно-ориентированного подхода.Далее представлен необходимый понятийный аппарат и приведен пример, иллюстрирующий введенные понятия, приведена классификацияСОМ-интерфейсов и СОМ-серверов, указаны области целесообразного использования компонентов, отмечена возможность инструментальной поддержки компонентного проектирования.4.4.1. Базовые понятияКомпонентная модель СОМ лежит в основе таких технологий разработки прикладного программного обеспечения систем управления, какDCOM, OLE, OLE Автоматизация, ActiveX и ОРС (рис.
134). Компонентная объектная модель СОМ делает стандартную структуру объекта регулярной, управляет его жизненным циклом и общением с другими объектами [81]. Другими словами, СОМ определяет правила структурированияобъектов и их распределения в памяти, создания и уничтожения объектов,взаимодействия объектов между собой. Компонентная модель существуетв рамках клиент-серверной архитектуры, когда клиент и сервер (компонент) связаны через СОМ-интерфейс. СОМ-интерфейс специфицируетфункциональные возможности, которые компонент предлагает некоторойпрограмме или другим компонентам.От стандартного СОМ-интерфейса IUnknown произведены все остальные.
Интерфейс IUnknown обязателен в любом компоненте и предназначен для (С++)-программистов; он обращает к методам (функциям) интерфейса через таблицу виртуальных методов [82]. Располагая указателем на IUnknown, клиент может запросить и другие интерфейсыкомпонента. Производный от IUnknown интерфейс наследует три базо-Глава 4. Технологии разработки программного обеспечения систем управления(ObjectLinking andEmbedding)(^219Автомати-(зация^ActiveXCOM(ComponentObjectModel)(DistributedComponentObject Model)DistributedComponentObject Model)Объектно-ориентированный подходРис.
134. Технологии разработки прикладного программногообеспечения систем управлениявых метода: QuerylnterfaceO, позволяющий клиенту получить указательна любой интерфейс компонента из другого указателя интерфейса; AddOи ReleaseO, поддерживающие механизм управления временем жизни клиента. С этой целью компонент хранит внутренний «счетчик ссылок» насвоих клиентов. Если счетчик обнуляется, объект выгружает себя из памяти. При запросе указателя на интерфейс метод QuerylnterfaceO неявновызывает метод AddO для увеличения содержимого счетчика, а после окончания работы с интерфейсом клиент явно вызывает метод ReleaseO дляуменьшения содержимого счетчика ссылок.Компонент может располагать одним или несколькими СОМ-интерфейсами; клиент, в свою очередь, может пользоваться сервисом от несколькихСОМ-интерфейсов.
Это значит, что один СОМ-сервер может обслуживатьнескольких клиентов, а один СОМ-клиент может получать сервис от нескольких компонентов (рис. 135).СОМ-сервер и СОМ-интерфейс имеют свои глобальные уникальныеидентификаторы GUID (Globally Unique Identifier). Один и тот же СОМ-сервер на двух разных компьютерах будет иметь один и тот же идентификаторGUID, а разные СОМ-серверы на разных компьютерах не могут иметь одинаковых интерфейсов.