Инженерное программирование это

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

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

Языки программирования начали появляться в начале 1950-х годов [5], и это также был еще один важный шаг в абстракции. Основные языки . Такие как Fortran, ALGOL, PL/Iи COBOL, были выпущены в конце 1950-х и 1960-х годов для решения научных. Алгоритмических и бизнес-задач соответственно.

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

В 1960-е годы программная инженерия рассматривалась как самостоятельный вид инженернойдеятельности . Также в то время развитие программной инженерии было борьбой. Трудно было угнаться за аппаратурой. Это вызвало много проблем для инженеров-программистов. Проблемы программного обеспечения. Которые за бюджетные и последние сроки, обширную

отладку, требуется большой ремонт. Безуспешно удовлетворять потребности потребителей. Либо не были завершены. 1968 год. Когда НАТО состоялась первая конференция по программной инженерии. На которой были рассмотрены вопросы программного обеспечения. Разработаны руководящие принципы и лучшие практики разработки программного обеспечения. [7]

Происхождение термина Термин вычислительной техники и автоматизации, и был использован более формально в августе 1966 года выпуск коммуникаций ACM (Том 9, номер 8) “письмо членства АСМ” АКМ президента Энтони А. Эттингер,[8][9] это также связано с названием конференции НАТО в 1968 году профессор

Фридрих л. Бауэр, первая конференция по программной инженерии.[10] Независимо, Маргарет Гамильтон назвали дисциплину [11] В то время считалось. Что существует кризис программногообеспечения[12][13][14] 40-я Международная конференция по программной инженерии (ICSE 2018) отмечает 50-летие Фредерика Брукса[15] и Маргарет Гамильтон[16]

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

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

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

вычислительных дисциплин.[18]

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

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

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

    компьютерным программированием и системным анализом;]

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

Таким образом. Программная инженерия-это процесс изучения и определения потребностей пользователей. Разработки и проектирования ИТ. Создания и формирования. А также тестирования программного обеспечения конечного пользователя. Чтобы увидеть. Удовлетворяет ли оно их потребности с помощью языков программирования.

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

Кроме того, существует внутренняя разработка программного обеспечения. Где есть инженеры. Которые делают части приложений и систем. Используемых клиентами и администраторами. [28]

Требования к программному

Разработка требований — это выявление, анализ. Спецификация и валидация требований к программномуобеспечению . Требования к программному обеспечению могут быть трех различных типов. Существуют функциональные требования, нефункциональные требования, и требования к домену. Функциональные требования-это требования. Которые конечный пользователь удовлетворяет требованиям. Предъявляемым программным обеспечением.

Работа программного обеспечения должна быть выполнена. И пользователь должен ожидать соответствующего результата. Нефункциональные требования касаются таких вопросов. Как переносимость. Безопасность. Ремонтопригодность. Надежность. Масштабируемость. Производительность. Повторное использование и гибкость. Они подразделяются на следующие типы: ограничения помех. Ограничения производительности (такие как время отклика. Безопасность. Место хранения и т. Д.), эксплуатационные ограничения. Ограничения жизненного цикла (ремонтопригодность. Переносимость и т. Д.) и экономические ограничения.

Знание того. Как работает система или программное обеспечение works необходимо. Когда речь заходит об определении нефункциональных требований. Требования к предметной области связаны с характеристикой определенной категории или области проектов.[29]

Дизайн

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

Это происходит на высоком уровне абстракции вместе с внутренней работой системы. Архитектурный дизайн имеет отношение к основным компонентам системы и их обязанностям, свойствам. Интерфейсам. А также их отношениям и взаимодействиям. Которые происходят между ними. Детальное проектирование-это внутренние элементы всех основных компонентов системы. Их свойства. Взаимосвязи. Обработка и. Как правило, их алгоритмы и структуры данных. [30]

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

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

Современные процессы используют управление версиями программногообеспечения .

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

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

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

Техническое обслуживание программного обеспечения

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

Обычно техническое обслуживание занимает от 40% до 80% стоимости проекта. Поэтому сосредоточение внимания на техническом обслуживании снижает затраты[32].]

