Inxhinieria e softuerit

Inxhinieria e softuerit është një fushë brenda shkencës kompjuterike e fokusuar në projektimin, zhvillimin, testimin dhe mirëmbajtjen e aplikacioneve softuerike. Ai përfshin zbatimin e parimeve inxhinierike dhe ekspertizën e programimit kompjuterik për të zhvilluar sisteme softuerike që plotësojnë nevojat e përdoruesve.

Termat programues dhe kodues mbivendosen inxhinier softuerësh, por ato nënkuptojnë vetëm aspektin e ndërtimit të ngarkesës tipike të inxhinierit të softuerit.

Një inxhinier softuerësh zbaton një proces zhvillimi softuerësh, që përfshin përcaktimin, zbatimin, testimin, menaxhimin dhe mirëmbajtjen e sistemeve të softuerit dhe krijimin dhe modifikimin e procesit të zhvillimit.

 Historia 
Duke filluar në vitet 1960, inxhinieria e softuerit u njoh si një fushë e veçantë e inxhinierisë.

Zhvillimi i inxhinierisë softuerike u pa si një sfide. Problemet përfshinin softuer që kishin tejkaluar buxhetin, tejkaluar afatet, kërkonte korrigjimin dhe mirëmbajtjen e gjerë dhe plotësonte pa sukses nevojat e konsumatorëve ose nuk ishte përfunduar asnjëherë.

Në vitin 1968, NATO mbajti konferencën e parë të inxhinierisë softuerike ku u trajtuan çështjet që lidhen me softuerin. U krijuan udhëzime dhe praktika më të mira për zhvillimin e softuerit.

Origjina e termit inxhinieri softuerike i është atribuar burimeve të ndryshme. Termi u shfaq në një listë shërbimesh të ofruara nga kompanitë në qershorin e vitit 1965 çështja e "Computers and Automation" dhe ishte përdor më formalisht në gushtin e vitit 1966 të Communications of the ACM (Vëllimi 9, numri 8), në një "Letër të Presidentit drejtuar Anëtarëve të ACM", të shkruar nga Anthony A. Oettinger. Ajo shoqërohet gjithashtu me titullin e një konference të NATO-s në vitin 1968 nga Profesor Friedrich L. Bauer . Margaret Hamilton përshkroi disiplinën e "inxhinierisë së softuerit" gjatë misioneve Apollo për t'i dhënë legjitimitet asaj që po bënin. Në atë kohë u perceptua se kishte një "krizë softuerike ". Konferenca e 40-të Ndërkombëtare për Inxhinierinë Softuerike (ICSE 2018) feston 50 vjetorin e "Inxhinierisë Softuerike" me fjalimet kryesore të Sesioneve Plenare të Frederick Brooks dhe Margaret Hamilton.

Në vitin 1984, Instituti i Inxhinierisë së Softuerit (SEI) u krijua si një qendër kërkimore dhe zhvillimi e financuar nga qeveria me seli në kampusin e Universitetit Carnegie Mellon në Pittsburgh, Pensilvani, Shtetet e Bashkuara te Amerikës. Watts Humphrey themeloi Programin e Procesit të Softuerit SEI, që synon kuptimin dhe menaxhimin e procesit të inxhinierisë softuerike. Nivelet e Maturitetit të Procesit të prezantuara u bënë Integrimi i Modelit të Maturitetit të Kapacitetit për Zhvillim (CMMI-DEV), i cili përcaktoi se si qeveria e SHBA vlerëson aftësitë e një ekipi të zhvillimit të softuerit.

Praktikat më të mira moderne, përgjithësisht të pranuara për inxhinierinë e softuerit janë mbledhur nga nënkomiteti ISO/IEC JTC 1/SC 7 dhe janë publikuar si Trupi i Njohurive i Inxhinierisë Softuerike (SWEBOK). Inxhinieria e softuerit konsiderohet si një nga disiplinat kryesore të informatikës.

 Terminologjia 

 Definicioni 
