Программная инженерия - Software engineering

Разработка программного обеспечения
Активность ядер
Парадигмы и модели
Методологии и рамки
Вспомогательные дисциплины
Практики
инструменты
Стандарты и свод знаний
Глоссарии
Контуры

Программная инженерия систематическое применение инженерное дело подходы к развитие из программного обеспечения.[1][2][3] Программная инженерия - это вычисление дисциплина.[4]

История

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

Языки программирования начали появляться в начале 1950-х[6] и это был еще один важный шаг в абстракции. Основные языки, такие как Фортран, АЛГОЛ, PL / I, и КОБОЛ были выпущены в конце 1950-х и 1960-х годах для решения научных, алгоритмических и бизнес-задач соответственно. Давид Парнас представил ключевую концепцию модульность и скрытие информации в 1972 г.[7] чтобы помочь программистам справиться со все возрастающей сложностью программные системы.

Происхождение термина «программная инженерия» связано с различными источниками. Термин «разработка программного обеспечения» появился в списке услуг, предлагаемых компаниями в июньском 1965 г. КОМПЬЮТЕРЫ и АВТОМАТИЗАЦИЯ и был использован более формально в августовском выпуске 1966 года «Сообщения ACM» (том 9, номер 8), «письмо членам ACM» президентом ACM Энтони А. Эттингером,[8][9] это также связано с названием конференции НАТО в 1968 году профессором Фридрих Л. Бауэр, первая конференция по программной инженерии.[10] Независимо, Маргарет Гамильтон назвали дисциплину «программная инженерия» во время миссий Apollo, чтобы придать тому, что они делали, легитимность.[11] В то время воспринималось как "программный кризис ".[12][13][14] 40-я Международная конференция по программной инженерии (ICSE 2018) отмечает 50-летие «Программной инженерии» с основными докладами пленарных заседаний: Фредерик Брукс[15] и Маргарет Гамильтон.[16]

В 1984 г. Институт программной инженерии (SEI) был основан как финансируемый из федерального бюджета центр исследований и разработок со штаб-квартирой в кампусе Университета Карнеги-Меллона в Питтсбурге, штат Пенсильвания, США. Уоттс Хамфри основал программу SEI Software Process Program, направленную на понимание и управление процессом разработки программного обеспечения. Введенные уровни зрелости процессов станут интеграцией модели зрелости возможностей для разработки (CMMI-DEV), которая определяет, как правительство США оценивает способности группы разработчиков программного обеспечения.

Современные, общепринятые передовые практики в области разработки программного обеспечения были собраны ISO / IEC JTC 1 / SC 7 подкомитет и опубликован как Свод знаний в области программной инженерии (СВЕБОК).[17]

Определения

Известные определения программной инженерии включают:

  • «систематическое применение научных и технологических знаний, методов и опыта для разработки, внедрения, тестирования и документирования программного обеспечения» - Бюро статистики труда -IEEE Системная и программная инженерия - Словарь[18]
  • "Применение систематического, дисциплинированного, поддающегося количественной оценке подхода к разработке, эксплуатации и обслуживанию программного обеспечения "—IEEE Стандартный глоссарий терминологии программной инженерии[19]
  • «инженерная дисциплина, которая касается всех аспектов производства программного обеспечения» -Ян Соммервилл[20]
  • «установление и использование надежных инженерных принципов для экономичного получения надежного программного обеспечения, которое эффективно работает на реальных машинах» -Фриц Бауэр[21]
  • "раздел информатики, который занимается проектированием, реализацией и обслуживанием сложных компьютерные программы "—Мерриам-Вебстер[22]

Этот термин также использовался менее формально:

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

Поля

Требования к ПО

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

Разработка программного обеспечения

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

Разработка программного обеспечения

Разработка программного обеспечения, основная деятельность разработка программного обеспечения:[1][26] это сочетание программирование (он же кодирование), проверка, тестирование программного обеспечения, и отладка. А Процесс разработки программного обеспечения:[1][26] это определение, реализация, оценка, измерение, управление, изменение и улучшение самого процесса жизненного цикла программного обеспечения. Он активно использует Управление конфигурацией программного обеспечения[1][26] который заключается в систематическом контроле изменений конфигурации и поддержании целостности и отслеживаемости конфигурации и кода на протяжении всего жизненного цикла системы. Использование современных процессов версия программного обеспечения.

