فرق صاف ظاہر ہےسوفٹ وئیر ڈیزائینر - ایک ایسا ماہر جو سوفٹ کے ہر پہلو کو مدنظر رکھ کر کام کر سکتا ہے اس نے سوفٹ وئیر میں باقاعدہ ڈگری لی ہوتی ہے-
پروگرامر - کسی بھی دیئے گئے کام کو کمپیؤٹر کی زباں میں بدل سکتا ہے- اور اس کے لیے صرف اسی زباں کی سمجھ بوجھ ضروری ہوتی ہے-
کراور ایک کوالی فائیڈ اور تجربہ کا حامل سافٹ وئیر انجینئر، سافٹ وئیر بنانے کے پانچوں مراحل انجام دے سکتا ہے۔
چار مراحل کون سےسافٹ وئیر ڈیزائنر کی اصطلاح میرے لیے نئی ہے۔
سافٹ وئیر کے حوالے سے لفظ ڈیزائننگ سے میرے ذہن میں دو قطعی مختلف کام آتے ہیں:
1۔ ڈیزائننگ کا کام یا تو یو آئی ڈیزائنر (UI Designer)کرتے ہیں، جو کہ یہ بتاتے ہیں کہ مکمل شدہ سافٹ وئیر حقیقت میں کیسا نظر آئے گا،کونسا بٹن کہاں ہو گا، کیسا ہو گا، اسے کلک کرنے سے کیا کام ہو گا یا کونسی نئی سکرین کھلے گی، مطلب وہ یوزر انٹرفیس (User Interface)کا خاکہ تیار کرتا ہے۔
2۔ یا پھر سافٹ وئیر آرکیٹکٹ(Software Architect)، جو کہ سافٹ وئیر کا مکمل نقشہ بناتے ہیں، جیسا کہ ایک بلڈنگ کا بلیو پرنٹ بنایا جاتا ہے، اور پھر اُسی بلیو پرنٹ کی اقتدا کرتے ہوئے، اس پر بلڈنگ بنائی جاتی ہے، بالکل اسی طرح سافٹ آرکیٹیکٹ بھی ایک نہایت مفصل بلیو پرنٹ یا نقشہ تیار کرتا ہے، جس کو مدِنظر رکھتے ہوئے سافٹ وئیر بنایا جاتا ہے۔
پروگرامر (Programmer)کی اصطلا ح کو سمجھنے کے لیے یہ سمجھیں کہ سافٹ وئیر بنانے کا عمل کن کن مراحل سے گزرتا ہے۔
1۔ ریکوائرمینٹ گیدرنگ اینڈ اینالیسز(Requirement gathering and analysis)۔ جس میں آپ کسٹمر سے یہ معلوم کرتے ہیں، کہ آپ کو کیسا سافٹ وئیر چاہئے، وہ کیسے کام کرے گا، اسے کیا کیا کرنا چاہیے، اس میں کون کون سے فنکشن اور فیچرز ہوں گے۔
2- ڈیزائن(Design)۔ ریکوائرمنٹس کو مدِ نظر رکھ کر ایک ڈیزائن بنایا جاتا ہے، جو کہ یہ بتاتا کہ کہ سافٹ وئیر کو، کیا کیا استعمال کر کہ، کیسے اور کس طرح بنایا جائے گا۔
3۔ امپلی منٹیشن(Implementation )۔ یہاں پر ڈیزائن کو سامنے رکھ کر سافٹ وئیر کی اصل کوڈنگ کی جاتی ہے۔
4۔ ٹیسٹنگ(Testing)۔ مکمل شدہ سافٹ وئیر یا سافٹ وئیر کا کو مکمل شدہ حصہ (Module)ٹیسٹ کیا جاتا یہ کہ کیا سافٹ وئیر ٹھیک کام کر رہا ہے، کیا سافٹ وئیر وہی کام انجام دے رہا ہی جیسا کہ اسے دینا چاہئے، کوئی بگز یا مسائل تو نہیں۔
5۔ منٹیننس(Maintenance)۔ مکمل شدہ سافٹ وئیر میں خرابیاں دور کرنا، اور نئے نئے فیچرز ڈالنا۔
آرکیٹیکٹ اور پروگرامر کا فرق
سافٹ وئیر آرکیٹکٹ کو بہت زیادہ تجربہ کا حامل ہونا بہت زیادہ ضروری ہے، تجربے کی بناء پر ہی وہ ایک اچھا ڈیزائن بنا سکتا ہے، اور آرکیٹکٹ عموماً بہت زیادہ تجربے کے حامل اور بہت زیادہ سینئر ہوتے ہیں۔ نیا بندہ ڈیزائن نہیں بنا سکتا، جیسا کہ آپ ایک فریش سول انجینئرنگ گریجوایٹ سے کسی ڈیم کا نقشہ، یا کسی نئے الیکٹریکل انجینئر سے پاور پلانٹ کا نقشہ نہیں بنواتے۔
پروگرامر کا کام بس کوڈ لکھنا اور اپنے کوڈ کو ٹیسٹ کرنا ہوتا ہے، یا پھر کوئی بگ آئے تو اس کو درست کرنا۔ پروگرامر ایک فریش یونیورسٹی گریجویٹ بھی ہو سکتا ہے، اس کے لیے زیادہ تجربہ ہو نا شرط نہیں۔
یاد رہے، پروگرامنگ سافٹ وئیر بنانے کے چار مراحل میں سے صرف ایک مرحلہ ہے۔
اور یو آئی ڈیزائنر (UI Designer)کا کام بس یوزر انٹرفیس(User Interface) بنانا ہوتا ہے، اس کو کمپیوٹر سائنس کا علم ہونا قطعاً ضروری نہیں۔یوز ر انٹرفیس ڈیزائن(UI Design)، پاور پوائنٹ، فلیش، تصاویر، کی مدد سے بنایا جا سکتا ہے۔ بسا اوقات یہ کام گاہک یعنی کسٹمر خود ہی کرتے ہیں، کہ وہ اپنے گرافکس ڈیزائنر کو کہتے ہیں کہ ہمارا سافٹ وئیر ایسا نظر آنا چاہیے، یہ یہ بٹن ہوں، اور ایسا ایسا رنگ ہو وغیرہ وغیرہ۔ پھر یہ یو آئی ڈیزائن (UI Design)سافٹ وئیر بنانے والی کمپنی کو بھیج دیا جاتا ہے جس کو دیکھ کر پھر سافٹ وئیر تیار کیا جاتا ہے۔
کر
پانچوں مراحل کا ذکر بھی کر دیں؟
1۔ ریکوائرمینٹ گیدرنگ اینڈ اینالیسز(Requirement gathering and analysis)۔ جس میں آپ کسٹمر سے یہ معلوم کرتے ہیں، کہ آپ کو کیسا سافٹ وئیر چاہئے، وہ کیسے کام کرے گا، اسے کیا کیا کرنا چاہیے، اس میں کون کون سے فنکشن اور فیچرز ہوں گے۔
2- ڈیزائن(Design)۔ ریکوائرمنٹس کو مدِ نظر رکھ کر ایک ڈیزائن بنایا جاتا ہے، جو کہ یہ بتاتا کہ کہ سافٹ وئیر کو، کیا کیا استعمال کر کے، کیسے اور کس طرح بنایا جائے گا۔
3۔ امپلی منٹیشن(Implementation )۔ یہاں پر ڈیزائن کو سامنے رکھ کر سافٹ وئیر کی اصل کوڈنگ کی جاتی ہے۔
4۔ ٹیسٹنگ(Testing)۔ مکمل شدہ سافٹ وئیر یا سافٹ وئیر کا کو مکمل شدہ حصہ (Module)ٹیسٹ کیا جاتا یہ کہ کیا سافٹ وئیر ٹھیک کام کر رہا ہے، کیا سافٹ وئیر وہی کام انجام دے رہا ہی جیسا کہ اسے دینا چاہئے، کوئی بگز یا مسائل تو نہیں۔
5۔ منٹیننس(Maintenance)۔ مکمل شدہ سافٹ وئیر میں خرابیاں دور کرنا، اور نئے نئے فیچرز ڈالنا۔
چار مراحل کون سے
بعض اوقات منٹیننس(Maintenance) کو سافٹ وئیر بنانے کے عمل کا حصہ نہیں سمجھا جاتا، کیوں کہ اس مرحلے تک پہنچنے سے پہلے، سافٹ وئیر مکمل ہو چکا ہوتا ہے۔1۔ ریکوائرمینٹ گیدرنگ اینڈ اینالیسز(Requirement gathering and analysis)۔ جس میں آپ کسٹمر سے یہ معلوم کرتے ہیں، کہ آپ کو کیسا سافٹ وئیر چاہئے، وہ کیسے کام کرے گا، اسے کیا کیا کرنا چاہیے، اس میں کون کون سے فنکشن اور فیچرز ہوں گے۔
2- ڈیزائن(Design)۔ ریکوائرمنٹس کو مدِ نظر رکھ کر ایک ڈیزائن بنایا جاتا ہے، جو کہ یہ بتاتا کہ کہ سافٹ وئیر کو، کیا کیا استعمال کر کے، کیسے اور کس طرح بنایا جائے گا۔
3۔ امپلی منٹیشن(Implementation )۔ یہاں پر ڈیزائن کو سامنے رکھ کر سافٹ وئیر کی اصل کوڈنگ کی جاتی ہے۔
4۔ ٹیسٹنگ(Testing)۔ مکمل شدہ سافٹ وئیر یا سافٹ وئیر کا کو مکمل شدہ حصہ (Module)ٹیسٹ کیا جاتا یہ کہ کیا سافٹ وئیر ٹھیک کام کر رہا ہے، کیا سافٹ وئیر وہی کام انجام دے رہا ہی جیسا کہ اسے دینا چاہئے، کوئی بگز یا مسائل تو نہیں۔