Software factory
સોફ્ટવેર ફેક્ટરી એ સંબંધિત સોફ્ટવેર અસ્કયામતોના માળખાગત સંગ્રહ છે જે એસેમ્બલી પ્રક્રિયા દ્વારા ચોક્કસ, બાહ્ય રીતે વ્યાખ્યાયિત અંતિમ-વપરાશકર્તાની જરૂરિયાતો અનુસાર કમ્પ્યુટર સોફ્ટવેર એપ્લિકેશન્સ અથવા સોફ્ટવેર ઘટકોના ઉત્પાદનમાં મદદ કરે છે. સોફ્ટવેર ફેક્ટરી પરંપરાગત ઉત્પાદનના ફાયદાઓની નકલ કરવા માટે સોફ્ટવેર વિકાસ માટે ઉત્પાદન તકનીકો અને સિદ્ધાંતોને લાગુ કરે છે. સોફ્ટવેર ફેક્ટરીઓ સામાન્ય રીતે આઉટસોર્સ સોફ્ટવેર બનાવટ સાથે સંકળાયેલી હોય છે. સોફ્ટવેર એન્જિનિયરિંગ અને એન્ટરપ્રાઇઝ સોફ્ટવેર આર્કિટેક્ચરમાં, સોફ્ટવેર ફેક્ટરી એ એક સોફ્ટવેર પ્રોડક્ટ લાઇન છે જે માળખા-આધારિત ઘટકોને અનુકૂળ, એસેમ્બલ અને રૂપરેખાંકિત કરીને આર્કેટિપિકલ પ્રોડક્ટના પ્રકારોના વિકાસ અને જાળવણીને સ્વચાલિત કરવા માટે યોજના પર આધારિત નમૂનાનો ઉપયોગ કરીને વ્યાપક સાધનો, પ્રક્રિયાઓ અને સામગ્રીને ગોઠવે છે. કોડિંગ માટે સોફ્ટવેર એન્જિનિયર (અથવા પરંપરાગત ઉત્પાદનમાં સમાંતર, એક કુશળ કારીગર) ની જરૂર હોવાથી તેને એપ્લિકેશન સ્તર પરની પ્રક્રિયામાંથી દૂર કરવામાં આવે છે, અને સોફ્ટવેર પરંપરાગત IDE નો ઉપયોગ કરવાને બદલે પૂર્વવ્યાખ્યાયિત ઘટકોને ભેગા કરીને બનાવવામાં આવે છે. પરંપરાગત કોડિંગ માત્ર નવા ઘટકો અથવા સેવાઓ બનાવવા માટે જ બાકી છે. પરંપરાગત ઉત્પાદનની જેમ, ઇજનેરી ઘટકોની રચના અને સિસ્ટમ માટેની જરૂરિયાતોને એકત્રિત કરવા માટે છોડી દેવામાં આવે છે. સોફ્ટવેર ફેક્ટરીમાં ઉત્પાદનનું અંતિમ પરિણામ એક સંયુક્ત એપ્લિકેશન છે. પર્પઝ સોફ્ટવેર ફેક્ટરી-આધારિત એપ્લિકેશન ડેવલપમેન્ટ પરંપરાગત એપ્લિકેશન ડેવલપમેન્ટની સમસ્યાને સંબોધિત કરે છે જ્યાં એપ્લિકેશનો વિકસાવવામાં આવે છે અને સમાન એપ્લિકેશનો વિકસાવવાથી પ્રાપ્ત જ્ઞાન અને ઉત્પાદિત સંપત્તિનો લાભ લીધા વિના વિતરિત કરવામાં આવે છે. આ સમસ્યાને ઉકેલવા માટે તાલીમ, દસ્તાવેજીકરણ અને માળખા જેવા ઘણા અભિગમોનો ઉપયોગ કરવામાં આવે છે; જો કે, બહુવિધ એપ્લિકેશનોના વિકાસ દરમિયાન અગાઉ મેળવેલા મૂલ્યવાન જ્ઞાનને સતત લાગુ કરવા માટે આ અભિગમોનો ઉપયોગ કરવો એ બિનકાર્યક્ષમ અને ભૂલ-સંભવિત પ્રક્રિયા હોઈ શકે છે. સોફ્ટવેર ફેક્ટરીઓ સંકલિત માર્ગદર્શનના પેકેજમાં એપ્લિકેશનની ચોક્કસ શૈલી વિકસાવવા માટે સાબિત પદ્ધતિઓને એન્કોડિંગ કરીને આ સમસ્યાનું સમાધાન કરે છે જે પ્રોજેક્ટ ટીમો માટે અપનાવવા માટે સરળ છે. યોગ્ય સોફ્ટવેર કારખાનાનો ઉપયોગ કરીને એપ્લિકેશનો વિકસાવવાથી ઉત્પાદકતા, ગુણવત્તા અને ઉત્ક્રાંતિ ક્ષમતામાં સુધારો જેવા ઘણા લાભો મળી શકે છે. ઘટકો સોફ્ટવેર ફેક્ટરીઓ અનન્ય છે અને તેથી તેમાં ચોક્કસ પ્રકારની એપ્લિકેશન બનાવવામાં મદદ કરવા માટે રચાયેલ અસ્કયામતોના અનન્ય સમૂહનો સમાવેશ થાય છે. સામાન્ય રીતે, મોટાભાગની સોફ્ટવેર ફેક્ટરીઓમાં નીચેના પ્રકારની આંતરસંબંધિત અસ્કયામતો હોય છેઃ ફેક્ટરી યોજનાઃ એક દસ્તાવેજ જે સિસ્ટમ બનાવવા અને જાળવવા માટે ઉપયોગમાં લેવાતી અસ્કયામતોને વર્ગીકૃત કરે છે અને સારાંશ આપે છે (જેમ કે XML દસ્તાવેજો, નમૂનાઓ, વગેરે). સુવ્યવસ્થિત રીતે, અને તેમની વચ્ચેના સંબંધોને વ્યાખ્યાયિત કરે છે. સંદર્ભ અમલીકરણઃ એક વાસ્તવિક, તૈયાર ઉત્પાદનનું ઉદાહરણ પૂરું પાડે છે જે સોફ્ટવેર ફેક્ટરી વિકાસકર્તાઓને બનાવવામાં મદદ કરે છે. આર્કિટેક્ચર માર્ગદર્શન અને પેટર્નઃ એપ્લિકેશન ડિઝાઇન પસંદગીઓ અને તે પસંદગીઓ માટેની પ્રેરણા સમજાવવામાં મદદ કરો. વિષયો કેવી રીતેઃ કાર્યો પૂર્ણ કરવા માટે પ્રક્રિયાઓ અને સૂચનાઓ પ્રદાન કરો. વાનગીઓઃ કેવી રીતે કરવું તે વિષયોમાં પ્રક્રિયાઓને સંપૂર્ણપણે અથવા ચોક્કસ પગલાંઓમાં સ્વચાલિત કરો. તેઓ વિકાસકર્તાઓને ન્યૂનતમ ઇનપુટ સાથે નિયમિત કાર્યો પૂર્ણ કરવામાં મદદ કરી શકે છે. નમૂનાઓઃ દલીલો માટે પ્લેસહોલ્ડર્સ સાથે પૂર્વ-નિર્મિત એપ્લિકેશન ઘટકો. તેનો ઉપયોગ પ્રારંભિક પ્રોજેક્ટ વસ્તુઓ બનાવવા માટે થઈ શકે છે. ડિઝાઇનર્સઃ એવી માહિતી પ્રદાન કરો કે જેનો ઉપયોગ વિકાસકર્તાઓ અમૂર્તતાના ઉચ્ચ સ્તર પર કાર્યક્રમો તૈયાર કરવા માટે કરી શકે. ફરીથી વાપરી શકાય તેવો કોડઃ એવા ઘટકો કે જે સામાન્ય કાર્યક્ષમતા અથવા પદ્ધતિઓનો અમલ કરે છે. સોફ્ટવેર ફેક્ટરીમાં ફરીથી વાપરી શકાય તેવા કોડનું એકીકરણ જાતે લખેલા કોડની જરૂરિયાતોને ઘટાડે છે અને તમામ એપ્લિકેશનોમાં પુનઃઉપયોગને પ્રોત્સાહિત કરે છે. ઉત્પાદન વિકાસ સોફ્ટવેર ફેક્ટરીનો ઉપયોગ કરીને ઉત્પાદન બનાવવા માટે નીચેની પ્રવૃત્તિઓનો સમાવેશ થાય છેઃ સમસ્યાનું વિશ્લેષણઃ ઉત્પાદન સોફ્ટવેર ફેક્ટરીના દાયરામાં છે કે કેમ તે નક્કી કરે છે. ફિટ એ નક્કી કરે છે કે તમામ અથવા અમુક ઉત્પાદન સોફ્ટવેર ફેક્ટરી સાથે બનેલું છે કે નહીં. ઉત્પાદન સ્પષ્ટીકરણઃ ઉત્પાદન સ્પષ્ટીકરણ પદ્ધતિઓની શ્રેણીનો ઉપયોગ કરીને ઉત્પાદન શ્રેણીની જરૂરિયાતોમાંથી તફાવતોની રૂપરેખા આપીને ઉત્પાદનની જરૂરિયાતોને વ્યાખ્યાયિત કરે છે. ઉત્પાદન ડિઝાઇનઃ કસ્ટમાઇઝ્ડ પ્રક્રિયા બનાવવા માટે ઉત્પાદન લાઇન આર્કિટેક્ચર અને વિકાસ પ્રક્રિયામાં તફાવતો માટે જરૂરિયાતોમાં તફાવતોને મેપ કરે છે. ઉત્પાદન અમલીકરણઃ તફાવતોની હદને આધારે અમલીકરણ વિકસાવવા માટે વિવિધ પદ્ધતિઓનો ઉપયોગ કરી શકાય છે. ઉત્પાદનની જમાવટઃ મૂળભૂત જમાવટની મર્યાદાઓ બનાવવી અથવા તેનો ફરીથી ઉપયોગ કરવો અને જમાવવામાં આવી રહેલા એક્ઝેક્યુટેબલને સ્થાપિત કરવા માટે જરૂરી સંસાધનોને ગોઠવવાનો સમાવેશ થાય છે. ઉત્પાદન પરીક્ષણઃ પરીક્ષણ અસ્કયામતો (જેમ કે પરીક્ષણના કિસ્સાઓ, ડેટા સમૂહો અને સ્ક્રિપ્ટ્સ) બનાવવી અથવા તેનો ફરીથી ઉપયોગ કરવો અને સાધનસામગ્રી અને માપન સાધનોનો ઉપયોગ કરવો. ફાયદા સોફ્ટવેર ફેક્ટરીનો ઉપયોગ કરીને કાર્યક્રમો વિકસાવવાથી પરંપરાગત સોફ્ટવેર વિકાસ અભિગમોની સરખામણીમાં ઘણા ફાયદા થઈ શકે છે. આમાં નીચેનાનો સમાવેશ થાય છેઃ સુસંગતતાઃ સોફ્ટવેર ફેક્ટરીઓનો ઉપયોગ સોફ્ટવેર ઉત્પાદન શ્રેણીના બહુવિધ ઉદાહરણો (સમાન સુવિધાઓ અને આર્કિટેક્ચરને શેર કરતી એપ્લિકેશનોનો સમૂહ) બનાવવા માટે થઈ શકે છે, જે સુસંગતતા પ્રાપ્ત કરવાનું સરળ બનાવે છે. આ શાસનને સરળ બનાવે છે અને તાલીમ અને જાળવણી ખર્ચમાં પણ ઘટાડો કરે છે. ગુણવત્તાઃ સોફ્ટવેર કારખાનાનો ઉપયોગ વિકાસકર્તાઓ માટે સાબિત પદ્ધતિઓ શીખવા અને અમલમાં મૂકવાનું સરળ બનાવે છે. ફરીથી વાપરી શકાય તેવા કોડના એકીકરણને કારણે, વિકાસકર્તાઓ દરેક એપ્લિકેશન માટે અનન્ય સુવિધાઓ પર કામ કરવામાં વધુ સમય પસાર કરી શકે છે, જે ડિઝાઇનની ભૂલો અને કોડની ખામીઓની શક્યતાને ઘટાડે છે. સોફ્ટવેર ફેક્ટરીનો ઉપયોગ કરીને વિકસાવવામાં આવેલી એપ્લિકેશનોની જમાવટ પહેલાં ચકાસણી પણ કરી શકાય છે, જે સુનિશ્ચિત કરે છે કે વિકાસ દરમિયાન ફેક્ટરી-વિશિષ્ટ શ્રેષ્ઠ પદ્ધતિઓનું પાલન કરવામાં આવ્યું હતું. ઉત્પાદકતાઃ ઘણી એપ્લિકેશન વિકાસ પ્રવૃત્તિઓ સુવ્યવસ્થિત અને સ્વચાલિત થઈ શકે છે, જેમ કે સોફ્ટવેર અસ્કયામતોના પુનઃઉપયોગ અને એપ્લિકેશન ઘટકો અને પદ્ધતિઓના અમૂર્તમાંથી કોડ જનરેટ કરવો. આ લાભો નીચેની રીતે વિવિધ ટીમોને મૂલ્ય પ્રદાન કરી શકે છેઃ વ્યવસાય માટે મૂલ્ય વ્યવસાયિક કાર્યોને સરળ બનાવી શકાય છે જે વપરાશકર્તા ઉત્પાદકતામાં નોંધપાત્ર વધારો કરી શકે છે. આ સામાન્ય અને સુસંગત વપરાશકર્તા ઇન્ટરફેસનો ઉપયોગ કરીને પ્રાપ્ત થાય છે જે અંતિમ વપરાશકર્તા તાલીમની જરૂરિયાતને ઘટાડે છે. નવી અને અદ્યતન કાર્યક્ષમતા અને લવચીક વપરાશકર્તા ઇન્ટરફેસોની સરળ જમાવટ પણ અંતિમ વપરાશકર્તાઓને વ્યવસાયિક કાર્યપ્રવાહને અનુસરતી રીતે કાર્યો કરવાની મંજૂરી આપે છે. માહિતીની ગુણવત્તામાં સુધારા એ. એલ. ટી. + ટી. એ. બી. અને કોપી અને પેસ્ટ તકનીકો દ્વારા એપ્લિકેશન ભાગો વચ્ચે માહિતીના વિનિમયની જરૂરિયાતને ઘટાડે છે. આર્કિટેક્ટ્સ માટે મૂલ્ય સોફ્ટવેર ફેક્ટરીઓનો ઉપયોગ આર્કિટેક્ટ્સ દ્વારા સુધારેલી ગુણવત્તા અને સુસંગતતા સાથે એપ્લિકેશનો અને સિસ્ટમોની રચના કરવા માટે કરી શકાય છે. આ ઉકેલના આંશિક અમલીકરણની ક્ષમતા દ્વારા પ્રાપ્ત થાય છે જેમાં ફક્ત સૌથી નિર્ણાયક પદ્ધતિઓ અને વહેંચાયેલ ઘટકોનો સમાવેશ થાય છે. બેઝલાઇન આર્કિટેક્ચર તરીકે ઓળખાય છે, આ પ્રકારનું અમલીકરણ ડિઝાઇન અને વિકાસના પડકારોને સંબોધિત કરી શકે છે, આર્કિટેક્ચરલ નિર્ણયોને ખુલ્લી પાડી શકે છે અને વિકાસ ચક્રની શરૂઆતમાં જોખમોને ઘટાડી શકે છે. સોફ્ટવેર ફેક્ટરીઓ વ્યવસાયિક તર્કથી સ્વતંત્ર સ્થાપત્ય ધોરણોને લાગુ કરવા માટે વ્યવસાયિક ઘટકોને વિકસાવવા, પેકેજિંગ કરવા, જમાવવા અને અપડેટ કરવાની સુસંગત અને અનુમાનિત રીત બનાવવાની ક્ષમતાને પણ સક્ષમ કરે છે. વિકાસકર્તાઓ માટે મૂલ્ય વિકાસકર્તાઓ ઉત્પાદકતા વધારવા માટે સોફ્ટવેર ફેક્ટરીઓનો ઉપયોગ કરી શકે છે અને તેમાં ઓછો સમય લાગી શકે છે. આ કાર્યક્રમો માટે ઉચ્ચ ગુણવત્તાની પ્રારંભિક બિંદુ (આધારરેખા) બનાવીને પ્રાપ્ત થાય છે જેમાં કોડ અને પેટર્નનો સમાવેશ થાય છે. આ પરિયોજનાઓને પરંપરાગત રીતે વિકસિત કાર્યક્રમો કરતાં ઉચ્ચ સ્તરની પરિપક્વતા સાથે શરૂ કરવામાં સક્ષમ બનાવે છે. ફરીથી વાપરી શકાય તેવી અસ્કયામતો, માર્ગદર્શન અને ઉદાહરણો સામાન્ય પરિસ્થિતિઓ અને પડકારોને સંબોધવામાં મદદ કરે છે અને સામાન્ય કાર્યોનું ઓટોમેશન વિકાસકર્તાઓને સુસંગત રીતે માર્ગદર્શન સરળતાથી લાગુ કરવાની મંજૂરી આપે છે. સોફ્ટવેર ફેક્ટરીઓ અમૂર્તતાનું એક સ્તર પ્રદાન કરે છે જે એપ્લિકેશનની જટિલતાને છુપાવે છે અને ચિંતાઓને અલગ કરે છે, વિકાસકર્તાઓને ઇન્ફ્રાસ્ટ્રક્ચર અથવા બેઝલાઇન સેવાઓના ઊંડાણપૂર્વકના જ્ઞાન વિના બિઝનેસ લોજિક, યુઝર ઇન્ટરફેસ (UI) અથવા એપ્લિકેશન સેવાઓ જેવા વિવિધ ક્ષેત્રો પર ધ્યાન કેન્દ્રિત કરવાની મંજૂરી આપે છે. સામાન્ય વિકાસકર્તા કાર્યોનું સંક્ષિપ્તકરણ અને માળખાગત કોડની પુનઃઉપયોગીતામાં વધારો ઉત્પાદકતા અને જાળવણીક્ષમતામાં વધારો કરવામાં મદદ કરી શકે છે. કામગીરી માટે મૂલ્ય સોફ્ટવેર ફેક્ટરીઓ સાથે બનેલી એપ્લિકેશનો કામગીરીના પ્રયાસોના એકીકરણમાં પરિણમે છે. આ સામાન્ય વ્યવસાયિક ઘટકો અને મોડ્યુલોની સરળ જમાવટ પૂરી પાડે છે, પરિણામે એપ્લિકેશનોના સમૂહમાં સુસંગત રૂપરેખાંકન વ્યવસ્થાપન થાય છે. એપ્લિકેશન્સને કેન્દ્રીય રીતે પ્લગેબલ આર્કિટેક્ચર સાથે સંચાલિત કરી શકાય છે જે ઓપરેશન્સ ટીમોને મૂળભૂત સેવાઓને નિયંત્રિત કરવાની મંજૂરી આપે છે. અન્ય અભિગમો એવા ઘણા અભિગમો છે જે સોફ્ટવેર ફેક્ટરીની વિભાવનાઓ પર વિરોધાભાસી મંતવ્યોનું પ્રતિનિધિત્વ કરે છે, જેમાં સાધન લક્ષીથી લઈને પ્રક્રિયા લક્ષી પહેલોનો સમાવેશ થાય છે. નીચેના અભિગમો જાપાનીઝ, યુરોપિયન અને ઉત્તર અમેરિકન પહેલને આવરી લે છે. ઔદ્યોગિક સોફ્ટવેર સંગઠન (જાપાન) આ અભિગમ હેઠળ, સોફ્ટવેર ફેક્ટરીમાં ઉત્પાદિત સોફ્ટવેરનો ઉપયોગ મુખ્યત્વે નિયંત્રણ પ્રણાલીઓ, પરમાણુ રિએક્ટર, ટર્બાઇન વગેરે માટે થાય છે. આ અભિગમના મુખ્ય ઉદ્દેશો ઉત્પાદકતા સાથે મેળ ખાતી ગુણવત્તા છે, જે સુનિશ્ચિત કરે છે કે વધેલા ખર્ચ સ્પર્ધાત્મકતાને નબળી ન પાડે. એક એવું વાતાવરણ ઊભું કરવાનો પણ વધારાનો ઉદ્દેશ છે જેમાં ડિઝાઇન, પ્રોગ્રામિંગ, પરીક્ષણ, સ્થાપન અને જાળવણી એકીકૃત રીતે કરી શકાય. ગુણવત્તા અને ઉત્પાદકતામાં સુધારો કરવાની ચાવી એ સોફ્ટવેરનો પુનઃઉપયોગ છે. સંસ્થાકીય રચનાના મુખ્ય લક્ષણોમાં સંચાલન કાર્યને નિયમિત, સરળ અને પુનરાવર્તિત બનાવવા અને કાર્ય પ્રક્રિયાઓને પ્રમાણિત કરવા માટે નિર્ધારિત પ્રયાસનો સમાવેશ થાય છે. આ અભિગમનો પ્રતિનિધિ તોશિબાનો સોફ્ટવેર ફેક્ટરી ખ્યાલ હશે, જે અનુક્રમે 1981 અને 1987માં કંપનીના સોફ્ટવેર વિભાગ અને પ્રક્રિયાઓને સૂચવે છે. સામાન્ય સોફ્ટવેર ફેક્ટરી (યુરોપ) આ અભિગમને યુરેકા પ્રોગ્રામ હેઠળ ભંડોળ પૂરું પાડવામાં આવ્યું હતું અને તેને યુરેકા સોફ્ટવેર ફેક્ટરી કહેવામાં આવ્યું હતું. આ પ્રોજેક્ટમાં ભાગ લેનારાઓમાં મોટી યુરોપિયન કંપનીઓ, કમ્પ્યુટર ઉત્પાદકો, સોફ્ટવેર ગૃહો, સંશોધન સંસ્થાઓ અને યુનિવર્સિટીઓ છે. આ અભિગમનો ઉદ્દેશ ટેકનોલોજી, ધોરણો, સંગઠનાત્મક સમર્થન અને અન્ય જરૂરી માળખાગત સુવિધાઓ પૂરી પાડવાનો છે જેથી સોફ્ટવેર ફેક્ટરીઓનું નિર્માણ અને સ્વતંત્ર સપ્લાયરો દ્વારા માર્કેટિંગ કરવામાં આવતા ઘટકોને અનુરૂપ બનાવી શકાય. આ અભિગમનો ઉદ્દેશ સંકલિત વિકાસ વાતાવરણ માટે એક માળખું અને માળખું તૈયાર કરવાનો છે. સામાન્ય સોફ્ટવેર ફેક્ટરી એવા ઘટકો અને ઉત્પાદન વાતાવરણ વિકસાવે છે જે સોફ્ટવેર ઘટકો માટે ધોરણો અને માર્ગદર્શન સાથે મળીને સોફ્ટવેર ફેક્ટરીઓનો ભાગ છે. અનુભવ આધારિત ઘટક ફેક્ટરી (ઉત્તર અમેરિકા) અનુભવી આધારિત ઘટક ફેક્ટરી નાસા ગોડાર્ડ સ્પેસ ફ્લાઇટ સેન્ટર ખાતે સોફ્ટવેર એન્જિનિયરિંગ લેબોરેટરીમાં વિકસાવવામાં આવી છે. આ અભિગમના ધ્યેયો "ઉત્પાદન વાતાવરણમાં સોફ્ટવેર પ્રક્રિયાને સમજવા, ઉપલબ્ધ તકનીકોની અસર નક્કી કરવા અને ઓળખાયેલ/શુદ્ધ પદ્ધતિઓને વિકાસ પ્રક્રિયામાં પાછા લાવવા" છે. ઉત્પાદનના વાતાવરણમાં નવી તકનીકો સાથે પ્રયોગ કરવાનો, પ્રયોગોમાંથી અનુભવો અને માહિતીને બહાર કાઢવાનો અને લાગુ કરવાનો અને ખર્ચ, વિશ્વસનીયતા અને ગુણવત્તાના સંદર્ભમાં અસરને માપવાનો અભિગમ રહ્યો છે. આ અભિગમ ચોક્કસ પ્રક્રિયાની લાક્ષણિકતાઓ અને ઉત્પાદનના ગુણો વચ્ચેના સંબંધને સમજીને સતત સુધારણા પર ભારે ભાર મૂકે છે. સોફ્ટવેર કારખાનાનો ઉપયોગ સુધારા માટે આધારરેખા નક્કી કરવા અને નવા પ્રોજેક્ટ્સમાં ફરીથી ઉપયોગમાં લેવા માટેના અનુભવો એકત્રિત કરવા માટે શક્તિ અને નબળાઈઓ વિશેની માહિતી એકત્રિત કરવા માટે થાય છે. પરિપક્વ સોફ્ટવેર સંસ્થા (ઉત્તર અમેરિકા) ક્ષમતા પરિપક્વતા મોડેલ દ્વારા વ્યાખ્યાયિત, આ અભિગમનો હેતુ અનુમાનિત, વિશ્વસનીય અને સ્વ-સુધારણા સોફ્ટવેર વિકાસ પ્રક્રિયાને પ્રાપ્ત કરવા માટે એક માળખું બનાવવાનો છે જે ઉચ્ચ ગુણવત્તાના સોફ્ટવેરનું ઉત્પાદન કરે છે. વ્યૂહરચનામાં સોફ્ટવેર સંસ્થામાં તબક્કાવાર સુધારાઓનો સમાવેશ થાય છે, જેમાં વિકાસમાં કઈ પ્રક્રિયાઓ ચાવીરૂપ છે તે વ્યાખ્યાયિત કરવામાં આવે છે. સોફ્ટવેર પ્રક્રિયા અને સોફ્ટવેર ઉત્પાદનની ગુણવત્તા અનુમાનિત છે કારણ કે તેમને માપી શકાય તેવી મર્યાદામાં રાખવામાં આવે છે. ઇતિહાસ આ શબ્દ અપનાવનારી પ્રથમ કંપની હિટાચી હતી જેણે 1969માં હિટાચી સોફ્ટવેર વર્ક્સ સાથે કામ કર્યું હતું. બાદમાં, 1975માં સિસ્ટમ ડેવલપમેન્ટ કોર્પોરેશન, 1976 અને 1977માં એનઇસી, તોશિબા અને ફુજીત્સુ જેવી અન્ય કંપનીઓએ સમાન સંગઠનાત્મક અભિગમ અપનાવ્યો હતો. કુસુમાનો સૂચવે છે કે સોફ્ટવેર ફેક્ટરીઓ માટે છ તબક્કાઓ છેઃ મૂળભૂત સંસ્થા અને વ્યવસ્થાપન માળખું (1960ના દાયકાના મધ્યથી 1970ના દાયકાની શરૂઆત સુધી) ટેકનોલોજી ટેલરિંગ અને માનકીકરણ (1970ના દાયકાના અંતથી 1980ના દાયકાની શરૂઆત સુધી) પ્રક્રિયા યાંત્રીકરણ અને સમર્થન (1970ના દાયકાના અંત સુધી) પ્રક્રિયા શુદ્ધિકરણ અને વિસ્તરણ (1980ના દાયકાની શરૂઆતમાં) સંકલિત અને લવચીક ઓટોમેશન (1980ના દાયકાના મધ્ય સુધી) વૃદ્ધિશીલ ઉત્પાદન/વિવિધતામાં સુધારો (1980ના દાયકાના અંત સુધી) સોફ્ટવેર પ્રોડક્ટ લાઇન સોફ્ટવેર જીવનચક્ર પ્રક્રિયાઓ સોફ્ટવેર ઇજનેરી પ્રણાલીઓ ઇજનેરી સોફ્ટવેર વિકાસ પ્રક્રિયા ઓટોમેટિક પ્રોગ્રામિંગ ડોમેન-સ્પેસિફિક મોડેલિંગ (ડીએસએમ) મોડેલ ડ્રિવેન એન્જિનિયરિંગ (એમ. ડી. ઇ.) સંદર્ભો બાહ્ય કડીઓ હાર્વર્ડ બિઝનેસ રિવ્યૂ વિપ્રો ટેક્નોલોજીસઃ ધ ફેક્ટરી મોડલ આઉટસોર્સિંગ વિથઆઉટ ઓફશોરિંગ એ 'સોફ્ટવેર ફેક્ટરી' નો હેતુ છે