Тестирование программного обеспечения

Тестирование программного обеспечения:[1][26] представляет собой эмпирическое техническое исследование, проводимое для предоставления заинтересованным сторонам информации о качестве тестируемого продукта или услуги с использованием различных подходов, таких как модульное тестирование и интеграционное тестирование. Это один из аспектов качество программного обеспечения.

Сопровождение программного обеспечения

Сопровождение программного обеспечения:[1][26] относится к действиям, необходимым для оказания рентабельной поддержки после поставки программного продукта.

Образование

Знание компьютерное программирование является необходимым условием для того, чтобы стать инженером-программистом. В 2004 г. IEEE Computer Society произвел SWEBOK, который был опубликован как Технический отчет ISO / IEC 1979: 2004, в котором описывается совокупность знаний, которые они рекомендуют освоить дипломированному инженеру-программисту с четырехлетним опытом работы.[27]Многие инженеры-программисты начинают свою профессию, получив высшее образование или обучаясь в профессионально-техническом училище. Одна стандартная международная учебная программа для получения степени бакалавра программной инженерии была определена Объединенной целевой группой по компьютерным программам IEEE Computer Society и Ассоциация вычислительной техники и обновлен в 2014 году.[28] В ряде университетов есть программы обучения программной инженерии; с 2010 г., насчитывалось 244 кампуса Бакалавр программной инженерии программ, 70 онлайн-программ, 230 программ уровня магистра, 41 программа уровня доктора и 69 программ уровня сертификата в Соединенных Штатах.

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

Профессия

Юридический Требования к лицензированию или сертификации профессиональных инженеров-программистов различаются по всему миру. В Великобритании нет лицензионных или юридических требований для присвоения или использования должности Software Engineer. В некоторых районах Канады, таких как Альберта, Британская Колумбия, Онтарио,[29] В Квебеке инженеры-программисты могут иметь звание профессионального инженера (P.Eng) и / или звание специалиста по информационным системам (I.S.P.). В Европе инженеры-программисты могут получить Европейский инженер (EUR ING) профессиональное звание.

Соединенные Штаты с 2013 года предложили NCEES Профессиональный инженер экзамен по программной инженерии, что позволит инженерам-программистам получить лицензию и получить признание.[30] NCEES завершит экзамен после апреля 2019 года из-за отсутствия участников.[31] Обязательное лицензирование в настоящее время все еще в значительной степени обсуждается и воспринимается как противоречивый. В некоторых частях США, например в Техасе, использование термина Инженер регулируется законом и предназначена только для использования лицами, имеющими Профессиональный инженер лицензия.

В IEEE Computer Society и ACM, две основные профессиональные организации разработчиков программного обеспечения, базирующиеся в США, издают руководства по профессии программиста. IEEE Руководство к сводам знаний по программной инженерии - версия 2004 г., или SWEBOK, определяет область и описывает знания, которые IEEE ожидает от практикующего инженера-программиста. Самая последняя версия SWEBOK v3 - это обновленная версия, выпущенная в 2014 году.[32] IEEE также публикует «Этический кодекс программной инженерии».[33]

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

В Бюро статистики труда США насчитывает 1 365 500 разработчиков программного обеспечения, работающих в НАС. в 2018 году.[34] По прогнозам, занятость в профессиях, связанных с компьютерами и информационными технологиями, вырастет на 13 процентов с 2016 по 2026 год, что выше среднего показателя по всем профессиям. По прогнозам, эти профессии создадут около 557 100 новых рабочих мест. Спрос на этих сотрудников будет обусловлен повышенным вниманием к облачным вычислениям, сбору и хранению большое количество данных, и информационная безопасность.[35] Тем не менее, BLS также сообщает, что некоторые рабочие места в этих профессиях сокращаются, особенно среди женщин.[36], а число программистов, по прогнозам, сократится на 7 процентов с 2016 по 2026 год и на 9 процентов с 2019 по 2029 год.[37] поскольку компьютерное программирование можно выполнять из любой точки мира, компании иногда нанимают программистов в странах, где заработная плата ниже.[38] Из-за своей относительной новизны в качестве области обучения формальное образование в области программной инженерии часто преподается как часть учебной программы по информатике, и многие инженеры-программисты имеют ученые степени.[39]

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

