Должностная инструкция ведущего инженера-программиста (разработка операционных систем)

УТВЕРЖДАЮ:

_______________________________

[Наименование должности]

_______________________________

_______________________________

[Наименование организации]

_______________________________

_______________________/[Ф.И.О.]/

«______» _______________ 20___ г.

ДОЛЖНОСТНАЯ ИНСТРУКЦИЯ

Ведущего инженера-программиста (разработка операционных систем)

1. Общие положения

1.1. Настоящая должностная инструкция определяет и регламентирует полномочия, функциональные и должностные обязанности, права и ответственность ведущего инженера-программиста [Наименование организации в родительном падеже] (далее — Компания).

1.2. Ведущий инженер-программист назначается на должность и освобождается от должности в установленном действующим трудовым законодательством порядке приказом руководителя Компании.

1.3. Ведущий инженер-программист подчиняется непосредственно [наименование должности непосредственного руководителя в дательном падеже] Компании.

1.4. Ведущий инженер-программист относится к категории специалистов и имеет в подчинении [наименование должностей подчиненных в дательном падеже].

1.5. На должность ведущего инженера-программиста назначается лицо, имеющее высшее образование (специалитет, магистратура).

1.6. Требования к опыту практической работы: не менее одного года работы в области системного программирования.

1.7. Ведущий инженер-программист отвечает за:

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

1.8. Ведущий инженер-программист должен знать:

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

1.9. Ведущий инженер-программист должен уметь:

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

1.10. Ведущий инженер-программист в своей деятельности руководствуется:

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

1.11. В период временного отсутствия ведущего инженера-программиста его обязанности возлагаются на [наименование должности заместителя].

2. Должностные обязанности

Ведущий инженер-программист в ходе разработки операционных систем выполняет следующие должностные обязанности:

2.1. Формирование требований к операционной системе:

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

2.2. Разработка архитектуры операционной системы:

  • изучение технической документации на устройства, в среде которых разрабатывается операционная система;
  • разработка архитектуры операционной системы и ее слоев;
  • обсуждение и согласование программной архитектуры с заказчиком;
  • фиксирование программной архитектуры операционной системы в технической документации;
  • разработка блок-схемы операционной системы;
  • разработка интерфейсов модулей операционной системы и согласование параметров;
  • выбор алгоритмов реализации расписаний, видов расписаний процессора;
  • выбор алгоритмов реализации расписаний, видов расписаний доступа к подсистемам ввода/вывода;
  • выбор алгоритмов реализации расписаний, видов расписаний обращения к дисковым подсистемам;
  • выбор алгоритмов обращения к оперативной памяти и реализации расписаний, видов расписаний;
  • выбор реализации мультипрограммной работы, системы прерываний, реализации «часов»;
  • выбор способов реализации коммуникации и синхронизации процессов;
  • выбор алгоритмов приоритизации процессов и расписаний их загрузки;
  • выбор алгоритмов реализации многопоточного режима работы (цепочек) процессов;
  • определение состава ядра операционной системы и состава утилит;
  • определение требований к компиляторам для работы процессов под управлением ядра;
  • выбор версии языка программирования, определенного в техническом задании.

2.3. Написание компонентов операционной системы:

  • поиск технической документации по используемым средствам и технологиям (языкам программирования, программным интерфейсам, протоколам передачи данных);
  • освоение технической документации по используемым средствам и технологиям (языкам программирования, программным интерфейсам, протоколам передачи данных);
  • выбор языка программирования для описания алгоритмов и структур данных разрабатываемой операционной системы;
  • разработка блок-схемы разрабатываемых компонентов операционной системы;
  • написание исходного кода разрабатываемого компонента операционной системы в соответствии с заданной спецификацией.

2.4. Контроль соблюдения архитектуры в процессе написания операционной системы:

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

2.5. Отладка разрабатываемых компонентов операционной системы:

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

2.6. Документирование разрабатываемой операционной системы:

  • оформление исходного кода в соответствии с технологией системного программирования;
  • написание комментариев к исходным программным компонентам операционной системы;
  • написание технической документации в соответствии с правилами проекта по разработке операционной системы;
  • оформление программной документации в соответствии с требованиями ЕСПД;
  • запись всех значимых результатов работ в систему контроля версий.

2.7. Сопровождение созданной операционной системы:

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

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

3. Права

Ведущий инженер-программист имеет право:

3.1. На все предусмотренные законодательством Российской Федерации социальные гарантии.

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

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

3.4. Представлять руководству предложения по совершенствованию своей работы и работы организации.

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

3.6. Повышать свою профессиональную квалификацию.

3.7. Требовать от руководства создания нормальных условий для выполнения должностных обязанностей.

4. Ответственность и оценка деятельности

4.1. Ведущий инженер-программист несет административную, дисциплинарную и материальную (а в отдельных случаях, предусмотренных законодательством РФ, — и уголовную) ответственность за:

4.1.1. Невыполнение или ненадлежащее выполнение служебных указаний непосредственного руководителя.

4.1.2. Невыполнение или ненадлежащее выполнение своих трудовых функций и порученных ему задач.

4.1.3. Неправомерное использование предоставленных служебных полномочий, а также использование их в личных целях.

4.1.4. Недостоверную информацию о состоянии выполнения порученной ему работы.

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

4.1.6. Не обеспечение соблюдения трудовой дисциплины.

4.2. Оценка работы ведущего инженера-программиста осуществляется:

4.2.1. Непосредственным руководителем — регулярно, в процессе повседневного осуществления работником своих трудовых функций.

4.2.2. Аттестационной комиссией предприятия — периодически, но не реже 1 раза в два года на основании документированных итогов работы за оценочный период.

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

5. Условия работы

5.1. Режим работы ведущего инженера-программиста определяется в соответствии с правилами внутреннего трудового распорядка, установленными в Компании.

5.2. В связи с производственной необходимостью ведущий инженер-программист обязан выезжать в служебные командировки (в том числе местного значения).

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

6. Право подписи

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

С инструкцией ознакомлен ___________/____________/ «____» _______ 20__ г.

(подпись)

Кнопка «Наверх»