Definicionet e shquara të inxhinierisë softuerike përfshijnë:

 Zbatimi sistematik i njohurive, metodave dhe përvojës shkencore dhe teknologjike në projektimin, zbatimin, testimin dhe dokumentimin e softuerit." – Byroja e Statistikave të Punës – IEEE Systems and software engineering – Vocabulary
 "Zbatimi i një qasjeje sistematike, të disiplinuar, të matshme për zhvillimin, funksionimin dhe mirëmbajtjen e softuerit."- IEEE Standard Glossary of Software Engineering Terminology
 "Një disiplinë inxhinierike që ka të bëjë me të gjitha aspektet e prodhimit të softuerit." – Ian Sommerville 
 "Krijimi dhe përdorimi i parimeve të shëndosha inxhinierike për të përftuar ekonomikisht softuer që është i besueshëm dhe funksionon me efikasitet në makina reale." – Fritz Bauer 
 "Një degë e shkencës kompjuterike që merret me projektimin, zbatimin dhe mirëmbajtjen e programeve kompjuterike komplekse." – Merriam-Webster 
 " Inxhinieria e softuerit" përfshin jo vetëm aktin e shkrimit të kodit, por të gjitha mjetet dhe proceset që përdor një organizatë për të ndërtuar dhe mirëmbajtur atë kod me kalimin e kohës. […] Inxhinieria e softuerit mund të mendohet si "programim i integruar me kalimin e kohës''- Inxhinier Softuerësh në Google 

Termi është përdorur gjithashtu më pak formalisht:

 si termi bashkëkohor informal për gamën e gjerë të aktiviteteve që më parë quheshin programim kompjuterik dhe analiza e sistemeve,: "For some, software engineering is just a glorified name for programming. If you are a programmer, you might put 'software engineer' on your business card—never 'programmer' though."
 si term i gjerë për të gjitha aspektet e praktikës së programimit kompjuterik, në krahasim me teorinë e programimit kompjuterik, e cila është studiuar zyrtarisht si një nëndisiplinë e shkencës kompjuterike, Mills, Harlan D., J. R. Newman, and C. B. Engle, Jr., "An Undergraduate Curriculum in Software Engineering," in ,p. 26: "As a practical matter, we regard software engineering as the necessary preparation for the practicing, software development and maintenance professional. The Computer Scientist is preparing for further theoretical studies..."
 si term që mishëron mbrojtjen e një qasjeje specifike ndaj programimit kompjuterik, një që kërkon që ai të trajtohet si një disiplinë inxhinierike dhe jo si një art apo zanat, dhe mbron kodifikimin e praktikave të rekomanduara.

 Etimologjia 
Margaret Hamilton promovoi termin "inxhinieri softuerike" gjatë punës së saj në programin Apollo . Termi "inxhinieri" u përdor për të pranuar se puna duhet marrë po aq seriozisht sa kontributet e tjera drejt perparimit të teknologjisë. Hamilton detajon përdorimin e saj të termit:Kur për herë të parë dola me termin, askush nuk kishte dëgjuar për të më parë, të paktën në botën tonë. Ishte një shaka e vazhdueshme për një kohë të gjatë. Atyre u pëlqente të më tallnin për idetë e mia radikale. Ishte një ditë e paharrueshme kur një nga ekspertët më të respektuar të harduerit u shpjegoi të gjithëve në një takim se ishte dakord me mua që procesi i ndërtimit të softuerit duhet të konsiderohet gjithashtu një disiplinë inxhinierike, ashtu si me harduerin. Jo për shkak të pranimit të tij të "termit" të ri në vetvete, por sepse ne kishim fituar pranimin e tij dhe të të tjerëve në dhomë si në një fushë inxhinierike më vete.

 Përshtatshmëria 
