Uundaji bidhaa pepe za tarakilishi

Uundaji bidhaa pepe za tarakilishi (kwa Kiingereza: software engineering) ni kazi ya kutengeneza na kuvumbua programu za kompyuta. Inaweza kujumuisha utafiti, maendeleo mapya, uzinduaji, utumiaji-marudio, uvumbuzi mpya, matengenezo, au shughuli nyingine zozote zinazosababisha kuwepo kwa bidhaa pepe.  Hasa awamu ya kwanza ya programu ya maendeleo katika mchakato huweza kuhusisha idara nyingi, ikiwa ni pamoja na masoko, uhandisi, utafiti na maendeleo na usimamizi wa jumla. 

Jina hilo linaweza pia kurejelea kuprogramu kompyuta, mchakato wa kuandika na kutunza vipengee vya ndani vya programu za kompyuta.

Muhtasari 
Kuna njia kadhaa tofauti za kuunda bidhaa pepe, sawa na  maoni mbalimbali ya vyama vya kisiasa kuhusu uongozi wa serikali. Baadhi ya njia hizi huchukua mwenendo uliopangika wenye taaluma za kihandisi ili kupeana suluhisho la biashara, ilhali nyingine zinaweza kuchukua mwenendo unaoendelea, ambapo programu inazidi kuimarishwa ikiundwa sehemu kwa sehemu. Mbinu nyingi zinatumia  hatua zifuatazo katika kuunda bidhaa pepe:

 Utafiti wa soko
 Kutafiti mahitaji ya kusuluhishwa na programu
 Kuchunguza tatizo
 Kuwa na mpango au muundo wa kuvumbua bidhaa hii
 Utekelezaji (kuandika vipengee vya) wa programu
 Majaribio ya programu
 Kuwasilisha kwa mteja
 Ukarabati na kurekebisha

Hatua hizi mara nyingi hujulikana kama maisha halisi ya uundaji wa bidhaa pepe, au 'SDLC', kwa kimombo. Njia mbalimbali  zinaweza kutekeleza hatua hizi kuzingatia maagizo mbalimbali, au kutumia muda mfupi au mrefu kwa hatua mbalimbali. Kina cha uhondo wa nyaraka zizalishwajo katika kila hatua ya kuunda programu inaweza pia kutofautiana. Hatua hizi huweza pia kufanyika katika kugeuka (mkabala kufuliliza ka maji), au zinaweza kurudiwa kwa viwango tofauti ( mkabala "uliokithiri" zaidi ). Mkabala uliokithiri zaidi kawaida huhusisha kutumia muda kidogo juu ya mipango na uandishi nyaraka, na hutumia muda zaidi katika kuunda programu yenyewe halisi. Mkabala huu "uliokithiri"  pia hukuza uendelezaji wa kupima maendeleo ya mradi wenyewe, vilevile kuwa bidhaa isiyo na hitilafu hata kamwe. 
Mkabala rasmi au "wa kufululiza" hujaribu kuchunguza hitilafu zozote zinazoweza kutokea kisha kuanzisha mpango wa kina kabla ya uundaji wa programu yenyewe, na kuepuka mabadiliko ya muundo wa bidhaa pepe na kurudia kuandika vipengele vya programu hiyo.

Kuna faida na hasara kubwa kwa mbinu mbalimbali na njia bora ya kutatua tatizo kutumia bidhaa pepe mara nyingi itazingatia aina ya shida iliyopo. Kama tatizo linaeleweka  vizuri na ufumbuzi unaweza kufanisiwa kwa haraka, mkabala wa kufululiza huweza kuwa bora. Kama, kwa upande mwingine, tatizo ni la kipekee (angalau kwa timu ya kuunda) na muundo wa programu hauwezi fumbuliwa kwa urahisi, basi mkabala "uliokithiri" zaidi huweza kuwa bora.

Mchakato wa kuunda bidhaa pepe ni muundo ulioekwa katika utayarishaji wa bidhaa pepe halisi ya kompyuta. Visawe ni mzunguko wa maisha ya programu na  mchakato wa programu.  Kuna mifano kadhaa kwa hizi taratibu, kila ukielezea njia mbalimbali za kazi au shughuli ambazo hufanyika wakati wa mchakato huu.

Suala la uundaji wa bidhaa pepe

