Особенности практической реализации процесса интеграции при разработке сложных аппаратно-программных комплексов НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ.

Презентация:



Advertisements
Похожие презентации
Лабораторный практикум по курсу Принципы построения современных ОС Линёв А.В. – ассистент, кафедра ИИСиГИ ВМК ННГУ Свистунов А.Н. – ассистент, кафедра.
Advertisements

Государственный университет им. Н.И. Лобачевского Национальный исследовательский университет Докладчик: Алексей Сиднев Макромодульный подход к разработке.
1 Диаграммы реализации (implementation diagrams).
Программа для моделирования IDEF0 диаграмм «Ide-editor» Исполнители: Насонов А.А. Куц Д.В. Заводовский В.Б. Шалыгина М. М.
Ранжирование функциональных требований. Критерии ранжирования функциональных требований широта сферы применения; степень детализации; функциональный.
ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННЫХ СИСТЕМ. ИНФОРМАЦИЯ Информация – сведения о людях, фактах, явлениях, событиях в независимости от формы их представления.
Разработка программного обеспечения для сигнальных процессоров TMS320C64xx в IDE Code Composer Studio Часть I. Основные возможности среды разработки CCS.
Р ЕДАКТОР UML ACTION ДИАГРАММ Исполнители: Гусев А.П. [Главный программист] Шатеев И.В. [Архитектор] Меркулов А.А. [Прожект-менеджер] (ИВТ-461) ВОЛГОГРАДСКИЙ.
ГОСТ ЕСПД. Виды программ и программных документов Выполнил: Киселева Е.М. Проверил: Лебедева И.А.
Учебный курс Стандартизация и сертификация программного обеспечения Лекция 7 доктор технических наук, профессор, проректор по информатизации, заведующий.
Разработка аппаратно-программных средств имитационного комплекса моделирования микропроцессора Выполнил: студент 515 группы МФТИ Иванов С.С Научный руководитель:
БД (администрирование) 1 Базы данных (администрирование) Аблов Игорь Васильевич Кафедра информационных технологий.
IDE QNX – практическая работа Трофимов Александр SWD Software.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ.
Федеральное агентство по образованию Волгоградский Государственный Технический Университет Кафедра «Программное обеспечение автоматизированных систем»
2 Основным понятием программной инженерии является понятие жизненного цикла ПО. Жизненный цикл ПО (software lifecycle) – это период времени, который начинается.
Татьяна Сметанина. Автоматизированное тестирование веб-приложений Coded UI тесты и сценарии применения.
2-3 февраля 2010 г. Разработка решения для управления высшим учебным заведением на платформе «1С:Предприятие 8.2» Шульгин Андрей Олегович Ставропольский.
Эффективность в каждом решении Управление разработкой Корпоративного портала: как грамотно выстроить работу с подрядчиком.
АИС Аптекарь 8.1 Интеграция программной функции. Ателье Информационных Систем Специализация - разработка систем автоматизации аптек и аптечных сетей.
Транксрипт:

Особенности практической реализации процесса интеграции при разработке сложных аппаратно-программных комплексов НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ им.Н.И.ЛОБАЧЕВСКОГО НАУЧНО-ИССЛЕДОВАТЕЛЬСКИЙ ФИЗИКО-ТЕХНИЧЕСКИЙ ИНСТИТУТ ЛАБОРАТОРИЯ АППАРАТНО-ПРОГРАММНЫХ СИСТЕМ Докладчик: Кузьмина Ирина, НИФТИ ННГУ

НИФТИ ННГУ2 Комплекс управления проверочной аппаратурой

НИФТИ ННГУ3 Схема зависимости программных компонентов vxi adl ADL Dispatcher VXI CSPDI Dselector Tibbo VN6204 VN1404 Cdisp Creference Generator Converter Cresearch Convdistr Manager Imitator

