Кіріспе
Бағдарламалық жасақтаманы жобалау кәсібилігі – бағдарламалық жасақтаманы мамандық деңгейіне көтеруге бағытталған қозғалыс, оған дипломдар мен сертификаттау бағдарламалары, кәсіби қауымдастықтар, кәсіби этика және мемлекеттік лицензиялау сияқты мәселелер кіреді. АҚШ-тың Техас штатында (2013 жылдан бері Техас кәсіби инженерлер кеңесі), Австралия инженерлері (2001 жылдан бері курс аккредиттеуі, бірақ лицензиясы жоқ) және Даваодағы көптеген провинцияларда бұл сала лицензияланған мамандық болып табылады.
Тарих
1993 жылы IEEE және ACM JCESEP деп аталатын бірлескен жобаны бастады, ол 1998 жылы SWECC болып өзгерді, бағдарламалық жасақтаманы кәсіби мамандыққа айналдыру мүмкіндігін зерттеді. ACM 1999 жылдың мамырында SWECC-ден шығып, Техас штатында бағдарламалық жасақтама инженерлеріне мемлекеттік лицензия беруге бағытталған кәсібилендіру шараларын қолдауына қарсылық білдірді. ACM бағдарламалық жасақтама инженериясы саласындағы білім мен тәжірибе лицензиялауды қажет етуге әлі жетілмегенін, тіпті білім жетілген жағдайда да лицензиялау құзыреттілік туралы жалған сенімділік тудыратынын анықтады. IEEE бағдарламалық жасақтаманы дәстүрлі инженерлік саланың бір бөлігі ретінде дамытуды қолдауын жалғастырды. Канадада Канадалық ақпараттық процестер қоғамы ақпараттық жүйелер кәсіби сертификаттау процесін енгізді. Сонымен қатар, 1990 жылдардың соңында (1999 жылы Британдық Колумбияда) бағдарламалық жасақтама инженериясы кәсіби инженерлік мамандық ретінде ресми түрде құрылды. Бұл провинциялық инженерлік қауымдастықтар мен өз әзірлеушілерін бағдарламалық жасақтама инженерлері деп атаған компаниялар арасында дау-жанжалға себеп болды, тіпті бұл әзірлеушілердің ешқайсысы инженерлік қауымдастықтан лицензия алмаған болатын. 1999 жылы Инженерлік Канада мен Ньюфаундленд Мемориал Университеті арасындағы келісімнің аясында Бағдарламалық жасақтама инженериясы жөніндегі комиссия құрылды. Комиссия университет компьютерлік ғылым бағдарламасының атында "бағдарламалық жасақтама инженериясы" терминін қолдануына байланысты туындаған алаңдаушылықтарды қарастырды. Инженерлік емес бағдарламаларды сипаттау үшін "бағдарламалық жасақтама инженериясы" атауын тиісінше қолданбау студенттер мен қоғамның шатасуына және соңғы нәтижеде қоғамдық қауіпсіздікке қауіп төндіруі мүмкін деген пікір білдірілді. Комиссия Бағдарламалық жасақтаманы аккредиттеу жөніндегі кеңес құруды ұсынды, бірақ ұсынымдарды іске асыру үшін құрылған жұмыс тобы әртүрлі тараптарды нақты ұсыныстарға келісуге жеткізе алмады, нәтижесінде жеке аккредиттеу кеңестері құрылды.
and that licensing would give false assurances of competence even if the body of knowledge were mature. The IEEE continued to support making software engineering a branch of traditional engineering. In Canada the Canadian Information Processing Society established the Information Systems Professional certification process. Also, by the late 1990s (1999 in British Columbia) the discipline of software engineering as a professional engineering discipline was officially created. This has caused some disputes between the provincial engineering associations and companies who call their developers software engineers, even though these developers have not been licensed by any engineering association. In 1999, the Panel of Software Engineering was formed as part of the settlement between Engineering Canada and the Memorial University of Newfoundland over the school's use of the term "software engineering" in the name of a computer science program. Concerns were raised over the inappropriate use of the name "software engineering" to describe non engineering programs could lead to student and public confusion, and ultimately threaten public safety. The Panel issued recommendations to create a Software Engineering Accreditation Board, but the task force created to carry out the recommendations was unable to get the various stakeholders to agree to concrete proposals, resulting in separate accreditation boards.
Этика
Бағдарламалық инженерия этикасы – кең сала. Бір жағынан, бұл қателерді этикалық емес деп анықтауға жасалған нақты емес тыраштандыру ретінде басталды. Жақында ғана ол компьютерлік ғылым мен инженерия философиясының, принциптерінің және тәжірибелерінің бағдарламалық жүйелерді жобалау мен дамытуға қолданылуы ретінде анықталды. Осы инженериялық бағытталғандық және бағдарламалық жасақтаманы өте маңызды және адам өміріне қатысты жүйелерде қолданудың артуына байланысты, мұнда сәтсіздік капиталдың үлкен шығындарына, бірақ одан да маңыздысы, адам өміріне әкелуі мүмкін (мысалы, Therac 25 жүйесі). Осы себепті, көптеген этикалық кодекстер түрлі қоғамдар, қауымдастықтар мен ұйымдар тарапынан әзірленді. ACM, IEEE, EGBC және Компьютерлік мамандықты сертификаттау институты (ICCP) сияқты ұйымдардың ресми этикалық кодекстері бар. Кодекске сәйкес келу мүшелік немесе сертификаттау шарты ретінде талап етіледі. ICCP мәліметінше, кодекс бұзылса, сертификаттан айырылуы мүмкін. Сондай-ақ, барлық инженериялық қоғамдар өздерінің этикалық кодекстеріне сәйкес келуді талап етеді; кодекс бұзылса, қоғамның құзыратында инженериялық практиканы жүзеге асыруға берілген лицензия күшін жояды. Бұл этикалық кодекстердің көбібір ортақ белгілері бар. Олар әдетте клиенттің, жұмыс берушінің мүдделерін, ең бастысы – қоғамның мүдделерін ескере отырып әрекет ету қажеттігін көрсетеді. Сонымен қатар, олар кәсібилікті сақтап, мамандыққа этикалық көзқарас қалыптастыру қажеттігін атап көрсетеді. ACM және IEEE CS бағдарламалық инженерияны оқыту және тәжірибелеу стандарты ретінде Бағдарламалық инженерия этикалық кодексін бекітті.
Әдеп кодекстерінің үлгілері
Кәсіби инженерлер үшін мінез-құлық кодекстерінің мысалдары төменде келтірілген. Бұл екі жағдай таңдалды, себебі екі юрисдикцияда да кәсіби бағдарламалық жасақтама инженерлерінің мамандығы бар. Британдық Колумбияның Инженерлер мен Геоғылымшылар қауымдастығы (EGBC): Қауымдастықтың этика кодексіндегі барлық мүшелер үкімет пен халықтың Британдық Колумбияның кәсіби инженерлері мен Геоғылымшыларына әрқашан әділдік, сыпайылық және игі ниетпен жұмыс берушілеріне, қызметкерлеріне және клиенттеріне қатысты әрекет ететініне, шыншылдық, адалдық және сенімділікті сақтауға, сондай-ақ адам өмірін және қоршаған ортаны қорғауға сенімді болуын қамтамасыз етуі керек. Бұл – Британдық Колумбияның кәсіби инженерлері мен Геоғылымшыларының бүгінгі жаһандық нарықтағы бәсекеге қабілеттілігін сақтаудың көптеген жолдарының бірі ғана. Альбертаның Кәсіби Инженерлер мен Геоғылымшылар қауымдастығы (APEGA): Британдық Колумбиядан өзгеше, Альберта үкіметі инженерлерге, Геоғылымшыларға және геофизиктерге өздігінен басқару құқығын берді. APEGA-ның барлық мүшелері өз жұмысына заңдық және этикалық жауапкершілікті қабылдауы және қоғам мен халықтың мүддесін қорғауы тиіс. APEGA – Альбертада инженерлік, Геоғылым және геофизика салаларындағы қоғамдық мүддені қорғауға бағытталған кәсіби практиканың стандарттық нұсқаулығы.
Этикаға қатысты пікірлер
Билл Джой "жақсы бағдарламалық қамтамасыз ету" тек қана ерекше құқықтары бар пайдаланушыларға мүмкіндік береді, шындықты адамгершілікке қарағанда күштірек етеді және соңында өзінен асып кетеді, сондықтан "болашаққа біздің қатысымыз жоқ". Ол осы тұрғыда бағдарламалық жасақтама инженериясының мақсаттарына ашық күмән келтірді, неге ол тиімділіктен гөрі этикалық болуға ұмтылмайды деп сұрады. Лоуренс Лессиг өзінің "Кодекс және киберкеңістіктің басқа да заңдары" атты кітабында компьютерлік кодтың заң кодексі сияқты мінез-құлықты реттей алатынын айтады. Лессиг пен Джой адамдарды әзірленіп жатқан бағдарламалық жасақтаманың тек функционалдығын ғана емес, сонымен қатар ол қоғам мен жалпы халыққа қалай әсер ететінін ойлануға шақырады. Бағдарламалық жасақтама инженериясының салыстырмалы түрде жас сала болғандықтан, көптеген этикалық нормалар мен құндылықтар механикалық және азаматтық инженерия сияқты басқа салалардан алынған. Дегенмен, тіпті осы ескі салаларда да кездеспеген көптеген этикалық мәселелер бар. Әлемдік деңгейде тараған интернет-қосымшаларының этикалық әсеріне қатысты мәселелер жақында ғана туындады, ал басқа этикалық сұрақтар әлі де туындауы мүмкін. Бұл бағдарламалық жасақтама инженериясының этикалық кодексінің әлі де дамып жатқандығын, жаңа мәселелер туындаған сайын өзгеріп, жаңарып отыратындығын білдіреді.
Тәуелсіз лицензиялық және сертификаттық емтихандар
2002 жылдан бастап IEEE Computer Society «Сертификатталған бағдарламалық жасақтаманы әзірлеуші маман» (CSDP) сертификациялық емтиханын ұсынды (2015 жылы ол бірнеше ұқсас сертификаттармен ауыстырылды). Емтиханды өнеркәсіп және академиялық ортадан келген сарапшылар тобы әзірледі және оны қолдап тұрды. Дональд Багерт, ал кейінірек Стивен Токи сертификация комитетін басқарды. Емтихан мазмұны SWEBOK (Software Engineering Body of Knowledge) нұсқаулығына негізделген, сонымен қатар кәсіби тәжірибе және бағдарламалық жасақтама инженерлігі экономикасы салаларына (KAs) ерекше назар берілді. Мақсаты – бағдарламалық жасақтама инженерлігінің білім салалары үшін халықаралық деңгейде құрылым құру болды.
Канада
Канадада "инженер" лауазымдық атауын пайдалану әрбір провинцияда өзін-өзі реттейтін кәсіби инженерлік ұйымдармен бақыланады, сонымен қатар оларға қолданыстағы заңнаманы сақтау міндеті жүктеледі. Мақсаты – өздерін инженер деп таныстыратын кез келген адамның белгілі бір аккредиттелген деңгейде білім алғаны тексеріліп, олардың кәсіби қызметі этика кодексі мен әріптестерінің бақылауына бағынуы керек. Егер жеке тұлға лицензия алмаса, Канадада "инженер" атауын пайдалану заңсыз. Басқа салаларда (мысалы, компьютер ғылымы немесе ақпараттық жүйелер) білімі бар IT-мамандарына олардың тұратын провинциясы немесе аумағына байланысты "Бағдарламалық жасақтама инженері" атауын немесе атауда "Бағдарламалық жасақтама инженері" деген сөздерді қолдануға тыйым салынады. Кейбір жағдайларда қорғалған "Инженер" атағын заңсыз пайдалану туралы мәселелер сотқа жеткізілді. Көптеген канадалықтар кәсіби бағдарламалық жасақтама инженері лицензиясын бағдарламалық жасақтама, компьютерлік инженерлік немесе электр инженерлігін оқып алады. Көбінесе бұл адамдар өз салаларында кәсіби инженер болуға лайықты, бірақ компьютер ғалымдарынан өзгешелену үшін бағдарламалық жасақтама инженерлері ретінде лицензия алуды таңдайды. Британдық Колумбияда шектеулі лицензияны Британдық Колумбия инженерлері мен геоғылымшылары ұйымы береді. EGBC ұйымы шектеулі лицензия алғандардан төлемдер жинайды.
Канада провинцияларының бағдарламалық жасақтама инженериясы (SEng) бойынша нұсқаулары
Канадада "инженер" термині білікті инженерлік бағдарламаны тәмамдағандарға ғана қолданылады. Кейбір университеттердің "бағдарламалық инженерия" бағдарламалары инженерлік факультет құрамында болғандықтан, олар біліктілікті иеленеді, мысалы, Ватерлоо университеті. Ал Торонто университеті сияқты басқаларында "бағдарламалық инженерия" компьютерлік ғылымдар факультетінде орналасқан, ол біліктілікке ие емес. Бұл ерекшелік мамандықтың мемлекеттік реттелуімен байланысты. "Инженерлік" мамандықтары бойынша дипломдарды ұлттық аккредиттеу комиссиясы аккредиттеуі тиіс және түлектерге кәсіби инженер ретінде мансап құруға мүмкіндік беретін нақты талаптарға сай болуы керек. "Компьютерлік ғылым" дәрежелері, тіпті бағдарламалық жасақтама инженериясы бойынша мамандануы бар болса да, мұндай талаптарға жата қоймайды, сондықтан компьютерлік ғылым кафедралары көбінесе тақырыптардың кең ауқымын оқыта алады және студенттер кәсіби инженер болу үшін қажетті белгілі бір курстарсыз бітіруге мүмкіндік алады.
Еуропа
Бүкіл Еуропа бойынша қажетті білімі мен тәжірибесі бар инженерлер кәсіби «Еуропалық инженер» біліктілігін алуға құқылы.
Франция
Францияда «инженер» термині қорғалған атақ емес және оны кез келген адам, тіпті академиялық дәрежесі жоқ адамдар да қолдана алады. Дегенмен, «Ingénieur Diplomé» (Дипломдық инженер) атағы – үкімет тарапынан қорғалатын ресми академиялық атақ және Франциядағы ең беделді академиялық дәрежелердің бірі саналатын «Diplôme d'Ingénieur» дипломымен байланысты.
Исландия
Исландияда "tölvunarfræðingur" (компьютерлік ғалым) атағын пайдалану заңмен қорғалады. Бағдарламалық инженерия Исландия университеттерінің Компьютерлік ғылым факультеттерінде оқытылады. Исландия заңдарына сәйкес, диплом шетелде алынған жағдайда, атақты пайдалану үшін алдымен Өнеркәсіп министрінен рұқсат алу қажет. Аталған атақ, мойындалған жоғары білім беру мекемесінің Компьютерлік ғылымдар мамандығы бойынша бакалавр дәрежесін бітіргендерге беріледі.
Жаңа Зеландия
Жаңа Зеландияда елдің аттестатталған инженерлерін (CPEng) лицензиялайтын және реттейтін Жаңа Зеландияның кәсіби инженерлер институты (IPENZ) бағдарламалық инженерияны кәсіби инженерліктің толыққанды саласы ретінде мойындайды және бекітілген пәндер бойынша жоғары білімі бар бағдарламалық инженерлердің аттестат алуға үміткерліктерін қабылдайды. Бағдарламалық инженерия кіретін болса, компьютерлік ғылым әдетте кірмейді.