2012-07-24 17 views
5

मैं एक प्रोजेक्ट शुरू कर रहा हूं जिसमें कवरेज उद्देश्यों (चर के परिभाषा-उपयोग आदि) के लिए जावा अनुप्रयोगों का उपयोग करना होगा। इसे ट्रेस स्टेटमेंट और एप्लिकेशन में कुछ तर्क जोड़ना होगा और शायद कथन हटा दें।जावा बाइटकोड वाद्ययंत्र के विकल्प

मैंने उपकरण जावा कोड के तरीकों की खोज की है और जो भी मुझे हमेशा मिलता है वह बाइटकोड वाद्ययंत्र के बारे में है।

मेरा प्रश्न है: यह जावा अनुप्रयोगों का साधन बनाने का एकमात्र तरीका है? ऐसा करने का कोई और तरीका है? दूसरों पर बाइटकोड वाद्ययंत्र के क्या फायदे हैं?

मैं शायद बाइटकोड समाधान का उपयोग करूंगा, लेकिन मैं जानना चाहता हूं कि अन्य दृष्टिकोणों (यदि कोई है) के साथ समस्याएं ठीक से तय करने के लिए क्या समस्याएं हैं।

धन्यवाद!

उत्तर

2

बाइटकोड बदलने के करीब दूसरी विधि एओपी (आस्पेक्ट ओरिएंटेड प्रोग्रामिंग) का उपयोग कर रही है। मुख्य पुस्तकालय AspectJ है जो अधिकतर क्षेत्र को परिभाषित करता है।

तीसरा विकल्प जो दिलचस्प हो सकता है (चूंकि आप प्रोग्राम के साथ शुरुआत कर रहे हैं) Spring का उपयोग कर रहा है। इसका मतलब है कि आपको आईओसी (नियंत्रण में उलटा) के बारे में कुछ सीखना होगा, लेकिन इसका मूल रूप से मतलब है कि अपनी वस्तुओं को बनाने के बजाय आप वसंत को अपने लिए करते हैं, और इसके फायदे हैं क्योंकि जब वसंत सृजन का प्रभारी होता है सृजन प्रक्रिया में सभी प्रकार की चीज़ों को जोड़ सकते हैं, बिना आपको पहलू में खुद को घोषित कर सकते हैं।

जटिलता के संदर्भ में मैं शायद इसे का मूल्यांकन कैसे करेंगे:

  • वसंत (सबसे आसान)
  • AspectJ
  • बाईटकोड इंस्ट्रूमेंटेशन (सबसे कठिन)

लेकिन यह वास्तव में दूसरी तरह के आसपास जब है क्षमताओं (शक्ति) के बारे में बात कर रहे हैं। उदाहरण के लिए कोड को घटाने जैसा कुछ करना केवल अंतिम (मुझे लगता है)

+0

धन्यवाद! मुझे लगता है कि मैं AspectJ कोशिश करेंगे। –

2

आप निश्चित रूप से आप क्या वर्णन करने वाले आप इसके साथ चाहते हैं कर सकेंगे से AspectJ

की जांच करनी चाहिए।

बाइटकोड वाद्ययंत्र करना स्वयं बिल्कुल संभव है लेकिन यह अधिक जटिल है।

मुझे लगता है कि आपको पहले एसीपीटीजे की जांच करनी चाहिए और अंतिम उपाय के रूप में बाइटकोड उपकरण को वापस करने के लिए वापस आना चाहिए।

+0

धन्यवाद! मैं पहलू की कोशिश करूंगा। –

0

मेरा paper on building coverage tools using program transformation engines. देखें इस दृष्टिकोण का लाभ यह है कि इसका उपयोग मनमाने ढंग से प्रोग्रामिंग भाषाओं पर किया जा सकता है। इसके अलावा, यह स्रोत कोड को प्रोग्रामर के रूप में देखता है, संकलित बाइट कोड के रूप में नहीं (जैसे जेनेरिक अधिक जटिल हो जाते हैं, और बेहतर बाइट कोड में जमीन प्राप्त करते हैं, बाइट कोड का निरीक्षण करके स्रोत कोड को समझना मुश्किल हो जाता है)।

शायद यह ध्यान देने योग्य है कि कार्यक्रम परिवर्तन पहलू उन्मुख प्रोग्रामिंग को सामान्यीकृत करता है।

+0

अच्छा कागज और उपकरण।परियोजना एक नए परीक्षण मॉडल के आधार पर एक अकादमिक उपकरण है। हमारे संदर्भ में, एक नया विकसित करना बेहतर है। लेकिन धन्यवाद! –

संबंधित मुद्दे