Inafasiriwa moja kwa moja kutoka kwa Wikipedia ya Kiingereza na Tafsiri ya Google

Uhandisi wa programu

Programu ya wahandisi wa programu kwa Wikimedia Foundation

Uhandisi wa programu ni matumizi ya uhandisi kwa maendeleo ya programu kwa njia ya utaratibu. [1] [2] [3]

Yaliyomo

Ufafanuzi

Ufafanuzi rasmi wa uhandisi wa programu ni pamoja na:

  • "matumizi ya utaratibu wa ujuzi wa kisayansi na teknolojia, mbinu, na ujuzi wa kubuni, utekelezaji, upimaji, na nyaraka za programu" - Ofisi ya Takwimu za Kazi- IEEE Systems na uhandisi wa programu - Msamiati [4]
  • "Matumizi ya njia ya utaratibu, ya nidhamu, ya kuzingatia, maendeleo, operesheni, na matengenezo ya programu " - IEEE Standard Glossary ya Terminology Engineering Software [5]
  • "nidhamu ya uhandisi inayohusika na vipengele vyote vya uzalishaji wa programu" - Ian Sommerville [6]
  • "kuanzishwa na matumizi ya kanuni za ubunifu sauti ili kupata kiuchumi programu ambayo inaaminika na inafanya kazi kwa ufanisi kwenye mashine halisi" - Fritz Bauer [7]

Historia

Wakati kompyuta za kwanza za digital zilipoonekana mwanzoni mwa miaka ya 1940, [8] maelekezo ya kuwafanya kazi yameunganishwa kwenye mashine hiyo. Wataalamu waligundua haraka kwamba kubuni hii haikuwa rahisi na ilikuja na "usanifu wa mpango wa kuhifadhiwa" au usanifu wa Neumann . Hivyo mgawanyiko kati ya "vifaa" na "programu" ulianza na ujumla kutumika kukabiliana na utata wa kompyuta.

Lugha za programu zinaanza kuonekana mwanzoni mwa miaka ya 1950 [9] na hili pia lilikuwa hatua nyingine kubwa katika uondoaji. Lugha kubwa kama vile Fortran , ALGOL , na COBOL zilifunguliwa mwishoni mwa miaka ya 1950 ili kukabiliana na matatizo ya sayansi, algorithm, na biashara kwa mtiririko huo. Edsger W. Dijkstra aliandika karatasi yake ya kibinadamu, "Nenda kwa Taarifa Ilifikiriwa Kuwa Mbaya", [10] mwaka wa 1968 na David Parnas alianzisha dhana kuu ya usahihi na habari ya kujificha mwaka wa 1972 [11] kusaidia wasanidi programu kukabiliana na utata unaoongezeka wa programu mifumo .

Msingi wa neno "uhandisi wa programu" umehusishwa na vyanzo tofauti, ikiwa ni pamoja na matumizi ya Margaret Hamilton ya muda wakati wa mpango wa Apollo . [12] Hamilton alitumia muda huo kutoa uhalali zaidi kwa kazi yeye na waandishi wengine waliokuwa wanafanya kwa ajili ya mradi huo. [13] Neno "uhandisi wa programu" ilitumiwa mwaka wa 1968 kama kichwa cha mkutano wa kwanza wa dunia juu ya uhandisi wa programu, kufadhiliwa na kuwezeshwa na NATO. Mkutano huo ulihudhuriwa na wataalamu wa kimataifa wa programu ambao walikubaliana na kufafanua mazoea bora ya programu iliyowekwa katika matumizi ya uhandisi. Matokeo ya mkutano huo ni ripoti inayoelezea jinsi programu inapaswa kuendelezwa. Ripoti ya awali inapatikana kwa umma. [14]

Nidhamu ya uhandisi wa programu iliundwa ili kushughulikia ubora duni wa programu, kupata miradi inayozidi muda na bajeti chini ya udhibiti, na kuhakikisha kwamba programu imejengwa kwa usahihi, kwa ukali, kupima, kwa wakati, juu ya bajeti, na ndani ya vipimo. [15] Uhandisi tayari unashughulikia masuala haya yote, kwa hivyo kanuni sawa zinazotumiwa katika uhandisi zinaweza kutumika kwenye programu. Uhaba mkubwa wa utendaji bora wa programu wakati huo ulionekana kama " mgogoro wa programu ". [16] [17] [18]

