Програ́ммная инжене́рия (англ. software engineering) — приложение систематического, дисциплинированного, измеримого подхода к разработке, функционированию и сопровождению программного обеспечения, а также исследованию этих подходов; то есть, приложение дисциплины инженерии к программному обеспечению (ISO/IEC/IEEE 24765:2017)[1].
Инженерия | |
Программная инженерия | |
---|---|
Software Engineering | |
Тема | Программирование |
Период зарождения | 1968 год |
Центры исследований | В США и Европе |
Медиафайлы на Викискладе |
Термин и история
Термин появился в 1968 году на Конференции НАТО по программной инженерии и предназначался для стимулирования поиска решений происходившего в то время «кризиса программного обеспечения». Так возникла профессия инженера-программиста (англ. software engineer) и область исследований, посвящённая комплексному созданию программного обеспечения (более качественного, доступного, лучше поддерживаемого и быстрее разрабатываемого).[источник не указан 486 дней]
В начале 1940-х годов были созданы первые компьютеры, где наборы исполняемых команд уже были встроены в машину. Для удобства «архитектура хранимых программ» (архитектура фон Неймана) была выделена. Так разделилось «аппаратное» и «программное обеспечение», для решения проблем оптимизации вычислений.[источник не указан 486 дней]
Главными историческими этапами были[источник не указан 486 дней]:
- 1950-е — первые языки программирования (Фортран, Алгол и Кобол).
- 1968 — Э. Дейкстра написал основополагающую статью «Go To Statement Considered Harmful».
- 1967 — создание понятия объектно-ориентированной парадигмы программирования — язык Симула (позже — Smalltalk, Objective-C и C++).
- 1969 — создание системного программного обеспечения для управления аппаратным, названное «операционная система», было представлено компанией Unix.
- 1972 — Д. Парнас ввёл ключевое понятие модульности и скрытия информации, чтобы помочь программистам справляться со всё более сложными программными системами.
- 1970-е — первые микрокомпьютеры позволили писать свои программы для персональных компьютеров (ПК) и Microsoft Windows.
- 1980-е — появление понятий жизненный цикл программного обеспечения в качестве некоторого консенсуса для централизованной разработки программного обеспечения.
Открытое программное обеспечение, появившееся в начале 1990-х, породило децентрализованный стиль разработки программ.[источник не указан 486 дней]
Профессия
Правовые требования к лицензированию и сертификации профессиональных программных инженеров отличаются во всём мире. В Великобритании, Британское общество вычислительной техники (англ. British Computer Society) выдаёт лицензии инженерам программного обеспечения и члены общества могут также стать «сертифицированными инженерами» (C.Eng), а в некоторых районах Канады, например, Альберта, Онтарио и Квебек, инженеры по программному обеспечению могут также быть «профессиональными инженерами» (P. Eng) или, далее, «магистрами информационных систем» (ISP), однако, нет никаких правовых требований для данных специализаций.[источник не указан 486 дней]
В 2004 году американское Бюро статистики труда, насчитало 760 840 инженеров по программному обеспечению, работающих в США[источник не указан 486 дней]. В тот же период времени было около 1,4 млн практиков, занятых в США в других смешанных инженерных специальностях.[источник не указан 486 дней]
Многие инженеры по программному обеспечению работают в качестве штатных сотрудников или подрядчиков. Они работают на предприятиях, в государственных учреждениях (гражданских или военных), а также в некоммерческих организациях. Некоторые инженеры работают фрилансерами. Некоторые организации имеют специалистов для выполнения каждой из задач в процессе разработки программного обеспечения. Другим же требуется программный инженер, который выполняет сразу многие задачи или все из них. В больших проектах люди могут специализироваться только в одной роли. В небольших люди могут занять несколько или все роли одновременно.[источник не указан 486 дней]
Специализации включают в себя: в промышленности: аналитики, архитекторы ПО, разработчики, тестировщики, техническая поддержка, промежуточный аналитик, менеджер; в академических кругах: преподаватели, исследователи.[источник не указан 486 дней]
Большинство программных инженеров и программистов работает 40 часов в неделю, а около 15 процентов программных инженеров и 11 процентов программистов работали более 50 часов в неделю в 2008 году. Травмы в этих профессиях встречаются редко. Однако, как и в других профессиях, где надо проводить много времени перед компьютером, люди этих специальностей более подвержены к усталости глаз, болям в спине, а также болезням рук и запястий, таких как синдром запястного канала.[источник не указан 486 дней]
Сертификация
Институт программной инженерии предлагает сертификацию по конкретным специальностям, таким как: безопасность, оптимизация процессов, а также архитектура программного обеспечения. Apple, IBM, Microsoft и другие компании финансируют[уточнить] собственные экзамены для сертификации. Многие IT-программы сертификации ориентированы на конкретные технологии, и управляются поставщиками этих технологий. Эти программы сертификации разработаны с учётом места, на которое будут наниматься люди, использующие эти технологии.[источник не указан 486 дней]
Расширение сертификации «Общие навыки разработки программного обеспечения» доступны через различные профессиональные сообщества. В 2006 году IEEE сертифицировала более 575 специалистов в области программного обеспечения, как «Certified Software Development Professional»(CSDP). В 2008 году они добавили сертификат начального уровня известный как «Certified Software Development Associate» (CSDA). У ACM была профессиональная программа сертификации в начале 1980-х, которая была прекращена из-за отсутствия интереса. В ACM также рассматривали возможность сертификации профессиональных программных инженеров в конце 1990-х годов, но в итоге решили, что такая сертификация не подходит для профессиональной производственной практики разработки программного обеспечения.[источник не указан 486 дней]
Британское общество вычислительной техники разработало юридически признанную профессиональную сертификацию, называемую «Chartered IT Professional» (CITP), и доступную только для полных членов (MBCS). Программные инженеры имеют право на членство в Институте инженерии и технологии (англ. Institution of Engineering and Technology) и могут соответственно получить статус дипломированного инженера. В Канаде, организация Canadian Information Processing Society[англ.] также разработала юридически признанную профессиональную сертификацию, названную «Information Systems Professional» (ISP). В Онтарио, Канада, Программные инженеры, которые заканчивают канадский Engineering Accreditation Board (CEAB), успешно сдавшие Professional Practice Examination (PPE) и, имеющие по крайней мере 48 месяцев опыта работы программным инженером, имеют право получить лицензию через PEO(«Профессиональные инженеры Онтарио») и могут стать Профессиональными инженерами (P.Eng).[источник не указан 486 дней]
Образование
Знания в области программирования являются необходимым условием для того, чтобы стать программным инженером. В 2004 году IEEE Computer Society выпустил SWEBOK, который был опубликован в качестве стандарта ISO / IEC 19759:2004, описывающего объём знаний, который по их мнению, должен получить дипломированный программный инженер с четырёхлетним опытом. Многие люди входят в эту профессию, получив высшее образование или отучившись в профессионально-техническом училище. Стандартный учебный план для международной степени бакалавра программной инженерии был определён CCSE[англ.], и обновлён в 2004 году. Ряд университетов имеют программы обучения программных инженеров. С 2010 года насчитывалось 244 очных программы, 70 интернет-курсов, 230 программ для специалистов, 41 программа для учёных в этой области, а также 69 программ для сертификатов в Соединённых Штатах. [источник не указан 486 дней]
В российских вузах есть отдельное направление подготовки 09.03.04 «Программная инженерия».[источник не указан 486 дней]
Примечания
Литература
Ссылки
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.