2008-09-29 12 views
6

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

यदि आप यूएमएल का उपयोग नहीं करते हैं तो आप ग्राफिक रूप से डिज़ाइन को कैसे चित्रित करते हैं?

+0

अधिकांश लोगों की तरह क्यों नहीं, कोड पहले, डिजाइन बाद में? : पी – davr

+2

क्योंकि मैं एक सॉफ्टवेयर इंजीनियर हूं और कुछ इंजीनियरिंग प्रक्रिया का पालन करना पसंद करता हूं। हालांकि मैं कम से कम डिजाइन के साथ चुस्त दृष्टिकोण की तरह करता हूं। मैं बीडीयूएफ का प्रशंसक नहीं हूं। यह आमतौर पर आपके चेहरे में उड़ने के समाप्त होता है। –

+0

बह, क्या आपने 'कोड के पहले सप्ताह, बाद में डिजाइन' के लिए औचित्य के रूप में 'एक हफ्ते के कोडिंग कोड के बारे में आपको एक घंटे का डिज़ाइन बचाया' के बारे में नहीं सुना है? :) – workmad3

उत्तर

8

स्कॉट अंबालर के पास great table on his website है जो उदाहरणों के लिंक के साथ आमतौर पर सॉफ्टवेयर प्रोजेक्ट्स पर उपयोग किए जाने वाले सभी आरेखों को सूचीबद्ध करता है।

मुझे यूएमएल आरेख उपयोगी लगता है लेकिन मैं हमेशा 'हर जगह एक बॉक्स' मानसिकता से नाराज हूं।

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

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

जब मैं टीम के अंदर मॉडलिंग करता हूं तो मैं यूएमएल + डीएफडी + यूजर इंटरफेस स्केच का उपयोग करता हूं जब तक कि सभी खुश न हों, फिर डिजिटल फोटो लें और इसे प्रोजेक्ट वेबसाइट पर पोस्ट करें। यदि यह बहुत उपयोगी साबित होता है तो यह लंबे समय तक 'औपचारिक' होने के लिए पर्याप्त समय तक चल सकता है - लेकिन अधिकांश नहीं।

+0

मैं लोगों को (शायद आप) इस पर विस्तार करना चाहता हूं। इन आरेखों को पकड़ने के लिए कौन से टूल्स उपलब्ध हैं? मैं वर्तमान में स्टारयूएमएल का उपयोग करता हूं, इसलिए मैं यह देखने के लिए देख रहा हूं कि यह अन्य दस्तावेज़ प्रकारों को कैप्चर कर सकता है, लेकिन मुझे यह जानने में दिलचस्पी होगी कि आप या अन्य गैर-यूएमएल आरेखों को कैसे कैप्चर करते हैं। –

+0

तालिका में शामिल है कि किस सॉफ्टवेयर का उपयोग किया जाता है। हालांकि, मैं सूची में बहुत कम देखता हूं जो सीधे यूएमएल के साथ प्रतिस्पर्धा करता है; अधिकांश प्रारूप यूएमएल का हिस्सा हैं या यूएमएल में प्रत्यक्ष अनुरूप हैं। –

+0

मुझे यूएमएल टूल्स का उपयोग करने से नफरत है जब तक मुझे http://yuml.me/ मिल गया जो यूएमएल आरेखों का वर्णन करने के लिए कुछ प्रकार के डीएसएल प्रदान करता है। कोई माउस-फ़िडलिंग कोई और नहीं :-)। – helpermethod

3

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

+0

तो आपके पास कुछ प्रकार के यूएमएल आरेख (हालांकि शायद अपूर्ण) हैं जब आप उस शो को प्रमुख वर्ग/अभिनेता/सिस्टम/उपप्रणाली और इतने पर? –

9

मैं पेन (सीआईएल) और पेपर का उपयोग करता हूं। या जटिलता के आधार पर संभवतः चिपचिपा नोट्स और व्हाइटबोर्ड। मैं क्या अभी कर रहा हूँ की


विस्तारित उदाहरण:

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

आप इन माध्यमों पर क्या डालते हैं? मुझे लगता है कि यह कुछ हद तक यूएमएल जैसा है (हालांकि यह यूएमएल कानूनों के नियमों में हर नियम का पालन नहीं कर सकता है)। –

+0

आशा है कि स्पष्टीकरण मदद करें। –

+0

हाँ, ऐसा करता है। धन्यवाद। –

11

