Инженер-программист - Software engineer

Инженер-программист, пишущий код Java

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

Образование

Половина всех практикующих сегодня имеют градусы в Информатика, информационные системы, или информационные технологии.[нужна цитата ] Небольшое, но постоянно растущее число практиков имеют степени в области разработки программного обеспечения. В 1987 г. Департамент вычислительной техники в Имперский колледж Лондон представила первую трехлетнюю разработку программного обеспечения Степень бакалавра в Великобритании и мире; в следующем году Университет Шеффилда установил аналогичную программу.[1] В 1996 г. Рочестерский технологический институт учредила первую программу бакалавриата по программной инженерии в Соединенных Штатах, однако она не получила ABET аккредитация до 2003 г., одновременно с Университет Райса, Кларксонский университет, Инженерная школа Милуоки и Государственный университет Миссисипи получил их.[2] В 1997 году технологический колледж PSG в Коимбаторе, Индия, первым начал получать пятилетнюю интегрированную степень магистра наук в области разработки программного обеспечения.[нужна цитата ]

С тех пор степень бакалавра программной инженерии была учреждена во многих университетах. Стандартная международная учебная программа для получения степени бакалавра программной инженерии, SE2004, был определен руководящим комитетом в период с 2001 по 2004 год при финансовой поддержке Ассоциация вычислительной техники и IEEE Computer Society. По состоянию на 2004 годВ США около 50 университетов предлагают степени в области разработки программного обеспечения, в которых преподаются как компьютерные науки, так и инженерные принципы и методы. Первая программная инженерия Степень магистра была основана в Сиэтлский университет в 1979 году. С тех пор дипломы по программированию стали доступны во многих университетах. Точно так же в Канаде Совет по аккредитации инженеров Канады (CEAB) Канадский совет профессиональных инженеров признал несколько программ инженерии программного обеспечения.

В 1998 году США Военно-морская аспирантура (NPS) установила первую докторская степень программа по программной инженерии в мире.[нужна цитата ] Кроме того, появилось много онлайн-ученых степеней в области разработки программного обеспечения, таких как степень магистра наук в области разработки программного обеспечения (MSE), предлагаемая на факультете компьютерных наук и инженерии в Калифорнийский государственный университет, Фуллертон. Стив МакКоннелл считает, что, поскольку большинство университетов преподают информатику, а не разработку программного обеспечения, настоящих инженеров-программистов не хватает.[3] ETS (École de technologie supérieure) Университет и UQAM (Université du Québec à Montréal) получили от IEEE поручение разработать свод знаний по программной инженерии (SWEBOK ), который стал стандартом ISO, описывающим совокупность знаний, которыми занимается инженер-программист.[4]

Другие степени

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

Некоторые практикующие математика, наука, инженерное дело, или технологии (STEM ) градусов. Некоторые имеют философия (в частности, логика) или другие нетехнические степени.[нужна цитата ] Например, Барри Бем получил ученую степень по математике. А у других нет ученых степеней.[нужна цитата ]

Профессия

Трудоустройство

Большинство инженеров-программистов работают в качестве сотрудников или подрядчиков. Программные инженеры работают с предприятия, государственные учреждения (гражданские или военные) и некоммерческие организации. Некоторые инженеры-программисты работают самостоятельно в качестве инженеров-консультантов. В некоторых организациях есть специалисты для выполнения всех задач в процесс разработки программного обеспечения. В других организациях инженеры-программисты разделяют на основе конкретных задач разработки программного обеспечения. Эти компании иногда нанимают стажеры (возможно, студенты университета или колледжа) в течение короткого времени. В крупных проектах инженеры-программисты отличаются от людей, которые специализируются только на одной роли, потому что они принимают участие как в разработке, так и в программировании проекта. В небольших проектах инженеры-программисты обычно выполняют несколько или все роли одновременно. Специализации включают:

Влияние глобализации

Большинство студентов в развитых странах избегают получения дипломов, связанных с программной инженерией, из-за боязни оффшорный аутсорсинг (импорт программных продуктов или услуг из других стран) и вытеснение иностранные визовые работники.[5] Хотя государственная статистика в настоящее время не показывает угрозы самой программной инженерии; родственная карьера, компьютерное программирование похоже, пострадали.[6][7] Часто ожидается, что человек сначала станет программистом, а потом его повысят до инженера-программиста. Таким образом, карьера в области разработки программного обеспечения может быть трудной, особенно во время рецессий.

