- •Семестр 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
Преобразование исходных кодов в новый формат языков .Net
В данном случае имеется возможность для преобразования исходных кодов (С++, VisualBasic, Java) в формат приемлемый для компиляции в среде .NET.
Для С++ этот переход имеет следующие возможности:
-
Перекомпиляция приложения с использованием опции /CLR
-
Переписывание системных сервисов (c использованием классов .NET)
-
Переход к managed code (использование C++ managed extensions)
-
Переход к verifiable code (поддающийся проверке код), уничтожение адресной арифметики, явная запись boxing / unboxing (преобразование структурного типа в ссылочный и наоборот – упаковка / распаковка) и т.д.
Процесс перехода к managed C++ может быть постепенным. Однако существуют трудности взаимодействия между managed и unmanaged code (например, распространение исключений, сборка мусора). Переход к управляемым указателям должен производиться одновременно для всех связанных указателей (нельзя использовать управляемый указатель в неуправляемом коде). Существуют также трудности использования сложных типов данных (ограничение названия: 256 символов).
Для не менее популярных языков программирования VisualBasic и Java предусмотрено преобразование исходных кодов с применением специальных механизмов преобразования. Для преобразования исходных кодов VisualBasic применяется подсистема обновления проекта (Upgrade project), где возможно произвести настройки конвертирования. Для Java используется специальный инструмент JUMP (Java Users Migration Path). В качестве решения проблемы независимости от платформы исполнения, предлагается миграция в C#.
Использование двоичных компонентов для организации взаимодействия с компонентами .Net
Обобщенно использование двоичных компонентов заключается в следующем:
-
Взаимодействие с COM компонентами
-
COM сервисы для .NET
-
.NET сервисы для COM
-
-
Использование вызовов функций из DLL
Существует ряд важных причин для использования взаимодействия COM и .NET:
-
Взаимодействие необходимо для сохранения финансовых вложений в COM-приложения
-
Для осуществления постепенной пошаговой миграции на новую платформу
-
Некоторые приложения никогда не будут переписываться под .NET и поэтому необходимо двустороннее взаимодействие, для внедрения новых компонентов в существующие приложения
Естественно для решения задачи взаимодействия с COM модулями необходимо обеспечить какой-то промежуточный уровень. Этот уровень транслирует вызовы .NET в вызовы COM, представляя типы COM в виде типов .NET и наоборот.
Для взаимодействия с сервисами COM, роль промежуточного уровня в .NET выполняет служба RWC (Runtime Callable Wrapper – вызываемая оболочка времени выполнения)

Рис. 19 Взаимодействие .NET c COM сервисом
Типы данных из COM можно использовать как обычные управляемые типы:
-
Можно создавать экземпляры с помощью new
-
Можно ловить исключения
-
Можно даже расширять типы данных и наследовать от них!
При использовании COM сервисов происходит преобразование типов данных. Модуль RCW предоставляет типы COM для клиента .NET точно так же, как будто это обычные типы .NET. При этом происходит скрытие низкоуровневых интерфейсов (такие как IUnknown, IDispatch, IConnectionPoint и другие).
С другой стороны для обеспечения доступа клиента COM к типу .NET используется специальный промежуточный уровень называемый CCW (COM Callable Wrapper – оболочка для COM с возможностью вызова). Роль CCW представлена на рисунке (Рис. 20):

Рис. 20 Взаимодействие COM c сервисом .NET
Модуль CCW автоматически реализует множество служебных интерфейсов COM, чтобы создать у клиентов COM полную иллюзию, что они имеют дело с соклассом. Помимо этого модуль CWW, конечно же, реализуют и пользовательские интерфейсы типов .NET, включая так называемый интерфейс класса (специальный интерфейс, в который помещаются все свойства, методы, поля и события, которые определены в типе как public). CCW также управляет экземплярами, исключениями, преобразованием сигнатур и т.д.
Использование вызова функций, реализованных в традиционных двоичных модулях, из кода .NET обеспечивается службой активизации платформ (Platform Invocation Services, PInvoke). PInvoke передаёт параметры при вызове функций, транслируя типы данных .NET в их аналоги в традиционном двоичном коде.

Рис. 21 Использование вызовов DLL
