Сосонкин_Системы_ЧПУ (1087166), страница 38
Текст из файла (страница 38)
Системы поддержки проекта Source Safe ипроектирования Rational Rose встраиваются в Visual C++ как внешниеГлава 4. Технологии разработки программного обеспечения систем управления211приложения. Определим функции перечисленных систем и общую схему интеграции.В проект создания системы PCNC вовлечены десятки человек, в негопостоянно вносятся изменения и коррекции. Конечные пользователи системы нуждаются в поддержке релизов и обновлении версий, что определяет направление развития проекта. Поэтому проект нельзя начинать безсистемы поддержки проекта Source Safe (Microsoft).
Как компонент MSDNона наилучшим образом интегрируется с Visual C++ и реализует простую концепцию работы с исходными кодами: в любой момент временифайл доступен для изменения только одному разработчику с помощьюфункций CheckOut и Checkln. Во время работы с файлом другие разработчики, как правило, пользуются его копией. Пример проекта системыPCNC приведен на рис. 129. Использование Source Safe предполагаетвыделение администратора, который распределял бы права пользователей, маркировал релизы и архивировал версии, отслеживал корректностьбазы данных.Архитектор проекта не в состоянии отследить взаимосвязь между используемыми классами и довести до программиста детали их реализации.Проблемы подобного рода решаются с помощью систем CASE. Одной изнаиболее удачных среди них является Rational Rose [78].
Система позволя|ГГ Visual SouiceSdle E«ploiei -VSSНИИDataBase, - jl"•"---•--'•.8|?J1!Alpi4K& -•; ' ;\',\; :—at..:•„..;,"ilChed;.©ABSFIINTRCPPMattinov4.06 99 23.38D.VPCJ»©ABSRINTP HWariinov4.06.99 23 38D.SPC]-acFG©ABSTRDINCPPMaiiinov4 06.33 23.38DAPCQABSTROIN.H^AdvancedException.cppMarlinov4 06 99 23 38Mariinov4 06.99 23 38DAPC^AdvancedExceplionhMartinov4 06 99 23:38DAPCD.\PC•O-Jtf CooidSpcN a m a•••'•••.jUter-•••D:\PC« j f l DOCS• : - i l Drw3DC0M•'•Ив IndNcsCl^AdvancedFiteExcepttoncppMartinov4.06.99 23.38SjJfAdvancedFiteException hMattinov4 06 93 23 38D\PCS'AdvancedOSEifotException.cpp Mailincv4.06 99 23:38DAPC\-<Ц IntMpol©AdvancedO S E rrotE xception. h M artmov4 06 99 23.38DAPC•'-И NcEdtConi.OANDRON.CPPMattinov4 06.9S 23:38DAPC@BA2ATYPE CPPMarlinov4 06 99 23 38DAPC©BAZATYPE.HM ar linov4.06.99 23 3BЭАРС©BUFFER CPPMarlinov4 OS 99 23 38D \PC©BUFFER HMartinov4.06 99 23 38DAPC^CFGREAD CPPMariinov4 06.99 23 38DAPC•:-Si SMBU:LDM©CFGREAD.HMattinov4.06.99 2338DAPC- - f e l VdmQfCOMPLPRM HMartinov4.06.99 23.38DAPCiJfCSRCHRRY CPPMartin ov4.06 99 23.38DAPC^J+ЧЙ NC"S• r i a NcsRICLk f f l NcsRlSrvhaROSEp a RES,fl«*tDate-Tfcw :Pc nc*> I B I AppNcsCL^f-Jtf BasNcsCL• :•.:£-,-i l «1- ..
.. .•-•:. (SotUw№ton /..Рис. 129. Ведение проекта PCNC с помощью Source SafeВ.Л. Сосонкин, Г.М. Мартинов. Системы числового программного управления212ет вести итеративное проектирование, осуществлять генерацию каркасаисходного кода, а также предусматривает интеграцию с Visual C++ и использование Source Safe.Rational Rose поддерживает практически все распространенные нотации представления моделей, в том числе и UML (Unified Modeling Language)[71].
Фрагмент диаграммы классов в нотации Воосп для модуля интерпретатора системы PCNC, разработанного в Rational Rose, представлен на рис.130. Прикладные компоненты описываются системой Rational Rose с помощью четырех представлений объектно-ориентированного подхода [70](рис. 131). Логическое представление задает ключевые абстракции и механизмы, формирующие предметную область и архитектуру системыPCNC.
Физическое представление определяет конкретную программноаппаратную платформу. Все это описывается диаграммами классов, объектов, модулей, процессов.Если рассматривать систему со стороны статики-динамики, то здесьинтерес представляют диафамма переходов из одного состояния в другоеи диаграмма взаимодействия и обмена сообщениями, определяющая порядок их передачи.*\ Rational Rose - [Class Diagram: Platform Depend Level / Main]шьшттт*:(from Platform Independ Level)m_pOutRingBufP Arraym CommonlSOData \m_HistFile" \_• CRingBuffer ',CHistorylPD '•/CISOData\,'•' POINT DEFj"\Puc. 130. Проектирование системы PCNC с помощью Rational RoseГлава 4. Технологии разработки программного обеспечения систем управления213ДинамическоепредставлениеСтатическоепредставлениеЛогическоепредставлениеСтруктура классов PCNCСтруктура объектов PCNCФизическоепредставлениеАрхитектура модулей PCNCАрхитектура процессов PCNCРис.
131. Основные представления системы PCNC,поддерживаемые Rational Rose4.3.6. Использование оригинальных инструментальныхсредств поддержания открытой архитектуры системы ЧПУИспользование лишь стандартных средств ОС и инструментальныхсредств для разработки системы PCNC недостаточно. Опыт показывает,что ряд задач в системе PCNC поддаются формализации. При этом наиболее актуальны такие задачи, как создание каркаса модулей или внешних приложений, подключаемых к объектно-ориентированной магистрали, и создание каркаса машины состояния любого модуля или внешнегоприложения системы PCNC.
Под созданием каркаса программного модуля понимаем добавление в проект или подпроекттех классов и их объектов, которые реализуют базовые функциональные возможности, практически однотипные для подобных же программных модулей. Во всех случаях формализации процесса разработки системы PCNC необходимосоздавать собственный инструментарий.Создание скелета модуля системы PCNC с помощью мастера приложения NcsAppWizard. В общем случае АррWizard представляет собойсредство создания и конфигурирования нового проекта в среде MicrosoftVisual C++. NCsAppWizard, в частности определяет в интерактивной форме свойства и функциональные возможности будущего модуля системыPCNC.
Скелет модуля создается на базе классов коммуникационной среды, при этом осуществляется генерация большей части необходимых программных кодов. Сведения о создаваемом приложении запрашиваются вдиалоге с пользователем, а в результате генерируется исходный код. Таким образом, разработчик избавляется от одной из самых трудоемких работ по созданию скелета нового приложения.214вп- Сосонкин, Г.М. Мартинов. Системы числового программного управленияУстановка NcsAppWizard в систему разработки состоит в копированиифайла с расширением «AWX» в директорию Template Microsoft Visual C++.После этого NcsApp Wizard становится доступным в качестве одного из мастеров создания приложений.
Создание нового приложения при помощиNcsAppWizard представляет собой обработку последовательно сменяющихсядиалогов. На первом шаге вводят информацию о типе приложения и целесообразности генерации примера. На втором шаге осуществляют ввод расширенных свойств приложения (например, для генерации обработчиков исключений), а также информацию для начального конфигурирования тулбара (количество кнопок и их расположение). На третьем шаге определяют стиль иобозначают права на приложения. Четвертый шаг задает размеры главногоокна (при его наличии), возможности изменения размеров, автоматическогоцентрирования и коррекции размеров окна при изменении разрешения экрана.
Далее настраивают статусбар, параметры подключения к коммуникационной среде и т.д. В заключительном диалоге описывают те параметрыпроекта в текстовом виде, которые будут сгенерированы. В случае необходимости можно вернуться к предыдущим шагам и внести исправления.В результате использования мастера разработки NCsAppWizard генерируется скелет модуля системы PCNC, в который добавлены классы иинициализированы их объекты для работы с общей объектно-ориентированной магистралью. На следующем этапе разработки осуществляется наполнение модуля функциональными возможностями.
Частью этого этапаявляется разработка машины состояния.Создание скелета машины состояния с помощью State MachineBuilder. Под машиной состояния в системе управления понимают конечный автомат, реагирующий на управляющие воздействия и инициирующий необходимые действия [79]. Управляющими могут быть действия состороны оператора (нажатие кнопки), события (например, поступлениесигнала отдатчика), возникновение ошибки.
В результате управляющеговоздействия машина состояния переходит в новое состояние, при этом выполняются функции, предусмотренные при переходе. Машину состоянияописывают с помощью графа. Графы были использованы при разработкеState Machine Builder (генератора машины состояния) - визуального инструментария разработки машины состояния. При этом были предложеныновые понятия.
Сложное состояние - логически обособленный фрагментграфа с иерархическими вложениями. Порты входа и выхода из сложногосостояния - узлы, определяющие связь уровней сложного состояния. Этипонятия лежат в основе иерархических графовых структур, причем в вершине иерархии находится единственное сложное состояние. На каждойследующей ступени иерархии сложные состояния раскрываются в видесовокупности простых и сложных состояний.Глава 4. Технологии разработки программного обеспечения систем управления215Инструмент State Machine Builder позволяет не только визуально представить машину состояния в виде иерархического графа, но и задать имена классов, реализующих состояния и переходы, а также определить файлы их расположения.
В результате инструментарий генерирует C++ коддля машины состояния и встраивает его в Visual C++ проект системы PCNC.Инструментарий маркирует в генерируемом коде защищенные секции, вкоторых программисты реализуют функциональные наполнения переходов.4.3.7. Формирование окружения разработкиСуществуют два метода разработки программного обеспечения [80].Метод «сверху вниз» характерен для процедурного подхода разработки.Метод итеративной разработки тех же фаз, но для последовательно детализируемых структур проекта наиболее удобен для объектно-ориентированного подхода (рис. 132). Итеративность процесса разработки PCNC обеспечивает ряд преимуществ. Она позволяет принимать во внимание изменение требований в процессе разработки, предъявляемых к отдельномумодулю или системе в целом.
Она предполагает постепенную интеграциюкомпонентов и модулей, которая может начинаться с меньшего количестваинтегрируемых элементов и позволяет свести риск разработки системыPCNC к минимуму, поскольку на этапе интеграции возможно обнаружение концептуальных ошибок.Инвариантность создает возможность выпуска системы PCNC до общего завершения проекта с уменьшенными функциональными возможностями. Она также облегчает многократное использование компонентов путем анализа проектных решений на начальных итерациях, что позволяетРис.