Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

РАЗРАБОТКА СЛОЖНЫХ ВЫСОКОКРИТИЧНЫХ СИСТЕМ

(*****@***com)

(*****@***ru)

(*****@***ru)

(*****@***ru)

«Национальный Исследовательский Ядерный Университет «МИФИ» («НИЯУ «МИФИ»)

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

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

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

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

НЕ нашли? Не то? Что вы ищете?

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

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

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

Таким образом, подготовка IT-специалистов должна учитывать и эту особенность разработки критичного программного обеспечения. С другой стороны, нельзя допустить, что бы выпускник был знаком с методами и средствами разработки программных систем общего назначения. То есть, его квалификация, при всем прочем, должна соответствовать и общим требованиям IT-индустрии[3].

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

Таким образом, подготовка современного IT-специалиста должна опираться не только на требования отдельной, например, атомной отрасли, но и учитывать общезначимый передовой опыт, в области подготовки инженеров выработанный в IT-индустрии, например Computing Curricula[4].

В данном докладе обсуждается опыт подготовки IT-специалистов кафедры «Кибернетика» НИЯУ «МИФИ». Предлагается подход к технологической подготовке специалиста ориентированного на разработку качественного, надежного программного обеспечения. В докладе описывается организация процесса преподавания на кафедре цикла учебных курсов посвященных технологии программирования и сопутствующих им общематематических дисциплин (дискретной математики).

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

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

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

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

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

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

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

Литература:

1.  ГОСТ Р–51904 – ПРОГРАМНОЕ ОБЕСПЕЧЕНИЕ ВСТРОЕННЫХ СИСТЕМ. Общие требования к разработке и документации.

2.  , Налютин программного обеспечения: Учебное пособие. М.: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 20с.

3.  Профессиональные стандарты в области информационных технологий, М: АПКИТ, 2008.-615 с.

4.  Рекомендации по преподаванию программной инженерии и информатики в университетах = Software Engineering 2004: Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering; Computing Curricula 2001: Computer Science: пер. с англ. — М.: ИНТУИТ. РУ «Интернет-Университет Информационных Технологий», 2007. — 462 с.