Frame technology (software engineering)
ફ્રેમ ટેકનોલોજી (એફટી) એ એક ભાષા-તટસ્થ (એટલે કે, વિવિધ ભાષાઓની પ્રક્રિયા) પ્રણાલી છે જે ફરીથી વાપરી શકાય તેવા, મશીન-અનુકૂલનક્ષમ બિલ્ડિંગ બ્લોક્સમાંથી કસ્ટમ સોફ્ટવેરનું ઉત્પાદન કરે છે, જેને ફ્રેમ કહેવાય છે. એફટીનો ઉપયોગ મોટી, જટિલ સોફ્ટવેર સિસ્ટમોની રચના, નિર્માણ અને ઉત્ક્રાંતિમાં સામેલ સમય, પ્રયાસ અને ભૂલોને ઘટાડવા માટે થાય છે. એફટી માટે મૂળભૂત એ સમાન પરંતુ સૂક્ષ્મ રીતે જુદા જુદા ઘટકોના પ્રસારને રોકવાની તેની ક્ષમતા છે, જે સોફ્ટવેર એન્જિનિયરિંગને ઘડતી સમસ્યા છે, જેના માટે પ્રોગ્રામિંગ લેંગ્વેજ (સબરૂટિન્સ, વર્ગો અથવા ટેમ્પલેટ્સ/જેનરિક) અથવા મેક્રો અને જનરેટર જેવી એડ-ઇન તકનીકો વ્યવહારુ, સ્કેલેબલ ઉકેલ પ્રદાન કરવામાં નિષ્ફળ રહી છે. એફટીના સંખ્યાબંધ અમલીકરણ અસ્તિત્વમાં છે. નેટ્રોન ફ્યુઝન વ્યવસાયિક સોફ્ટવેરના નિર્માણમાં નિષ્ણાત છે અને માલિકી ધરાવે છે. એ. આર. ટી. (એડેપ્ટિવ રીયુઝ ટેક્નોલોજી) એ એફ. ટી. નું સામાન્ય હેતુ, ઓપન-સોર્સ અમલીકરણ છે. પોલ જી. બેસેટે બદલાતી જરૂરિયાતો અને સંદર્ભો સાથે અનુકૂલન (જનરેટેડ અને હાથથી લખાયેલા) કાર્યક્રમોમાં સામેલ પુનરાવર્તિત, ભૂલ-સંભવિત સંપાદનને સ્વચાલિત કરવા માટે પ્રથમ એફ. ટી. ની શોધ કરી હતી. એક નોંધપાત્ર સાહિત્ય હવે અસ્તિત્વમાં છે જે સમજાવે છે કે કેવી રીતે એફટી સોફ્ટવેરના જીવન-ચક્રના મોટાભાગના પાસાઓને સરળ બનાવી શકે છે, જેમાં ડોમેન મોડેલિંગ, જરૂરિયાતો ભેગી કરવી, આર્કિટેક્ચર અને ડિઝાઇન, બાંધકામ, પરીક્ષણ, દસ્તાવેજીકરણ, ફાઇન ટ્યુનિંગ અને ઉત્ક્રાંતિ સામેલ છે. વૈકલ્પિક અભિગમો સાથે એફટીની સ્વતંત્ર સરખામણી એ વાતની પુષ્ટિ કરે છે કે જટિલ પ્રણાલીઓના નિર્માણ અને જાળવણી માટે જરૂરી સમય અને સંસાધનોને નોંધપાત્ર રીતે ઘટાડી શકાય છે. એક કારણઃ એફટી પ્રોગ્રામરોને સોફ્ટવેરની અંતર્ગત બિનજરૂરી બાબતોથી રક્ષણ આપે છેઃ એફટીએ સમકક્ષ એક્સવીસીએલ ફ્રેમ લાઈબ્રેરીઓમાંથી સીઓટીએસ ઓબ્જેક્ટ-લાઈબ્રેરીઓનું પુનઃઉત્પાદન કર્યું છે જે બે-તૃતીયાંશ નાના અને સરળ છે; કસ્ટમ બિઝનેસ એપ્લિકેશનો નિયમિતપણે નેટ્રોન ફ્યુઝનએસપીસી ફ્રેમ્સ દ્વારા નિર્દિષ્ટ અને જાળવવામાં આવે છે જે તેમની એસેમ્બલ સોર્સ ફાઇલોના કદની 5%-15% હોય છે. નીચે બે અનૌપચારિક વર્ણનો છે, ત્યારબાદ વધુ ચોક્કસ વ્યાખ્યા અને સમજૂતી છે. ફ્રેમ એ સ્વચાલિત સોફ્ટવેર એસેમ્બલી લાઇન પર અનુકૂલનશીલ ઘટક છે. એક ઓટો ફેક્ટરીની કલ્પના કરો, જ્યાં દરેક કાર મોડેલની વિશિષ્ટતાને અનુરૂપ ચોક્કસ બમ્પર, ફેન્ડર અને અન્ય ભાગો રાખવાને બદલે, આપણી પાસે માત્ર એક સામાન્ય બમ્પર, એક સામાન્ય ફેન્ડર વગેરે છે. હવે કલ્પના કરો કે આ સામાન્ય ભાગોને દરેક કાર મોડેલમાં ફિટ કરવા માટે ક્લોન અને આકાર આપી શકાય છે કારણ કે તે રેખા નીચે આવી હતી. આવી કલ્પના ઉત્પાદનમાં ક્રાંતિ લાવશે; અને ભૌતિક ભાગો માટે અશક્ય હોવા છતાં, ફ્રેમ્સ સોફ્ટવેર (અને સામાન્ય રીતે માહિતી) માટે આ જ કરે છે. ફ્રેમ એ (પ્રોગ્રામ) લખાણને "રાંધવા" માટેની વાનગી છે. તેની સૂચનાઓ કહે છે કે તેના ઘટકો-ફ્રેમ-ટેક્સ્ટના ભાગો-અન્ય ફ્રેમના ઘટકો સાથે કેવી રીતે મિશ્રણ કરવું. "રસોઇયા" એ એક ફ્રેમ પ્રોસેસર છે જે સૂચનાઓનું પાલન કરે છે, એટલે કે. ફ્રેમ આદેશો, જે મુખ્ય રેસીપીને અનુરૂપ જરૂરી ઘટકોમાં ફેરફાર કરે છે (ઉમેરો, સંશોધિત કરો, કાઢી નાખો). ઔપચારિક રીતે, ફ્રેમ એ એક પ્રક્રિયાગત મેક્રો છે જેમાં ફ્રેમ-ટેક્સ્ટનો સમાવેશ થાય છે-સામાન્ય (પ્રોગ્રામ) ટેક્સ્ટ અને ફ્રેમ આદેશોની શૂન્ય અથવા વધુ રેખાઓ (જે એફટીના ફ્રેમ પ્રોસેસર દ્વારા હાથ ધરવામાં આવે છે કારણ કે તે કસ્ટમ પ્રોગ્રામ્સનું ઉત્પાદન કરે છે). દરેક ફ્રેમ એ નેસ્ટેડ પેટા એસેમ્બલીઓના પદાનુક્રમમાં એક સામાન્ય ઘટક છે, અને તેની પેટા એસેમ્બલી ફ્રેમ સાથે પોતાને એકીકૃત કરવાની પ્રક્રિયા છે (એક પુનરાવર્તિત પ્રક્રિયા જે ઉચ્ચ સ્તરની પેટા એસેમ્બલીઓની તરફેણમાં એકીકરણ તકરારને હલ કરે છે). આઉટપુટ કસ્ટમ દસ્તાવેજો છે, જે સામાન્ય રીતે સંકલનક્ષમ સ્રોત મોડ્યુલો છે. મુખ્ય આદેશો ફ્રેમને બોલાવે છે (એક પ્રક્રિયા કૉલ જે પ્રોગ્રામ ટેક્સ્ટ્સ બનાવતી વખતે બાંધકામ સમયે થાય છે); ફ્રેમ પરિમાણને (બાંધકામ-સમય ચલ સોંપણી) અભિવ્યક્તિ (ઓ) ની (સૂચિ) સોંપો; ફ્રેમ-ટેક્સ્ટના બ્લોક્સ પહેલાં, તેના બદલે અથવા પછી ફ્રેમ-ટેક્સ્ટ દાખલ કરો, જે પરિમાણ અભિવ્યક્તિઓ દ્વારા લેબલ થયેલ છે; ફ્રેમ પરિમાણને ત્વરિત કરો (બાંધકામ-સમય અભિવ્યક્તિ મૂલ્યાંકન); પ્રક્રિયા માટે ફ્રેમ-ટેક્સ્ટ્સ પસંદ કરો (બાંધકામ-સમય કેસ સ્ટેટમેન્ટ); ચોક્કસ ફ્રેમ પરિમાણો (નિવેદન કરતી વખતે બાંધકામ-સમય) બદલતી વખતે ફ્રેમ-ટેક્સ્ટને પુનરાવર્તન કરો. પ્રોસેસર સામાન્ય લખાણ સાથે આદેશોને બદલીને અને સામાન્ય લખાણને જેમ છે તેમ બહાર કાઢીને ફ્રેમ-ટેક્સ્ટને પરિવર્તિત કરે છે. ઉદાહરણોઃ તે ઇન્વોક ફ્રેમની પ્રક્રિયાના પરિણામ દ્વારા ઇન્વોકને બદલે છે; તે અસાઇનને શૂન્ય સાથે બદલે છે; અને ફ્રેમ પરિમાણની સોંપાયેલ અભિવ્યક્તિનું મૂલ્યાંકન કરવાથી ત્વરિત સામાન્ય લખાણ બની જાય છે, જે શબ્દમાળાઓ, અંકગણિત અભિવ્યક્તિઓ અને નેસ્ટેડ ફ્રેમ પરિમાણોનું સંયોજન હોઈ શકે છે. ઘટક સંબંધો ફ્રેમ વચ્ચે ઘટક સંબંધોને સ્થાપિત કરે છે. ઉદાહરણ તરીકે, આકૃતિ 1 માંઃ F એ J નો ઘટક છે અને C એ J નો પેટા ઘટક છે. અલબત્ત, ઘણા ઘટકો સમાન પેટા ઘટકનો ઉપયોગ કરી શકે છે, જેમ કે I અને J માં F નો ઉપયોગ કરીને, દરેક એક અલગ લખાણ બનાવે છે. એકંદર ઘટક માળખું સામાન્ય અર્ધવિરામ બનાવે છે, જેમાં દરેક માળખું પેટા એસેમ્બલીનું મૂળ છે. આમ સી તેની પોતાની પેટા એસેમ્બલી છે; એફ અને સી એફ પેટા એસેમ્બલીના ઘટકો છે, અને જે, એફ અને સી જે પેટા એસેમ્બલીના ઘટકો છે. સંદર્ભ સ્કોપિંગ એ છે જે એફટીને અન્ય મોડેલિંગ અને બાંધકામ પ્રણાલીઓથી અલગ પાડે છેઃ દરેક ફ્રેમ તે સંદર્ભની રચના કરે છે જેમાં તે તેની પેટા એસેમ્બલીને એકીકૃત કરે છે. નેસ્ટેડ પેટા એસેમ્બલીઓમાં નીચલા સ્તરો ક્રમશઃ વધુ સંદર્ભ-મુક્ત હોય છે કારણ કે તેઓ ઓછી માહિતીને સંકલિત કરે છે. સંકલન તકરારને સૌથી વધુ સંદર્ભ-સંવેદનશીલ ફ્રેમની તરફેણમાં ઉકેલવામાં આવે છે જેથી કોઈ પરિમાણને સોંપી શકાય અથવા દાખલ કરી શકાય-તે તે ફ્રેમની પેટા એસેમ્બલીમાં અન્ય તમામ ફ્રેમ માટે ફક્ત વાંચી શકાય તેવું બની જાય છે. આકૃતિ 1 માં, ફ્રેમ F અને C વિરોધાભાસી હશે જો તેઓ પરિમાણ p ને વિવિધ મૂલ્યો સોંપે. તેથી F C ને ઓવરરાઇડ કરે છે-એટલે કે, ફ્રેમ પ્રોસેસર C ની સોંપણી (ઓ) ને p તરફ અવગણે છે, અને F અને C માં p માટે F ની કિંમત (ઓ) નો ઉપયોગ કરે છે. તેવી જ રીતે, J એ F અને C બંનેને ઓવરરાઇડ કરી શકે છે, અને તેથી વધુ. સંદર્ભ-વ્યાપ્તિ મહત્વની છે કારણ કે આપેલ સંદર્ભમાં કોઈપણ સંખ્યામાં (પેટા) ઘટકોને ફિટ કરવા માટે જરૂરી તમામ ગોઠવણો સ્પષ્ટ અને તે સંદર્ભમાં સ્થાનિક છે. સંદર્ભ-અવકાશ વિના આવા ગોઠવણો મોટે ભાગે ગર્ભિત, વેરવિખેર અને ઘટક સ્વરૂપોમાં છુપાયેલા હોય છે. આવા પ્રકારો માત્ર ફેલાવવાનું વલણ ધરાવતા નથી, જે બિનજરૂરી અતિરેક અને જટિલતાનું કારણ બને છે, પરંતુ સિસ્ટમ ઉત્ક્રાંતિ પણ બિનજરૂરી રીતે મુશ્કેલ અને ભૂલ-સંભવિત છે. સ્પષ્ટીકરણ ફ્રેમ અને નમૂનાઓ એક સ્પષ્ટીકરણ ફ્રેમ (એસ. પી. સી.) એ સમગ્ર એસેમ્બલીનું સર્વોચ્ચ છે, તેથી સૌથી વધુ સંદર્ભ-સંવેદનશીલ ફ્રેમ છે. સંપૂર્ણ પ્રોગ્રામ અથવા સબસિસ્ટમનું ઉત્પાદન કરવા માટે પ્રોસેસર એસ. પી. સી. થી શરૂ થાય છે, જેમ કે આકૃતિ 1 માં એલ અથવા એમ. જ્યારે સિદ્ધાંતમાં એસ. પી. સી. દરેક વિગતવાર કસ્ટમાઇઝ કરી શકે છે, વ્યવહારમાં એસ. પી. સી. એ તેની સમગ્ર એસેમ્બલીનો એક નાનો ભાગ છે કારણ કે મોટાભાગના અપવાદો (અને અપવાદો, વગેરેના અપવાદો) પહેલેથી જ વિવિધ પેટા એસેમ્બલી ફ્રેમ દ્વારા નિયંત્રિત કરવામાં આવ્યા છે. ફ્રેમ લાઈબ્રેરીને જોતાં, એસ. પી. સી. તાર્કિક રીતે તેઓ જે કાર્યક્રમો બનાવે છે તેનો સમાવેશ કરે છે; આમ એસ. પી. સી. સ્રોત ફાઇલોને પ્રાથમિક નિયંત્રણ બિંદુઓ તરીકે બદલે છે. કાર્યક્રમો બનાવતા એસ. પી. સી. બનાવવા માટે નમૂનાઓનો ઉપયોગ કરવો એ નિયમિત પ્રથા છે, પછી તે કાર્યક્રમોને અનિશ્ચિત સમય સુધી સંચાલિત કરવા અને વિકસાવવા માટે એસ. પી. સી. નો ઉપયોગ કરો. આ પ્રથા એપ્લિકેશન પ્રોગ્રામરોએ જાણવી અને તેનું સંચાલન કરવું આવશ્યક હોય તેવી વિગતોની સંખ્યાને મોટા પ્રમાણમાં ઘટાડે છે. તે હાથ દ્વારા સ્રોત ગ્રંથોની નકલ અને સંપાદનમાં રહેલી બિનજરૂરીતાઓ, જટિલતાઓ અને ભૂલોને પણ ટાળે છે. ડિબગીંગનો સમય પણ ઘટતો જાય છે કારણ કે મોટાભાગના ઘટકોનો ફરીથી ઉપયોગ કરવામાં આવે છે, તેથી તેનું પૂર્વપરીક્ષણ કરવામાં આવે છે. ભૂલો એસ. પી. સી. માં સ્થાનિકીકરણ કરે છે, કારણ કે તેનું સૌથી ઓછું પરીક્ષણ કરવામાં આવે છે. ટેમ્પ્લેટ એ આર્કેટિપલ એસ. પી. સી. છે, જેમાં તેને કેવી રીતે કસ્ટમાઇઝ કરવું તે સમજાવતી એમ્બેડેડ ટિપ્પણીઓ હોય છે. સામાન્ય રીતે, કાર્યક્રમોના પ્રકારોની એક નાની સંખ્યા હોય છે, જેમાં દરેક પ્રકારની લાક્ષણિકતા નમૂના દ્વારા દર્શાવવામાં આવે છે. તેને નકલ કરીને અને ભરીને, પ્રોગ્રામરો તેમને કઈ ફ્રેમની જરૂર છે, તેમના ઘટક સંબંધો અથવા સામાન્ય રીતે કઈ વિગતોને કસ્ટમાઇઝ કરવાની જરૂર છે તે યાદ રાખ્યા વિના નમૂનાને એસ. પી. સી. માં રૂપાંતરિત કરે છે. ફ્રેમ-આધારિત ડોમેન-વિશિષ્ટ ભાષાઓ એફ. ટી.-આધારિત, ડોમેન-વિશિષ્ટ ભાષા (એફ. ટી.-ડી. એસ. એલ.) એ ડોમેન-વિશિષ્ટ ભાષા છે, જેના શબ્દાર્થ (પ્રોગ્રામ કોડમાં વ્યક્ત) ને ફ્રેમમાં એન્જિનિયર્ડ કરવામાં આવ્યા છે. એક લાક્ષણિક એફ. ટી.-ડી. એસ. એલ. સંપાદક ડી. એસ. એલ. અભિવ્યક્તિઓ અને એક ફ્રેમ વચ્ચે અનુવાદ કરે છે જે ડી. એસ. એલ. અભિવ્યક્તિઓના પ્રોગ્રામ-કોડ સમકક્ષોને વ્યક્ત કરવા માટે ફ્રેમવાળા શબ્દાર્થને અનુકૂળ બનાવશે. આ પેટા એસેમ્બલીની ટોચ પર બેઠેલું એસ. પી. સી. પછી પ્રોગ્રામ કોડમાં ડોમેન-વિશિષ્ટ ભાષામાં અવર્ણનીય કોઈપણ કસ્ટમાઇઝેશનનો ઉલ્લેખ કરી શકે છે. આમ જ્યારે વપરાશકર્તાઓ બદલાયેલા ડી. એસ. એલ. અભિવ્યક્તિઓમાંથી પ્રોગ્રામ કોડને પુનર્જીવિત કરે છે, ત્યારે અગાઉના કસ્ટમાઇઝેશન ખોવાઈ જતા નથી. ફ્રેમ ઇજનેરી ફ્રેમ ઇજનેરી ફ્રેમ ટેકનોલોજી વાતાવરણમાં સોફ્ટવેર ઇજનેરીને લાગુ કરે છે. આમાં ડોમેન વિશ્લેષણ, ડિઝાઇનિંગ, લેખન, પરીક્ષણ અને તેઓ જે સિસ્ટમો બનાવે છે તેની સાથે સહ-વિકસિત ફ્રેમનો સમાવેશ થાય છે. ફ્રેમિંગ નીચેથી ઉપર અને ઉપરથી નીચે એમ બંને રીતે થાય છે. નીચે-ઉપર, ફ્રેમ ઇજનેરો સામાન્ય રીતે સમાન પ્રોગ્રામ ઘટકો (કોઈપણ ગ્રાન્યુલારિટી, ટેક્સ્ટ સ્નિપેટ્સથી લઈને સબસિસ્ટમ્સ સુધી) ના જૂથોને સામાન્ય સમકક્ષોમાં એકીકૃત અને પરિમાણિત કરીને ફ્રેમ બનાવે છે. ટોપ-ડાઉન અભિગમ પુનરાવર્તિત પ્રોટોટાઇપ રિફાઇનમેન્ટ સાથે ડોમેન કુશળતાને જોડે છે, જે એપ્લિકેશન અને આર્કિટેક્ચરલ આવશ્યકતાઓ, કોર્પોરેટ ધોરણો અને ફરીથી વાપરી શકાય તેવી સંપત્તિઓનો સમૂહ વિકસાવવાની ઇચ્છા દ્વારા મર્યાદિત છે, જેનું વળતર રોકાણ કરતાં ઘણું વધારે છે. (પુનઃઉપયોગને ફ્રેમ લાઈબ્રેરીઓના કુલ કદને પરિણામી રચનાઓના કુલ કદમાં વિભાજીત કરીને અને/અથવા વ્યક્તિગત ફ્રેમ પુનઃઉપયોગની ગણતરી કરીને માપવામાં આવે છે.) એક પરિપક્વ ફ્રેમ લાઇબ્રેરી ખર્ચ-અસરકારકતામાં વધારો કરે છે કારણ કે સોફ્ટવેર પ્રોજેક્ટના હિસ્સેદારો સિસ્ટમની નવીનતાઓ પર તેમનું ધ્યાન મર્યાદિત કરી શકે છે, તેના મોટા ભાગના મજબૂત ઘટકો અને સ્થાપત્યને હળવાશથી લઈ શકે છે. પરિપક્વ પુસ્તકાલય સ્થિર નથી હોતું. ફ્રેમ ઇજનેરો, પસંદ કરેલ આદેશનો ઉપયોગ કરીને, ફરીથી વાપરી શકાય તેવી ફ્રેમને અનિશ્ચિત સમય માટે વિકસાવી શકે છે, ફ્રેમ્સના અગાઉના વર્ઝનમાંથી ઉત્પાદિત પ્રોગ્રામ્સમાં રેટ્રોફિટની જરૂર વગર નવી જરૂરિયાતોને પૂર્ણ કરી શકે છે. ફૂટનોટ્સ સોર્સ કોડ જનરેશન