Komentuesit individualë nuk kanë rënë dakord ashpër se si të përkufizohet inxhinieria e softuerit ose legjitimiteti i saj si një disiplinë inxhinierike. David Parnas ka thënë se inxhinieria e softuerit është, në fakt, një formë e inxhinierisë., p. 19: "Rather than treat software engineering as a subfield of computer science, I treat it as an element of the set, {Civil Engineering, Mechanical Engineering, Chemical Engineering, Electrical Engineering,....}.", p. 20: "This paper argues that the introduction of accredited professional programs in software engineering, programmes that are modelled on programmes in traditional engineering disciplines will help to increase both the quality and quantity of graduates who are well prepared, by their education, to develop trustworthy software products." Steve McConnell ka thënë se nuk është, por duhet të jetë., p. 39: "In my opinion, the answer to that question is clear: Professional software development should be engineering. Is it? No. But should it be? Unquestionably, yes. " Donald Knuth ka thënë se programimi është një art dhe një shkencë.Transcript of the 1974 Turing Award lecture. Edsger W. Dijkstra pohoi se termat inxhinieri softuerike dhe inxhinieri i softuerit janë keqpërdorur në Shtetet e Bashkuara.

 Ngarkesa e punës 
 Analiza e kërkesave 
Inxhinieria e kërkesave ka të bëjë me nxjerrjen, analizën, specifikimin dhe validimin e kërkesave për softuer . Kërkesat e softuerit mund të jenë funksionale, jofunksionale ose të fushës.

Kërkesat funksionale përshkruajnë sjelljet e pritshme (dmth. rezultatet). Kërkesat jofunksionale specifikojnë çështje si protabiliteti, siguria, mirëmbajtja, besueshmëria, shkallëzueshmëria, performanca, ripërdorimi dhe fleksibiliteti. Ato klasifikohen në llojet e mëposhtme: kufizimet e ndërfaqes, kufizimet e performancës (të tilla si koha e përgjigjes, siguria, hapësira e ruajtjes, etj.), kufizimet e funksionimit, kufizimet e ciklit të jetës (mirëmbajtja, portabilitet, etj.) dhe kufizimet ekonomike. Njohuria se si funksionon sistemi ose softueri është e nevojshme kur bëhet fjalë për specifikimin e kërkesave jofunksionale. Kërkesat e fushës kanë të bëjnë me karakteristikat e një kategorie ose domeni të caktuar projektesh.

 Dizajni 
Dizajni i softuerit është procesi i krijimit të planeve të nivelit të lartë për softuerin. Dizajni ndonjëherë ndahet në nivele:

 Dizajni i ndërfaqes planifikon ndërveprimin midis një sistemi dhe mjedisit të tij, si dhe funksionimin e brendshëm të sistemit.
 Dizajni arkitektonik planifikon komponentët kryesorë të një sistemi, duke përfshirë përgjegjësitë e tyre, vetitë dhe ndërfaqet ndërmjet tyre.
 Planet e detajuara të projektimit të elementeve të brendshëm, duke përfshirë vetitë, marrëdhëniet, algoritmet dhe strukturat e të dhënave të tyre.

 Ndërtimi 
Ndërtimi i softuerit zakonisht përfshin programimin  (a.k.a. kodimi), testimin e njësisë, testimin e integrimit dhe korrigjimin në mënyrë që të zbatohet dizajni. "Testimi i softuerit është i lidhur, por i ndryshëm nga … korrigjimi". Testimi gjatë kësaj faze në përgjithësi kryhet nga programuesi dhe me qëllim të verifikimit që kodi sillet siç është projektuar dhe për të ditur se kur kodi është gati për nivelin e ardhshëm të testimit.

[ citim i nevojshëm ]

 Testimi 
Testimi i softuerit është një hetim empirik, teknik i kryer për t'u ofruar palëve të interesuara informacion në lidhje me cilësinë e softuerit në provë.

Kur përshkruhet veçmas nga ndërtimi, testimi zakonisht kryhet nga inxhinierë testimi ose sigurimi i cilësisë në vend të programuesve që e kanë shkruar atë. Ai kryhet në nivel sistemi dhe konsiderohet një aspekt i cilësisë së softuerit.

 Analiza e programit 

Analiza e programit është procesi i analizimit të programeve kompjuterike në lidhje me një aspekt të tillë si performanca, qëndrueshmëria dhe siguria.

 Mirëmbajtja 