Большинство инженеров-программистов и программистов работают 40 часов в неделю, но в 2008 году около 15 процентов разработчиков программного обеспечения и 11 процентов программистов работали более 50 часов в неделю.[40]. Потенциальные травмы на этих профессиях возможны, потому что, как и другие рабочие, которые проводят длительные периоды сидя перед компьютерным терминалом, набирающим текст на клавиатуре, инженеры и программисты подвержены утомлению глаз, дискомфорту в спине и проблемам с руками и запястьями, например синдром запястного канала.[41]

Сертификация

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

Более широкая сертификация общих навыков разработки программного обеспечения доступна в различных профессиональных сообществах. По состоянию на 2006 г., то IEEE сертифицировал более 575 специалистов по программному обеспечению как Сертифицированный специалист по разработке программного обеспечения (CSDP).[44] В 2008 году они добавили сертификат начального уровня, известный как Certified Software Development Associate (CSDA).[45] В ACM была программа профессиональной сертификации в начале 1980-х,[нужна цитата ] выпуск которого был прекращен из-за отсутствия интереса. ACM изучал возможность профессиональной сертификации инженеров-программистов в конце 1990-х, но в конце концов решил, что такая сертификация не подходит для профессиональной промышленной практики разработки программного обеспечения.[46]

В Великобритании Британское компьютерное общество разработала юридически признанную профессиональную сертификацию под названием Дипломированный ИТ-специалист (CITP), доступный для полноправных участников (MBCS). Программные инженеры могут иметь право на членство в Институт инженерии и технологий и таким образом претендовать на статус дипломированного инженера. В Канаде Канадское общество обработки информации разработала юридически признанную профессиональную сертификацию под названием Специалист по информационным системам (ISP).[47] В Онтарио, Канада, инженеры-программисты, окончившие Канадский инженерный совет по аккредитации (CEAB) аккредитованная программа, успешно прошедшие PEO (Профессиональные инженеры Онтарио) Экзамен по профессиональной практике (PPE) и наличие не менее 48 месяцев приемлемого инженерного опыта, имеют право на получение лицензии через Профессиональные инженеры Онтарио и может стать профессиональным инженером P.Eng.[48] Однако PEO не признает онлайн или дистанционное образование; и не считает программы по информатике эквивалентными программам разработки программного обеспечения, несмотря на их колоссальное совпадение. Это вызвало споры и войну за сертификацию. Кроме того, количество обладателей P.Eng по профессии было исключительно низким. Подавляющее большинство работающих профессионалов в этой области имеют степень в области CS, а не SE. Учитывая сложный путь сертификации для обладателей степеней, не относящихся к SE, большинство из них никогда не удосужились получить лицензию.

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

Первоначальное влияние аутсорсинга и относительно более низкая стоимость международных человеческих ресурсов в развивающихся странах третьего мира привели к массовому перемещению деятельности по разработке программного обеспечения из корпораций Северной Америки и Европы в Индию, а затем в Китай, Россию и другие развивающиеся страны. У этого подхода были некоторые недостатки, в основном разница в расстоянии и часовом поясе, которая препятствовала человеческому взаимодействию между клиентами и разработчиками и массовому переносу заданий. Это негативно повлияло на многие аспекты профессии программиста. Например, некоторые студенты разработанный мир избегать образования, связанного с разработкой программного обеспечения, из-за боязни оффшорный аутсорсинг (импорт программных продуктов или услуг из других стран) и вытеснение иностранные визовые работники.[49] Хотя статистика в настоящее время не показывает угрозы самой программной инженерии; родственная карьера, компьютерное программирование похоже, пострадали.[50][51] Тем не менее, способность разумно использовать оффшорные и прибрежные ресурсы через Следуй за Солнцем рабочий процесс улучшил общие операционные возможности многих организаций.[52] Когда североамериканцы уходят с работы, азиаты просто приходят на работу. Когда азиаты уходят с работы, на работу приезжают европейцы. Это обеспечивает постоянный контроль со стороны человека за критически важными бизнес-процессами 24 часа в сутки, без выплаты сверхурочной компенсации или нарушения работы ключевого человеческого ресурса - режима сна.

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

