Ang pagpapatupad ng software ay ang proseso ng pagbuo ng isang computer program o application. Ito ay tulad ng pagsunod sa isang recipe upang makagawa ng isang masarap na cake. Ang bawat hakbang ay binalak upang ang panghuling software ay gumana nang maayos. Sa pagpapatupad ng software, sinusunod namin ang isang serye ng mga malinaw na hakbang. Ang mga hakbang na ito ay tumutulong sa amin na lumikha at mapabuti ang software sa paglipas ng panahon.
Ang pagpapatupad ng software ay nangangahulugan ng pagkuha ng ideya at gawing isang gumaganang programa. Isipin na gusto mong gumuhit ng isang larawan. Una, plano mo kung ano ang iyong iguguhit, pagkatapos ay gumawa ka ng isang sketch, at panghuli, kulayan mo ito. Sa parehong paraan, ang pagpapatupad ng software ay may iba't ibang yugto. Ang bawat yugto ay mahalaga upang matiyak na gumagana ang computer program gaya ng inaasahan.
Ang araling ito ay magtuturo sa iyo tungkol sa mga yugto ng Software Development Life Cycle (SDLC). Ang SDLC ay isang gabay para sa kung paano bumuo at ayusin ang software. Titingnan namin ang bawat yugto at mauunawaan ang papel nito sa pagpapatupad ng software.
Tinutulungan kami ng Software Development Life Cycle na maunawaan ang mga hakbang na kailangan upang lumikha ng software. Ang bawat hakbang ay bubuo sa nauna. Nasa ibaba ang mga pangunahing yugto:
Ang pagtitipon ng mga kinakailangan ay ang unang yugto ng SDLC. Sa hakbang na ito, natutunan namin kung ano ang dapat gawin ng software. Pag-isipan kung kailan ka nagpaplano ng isang birthday party. Una, magpapasya ka kung anong mga laro ang gusto mong laruin, anong pagkain ang kailangan mo, at kung anong masasayang aktibidad ang isasama.
Sa software, ang pangangalap ng mga kinakailangan ay nangangahulugan ng pagtatanong tulad ng:
Halimbawa, kung gusto naming lumikha ng isang simpleng application sa pagguhit, itatanong namin, "Kailangan ba ng mga user ng mga hugis para gumuhit? Anong mga kulay ang maaari nilang piliin? Dapat ba nilang burahin ang mga pagkakamali?" Ito ang mga kinakailangan, katulad ng paggawa ng listahan ng pamimili bago ka pumunta sa tindahan.
Ang yugto ng disenyo ay tulad ng pagguhit ng isang larawan ng kung ano ang gusto mong buuin. Pagkatapos magpasya kung ano ang kailangan, pinaplano namin kung paano gagana ang software. Sa disenyo, iniisip namin ang mga sumusunod:
Isipin na gusto mong magtayo ng bahay sa labas ng mga bloke. Bago ka magsimulang magtayo, gumuhit ka ng isang simpleng sketch ng bahay. Plano mo kung saan ang pinto, kung saan mo ilalagay ang mga bintana, at kung gaano karaming mga palapag ang gusto mo. Sa disenyo ng software, gumuhit ang mga inhinyero ng computer ng mga diagram at larawan upang ipakita kung paano gagana ang application. Maaari silang gumawa ng mga flowchart at mock-up na nagpapaliwanag sa layout at mga hakbang sa programa.
Ang coding ay ang yugto kung saan isinusulat namin ang mga tagubilin para sa computer. Ang coding ay parang pagsasabi sa isang kaibigan kung paano maglaro ng hakbang-hakbang. Ang mga tagubilin ay dapat na malinaw at madaling sundin. Sa coding, gumagamit kami ng computer language para sabihin sa computer kung ano ang gagawin.
Mag-isip ng isang simpleng recipe kung saan naghahalo ka ng harina, tubig, at mga itlog para gawing batter. Ang bawat hakbang sa recipe ay katulad ng isang linya ng code sa isang programa. Binabasa ng computer ang code at sinusunod ang mga hakbang tulad ng pagsunod mo sa isang recipe. Kinukuha ng coding ang mga ideya sa disenyo at ginagawa itong gumaganang software.
Para sa mga batang nag-aaral, isipin ang pagsulat ng isang simpleng hanay ng mga tagubilin para sa isang laruang robot: "Sumulong, lumiko sa kaliwa, pagkatapos ay sumulong muli." Sa software, sumusulat ang mga programmer ng mga trabaho para sa computer gamit ang mga coding na wika gaya ng Python, JavaScript, o Scratch. Tinutulungan ng mga tagubiling ito ang computer na maunawaan kung ano ang kailangang gawin.
Napakahalaga ng pagsubok. Tinutulungan kami ng yugtong ito na suriin kung gumagana ang software ayon sa nararapat. Ito ay tulad ng paglalaro ng bagong board game upang matutunan ang mga patakaran. Sa pagsubok, sinusubukan namin ang iba't ibang bahagi ng programa upang makita kung gumagana ang mga ito nang tama.
Kapag nagbibisikleta ka, maaari mo itong subukan sa pamamagitan ng pagsakay sa maikling distansya upang matiyak na gumagana ang preno. Katulad nito, sa pagsubok ng software, tinitingnan namin kung tumutugon nang tama ang lahat ng mga button at feature. Naghahanap kami ng mga pagkakamali o bug. Ang mga bug ay maliit na error, tulad ng kapag na flat ang gulong ng iyong bisikleta. Ang paghahanap at pag-aayos ng mga bug ay mahalaga dahil maaari nilang ihinto ang software na gumana nang maayos.
Susubukan ng mga tagasubok ang maraming iba't ibang mga sitwasyon. Maaari silang mag-click sa bawat pindutan, lumikha ng hindi pangkaraniwang o hindi inaasahang mga input, at makita kung paano pinangangasiwaan ng programa ang mga pagkakamali. Tinitiyak ng maingat na pagsusuring ito na ang software ay malakas at handa nang gamitin.
Pagkatapos ng pagsubok, handa na ang software para sa pag-deploy. Ang deployment ay parang pagbubukas ng bagong tindahan kung saan maaaring pumunta ang mga tao at bumili ng kendi. Sa yugtong ito, inilabas ang software upang magamit ito ng ibang tao.
Halimbawa, kung gumawa ka ng laro sa computer, ang deployment ay kapag hinayaan mong maglaro ang iyong mga kaibigan. Ang software ay inilipat mula sa yugto ng pag-unlad patungo sa isang live na kapaligiran kung saan ito gumagana sa mga tunay na user. Maaaring kasama sa deployment ang pag-install ng program sa maraming computer o paggawa nito na available sa internet.
Ang hakbang na ito ay lubhang kapana-panabik. Ito ang sandali kung kailan ang pagsusumikap ay nagpapakita ng mga resulta nito. Ang software ay napupunta mula sa pagiging isang proyekto sa isang computer hanggang sa isang kapaki-pakinabang na tool o laro para sa iba upang tamasahin.
Ang pagpapanatili ay isang tuluy-tuloy na yugto. Kahit na pagkatapos na mailabas ang software, hindi tumitigil ang trabaho. Ang ibig sabihin ng pagpapanatili ay pagpapanatiling malusog at napapanahon ang software. Tulad ng isang hardin na nangangailangan ng pagtutubig at pangangalaga, ang software ay nangangailangan ng mga update at pag-aayos.
Kung nasira ang isang laruan, dadalhin mo ito sa magulang o katulong upang ayusin ito, o maaari mo itong ayusin. Sa software, maaaring kasama sa pagpapanatili ang pag-aayos ng mga bug na hindi nakita sa panahon ng pagsubok, pagdaragdag ng mga bagong feature, o pag-update ng program upang gumana nang mas mahusay sa bagong hardware.
Tinutulungan ng yugtong ito ang software na manatiling kapaki-pakinabang sa paglipas ng panahon. Sa regular na pagpapanatili, maaaring maglabas ang mga programmer ng mga patch o update na nagpapahusay sa pagganap at seguridad ng software. Ito ay tulad ng paglilinis ng silid-aralan o pag-aayos ng sirang upuan upang ito ay manatiling maayos sa mahabang panahon.
Tingnan natin ang ilang simpleng halimbawa na nauugnay sa pang-araw-araw na buhay. Isipin na gumagawa ka ng digital drawing tool para sa iyong computer tablet. Magsisimula ka sa pamamagitan ng paglilista ng iyong mga ideya (pagtitipon ng mga kinakailangan). Magpasya ka na ang tool ay dapat magpapahintulot sa iyo na gumuhit ng mga hugis, pumili ng mga kulay, at magbura ng mga pagkakamali. Isulat mo ang mga ideyang ito bilang isang listahan ng iyong mga paboritong meryenda.
Susunod, gumuhit ka ng isang larawan kung paano ang hitsura ng tool (disenyo). Pinaplano mo kung saan pupunta ang bawat pindutan, tulad ng paglalatag ng mga bahagi ng isang palaisipan. Pagkatapos, isulat mo ang programa (coding) gamit ang isang friendly na wika na nagsasabi sa computer kung paano gumuhit ng mga hugis at pumili ng mga kulay.
Pagkatapos ng coding, subukan mo ang programa sa pamamagitan ng pag-click sa bawat pindutan at pagguhit ng iba't ibang mga hugis (pagsubok). Kung ang kulay ay nagbabago o ang mga hugis ay hindi lilitaw bilang binalak, subukan mong ayusin ang mga ito. Sa sandaling gumana nang perpekto ang tool, ibinabahagi mo ito sa iyong mga kaibigan (deployment).
Kahit na simulang gamitin ng iyong mga kaibigan ang digital drawing tool, nakikinig ka sa kanilang mga ideya para pagandahin pa ito (maintenance). Marahil ay humingi sila ng higit pang mga kulay, iba't ibang mga brush, o isang bagong background. Sa pamamagitan ng pag-update ng tool, pinapanatili mo itong sariwa at nakakatuwang gamitin.
Ang isa pang halimbawa ay mula sa paglikha ng isang simpleng video game. Isipin ang isang laro kung saan ang isang karakter ay dapat tumalon sa mga hadlang. Una, isulat mo kung paano dapat gumana ang laro (pagtitipon ng mga kinakailangan). Susunod, gumuhit ka ng sketch ng mga antas ng laro at kung paano gumagalaw ang karakter (disenyo). Kapag nagsimula kang mag-coding, ibibigay mo ang mga tagubilin sa character, tulad ng pagtalon kapag pinindot mo ang isang pindutan. Subukan mo ang laro upang matiyak na ang karakter ay tumalon nang tama at hindi natigil. Sa wakas, hinahayaan mo ang iyong mga kaklase na maglaro (deployment), at sa paglaon, magdagdag ka ng higit pang mga antas o kawili-wiling mga tampok batay sa kanilang feedback (pagpapanatili).
Ang pagsunod sa Software Development Life Cycle ay may maraming benepisyo. Ginagawa nitong madaling maunawaan ang proseso ng paglikha ng software. Narito ang ilang mga benepisyo:
Kapag sinusunod natin ang isang plano, lahat ay ginagawa nang maingat at may atensyon. Ito ay tulad ng pagsunod sa mga tagubilin upang bumuo ng isang LEGO set. Kung lalaktawan mo ang isang hakbang, maaaring hindi tama ang hitsura ng huling modelo. Ngunit kapag sinunod mo ang lahat ng mga tagubilin, ang iyong set ng LEGO ay lalabas nang eksakto sa nararapat.
Higit pa sa mga pangunahing yugto ng SDLC, may ilang karagdagang ideya na mahalaga ding maunawaan.
Bago simulan ang anumang proyekto, ang pagpaplano at pag-iskedyul ay napakahalaga. Sinasabi sa atin ng hakbang na ito kung kailan dapat maganap ang bawat yugto. Isipin ito bilang paggawa ng timetable para sa iyong araw sa paaralan. Kung alam mo kung kailan ang recess o kung kailan ang tanghalian, maaari mong planuhin ang iyong mga masasayang aktibidad sa paligid nito.
Ang mga programmer at tagapamahala ng proyekto ay nagpapasya sa mga deadline. Isinulat nila kung gaano katagal ang bawat hakbang at sinusubaybayan ang pag-unlad. Ang pagpaplanong ito ay nakakatulong sa proyekto na manatili sa tamang landas. Sa simpleng salita, sinasabi nito sa lahat kung ano ang gagawin at kung kailan ito gagawin.
Ang pagpapatupad ng software ay madalas na pagsisikap ng pangkat. Maraming tao ang nagtutulungan, tulad ng sa isang group project sa paaralan. Bawat tao ay may espesyal na tungkulin. Ang ilang mga tao ay nagpaplano at nagdidisenyo, habang ang iba ay nagsusulat ng code at sumusubok sa software. Sa pamamagitan ng pagtutulungan, matatapos nila ang isang proyekto nang mas mabilis at may higit na pagkamalikhain.
Ang pagtutulungan ng pangkat ay nagtuturo sa amin ng mahahalagang aral tulad ng pagbabahagi ng mga ideya, pagtulong sa iba, at pakikinig nang mabuti. Kapag ang lahat ay nagtutulungan, ang huling proyekto ay mas maganda.
Ang ibig sabihin ng dokumentasyon ay pagsusulat kung paano gumagana ang software. Ang mga tala na ito ay kapaki-pakinabang para sa sinumang gustong maunawaan o ayusin ang programa sa ibang pagkakataon. Isipin ito tulad ng pagguhit ng mapa para sa isang treasure hunt. Ipinapakita ng mapa ang daan at tumutulong sa paghahanap ng mga nakatagong kayamanan.
Kasama sa mga dokumento sa mga software project ang mga gabay, manual, at tagubilin. Ipinapaliwanag nila kung ano ang ginagawa ng bawat bahagi ng programa. Kahit na umalis ang taong nagsimula ng proyekto, mababasa ng bagong tao ang mga dokumento at maunawaan ang lahat. Ang mahusay na dokumentasyon ay nagpapadali sa pagpapanatili.
Isipin na nagtatayo ka ng isang modelo ng isang paaralan para sa isang proyekto. Una, magpasya ka kung anong mga materyales ang kailangan mo, tulad ng karton, gunting, at pandikit (pagtitipon ng mga kinakailangan). Pagkatapos, gumuhit ka ng plano ng modelo, pagpili kung saan pupunta ang mga silid-aralan, palaruan, at mga pasilyo (disenyo).
Susunod, pinutol mo ang mga piraso at simulan ang pagsasama-sama ng mga ito (coding o pagbuo). Kapag naitayo na ang modelo, titingnan mo kung nasa lugar na ang lahat (pagsubok). Pagkatapos nito, ipapakita mo ang iyong modelo sa silid-aralan (deployment). Sa paglipas ng panahon, kung may masira o makatuklas ka ng bagong ideya, maaari mong ayusin o pagbutihin ang iyong modelo (pagpapanatili).
Ang pagpapatupad ng software ay hindi lamang para sa mga computer program sa iyong laptop. Ginagamit ito sa maraming lugar sa paligid mo. Narito ang ilang halimbawa:
Ang bawat isa sa mga application na ito ay nagsisimula sa isang ideya. Kinokolekta ng mga programmer ang mga bagay na kailangang gawin ng programa. Sila ay nagdidisenyo kung paano ito magiging hitsura, isulat ang code, subukan ito ng maraming beses, ilunsad ito para sa mga user, at panatilihin itong na-update. Ipinapakita nito na ang pagpapatupad ng software ay nakakaapekto sa maraming bahagi ng ating buhay.
Ang software na mahusay na ipinatupad ay nagpapadali sa ating pang-araw-araw na buhay. Makakatulong ito sa atin na matuto, magtrabaho, at maglaro. Halimbawa, kapag gumamit ka ng digital pen pad sa paaralan, gumagamit ka ng tool na nilikha ng maingat na pagpaplano. Sinasabi ng software sa pen pad kung paano i-record ang iyong mga guhit o mga sinulat. Kapag naglalaro ka ng learning game sa isang tablet, ginawa ang laro para panatilihin kang nakatuon at tulungan kang matuto ng mga bagong ideya.
Ang software sa mga traffic light ay nakakatulong na kontrolin ang daloy ng mga sasakyan at pinapanatiling ligtas ang lahat. Kahit na ang mga nakakatuwang laruan ay may mga simpleng programa sa loob ng mga ito, na nagbibigay sa kanila ng buhay at ginagawa silang interactive. Tandaan, sa tuwing gagamit ka ng gadget, may gumamit ng ikot ng buhay ng pagbuo ng software para buuin ito!
Ang isang mahalagang ideya sa pagpapatupad ng software ay ang pag-ulit. Ang ibig sabihin ng pag-ulit ay paggawa ng isang hakbang nang paulit-ulit upang gawin itong mas mahusay. Minsan, ang mga programmer ay kailangang bumalik at baguhin ang mga bahagi ng code kahit na sa tingin nila ay tapos na sila.
Isipin ang pagguhit ng isang larawan at pagkatapos ay burahin ang isang bahagi upang ayusin ito. Maaari mo itong guhitan muli upang mapahusay ito. Katulad nito, pagkatapos subukan ang software, sinusuri ng mga programmer ang trabaho at pagbutihin ito. Ang siklo ng pagsubok at pag-update ay lubhang kapaki-pakinabang dahil walang computer program ang perpekto sa unang pagkakataon.
Kahit na sinusunod namin ang mga hakbang sa Software Development Life Cycle, maaaring magkaroon ng mga hamon. Halimbawa, kung minsan ang ideya ay maaaring magbago. Isipin ang pagpaplano ng isang piknik ngunit pagkatapos ay nagsimulang umulan. Maaaring kailanganin mo ng backup na plano. Sa software, maaaring magbago ang mga kinakailangan, o maaaring dumating ang mga bagong ideya pagkatapos mong simulan ang pag-coding.
Ang isa pang hamon ay maaaring oras. Minsan, tumatagal ng mas maraming oras kaysa sa binalak upang makumpleto ang isang yugto. Tulad ng kapag bumuo ka ng isang puzzle at may ilang piraso na nawawala o mahirap magkasya, maaaring mahirapan ang mga programmer ng mga bahagi ng proyekto. Kapag nangyari ang mga hamong ito, nagtutulungan ang koponan upang mahanap ang pinakamahusay na solusyon.
Napakahalaga din ng komunikasyon. Kapag nag-uusap at nakikinig ang lahat sa pangkat, mas mabilis nilang malulutas ang mga problema. Sa ating pang-araw-araw na buhay, kung ikaw at ang iyong mga kaibigan ay nagtatrabaho nang magkasama sa isang proyekto sa paaralan at nagbabahagi ng iyong mga ideya, ang proyekto ay mas mahusay. Ang parehong ay totoo para sa pagpapatupad ng software.
Ngayon, nalaman namin na ang pagpapatupad ng software ay ang paglalakbay ng paggawa ng ideya sa isang gumaganang programa. Ginalugad namin ang mga yugto ng Software Development Life Cycle:
Nalaman din namin na ang pagpaplano, team work, at dokumentasyon ay mahalagang bahagi ng matagumpay na software project. Ang mga halimbawa sa totoong mundo, gaya ng mga sistema ng pamamahala ng paaralan, mga larong pang-edukasyon, at mga simpleng app, ay nagpapakita na ang prosesong ito ay ginagamit kahit saan. Nakita namin na ang bawat programa sa computer ay nagsisimula sa isang plano at binuo ng hakbang-hakbang, tulad ng pagguhit ng isang larawan o pagbuo ng isang palaisipan.
Tinutulungan tayo ng araling ito na maunawaan na ang pagsunod sa mga malinaw na hakbang ay nagpapadali sa trabaho. Tulad ng isang recipe para sa isang cake, ang bawat sangkap at hakbang ay mahalaga. Sa pamamagitan ng pag-aaral tungkol sa pagpapatupad ng software, hindi lamang natin nauunawaan kung paano binuo ang teknolohiya, ngunit natututo din tayo kung paano magplano at lutasin ang mga problema sa ating pang-araw-araw na buhay.
Tandaan, ang pagpapatupad ng software ay parang isang paglalakbay. Ang bawat yugto ay naglalapit sa atin sa isang huling produkto na makakatulong sa mga tao na matuto, maglaro, at magtrabaho sa maraming paraan. Kapag nakita mo ang iyong paboritong laro o app, maaari mong isipin ang lahat ng maingat na pagpaplano, pagdidisenyo, coding, pagsubok, at pag-update na ginawa nito. Ang paglalakbay na ito ay ginagawang kapana-panabik at puno ng mga posibilidad ang teknolohiya!
Sa kaalamang ito, naiintindihan mo na ngayon ang mga pangunahing kaalaman sa pagpapatupad ng software at ang Siklo ng Buhay ng Pag-unlad ng Software. Ang bawat hakbang ay mahalaga, at ang bawat pagpapabuti ay naglalapit sa amin sa isang mas mahusay na digital na mundo.