Software factory
سافٹ ویئر فیکٹری متعلقہ سافٹ ویئر اثاثوں کا ایک منظم مجموعہ ہے جو اسمبلی کے عمل کے ذریعے مخصوص، بیرونی طور پر متعین اختتامی صارف کی ضروریات کے مطابق کمپیوٹر سافٹ ویئر ایپلی کیشنز یا سافٹ ویئر اجزاء تیار کرنے میں مدد کرتا ہے۔ سافٹ ویئر فیکٹری روایتی مینوفیکچرنگ کے فوائد کی نقل کرنے کے لیے سافٹ ویئر ڈویلپمنٹ میں مینوفیکچرنگ تکنیک اور اصولوں کا اطلاق کرتی ہے۔ سافٹ ویئر فیکٹریاں عام طور پر آؤٹ سورس سافٹ ویئر کی تخلیق میں شامل ہوتی ہیں۔ سافٹ ویئر انجینئرنگ اور انٹرپرائز سافٹ ویئر فن تعمیر میں، سافٹ ویئر فیکٹری ایک سافٹ ویئر پروڈکٹ لائن ہے جو ایک اسکیما پر مبنی ٹیمپلیٹ کا استعمال کرتے ہوئے وسیع ٹولز، عمل اور مواد کو ترتیب دیتی ہے تاکہ فریم ورک پر مبنی اجزاء کو ڈھال کر، جمع کرکے اور ترتیب دے کر کسی آثار قدیمہ کی مصنوعات کی مختلف اقسام کی ترقی اور دیکھ بھال کو خودکار بنایا جا سکے۔ چونکہ کوڈنگ کے لیے ایک سافٹ ویئر انجینئر (یا روایتی مینوفیکچرنگ میں متوازی، ایک ہنر مند کاریگر) کی ضرورت ہوتی ہے، اسے ایپلی کیشن پرت پر عمل سے ہٹا دیا جاتا ہے، اور سافٹ ویئر روایتی آئی ڈی ای کے استعمال کے بجائے پہلے سے طے شدہ اجزاء کو جمع کرکے بنایا جاتا ہے۔ روایتی کوڈنگ صرف نئے اجزاء یا خدمات بنانے کے لیے چھوڑی جاتی ہے۔ روایتی مینوفیکچرنگ کی طرح، انجینئرنگ کو اجزاء کی تخلیق اور نظام کے لیے ضروریات کو جمع کرنے پر چھوڑ دیا جاتا ہے۔ سافٹ ویئر فیکٹری میں مینوفیکچرنگ کا حتمی نتیجہ ایک جامع ایپلی کیشن ہے۔ پرپز سافٹ ویئر فیکٹری پر مبنی ایپلی کیشن ڈویلپمنٹ روایتی ایپلی کیشن ڈویلپمنٹ کے مسئلے کو حل کرتی ہے جہاں ایپلی کیشنز کو حاصل کردہ علم اور اسی طرح کی ایپلی کیشنز کو تیار کرنے سے پیدا ہونے والے اثاثوں سے فائدہ اٹھائے بغیر تیار اور فراہم کیا جاتا ہے۔ بہت سے نقطہ نظر، جیسے تربیت، دستاویزات، اور فریم ورک، اس مسئلے کو حل کرنے کے لیے استعمال کیے جاتے ہیں۔ تاہم، متعدد ایپلی کیشنز کی ترقی کے دوران پہلے حاصل کردہ قیمتی علم کو مستقل طور پر لاگو کرنے کے لیے ان طریقوں کا استعمال ایک غیر موثر اور غلطی کا شکار عمل ہو سکتا ہے۔ سافٹ ویئر فیکٹریاں مربوط رہنمائی کے پیکیج کے اندر ایپلی کیشن کے ایک مخصوص انداز کو تیار کرنے کے لیے ثابت شدہ طریقوں کو انکوڈنگ کرکے اس مسئلے کو حل کرتی ہیں جو پروجیکٹ ٹیموں کے لیے اپنانا آسان ہے۔ ایک موزوں سافٹ ویئر فیکٹری کا استعمال کرتے ہوئے ایپلی کیشنز تیار کرنا بہت سے فوائد فراہم کر سکتا ہے، جیسے کہ بہتر پیداواری صلاحیت، معیار اور ارتقاء کی صلاحیت۔ اجزاء سافٹ ویئر فیکٹریاں منفرد ہیں اور اس لیے ان میں اثاثوں کا ایک منفرد مجموعہ ہوتا ہے جو ایک مخصوص قسم کی ایپلی کیشن بنانے میں مدد کے لیے ڈیزائن کیا گیا ہے۔ عام طور پر، زیادہ تر سافٹ ویئر فیکٹریوں میں درج ذیل اقسام کے باہم منسلک اثاثے ہوتے ہیں: فیکٹری اسکیما: ایک دستاویز جو کسی نظام کی تعمیر اور دیکھ بھال کے لیے استعمال ہونے والے اثاثوں کی درجہ بندی اور خلاصہ کرتی ہے (جیسے کہ ایکس ایم ایل دستاویزات، ماڈل وغیرہ)۔ منظم طریقے سے، اور ان کے درمیان تعلقات کی وضاحت کرتا ہے۔ حوالہ جات کا نفاذ: ایک حقیقت پسندانہ، تیار شدہ پروڈکٹ کی مثال فراہم کرتا ہے جسے سافٹ ویئر فیکٹری ڈویلپرز کی تعمیر میں مدد کرتا ہے۔ فن تعمیر کی رہنمائی اور نمونے: ایپلی کیشن ڈیزائن کے انتخاب اور ان انتخاب کے محرک کی وضاحت کرنے میں مدد کریں۔ کس طرح کے موضوعات: کاموں کو مکمل کرنے کے لیے طریقہ کار اور ہدایات فراہم کریں۔ ترکیبیں: مکمل طور پر یا مخصوص مراحل میں ہاؤ ٹو موضوعات میں خودکار طریقہ کار۔ وہ ڈویلپرز کو کم سے کم ان پٹ کے ساتھ معمول کے کاموں کو مکمل کرنے میں مدد کر سکتے ہیں۔ ٹیمپلیٹس: دلائل کے لیے پلیس ہولڈرز کے ساتھ پہلے سے تیار کردہ ایپلی کیشن عناصر۔ انہیں ابتدائی پروجیکٹ آئٹمز بنانے کے لیے استعمال کیا جا سکتا ہے۔ ڈیزائنرز: ایسی معلومات فراہم کریں جو ڈویلپرز تجریدی کی اعلی سطح پر ایپلی کیشنز کو ماڈل بنانے کے لیے استعمال کر سکتے ہیں۔ دوبارہ قابل استعمال کوڈ: وہ اجزاء جو عام فعالیت یا میکانزم کو نافذ کرتے ہیں۔ سافٹ ویئر فیکٹری میں دوبارہ قابل استعمال کوڈ کا انضمام دستی طور پر لکھے گئے کوڈ کی ضروریات کو کم کرتا ہے اور تمام ایپلی کیشنز میں دوبارہ استعمال کی حوصلہ افزائی کرتا ہے۔ سافٹ ویئر فیکٹری کا استعمال کرتے ہوئے پروڈکٹ کی تعمیر میں درج ذیل سرگرمیاں شامل ہوتی ہیں: مسئلہ کا تجزیہ: اس بات کا تعین کرتا ہے کہ آیا پروڈکٹ سافٹ ویئر فیکٹری کے دائرہ کار میں ہے یا نہیں۔ فٹ اس بات کا تعین کرتا ہے کہ آیا تمام یا کچھ پروڈکٹ سافٹ ویئر فیکٹری کے ساتھ بنایا گیا ہے۔ پروڈکٹ کی تفصیلات: پروڈکٹ کی تفصیلات کے طریقہ کار کی ایک رینج کا استعمال کرتے ہوئے پروڈکٹ لائن کی ضروریات سے فرق کا خاکہ پیش کرکے پروڈکٹ کی ضروریات کی وضاحت کرتا ہے۔ پروڈکٹ ڈیزائن: اپنی مرضی کے مطابق عمل تیار کرنے کے لیے پروڈکٹ لائن فن تعمیر اور ترقیاتی عمل میں فرق کے لیے ضروریات میں فرق کا نقشہ بناتا ہے۔ پروڈکٹ کا نفاذ: اختلافات کی حد کے لحاظ سے عمل درآمد کو فروغ دینے کے لیے میکانزم کی ایک رینج استعمال کی جا سکتی ہے۔ پروڈکٹ کی تعیناتی: ڈیفالٹ تعیناتی کی رکاوٹیں پیدا کرنا یا دوبارہ استعمال کرنا اور تعینات کیے جانے والے قابل عمل آلات کو انسٹال کرنے کے لیے ضروری وسائل کو ترتیب دینا شامل ہے۔ پروڈکٹ ٹیسٹنگ: ٹیسٹ اثاثے بنانا یا دوبارہ استعمال کرنا (جیسے ٹیسٹ کیس، ڈیٹا سیٹ، اور اسکرپٹ) اور آلات اور پیمائش کے آلات کا اطلاق شامل ہے۔ فوائد سافٹ ویئر فیکٹری کا استعمال کرتے ہوئے ایپلی کیشنز تیار کرنا روایتی سافٹ ویئر ڈویلپمنٹ کے طریقوں کے مقابلے میں بہت سے فوائد فراہم کر سکتا ہے۔ ان میں درج ذیل شامل ہیں: مستقل مزاجی: سافٹ ویئر فیکٹریوں کو سافٹ ویئر پروڈکٹ لائن (اسی طرح کی خصوصیات اور فن تعمیر کا اشتراک کرنے والی ایپلی کیشنز کا ایک مجموعہ) کی متعدد مثالیں بنانے کے لیے استعمال کیا جا سکتا ہے، جس سے مستقل مزاجی حاصل کرنا آسان ہو جاتا ہے۔ یہ حکمرانی کو آسان بناتا ہے اور تربیت اور دیکھ بھال کے اخراجات کو بھی کم کرتا ہے۔ معیار: سافٹ ویئر فیکٹری کا استعمال ڈویلپرز کے لیے ثابت شدہ طریقوں کو سیکھنا اور ان پر عمل درآمد کرنا آسان بناتا ہے۔ دوبارہ قابل استعمال کوڈ کے انضمام کی وجہ سے، ڈویلپرز ان خصوصیات پر کام کرنے میں زیادہ وقت گزار سکتے ہیں جو ہر ایپلی کیشن کے لیے منفرد ہیں، جس سے ڈیزائن کی خامیوں اور کوڈ کی نقائص کے امکان کو کم کیا جا سکتا ہے۔ سافٹ ویئر فیکٹری کا استعمال کرتے ہوئے تیار کردہ ایپلی کیشنز کی تعیناتی سے پہلے بھی تصدیق کی جا سکتی ہے، اس بات کو یقینی بناتے ہوئے کہ ترقی کے دوران فیکٹری کے مخصوص بہترین طریقوں پر عمل کیا گیا تھا۔ پیداواریت: ایپلیکیشن کی ترقی کی بہت سی سرگرمیاں ہموار اور خودکار ہو سکتی ہیں، جیسے سافٹ ویئر اثاثوں کا دوبارہ استعمال اور ایپلیکیشن عناصر اور میکانزم کے خلاصہ سے کوڈ تیار کرنا۔ یہ فوائد مندرجہ ذیل طریقوں سے کئی مختلف ٹیموں کو قدر فراہم کر سکتے ہیں: کاروباری کاموں کی قدر کو آسان بنایا جا سکتا ہے جس سے صارف کی پیداواری صلاحیت میں نمایاں اضافہ ہو سکتا ہے۔ یہ عام اور مستقل یوزر انٹرفیس کے استعمال کے ذریعے حاصل کیا جاتا ہے جو اختتامی صارف کی تربیت کی ضرورت کو کم کرتا ہے۔ نئی اور تازہ ترین فعالیت اور لچکدار یوزر انٹرفیس کی آسان تعیناتی بھی اختتامی صارفین کو کاروباری ورک فلو کے مطابق کاموں کو انجام دینے کی اجازت دیتی ہے۔ ڈیٹا کے معیار میں بہتری اے ایل ٹی + ٹی اے بی اور کاپی اور پیسٹ تکنیک کے ذریعے ایپلی کیشن کے حصوں کے درمیان ڈیٹا کے تبادلے کی ضرورت کو کم کرتی ہے۔ آرکیٹیکٹس کے لیے قدر سافٹ ویئر فیکٹریوں کو آرکیٹیکٹس بہتر معیار اور مستقل مزاجی کے ساتھ ایپلی کیشنز اور سسٹمز کو ڈیزائن کرنے کے لیے استعمال کر سکتے ہیں۔ یہ کسی حل کے جزوی نفاذ کی صلاحیت کے ذریعے حاصل کیا جاتا ہے جس میں صرف انتہائی اہم میکانزم اور مشترکہ عناصر شامل ہوتے ہیں۔ بیس لائن فن تعمیر کے طور پر جانا جاتا ہے، اس قسم کا نفاذ ڈیزائن اور ترقی کے چیلنجوں سے نمٹ سکتا ہے، تعمیراتی فیصلوں کو بے نقاب کر سکتا ہے اور ترقیاتی چکر میں ابتدائی خطرات کو کم کر سکتا ہے۔ سافٹ ویئر فیکٹریاں کاروباری منطق سے آزاد تعمیراتی معیارات کو نافذ کرنے کے لیے کاروباری اجزاء کو تیار کرنے، پیکیجنگ کرنے، تعینات کرنے اور اپ ڈیٹ کرنے کا ایک مستقل اور پیش گوئی کرنے والا طریقہ بنانے کی صلاحیت کو بھی قابل بناتی ہیں۔ ڈویلپرز کے لیے قدر ڈویلپرز پیداواریت کو بڑھانے اور کم ریمپ اپ وقت لینے کے لیے سافٹ ویئر فیکٹریوں کا استعمال کر سکتے ہیں۔ یہ ایپلی کیشنز کے لیے ایک اعلی معیار کا ابتدائی نقطہ (بیس لائن) بنانے کے ذریعے حاصل کیا جاتا ہے جس میں کوڈ اور پیٹرن شامل ہوتے ہیں۔ یہ منصوبوں کو روایتی طور پر تیار کردہ ایپلی کیشنز کے مقابلے میں اعلی سطح کی پختگی کے ساتھ شروع کرنے کے قابل بناتا ہے۔ دوبارہ قابل استعمال اثاثے، رہنمائی اور مثالیں عام منظرناموں اور چیلنجوں سے نمٹنے میں مدد کرتی ہیں اور عام کاموں کی آٹومیشن ڈویلپرز کو آسانی سے مستقل طریقوں سے رہنمائی کا اطلاق کرنے کی اجازت دیتی ہے۔ سافٹ ویئر فیکٹریاں تجریدی کی ایک پرت فراہم کرتی ہیں جو ایپلی کیشن کی پیچیدگی کو چھپاتی ہیں اور خدشات کو الگ کرتی ہیں، جس سے ڈویلپرز کو بنیادی ڈھانچے یا بنیادی خدمات کے گہرائی سے علم کے بغیر کاروباری منطق، یوزر انٹرفیس (UI) یا ایپلی کیشن سروسز جیسے مختلف شعبوں پر توجہ مرکوز کرنے کی اجازت ملتی ہے۔ عام ڈویلپر کاموں کا خلاصہ اور انفراسٹرکچر کوڈ کے دوبارہ استعمال میں اضافہ پیداواری صلاحیت اور برقرار رکھنے میں مدد کر سکتا ہے۔ آپریشنز کے لیے قدر سافٹ ویئر فیکٹریوں کے ساتھ بنائی گئی ایپلی کیشنز کے نتیجے میں آپریشنل کوششوں کو مستحکم کیا جاتا ہے۔ یہ عام کاروباری عناصر اور ماڈیولز کی آسان تعیناتی فراہم کرتا ہے، جس کے نتیجے میں ایپلی کیشنز کے ایک مجموعے میں مستقل ترتیب کا انتظام ہوتا ہے۔ ایپلی کیشنز کو مرکزی طور پر پلگ ایبل فن تعمیر کے ساتھ منظم کیا جا سکتا ہے جو آپریشن ٹیموں کو بنیادی خدمات کو کنٹرول کرنے کی اجازت دیتا ہے۔ دیگر نقطہ نظر ایسے کئی نقطہ نظر ہیں جو سافٹ ویئر فیکٹری کے تصورات پر متضاد خیالات کی نمائندگی کرتے ہیں، جن میں ٹول پر مبنی سے لے کر عمل پر مبنی اقدامات تک شامل ہیں۔ مندرجہ ذیل نقطہ نظر جاپانی، یورپی اور شمالی امریکی اقدامات کا احاطہ کرتے ہیں۔ صنعتی سافٹ ویئر تنظیم (جاپان) اس نقطہ نظر کے تحت سافٹ ویئر فیکٹری میں تیار کردہ سافٹ ویئر بنیادی طور پر کنٹرول سسٹم، نیوکلیئر ری ایکٹرز، ٹربائنز وغیرہ کے لیے استعمال ہوتا ہے۔ اس نقطہ نظر کے اہم مقاصد پیداواریت کے ساتھ ملانے والے معیار ہیں، اس بات کو یقینی بنانا کہ بڑھتی ہوئی لاگت مسابقت کو کمزور نہ کرے۔ ایک ایسا ماحول پیدا کرنے کا اضافی مقصد بھی ہے جس میں ڈیزائن، پروگرامنگ، جانچ، انسٹالیشن اور دیکھ بھال کو متحد طریقے سے انجام دیا جا سکے۔ معیار اور پیداواریت کو بہتر بنانے کی کلید سافٹ ویئر کا دوبارہ استعمال ہے۔ تنظیمی ڈیزائن کی غالب خصوصیات میں آپریٹنگ کام کو معمول، آسان اور بار بار کرنے اور کام کے عمل کو معیاری بنانے کے لیے ایک پرعزم کوشش شامل ہے۔ اس نقطہ نظر کا نمائندہ توشیبا کا سافٹ ویئر فیکٹری تصور ہوگا، جو کمپنی کے سافٹ ویئر ڈویژن اور طریقہ کار کی نشاندہی کرتا ہے جیسا کہ وہ بالترتیب 1981 اور 1987 میں تھے۔ عام سافٹ ویئر فیکٹری (یورپ) اس نقطہ نظر کو یوریکا پروگرام کے تحت مالی اعانت فراہم کی گئی تھی اور اسے یوریکا سافٹ ویئر فیکٹری کہا جاتا تھا۔ اس پروجیکٹ میں حصہ لینے والوں میں بڑی یورپی کمپنیاں، کمپیوٹر مینوفیکچررز، سافٹ ویئر ہاؤسز، تحقیقی ادارے اور یونیورسٹیاں شامل ہیں۔ اس نقطہ نظر کا مقصد ٹیکنالوجی، معیارات، تنظیمی مدد اور دیگر ضروری بنیادی ڈھانچے فراہم کرنا ہے تاکہ سافٹ ویئر فیکٹریوں کی تعمیر اور آزاد سپلائرز کے ذریعہ مارکیٹنگ کے اجزاء کے مطابق بنایا جا سکے۔ اس نقطہ نظر کا مقصد مربوط ترقیاتی ماحول کے لیے ایک فن تعمیر اور فریم ورک تیار کرنا ہے۔ عام سافٹ ویئر فیکٹری ایسے اجزاء اور پیداواری ماحول تیار کرتی ہے جو سافٹ ویئر فیکٹریوں کا حصہ ہیں اور سافٹ ویئر اجزاء کے معیارات اور رہنمائی کے ساتھ۔ تجربے پر مبنی اجزاء کی فیکٹری (شمالی امریکہ) تجربہ کار پر مبنی اجزاء کی فیکٹری ناسا گوڈرڈ اسپیس فلائٹ سینٹر میں سافٹ ویئر انجینئرنگ لیبارٹری میں تیار کی گئی ہے۔ اس نقطہ نظر کے مقاصد "پیداواری ماحول میں سافٹ ویئر کے عمل کو سمجھنا، دستیاب ٹیکنالوجیز کے اثرات کا تعین کرنا اور شناخت شدہ/بہتر طریقوں کو ترقیاتی عمل میں واپس لانا" ہیں۔ نقطہ نظر یہ رہا ہے کہ پیداواری ماحول میں نئی ٹیکنالوجیز کے ساتھ تجربہ کیا جائے، تجربات سے تجربات اور ڈیٹا کو نکالا جائے اور لاگو کیا جائے اور لاگت، وشوسنییتا اور معیار کے حوالے سے اثرات کی پیمائش کی جائے۔ یہ نقطہ نظر بعض عمل کی خصوصیات اور مصنوعات کی خصوصیات کے درمیان تعلقات کو سمجھنے کے ذریعے مسلسل بہتری پر بہت زیادہ زور دیتا ہے۔ سافٹ ویئر فیکٹری کا استعمال طاقت اور کمزوریوں کے بارے میں ڈیٹا اکٹھا کرنے کے لیے کیا جاتا ہے تاکہ بہتری کے لیے بنیادی لائنیں طے کی جا سکیں اور نئے منصوبوں میں دوبارہ استعمال ہونے والے تجربات کو جمع کیا جا سکے۔ بالغ سافٹ ویئر تنظیم (شمالی امریکہ) کیپیبلٹی میچوریٹی ماڈل کے ذریعہ متعین، اس نقطہ نظر کا مقصد ایک پیش گوئی، قابل اعتماد، اور خود کو بہتر بنانے والے سافٹ ویئر ڈویلپمنٹ کے عمل کو حاصل کرنے کے لیے ایک فریم ورک بنانا ہے جو اعلی معیار کا سافٹ ویئر تیار کرتا ہے۔ حکمت عملی سافٹ ویئر تنظیم میں مرحلہ وار بہتریوں پر مشتمل ہے، جس میں یہ وضاحت کی گئی ہے کہ کون سے عمل ترقی میں کلیدی حیثیت رکھتے ہیں۔ سافٹ ویئر کے عمل اور سافٹ ویئر پروڈکٹ کے معیار کا اندازہ لگایا جا سکتا ہے کیونکہ انہیں قابل پیمائش حدود میں رکھا جاتا ہے۔ یہ اصطلاح اپنانے والی پہلی کمپنی ہٹاچی تھی جس نے 1969 میں اپنے ہٹاچی سافٹ ویئر ورکس کے ساتھ۔ بعد میں، 1975 میں سسٹم ڈویلپمنٹ کارپوریشن، 1976 اور 1977 میں این ای سی، توشیبا اور فوجیسو جیسی دیگر کمپنیوں نے بھی اسی تنظیمی نقطہ نظر کی پیروی کی۔ کسومانو تجویز کرتے ہیں کہ سافٹ ویئر فیکٹریوں کے لیے چھ مراحل ہیں: بنیادی تنظیم اور انتظامی ڈھانچہ (1960 کی دہائی کے وسط سے 1970 کی دہائی کے اوائل تک) ٹیکنالوجی ٹیلرنگ اور معیاری کاری (1970 کی دہائی کے آخر سے 1980 کی دہائی کے اوائل تک) پروسیس میکانائزیشن اور سپورٹ (1970 کی دہائی کے آخر میں) پروسیس ریفائنمنٹ اور ایکسٹینشن (1980 کی دہائی کے اوائل میں) انٹیگریٹڈ اور لچکدار آٹومیشن (1980 کی دہائی کے وسط میں) انکریمینٹل پروڈکٹ/مختلف قسم کی بہتری (1980 کی دہائی کے آخر میں) سافٹ ویئر پروڈکٹ لائن سافٹ ویئر لائف سائیکل پروسیس سافٹ ویئر انجینئرنگ سسٹمز انجینئرنگ سافٹ ویئر ڈویلپمنٹ پروسیس آٹومیٹک پروگرامنگ ڈومین-اسپیسیفیک ماڈلنگ (ڈی ایس ایم) ماڈل ڈرائیو انجینئرنگ (ایم ڈی ای) حوالہ جات بیرونی روابط ہارورڈ بزنس ریویو وپرو ٹیکنالوجیز: آف شورنگ کے بغیر فیکٹری ماڈل آؤٹ سورسنگ 'سافٹ ویئر فیکٹری' کا مقصد ہے۔