НИФТИ ННГУ4 Недостатки процесса разработки программного обеспечения (ПО) отсутствие этапа интеграции программных компонентов при разработке; отсутствие согласования размещенных в системе версионного контроля исходных кодов и бинарных файлов; высокий риск потери возможности разработки компонента в случае болезни или увольнения разработчика; проблемы взаимодействия с аппаратурой, возникающие при отладке комплекса.

НИФТИ ННГУ5 Схема процесса разработки ПО РАЗРАБОТЧИК 1 ИНТЕГРАТОР РАЗРАБОТЧИК N РАЗРАБОТЧИК 2 Создание дистрибутива (Setup.exe) *.exe *.dll *.dll Setup.exe Setup.exe Репозиторий

6 Выделение процесса интеграции программных компонентов весь исходный код хранится в версионном хранилище и компилируется из командной строки на сборочном сервере при сборке комплекса по требованию; удовлетворение зависимостей на сборочном сервере обеспечивается настройками среды разработки на бинарные файлы зависимых проектов, а не на бинарники установленного комплекса предыдущей версии; после компиляции кода на сборочном сервере из полученных исполняемых файлов и библиотек собирается дистрибутив, а файлам исходного кода присваивается метка, определяющая текущую версию комплекса. Синхронизация интерфейсовна этапе сборки комплекса Синхронизация интерфейсов на этапе сборки комплекса Сборка комплекса любой версии

НИФТИ ННГУ7 Схема процесса разработки ПО РАЗРАБОТЧИК 1 ИНТЕГРАТОР РАЗРАБОТЧИК N РАЗРАБОТЧИК 2 Создание дистрибутива (Setup.exe) *.exe *.dll *.dll Setup.exe Setup.exe Исходныйкод Исходныйкод Компиляция Создание дистрибутива (Setup.exe) Репозиторий

НИФТИ ННГУ8 Анализ результатов процесса интеграции + снизились риски, связанные с человеческим фактором; + сократились временные затраты как процесса разработки ПО, так и процессов тестирования программной части и всего комплекса в целом.

НИФТИ ННГУ9 Анализ результатов процесса интеграции - «волшебная машина»; - невозможность проведения модульного тестирования на этапе сборки комплекса вследствие зависимости тестов от аппаратуры; - отсутствие полностью автоматической сборки (без участия человека). - тесная взаимосвязь программных компонентов и, как следствие, необходимость постоянного согласования интерфейсов;

НИФТИ ННГУ10 ADL Creference Cresearch VN6204 VN1404 Dselector Condistr VXI Manager CSPDI Imitator Tibbo Cdisp Комплекс ADL Creference Cresearch VN6204 VN1404 Dselector Condistr VXIManager CSPDI Imitator Tibbo Cdisp Ошибка интеграции Ошибка интеграции Ошибка интеграции Ошибка интеграции

НИФТИ ННГУ11 РАЗРАБОТЧИК 1 ИНТЕГРАТОР РАЗРАБОТЧИК N РАЗРАБОТЧИК 2 *.exe *.dll *.dll Setup.exe Setup.exe Исходныйкод Исходныйкод Компиляция Создание дистрибутива (Setup.exe) Ошибка интеграции Ошибка интеграции Ошибка интеграции Ошибка интеграции разработка \ интеграция Репозиторий

НИФТИ ННГУ12 Шаги развития процесса интеграции УСТРАНЕНИЕ «ВОЛШЕБНОЙ МАШИНЫ»: использовать только программные продукты, размещенные в версионном хранилище; создать документ, включающий описание программных продуктов; перейти от использования ссылок на исполняемые файлы компонентов к ссылкам непосредственно на программный проект; разместить сторонние библиотеки в общей структуре системы версионного контроля и настроить ссылки на них в каждом проекте. Компонент А бинарии (.lib) исх. код (.proj) Компонент B бинарии (.lib) исх. код (.proj) Компонент А бинарии (.lib) исх. код (.proj) Компонент B бинарии (.lib) исх. код (.proj)