Некоторые консультанты по вопросам карьеры предлагают студенту также сосредоточиться на «человеческих навыках» и бизнес-навыках, а не на чисто технических навыках, потому что такие «мягкие навыки» якобы труднее передать за границу. Большинство работодателей просят разумного владения чтением, письмом и разговорной английской речью.[8] Похоже, что именно квазиуправленческие аспекты программной инженерии удерживают ее от воздействия глобализации.[9]

Призы

В области разработки программного обеспечения есть несколько призов:[10]

  • В Codie награды - это ежегодная награда, присуждаемая Ассоциацией индустрии программного обеспечения и информации за выдающиеся достижения в разработке программного обеспечения в индустрии программного обеспечения.
  • Награды Jolt награды в индустрии программного обеспечения.
  • Премия Стивенса награда за разработку программного обеспечения, вручаемая памяти Уэйна Стивенса.

Использование звания «Инженер»

Происхождение термина

Маргарет Гамильтон продвигала термин «разработка программного обеспечения» во время своей работы над Программа Аполлон. Термин «инженерия» использовался для обозначения того, что к работе следует относиться так же серьезно, как и к другим вкладам в развитие технологий. Гамильтон подробно описывает использование этого термина:

Когда я впервые придумал этот термин, никто раньше о нем не слышал, по крайней мере, в нашем мире. Долгое время это была постоянная шутка. Им нравилось подшучивать над моими радикальными идеями. Это был памятный день, когда один из самых уважаемых гуру аппаратного обеспечения объяснил всем на встрече, что он согласен со мной, что процесс создания программного обеспечения также следует рассматривать как инженерную дисциплину, как и в случае с аппаратным обеспечением. Не из-за того, что он принял новый «термин» как таковой, а потому, что мы заслужили его и признание других присутствующих в зале как самостоятельных инженеров.[11]

Пригодность термина

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

Отдельные комментаторы резко расходятся во мнениях относительно того, как определять программная инженерия или его легитимность как инженерная дисциплина. Давид Парнас сказал, что программная инженерия на самом деле является формой инженерии.[12][13] Стив МакКоннелл сказал, что это не так, но должно быть.[14] Дональд Кнут сказал, что программирование - это искусство и наука.[15] Эдсгер В. Дейкстра утверждал, что условия программная инженерия и инженер-программист использовались неправильно[неправильный синтез? ] и должны считаться вредными, особенно в Соединенные Штаты.[16]

Нормативная классификация

Канада

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

В Онтарио действует Закон о профессиональных инженерах.[17] предусматривает минимальный уровень образования в виде трехлетнего диплома в области технологий Колледжа прикладных искусств и технологий или степени в соответствующей области науки.[18] Тем не менее, бакалавриат технических специальностей и все другие соискатели не могут использовать звание инженера до тех пор, пока они не завершат минимальный четырехлетний опыт работы в дополнение к сдаче экзамена по профессиональной практике (PPE). Если соискатель не имеет степени бакалавра инженера, ему, возможно, придется сдать подтверждающий практический экзамен или специальную программу экзаменов, если комитет не откажется от требований к экзамену.[19][20]

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

В некоторых случаях дела передавались в суд по поводу незаконного использования охраняемого титула. Инженер.[21]

Европа

По всей Европе квалифицированные инженеры могут получить профессиональные Европейский инженер квалификация.

Франция

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

Однако название Ingénieur Diplomé (Дипломированный инженер) - это официальное ученое звание, защищаемое государством и связанное с Diplôme d'Ingénieur, которая является одной из самых престижных ученых степеней во Франции.

Исландия

Использование названия tölvunarfræðingur (специалист в области информатики ) охраняется законом Исландии.[22] Программная инженерия преподается в Информатика кафедры в исландских университетах. Согласно исландскому законодательству, при присвоении ученой степени за границей необходимо получить разрешение министра промышленности до использования титула. Звание присуждается тем, кто получил степень бакалавра компьютерных наук в признанном высшем учебном заведении.[23]

Новая Зеландия

В Новой Зеландии Институт профессиональных инженеров Новой Зеландии (IPENZ), которая лицензирует и регулирует деятельность дипломированных инженеров страны (CPEng), признает программную инженерию законной отраслью профессиональной инженерии и принимает заявки инженеров-программистов для получения дипломированного статуса при условии, что они имеют третичную степень по утвержденным предметам. Программная инженерия включена, тогда как информатика обычно не входит.[24]

Соединенные Штаты

В Бюро статистики труда (BLS) классифицирует инженеры по компьютерному программному обеспечению как подкатегория «компьютерных специалистов», наряду с такими профессиями, как компьютерный ученый, программист, администратор баз данных и сетевой администратор.[25] BLS классифицирует все другие инженерные дисциплины, включая инженеров по компьютерному оборудованию, как инженеры.[26]

