- •Семестр 9 р1. Принципы построения пользовательского интерфейса в приложениях систем управления р1: Лекция №1. Обобщенная архитектура прикладной составляющей программного обеспечения систем управления
- •Жизненный цикл изделия и программные средства его поддержки
- •Обобщенная архитектура систем управления электроавтоматикой
- •Характеристики современного процесса разработки прикладной составляющей электроавтоматики
- •Вопросы:
- •Р1: Лекция №2. Базовые элементы платформы приложений су для построения интерфейса пользователя
- •Компоненты каркаса
- •Компоненты конфигурирования
- •Компоненты средств интерфейса пользователя
- •Конфигурирование компонентов в составе системы
- •Вопросы
- •Р1: Лекция №3. Принципы классификации прикладных компонентов систем управления
- •Виртуальная структура прикладной области
- •Матрица компонентов
- •Анализ и систематизация набора прикладных компонентов с применением матрицы
- •Определение минимально необходимого набора прикладных компонентов системы
- •Вопросы
- •Семестр 9 р2. Технологии .Net в разработке приложений систем управления р2: Лекция №4. Основные понятия платформы .Net
- •Строительные блоки .Net (clr, cts, cls)
- •Преимущества с#
- •Промежуточный язык msil
- •Работа с пространствами имен
- •Память в приложениях .Net
- •Проверка наличия утечек
- •Получение дополнительной информации о пространстве имен и типах сборки
- •Вопросы
- •Р2: Лекция №5. Принципы взаимодействия .Net с разработанным кодом
- •Преобразование исходных кодов в новый формат языков .Net
- •Использование двоичных компонентов для организации взаимодействия с компонентами .Net
- •Вопросы
- •Р2: Лекция №6. Инструментарий процесса разработки
- •P2: Лекция №6. Инструменты отладки приложений в .Net Framework 2.0 и выше Утилиты
- •Загрузка расширения отладки sos
- •Примеры:
- •Базовые различия
- •Сборка мусора в .Net Framework
- •Причины смешивания управляемого и неуправляемого кодов
- •Концепция CoDeSys
- •Окно приложения Сodesys:
- •P3. Лекция № 9. Возможности CoDeSys как открытой системы
- •Архитектура приложений современных систем управления
- •Выявление открытых интерфейсов среды
- •Встраивание сцены трёхмерного моделирования объекта управления
- •P3. Лекция № 10. Взаимодействие с аппаратными средствами платформы CoDeSys
- •Основные характеристики и назначение
- •Построения средств диагностики и управления устройствами электроавтоматики на базе opc технологии
- •Особенности механизмов работы opc серверов
- •Реализация интерфейсов opc в сервере
- •Реализация opc компонентов диагностики для контроллеров CoDeSys sp
- •Вопросы
- •Семестр 9 р4. Тестирование приложений систем управления через интерфейс оператора p4. Лекция № 11. Базовые понятия процесса тестирования
- •Жизненный цикл разработки программного обеспечения
- •Модели жизненного цикла
- •Каскадный жизненный цикл
- •Спиральный жизненный цикл
- •Экстремальное программирование
- •Тестирование, верификация и валидация - различия в понятиях
- •Задачи и цели процесса верификации
- •P4. Лекция № 12. Использование пакетов автоматизации тестирования
- •Методы проведения тестирования пользовательского интерфейса, повторяемость тестирования пользовательского интерфейса
- •1) Ручное тестирование
- •2) Сценарии на формальных языках
- •Тестирование удобства использования пользовательских интерфейсов.
- •Принцип использования коммерческих приложений для тестирования пользовательского интерфейса
- •Обзор Quickt Test. Основные понятия
- •Использование Actions, Iterations
- •Использование объекта DataTable и параметризация
- •Распознавание объектов в qtp и уникальность их свойств
- •P4. Лекция № 13 Модульное тестирование
- •Цели и задачи и модульного тестирования
- •Понятие модуля и его границ. Тестирование классов
- •Подходы к проектированию тестового окружения
- •P4. Лекция № 14. Возможности uiAutomation
- •Начальное представление
- •Представление элемента управления
- •Представление содержимого
- •Шаблоны элементов управления uia
Начальное представление
Начальным представлением дерева UIA является полное дерево объектов AutomationElement, для которых рабочий стол является корнем. Начальное представление точно следует собственной программной структуре приложения и, таким образом, является наиболее подробным доступным представлением. Оно также является базой, на основе которой строятся остальные представления дерева. Так как это представление зависит от базовой структуры пользовательского интерфейса, начальное представление кнопки WPF будет отличаться от кнопки Win32.
Начальное представление получается путем поиска элементов без указания свойств или с использованием значения RawViewWalker для навигации по дереву.
Представление элемента управления
Представление элемента управления дерева UIA упрощает задачу технологии специальных возможностей продуктов, описывая UI для конечного пользователя и помогая ему взаимодействовать с приложением, так как оно тесно сопоставлено со структурой UI, воспринимаемой конечным пользователям.
Представление элемента управления является подмножеством начального представления. Оно включает все элементы UI из начального представления, которые конечный пользователь понимал бы как интерактивные или участвующие в логической структуре элемента управления в UI. Примерами элементов UI, которые участвуют в логической структуре UI, но сами не являются интерактивными, являются элементы контейнеров, такие как заголовки представлений списков, панели инструментов, меню и строки состояний. Неинтерактивные элементы, которые используются просто для разметки или декоративных целей, не будут отображаться в представлении элемента управления. Примером является панель, которая используется только для размещения элементов управления в диалоговом окне, но сама не содержит никакой информации. Неинтерактивными элементами, которые будут отображаться в представлении элемента управления, являются графики с данными и статический текст в диалоговом окне. Неинтерактивные элементы, которые включаются в представление элемента управления, не могут получить фокус ввода.
Представление элемента управления получается путем поиска элементов, которые имеют свойство IsControlElement со значением true, или с помощью ControlViewWalker для навигации по дереву.
Представление содержимого
Содержимое представления дерева UIA является подмножеством представления элемента управления. Оно содержит элементы UI, которые передают достоверную информацию в UI, включая элементы UI, которые могут получить фокус ввода и некоторый текст, который не является подписью элемента UI. Например, значения в поле с раскрывающимся списком будут отображены в представлении содержимого, так как они представляют информацию конечному пользователю. В представлении содержимого, поле с раскрывающимся списком и поле со списком представлены как коллекция элементов UI, где можно выбрать один или несколько элементов. Тот факт, что один всегда открыт, а другой можно развернуть и свернуть, обусловлен их предназначением для отображения данных или содержимого для пользователя.
Представление содержимого получается путем поиска элементов, которые имеют свойство IsContentElement со значением true, или с помощью ContentViewWalker для навигации по дереву.
После получения дерева, а взятия той области работы которая нам необхадима, мы определяем тот шаблон работы с элементом, который, собственно и поддерживается самим этим элементом, в зависимости от его типа.
Существует 38 определенных типов элементов управления, охватывающих все от кнопки до таблицы данных. Интересной с точки зрения автоматизированного тестирования модель поставщика делает то, что эти типы элементов управления точно показывают, какие свойства и шаблоны элементов управления поддерживает каждый из них. Как можно догадаться, свойства — это подмножество свойств на основе класса AutomationElement, обязательных или дополнительных для этого типа элемента управления. Например, элемент управления «кнопка» должен поддерживать свойство AcceleratorKeyProperty, чтобы возвращать клавишу быстрого вызова, используемую для этой кнопки.
Пример кода на C#
string acceleratorKey =
autoElement.GetCurrentPropertyValue(AutomationElement.AcceleratorKeyProperty) as string;
Шаблоны управления связаны с Пользовательским интерфейсом, как интерфейсы связаны с объектами Модель COM (Component Object Model). В COM можно запросить объект о том, какие интерфейсы он поддерживает, а затем использовать эти интерфейсы для доступа к функциональным возможностям. В модели UIA клиент модели автоматизации пользовательского интерфейса может запросить у элемента управления, какие шаблоны элементов управления он поддерживает, а затем взаимодействовать с элементом управления с помощью свойств, методов, событий и структуры, предоставляемых поддерживаемыми шаблонами элемента управления. Например, для многострочного поля ввода поставщики модели автоматизации пользовательского интерфейса реализуют IScrollProvider. Когда клиенту известно, что элемент AutomationElement поддерживает шаблон элемента управления ScrollPattern, он может использовать свойства, методы и события, предоставляемые шаблоном элемента управления для воздействия на элемент управления или для доступа к информации об элементе управления.
Шаблоны элементов управления замечательны тем, что если конкретный шаблон для элемента управления выбран, то шаблон сделает работу по выполнению его функции. Например, если вы работаете с кнопкой, интерфейс IInvokePattern вызывает метод Invoke, который выполнит нажатие кнопки. При этом вам не придется бороться с сообщениями Windows или интерфейсом API SendInput. Некоторые элементы управления не всегда поддерживают один и тот же набор шаблонов элементов управления. Шаблоны элементов управления считаются поддерживаемыми, если они доступны для клиента модели автоматизации пользовательского интерфейса. Например, многострочное поле ввода допускает вертикальную прокрутку, только если оно содержит больше строк текста, чем может быть отображено в его видимой области. Прокрутка отключается, если некоторая часть текста удаляется, так что прокрутка больше не требуется. Например, шаблон элемента управления ScrollPattern динамически поддерживается в зависимости от текущего состояния элемента управления (какой объем текста находится в поле ввода).