पेपर या व्हाइटबोर्ड पर बॉक्स और तीर। आप पर सभी सामान यूएमएल बलों कई स्थितियों में अधिक है, खासकर एक डिजाइन के प्रारंभिक चरणों में।

बेशक एक स्तर है, कुछ पुनरावृत्तियों के बाद, जब यह उपयोगी होता है (और यहां तक ​​कि आवश्यक) दस्तावेज़ मानक प्रारूप के साथ विस्तार से पिछले निर्णय।

1

यूएमएल एक प्रलेखन उपकरण है, न कि डिज़ाइन टूल।

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

मुझे लगता है कि जो भी बयान उस यूएमएल से थक गया है, उसे समझ में नहीं आता है कि इसका उपयोग कैसे किया जाए या दोनों।

+0

मेरी प्रतिक्रिया में नकारात्मक वोट प्रदान करने वाले किसी भी व्यक्ति के लिए, कृपया टिप्पणी जोड़कर स्वयं को सुरक्षित रखें। – Huuuze

+1

मैंने आपको कम नहीं किया है, लेकिन मैं जानना चाहता हूं कि यूएमएल किस तरह से "डिजाइन पद्धति" है? यह बस है एक नोटेशन –

+0

आप सही हैं। पोस्ट के लिए मेरा उत्साह मुझे गलत शब्द का उपयोग करने के लिए प्रेरित करता है। – Huuuze

3

यूएमएल संचार की एक भाषा है। जब लोग कहते हैं कि वे पेपर पर बक्से और तीर का उपयोग करते हैं, तो वे या तो यूएमएल का उपयोग कर रहे हैं या वे जो भी बात कर रहे हैं, उन्हें समझाने के लिए कुछ ऐसा उपयोग कर रहे हैं।

यदि वे सिर्फ खुद से बात कर रहे हैं, तो शायद उन्हें डिज़ाइन नहीं करना चाहिए - डिजाइन को आनुवांशिक विविधता की आवश्यकता होती है यदि यह मस्तिष्क से क्षतिग्रस्त नहीं होने वाला है, मुझे परवाह नहीं है कि वास्तुकार कितना अच्छा है ।

2

कुछ महान शब्द, रिचर्ड फेनमैन द्वारा, here पाया जा सकता है। वास्तव में दिल से लेने के लिए एक सबक ...

संपादित करें: नीचे मेरे ramblings स्थानांतरित ... Feynman सुनने के लिए बेहतर! :)

आईएमएचओ बहुत सारे डिज़ाइन विकल्प हैं जिन्हें यूएमएल द्वारा खराब सेवा दी जाती है।

यूएमएल ठीक है जब ओवरकिल नहीं है! शायद कुछ त्वरित स्केच पहला कदम हैं, जो बाद में पूर्ण यूएमएल बनने के लिए परिष्कृत हैं।

बस कृपया शीर्ष-डाउन पद्धति को समझें जो यूएमएल (आगे बढ़ता है) बहुत अधिक प्रोत्साहित करता है (फिर से IMHO)।

1

मैं व्हाइटबोर्ड से शुरू करता हूं, फिर डिज़ाइन स्थिर होने के बाद मैं GraphViz पर जाता हूं। वैकल्पिक विचारों की जांच करने या भूमिकाओं को स्पष्ट करने के लिए स्रोतों को दूसरों के साथ साझा करना आसान है।

फिर आप अपने संपादक में ग्राफविज़ स्रोत की एक प्रति खोल सकते हैं और आरेख को ट्विक कर सकते हैं जैसा कि आप अपने कोड के साथ विवरण को चालू रखने के लिए जाते हैं।

0

मुझे परियोजनाओं को डिजाइन करते समय this जैसी पुस्तकों में वर्णित वास्तुशिल्प शैलियों के संदर्भ में सोचने में उपयोगी पाया गया है।

2

मुझे लगता है कि ज्यादातर लोग फ्री-फॉर्म आरेखों को चित्रित करते हैं जो मूल रूप से यूएमएल हैं, लेकिन कठोर या अच्छी तरह से परिभाषित नहीं हैं।

यदि आरेखों को इस चरण से आगे बढ़ने की आवश्यकता है, तो उन्हें उचित नियमों में पालन किया जा सकता है जो सभी नियमों का पालन करते हैं।

मैंने यूएमएल आरेखों के बहुत कम विकल्प देखे हैं। उनमें से ज्यादातर पुराने स्वरूप प्रतीत होते हैं, जिनके पास यूएमएल में प्रत्यक्ष उत्तराधिकारी हैं।

