के लिए कोई भी यूएमएल उपकरण स्कैला के लिए कोई यूएमएल उपकरण उपलब्ध है। मेरे प्रश्न का कारण यह है कि यह कार्यात्मक और ओओ अवधारणाओं का मिश्रण है इसलिए मैं जानना चाहता हूं कि ऐसे उपकरण यूएमएल आरेखों में कार्यों को कैसे दर्शाते हैं।स्कैला
स्कैला
उत्तर
यह thread बाधाओं स्काला वर्गों का प्रतिनिधित्व करने के लिए इच्छुक किसी भी यूएमएल उपकरण को पेश आ रही सार रखते हैं:
- यूएमएल में mixins का कोई आधिकारिक प्रतिनिधित्व नहीं है
- यह प्रदर्शित करना कठिन होता है:
- बंद
- स्कैला प्रकार के सदस्य
- वर्ग कन्स्ट्रक्टर पैरामीटर सीमाएं (ए.के.ए. "टेम्पलेट प्रकार" सीमा/कमी)
- covariant और contravariant वर्ग निर्माता विरासत
- कक्षा या विशेषता और साथी वस्तु
इस शोध के बीच संबंध ("Evaluierung des Einsatzes von Scala bei der Entwicklung für die Android-Plattform", पीडीएफ, जर्मन) विशेषता मिश्रणों और अन्य स्कैला विशिष्ट तत्वों (पीपी 146) के लिए रूढ़िवादी जोड़ता है।
क्या 2009 में Meiko Rachimow से जोड़ा गया है: सभी प्रकाशित विशेषताओं के लिए
गुण, गेटर और सेटर
, अंतर्निहित गेटर (
attribute1
औरattribute2
) मौजूद छोड़कर दृश्यताprivate
(attribute3
) के रूप में घोषित किया गया था। यदि प्रकाशित विशेषताओं को एक स्टीरियोटाइपVar
के साथ टैग किया गया है, तो वे चर हैं, जिसके लिए निहित सेटटर मौजूद है (attribute2
)। स्टीरियोटाइपlazy
आंशिक चर आलसी के रूप में चिह्नित करता है (attribute4
)।
वर्गों और जेनरिक
यूएमएल में की तरह, सामान्य वर्गों एक सार प्रकार के साथ चिह्नित हैं। स्कैला भाषा वाक्यविन्यास का उपयोग करके, इस प्रकार के लिए ऊपरी और निचली सीमाओं को घोषित किया जा सकता है (
EineKlasse
)। संरचित प्रकारों को सीमाओं के रूप में उपयोग करना संभव है, घुमावदार ब्रेसिज़() द्वारा कौन से गुण और विधियों को गले लगाया जाता है। विधियों के जेनेरिक प्रकार पैरामीटर स्क्वायर ब्रैकेट्स (operation
) द्वारा गले लगाए जाते हैं।
लक्षण
लक्षण सार वर्गों की तरह प्रदर्शित किए जाते हैं और स्टीरियोटाइप
trait
के साथ टैग। सार विशेषताओं और विधियों इटालिक्स में प्रदर्शित होते हैं (attribute2
,operation2
)। अमूर्त गुणों के लिए निर्भरता तीर को स्टीरियोटाइपrequires
(Trait3
,attribute3
) के साथ टैग किया जा सकता है। दूसरी तरफ, स्टीरियोटाइपself
का उपयोग स्वयं संदर्भ प्रकारों (Trait4
) के लिए किया जाता है। यदि किसी विशेषता को एक और विशेषता प्राप्त होती है, तो विरासत विरासत तीर (Trait2
) के साथ प्रदर्शित होती है। यदि कोई वर्ग एक विशेषता (Klasse
) बढ़ाता है तो यह तीर प्रकार भी उपयोग किया जाता है। लक्षणों के "मिश्रण" पर जोर देने के लिए, विरासत तीर को स्टीरियोटाइपmixin
(Klasse
) के साथ टैग किया जा सकता है।
सिंगलटन वस्तुओं
सिंगलटन वस्तुओं वर्गों की तरह प्रदर्शित किए जाते हैं और स्टीरियोटाइप
singleton
के साथ टैग। यह संभव है कि एक ही नाम के साथ दो वर्ग तत्व मौजूद हैं। वास्तव में यह संबंधित साथी वर्ग के साथ एक सिंगलटन वस्तु है। इस मामले में निर्भरता तीर को स्टीरियोटाइपhasA
के साथ टैग किया गया है।
बस Green UML Eclipse plugin का परीक्षण किया। कुछ महीने पहले यह काम नहीं करता था लेकिन स्कैला आईडीई रात के संस्करण अप्रैल 2012 के साथ) आप कुछ प्रकार के क्लास आरेख प्राप्त कर सकते हैं। प्रमोशन लग रहा है।
आप कोशिश कर सकते हैं (प्रयोगात्मक) Dia2Scala उपकरण। इस कोड जनरेटर द्वारा उपयोग किए गए Notation मेको रचिमो की थीसिस (answer में वॉनसी से वर्णित) से एक नोटेशन पर आधारित है।
यह आशाजनक लग रहा है। लेकिन क्या यह कोड से आरेख उत्पन्न कर सकता है? –
@ वेई-चिंगलिन नोप, यह केवल एक ही रास्ता है: डाया -> स्कैला। एक स्कैला पार्सर लिखना मुझे कल्पना करना मुश्किल हो सकता है। – monnef
दरअसल थीसिस का लिंक काम नहीं करता है। –
@ पीटरस्मिट्स: मैंने उस पीडीएफ फ़ाइल के लिंक को तय कर दिया है। – VonC
@ वॉनसी यह वास्तव में मेरी मदद करेगा (और अन्य हो सकता है) यदि आप विशेषता वर्ग आरेख के लिए स्कैला हस्ताक्षर (या कंकाल) जोड़ सकते हैं। (उदाहरण के लिए 'विशेषता ट्रैट 2 विशेषता' बढ़ाती है और इसी तरह।) – dips