Barry W. Boehm aliandika maendeleo kadhaa muhimu kwenye shamba katika kitabu chake cha 1981, 'Engineering Engineering Economics'. [19] Hizi zinajumuisha Mfano wake wa Gharama ya Kujenga ( COCOMO ), ambayo inahusu jitihada za maendeleo ya programu kwa ajili ya mpango, katika miaka ya miaka ya mtu, kwa mstari wa kanuni (SLOC). Kitabu hiki kinazingatia miradi ya programu ya sitini na tatu na huhitimisha gharama ya kurekebisha makosa inakua kama mradi unaendelea kuelekea matumizi ya shamba. Kitabu pia kinasema kwamba dereva muhimu wa programu ya gharama ni uwezo wa timu ya maendeleo ya programu.

Mnamo mwaka wa 1984, Taasisi ya Uhandisi ya Programu (SEI) ilianzishwa kama kituo cha utafiti na maendeleo ya kifedha iliyokamilika na shirikisho katika Chuo Kikuu cha Carnegie Mellon huko Pittsburgh, Pennsylvania, Marekani. Watts Humphrey ilianzisha Programu ya Programu ya Programu ya SEI, yenye lengo la kuelewa na kusimamia mchakato wa uhandisi wa programu. Kitabu chake cha 1989, Kusimamia Programu ya Programu, [20] inasema kuwa Mchakato wa Maendeleo ya Programu unaweza na unapaswa kudhibitiwa, kupimwa, na kuboreshwa. Ngazi za Ukomavu za Utaratibu zilizotolewa zingekuwa Mfano wa Ukomavu wa Mfano wa Maendeleo kwa ajili ya Maendeleo (CMMi-DEV), ambayo imeelezea jinsi Serikali ya Marekani inavyoonekana uwezo wa timu ya maendeleo ya programu.

Kisasa, ambazo kwa kawaida hukubalika kwa uhandisi wa programu zimekusanywa na kamati ndogo ndogo ya ISO / IEC JTC 1 / SC 7 na kuchapishwa kama Mwili wa Uhandisi wa Mfumo wa Maarifa (SWEBOK). [21]

Subdisciplines

Uhandisi wa programu inaweza kugawanywa katika vidokezo [22] . Baadhi yao ni:

  • Mahitaji ya Programu [1] [22] (au Mahitaji ya uhandisi ): Kuomba, uchambuzi, vipimo, na kuthibitisha mahitaji ya programu .
  • Programu ya kubuni : [1] [22] Mchakato wa kufafanua usanifu, vipengele, interfaces, na sifa nyingine za mfumo au sehemu. Inafafanuliwa pia kama matokeo ya mchakato huo.
  • Ujenzi wa Programu : [1] [22] Uumbaji wa kina wa kazi, programu yenye maana kupitia mchanganyiko wa coding, ukaguzi, upimaji wa kitengo , upimaji wa ushirikiano , na kupotosha .
  • Upimaji wa Programu : [1] [22] Uchunguzi wa kiufundi, wa kiufundi uliofanywa kuwapa wadau habari juu ya ubora wa bidhaa au huduma chini ya mtihani.
  • Programu ya matengenezo : [1] [22] Jumla ya shughuli zinazohitajika kutoa msaada wa gharama nafuu kwa programu.
  • Usimamizi wa Programu ya Configuration : [1] [22] Utambulisho wa muundo wa mfumo kwa pointi tofauti kwa wakati kwa madhumuni ya kusimamia kwa udhibiti mabadiliko katika usanidi, na kudumisha uadilifu na ufuatiliaji wa usanidi katika mzunguko wa maisha ya mfumo.
  • Usimamizi wa uhandisi wa programu : [1] [22] Utekelezaji wa shughuli za usimamizi-kupanga, kuratibu, kupimia, kufuatilia, kudhibiti, na kutoa taarifa-kuhakikisha kuwa maendeleo na matengenezo ya programu ni ya utaratibu, ya nidhamu, na yanayohesabiwa.
  • Mchakato wa maendeleo ya programu : [1] [22] ufafanuzi, utekelezaji, tathmini, kipimo, usimamizi, mabadiliko, na kuboresha mchakato wa mzunguko wa programu yenyewe.
  • Mifano ya uhandisi na mbinu za uhandisi [22] zinaweka muundo juu ya uhandisi wa programu na lengo la kufanya shughuli hiyo ya utaratibu, ya kurudiwa, na hatimaye inafaa zaidi
  • Ubora wa Programu [22]
  • Programu ya uhandisi wa uhandisi [22] inahusika na ujuzi, ujuzi, na mitazamo ambazo wahandisi wa programu wanapaswa kumiliki programu za uhandisi katika namna ya kitaaluma, ya wajibu, na ya kimaadili
  • Uchumi wa uhandisi wa programu [22] ni kuhusu kufanya maamuzi kuhusiana na uhandisi wa programu katika muktadha wa biashara
  • Msingi wa kompyuta [22]
  • Msingi wa hisabati [22]
  • Msingi wa Uhandisi [22]

Elimu