(btw मैं बिल्कुल हमेशा "यूएमएल" लिखने के लिए सजा mangling तरीकों से इंकार कर दिया!)

+0

मैं फ्री-फॉर्म आरेख 'दिमाग-मानचित्र' कहूंगा। – slashmais

0

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

मैं हमेशा शुरुआत में प्रकारों को भरता नहीं हूं क्योंकि मुझे हमेशा यह नहीं पता कि मुझे क्या चाहिए (उदा। चेकबॉक्स के लिए बूलियन, या त्रि-राज्य चेकबॉक्स के लिए एक एनम)।

मेरी मूल डिजाइन के बाद मैं तो वर्गों और कनेक्शन को लागू करने के किसी भी वास्तविक कार्यान्वयन

+0

जो आप वर्णन कर रहे हैं वह एक मोटा विश्लेषण और डिजाइन चरण है। मैं उन उपकरणों की तलाश में हूं जो ठीक से सहायता करेंगे - मेरा प्रश्न देखें और शायद कुछ गुरु बाहर आएंगे और हमें टूल पर इंगित करेंगे। – slashmais

1

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

मैंने सोचा था कि साफ था। मैं व्यक्तिगत रूप से यूएमएल-एस्क्यू वर्ग और अनुक्रम आरेख का उपयोग करता हूं। असली राय, मेरी राय में, बहुत अधिक काम है।

+0

मेरे व्यक्तिगत अनुभव में, कुछ वर्गों के साथ कोड बुरी तरह से encapsulated कोड है। –

+0

वह पागल लगता है! मुझे लगता है कि अगर मैं इसका इस्तेमाल करता हूं तो मैं केवल 5 कक्षाओं वाले सिस्टम के साथ फंस जाऊंगा;) – UpTheCreek

+0

बिंदु उस मॉड्यूल में से एक में कार्यक्षमता को समाहित करना था-"मॉड्यूल"। वे वर्गों के साथ 1-से-1 मैप नहीं करते हैं, वे कार्यक्षमता के केवल तार्किक encapsulations हैं। बुनियादी डिजाइन सिद्धांत प्रणाली को 3-5 भागों में विभाजित करना और उनके इंटरैक्शन मॉडल करना है, फिर उनमें से प्रत्येक में और उसके साथ गोता लगाएँ। जब तक आप पूरा नहीं कर लेते हैं तब तक आप इसे फिर से करते हैं। यह मानक यूएमएल अभ्यास भी है (पैकेज आरेख और क्या नहीं)। यह सोचने के लिए मूर्खतापूर्ण है कि एक पूरी प्रणाली नाम/लेबल के साथ भी एक वर्ग आरेख पर फिट हो सकती है! –

0

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

वहाँ एक पिच-कांटा लग रही बात है। डेटा के प्रवाह के लिए तीर, कभी-कभी हुप्स के माध्यम से गुज़रने से विनियमन, मार्गदर्शन, उस डेटा को पुनर्निर्देशित किया जाता है।

मैं यूएमएल में इस्तेमाल वर्ग विरासत इंगित करने के लिए प्रकार के तीर का उपयोग करते हैं। यही एकमात्र चीज है जिसे मैंने यूएमएल से चुरा लिया। (यूएमएल का सामना करने से पहले मैंने जो कुछ भी उपयोग किया था?) मेरी पृष्ठभूमि इलेक्ट्रॉनिक्स है, इसलिए मेरा व्यक्तिगत नोटेशन संभवत: एक बच्चे के रूप में रेडियो और टीवी के ब्लॉक आरेखों को देखने पर आधारित है।

मैं स्रोत कोड हूं कि मेरे काम के बारे में 90% में भाग्यशाली एकल है, पूरी तरह से मेरे आदेश के तहत, केवल दूसरों के लिए निष्पादनयोग्य के समाप्त या परीक्षण संस्करणों दे रही है। अगर मैं एक बड़े निगम में था, तो मुझे सर्कस सनकी की तरह बहुत अजीब दिखने लगेगा!

0

से पहले, मैं सरल एक्सेल इस्तेमाल किया मेरे चित्र करने के लिए और इस प्रक्रिया से बहती है। बहुत आसान और कोई बकवास नहीं। अब, मैं आमतौर पर अपने आरेखण करने के लिए Visio, StarUML, Creately, और Lucidchart जैसे अधिक विश्वसनीय टूल का उपयोग करता हूं।