НИФТИ ННГУ13 Шаги развития процесса интеграции РАЗДЕЛЕНИЕ МОДУЛЬНОГО И ФУНКЦИОНАЛЬНОГО ТЕСТИРОВАНИЯ: модульные тесты не зависят от аппаратуры; тестируют окружение (наличие библиотек, конфигурационных файлов); тестируют алгоритмы.

НИФТИ ННГУ14Аппаратура Окружение *.dll *.xml *.config Алгоритмы Модульные Модульные тесты тесты

НИФТИ ННГУ15 Шаги развития процесса интеграции РАЗДЕЛЕНИЕ ПРОЦЕССА ИНТЕГРАЦИИ НА ЭТАПЫ: интеграция программных компонентов (выявление конфликтов взаимодействия зависимых интерфейсов); сборка комплекса.

НИФТИ ННГУ16 Компонент А Репозиторий Разработчик 1 Компонент B Компонент C Компонент D Разработчик 2Разработчик 3Разработчик N Check In Сервер сборки Изменения Сборка компонента B Компиляция Модульное тестирование Инспекция исходного кода Сборка компонента А Компиляция Модульное тестирование Инспекция исходного кода Сборка компонента C Компиляция Модульное тестирование Инспекция исходного кода Сборка компонента D Компиляция разработчикам компонентов A и D Ошибка интеграции

НИФТИ ННГУ17 Шаги развития процесса интеграции СОЗДАНИЕ ПЛАНА КОНФИГУРАЦИОННОГО УПРАВЛЕНИЯ, РЕГЛАМЕНТИРУЮЩЕГО ВСЕ ОПИСАННЫЕ ВЫШЕ ПРОЦЕДУРЫ. Конфигурации включают : стандарты наименования; соглашения о едином стиле оформления исходного кода, комментариев, документов; порядок разработки, сборки и тестирования; распределение ролей в проекте.

НИФТИ ННГУ18 ОРГАНИЗАЦИЯ АВТОМАТИЧЕСКОЙ НЕПРЕРЫВНОЙ СБОРКИ ПРОГРАММНЫХ КОМПОНЕНТОВ И КОМПЛЕКСА В ЦЕЛОМ. Сервер сборки Сервер сборки Шаги развития процесса интеграции компиляция исходных кодов; модульное тестирование (NUnit, CUnit, CppUnit ); инспекция исходного кода (NDepend, CppDepend); уведомление разработчиков о результатах сборки.

НИФТИ ННГУ19 Сервер сборки OC Windows XP Сервер сборки OC QNX 6.3 CruiseControl.Net ClearCase LT CruiseControl ClearCase LT

20 РАЗРАБОТЧИК 1 РАЗРАБОТЧИК N РАЗРАБОТЧИК 2 Сервер сборки build-qnx QNX 6.3 Компиляция Тестирование (модул.) Создание дистрибутива (Setup.qpr) Putty Сервер сборки build-windows Сервер сборки build-windows CruiseControl.Net ClearCase LT Компиляция Тестирование (модул.) Инспекция кода Удаленный запуск сборки на build-qnx Создание дистрибутива (Setup.exe) рассылка Putty Windows XP Исходныйкод Исходныйкод Putty Setup.exe Setup.qpr Схема процесса интеграции ПО после автоматизации Setup.qpr Репозиторий

НИФТИ ННГУ21 Выводы Представленный в данной работе комплекс мер позволил сократить временные затраты, необходимые на создание очередной версии ПО АПК, с нескольких дней до нескольких часов Разработанная схема процесса интеграции является универсальной и может быть применена в проектах, независимо от операционной системы, на которой ведётся разработка ПО Для успешного внедрения непрерывной интеграции необходимо, чтобы все процедуры процесса были хорошо документированы и донесены до сведения разработчиков до начала этапа разработки ПО