Профессионализм программной инженерии - это движение за превращение программной инженерии в профессию с такими аспектами, как программы получения степени и сертификации, профессиональные ассоциации , профессиональная этика и государственное лицензирование. Эта область является лицензированной дисциплиной в Техасе в Соединенных Штатах [1] ( Техасский совет профессиональных инженеров , с 2013 г.), в Австралии [2] (аккредитация курса с 2001 г., а не в лицензировании) и во многих провинциях Канады.
История
В 1993 году IEEE и ACM начали совместную работу под названием JCESEP , которая в 1998 году превратилась в SWECC, чтобы исследовать превращение программной инженерии в профессию. ACM вышла из SWECC в мае 1999 года, возражая против поддержки усилий Техаса по профессионализации и выдаче государственных лицензий разработчикам программного обеспечения . ACM определила, что уровень знаний и практики в области разработки программного обеспечения был слишком незрелым, чтобы гарантировать лицензирование, и что лицензирование дало бы ложные гарантии компетентности, даже если бы совокупность знаний была зрелой. [3] IEEE продолжал поддерживать превращение программной инженерии в отрасль традиционной инженерии.
В Канаде Канадское общество обработки информации установило процесс сертификации специалистов по информационным системам . Кроме того, к концу 1990-х (1999 г. в Британской Колумбии) была официально создана дисциплина программная инженерия как профессиональная инженерная дисциплина. Это вызвало разногласия между провинциальными инженерными ассоциациями и компаниями, которые называют своих разработчиков инженерами-программистами, даже несмотря на то, что эти разработчики не имели лицензий ни одной инженерной ассоциацией. [4]
В 1999 году Группа инженеров программного обеспечения была сформирована в рамках соглашения между Engineering Canada и Мемориальным университетом Ньюфаундленда по поводу использования школой термина «программная инженерия» в названии программы по информатике. Высказывались опасения по поводу неправильного использования названия «программная инженерия» для описания неинженерных программ, что может привести к путанице среди студентов и общественности и, в конечном итоге, поставить под угрозу общественную безопасность. [5] Комиссия выпустила рекомендации по созданию Совета по аккредитации программной инженерии, но целевая группа, созданная для выполнения рекомендаций, не смогла убедить различные заинтересованные стороны согласиться с конкретными предложениями, что привело к созданию отдельных комиссий по аккредитации. [6] [7]
Этика
Этика программной инженерии - это обширная область. В некотором смысле это началось как нереалистичная попытка определить ошибки как неэтичные. [ необходима цитата ] Совсем недавно это было определено как применение философии, принципов и практики информатики и инженерии к проектированию и разработке программных систем. Из-за такой инженерной направленности и более широкого использования программного обеспечения в критически важных системах и системах, критически важных для человека, где отказ может привести к большим потерям капитала, но, что более важно, к жизням, таким как система Therac-25 , многие этические кодексы были разработаны рядом организаций. общества, ассоциации и организации. Эти организации, такие как ACM , IEEE , APEGBC [8] и Институт сертификации специалистов по вычислительной технике (ICCP) [9], имеют формальные этические кодексы. Соблюдение этического кодекса является условием членства или сертификации. Согласно ICCP, нарушение кода может привести к аннулированию сертификата. Кроме того, все инженерные общества требуют соблюдения своих этических кодексов; нарушение кодекса приводит к отзыву лицензии на занятие инженерной деятельностью в юрисдикции общества.
Эти этические кодексы обычно имеют много общего. Обычно они связывают необходимость действовать в соответствии с интересами клиента, интересами работодателя и, что наиболее важно, интересами общества. Они также подчеркивают необходимость действовать профессионально и продвигать этический подход к профессии.
Кодекс этики программной инженерии [10] [11] был одобрен ACM и IEEE-CS в качестве стандарта для обучения и практики программной инженерии.
Примеры кодексов поведения
Ниже приведены примеры кодексов поведения профессиональных инженеров. Эти 2 были выбраны потому, что обе юрисдикции имеют статус профессиональных инженеров-программистов.
- Ассоциация профессиональных инженеров и геологов Британской Колумбии (APEGBC): [12] Все члены этического кодекса ассоциации должны гарантировать, что правительство и общественность могут полагаться на профессиональных инженеров и геофизиков Британской Колумбии, чтобы они всегда действовали справедливо, вежливо и добросовестно. веры своим работодателям, сотрудникам и клиентам, отстаивать правду, честность и надежность, а также защищать человеческую жизнь и окружающую среду. Это лишь один из многих способов, с помощью которых профессиональные инженеры и геофизики Британской Колумбии поддерживают свои конкурентные преимущества на сегодняшнем глобальном рынке.
- Ассоциация профессиональных инженеров и геологов Альберты (APEGA): [13] В отличие от Британской Колумбии, правительство Альберты предоставило самоуправление инженерам, геофизикам и геофизикам. Все члены APEGA должны нести юридическую и этическую ответственность за свою работу и защищать интересы общественности и общества. APEGA - это руководящие принципы профессиональной практики для защиты общественных интересов в области инженерии, геофизики и геофизики в Альберте.
Мнения по этике
Билл Джой утверждал, что «более совершенное программное обеспечение» может позволить только его привилегированным конечным пользователям, сделать реальность более мощной, а не более гуманной, и в конечном итоге убежать от себя, чтобы «будущее не нуждалось в нас». Он открыто поставил под сомнение цели программной инженерии в этом отношении, спрашивая, почему она не пытается быть более этичной, а не более эффективной. [ Править ] В своей книге кодекс и другие законы киберпространства , Лоуренс Лессиг утверждает , что компьютерный код может регулировать поведение во многом таким же образом , как правовой кодекс. Лессиг и Джой призывают людей задуматься о последствиях разрабатываемого программного обеспечения не только в функциональном плане, но и в том, как оно влияет на общественность и общество в целом.
В целом, из-за молодости программной инженерии многие этические кодексы и ценности были заимствованы из других областей, таких как машиностроение и гражданское строительство. Однако есть много этических вопросов, с которыми не сталкивались даже эти, гораздо более старые дисциплины. Вопросы об этическом влиянии интернет-приложений, которые имеют глобальный охват, никогда не возникали до недавнего времени, а другие этические вопросы все еще возникают. Это означает, что этические кодексы для разработки программного обеспечения находятся в стадии разработки и будут меняться и обновляться по мере возникновения новых вопросов. [ необходима цитата ]
Профессиональные обязанности по разработке программного обеспечения
- Кто виноват?
- Разработчики работают с клиентами и пользователями, чтобы определить системные требования. После того, как система построена, в случае возникновения каких-либо несчастных случаев, таких как экономический ущерб или другие, кто несет за это ответственность?
- Если независимая группа QA проводит интеграционное тестирование и не обнаруживает критической ошибки в системе, кто этически несет ответственность за ущерб, причиненный этой ошибкой?
- Обязанности по инженерному и геолого-геофизическому программному обеспечению
- Разработка программного обеспечения - очень рискованное занятие. Процесс разработки программного обеспечения - это сложное мероприятие, состоящее из спецификации, проектирования, внедрения и тестирования. Любая маленькая ошибка или промах нанесет обществу неограниченный ущерб. Профессиональные члены вносят свой вклад в успех проектов по разработке программного обеспечения. Однако Ассоциация профессиональных инженеров и геофизиков в первую очередь озабочена своей ответственностью за минимизацию риска сбоев и защиту общественных интересов. [14]
Лицензирование
Американское национальное общество профессиональных инженеров представляет типовой закон и лоббирует законодательные органы для принятия правил лицензирования профессий . Типовой закон требует:
- четырехлетняя степень по университетской программе, аккредитованной Комитетом по инженерной аккредитации (EAC) Совета по аккредитации в области инженерии и технологий (ABET),
- восьмичасовой экзамен по основам инженерии (FE), который обычно сдается в старшем классе колледжа,
- четыре года приемлемого опыта,
- второй экзамен по принципам и практике, и
- письменные рекомендации других профессиональных инженеров.
В некоторых штатах требуется непрерывное образование.
В Техасе Дональд Багерт из Техаса стал первым профессиональным инженером-программистом в США 4 сентября 1998 года или 9 октября 1998 года. По состоянию на май 2002 года Техас выдал 44 профессиональных инженерных лицензии для инженеров-программистов. Рочестерский технологический институт присвоил первые степени бакалавра программной инженерии в 2001 году. За ним последовали и другие университеты.
Профессиональное лицензирование подвергалось критике по многим причинам. [3]
- Область разработки программного обеспечения слишком незрелая
- Лицензирование дало бы ложные гарантии компетентности, даже если бы совокупность знаний была зрелой.
- Чтобы сдать экзамены, программистам придется годами изучать математику , физику и химию , что не имеет значения для большинства практиков программного обеспечения. Многие (большинство?) Специалистов по информатике не получают дипломов в инженерных школах, поэтому они, вероятно, не имеют квалификации для сдачи инженерных экзаменов.
- В Канаде большинство людей, получивших профессиональные лицензии на разработку программного обеспечения, изучают программную инженерию, компьютерную инженерию или электротехнику. Часто эти люди уже имеют квалификацию, чтобы стать профессиональными инженерами в своих областях, но предпочитают получать лицензию инженеров-программистов, чтобы отличаться от ученых-компьютерщиков.
- В Британской Колумбии Ограниченная лицензия выдается Ассоциацией профессиональных инженеров и геологов Британской Колумбии. Плата за Ограниченную лицензию взимается APEGBC .
Лицензионные и сертификационные экзамены
С 2002 года компьютерное общество IEEE предлагало сертификационный экзамен Certified Software Development Professional (CSDP) (в 2015 году он был заменен несколькими аналогичными сертификатами). Группа экспертов из промышленности и академических кругов разработала экзамен и провела его. Дональд Багерт, а позже Стивен Токи возглавили аттестационную комиссию. Содержание экзамена было сосредоточено на руководстве SWEBOK (свод знаний по программной инженерии ) с дополнительным акцентом на профессиональные практики и области знаний в области экономики программного обеспечения. Мотивацией было создание структуры на международном уровне для областей знаний программной инженерии. [15] [16]
Право на практику в Онтарио
Человеку должна быть предоставлена лицензия «профессионального инженера», чтобы иметь право заниматься профессиональной разработкой программного обеспечения в качестве профессионального инженера в Онтарио. Чтобы получить лицензию профессиональных инженеров Онтарио (PEO), вы должны:
- Быть не моложе 18 лет.
- Быть гражданином или постоянным жителем Канады.
- Будьте хорошим характером. Вам будет предложено ответить на вопросы и сделать письменное заявление в анкете для проверки вашей этики.
- Соответствовать установленным академическим требованиям PEO для получения лицензии.
- Сдать экзамен по профессиональной практике.
- Выполнять требования к опыту инженерной работы.
Тем не менее, стоит отметить, что многие выпускники программ инженерии программного обеспечения не могут получить лицензию PEO, поскольку работа, на которую они претендуют после окончания обучения в качестве начального уровня, не связана с разработкой, т.е. работа в компании-разработчике программного обеспечения, написание кода или тестирование кода не будет квалифицировать их, поскольку их опыт работы не соответствует руководящим принципам опыта работы, установленным PEO. Кроме того, программы программной инженерии в Онтарио и других провинциях включают серию курсов по электротехнике, электронике и вычислительной технике, которые позволяют выпускникам даже работать в этих областях.
Право на практику в Квебеке
Человеку должна быть предоставлена лицензия «инженера», чтобы иметь право заниматься профессиональной разработкой программного обеспечения в Квебеке. Чтобы получить лицензию Квебекского ордена инженеров (по-французски: Ordre des ingénieurs du Québec - OIQ), кандидат должен:
- Быть не моложе 18 лет.
- Будьте хорошим характером. Кандидату будет предложено ответить на вопросы и сделать письменное заявление в форме заявки, чтобы проверить свою этичность.
- Соответствовать установленным академическим требованиям OIQ для получения лицензии. В этом случае академическая программа должна быть аккредитована Канадским Инженерным советом по аккредитации - CEAB)
- Сдать экзамен по профессиональной практике.
- Выполнять требования к опыту инженерной работы.
- Сдать рабочие знания французского экзамена
Рекомендации по программной инженерии (SEng) провинций Канады
Термин «инженер» в Канаде используется только для тех, кто окончил квалификационную инженерную программу. Программы «Программная инженерия» некоторых университетов находятся в ведении инженерного факультета и, следовательно, соответствуют требованиям, например, Университет Ватерлоо . У других, таких как Университет Торонто, есть «программная инженерия» на факультете компьютерных наук, который не соответствует требованиям. Это различие связано с тем, как регулируется профессия. Дипломы в области инженерии должны быть аккредитованы национальной комиссией и иметь определенные особые требования, чтобы позволить выпускнику продолжить карьеру в качестве профессионального инженера. Степени "Компьютерные науки", даже те, которые имеют специальность в области разработки программного обеспечения, не должны соответствовать этим требованиям, поэтому факультеты компьютерных наук обычно могут преподавать более широкий спектр тем, а студенты могут получить высшее образование без специальных курсов, необходимых для продолжения карьеры профессионального инженера. . [17]
Смотрите также
- Бакалавр наук в области информационных технологий
- Бакалавр программной инженерии
- Список тем программной инженерии
- Демография программной инженерии
- Экономика программной инженерии
Рекомендации
- ^ https://engineers.texas.gov/software.html
- ^ https://www.engineersaustralia.org.au/about-us/program-accreditation
- ^ a b Краткое изложение позиции ACM по разработке программного обеспечения как лицензированной инженерной профессии (PDF) , 17 июля 2000 г.
- ^ «Архивная копия» . Архивировано из оригинала на 2008-06-25 . Проверено 30 июля 2008 .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ http://www.engineerscanada.ca/e/pub_ceo_01_02.cfm
- ^ http://www.cips.ca/softeng
- ^ http://www.peo.on.ca/index.php/ci_id/26349/la_id/1.htm
- ^ APEGBC
- ^ Институт сертификации специалистов по вычислительной технике (ICCP) ,
- ^ Кодекс этики и профессиональной практики программной инженерии
- ^ Компьютерное общество и ACM утверждают этический кодекс программной инженерии
- ^ Ассоциация профессиональных инженеров и геологов Британской Колумбии (APEGBC)
- ^ Ассоциация профессиональных инженеров и геологов Альберты (APEGA)
- ^ https://www.apega.ca/assets/PDFs/software.pdf
- ^ Мур, Мелоди М. (2003). Лицензия на занятие разработкой программного обеспечения. Программное обеспечение IEEE , 20 (3), 112-113.
- ^ Для получения дополнительной информации см .:
- http://se.uwaterloo.ca/~jmatlee/talks/kwsqa02.pdf
- http://www.faqs.org/faqs/engineering/pe-eit-exam/ 10 апреля 2002 г.
- http://www.sdmagazine.com/documents/s=746/sdm0003g/0003g.htm
- Позиция ACM по лицензированию программных инженеров, http://www.acm.org/serving/se_policy/
- http://www.cs.virginia.edu/~jck/publications/cacm.2002.pdf-- >
- ^ Выдержка из GOV.ON.CA , см. Также:
- британская Колумбия
- Саскачеван
- Манитоба
- Онтарио
- Квебек
- СЗТ
Внешние ссылки
- Профессиональное лицензирование в Техасе
- SE как этический кодекс
- «Обзор профессионализации индустрии программного обеспечения: сделал ли он программную инженерию настоящей профессией?», Академическая статья, документирующая прогресс профессионализации SE.