Проблемы развития и освоения программной инженерии Липаев Владимир Васильевич профессор, доктор технических наук Институт системного программирования РАН [email protected]
Первые отечественные вычислительные машины: МЭСМ; М-1; М-2; БЭСМ; Стрела; БЭСМ-2; М-40; М-50
Динамика истории отечественных десятилетий
Задачи создания программных средств реального времени : разработать функциональный комплекс программ реального времени для обработки информации и для управления средствами; создать операционную система организации вычислительного процесса в реальном времени, при случайных потоках сообщений из внешней среды и случайной длительности решения функциональных задач; реализовать программные средства для глобальной вычис-лительной сети системы, состоящей из ряда пунктов обработки информации на ЭВМ; создать программы диалогового взаимодействия операторов в локальных сетях ЭВМ жесткого реального времени при параллельном решении задач с временем отклика менее одной секунды; создать методы и средства для динамической комплексной отладки и испытаний сложных программ реального времени, а также для моделирования внешней среды, системы.
Типичные недостатки разработки проектов крупных программных продуктов реального времени: - не всегда полностью реализуются функции и задачи, требуемые техническим заданием заказчика; - неопределенное качество тестирования, надежность и безопасность поставляемого программного продукта; - не обеспечивается модификация, повторное использование компонентов и расширяемость программных средств; - недостаточно документируются компоненты и программный продукт; - не применяются современные международные стандарты; - велики, не анализируются и не прогнозируются затрачиваемые ресурсы на программный продукт; - создаваемые программные продукты не выдерживают конкуренции на западном рынке.
Программные продукты с гарантированным качеством, отличают:- большая размерность, высокая трудоемкость и стоимость комплексов программ определяют необходимость экономической эффективности и конкурентоспособности; - от заказчика, программного средства, необходимо получать квалифицированные требования, соответствующие финансированию; - в проектах программных средств участвуют большие коллективы специалистов разной квалификации, от которых требуется ответственность за качество каждого; - для координации деятельности разработчиков менеджеры, а также методы, методики и комплексы средства автоматизации; - от разработчиков требуются гарантии качества программных продуктов, в которые не допустимо вмешательство заказчика и пользователей, не предусмотренное эксплуатационной документацией; - необходимо применять, регламентированные международными стандартами процессы, этапы и документы.
Проблемы развития и освоения программной инженерии: - проблемы развития и освоения методологии современной программной инженерии;- проблемы обеспечения качества крупных программных продуктов;- проблемы освоения и применения международных стандартов программной инженерии;- проблемы повышения квалификации руководителей проектов в программной инженерии;- проблемы организации коллективов специалистов для крупных проектов программных продуктов;- проблемы обучения специалистов в области программной инженерии;- проблемы подготовки учебных планов и курсов по программной инженерии.
Цели применения профилей международных стандартов жизненного цикла ПС: - освоение мирового опыта и методов современной программной инженерии; - применение совершенных, стандартизированных процессов для обеспечения жизненного цикла программных средств; - гарантирование высокого качества, надежности и безопасности отечественных программных продуктов; - обеспечение конкурентоспособности отечественных программных продуктов на мировом рынке; - сертификация качества отечественных предприятий, поставляющих программные продукты; - обучение специалистов современной программной инженерии.
Профиль международных стандартов жизненного цикла программных средств включает:Стандарты управления жизненным циклом, качеством и интерфейсами систем и программных средствСтандарты разработки, сопровождения, тестирования и управления конфигурацией компонентов и программных средствСтандарты обеспечения качества, безопасности, документирования и сертификации в жизненном цикле программных средств
Стандарт ISO 9126 определяет характеристики качества комплексов программ: Функциональная пригодность детализируется: пригодностью для применения; корректностью (правильностью, точностью); способностью к взаимодействию; защищенностью. Надежность характеризуется: уровнем завершенности (отсутствия ошибок); устойчивостью к дефектам; восстанавливаемостью; доступностью – готовностью. Эффективность рекомендуется отражать: временной эффективностью; используемостью ресурсов. Применимость (практичность) предлагается описывать: понятностью; простотой использования; изучаемостью; привлекательностью. Сопровождаемость представляется: удобством для анализа; изменяемостью; стабильностью; тестируемостью. Переносимость (мобильность) предлагается отражать: адаптируемостью; простотой установки – инсталляции; замещаемостью.
Четыре ключевых объекта: - требования заказчика и/или пользователей к системе, которые определяют цели создания и назначение системы и программного продукта, их функции и область применения; - тесты – эталоны и вторая адекватная форма описания содержания и функционирования комплекса программ для проверки полноты реализации требований, а также для верификации на соответствия исходным требованиям к системе;- эксплуатационная документация (третий эталон), которая должна обеспечивать применение программного продукта пользователями в соответствии с требованиями заказчика; - программный продукт и система, результат реализации требований: функциональные характеристики системы и предусмотренные свойства, для обеспечения корректного применения.
Требования- общие требования к качеству функционирования и характеристикам программного продукта реального времени;- ограничения ресурсов для реализации требований к крупному программному продукту;- требования к надежности функционирования крупных программных продуктов;- требования к функциональной безопасности крупных программных продуктов;- требования к производительности и эффективности динамического использования ресурсов ЭВМ программным продуктом в реальном времени;требования к допустимым рискам динамического применения крупных программных продуктов;требования к эксплуатационной документации
Верификация требований- верификация требований к проекту системы;- верификация требований к функциям и характеристикам крупного комплекса программ;- верификация требований к архитектуре крупного комплекса программ;- верификация требований к функциональным компонентам крупного комплекса программ;- трассировка требований к компонентам комплекса программ;- сравнительный анализ приоритетов требований и допустимых рисков комплекса программ; обеспечение баланса требований к крупному комплексу программ с учетом доступных ресурсов
Конфигурационное управление комплексами программ:- организация специалистов и процессов управления конфигурацией комплекса программ;- конфигурационная идентификация и учет версий компонентов и комплексов программ;- управление запросами на изменения версий компонентов и комплексов программ; - реализация корректировок версий компонентов и комплексов программ;- сборка и формирование версий конфигурации программного продукта;- утверждение и выпуск версий конфигурации программного продукта; - архивирование, тиражирование и поставка версий программного продукта и документов.
База данных - спецификаций требований и ресурсов для реализации требований к программному продукту;- тестов и результатов тестирования требований к компонентам и комплексу программ;- дефектов, ошибок и корректировок требований и их реализаций компонентами и комплексом программ;- тестов, результатов квалификационного тестирования, испытанных версий и характеристик требований к программному продукту;- сопровождения, конфигурационного управления, корректировок требований версий и программного продукта;- архив утвержденных требований, тестов и эксплуатационных документов версий программного продукта поставляемых заказчику.
Специалисты заказчик – разработчик требований к программному продукту;- менеджер – организатор реализации требований к программному продукту;- менеджер – системный архитектор программного продукта; - аналитики – системные архитекторы требований к компонентам и комплексу программ;- разработчики сценариев и генераторов динамических тестов для тестирования требований к комплексу программ;- тестировщики реализации требований к версиям компонентов и комплекса программ;- системные интеграторы компонентов и версий комплекса программ;- управляющие конфигурацией версий программного продукта; документаторы и архиваторы версий программного продукта.
Cпециалисты – источники дефектов - заказчик проекта – дефекты организации проекта и требований к программному продукту;- менеджер проекта – дефекты освоения реальной сложности программного продукта;- менеджер-архитектор – ошибки организации проектирования и архитектуры комплекса программ; - системные архитекторы – системные и алгоритмические дефекты комплекса программ; - спецификаторы компонентов – алгоритмические ошибки компонентов и комплекса программ; - тестировщики соответствия требованиям – системные и алгоритмические ошибки компонентов и комплекса; - системные интеграторы – системные дефекты версий программного продукта и документации; - управляющие конфигурацией – ошибки реализации и модификации версий программного продукта; - документаторы продукта – ошибки и дефекты эксплуатационных документов программного продукта.
Монографии, регламентирующие процессы программной инженерии на базе международных стандартов Липаев В.В. Программная инженерия. Методологические основы. Учебник для ВУЗОВ. Технико-экономическое обоснование проектов сложных программных средств Системное проектирование сложных программных средств для информационных системМетоды обеспечения качества крупномасштабных программных средствФункциональная безопасность программных средств Анализ и сокращение рисков проектов сложных программных средствСопровождение и управление конфигурацией сложных программных средствДокументирование сложных программных средствПроцессы и стандарты жизненного цикла сложных программных средств. Справочник www.ispras.ru/lipaev/index.htm