Mirëmbajtja e softuerit i referohet mbështetjes së softuerit pas lëshimit. Mund të përfshij, por nuk kufizohet në: korrigjimin e gabimeve, optimizimin, fshirjen e veçorive të papërdorura dhe të hedhura, dhe përmirësimin e veçorive ekzistuese.

Zakonisht, mirëmbajtja zë 40% deri në 80% të kostos së projektit.

 Arsimi 
Njohja e programimit kompjuterik është një parakusht për t'u bërë inxhinier softuerësh. Në vitin 2004, Shoqëria Kompjuterike IEEE prodhoi SWEBOK, i cili është botuar si Raport Teknik ISO/IEC 1979:2005, duke përshkruar tërësinë e njohurive që ata rekomandojnë të zotërohen nga një inxhinier i diplomuar softuerësh me përvojë katërvjeçare. Shumë inxhinierë softuerësh hyjnë në profesion duke marrë një diplomë universitare ose duke u trajnuar në një shkollë profesionale. Një kurrikul standarde ndërkombëtare për diploma universitare të inxhinierisë softuerike u përcaktua nga Task Forca e Përbashkët për Kurrikulat e Informatikës së Shoqërisë Kompjuterike IEEE dhe Shoqatës për Makineri Kompjuterike dhe u përditësua në 2014. Një numër universitetesh kanë programe të diplomës për Inxhinieri Softuerësh; , kishte 244 programe në kampus Bachelor të Inxhinierisë Softuerike, 70 programe Online, 230 programe të nivelit Master, 41 programe të nivelit të doktoraturës dhe 69 programe të nivelit të certifikatës në Shtetet e Bashkuara.

Përveç arsimit universitar, shumë kompani sponsorizojnë praktika për studentët që dëshirojnë të ndjekin karrierë në teknologjinë e informacionit. Këto praktika mund ta prezantojnë studentin me detyrat e botës reale që inxhinierët tipik të softuerit hasin çdo ditë. Përvoja e ngjashme mund të fitohet përmes shërbimit ushtarak në inxhinieri softuerike.

 Programet e diplomës për inxhinieri softuerike 
Gjysma e të gjithë praktikuesve sot kanë diploma në shkenca kompjuterike, sisteme informacioni ose teknologji informacioni .[ citim i nevojshëm ] Një numër i vogël, por në rritje i praktikantëve kanë diploma të inxhinierisë softuerike. Në vitin 1987, Departamenti i Informatikës në Imperial College London prezantoi diplomën e parë trevjeçare në botë për inxhinieri softuerike; në vitin e ardhshëm, Universiteti i Sheffield krijoi një program të ngjashëm. Në vitin 1996, Instituti i Teknologjisë Rochester themeloi programin e parë të diplomës për inxhinieri softuerike në Shtetet e Bashkuara; megjithatë, ajo nuk mori akreditimin ABET deri në vitin 2003, të njëjtin vit me Universitetin Rice, Universitetin Clarkson, Shkollën e Inxhinierisë Milwaukee dhe Universitetin Shtetëror të Mississippi . Në vitin 1997, Kolegji i Teknologjisë PSG në Coimbatore, Indi ishte i pari që filloi një diplomë pesëvjeçare të integruar Master Shkencor në Inxhinieri Softuerësh.

Që atëherë, diploma universitare të inxhinierisë softuerike janë krijuar në shumë universitete. Një kurrikulë standarde ndërkombëtare për diploma universitare të inxhinierisë softuerike, SE2004, u përcaktua nga një komitet drejtues midis 2001 dhe 2004 me financim nga Shoqata për Makineri Kompjuterike dhe Shoqëria Kompjuterike IEEE . , rreth 50 universitete në SHBA ofrojnë diploma të inxhinierisë softuerike, të cilat mësojnë parimet dhe praktikat e shkencave kompjuterike dhe inxhinierisë. Diploma e parë master në inxhinieri softuerike u krijua në Universitetin e Seattle në 1979. Që atëherë, diploma të diplomuara për inxhinieri softuerike janë vënë në dispozicion nga shumë universitete të tjera. Po kështu në Kanada, Bordi Kanadez i Akreditimit të Inxhinierisë (CEAB) i Këshillit Kanadez të Inxhinierëve Profesionistë ka njohur disa programe të inxhinierisë softuerike.

