विकास से पहले आधुनिक अनुप्रयोगों के मॉडलिंग के लिए मानक क्या है?


9

मैं अपने पहले उद्यम-स्तर के आवेदन पर ले जा रहा हूं और मैं चाहता हूं कि मेरी टीम पूरे ASP.NET MVC C # एप्लिकेशन को मॉडल करे, इससे पहले कि हम कोड की एक पंक्ति को टैप करें।

अद्यतन: यह एक दार्शनिक चर्चा के बारे में नहीं था जब एक दस्तावेज़ को दस्तावेज / मॉडल किया जाए। कृपया केवल दस्तावेज़ / मॉडल के लिए "कैसे" के लिए उत्तर प्रदान करें।

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

जब मैं खोज करता हूं तो नेट के आसपास कई चीजें मिल सकती हैं, लेकिन मैं यह देखना चाहता था कि ऐसा करने के बारे में वर्तमान आधुनिक सहमति है या नहीं।

अग्रिम में धन्यवाद!

बंद बयान

मुझे नहीं पता था कि यह इतना चिपचिपा विषय था। आप सभी को धन्यवाद जो स्पष्ट विवाद को अलग कर सकते हैं और उपयोगी उत्तर प्रदान कर सकते हैं। यह कम से कम कहने के लिए एक दिलचस्प चर्चा थी :)

मेरे द्वारा खोजी गई एक और उपयोगी कड़ी यह है: /programming/61487/do-you-use-uml-in-agile-development-practices/61519#61519


6
आप झरना करना चाहते हैं?
इटियेन डी मार्टेल

1
@ इटेन, झरना? अगर यह किसी प्रकार का भोंपू है तो मुझे नहीं मिल रहा है। रचनात्मक आलोचना / सुझावों की सराहना की जाती है। कैसे के बारे में एक बेकार टिप्पणी upvoting के बजाय, आप मुझे इस मुद्दे को समझने में मदद करने के लिए अपनी टिप्पणी जोड़ें।

6
"मैं चाहता हूं कि मेरी टीम पूरे ASP.NET MVC C # एप्लिकेशन को मॉडल करे, इससे पहले कि हम कोड की एक पंक्ति भी टैप करें।" यह कहने के लिए नफरत है, लेकिन आप शुरू करने से पहले लगभग खुद को असफल होने के लिए प्रतिबद्ध कर रहे हैं । प्रयोज्य, उपयोगकर्ता की आवश्यकताओं, रखरखाव की पूर्ण गुंजाइश पूरी तरह से अदृश्य है जब तक आप वास्तव में कोड लिखना शुरू नहीं करते हैं; यदि आप एक बड़े डिजाइन पर जोर देते हैं, तो आप अपना आवेदन लिखने की तुलना में बहुत अधिक समय अपने डिजाइनों को अपडेट करने में बिताएंगे। उच्च स्तर के डिजाइन ठीक हैं , लेकिन पूरे ऐप का दस्तावेजीकरण कर रहे हैं ? बिलकुल नहीं।
जूलियट

3
@ चेहेव: झरना विकास की एक विधि है जिसमें बहुत सारे अप-फ्रंट डिज़ाइन शामिल हैं। सॉफ्टवेयर विकास समुदाय में यह काफी हद तक स्वीकार किया गया है कि विकास का यह तरीका सबसे अच्छा काम करता है।
क्वेंटिन-स्टारिन

1
touche @Chevex, touche ... चुपचाप चलता है
mcgrailm

जवाबों:


6

एक वर्तमान आधुनिक आम सहमति

सच्चाई यह है: वर्तमान में, यह कुछ ऐसा है जो आधुनिक सॉफ्टवेयर विकास की कमी है - मॉडलिंग के बारे में आम सहमति। यूएमएल किसी प्रकार का सबसे छोटा सामान्य भाजक लगता है, लेकिन वास्तव में केवल संकेतन के बारे में नहीं, बल्कि संकेतन के बारे में सहमति है। यूएमएल को कोड बनाने के लिए कैसे व्याख्या की जानी चाहिए, इस पर दर्जनों अलग-अलग राय मौजूद हैं (शायद आप एक व्याख्या पा सकते हैं जो आपकी टीम के लिए ठीक है)।