Знание компьютерного программирования является необходимым условием для того. Чтобы стать инженером-программистом. В 2004 году Компьютерное общество IEEE выпустило SWEBOK, который был опубликован как Технический отчет ISO/IEC 1979:2005, описывающий совокупность знаний. Которые они рекомендуют освоить выпускнику-инженеру-программисту с четырехлетним опытом работы.

[33] Многие инженеры-программисты вступают в профессию. Получив высшее образование или обучение в профессиональном училище. Одна стандартная международная учебная программа для бакалавров программной инженерии была определена Совместной целевой группой по компьютерным учебным планам IEEE Computer Society и Ассоциации вычислительной техникии обновлена в 2014 году.[34] Ряд университетов имеют программы получения степени бакалавра программной инженерии; по состоянию на 2010насчитывалось 244 кампуса бакалавра программной инженерии программы, 70 онлайн-программ, 230 магистерских программ, 41 докторская программа и 69 сертификационных программ в Соединенных Штатах.

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

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

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

Соединенные Штаты с 2013 года предлагают экзамен NCEES Professional Engineer exam for Software Engineering. Тем самым позволяя инженерам-программистам получить лицензию и признание.

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

IEEE Computer Society и ACM, две основные американские профессиональные организации программной инженерии. Публикуют руководства по профессии программной инженерии. Руководство IEEE по программной инженерии Body of Knowledge – 2004 версии, или SWEBOK, определяет область и описывает знания. Которые IEEE ожидает от практикующего инженера-программиста. Самая последняя версия SWEBOK v3 является обновленной и была выпущена в 2014году. IEEE также обнародует [39].]

Занятость

Бюро статистики труда США насчитало 1 365 500 разработчиков программного обеспечения. Имеющих рабочие места в США в 2018 году.[40] Занятость в сфере компьютерных и информационных технологий. По прогнозам. Вырастет на 13 процентов с 2016 по 2026 год, быстрее. Чем в среднем по всем профессиям. Эти профессии. По прогнозам. Добавят около 557 100 новых рабочих мест. Спрос на этих работников будет обусловлен повышением внимания к облачным вычислениям. Сбору и хранению больших данныхи информационной безопасности.[41] Тем не менее. BLS также говорит. Что некоторая занятость в этих профессиях замедляется. Особенно для женщин[42].] а число программистов. По прогнозам. Сократится на 7% с 2016 по 2026 год и на 9% с 2019 по 2029 год [43], поскольку компьютерное программирование можно выполнять из любой точки мира. Поэтому компании иногда нанимают программистов в странах. Где заработная плата ниже.[44]

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

Большинство программных инженеров и программистов работает 40 часов в неделю. А около 15 процентов программных инженеров и 11 процентов программистов работали более 50 часов в неделю в 2008 году.[45] потенциальные травмы в этих профессиях становятся возможными потому, что. Как и другие работники. Которые проводят длительное время сидя перед компьютерным терминалом. Набрав на клавиатуре. Инженеров и программистов. Восприимчивых к быстрой утомляемости глаз. Болями в спине. А руки и запястья проблем. Таких как кистевой туннельный синдром.[46]

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

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

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

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

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

Первоначальное влияние аутсорсинга и относительно более низкая стоимость международных людских ресурсов в развивающихся странах третьего мира привели к массовой миграции деятельности по разработке программного обеспечения из корпораций Северной Америки и Европы в Индию. А затем в Китай. Россию и другие развивающиеся страны. У этого подхода были некоторые недостатки. Главным образом разница в расстоянии / часовом поясе. Которая препятствовала человеческому взаимодействию между клиентами и разработчиками и массовому переводу рабочих мест. Это оказало негативное влияние на многие аспекты профессии программиста. Например, некоторые студенты в развитые страны мира избегать образования. Связанные с разработкой программного обеспечения либо из-за страха оффшорного аутсорсинга (по импорту программной продукции или услуг с другими странами) и которые могут быть перемещены по внешней визовых работников.[54] , хотя статистические данные не показывают. Что в настоящее время угроза программная инженерия сама по себе; связанные с карьерой, компьютерное программирование , по-видимому. Были затронуты.[55][56] Тем не менее способность разумно использовать оффшорные и прибрежные ресурсы с помощью рабочего процесса follow-the-sun улучшила общий операционный потенциал многих организаций.[57] Когда североамериканцы уходят с работы. Азиаты просто приезжают на работу. Когда азиаты уходят с работы. Европейцы приезжают на работу. Это обеспечивает непрерывную возможность иметь человеческий контроль над критически важными бизнес-процессами 24 часа в сутки. Не выплачивая компенсацию за сверхурочную работу и не нарушая ключевой человеческий ресурс-режим сна.

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