Ujuzi wa programu za kompyuta ni sharti ya kuwa mhandisi wa programu. Mwaka wa 2004, IEEE Computer Society ilizalisha SWEBOK , iliyochapishwa kama ISO / IEC Technical Report 1979: 2004, kuelezea mwili wa ujuzi ambao wanapendekeza kuwa na ujuzi wa mhandisi wa programu aliyehitimu na uzoefu wa miaka minne. [23] Wahandisi wengi wa programu huingia katika taaluma kwa kupata shahada ya chuo kikuu au mafunzo katika shule ya ufundi. Mtaala wa kiwango cha kimataifa wa digrii za digrii za uhandisi wa shahada ya shahada ulifafanuliwa na CCSE , na kuongezwa mwaka 2004. [24] Vyuo vikuu kadhaa vina programu za shahada ya uhandisi wa Programu; kama ya 2010 , kulikuwa na programu 244 za programu za uhandisi wa kampasi, programu 70 za mtandaoni, mipango ya ngazi ya Masters 230, mipango 41 ya ngazi ya Daktari, na mipango 69 ya kiwango cha Cheti nchini Marekani. [25]

Mbali na elimu ya chuo kikuu, makampuni mengi yadhamini mafunzo kwa wanafunzi wanaotaka kuendeleza kazi katika teknolojia ya habari. Mazoezi haya yanaweza kumwonyesha mwanafunzi kazi za kweli za ulimwengu halisi ambazo wahandisi wa kawaida hukutana kila siku. Uzoefu sawa unaweza kupatikana kupitia huduma ya kijeshi katika uhandisi wa programu.

Taaluma

Mahitaji ya kisheria kwa ajili ya leseni au vyeti ya wahandisi wa programu za kitaalamu hutofautiana duniani kote. Uingereza, hakuna leseni au mahitaji ya kisheria ya kudhani au kutumia jina la kazi ya Engine Engineer. Katika maeneo mengine ya Kanada, kama vile Alberta, British Columbia, Ontario, [26] na Quebec, wahandisi wa programu wanaweza kushikilia jina la Mhandisi wa Mtaalamu (P.Eng) na / au jina la Usimamizi wa Habari (ISP). Kanada, kuna sharti la kisheria la kuwa na P.Eng wakati mtu anataka kutumia jina "mhandisi" au kufanya "uhandisi wa programu". Katika Ulaya, Wahandisi wa Programu wanaweza kupata Mhandisi wa Ulaya (EUR ING) cheo cha kitaaluma.

Umoja wa Mataifa, kuanzia mwaka 2013 hutoa uchunguzi wa Mhandisi wa NCEES Professional kwa Uhandisi wa Programu, na hivyo kuruhusu Wahandisi wa Programu kuwa leseni na kutambuliwa. [27] Leseni ya lazima kwa sasa bado imejadiliwa sana, na inaonekana kuwa ni ya utata. Katika sehemu fulani za Marekani kama vile Texas, matumizi ya Mhandisi wa muda huwekwa na sheria na kuhifadhiwa tu kwa matumizi ya watu wanao na leseni ya Mhandisi wa Mtaalam .

IEEE Computer Society na ACM , mashirika mawili ya kitaaluma ya kitaaluma ya uhandisi wa programu, kuchapisha viongozi kwa taaluma ya uhandisi wa programu. Mwongozo wa IEEE wa Uhandisi wa Programu ya Uhandisi - 2004 Version , au SWEBOK , unafafanua shamba na inaelezea ujuzi wa IEEE inatarajia kuwa mhandisi wa programu anayefanya. Sasa SWEBOK v3 ya sasa ni toleo la updated na ilitolewa mwaka wa 2014. [28] IEEE pia inatangaza "Kanuni za Uhandisi wa Maadili ya Programu". [29]

ajira

Mnamo Novemba 2004, Ofisi ya Takwimu ya Kazi ya Marekani ilihesabu wahandisi wa programu 760,840 wanaofanya kazi nchini Marekani ; wakati huo huo kulikuwa na watendaji milioni 1.4 walioajiriwa nchini Marekani katika taaluma nyingine zote za uhandisi. [30] Kutokana na upya wake wa jamaa kama shamba la utafiti, elimu ya kawaida katika uhandisi wa programu mara nyingi hufundishwa kama sehemu ya mtaala wa sayansi ya kompyuta, na wahandisi wengi wa programu wanashikilia digrii za sayansi za kompyuta na hawana ujuzi wowote wa uhandisi. [31]