दूसरी ओर, उन "फुर्तीले" लोगों के बीच एक पवित्र युद्ध चल रहा है, जिसमें कहा गया है कि "औपचारिक मॉडल न बनाएं, बेहतर काम करने वाले कोड लिखें" और "BDUF" (बड़ा डिज़ाइन अप फ्रंट) जो लोग सोच रहे हैं जैसे उपकरण " एमडीए ”(मॉडल संचालित वास्तुकला) समाधान हैं।

अन्य लोगों (पुनः) ने यूएमएल के विकल्प के रूप में आधुनिक सॉफ्टवेयर डिजाइन के लिए प्रवाह आधारित प्रोग्रामिंग की खोज की। इसके बारे में और जानने के लिए यहां और यहां पढ़ें ।


महान स्कॉट! यह अब तक इस सवाल पर सबसे उत्कृष्ट जवाब है। उद्योग में मॉडलिंग का एक अच्छा संक्षिप्त अवलोकन और जहाँ यह खड़ा है। धन्यवाद डॉक! +1.21 जिगवाट्स!

7

मैं चाहता हूं कि मेरी टीम पूरे ASP.NET MVC C # एप्लिकेशन को मॉडल करे, इससे पहले कि हम कोड की एक पंक्ति को टैप करें

इस तरह के दृष्टिकोण से मुझे जो समस्या मिलती है, वह यह है कि समाधान के बारे में मेरी समझ हमेशा शुरुआत में अधूरी है। यह केवल परिशोधन के माध्यम से होता है क्योंकि काम एक अंतिम समाधान के रूप में आता है।

किसी भी कोड (सभी में, लेकिन बहुत ही सरलतम ऐप्स) से पहले पूरे ऐप को सामने से डिजाइन करने की कोशिश करना आमतौर पर मूर्खतापूर्ण है।

क्या आप वास्तव में मानते हैं कि आप हर वर्ग और पद्धति और डेटा संरचना को पहले से विस्तार से बता सकते हैं?

मैं बस कुछ अच्छे मॉडलिंग समाधान जानना चाहता हूं।

मॉडल बनाने के लिए वास्तविक उपकरणों के रूप में, मैंने कुछ और हमेशा Microsoft Visio पर वापस लेने की कोशिश की है।

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

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

आप अपने विचारों को बनाने के लिए हाथ से लिखे गए आरेख उपयोगी हो सकते हैं, इससे पहले कि वे आरेख सॉफ़्टवेयर में बिछाएं।

किस प्रकार के आरेखों का उपयोग किया जाना चाहिए और दस्तावेज़ीकरण कैसा दिखेगा?

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


हम जाते ही अपने मॉडलिंग को एडजस्ट कर सकते हैं। यह वैसे भी नहीं है, मैं सिर्फ कुछ अच्छे मॉडलिंग समाधान जानना चाहता हूं।

इसलिए आप अपने मॉडल और कोड को सिंक में रखने का प्रयास करना चाहते हैं। यह अधिकांश के लिए काम नहीं करता है। वे अनिवार्य रूप से विचलन करेंगे, और विसंगतियां समस्याओं का कारण बनेंगी। इसके अलावा, आप बड़ी मात्रा में समय बिताने की कोशिश करेंगे
क्वेंटिन-स्टारिन

कृपया अद्यतन प्रश्न पढ़ें।

@Chevex: मैंने आपके संपादित प्रश्न के संबंध में सभी जोड़े।
क्वेंटिन-स्टारिन

@qes, मेरी बात यह थी कि आप एक ऐसे सवाल का जवाब दे रहे हैं, जिसका मैंने पूछना नहीं चाहा था। प्रश्न का "अद्यतन" अनुभाग देखें।

3

यूएमएल आरेख शुरू करने के लिए एक अच्छी जगह है, मुफ्त या सशुल्क सॉफ़्टवेयर के साथ ऐसा करने के कई आसान तरीके हैं। UML बनाने के लिए टूल का एक सरल उदाहरण Google डॉक्स ड्रॉइंग जैसा कुछ है, अधिक उन्नत पैकेज Visio या OmniGrffle होंगे।

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


मैंने यूएमएल के बारे में सुना है। आरंभ करने के लिए किसी स्थान के लिए कोई सिफारिशें हैं? आपके द्वारा सुझाए गए कोई भी अच्छे उपकरण?

