शुक्रबार, ३० कार्तिक, २०७५
Friday, 16 November, 2018

सफ्टवेयर इञ्जिनियरिङ र यसको स्कोप 

  सरोज शाक्य

 [email protected]


 प्रविधिको प्रयोगले भइरहेका अकल्पनीय परिवर्तनहरूका पछाडि सफ्टवेयरको सबैभन्दा ठूलो भूमिका छ । कुरा         गरिरहनुपर्दैन कि, कम्प्युटर, मोबाइल, रोबोटजस्ता प्रविधि सफ्टवेयरले नै चल्ने गरेका हुन् । सफ्टवेयरको अथाह   सम्भावना भएको क्षेत्र हो । नेपालमा पनि देश समृद्ध बनाउन सक्ने क्षेत्र हो,  सफ्टवेयर । सफ्टवेयर इञ्जिनियरिङ   अध्ययन गर्ने विद्यार्थीहरूले धेरै सम्भावनाहरू बोकेका हुन्छन् । 


सफ्टवेयर इञ्जिनियरिङ त्यस्तो क्षेत्र हो, जुन नितान्त समग्र सफ्टवेयर डेभलपमेन्ट प्रक्रियामा केन्द्रित छ । सफ्टवेयर इञ्जिनियरहरू त्यस्ता इञ्जिनियरहरू हुन्, जसले सफ्टवेयर सिष्टमहरूको विश्लेषण, डिजाइन, निर्माण, परीक्षण र मेन्टेनेन्स गर्ने कुरामा विशेषज्ञता हासिल गर्छन् । यस प्रकारका सिष्टमहरूमा त्यस्ता सिष्टमहरू पर्दछन्, जसले इलेक्ट्रिकल तथा मेकानिकल डिभाइसहरू, कम्प्युटरमा आधारित कम्युनिकेशन सिष्टमहरू, अन्य इञ्जिनियरिङ प्रडक्ट डिजाइन गर्ने कम्प्युटर सिष्टम, फाइनान्सियल तथा इन्फर्मेशन सिष्टमहरूको नियन्त्रण गर्दछ । 


एकजना सफ्टवेयर इञ्जिनियरको भूमिका कम्प्युटर हार्डवेयरको डिजाइन गर्ने कुरामा नभई हार्डवेयरको छनोट गर्ने कुरामा हुन्छ । उसको मुख्य काम भनेकै कुनै सिष्टम चलाउन आवश्यक सफ्टवेयर कम्पोनेन्टहरूको डिजाइन गर्नु हो । यसर्थ, सफ्टवेयर इञ्जिनियरहरूले तल छलफल गरिएका कामहरू गर्ने कुरामा आफूलाई तयार गर्नु आवश्यक छ, जुन कम्प्युटरमा आधरित सिष्टमहरूको विकासका लागि महŒवपूर्ण छन् । 


सफ्टवेयर इञ्जिनियरले गर्नुपर्ने कामहरू
प्रस्तावित कम्प्युटरमा आधारित सिष्टमको प्राविधिक आवश्यकताहरू निर्धारण गर्न विकास गर्न खोजिएको एप्लिकेशनको एनलाइसिस गर्ने र अरूले रिभ्यु गर्नका लागि यस्ता आवश्यकताहरूलाई सटिक तथा व्यवस्थित डम्युमेन्टमा राख्ने । ग्राहक तथा भावी युजरका प्रतिनिधिहरूबाट स्वीकृत भइसकेपछि सिष्टमको आवश्यकताको डिजाइन, रिभ्यु तथा परीक्षण गर्न र मान्यता पुष्टि गर्न यस्तो डकुमेन्टले स्फेसिफिकेशनको काम गर्दछ । 


कम्प्युटर सिष्टम कन्फिगरेशनको डिजाइन, सफ्टवेयरमा लागू गरिने फङ्सनहरूको निर्धारण र आधारभूत हार्डवेयर तथा सफ्टवेयर कम्पोनेन्टहरूको छनोट । यस्ता निर्णयहरूको उपयुक्त रेकर्ड राख्ने, जसले गर्दा अरूले पनि रिभ्यु गर्न सकून् र भावी डिजाइनर तथा प्रयोगकर्ताहरूलाई मार्ग निदेर्शन मिलोस् । 