Në vitin 1998, Shkolla Postdiplomike Detare e SHBA-së (NPS) themeloi programin e parë të doktoraturës në Inxhinieri Softuerike në botë.[ citim i nevojshëm ] Për më tepër, shumë diploma të avancuara në internet në Inxhinieri Softuerësh janë shfaqur si diploma Master i Shkencave në Inxhinieri Softuerësh (MSE) e ofruar përmes Departamentit të Shkencave Kompjuterike dhe Inxhinierisë në Universitetin Shtetëror të Kalifornisë, Fullerton . Steve McConnell mendon se për shkak se shumica e universiteteve mësojnë shkenca kompjuterike në vend të inxhinierisë softuerike, ka mungesë të inxhinierëve të vërtetë softuerësh. Universiteti ETS (École de technologie supérieure) dhe UQAM (Université du Québec à Montréal) u mandatuan nga IEEE për të zhvilluar Trupin e Njohurive të Inxhinierisë së Softuerit ( SWEBOK ), i cili është bërë një standard ISO që përshkruan trupin e njohurive të mbuluara nga një inxhinier softuerësh.

 Profesioni 
Kërkesat ligjore për licencimin ose certifikimin e inxhinierëve profesionistë të softuerit ndryshojnë në mbarë botën. Në MB, nuk ka asnjë kërkesë licencimi ose ligjore për të marrë ose përdorur titullin e punës së inxhinierëve të softuerit. Në disa zona të Kanadasë, si Alberta, British Columbia, Ontario,  dhe Quebec, inxhinierët e softuerit mund të mbajnë përcaktimin Professional Engineer (P.Eng) dhe/ose përcaktimin Professional i Sistemeve të Informacionit (ISP). Në Evropë, Inxhinierët e Softuerit mund të marrin titullin profesional Inxhinier Evropian (EUR ING). Inxhinierët e Softuerit gjithashtu mund të kualifikohen profesionalisht si Inxhinier i Kartës përmes Shoqërisë Britanike të Kompjuterëve.

Në Shtetet e Bashkuara, NCEES filloi të ofroj një provim Inxhinieri Profesional për Inxhinieri Softuerësh në 2013, duke lejuar kështu që Inxhinierët e Softuerit të licencohen dhe të njihen. NCEES përfundoi provimin pas prillit 2019 për shkak të mungesës së pjesëmarrjes. Licencimi i detyrueshëm aktualisht është ende i debatuar gjerësisht dhe perceptohet si i diskutueshëm.

Shoqëria e Kompjuterëve IEEE dhe ACM, dy organizatat kryesore profesionale me bazë në SHBA të inxhinierisë softuerike, publikojnë udhëzues për profesionin e inxhinierisë softuerike. Udhëzuesi i IEEE për Trupin e Njohurive të Inxhinierisë Softuerike – Versioni 2004, ose SWEBOK, përcakton fushën dhe përshkruan njohuritë që IEEE pret që një inxhinier softuerësh praktikues të ketë. Versioni më aktual është SWEBOK v4. IEEE gjithashtu shpall një "Kodi i Etikës së Inxhinierisë Softuerike".

 Punësimi 
Ka rreth 26.9 milionë inxhinierë profesionistë softuerësh në botë që nga viti 2022, nga 21 milionë në 2016.