Wahandisi wengi wa programu hufanya kazi kama wafanyakazi au makandarasi. Wahandisi wa programu hufanya kazi na biashara, mashirika ya serikali (raia au kijeshi), na mashirika yasiyo ya faida. Baadhi ya wahandisi wa programu wanajitahidi wenyewe kama vijiti . Mashirika mengine yana wataalamu wa kufanya kila kazi katika mchakato wa maendeleo ya programu . Mashirika mengine yanahitaji wahandisi wa programu kufanya mengi au yote. Katika miradi mikubwa, watu wanaweza utaalam katika jukumu moja tu. Katika miradi midogo, watu wanaweza kujaza majukumu kadhaa au yote kwa wakati mmoja. Maalum ni pamoja na: katika sekta ( wachambuzi , wasanifu , watengenezaji , majaribio , msaada wa kiufundi , wachunguzi wa katikati , mameneja ) na katika masomo ( walimu , watafiti ).

Wengi wahandisi na programu wanafanya kazi kwa masaa 40 kwa wiki, lakini asilimia 15 ya wahandisi wa programu na asilimia 11 ya waandaaji walifanya kazi zaidi ya saa 50 kwa wiki mwaka 2008. Majeraha katika kazi hizi ni ya kawaida. Hata hivyo, kama wafanya kazi wengine ambao hutumia muda mrefu mbele ya kuandika kompyuta kwenye kibodi, wahandisi na waandaaji wanahusika na eyestrain, usumbufu wa nyuma, na matatizo ya mkono na mkono kama vile ugonjwa wa kansa ya carpal . [32]

Mtazamo wa shamba unaonekana mkali kulingana na Money Magazine na Salary.com , ambayo iliashiria Mhandisi wa Programu kama kazi bora nchini Marekani mwaka 2006. [33] Mwaka 2012, uhandisi wa programu uliwekwa tena kama kazi bora nchini Marekani, hii wakati na CareerCast.com. [34]

Vyeti

Taasisi ya Uhandisi ya Programu hutoa vyeti juu ya mada maalum kama usalama , mchakato wa kuboresha na usanifu wa programu . [35] Apple , IBM , Microsoft na makampuni mengine pia hudhamini mitihani yao ya vyeti. Programu nyingi za vyeti vya IT zinategemea teknolojia maalum, na zinaendeshwa na wauzaji wa teknolojia hizi. [36] Programu hizi za vyeti zinafaa kulingana na taasisi zinazoajiri watu wanaotumia teknolojia hizi.

Vyeti kamili ya ujuzi wa uhandisi wa jumla wa programu hupatikana kupitia jamii mbalimbali za kitaaluma. Kuanzia 2006 , IEEE imethibitisha wataalam wa programu 575 kama Programu ya Maendeleo ya Programu ya Programu (CSDP). [37] Mwaka 2008 waliongeza vyeti vya ngazi ya kuingia inayojulikana kama Msaidizi wa Maendeleo ya Programu (CSDA). [38] ACM ilikuwa na mpango wa vyeti wa kitaaluma mapema miaka ya 1980, [ kinachohitajika ] ambayo imekoma kwa sababu ya ukosefu wa maslahi. ACM ilichunguza uwezekano wa vyeti wa kitaaluma wa wahandisi wa programu mwishoni mwa miaka ya 1990, lakini hatimaye aliamua kuwa vyeti vile havifaa kwa ajili ya mazoezi ya kitaaluma ya viwanda ya uhandisi wa programu. [39]

Uingereza Uingereza Taasisi ya Kompyuta ya Uingereza imetengeneza vyeti ya kitaaluma ya kisheria inayoitwa Chartered IT Professional (CITP) , inapatikana kwa wanachama wenye ujuzi kamili ( MBCS ). Wahandisi wa programu wanaweza kustahili kuwa wanachama wa Taasisi ya Uhandisi na Teknolojia na hivyo kustahili Hali ya Mhandisi Chartered. Nchini Canada, Canada Information Processing Society imeanzisha vyeti vya kitaaluma ambavyo vinatambuliwa kisheria inayoitwa Information Systems Professional (ISP) . [40] Katika Ontario, Canada, Wahandisi wa Programu ambao wanahitimu kutoka kwenye mpango wa vibali wa Uhandisi wa Uhandisi wa Canada (CEAB) , wamekamilisha kwa ufanisi Uchunguzi wa Mazoezi wa PEO ( Wahandisi Wataalamu wa Ontario ) Mkaguzi wa Mazoezi (PPE) na kuwa na angalau miezi 48 ya uzoefu wa uhandisi wenye kukubalika wanafaa kuidhinishwa kupitia Wahandisi Wataalamu Ontario na inaweza kuwa Wahandisi wa Uhandisi P.Eng. [41] PEO haitambui elimu yoyote ya mtandaoni au umbali hata hivyo; na haufikiria mipango ya Sayansi ya Kompyuta kuwa sawa na mipango ya uhandisi programu pamoja na uingiliano mkubwa kati ya hizo mbili. Hii imesababisha utata na vita vya vyeti. Pia imefanya idadi ya Wamiliki wa P.Eng kwa taaluma ya chini sana. Wengi wa wataalamu wa kazi katika uwanja wanaishi shahada katika CS, si SE. Kutokana na njia ngumu ya vyeti kwa wamiliki wa digrii zisizo za SE, wengi hawana wasiwasi kufuatilia leseni.