प्रस्तावित सिष्टमले एप्लिकेशन आवश्यकता पूरा गर्छ÷गर्दैन भन्नेबारे प्रस्ट हुन प्रस्तावित डिजाइनको ध्यानपूर्वक पर्फर्मेन्स एनलाइसिस गर्नुहोस् । 
सफ्टवेयरको आधारभूत डिजाइन गर्ने । जस्तो कि मोडुलहरूमा यसको विभाजन, ती मोडुलहरूबीचका इन्टरफेसहरू र इन्डिभिजुअल प्रोग्रामको संरचना, सफ्टवेयर डिजाइन निर्णयहरूको सटिक रूपमा डकुमेन्टेशन गर्ने । 

  •   सफ्टवेयरलाई राम्रो संरचनागत र डकुमेन्टेड प्रोग्रामका रूपमा लागू गर्ने
  •   भइरहेको वा कमर्शियल रेडिमेड सफ्टवेयरस“ग नया“ सफ्टवेयर समायोजन गर्ने
  •   सफ्टवेयरसहित कम्प्युटर सिष्टमको व्यवस्थित र तथ्याङ्कीय परीक्षण 
  •  अवधारणागत आशयलाई यथावत् राख्दै र सम्पूर्ण डकुमेन्टलाई पूर्ण तथा सटिक हिसाबले राख्दै सफ्टवेयर सिष्टमलाई परिष्कार तथा सुधार गर्ने

सबै इञ्जिनियरहरूजस्तै, सफ्टवेयर इञ्जिनियरहरू पनि सफ्टवेयर सोलुशन हिस्साका रूपमा प्रयोग, सुरक्षा र भरपर्दोपनका लागि जिम्मेवार हन्छन् । उनीहरूले डिजाइन गरेका सिष्टमहरू कस्टमरसामु प्रयोगका लागि पु¥याइसकेपछि तिनले पूर्ण रूपमा काम गर्दछन् भन्ने कुरामा विश्वस्त हुनका लागि सफ्टवेयर इञ्जिनियरहरूमा बेसिक म्याथम्याटिक्स र साइन्सका साथै अनुशासित परीक्षण र अनुसरणको प्रयोग गर्न सक्षम हुनुपर्छ ।

मुख्य जोड भनेको कुशल कस्ट इफेक्टिब सफ्टवेयर सिष्टमको उत्पादनमा हो, जुन समयमा डेलिभर गरिनुका साथै कम लातगमा उत्पादन गर्न सकियोस् ।


सफ्टवेयर इञ्जिनियरले सिष्टम र यसका डकुमेन्टेशनहरू एकनास राखून् भन्ने अपेक्षा गरिन्छ । यसैगरी, अवश्यकताअनुरूप प्रोग्रामले गर्ने कामका लागि हार्डवेयर कन्फिगरेशन उपयक्त छ कि छैन, सिष्टमले सबै रियल टाइम समयसीमा र अन्य आवश्यक पर्फर्मेन्स पूरा गर्न सक्छ कि सक्दैन भन्ने कुरा पनि सफ्टवेयर इञ्जिनियरले हेर्नुपर्ने हुन्छ । 


यो कोर्सले सफ्टवेयर डेभलपमेन्टको अब्जेक्ट ओरिएन्टेड अप्रोचमा जोड दिन्छ, जसलाई इन्डष्ट्रीले वर्तमान र भविष्यको प्रविधिको मुख्य रूपमा स्वीकार गरेको छ ।  ठूला स्केलका सिष्टमहरू (दुवै फिजिकल कम्पोनेन्ट्स–हार्डवेयर र लजिकल कम्पोनेन्ट्स–सफ्टवेयर)को एनलाइसिस, डिजाइन र इम्प्लिमेन्ट गर्न वर्तमान अप्रोचहरूबारे बृहत् शिक्षा प्रदान गर्दछ ।

यसका साथै हार्डवेयर र अपेरिटङ सिष्टमजस्ता कम्प्युटर साइन्सको परम्परागत पक्षहरूको ज्ञान पनि राखिन्छ । प्रभावकारी ह्युमन कम्प्युटर इन्टरएक्सन ९ज्ऋक्ष्० को डिजाइनमा थप जोड दिँदै यो कोर्सले बिग डाटा टेक्नोलोजिज, क्लाउड कम्प्युटिङ तथा मल्टिमिडिया, मोबाइल र वेबमा आधारित सिष्टमजस्ता हालै विकास भएका इमर्जिङ ट्रेन्डहरूलाई पनि समेट्छ । 


कोर्सका उद्देश्यहरू 
सफ्टवेयर डेभलपमेन्ट प्रोसेसबारे गहन ज्ञान प्रदान गर्न यो कोर्स डिजाइन गरिएको छ, जसले विद्यार्थीलाई धेरै ठूलो स्केलका सफ्टवेयर सिष्टमहरूको समष्टिगत डिजाइन, कोडिङ र परीक्षण गर्ने कार्यमा महŒवपूर्ण भूमिका निर्वाह गर्ने व्यक्तिका रूपमा काम गर्ने अनुमति प्रदान गर्दछ । सफ्टवेयर इञ्जिनियरिङ प्रोग्राम अध्ययन गर्ने ग्य्राजुएट्सले सफ्टवेयर इञ्जिनियरिङ अभ्यास र सिद्धान्तहरूमा विशेषज्ञता हासिल गर्नेछन् ।