Многие штаты запрещают лицам, не имеющим лицензии, называть себя инженерами или указывать отрасли или специальности, на которые не распространяется действие лицензионных актов.[27][28][29][30][31][32][33][34][35][36] Во многих штатах звание инженера зарезервировано для лиц с лицензией профессионального инженера, указывающей на то, что они продемонстрировали минимальный уровень компетентности посредством аккредитованного инженерного образования, квалифицированного инженерного опыта и экзаменов инженерного совета.[37][38][29][30][31][32][33][34][35][36]

В апреле 2013 г. Национальный совет экспертов по инженерно-геодезическим работам (NCEES) начал предлагать экзамен на профессионального инженера (PE) по программной инженерии. Экзамен был разработан совместно с IEEE Computer Society.[39] NCEES завершил экзамен в апреле 2019 года из-за отсутствия участников.[40]

Смотрите также

использованная литература

  1. ^ Каулинг, А. Дж. 1999. Первое десятилетие программы бакалавриата по программной инженерии. Анна. Софтв. Англ. 6, 1–4 (апр. 1999), 61–90.
  2. ^ «Инженерные программы, аккредитованные ABET». 3 апреля 2007 г.. Получено 3 апреля, 2007.
  3. ^ МакКоннелл, Стив (10 июля 2003 г.). Профессиональная разработка программного обеспечения: более короткие графики, более качественные продукты, более успешные проекты, более высокая карьера. ISBN  978-0-321-19367-4.
  4. ^ Программная инженерия - Руководство по совокупности знаний в области программной инженерии (SWEBOK), Международная организация по стандартизации, 2015 г., получено 11 января, 2020
  5. ^ «Новости IT, вакансии, бизнес-технологии, обзоры». Computerworld.
  6. ^ "Программисты".
  7. ^ «В Северной Америке рост разработчиков программного обеспечения замедляется | InfoWorld | Новости | 13 марта 2007 г. | Роберт Маллинс, Служба новостей IDG». Архивировано из оригинал 4 апреля 2009 г.
  8. ^ «Горячие навыки, холодные навыки». Архивировано из оригинал 22 февраля 2014 г.
  9. ^ Двойные роли: меняющееся лицо ИТ
  10. ^ Некоторые внешние ссылки:
  11. ^ Лоуренс, Снайдер (2017). Свободное владение информационными технологиями: навыки, концепции и возможности ([Седьмое издание] ред.). Нью-Йорк, Нью-Йорк. ISBN  978-0134448725. OCLC  960641978.
  12. ^ Парнас, Дэвид Л. (1998). «Программы программной инженерии не являются программами компьютерных наук». Анналы программной инженерии. 6: 19–37. Дои:10.1023 / А: 1018949113292. S2CID  35786237., п. 19: «Вместо того, чтобы относиться к разработке программного обеспечения как к подполе информатики, я рассматриваю ее как элемент набора {Гражданское строительство, Машиностроение, Химическая инженерия, Электротехника, ....}».
  13. ^ Парнас, Дэвид Л. (1998). «Программы программной инженерии не являются программами компьютерных наук». Анналы программной инженерии. 6: 19–37. Дои:10.1023 / А: 1018949113292. S2CID  35786237., п. 20: «В этом документе утверждается, что внедрение аккредитованных профессиональных программ в области разработки программного обеспечения, программ, которые смоделированы на основе программ по традиционным инженерным дисциплинам, поможет повысить как качество, так и количество выпускников, которые по своему образованию хорошо подготовлены к развитию заслуживающих доверия программные продукты ".
  14. ^ МакКоннелл, Стив (Август 2003 г.). Профессиональная разработка программного обеспечения: более короткие сроки, лучшие проекты, превосходные продукты, расширенная карьера. Бостон, Массачусетс: Аддисон-Уэсли. ISBN  0-321-19367-9., п. 39: «На мой взгляд, ответ на этот вопрос ясен: профессиональная разработка программного обеспечения должна быть инженерной. Не так ли? Нет. Но так должно быть? Несомненно, да».
  15. ^ Кнут, Дональд (1974). «Компьютерное программирование как искусство» (PDF). Коммуникации ACM. 17 (12): 667–673. Дои:10.1145/361604.361612. S2CID  207685720.Стенограмма 1974 г. Премия Тьюринга лекция.
  16. ^ Дейкстра, Эдсгер В; расшифровано Марио Беландом (23 ноября 2004 г.) [Впервые опубликовано 3 декабря 1993 г.]. «Война все еще продолжается (рукопись Остин, 3 декабря 1993 г.)». Архив Э. В. Дейкстры. Техасский университет в Остине, факультет компьютерных наук. Получено 17 февраля, 2007. Когда этот термин был введен в 1968 году Ф. Бауэра из Мюнхенского технологического университета, я это приветствовал. [. . .] Я интерпретировал введение термина «программная инженерия» как уместное отражение того факта, что проектирование программных систем было делом преимущественно для инженера-математика. [. . .]. Как только термин прибыл в США, он был освобожден от всего технического содержания. Так должно было быть, потому что в своем первоначальном значении это было совершенно неприемлемо [. . .] Между тем, разработка программного обеспечения стала почти пустым термином, что было прекрасно продемонстрировано Data General, которая в одночасье повысила всех своих программистов до высокого ранга «программистов»!
  17. ^ «Закон о профессиональных инженерах». 24 июля 2014 г.
  18. ^ «Академические требования». www.peo.on.ca.
  19. ^ «Программа подтверждающих экзаменов». www.peo.on.ca.
  20. ^ "mybtechdegree.ca". mybtechdegree.ca.
  21. ^ «Профессиональные инженеры Онтарио»«Квебекские инженеры выиграли судебную тяжбу против Microsoft»
  22. ^ "Lög um löggildingu nokkurra starfsheita sérfræðinga í tækni- og hönnunargreinum" (на исландском). Парламент Исландии - Альтинг. 11 марта 1996 г.. Получено 25 августа, 2014.
  23. ^ "Lög um breytingu á lögum № 8/1996, um löggildingu nokkurra starfsheita sérfræðinga í tækni- og hönnunargreinum, með síðari breytingum". Alþingi. Получено 3 октября, 2016.
  24. ^ «Рекомендации по передовой практике разработки программного обеспечения в Новой Зеландии» (PDF). IPENZ.
  25. ^ Министерство труда и статистики США Система стандартной классификации профессий (SOC) 2000 года: 15-0000 Компьютерные и математические профессии
  26. ^ Министерство труда и статистики США Система стандартной классификации профессий (SOC) 2000 года: 17-0000 Архитектура и инженерные профессии
  27. ^ Совет по профессиональной инженерии Флориды. «Устав Флориды 2019 г.».
  28. ^ ПРОФЕССИОНАЛЬНЫЕ ИНЖЕНЕРЫ И ЗЕМЕЛЬНИКИ. "O.C.G.A. § 43-15-1" (PDF).
  29. ^ а б Технический совет штата Нью-Джерси. "АДМИНИСТРАТИВНЫЙ КОДЕКС НЬЮ-ДЖЕРСИ, ГЛАВА 13 ЗАКОН И ОБЩЕСТВЕННАЯ БЕЗОПАСНОСТЬ, ГЛАВА 4 0" (PDF).
  30. ^ а б SC Engineering Law. «Свод законов - Раздел 40 - Глава 22 - Инженеры и геодезисты».
  31. ^ а б AL Техническое право. «Закон штата Алабама, регулирующий практику инженерных изысканий и землеустройства» (PDF).
  32. ^ а б Техническое право VW. «Уставы и правила инженерного права Западной Вирджинии» (PDF).
  33. ^ а б ОК Техническое право. «Устав, правила и этика штата Оклахома для профессиональных инженеров» (PDF).
  34. ^ а б Н.В. Инженерное право. «NRS: Глава 625 - Профессиональные инженеры и землеустроители». Незаконная инженерная деятельность.
  35. ^ а б Магистр инженерного права. «Часть 901: Правила и положения Лицензионного совета Миссисипи для профессиональных инженеров и геодезистов» (PDF).
  36. ^ а б IL Техническое право. "225 ILCS 325 / Закон о профессиональной инженерной практике 1989 г.".
  37. ^ Совет по профессиональной инженерии Флориды. "Глава 471" (PDF).
  38. ^ ГРУЗИЯ СОВЕТ ПРОФЕССИОНАЛЬНЫХ ИНЖЕНЕРОВ И ЗЕМЕЛЬНИКОВ. "O.C.G.A. § 43-15-1" (PDF).
  39. ^ «Экзамен по разработке нового программного обеспечения, утвержденный для получения лицензии». Компьютерное общество IEEE. 4 мая 2012 г.. Получено 6 августа, 2018.
  40. ^ "NCEES прекращает сдачу экзамена по программной инженерии PE". Национальный совет экспертов по инженерно-геодезическим работам. 13 марта 2018 г.. Получено 6 августа, 2018.