Проблемы развития и освоения программной инженерии Липаев Владимир Васильевич профессор, доктор технических наук Институт системного программирования РАН
Первые отечественные вычислительные машины: МЭСМ; М-1; М-2; БЭСМ; Стрела; БЭСМ-2; М-40; М-50 Универсальные вычислительные машины Спец-е машины реального времени ЭВМ систем противоракетной обороны Семейства вычисл-ных машин М-20 М-220; БЭСМ-4 БЭСМ-6; АС-6 Урал: УМ1-НХ; УМ-2 Аргон: Курс-1 – 5Э89 5Э26; 40У6 5Э92б; 5Э51 5Э71; М-10 М-13 Эльбрус 1; 2; Эльбрус-90 ЕС ЭВМ: СМ ЭВМ: Аргон ЕС: А-30 - А50; Поиск
Характеристики50-е годы60-е годы70-е годы80-е годы НазначениеВычисления Управление Реальн. вр. Вычисления Управление Реальн. вр. Вычисления Управление Реальн. время Размер комплекса тысяч строк однадесяткисотнитысячи Произв. труда стр./чел.-день 0,10, Языки программирован ия Машинный код Автокод Алгол, Фортран Автокод Алгол, Пл-1 Автокод Си, Си++, Особенности операционной системы Отсутствует Пакетная, Распред. врем. Реальн. врем. Распред. врем. Реальн. врем. Динам. тестиров. ЯУЗА-6 Распред. врем. Реальн. врем. Дин. тестир. РУЗА, ОС ЕС -7 Динамика истории отечественных десятилетий
Задачи создания программных средств реального времени : разработать функциональный комплекс программ реального времени для обработки информации и для управления средствами; создать операционную система организации вычислительного процесса в реальном времени, при случайных потоках сообщений из внешней среды и случайной длительности решения функциональных задач; реализовать программные средства для глобальной вычис- лительной сети системы, состоящей из ряда пунктов обработки информации на ЭВМ; создать программы диалогового взаимодействия операторов в локальных сетях ЭВМ жесткого реального времени при параллельном решении задач с временем отклика менее одной секунды; создать методы и средства для динамической комплексной отладки и испытаний сложных программ реального времени, а также для моделирования внешней среды, системы.
Типичные недостатки разработки проектов крупных программных продуктов реального времени: - не всегда полностью реализуются функции и задачи, требуемые техническим заданием заказчика; - неопределенное качество тестирования, надежность и безопасность поставляемого программного продукта; - не обеспечивается модификация, повторное использование компонентов и расширяемость программных средств; - недостаточно документируются компоненты и программный продукт; - не применяются современные международные стандарты; - велики, не анализируются и не прогнозируются затрачиваемые ресурсы на программный продукт; - создаваемые программные продукты не выдерживают конкуренции на западном рынке.
- большая размерность, высокая трудоемкость и стоимость комплексов программ определяют необходимость экономической эффективности и конкурентоспособности; - от заказчика, программного средства, необходимо получать квалифицированные требования, соответствующие финансированию; - в проектах программных средств участвуют большие коллективы специалистов разной квалификации, от которых требуется ответственность за качество каждого; - для координации деятельности разработчиков менеджеры, а также методы, методики и комплексы средства автоматизации; - от разработчиков требуются гарантии качества программных продуктов, в которые не допустимо вмешательство заказчика и пользователей, не предусмотренное эксплуатационной документацией; - необходимо применять, регламентированные международными стандартами процессы, этапы и документы. Программные продукты с гарантированным качеством, отличают:
Проблемы развития и освоения программной инженерии: - проблемы развития и освоения методологии современной программной инженерии; - проблемы обеспечения качества крупных программных продуктов; - проблемы освоения и применения международных стандартов программной инженерии; - проблемы повышения квалификации руководителей проектов в программной инженерии; - проблемы организации коллективов специалистов для крупных проектов программных продуктов; - проблемы обучения специалистов в области программной инженерии; - проблемы подготовки учебных планов и курсов по программной инженерии.
Цели применения профилей международных стандартов жизненного цикла ПС: - освоение мирового опыта и методов современной программной инженерии; - применение совершенных, стандартизированных процессов для обеспечения жизненного цикла программных средств; - гарантирование высокого качества, надежности и безопасности отечественных программных продуктов; - обеспечение конкурентоспособности отечественных программных продуктов на мировом рынке; - сертификация качества отечественных предприятий, поставляющих программные продукты; - обучение специалистов современной программной инженерии.
Стандарты управления жизненным циклом, качеством и интерфейсами систем и программных средств Стандарты разработки, сопровождения, тестирования и управления конфигурацией компонентов и программных средств Стандарты обеспечения качества, безопасности, документирования и сертификации в жизненном цикле программных средств Профиль международных стандартов жизненного цикла программных средств включает:
Стандарт ISO 9126 определяет характеристики качества комплексов программ: Функциональная пригодность детализируется: пригодностью для применения; корректностью (правильностью, точностью); способностью к взаимодействию; защищенностью. Надежность характеризуется: уровнем завершенности (отсутствия ошибок); устойчивостью к дефектам; восстанавливаемостью; доступностью – готовностью. Эффективность рекомендуется отражать: временной эффективностью; используемостью ресурсов. Применимость (практичность) предлагается описывать: понятностью; простотой использования; изучаемостью; привлекательностью. Сопровождаемость представляется: удобством для анализа; изменяемостью; стабильностью; тестируемостью. Переносимость (мобильность) предлагается отражать: адаптируемостью; простотой установки – инсталляции; замещаемостью.
Четыре ключевых объекта: - требования заказчика и/или пользователей к системе, которые определяют цели создания и назначение системы и программного продукта, их функции и область применения; - тесты – эталоны и вторая адекватная форма описания содержания и функционирования комплекса программ для проверки полноты реализации требований, а также для верификации на соответствия исходным требованиям к системе; - эксплуатационная документация (третий эталон), которая должна обеспечивать применение программного продукта пользователями в соответствии с требованиями заказчика; - программный продукт и система, результат реализации требований: функциональные характеристики системы и предусмотренные свойства, для обеспечения корректного применения.
Требования - общие требования к качеству функционирования и характеристикам программного продукта реального времени; - ограничения ресурсов для реализации требований к крупному программному продукту; - требования к надежности функционирования крупных программных продуктов; - требования к функциональной безопасности крупных программных продуктов; - требования к производительности и эффективности динамического использования ресурсов ЭВМ программным продуктом в реальном времени; -требования к допустимым рискам динамического применения крупных программных продуктов; -требования к эксплуатационной документации
Верификация требований - верификация требований к проекту системы; - верификация требований к функциям и характеристикам крупного комплекса программ; - верификация требований к архитектуре крупного комплекса программ; - верификация требований к функциональным компонентам крупного комплекса программ; - трассировка требований к компонентам комплекса программ; - сравнительный анализ приоритетов требований и допустимых рисков комплекса программ; - обеспечение баланса требований к крупному комплексу программ с учетом доступных ресурсов
Конфигурационное управление комплексами программ: - организация специалистов и процессов управления конфигурацией комплекса программ; - конфигурационная идентификация и учет версий компонентов и комплексов программ; - управление запросами на изменения версий компонентов и комплексов программ; - реализация корректировок версий компонентов и комплексов программ; - сборка и формирование версий конфигурации программного продукта; - утверждение и выпуск версий конфигурации программного продукта; - архивирование, тиражирование и поставка версий программного продукта и документов.
База данных - спецификаций требований и ресурсов для реализации требований к программному продукту; - тестов и результатов тестирования требований к компонентам и комплексу программ; - дефектов, ошибок и корректировок требований и их реализаций компонентами и комплексом программ; - тестов, результатов квалификационного тестирования, испытанных версий и характеристик требований к программному продукту; - сопровождения, конфигурационного управления, корректировок требований версий и программного продукта; - архив утвержденных требований, тестов и эксплуатационных документов версий программного продукта поставляемых заказчику.
Специалисты - заказчик – разработчик требований к программному продукту; - менеджер – организатор реализации требований к программному продукту; - менеджер – системный архитектор программного продукта; - аналитики – системные архитекторы требований к компонентам и комплексу программ; - разработчики сценариев и генераторов динамических тестов для тестирования требований к комплексу программ; - тестировщики реализации требований к версиям компонентов и комплекса программ; - системные интеграторы компонентов и версий комплекса программ; - управляющие конфигурацией версий программного продукта; - документаторы и архиваторы версий программного продукта.
Cпециалисты – источники дефектов - заказчик проекта – дефекты организации проекта и требований к программному продукту; - менеджер проекта – дефекты освоения реальной сложности программного продукта; - менеджер-архитектор – ошибки организации проектирования и архитектуры комплекса программ; - системные архитекторы – системные и алгоритмические дефекты комплекса программ; - спецификаторы компонентов – алгоритмические ошибки компонентов и комплекса программ; - тестировщики соответствия требованиям – системные и алгоритмические ошибки компонентов и комплекса; - системные интеграторы – системные дефекты версий программного продукта и документации; - управляющие конфигурацией – ошибки реализации и модификации версий программного продукта; - документаторы продукта – ошибки и дефекты эксплуатационных документов программного продукта.
Монографии, регламентирующие процессы программной инженерии на базе международных стандартов Липаев В.В. Программная инженерия. Методологические основы. Учебник для ВУЗОВ. Технико-экономическое обоснование проектов сложных программных средств Системное проектирование сложных программных средств для информационных систем Методы обеспечения качества крупномасштабных программных средств Функциональная безопасность программных средств Анализ и сокращение рисков проектов сложных программных средств Сопровождение и управление конфигурацией сложных программных средств Документирование сложных программных средств Процессы и стандарты жизненного цикла сложных программных средств. Справочник