Impact ya utandawazi

Athari ya awali ya uhamisho, na gharama ya chini ya rasilimali za kimataifa za binadamu katika kuendeleza nchi tatu za dunia zimesababisha uhamiaji mkubwa wa shughuli za maendeleo ya programu kutoka kwa mashirika ya Amerika ya Kaskazini na Ulaya hadi India na baadaye: China, Urusi, na nchi nyingine zinazoendelea. Njia hii ilikuwa na makosa fulani, hasa tofauti ya umbali / wakatizone ambayo ilizuia ushirikiano wa kibinadamu kati ya wateja na watengenezaji na uhamisho mkubwa wa kazi. Hii ilikuwa na athari mbaya katika nyanja nyingi za teknolojia ya uhandisi wa programu. Kwa mfano, baadhi ya wanafunzi katika dunia iliyoendelea kuepuka elimu kuhusiana na uhandisi wa programu kwa sababu ya hofu ya uuzaji wa nje ya nchi (kuagiza bidhaa za programu au huduma kutoka nchi nyingine) na kuhamishwa na wafanyakazi wa nje wa visa . [42] Ingawa takwimu hazionyesha sasa tishio kwa uhandisi wa programu yenyewe; kazi inayohusiana, programu za kompyuta inaonekana kuwa imeathirika. [44] [44] Hata hivyo, uwezo wa kutumia nguvu rasilimali za pwani za pwani na karibu na pwani kupitia ufuatiliaji wa kazi ya jua umeboresha uwezo wa jumla wa uendeshaji wa mashirika mengi. [45] Wakuu wa Amerika Kaskazini wanapoacha kazi, Waasia wanafika tu kufanya kazi. Wakati Waasai wanapoacha kazi, Wazungu wanafika kufanya kazi. Hii inatoa uwezo wa kuendelea kuwa na uangalizi wa kibinadamu katika michakato muhimu ya biashara 24 masaa kwa siku, bila kulipa fidia ya muda zaidi au kuharibu rasilimali muhimu ya binadamu, mifumo ya usingizi.

Wakati uhamisho wa kimataifa una faida nyingi, uendelezaji wa kimataifa - na kwa ujumla - unaweza kusambazwa katika matatizo makubwa kutokana na umbali kati ya watengenezaji. Hii ni kutokana na vipengele muhimu vya aina hii ya umbali ambayo imetambuliwa kama kijiografia, muda, kiutamaduni na mawasiliano (ambayo ni pamoja na matumizi ya lugha tofauti na lugha za Kiingereza kwa maeneo tofauti). [46] Utafiti umefanyika katika eneo la maendeleo ya programu ya kimataifa zaidi ya miaka 15 iliyopita na mwili mkubwa wa kazi husika iliyochapishwa ambayo inaonyesha faida na matatizo yanayohusiana na shughuli ngumu. Kama ilivyo na mambo mengine ya utafiti wa uhandisi wa programu unaendelea katika maeneo haya na kuhusiana.

Mambo yanayohusiana

Uhandisi wa programu ni sehemu ndogo ya moja kwa moja ya uhandisi na inaingiliana na sayansi ya kompyuta na sayansi ya usimamizi [ citation inahitajika ] . Pia inachukuliwa kama sehemu ya uhandisi wa jumla wa mifumo .

Sayansi ya Kompyuta

Kwa ujumla, uhandisi wa programu inalenga zaidi juu ya mbinu za matumizi ya maendeleo ya programu katika sekta [47] [48] , wakati sayansi ya kompyuta inalenga zaidi juu ya algorithms na nadharia. [49]

Kukabiliana

Zaidi ya ufafanuzi

Ufafanuzi rasmi wa uhandisi wa programu ni:

  • "matumizi ya mbinu ya utaratibu, ya nidhamu, ya kuendeleza, operesheni, na matengenezo ya programu ". [5]
  • "nidhamu ya uhandisi inayohusika na nyanja zote za uzalishaji wa programu" [6]
  • "kuanzishwa na matumizi ya kanuni za ubunifu sauti ili kupata kiuchumi programu ambayo ni ya kuaminika na inafanya kazi kwa ufanisi kwenye mashine halisi" [7]