Shumë inxhinierë softuerësh punojnë si punonjës ose kontraktorë. Inxhinierët e softuerit punojnë me biznese, agjenci qeveritare (civile ose ushtarake) dhe organizata jofitimprurëse. Disa inxhinierë softuerësh punojnë për veten e tyre si përkthyes të pavarur . Disa organizata kanë specialistë për të kryer secilën nga detyrat në procesin e zhvillimit të softuerit . Organizatat e tjera kërkojnë që inxhinierët e softuerit të bëjnë shumë ose të gjitha. Në projektet e mëdha, njerëzit mund të specializohen vetëm në një rol. Në projekte të vogla, njerëzit mund të plotësojnë disa ose të gjitha rolet në të njëjtën kohë. Shumë kompani punësojnë praktikantë, shpesh studentë të universitetit ose kolegjit gjatë një pushimi veror, ose të jashtëm. Specializimet përfshijnë analistët, arkitektët, zhvilluesit, testuesit, mbështetjen teknike, analistët e programeve të mesme, menaxherët e projekteve, menaxherët e produkteve softuerike, edukatorët dhe studiuesit .

Shumica e inxhinierëve dhe programuesve të softuerit punojnë 40 orë në javë, por rreth 15% e inxhinierëve të softuerit dhe 11% e programuesve punonin më shumë se 50 orë në javë në vitin 2008. Lëndimet e mundshme në këto profesione janë të mundshme, sepse ashtu si punëtorët e tjerë që kalojnë periudha të gjata të ulur para një terminali kompjuteri duke shtypur në tastierë, inxhinierët dhe programuesit janë të ndjeshëm ndaj tendosjes së syve, shqetësimit të shpinës, trombozës, obezitetit dhe problemeve të duarve dhe kyçeve të kyçit të dorës sindromi i tunelit.

 Shtetet e Bashkuara 
Byroja Amerikane e Statistikave të Punës (BLS) numëroi 1,365,500 zhvillues softuerësh që mbanin punë në SHBA në 2018. Për shkak të risive të tij relative si fushë studimi, arsimi formal në inxhinierinë e softuerit shpesh mësohet si pjesë e një kurrikule të shkencave kompjuterike dhe shumë inxhinierë softuerësh mbajnë diploma të shkencave kompjuterike. BLS vlerëson nga viti 2023 në 2033 se inxhinieria e softuerit kompjuterik do të rritet me 17%. Kjo është më pak nga vlerësimi i BLS nga 2022 në 2032 prej 25% për inxhinierinë e softuerit. Dhe, është më poshtë nga vlerësimi i tyre 30% 2010 deri në 2020 BLS. Për shkak të kësaj tendence, rritja e vendeve të punës mund të mos jetë aq e shpejtë sa gjatë dekadës së fundit, pasi punët që do të kishin shkuar për inxhinierët e softuerëve kompjuterikë në Shtetet e Bashkuara, në vend të kësaj do t'u jepeshin inxhinierëve të programeve kompjuterike në vende të tilla si India dhe vende të tjera të huaja. Përveç kësaj, BLS Job Outlook për Programuesit Kompjuterikë, Byroja e Statistikave të Punës në SHBA (BLS) Occupational Outlook parashikon një rënie prej -7% nga 2016 në 2026, një rënie të mëtejshme prej -9% nga 2019 në 2029, një rënie prej – 10% nga 2021 në 2031. dhe më pas një rënie prej -11% nga 2022 në 2032. Meqenëse programimi kompjuterik mund të bëhet nga kudo në botë, kompanitë ndonjëherë punësojnë programues në vende ku pagat janë më të ulëta. Për më tepër, raporti i grave në shumë fusha softuerike ka qenë gjithashtu në rënie gjatë viteve në krahasim me fusha të tjera inxhinierike. Pastaj ekziston shqetësimi shtesë se përparimet e fundit në Inteligjencën Artificiale mund të ndikojnë në kërkesën për gjeneratat e ardhshme të Inxhinierëve të Softuerit. Megjithatë, kjo prirje mund të ndryshoj ose të ngadalësohet në të ardhmen pasi shumë inxhinierë aktualë të softuerit në tregun amerikan ikin nga profesioni ose plaken nga tregu në dekadat e ardhshme.

 Certifikimi 
