एकल-थ्रेडेड एप्लिकेशन के लिए मुझे उस एप्लिकेशन के आर्किटेक्चर का अवलोकन प्राप्त करने के लिए वर्ग आरेखों का उपयोग करना पसंद है। इस प्रकार का आरेख, हालांकि, उदाहरण के लिए भारी बहु-थ्रेडेड / समवर्ती अनुप्रयोगों को समझने की कोशिश करते समय बहुत मददगार नहीं रहा है, क्योंकि विभिन्न थ्रेड्स पर एक वर्ग "लाइव" के विभिन्न उदाहरणों (उदाहरण का उपयोग करना केवल एक से ही बचा है) धागा यह पर रहता है)। नतीजतन, कक्षाओं के बीच जुड़ाव जरूरी नहीं है कि मैं उन वस्तुओं पर तरीकों को कॉल कर सकता हूं, लेकिन इसके बजाय मुझे उस कॉल को लक्ष्य ऑब्जेक्ट के थ्रेड पर बनाना होगा।
अधिकांश साहित्य मैंने इस विषय पर डिजाइन किया है जैसे कि हसिंग गोमा द्वारा यूएमएल के साथ डिजाइनिंग समवर्ती, वितरित, और रियल-टाइम एप्लिकेशन में कुछ अच्छे विचार थे, जैसे कि वस्तु आरेखों में धागा सीमाएं खींचना, लेकिन कुल मिलाकर यह थोड़ा अकादमिक और चिंताजनक था। वास्तव में उपयोगी हो।
मैं इन आरेखों को समस्या डोमेन के उच्च-स्तरीय दृश्य के रूप में उपयोग नहीं करना चाहता, बल्कि मेरी कक्षाओं / वस्तुओं, उनकी बातचीत और मेरे द्वारा उल्लिखित धागा-सीमाओं के कारण सीमाओं के विस्तृत विवरण के रूप में।
इसलिए मैं जानना चाहूंगा:
- बहु-थ्रेडेड अनुप्रयोगों को समझने में आपने किस प्रकार के आरेखों को सबसे अधिक उपयोगी पाया है?
- क्या क्लासिक यूएमएल के लिए कोई एक्सटेंशन है जो बहु-थ्रेडेड एप्लिकेशन की ख़ासियत को ध्यान में रखते हैं, उदाहरण के लिए, जो कि एनोटेशन के माध्यम से उदाहरण देते हैं
- कुछ वस्तुएं एक निश्चित धागे में रह सकती हैं जबकि अन्य में कोई धागा-संबंध नहीं है;
- किसी वस्तु के कुछ क्षेत्रों को किसी भी धागे से पढ़ा जा सकता है, लेकिन केवल एक से लिखा जाता है;
- कुछ विधियाँ समकालिक हैं और एक परिणाम लौटाते हैं जबकि अन्य अतुल्यकालिक हैं जो अनुरोधों को कतारबद्ध करते हैं और उदाहरण के लिए एक अलग थ्रेड पर कॉलबैक के माध्यम से परिणाम लौटाते हैं।