2010-01-14 12 views
5

का सामान्य उपयोग मेरे अनुभव में सबसे वास्तुशिल्प दस्तावेज सबसे अच्छा रहा है, और, अधिक संरचित मृत-पेड़ प्रकार के लेखन से अलग मैंने अभी तक औपचारिक यूएमएल को वास्तविक उपयोग में देखा है, और मैंने काम किया है कुछ के साथ, यदि कोई डेवलपर जो यूएमएल आरेखों को स्पष्ट रूप से या सही ढंग से बनाने में सक्षम होंगे - ऐसा लगता है कि यह "ग्राफिकल psuedocode" के रूप में अधिक उपयोग किया जाता है।यूएमएल

यह देखते हुए कि, मुझे किसी के पास आंतरिक दस्तावेज में यूएमएल का उपयोग करने का अनुभव है और टीम के सदस्यों के बीच सिस्टम फ़ंक्शन को संचारित करना है या नहीं। क्या यह संचार का एक उपकरण/मोड है जो लोग वास्तव में दिन-प्रतिदिन उपयोग करते हैं? क्या यह सहायक, अतिनिर्धारित है? क्या आपने ऐसे वातावरण में काम किया है जहां सटीक यूएमएल mattered या उपयोगी था?

उत्तर

1

मेरी कार्यस्थल में, हमने बड़े पैमाने पर यूएमएल क्लास आरेखों का उपयोग किया है क्योंकि हम बड़े एंटरप्राइज़-स्केल वेब अनुप्रयोग लिखते हैं। कुछ अवसरों पर हम अनुक्रम आरेख का उपयोग करते हैं। लेकिन, हम किसी भी तरह से चित्रों के पूर्ण यूएमएल सूट का उपयोग नहीं करते हैं या यहां तक ​​कि करीब आते हैं। यूएमएल केवल मांस चबाने और हड्डियों को थूककर प्रभावी हो सकता है। यह एक महान संचार उपकरण है, लेकिन इसकी कार्यक्षमता का अधिक उपयोग करके लोगों को भ्रमित कर सकते हैं।

3

यूएमएल (एकीकृत मॉडलिंग भाषा) लचीला है। हर समय "पूर्ण" यूएमएल का उपयोग करना आवश्यक नहीं है।

हां, मैंने डिजाइन को संवाद करने के लिए यूएमएल का उपयोग किया है। मैंने विभिन्न उद्देश्यों के लिए डोमेन, कक्षा, गतिविधि, केस, अनुक्रम और परिनियोजन आरेख का उपयोग किया है।

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

0

मेरे अनुभव में मैंने यूएमएल अनुक्रम आरेख को सिस्टम या सिस्टम की एक विशेष प्रक्रिया को समझने की कोशिश करने वाले लोगों के लिए सबसे उपयोगी पाया है।

सबसे अधिक संभावना यह है कि यह दिखाता है कि विभिन्न घटक सह-संचालन और अप्रत्यक्ष रूप से उनमें से प्रत्येक की ज़िम्मेदारी कैसे रखते हैं। ऊर्ध्वाधर आयाम समय दिखाता है और चित्र समझने के लिए बहुत सहज है, यहां तक ​​कि उन लोगों के लिए भी जिन्हें यूएमएल के ज्ञान नहीं है।

1

मैंने स्वचालित कोड पीढ़ी के लिए यूएमएल क्लास आरेखों का उपयोग देखा है। प्रवाह इस तरह कुछ था, Enterprise Architect क्लास आरेख से एक्सएमएल स्कीमा उत्पन्न करने के लिए इस्तेमाल किया गया था। इस स्कीमा को जावा क्लास जेनरेट करने के लिए JAXB के लिए इनपुट के रूप में उपयोग किया गया था जो यूएमएल मॉडल में प्रदर्शित डेटा तक प्रोग्रामेटिक पहुंच प्रदान करता है।

+0

एंटरप्राइज़ आर्किटेक्ट का उल्लेख करने के लिए +1 - एक शानदार टूल, हालांकि एक "अद्वितीय इंटरफ़ेस" वाला है। –

0

मुझे यूएमएल क्लास आरेख एक एंटीटी-रिलेशनशिप आरेख की तुलना में लॉजिकल डेटा मॉडल या डोमेन मॉडल करने के लिए और अधिक सहायक पाया गया है। यह अधिक अभिव्यक्तिपूर्ण है, सामान्यीकरण (यानी विरासत) और विशिष्ट एन-टू-एन रिश्ते हैं। एक ईआर आरेख में इस मॉडल के लिए प्रयास करें :)

alt text

1

यूएमएल चित्र पर कब्जा करने और आवश्यकताओं संवाद स्थापित करने और यह सुनिश्चित करना कि प्रणाली उन आवश्यकताओं को पूरा करने के लिए उपयोगी होते हैं। इन्हें तत्काल और नियोजन, डिजाइन, विकास और परीक्षण के विभिन्न चरणों के दौरान उपयोग किया जा सकता है।

विषय से: http://msdn.microsoft.com/en-us/library/dd409423%28VS.100%29.aspx

पर विकास प्रक्रिया भीतर मॉडल का प्रयोग करना एक मॉडल मदद कर सकते हैं दुनिया में जो आपके सिस्टम काम करता है कल्पना, उपयोगकर्ताओं की आवश्यकताओं को स्पष्ट, आपके सिस्टम की वास्तुकला को परिभाषित , कोड का विश्लेषण करें, और सुनिश्चित करें कि आपका कोड आवश्यकताओं को पूरा करता है।

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

"अच्छा सॉफ्टवेयर डिज़ाइन/आर्किटेक्चर" कैसे सीखें?https://stackoverflow.com/questions/268231/how-to-learn-good-software-design-architecture/2293489#2293489

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