Elimu ya soko 
Vyanzo vya mawazo kuhusu bidhaa pepe ni nyingi.  Mawazo haya yanaweza kuja kutoka utafiti wa soko ikiwa ni pamoja na  demografia ya wateja wapya, wateja waliopo, matarajio ya mauzo ya bidhaa zilizokataliwa,washikiriki uundaji wengine wa ndani, au  ubunifu chama cha nje. Mawazo kwa bidhaa pepe za kompyuta kwa kawaida hutathminiwa na wenye ujuzi wa masoko kwa uwezekano wake kiuchumi, kwa mwingiliano wake na njia za usambazaji, kwa uwezekano wa kuathiri bidhaa zilizopo, vitu vinavyotarajiwa, na kwa kufaa malengo ya kampuni kwenye soko. Katika tathmini ya awamu ya masoko,dhana ya gharama na muda hutathminiwa. Uamuzi hufikiwa mapema katika awamu ya kwanza  kama, kwa kuzingatia maelezo zaidi yaliyotokana na maendeleo ya masoko na wafanyakazi, mradi lazima ufuatiliwe zaidi. 

Katika kitabu "Great Software Debates", Alan M. Davis anasema:
Kwa sababu uundaji programu unaweza kuhusisha kuacha au kwenda nje na mahitaji ya mteja, mradi huweza kupotoka kiasi kwa mahitaji yasiyo ya kiufundi kama vile rasilimali, kushughulikia hitilafu, umiliki, bajeti, kushughulikia visa, nakadhalika. Michakato hii huweza pia kusababisha jukumu la maendeleo ya biashara kufunika uundaji wa bidhaa pepe.

 Mbinu za uundaji bidhaa pepe 
Mbinu za uundaji bidhaa pepe ni taaluma inayotumika kuunda, kupanga, na kudhibiti mchakato wa kuvumbua mitambo ya habari. Mifumo mbalimbali kama hizo imeibuka na kukua kwa muda, kila mmoja ukiwa na uwezo wake mwenyewe na udhaifu pia. Mfumo mmoja wa uundaji bila shaka si mwena kwa matumizi ya miradi yote. Kila mojawapo ya mbinu zilizopo inafaa kwa aina maalumu ya miradi, kwa kuzingatia ufundi,shirika,mradi na maswala ya timu husika. 

 Mwelekeo wa kisasa katika sekta 
Kutokana na kasi ya ukuaji wa sekta hii, kampuni kadhaa zimeanza kutumia nchi za nje kama China, India na nchi nyingine kwa gharama ya chini kwa kila muundaji. Tovuti kadhaa na programu za kisasa yani, Web 2.0, huundwa kwa bara tofauti ilhali  usimamizi uko katika nchi za magharibi. Faida zaidi huwa ni udhibiti bora wa gharama, ambayo ina maana kwamba kuna pesa kiasi za kutumiwa (mara nyingi huwa changamoto kubwa kwa kwanza miradi kama hii). Aidha, tofauti ya muda kati ya nchi za magharibi na wakati wa kazi wa India na China  inaruhusu kazi kufanyika mfululizo ambayo inaipa faida ya hali ya juu. Makampuni ambayo  hushiriki katika uundaji huu  ni kama  Tata Consultancy Services, Infosys, Wipro, na Satyam.

Mwisho wa 1990 uliibua viwango vya W3C   ambavyo viliwezesha ontolojia kuungaanisha miundo 4 za utendaji katika 1 wa maarifa:  uwakilishi wa maarifa (katika RDF (S) na owl),kizazi cha maarifa kupitia mitazamo, mtindo wa dhana kupitia ontolojia na muundo wa kimwili kupitia sehemu tatu.

Miuundo ya kisasa inaruhusu kutoa programu  moja kwa moja kutoka mitambo ya maarifa(ontolojia) 

Mbinu hii inapata uhalali wake katika matumizi ya teknolojia ya semantiki badala ya www data kwa uzalishaji data iliyohakikishwa.
Aina ya biashara ya mbinu ya uundaji inapatikana katika tovuti ya ontolojia ya fedha. 

 Angalia pia 
 Lugha ya programu
 Paradigma ya programu

 Tanbihi 

 Marejeo
 Jim McCarthy (1995). Mienendo ya Programu ya Maendeleo. Dan Conde (2002). Software Product Management:Managing of Software Development from Idea to Product to Marketing to Sales . AM Davis (2005). Tu mahitaji kutosha usimamizi: ambapo masoko hukutana na uundaji programu. Edward Hasted. (2005). Programu ambazo zinajiuza: A Practical Guide to Developing and Marketing Your Software Project. Luka Hohmann (2003). Beyond Software Architecture: Kuanzisha na Kuendeleza Programu Bora. John W. Horch (2005). "Miondoko mbili kuhusu matumizi ya vitu." Katika: IEEE Software. vol. 12, no. 2, uk. 117-118, Machi 1995.
 John Rittinghouse (2003). Managing Software Deliverables: A Software Development Management Methodology. Karl E. Wiegers (2005). More About Software Requirements: Thorny Issues and Practical Advice. Robert K. Wysocki (2006). Ufanisi katika Usimamizi wa Uundaji bidhaa pepe.''

Viungo vya nje

Kompyuta
Uchumi
Uhandisi wa programu