यहा“ विद्यार्थीेले म्याथम्याटिक्स, कम्प्युटर साइन्स र फिजिक्सबारे आधारभूत ज्ञान हासिल गर्नेछन्, जसले सफ्टवेयर इञ्जिनियरिङ विधाको शैक्षिक जग बसाल्छ ।

विद्यार्थीलाई सफ्टवेयर डेभलपमेन्टको प्रोसेसबारे गहन ज्ञान हासिल गर्न सहयोग गर्ने ध्येयका साथ यो कोर्सको डिजाइन गरिएको छ । उनीहरूले भरपर्दो, मेन्टेन गर्न सकिने र सुलभ प्रडक्टको उत्पादन गर्न इञ्जिनियरिङ डिसिप्लेन साइन्स र म्याथम्याटिक्सको प्रयोग गर्नेछन् ।


सफ्टवेयर इञ्जिनियरिङ प्रोग्रामका ग्य्राजुएट्सहरूले म्याथम्याटिक्सको प्रायोग गर्न सिक्छन्, जुन सफ्टवेयर तथा एप्लिकेशन दृष्टिकोणबाट डिजिटल सिष्टमलाई व्याख्या र विश्लेषण गर्ने आधार हो । उनीहरूले भरपर्दो सफ्टवेयर निर्माणका लागि आवश्यक कम्प्युटर साइन्सको क्षेत्रको ठोस ज्ञान प्राप्त गर्छन् । ठूला तहका प्रोजेक्टमा काम गर्ने सफ्टवेयर टिमका लागि आवश्यक भरपूर सीपहरू विद्यार्थीले पाउ“छन् । 

यसैगरी, सफ्टवेयर डेभलपमेन्ट प्रोजेक्टहरूको सफलतापूर्वक र निपुण रूपमा व्यवस्थापन गर्न आवश्यक म्यानेजमेन्ट तथा कम्युनिकेशन स्किलहरू सिक्छन् । ह्युमन कम्प्युटर इन्टरएक्सन, नलेज बस्ड सिष्टम, डाटाबेस सिष्टम र डाटा कम्युनिकेशनको क्षेत्रमा ज्ञान तथा अनुभव हासिल गर्छन् । यसका साथै  सफ्टवेयरिङ पेशाले सामना गर्नुपर्ने सामाजिक, कानूनी र नैतिक मुद्दाहरूको पनि ज्ञान विद्यार्थीले प्राप्त गर्नेछन् ।


यो करिकुलमले लक्षित विद्यार्थीहरूलाई वर्तमान सफ्टवेयर इञ्जिनियरिङ विधाका म्यानेजमेन्ट सिद्धान्तहरूमा आधारित एनलाइसिस, डिजाइन, इम्प्लिमेन्टेशन तथा मेन्टेनेन्स, टेक्निकहरू (अप्रोच तथा नोशन) र टुल्स (सफ्टवेयर इञ्जिनियरिङ इन्भायरोनमेन्ट)बारे ज्ञान हासिल गर्न मद्दत गर्नेछ ।

साथै यो कोर्सको डिजाइन सिष्टम एनलाइसिस, डिजाइन तथा इम्प्लिमेन्टेशनका लागि प्रशस्त उच्च तहको टेक्निकल स्किल उपलब्ध गर्ने हिसाबले गरिएको छ, जुन अल्ट्रा मोडर्न कम्प्युटर एडेड सफ्टवेयर इञ्जिनियरिङ टुल्स ९ऋब्क्भ्०को मद्दतले कुशल सफ्टवेयर डेभलप गर्न आवश्यक पर्छ । 


कहा“ पढ्न पाइन्छ ? 
सफ्टवेयर इञ्जिनियरिङ कोर्स नेपालमा दुईओटा कलेजमा मात्र सञ्चालनमा छ । ललितपुर बालकुमारीस्थित एनसिआइटी र पोखराको गण्डकी कलेजमा यो कोर्स अध्ययन गर्र्न सकिन्छ । कम्प्युटर इञ्जिनियरिङ सोसरहको शुल्कमा यो कोर्स अध्ययन गर्न सकिने ह“ुदा यही क्षेत्रमा करिअर विकास गर्न चाहनेहरूका लागि एकदमै राम्रो कोर्स तथा शैक्षिक कार्यक्रमका रूपमा यो स्थापित छ । 


(लेखक एनसिआइटी कलेजका मास्टर्स कार्यक्रमका संयोजक हुन् ।)
 

सम्बन्धित समाचार
धेरै पढिएको
ट्वीटरमा