home Преподавание Информационных Технологий в России
Открытая всероссийская конференция

АПКИТ
Конференция

Информационное сообщение

Место проведения

Программа конференции

Участники

Фоторепортаж

Программный комитет

Программный комитет

Спонсоры
Информ. спонсоры
Орг. поддержка

ЛАНИТ-ТЕРКОМ

Нижегородский госуниверситет им. Н.И. Лобачевского

ВЕРИФИКАЦИЯ КАК ГАРАНТИЯ КАЧЕСТВА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ. АСПЕКТЫ ОБУЧЕНИЯ

Синицын Сергей Владимирович (sinitzyn@cyber.mephi.ru)
к.т.н., доцент, заведующий кафедрой
Петухова Елена Анатольевна (helene@cyber.mephi.ru)
ст. преподаватель, зам. декана
Садчиков Сергей Михайлович (sadchikov@cyber.mephi.ru)
к.т.н., зам. заведующего кафедрой
Налютин Никита Юрьевич (nalutin@cyber.mephi.ru)
ассистент
Московский инженерно-физический институт (государственный университет)

Аннотация
Подготовка ИТ-специалистов и специалистов в области инженерии программного обеспечения в настоящее время требует включения в образовательные программы дисциплин, отражающих все основные процессы верификации программного обеспечения. Это позволяет ориентировать на разработку качественного программного обеспечения студентов различных направлений вне зависимости от уровня квалификации и будущей профессии.
В докладе обсуждается опыт кафедры "Кибернетика" МИФИ в подготовке специалистов направления "прикладная математика и информатика", основанной на непрерывном обучении процессам верификации.

VERIFICATION AS A BASIS FOR SOFTWARE QUALITY. LEARNING ASPECTS

Sinitsyn Sergey (sinitzyn@cyber.mephi.ru)
Petuhova Helen (helene@cyber.mephi.ru)
Sadchikov Sergey (sadchikov@cyber.mephi.ru)
Nalutin Nikita (nalutin@cyber.mephi.ru)
Moscow Engineering and Physics Institute (State University)

Многолетний опыт взаимодействия кафедры "Кибернетика" МИФИ с различными предприятиями ИТ-отрасли показывает, что выпускаемые специалисты, базовые и специальные знания которых подкреплены также реальным опытом практической работы на предприятиях, гораздо более востребованы на рынке труда, чем специалисты, не имеющие такой подготовки.

В настоящее время наблюдается значительное повышение интереса к вопросам обеспечения качества программного обеспечения, в том числе и разрабатываемого недавними выпускниками ВУЗов [1]. В силу этого представляется необходимым не просто вводить в учебные планы отдельные курсы по тестированию программного обеспечения и управлению качеством, а комплексно рассматривать различные аспекты верификации при подготовке ИТ-специалистов самого разного профиля. Так, системным аналитикам необходимо задумываться о тестопригодности создаваемых ими требований, менеджерам проектов - планировать разработку в соответствии с требуемым уровнем критичности системы, программистам - вести разработку с учетом технологических требований проекта. Таким образом, если мы хотим говорить о разработке качественного ПО, то верификация перестает быть уделом только лишь тестировщиков.

Включение дисциплин верификации и сертификации ПО представляется крайне необходимым в учебные планы всех ИТ-специальностей.

Верификация - это процесс определения того, выполняют ли программные средства и их компоненты требования, наложенные на них в последовательных этапах жизненного цикла разрабатываемой программной системы.

Основная цель верификации состоит в подтверждении того, что программное обеспечение соответствует требованиям. Дополнительной целью является выявление и регистрация дефектов и ошибок, которые внесены во время разработки или модификации программы.

Основная цель процесса - доказательство того, что результат разработки соответствует предъявленным к нему требованиям. Обычно процесс верификации проводится сверху вниз, начиная от общих требований, заданных в техническом задании и/или спецификации на всю информационную систему и заканчивая детальными требованиями к программным модулям и их взаимодействию. В состав задач процесса входит последовательная проверка того, что в программной системе:

  • общие требования к информационной системе, предназначенные для программной реализации, корректно переработаны в спецификацию требований высокого уровня к комплексу программ, удовлетворяющих исходным системным требованиям;
  • требования высокого уровня правильно переработаны в архитектуру ПО и в спецификации требований к функциональным компонентам низкого уровня, которые удовлетворяют требованиям высокого уровня;
  • спецификации требований к функциональным компонентам ПО, расположенным между компонентами высокого и низкого уровней, удовлетворяют требованиям более высокого уровня;
  • архитектура ПО и требования к компонентам низкого уровня корректно переработаны в удовлетворяющие им исходные тексты программных и информационных модулей;
  • исходные тексты программ и соответствующий им исполняемый код не содержат ошибок.