Instituti i Inxhinierisë së Softuerit ofron çertifikime për tema specifike si siguria, përmirësimi i procesit dhe arkitektura e softuerit . IBM, Microsoft dhe kompani të tjera gjithashtu sponsorizojnë provimet e tyre të certifikimit. Shumë programe të certifikimit të TI-së janë të orientuara drejt teknologjive specifike dhe menaxhohen nga shitësit e këtyre teknologjive. Këto programe certifikimi janë të përshtatura për institucionet që do të punësonin njerëz që përdorin këto teknologji.

Në Mbretërinë e Bashkuar Britanike, Shoqëria Britanike e Kompjuterëve ka zhvilluar një certifikim profesional të njohur ligjërisht të quajtur Chartered IT Professional (CITP), i disponueshëm për anëtarët plotësisht të kualifikuar ( MBCS ). Inxhinierët e softuerit mund të kualifikohen për anëtarësim në Shoqërinë Britanike të Kompjuterëve ose Institucionin e Inxhinierisë dhe Teknologjisë dhe kështu të kualifikohen për t'u konsideruar për statusin e Inxhinierit të Kartës përmes secilit prej këtyre institucioneve. Në Kanada, Shoqëria Kanadeze e Përpunimit të Informacionit ka zhvilluar një certifikim profesional të njohur ligjërisht të quajtur Informativ Systems Professional (ISP) . Në Ontario, Kanada, Inxhinierët e Softuerit që diplomohen nga një program i akredituar i Bordit Kanadez të Akreditimit të Inxhinierisë (CEAB), përfundojnë me sukses Provimin e Praktikës Profesionale të PEO ( Professional Engineers Ontario ) (PPE) dhe kanë të paktën 48 muaj përvojë të pranueshme inxhinierike, kanë të drejtë të licencohen përmes Inxhinierëve Profesionistë në Ontario dhe mund të bëhen Inxhinierë Profesionistë P. Ing. Megjithatë, PEO nuk njeh asnjë edukim online ose në distancë; dhe nuk i konsideron programet e Shkencave Kompjuterike si ekuivalente me programet e inxhinierisë softuerike pavarësisht nga mbivendosja e jashtëzakonshme midis të dyjave. Kjo ka ndezur polemika dhe një luftë certifikimi. Gjithashtu ka mbajtur jashtëzakonisht të ulët numrin e mbajtësve të P.Eng për këtë profesion. Shumica dërrmuese e profesionistëve që punojnë në këtë fushë kanë një diplomë në CS, jo në SE. Duke pasur parasysh rrugën e vështirë të certifikimit për mbajtësit e diplomave jo-SE, shumica nuk shqetësohen kurrë për të ndjekur licencën.

 Ndikimi i globalizimit 
Ndikimi fillestar i kontraktimit dhe kostoja relativisht më e ulët e burimeve njerëzore ndërkombëtare në vendet në zhvillim të botës së tretë çoi në një migrim masiv të aktiviteteve të zhvillimit të softuerit nga korporatat në Amerikën e Veriut dhe Evropë në Indi dhe më vonë: Kina, Rusia dhe vende të tjera në zhvillim. Kjo qasje kishte disa të meta, kryesisht diferenca e distancës/zonës kohore që pengoi ndërveprimin njerëzor midis klientëve dhe zhvilluesve dhe transferimin masiv të punës. Kjo pati një ndikim negativ në shumë aspekte të profesionit të inxhinierisë softuerike. Për shembull, disa studentë në botën e zhvilluar shmangin arsimin në lidhje me inxhinierinë softuerike për shkak të frikës së kontraktimit në det të hapur (importimi i produkteve ose shërbimeve softuerike nga vende të tjera) dhe për t'u zhvendosur nga punëtorët e huaj të vizave . Megjithëse statistikat aktualisht nuk tregojnë një kërcënim për vetë inxhinierinë e softuerit; një karrierë e lidhur, programimi kompjuterik duket se është prekur. Megjithatë, aftësia për të shfrytëzuar me zgjuarsi burimet në det të hapur dhe afër bregut nëpërmjet rrjedhës së punës pas diellit ka përmirësuar aftësinë e përgjithshme operacionale të shumë organizatave. Kur amerikanët e veriut largohen nga puna, aziatikët sapo vijnë në punë. Kur aziatikët largohen nga puna, evropianët vijnë në punë. Kjo siguron një aftësi të vazhdueshme për të pasur mbikëqyrje njerëzore mbi proceset kritike për biznesin 24 orë në ditë, pa paguar kompensim jashtë orarit ose pa ndërprerë një burim kryesor njerëzor, modelet e gjumit.