Критика

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

Программная инженерия расширяет инженерную деятельность и опирается на инженерную модель. Т. е. инженерный процесс. Управление инженерным проектом. Инженерные требования. Инженерное проектирование. Инженерное строительство и инженерную валидацию. Эта концепция настолько нова. Что ее редко понимают. И она широко неправильно интерпретируется. В том числе в учебниках по программной инженерии. Статьях и среди сообществ программистов и ремесленников.

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

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

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

Цитаты

  1. ^ b c d e f
  2. ^ ACM (2007). . АКМ. Проверено 2010-11-23.
  3. ^ Лаплант, Филипп (2007). Что Каждый Инженер Должен Знать о Программной Инженерии. Бока-Ратон: КПР. ISBN 978-0-8493-7228-5. Проверено 2011-01-21.
  4. ^ Леондес, Корнелиус Т. (2002). Интеллектуальные системы: Технологии и приложения. CRC Press. p. I-6. ISBN 978-0-8493-1121-5. 1.4 Компьютеры и первый взгляд на Al (1940-е годы)
  5. ^ Кэмпбелл-Келли. Мартин (апрель 1982). / / IEEE Annals of the History of Computing . 4 (2): 121-139. doi:10.1109/MAHC.1982.10016. S2CID 14861159.
  6. ^ Парнас, Дэвид (декабрь 1972). . Коммуникации АСМ. 15 (12): 1053–1058. doi:10.1145/361598.361623. S2CID 53856438. Извлечено 2008-12-26.
  7. ^ . www.hackreactor.com. Получено 2021-05-06.
  8. ^ Эттингер, А. Г. (1966). . Commun. АКМ. Ассоциация вычислительной техники. 9 (8): 545–546. doi:10.1145/365758.3291288. ISSN 0001-0782. S2CID 53432801.
  9. ^ . Извлечено 17 ноября 2017года .
  10. ^ Рэндалл, Брайан. . Извлечено 17 ноября 2017года .
  11. ^ Журнал программногообеспечения . . Архивирован с оригинала 24 ноября 2018года . Проверено 12 февраля 2019года .
  12. ^ Sommerville 2008, p. 26
  13. ^ Питер, Наур; Рэнделл, Брайан (7-11 октября 1968). Разработка программного обеспечения: Доклад конференции. Спонсируемой Научным комитетом НАТО (PDF). Гармиш, Германия: Отдел по научным вопросам НАТО. Извлечено 2008-12-26.
  14. ^ Рэнделл, Брайан (10 августа 2001). . Домашняя страница Университета Брайана Рэнделла. Школа компьютерных наук Ньюкаслского университета. Проверено 2008-10-11. Идея первой конференции НАТО по программной инженерии и. В частности. Принятие тогда практически неизвестного термина Фрица Бауэра.
  15. ^ 2018 Международная конференция по программной инженерии отмечает свое 40-летие и 50 — летие программной инженерии. . Проверено 9 августа 2018года .
  16. ^ 2018 Международная конференция по программной инженерии отмечает свое 40-летие и 50 — летие программной инженерии. . Проверено 9 августа 2018года .
  17. ^ . Проверено 2012-04-01.
  18. ^ (PDF). 2014-10-21. Архивировано (PDF) с оригинала на 2014-10-21. Получено 2020-04-16.
  19. ^ Системы и программная инженерия – Словарь, ISO/IEC/IEEE std 24765:2010(E), 2010.
  20. ^ IEEE Standard Glossary of Software Engineering Terminology, IEEE std 610.12-1990, 1990.
  21. ^ Sommerville. Ian (2007) [1982]. . Программная инженерия (8-е изд.). Harlow, England: Pearson Education. p. 7. ISBN 978-0-321-31379-9. Программная инженерия-это инженерная дисциплина. Которая занимается всеми аспектами производства программного обеспечения. Начиная с ранних стадий спецификации системы и заканчивая поддержанием системы после ее ввода в эксплуатацию. В этом определении есть две ключевые фразы:
    1. Инженерная дисциплина Инженеры заставляют вещи работать. Они применяют теории. Методы и инструменты там. Где они необходимы [. . .] Инженеры признают. Что они должны работать с организационными и финансовыми трудностями. [. . .]
    2. Все аспекты производства программного обеспечения технологии разработки программного обеспечения занимается не только технических процессов разработки программного обеспечения. Но и такие виды деятельности. Как программное обеспечение по управлению проектами и разработке средств. Методов и теорий для поддержки программы производства.
  22. ^ Обработка информации. 71: 530–538.
  23. ^ . www.merriam-webster.com. Извлечено 2019-11-25.
  24. ^ Уинтерс, Титус; Маншрек, Том; Райт, Хайрам (2020). Разработка программного обеспечения в Google. O’Reilly Media. Inc. стр. 6-7. ISBN 978-1-492-08279-8. Мы предполагаем. Что “разработка программного обеспечения” охватывает не только процесс написания кода. Но и все инструменты и процессы. Которые организация использует для создания и поддержки этого кода в течение долгого времени. Какую практику может внедрить программная организация. Которая лучше всего сохранит ценность своего кода в долгосрочной перспективе? Как инженеры могут сделать кодовую базу более устойчивой. А саму дисциплину разработки программного обеспечения-более строгой? У нас нет фундаментальных ответов на эти вопросы. Но мы надеемся. Что коллективный опыт Google за последние два десятилетия прольет свет на возможные пути поиска этих ответов.
    Одна из ключевых идей. Которую мы разделяем в этой книге. Заключается в том. Что программную инженерию можно рассматривать как “программирование. Интегрированное во времени.” Какие практики мы можем внедрить в наш код. Чтобы сделать его устойчивым —способным реагировать на необходимые изменения—на протяжении всего его жизненного цикла. От концепции до внедрения. Обслуживания и устаревания?
    В книге подчеркиваются три фундаментальных принципа, которые. По нашему мнению. Организации программного обеспечения должны иметь в виду при проектировании. Архитектуре и написании своего кода:
    Время и изменения Как код должен будет адаптироваться на протяжении всей своей жизни
    Масштаба и роста Как организация должна будет адаптироваться по мере развития
    компромиссов и затрат Как организация принимает решения. Основываясь на уроках Времени и Изменений. Масштаба и Роста
  25. ^ Акрам И. Салах (2002-04-05). (PDF). 35-й ежегодный симпозиум Среднего Запада по обучению и вычислительнойтехнике . Проверено 2006-09-13.: Если вы программист. Вы можете написать
  26. ^ Mills, Harlan D.. J. R. Newman. And C. B. Engle. Jr., Деймел. Лайонел Э. (1990). Образование в области программной инженерии: Конференция SEI 1990, Питсбург, Пенсильвания, США, 2-3 апреля … Спрингер. ISBN 978-0-387-97274-9.,стр. 26: Компьютерщик готовится к дальнейшим теоретическим исследованиям…
  27. ^ Дэвид Бадген; Перл Бреретон; Барбара Китченхэм; Стивен Линкман (2004-12-14). . Архивировано с оригинала 2006-12-17 годов. Проверено 2006-10-18гг.:
  28. ^ — Что такое Программная инженерия? — Определение из Технопедии. Techopedia.com. Получено 2021-05-06.
  29. ^ . GeeksforGeeks. 2018-06-19. 2021-05-06 .
  30. ^ . GeeksforGeeks. 2019-05-24. 2021-05-06 .
  31. ^ b c d e (pdf). www.swebok.org. Компьютерное общество IEEE. Извлечено 24 мая 2016года .
  32. ^ Определение технического обслуживания программного обеспечения. Значение технического обслуживания программного обеспечения. Экономические времена. 2021-05-06 .
  33. ^ Abran, Alain. Ed. (2005) [2004]. . Руководство по программной инженерии Совокупность знаний. Лос-Аламитос: Компьютерное общество IEEE. ISBN 978-0-7695-2330-9. Извлечено 2010-09-13. Общий объем цитируемой литературы рассчитан на то. Чтобы быть пригодным для овладения ею через окончание бакалавриата плюс четырехлетний опыт работы.
  34. ^ (PDF).
  35. ^ Уильямс, Нью-Йорк (19-21 февраля 2001 года). Программное инженерное образование и подготовка кадров, 2001. 14-я конференция по. Charlotte, NC: IEEE. pp. 77-78.
  36. ^ (PDF). Архивировано из оригинала (PDF) в 2013-08-27годах . Проверено 2012-04-01.
  37. ^ . Национальный совет экспертов по инженерным и геодезическим работам. 13 марта 2018года . Получено 6 августа 2018года .
  38. ^ . Проверено 2015-03-09.
  39. ^ Этический кодекс программной инженерии (PDF). 2012-03-25 .
  40. ^ . Бюро статистики труда США. 4 сентября 2019года . Извлечено 11 декабря 2019года .
  41. ^ https://www.bls.gov/ooh/computer-and-information-technology/home.htm
  42. ^ https://developers.hp.com/public/blog/hp-international-womens-week-women-computer-science-dropping-1980s
  43. ^ b https://www.bls.gov/ooh/computer-and-information-technology/computer-programmers.htm
  44. ^ (PDF). АКМ. Извлечено 6 сентября 2019года .
  45. ^ https://www.bloomberg.com/opinion/articles/2020-08-04/big-tech-wants-you-to-believe-america-has-a-skills-gap
  46. ^ . Извлечено 2009-12-17.
  47. ^ . Sei.cmu.edu… 2012-03-25 .
  48. ^ Wyrostek, Warren (14 марта 2008). . Информит. 2009-03-03.
  49. ^ Компьютерное общество IEEE. (PDF). Проверено 2007-04-10.
  50. ^ IEEE. . Проверено 2010-04-20.
  51. ^ ACM (17 июля 2000). (PDF). Ассоциация вычислительных машин (АСМ). Архивирован из оригинала (PDF) 17 мая 2008года . Проверено 2009-03-03. На своем заседании в мае 2000 года Совет далее пришел к выводу. Что структура лицензированного профессионального инженера. Первоначально разработанная для гражданских инженеров. Не соответствует профессиональной производственной практике разработки программного обеспечения. Такая практика лицензирования дала бы ложные гарантии компетентности. Даже если бы объем знаний был зрелым; и исключила бы возможность получения лицензии многими из наиболее квалифицированных инженеров-программистов.
  52. ^ Канадское общество обработки информации. . Проверено 2007-03-15.
  53. ^ . Peo.on.ca. Проверено 2012-03-25.
  54. ^ Тибодо, Патрик (2006-05-05). . Computerworld.com. Проверено 2016-12-06.
  55. ^ . Bls.gov… Проверено 2012-03-25.
  56. ^ Маллинс, Роберт (2007-03-13). . Инфовор. Архивирован с оригинала на 2009-04-04. 2012-03-25 .
  57. ^ (PDF). Cognizant.com. Проверено 2012-03-25.
  58. ^ Кейси, Валентайн (2010-08-20). . Журнал Бразильского компьютерного общества. 16 (2): 83-96. doi:10.1007/s13173-010-0013-3. S2CID 14383734.
  59. ^ Dijkstra, E. W. (1988). . Проверено 2014-01-10.

Источники

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

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

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