Полемика

Критика

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

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

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

Эдсгер Дейкстра, основатель многих концепций, используемых сегодня в разработке программного обеспечения, отвергал идею «программной инженерии» вплоть до своей смерти в 2002 году, утверждая, что эти термины были плохой аналогией того, что он называл «радикальной новизной». Информатика:

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

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

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

Цитаты

  1. ^ а б c d е ж Абран и др. 2004 г., стр. 1–1
  2. ^ ACM (2007). "Компьютерные дипломы и карьера". ACM. Получено 2010-11-23.
  3. ^ Лапланте, Филипп (2007). Что каждый инженер должен знать о разработке программного обеспечения. Бока-Ратон: CRC. ISBN  978-0-8493-7228-5. Получено 2011-01-21.
  4. ^ "Объединенная целевая группа по компьютерным программам 2005" (PDF). 2014-10-21. В архиве (PDF) с оригинала от 21.10.2014. Получено 2020-04-16.
  5. ^ Леондес, Корнелиус Т. (2002). Интеллектуальные системы: технологии и приложения. CRC Press. п. I-6. ISBN  978-0-8493-1121-5. 1.4 Компьютеры и первый взгляд на Эла (1940-е годы)
  6. ^ Кэмпбелл-Келли, Мартин (апрель 1982 г.). «Развитие компьютерного программирования в Великобритании (1945-1955)». IEEE Annals of the History of Computing. 4 (2): 121–139. Дои:10.1109 / MAHC.1982.10016. S2CID  14861159.
  7. ^ Парнас, Давид (Декабрь 1972 г.). «О критериях, которые будут использоваться при разложении систем на модули». Коммуникации ACM. 15 (12): 1053–1058. Дои:10.1145/361598.361623. S2CID  53856438. Получено 2008-12-26.
  8. ^ Эттингер, А. Г. (1966). «Письмо президента к членству в ACM». Commun. ACM. Ассоциация вычислительной техники. 9 (8): 545–546. Дои:10.1145/365758.3291288. ISSN  0001-0782. S2CID  53432801.
  9. ^ «Происхождение» программной инженерии"". Получено 17 ноября 2017.
  10. ^ Рэндалл, Брайан. "Отчеты по разработке программного обеспечения НАТО за 1968/69 год". Получено 17 ноября 2017.
  11. ^ Журнал программного обеспечения. «Что нужно знать об ученом, который изобрел термин» Разработка программного обеспечения"". В архиве с оригинала 24 ноября 2018 г.. Получено 12 февраля, 2019.
  12. ^ Соммервиль 2008, п. 26
  13. ^ Петр, Наур; Рэнделл, Брайан (7–11 октября 1968 г.). Программная инженерия: отчет о конференции, организованной Научным комитетом НАТО (PDF). Гармиш, Германия: Отдел по научным вопросам, НАТО. Получено 2008-12-26.
  14. ^ Рэнделл, Брайан (10 августа 2001 г.). "Отчеты по разработке программного обеспечения НАТО за 1968/69 год". Домашняя страница Университета Брайана Рэнделла. Школа компьютерных наук Университета Ньюкасла. Получено 2008-10-11. Идея первой конференции НАТО по разработке программного обеспечения и, в частности, идея принятия практически неизвестного тогда термина «программная инженерия» в качестве ее (намеренно провокационного) названия, я считаю, исходила от профессора Фриц Бауэр.
  15. ^ Международная конференция по программной инженерии 2018 отмечает свое 40-летие и 50-летие разработки программного обеспечения. «ICSE 2018 - Пленарные заседания - Фред Брукс». Получено 9 августа 2018.
  16. ^ Международная конференция по программной инженерии 2018 отмечает свое 40-летие и 50-летие разработки программного обеспечения. «ICSE 2018 - Пленарные заседания - Маргарет Гамильтон». Получено 9 августа 2018.
  17. ^ «ISO / IEC TR 19759: 2005». Получено 2012-04-01.
  18. ^ Системная и программная инженерия - Словарь, ISO /IEC /IEEE std 24765: 2010 (E), 2010.
  19. ^ Стандартный глоссарий терминологии программной инженерии IEEE, IEEE std 610.12-1990, 1990.
  20. ^ Соммервилл, Ян (2007) [1982]. «1.1.2 Что такое программная инженерия?». Программная инженерия (8-е изд.). Харлоу, Англия: образование Пирсона. п. 7. ISBN  978-0-321-31379-9. Программная инженерия - это инженерная дисциплина, которая связана со всеми аспектами производства программного обеспечения от ранних стадий спецификации системы до поддержки системы после того, как она будет введена в эксплуатацию. В этом определении есть две ключевые фразы:
    1. Инженерная дисциплина Инженеры заставляют все работать. Они применяют теории, методы и инструменты там, где это уместно [. . .] Инженеры также осознают, что они должны работать с организационными и финансовыми ограничениями. [. . .]
    2. Все аспекты производства программного обеспечения Программная инженерия связана не только с техническими процессами разработки программного обеспечения, но и с такими видами деятельности, как управление проектами программного обеспечения, а также с разработкой инструментов, методов и теорий для поддержки производства программного обеспечения.
  21. ^ «Программная инженерия». Обработка информации. 71: 530–538.
  22. ^ «Определение ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ». www.merriam-webster.com. Получено 2019-11-25.
  23. ^ Акрам И. Салах (2002-04-05). "Разработка академической программы в области программной инженерии" (PDF). 35-й ежегодный симпозиум по обучению и вычислительной технике на Среднем Западе. Получено 2006-09-13.: «Для некоторых программная инженерия - это просто прославленное имя программирования. Если вы программист, вы можете написать« инженер-программист »на своей визитной карточке - но никогда не« программист ».
  24. ^ Миллс, Харлан Д., Дж. Р. Ньюман и К. Б. Энгл-младший, «Учебная программа по программной инженерии», в Деймель, Лайонел Э. (1990). Образование в области разработки программного обеспечения: Конференция SEI 1990 г., Питтсбург, Пенсильвания, США, 2–3 апреля ... Springer. ISBN  978-0-387-97274-9.,п. 26: «С практической точки зрения мы рассматриваем программную инженерию как необходимую подготовку для практикующих, специалистов по разработке и обслуживанию программного обеспечения. Ученый-компьютерщик готовится к дальнейшим теоретическим исследованиям ...»
  25. ^ Дэвид Будген; Перл Бреретон; Барбара Китченхэм; Стивен Линкман (2004-12-14). «Реализация программной инженерии на основе доказательств». Архивировано из оригинал на 2006-12-17. Получено 2006-10-18.: «Мы считаем, что программная инженерия может развиваться как инженерная дисциплина, только отказавшись от нынешней зависимости от пропаганды и анализа ...»
  26. ^ а б c d е «Свод знаний по программной инженерии (SWEBOK, версия 3), 2014 г.» (pdf). www.swebok.org. IEEE Computer Society. Получено 24 мая 2016.
  27. ^ Абран, Алена, изд. (2005) [2004]. «Глава 1: Введение в руководство». Руководство к своду знаний по программной инженерии. Лос-Аламитос: Компьютерное общество IEEE. ISBN  978-0-7695-2330-9. Получено 2010-09-13. Предполагается, что общий объем цитируемой литературы пригоден для овладения ею после завершения высшего образования плюс четырехлетний опыт работы.
  28. ^ «Учебная программа по разработке программного обеспечения SE2014» (PDF).
  29. ^ Уильямс, Н. (19–21 февраля 2001 г.). «Подход профессиональных инженеров Онтарио к лицензированию практикующих специалистов по программной инженерии». Образование и обучение программной инженерии, Материалы 2001 г. 14-я конференция по. Шарлотта, Северная Каролина: IEEE. С. 77–78.
  30. ^ «Спецификации экзамена по разработке программного обеспечения NCEES» (PDF). Архивировано из оригинал (PDF) на 2013-08-27. Получено 2012-04-01.
  31. ^ "NCEES прекращает сдачу экзамена по программной инженерии PE". Национальный совет экспертов по инженерно-геодезическим работам. 13 марта 2018 г.. Получено 6 августа 2018.
  32. ^ "Руководство SWEBOK, версия 3". Получено 2015-03-09.
  33. ^ "Кодекс этики программной инженерии" (PDF). Получено 2012-03-25.
  34. ^ «Разработчики программного обеспечения». Справочник профессионального обзора. Бюро статистики труда США. 4 сентября 2019 г.. Получено 11 декабря 2019.
  35. ^ https://www.bls.gov/ooh/computer-and-information-technology/home.htm
  36. ^ https://developers.hp.com/public/blog/hp-international-womens-week-women-computer-science-dropping-1980-е годы
  37. ^ https://www.bls.gov/ooh/computer-and-information-technology/computer-programmers.htm
  38. ^ https://www.bls.gov/ooh/computer-and-information-technology/computer-programmers.htm
  39. ^ «Вычислительные дисциплины и специальности» (PDF). ACM. Получено 6 сентября 2019.
  40. ^ https://www.bloomberg.com/opinion/articles/2020-08-04/big-tech-wants-you-to-believe-america-has-a-skills-gap
  41. ^ "Инженеры-программисты и программисты". Получено 2009-12-17.
  42. ^ "Страница сертификации SEI". Sei.cmu.edu. Получено 2012-03-25.
  43. ^ Wyrostek, Уоррен (14 марта 2008 г.). «10 главных проблем ИТ-сертификации в 2008 году». InformIT. Получено 2009-03-03.
  44. ^ Компьютерное общество IEEE. «Отчет компьютерного общества IEEE за 2006 год Генеральной ассамблее IFIP» (PDF). Получено 2007-04-10.
  45. ^ IEEE. «CSDA». Получено 2010-04-20.
  46. ^ ACM (17 июля 2000 г.). «Краткое изложение позиции ACM по разработке программного обеспечения как лицензированной инженерной профессии» (PDF). Ассоциация вычислительной техники (ACM). Архивировано из оригинал (PDF) 17 мая 2008 г.. Получено 2009-03-03. На своем заседании в мае 2000 года Совет также пришел к выводу, что структура лицензированного профессионального инженера, первоначально разработанная для инженеров-строителей, не соответствует профессиональной промышленной практике разработки программного обеспечения. Такая практика лицензирования дала бы ложные гарантии компетентности, даже если бы совокупность знаний была зрелой; и помешало бы многим из наиболее квалифицированных инженеров-программистов получить лицензии.
  47. ^ Канадское общество обработки информации. "Обозначение I.S.P.". Получено 2007-03-15.
  48. ^ «Профессиональные инженеры Онтарио: Добро пожаловать на сайт PEO». Peo.on.ca. Получено 2012-03-25.
  49. ^ Тибо, Патрик (05.05.2006). «По мере того как аутсорсинг набирает обороты, интерес к информатике ослабевает». Computerworld.com. Получено 2016-12-06.
  50. ^ «Программисты». Bls.gov. Получено 2012-03-25.
  51. ^ Маллинз, Роберт (13 марта 2007 г.). «Рост разработчиков программного обеспечения в Северной Америке замедляется». InfoWorld. Архивировано из оригинал на 2009-04-04. Получено 2012-03-25.
  52. ^ «Магический квадрант Gartner» (PDF). Cognizant.com. Получено 2012-03-25.
  53. ^ Кейси, Валентин (2010-08-20). «Виртуальная команда разработчиков программного обеспечения». Журнал Бразильского компьютерного общества. 16 (2): 83–96. Дои:10.1007 / s13173-010-0013-3. S2CID  14383734.
  54. ^ Дейкстра, Э. В. (1988). «О жестокости преподавания информатики». Получено 2014-01-10.

Источники

  • Абран, Ален; Мур, Джеймс У .; Бурк, Пьер; Дюпюи, Роберт; Трипп, Леонард Л. (2004). Руководство к своду знаний по программной инженерии. IEEE. ISBN  978-0-7695-2330-9.
  • Соммервилль, Ян (2008). Программная инженерия (7-е изд.). Pearson Education. ISBN  978-81-7758-530-8. Получено 10 января 2013.

дальнейшее чтение

внешние ссылки