Ndërsa kontraktimi global ka disa avantazhe, zhvillimi global – dhe përgjithësisht i shpërndarë – mund të përballet me vështirësi serioze që rrjedhin nga distanca midis zhvilluesve. Kjo është për shkak të elementeve kyç të kësaj distancë, të cilat janë identifikuar si gjeografike, kohore, kulturore dhe komunikuese (që përfshin përdorimin e gjuhëve dhe dialekteve të ndryshme të anglishtes në vende të ndryshme). Kërkime janë kryer në fushën e zhvillimit global të softuerit gjatë 15 viteve të fundit dhe është botuar një trup i gjerë punimesh përkatëse që theksojnë përfitimet dhe problemet që lidhen me këtë aktivitet kompleks. Ashtu si me aspektet e tjera të inxhinierisë softuerike, kërkimet janë në vazhdim në këtë dhe fusha të lidhura.

 Çmimet 
Ka çmime të ndryshme në fushën e inxhinierisë softuerike

 Çmimi ACM-AAAI Allen Newell – SHBA. Ky çmim jepet për kontributet gjatë karrierës që kanë gjerësi brenda shkencave kompjuterike, ose që lidhin shkencat kompjuterike me disiplina të tjera. Çmimi BCS Lovelace. Ky çmim jepet për individët që kanë dhënë kontribute të jashtëzakonshme në kuptimin ose përparimin e fushës së informatikës.  Çmimi ACM SIGSOFT për Kërkime të Shkëlqyera, jepet për individë që kanë bërë "kontribute kërkimore të rëndësishme dhe të qëndrueshme në teorinënë ose praktikë e inxhinierisë softuerike."

 Më shumë Çmime ACM SIGSOFT.

 Çmimi Codie, një çmim vjetor i lëshuar nga Shoqata e Industrisë së Softuerit dhe Informacionit për përsosmërinë në zhvillimin e softuerit brenda industrisë së softuerit.

 Çmimin Harlan Mills për "kontributet në teorinë dhe praktikën e shkencave të informacionit, të fokusuara në inxhinierinë e softuerit".

 Çmimi i letrës më me ndikim ICSE.

 Çmimi Jolt, gjithashtu për industrinë e softuerit.

 Çmimi Stevens dhënë në kujtim të Wayne Stevens.

 Kritika 
Disa kërkojnë licencimin, certifikimin dhe krijimin e grupeve të njohurive të kodifikuara si mekanizma për të shpërndarë njohuritë inxhinierike dhe për të avancuar fushën.

Disa pretendojnë se koncepti i inxhinierisë së softuerit është kaq i ri saqë shpesh kuptohet gabimisht, dhe interpretohet gabim gjerësisht, përfshirë në librat shkollorë të inxhinierisë së softuerit, artikuj dhe midis komuniteteve të programuesve dhe mjeshtrave.

Disa pretendojnë se një çështje thelbësore me inxhinierinë e softuerit është se qasjet e saj nuk janë mjaft empirike, pasi verifikimi i këtyre qasjeve në botën reale është zakonisht i munguar ose shumë i kufizuar, dhe për këtë arsye inxhinieria e softuerit shpesh interpretohet gabimisht si diçka e mundshme vetëm në një "mjedis teorik."

 Shihni gjithashtu 

 Studioni dhe praktikoni 

 Shkenca kompjuterike
 Inxhinieri të të dhënave
 Zhvillim softueri
 Inxhinieri të lëshimit
 Bachelor i Shkencave në Teknologjinë e Informacionit
 Bachelor në Inxhinieri Softueri

 Rolet 

 Programuesi
 Analisti i sistemeve
 Arkitekti i sistemeve

 Referime 

Kategoria:Shkencë kompjuterike