Neno hilo limetumika chini rasmi:

  • kama neno la kisasa la kisasa kwa ajili ya shughuli mbalimbali ambazo zamani ziliitwa programu ya kompyuta na uchambuzi wa mifumo ; [50]
  • kama muda mrefu kwa nyanja zote za mazoezi ya programu za kompyuta, kinyume na nadharia ya programu za kompyuta, inayoitwa sayansi ya kompyuta ; [51]
  • kama neno linalohusu utetezi wa mbinu maalum ya programu za kompyuta, moja ambayo inasisitiza kuwa itatibiwa kama nidhamu ya uhandisi badala ya sanaa au hila, na inasisitiza utaratibu wa utaratibu uliopendekezwa. [52]

kulaumiwa

Uhandisi wa programu huona watendaji wake kama watu binafsi ambao wanafuata njia za uhandisi zilizoelezwa vizuri za kutatua matatizo. Mbinu hizi zinaelezwa katika vitabu mbalimbali vya uhandisi vya programu na majarida ya utafiti, daima na mazungumzo ya kutabiri, usahihi, hatari ndogo na utaalamu. Mtazamo huu umesababisha wito wa leseni, vyeti na miili ya ujuzi kama mifumo ya kueneza ujuzi wa uhandisi na kukuza shamba.

Ufundi wa programu umependekezwa na kundi la waendelezaji wa programu kama mbadala ambayo inasisitiza ujuzi wa coding na uwajibikaji wa watengenezaji wa programu wenyewe bila taaluma au mtaala wowote unaoamriwa unaosababisha kutatua tatizo la ad-hoc (ufundi) bila uhandisi (ukosefu wa utabiri, usahihi, kutokuwepo kwa hatari, mbinu ni isiyo rasmi na isiyoelezwa vizuri). Manifesto ya Programu ya Usanifu inaongeza Manifesto ya Programu ya Agile [53] na inaonyesha mfano kati ya maendeleo ya kisasa ya programu na mfano wa kujifunza wa Ulaya ya kati.

Uhandisi wa programu huendeleza uhandisi na huchota mfano wa uhandisi, yaani mchakato wa uhandisi, uhandisi wa mradi wa uhandisi, mahitaji ya uhandisi, uhandisi kubuni, ujenzi wa uhandisi, uhalali wa uhandisi. Dhana ni mpya sana ambayo haijulikani, na inaelezewa sana, ikiwa ni pamoja na katika vitabu vya uhandisi vya programu, majarida, na miongoni mwa jumuiya za waandaaji na wahusika.

Moja ya masuala ya msingi katika uhandisi wa programu ni kwamba mbinu zake si za kutosha kwa sababu sababu ya kweli ya uhalali wa mbinu kwa kawaida haipo, au ni mdogo sana na hivyo uhandisi wa programu mara nyingi huelezewa kama inavyowezekana tu katika "mazingira ya kinadharia."

Dijkstra ambaye alianzisha lugha za kompyuta katika karne ya 20 alikanusha mawazo ya "uhandisi wa programu" ambayo ilikuwa imeenea miaka thelathini iliyopita katika miaka ya 1980, akisema kuwa maneno hayo yalikuwa maskini sana kwa kile alichokiita "riwaya radical" la sayansi ya kompyuta :

Haya ya matukio haya yamefanywa chini ya jina "Uhandisi wa Programu". Kama uchumi unaojulikana kama "Sayansi ya Maumivu", uhandisi wa programu lazima ujulikane kama "Adhabu ya Dhiki", adhabu kwa sababu hauwezi hata kufikia lengo lake tangu lengo lake ni kujitegemea. Uhandisi wa programu, bila shaka, hujitokeza kama sababu nyingine inayostahili, lakini hiyo ni eyewash: ikiwa unasoma kwa makini maandiko yake na kuchambua yale wanayotenda kweli, utaona kwamba uhandisi wa programu umekubali kama mkataba wake "Jinsi ya kuandaa kama huwezi . " [54]

Angalia pia

  • Bachelor ya Sayansi katika Teknolojia ya Habari
  • Bachelor ya Uhandisi wa Programu
  • Orodha ya mikutano ya uhandisi ya programu
  • Orodha ya machapisho ya uhandisi wa programu
  • Ufundi wa programu
  • Taasisi ya Engineering Engineering