@Chevex - बस एक त्वरित Google खोज की, और यह पाया: agilemodeling.com/artifacts/classDiagram.htm एक अच्छा प्रारंभिक बिंदु लगता है
ब्रेट

@qes - इस तरह से नीचे जाने के लिए उसके पास कितना समय / रुचि / निवेश है, यह सीखने का एक अच्छा अनुभव हो सकता है और शायद उसे लिखने से पहले अपने कोड के कुछ हिस्सों को समझने में उसकी मदद करें (भले ही इसके बस एक साधारण यूएमएल) ... लेकिन मैं सहमत हूं, उसे ऐसा करने के लिए पर्याप्त समय और व्यक्तिगत रुचि होनी चाहिए।
ब्रेट करें

@qes, कृपया अद्यतन प्रश्न पढ़ें।

2
@Chevex - आप शायद आरेख के प्रकारों पर कुछ पढ़कर शुरू करना चाहते हैं, और जो वे संवाद करने का इरादा रखते हैं। यूएमएल एक मॉडलिंग भाषा है जो बहुत वर्णनात्मक हो सकती है, लेकिन इसमें बहुत सारी बारीकियां भी हैं। संक्षेप में यूएमएल ने मुझे काफी मदद की है ( अजवायन . com/catalog/9781565924482 )। कहा जा रहा है कि आप अक्सर पूर्ण आरेख सेट के नीचे दिए गए संस्करणों के साथ प्राप्त कर सकते हैं। जब तक चित्र बनाने वाले लोग और चित्र पढ़ने वाले लोग सहमत हैं कि उनका क्या मतलब है।

2

जैसा कि @ ब्रेट ने सुझाव दिया, यूएमएल आरेख सर्वोत्तम हैं। UML के साथ क्लास डायग्राम और वर्क फ्लो डायग्राम के लिए अच्छा है। ये दोनों डिजाइन की अधिकांश जरूरतों को पूरा करेंगे।

वर्ग आरेख के साथ आप प्रत्येक इकाई के सदस्यों, उनके सुरक्षा स्तर आदि को मॉडल कर सकते हैं।

कार्य प्रवाह आरेख के साथ, आप यह बता सकते हैं कि कौन सी विधि कॉल है, जो कॉल करती है, कार्य प्रवाह का परिणाम क्या है और ऐसा क्या अपवाद होगा जो संभवतः पॉप आउट हो सकता है।


इस उत्तर के लिए धन्यवाद। कोई उपयोगी उपकरण सुझाएं? क्या दृश्य स्टूडियो किसी भी तरह से यूएमएल का समर्थन करता है?

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

2

जबकि मैं कोड लिखने से पहले कुछ बुनियादी वास्तु चित्र बनाने में दृढ़ता से विश्वास करता हूं, मुझे लगता है कि संपूर्ण ऐप का विस्तृत ड्राइंग बनाना बहुत अधिक काम है।

मैं आमतौर पर विसिओ में कुछ रूपरेखा चित्र बनाता हूं, अक्सर "फ्लोचार्ट" बिल्डिंग ब्लॉक्स का उपयोग करके कल्पना करता हूं कि मेरा क्या मतलब है। यूएमएल का उपयोग करना अक्सर औपचारिक रूप से महसूस होता है और बहुत अधिक विस्तार को आमंत्रित करता है। Visio ड्रॉइंग एप्लिकेशन के मूल बिल्डिंग ब्लॉक्स को दिखाती है और किस प्रकार की कार्यक्षमता कहाँ जाती है। यदि आप MVC फ्रेमवर्क का उपयोग कर रहे हैं, तो आप ज्यादातर वेब से एक ड्रॉइंग नमूना लेने और उसे कॉपी करके ही करते हैं।

एक अच्छा विचार अन्य बिंदुओं से कुछ चित्र बनाना है। सब कुछ खींचने के बजाय, मैं अक्सर सिस्टम के एक विशिष्ट कार्य को लेना पसंद करता हूं और फिर इसे निम्न रूप से देखता हूं:

  • केस आरेख (UML) का उपयोग करें
  • फ्लो चार्ट या यूएमएल स्विम-लेन (बहुत उच्च-स्तरीय)
  • वास्तुकला घटक अवलोकन।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.