Кроме того, верификации на соответствие спецификации требований на конкретный проект программного средства подлежат требования к технологическому обеспечению жизненного цикла ПО, а также требования к эксплуатационной и технологической документации. Тестовые сценарии предназначены для проверки внутренней непротиворечивости и полноты реализации требований. Выполнение тестовых процедур должно обеспечивать демонстрацию соответствия испытываемых программ исходным требованиям.

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

Подобный подход уже в течение многих лет с успехом применяется на кафедре "Кибернетика" МИФИ. Кафедра готовит специалистов по специальности "Прикладная математика и информатика" с квалификацией "Математик, системный программист". Кафедра имеет более чем 30-летний опыт в преподавании курсов по программной инженерии. Цикл дисциплин по программированию (дисциплин технологического цикла) построен таким образом, что студенты уже со второго курса начинают знакомство с промышленными методами разработки программного обеспечения. Во всех выполняемых на 2-3 курсах учебных задачах помимо разработки программного кода требуется определять функциональные требования к разрабатываемым модулям и программам, составлять тест-требования и тест-планы и реализовывать тестовое окружение. При этом на втором курсе большее внимание уделяется разработке и тестированию отдельных программных модулей, а на третьем - разработке и тестированию отдельных программ и многопроцессных систем, использующих средства межпроцессного взаимодействия.

На четвертом курсе студенты проходят годичный курс "Технология программирования", в ходе которого они знакомятся с современными методами и организационными процедурами разработки комплексного программного обеспечения и выполняют групповой курсовой проект. Цель проекта: разработать коллективом небольшую, но реально работающую систему, проходящую все стадии жизненного цикла - от формулировки задачи до приемо-сдаточных испытаний. В рамках проекта выполняется разработка стандартов проекта и продукта, реализация и верификация. Программа курса регулярно пересматривается, чтобы обеспечить ее соответствие современным информационным технологиям.

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

Учебное пособие "Верификация программного обеспечения" [2], представляет те знания и опыт, которые были накоплены кафедрой в области программной инженерии за последние 30 лет. Оно было создано при поддержке корпорации Microsoft и входит в программу обучения Интернет-университета информационных технологий (ИНТУИТ). Книга основана на реальных технологиях и технологических процессах верификации, применяющихся в настоящее время в авиационной промышленности, при разработке и анализе комплексов обеспечения информационной безопасности, при разработке высокоустойчивых прикладных систем. При изложении сочетается фундаментальный подход к вопросам верификации и использование современных инструментальных средств.

Примером результатов, получаемых от комплексного обучения верификации, может служить взаимодействие с московским предприятием ВП "БАРС", работающим в области разработки авиационного бортового программного обеспечения. Предприятие заинтересовано в подготовке кадров для собственных потребностей. Опыт показал, что найти готовых специалистов на рынке труда практически невозможно. Временные затраты на дообучение на предприятии достигают полугода. Предприятие пошло на внедрение своих технологий в учебный процесс кафедры, выделение специалистов для проведения учебных занятий, предоставление своих площадей для организации лабораторной базы специализации студентов в области верификации встроенного программного обеспечения бортовых систем. Таким образом, студенты, получавшие подготовку в области верификации в течение практически всего периода обучения, с меньшими проблемами вовлекаются в реальную деятельность предприятия и более востребованы.

Другим примером может служить производственная фирма "Логос", которая является одной из наиболее известных отечественных компаний на рынке компьютеризированных тренажеров военной и гражданской техники и имеет большой опыт внедрения и практического использования тренажерных комплексов. Методы распределенного компьютерного моделирования в реальном времени со многими участниками, высококачественная компьютерная графика, модульность позволили объединять отдельные тренажеры в экипажные и многоэкипажные комплексы. Максимальное использование штатного оборудования боевых машин, высокий уровень математического и программного моделирования, высококачественная электроника и современные технологии разработки - вот основные черты деятельности ПФ "Логос".

Все это стало возможным благодаря высокому уровню подготовки выпускников кафедры "Кибернетика", обладающих знаниями, достаточными для создания не просто программного обеспечения, а программного обеспечения сложного и высококачественного.

В докладе обсуждается программа обучения специалистов в соответствии с рассмотренным подходом и особенности реализации такого подхода в рамках новых образовательных и профессиональных стандартов.

Литература

  1. Кузовкин А.В., Синицын С.В. и др. Проблемы современных технологий создания программных систем и обучение этому студентов технических вузов // Приборы и системы. Управление, контроль, диагностика. - 2001. - № 9
  2. Синицын С.В., Налютин Н.Ю. Верификация программного обеспечения: Учебное пособие. - М.: Интернет-университет информационных технологий; БИНОМ. Лаборатория знаний, 2008. - 368 с
 

В начало :: О конференции :: Программа :: Доклады :: Контакты

Техническая поддержка сайта:
Copyright © АП КИТ, 2005
hosted by TERCOM
webmasters: perez&helga