Vidokezo

  1. ^ a b c d e f g h i Abran et al. 2004 , pp. 1–1
  2. ^ ACM (2007). "Computing Degrees & Careers" . ACM . Retrieved 2010-11-23 .
  3. ^ Laplante, Phillip (2007). What Every Engineer Should Know about Software Engineering . Boca Raton: CRC. ISBN 978-0-8493-7228-5 . Retrieved 2011-01-21 .
  4. ^ Systems and software engineering - Vocabulary , ISO / IEC / IEEE std 24765:2010(E), 2010.
  5. ^ a b IEEE Standard Glossary of Software Engineering Terminology , IEEE std 610.12-1990, 1990.
  6. ^ a b Sommerville, Ian (2007) [1982]. "1.1.2 What is software engineering?". Software Engineering (8th ed.). Harlow, England: Pearson Education. p. 7. ISBN 0-321-31379-8 . Software engineering is an engineering discipline that is concerned with all aspects of software production from the early stages of system specification to maintaining the system after it has gone into use. In this definition, there are two key phrases:
    1. Engineering discipline Engineers make things work. They apply theories, methods and tools where these are appropriate [. . .] Engineers also recognize that they must work to organizational and financial constraints. [. . .]
    2. All aspects of software production Software engineering is not just concerned with the technical processes of software development but also with activities such as software project management and with the development of tools, methods and theories to support software production.

  7. ^ a b "Software Engineering". Information Processing . North-Holland Publishing Co.year = 1972. 71 : 530–538.
  8. ^ Leondes (2002). intelligent systems: technology and applications . CRC Press. p. I-6. ISBN 978-0-8493-1121-5 . 1.4 Computers and a First Glimpse at Al (1940s)
  9. ^ Campbell-Kelly, Martin (April 1982). "The Development of Computer Programming in Britain (1945 to 1955)". IEEE Annals of the History of Computing . 4 (2): 121–139. doi : 10.1109/MAHC.1982.10016 .
  10. ^ Dijkstra, E. W. (March 1968). "Go To Statement Considered Harmful" (PDF) . Communications of the ACM . 11 (3): 147–148. doi : 10.1145/362929.362947 . Retrieved 2009-08-10 .
  11. ^ Parnas, David (December 1972). "On the Criteria To Be Used in Decomposing Systems into Modules" . Communications of the ACM . 15 (12): 1053–1058. doi : 10.1145/361598.361623 . Retrieved 2008-12-26 .
  12. ^ "Margaret Hamilton | Computer History Museum" . www.computerhistory.org . Retrieved 2017-11-18 .
  13. ^ Lawrence,, Snyder,. Fluency with information technology : skills, concepts, & capabilities ([Seventh edition] ed.). NY, NY. ISBN 0134448723 . OCLC 960641978 .
  14. ^ "Software Engineering" (PDF) .
  15. ^ Tedre, Matti (2014). Science of Computing: Shaping a Discipline . CRC Press. ISBN 978-1482217698 .
  16. ^ Sommerville 2008 , p. 26
  17. ^ Peter, Naur; Randell, Brian (7–11 October 1968). Software Engineering: Report of a conference sponsored by the NATO Science Committee (PDF) . Garmisch, Germany: Scientific Affairs Division, NATO . Retrieved 2008-12-26 .
  18. ^ Randell, Brian (10 August 2001). "The 1968/69 NATO Software Engineering Reports" . Brian Randell's University Homepage . The School of the Computer Sciences, Newcastle University . Retrieved 2008-10-11 . The idea for the first NATO Software Engineering Conference, and in particular that of adopting the then practically unknown term "software engineering" as its (deliberately provocative) title, I believe came originally from Professor Fritz Bauer .
  19. ^ Boehm (1981). Software Engineering Economics . Prentice-Hall. ISBN 0-13-822122-7 .
  20. ^ Humphrey, Watts S. (1989). Managing the Software Process . Addison-Wesley. ISBN 0-201-18095-2 .
  21. ^ "ISO/IEC TR 19759:2005" . Retrieved 2012-04-01 .
  22. ^ a b c d e f g h i j k l m n o p "Software Engineering Body of Knowledge (SWEBOK Version 3), 2014" (pdf) . www.swebok.org . IEEE Computer Society . Retrieved 24 May 2016 .
  23. ^ Abran, Alain, ed. (2005) [2004]. "Chapter 1: Introduction to the Guide" . Guide to the Software Engineering Body of Knowledge . Los Alamitos: IEEE Computer Society. ISBN 0-7695-2330-7 . Retrieved 2010-09-13 . The total volume of cited literature is intended to be suitable for mastery through the completion of an undergraduate education plus four years of experience.
  24. ^ "SE2004 Software Engineering Curriculum" . Sites.computer.org. 2003-09-30 . Retrieved 2012-03-25 .
  25. ^ [1] Degree programs in Software Engineering
  26. ^ Williams, N.S.W. (19–21 February 2001). "Professional Engineers Ontario's approach to licensing software engineering practitioners". Software Engineering Education and Training, 2001 Proceedings. 14th Conference on . Charlotte, NC: IEEE . pp. 77–78.
  27. ^ "NCEES Software Engineering Exam Specifications" (PDF) . Retrieved 2012-04-01 .
  28. ^ " ' SWEBOK Guide Version 3 ' " . Retrieved 2015-03-09 .
  29. ^ " ' 'Software Engineering Code of Ethics''" (PDF) . Retrieved 2012-03-25 .
  30. ^ Bureau of Labor Statistics, U.S. Department of Labor, USDL 05-2145: Occupational Employment and Wages, November 2004 , Table 1.
  31. ^ "Software Engineering" . Retrieved 2008-02-01 .
  32. ^ "Computer Software Engineers and Computer Programmers" . Retrieved 2009-12-17 .
  33. ^ Kalwarski, Tara; Daphne Mosher; Janet Paskin; Donna Rosato (2006). "Best Jobs in America" . MONEY Magazine . CNN . Retrieved 2006-04-20 .
  34. ^ "Best and Worst Jobs of 2012" . online.wsj.com . Retrieved 2017-11-03 .
  35. ^ "SEI certification page" . Sei.cmu.edu . Retrieved 2012-03-25 .
  36. ^ Wyrostek, Warren (March 14, 2008). "The Top 10 Problems with IT Certification in 2008" . InformIT . Retrieved 2009-03-03 .
  37. ^ IEEE Computer Society. "2006 IEEE computer society report to the IFIP General Assembly" (PDF) . Retrieved 2007-04-10 .
  38. ^ IEEE. "CSDA" . Retrieved 2010-04-20 .
  39. ^ ACM (July 17, 2000). "A Summary of the ACM Position on Software Engineering as a Licensed Engineering Profession" (PDF) . Association for Computing Machinery (ACM). Archived from the original (PDF) on May 17, 2008 . Retrieved 2009-03-03 . At its meeting in May 2000, the Council further concluded that the framework of a licensed professional engineer, originally developed for civil engineers, does not match the professional industrial practice of software engineering. Such licensing practices would give false assurances of competence even if the body of knowledge were mature; and would preclude many of the most qualified software engineers from becoming licensed.
  40. ^ Canadian Information Processing Society. "I.S.P. Designation" . Retrieved 2007-03-15 .
  41. ^ "Professional Engineers Ontario: Welcome to PEO's website" . Peo.on.ca . Retrieved 2012-03-25 .
  42. ^ Thibodaux, Patrick (2006-05-05). "As outsourcing gathers steam, computer science interest wanes" . Computerworld.com . Retrieved 2016-12-06 .
  43. ^ "Computer Programmers" . Bls.gov . Retrieved 2012-03-25 .
  44. ^ Mullins, Robert (2007-03-13). "Software developer growth slows in North America" . InfoWorld . Retrieved 2012-03-25 .
  45. ^ "Gartner Magic Quadrant" (PDF) . Cognizant.com . Retrieved 2012-03-25 .
  46. ^ Casey, Valentine (2010-08-20). "Virtual software team project management" . Springer . Retrieved 2013-12-06 .
  47. ^ http://www.stevemcconnell.com/psd/04-senotcs.htm
  48. ^ https://engiegirlsatuwaterloo.wordpress.com/2013/08/29/computer-engineering-software-engineering-or-computer-science/
  49. ^ https://www.upwork.com/hiring/development/computer-science-vs-computer-engineering/
  50. ^ Akram I. Salah (2002-04-05). "Engineering an Academic Program in Software Engineering" (PDF) . 35th Annual Midwest Instruction and Computing Symposium . Retrieved 2006-09-13 . : "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."
  51. ^ Mills, Harlan D., J. R. Newman, and C. B. Engle, Jr., "An Undergraduate Curriculum in Software Engineering," in Deimel, Lionel E. (1990). Software Engineering Education: SEI Conference 1990, Pittsburgh, Pennsylvania, USA, April 2–3,. . Springer. ISBN 0-387-97274-9 . , 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..."
  52. ^ David Budgen; Pearl Brereton; Barbara Kitchenham; Stephen Linkman (2004-12-14). "Realizing Evidence-based Software Engineering" . Retrieved 2006-10-18 . : "We believe that software engineering can only advance as an engineering discipline by moving away from its current dependence upon advocacy and analysis,...."
  53. ^ Beck, Kent ; et al. (2001). "Manifesto for Agile Software Development" . Agile Alliance . Retrieved 14 June 2010 .
  54. ^ Dijkstra, E. W. (1988). "On the cruelty of really teaching computing science" . Retrieved 2014-01-10 .

Marejeleo

  • Abran, Alain; Moore, James W.; Bourque, Pierre; Dupuis, Robert; Tripp, Leonard L. (2004). Guide to the Software Engineering Body of Knowledge . IEEE. ISBN 0-7695-2330-7 .
  • Sommerville, Ian (2008). Software Engineering (7 ed.). Pearson Education. ISBN 978-81-7758-530-8 . Retrieved 10 January 2013 .

Kusoma zaidi

Viungo vya nje