পাইথনের উত্স কোড থেকে কোনও ইউএমএল ডায়াগ্রাম তৈরি করার সর্বোত্তম উপায় কী? [বন্ধ]


258

একজন সহকর্মী পাইথনের উত্স কোডের Uগল থেকে ইউএমএল শ্রেণির চিত্রগুলি তৈরি করতে চাইছেন। তিনি মূলত উত্তরাধিকারের সম্পর্কের বিষয়ে আগ্রহী, এবং রচনাগত সম্পর্কের বিষয়ে মৃদু আগ্রহী, এবং শ্রেণি বৈশিষ্ট্যগুলি যা কেবল পাইথনের আদিম সেগুলি সম্পর্কে খুব বেশি যত্ন নেন না।

উত্স কোডটি বেশ সহজবোধ্য এবং মারাত্মকভাবে মন্দ নয় - উদাহরণস্বরূপ এটি কোনও অভিনব মেটাক্লাস যাদু করে না। (এটি বেশিরভাগ পাইথনের ২.০.২.২ এর দিন থেকে কিছুটা "আধুনিক" ২.৩ আইশ স্প্রিংকলিং রয়েছে))

সুপারিশ করার সেরা বিদ্যমান সমাধানটি কী?


29
মোডগুলি এই প্রশ্নটি গঠনমূলক মনে করেনি। আমি (এবং আরও অনেকে যারা এটি পছন্দ করেছেন) এটি দরকারী বলে মনে করেছি। তাতে কি? এটি "গঠনমূলক" না হওয়ার চেয়ে বড় বিষয় নয়!
ইয়াতী সাগাদ

13
গঠনমূলক নয় কারণ এটি বিতর্ক, যুক্তি, আলোচনা জিজ্ঞাসা করবে ?????? আমরা কি তা চাই না? এটি একটি খুব প্রাসঙ্গিক প্রশ্ন ..
ভূষণ

2
@ ইউটিসাগেদে আপনি যদি খেয়াল করেন যে এটি বন্ধ ছিল, মুছে ফেলা হয়নি (এবং এই বহু উত্স দিয়ে সম্ভবত ব্যবহারিকভাবে কখনও মুছতে পারে না)। কেবল বন্ধ করার অর্থ এটি নতুন উত্তর পেতে পারে না।
টাকসওয়েল

7
@ ভূষণ না, আমরা আলোচনা চাই না, আমরা প্রশ্ন ও উত্তর জোড়া চাই যার স্পষ্ট উত্তর রয়েছে। এটি একটি আকর্ষণীয় প্রশ্ন বা একটি দরকারী প্রশ্ন হওয়ার বিষয়ে রায় নয়, এটি এসও-র পক্ষে অন-টপিক থাকার বিষয়। অবশ্যই আপনি সম্মত হন যে "সেরা সম্পাদক কী?" (obs emacs) কোনও গঠনমূলক প্রশ্ন নয়, এই প্রশ্নটি ঠিক একই ছাঁচের।
টাকসওয়েল

@ ট্যাকাসওয়েল প্রশ্ন ও উত্তর ফর্ম্যাটে প্রশ্নের সংশোধন করার ক্ষেত্রে কিছু আলোচনা খুব প্রাসঙ্গিক।
ব্যবহারকারী 32882

উত্তর:


128

আপনি পাইলিন্টের কথা শুনে থাকতে পারেন যা পাইথন কোডটি স্থিরভাবে পরীক্ষা করতে সহায়তা করে। খুব কম লোকই জানেন যে এটি পাইরেভার্স নামে একটি সরঞ্জাম নিয়ে এসেছে যা এটি পড়ার অজগর কোড থেকে ইউএমএল চিত্র আঁকবে । পাইরেভার্স গ্রাচভিজকে ব্যাকএন্ড হিসাবে ব্যবহার করে।


"_" দিয়ে শুরু করে ব্যক্তিগত পদ্ধতিগুলি কীভাবে ভিজ্যুয়ালাইজ করতে হয় তা আপনি জানেন
গুস্তাভজ

1
দুর্ভাগ্যক্রমে, পাইরাইভার্স প্যাকেজ ডায়াগ্রামগুলি বিশাল যেহেতু সবকিছু অনুভূমিকভাবে স্থাপন করা হয়েছে (গ্রাভিউজের সীমাবদ্ধতার আরও কিছু, তবে এখনও)। দস্তাবেজ অন্তর্ভুক্ত জন্য দরকারী নয়।
oarfish

@ অয়ারফিশকে একটি কর্মপরিকল্পনা হিসাবে, আপনি অন্তর্ভুক্ত করতে চান মডিউলগুলি চয়ন করতে এবং বিভিন্ন পৃথক গ্রাফ তৈরি করতে চেরি করতে পারেন।
jjmontes

95

পাইপন উত্স কোড থেকে এপিআইডিএকপি ডকুমেন্টেশন তৈরির একটি সরঞ্জাম হ'ল ইপিডোক । এটি অভিনব উপায়ে গ্রাফভিজ ব্যবহার করে ইউএমএল শ্রেণীর চিত্রগুলিও উত্পন্ন করে। এখানে ইপিডোকের উত্স কোড থেকে প্রাপ্ত চিত্রের উদাহরণ রয়েছে

যেহেতু ইপিডোক উভয় বস্তুর অন্তঃকরণ এবং উত্স পার্সিং সম্পাদন করে এটি ডক্সিজেনের মতো স্থিতিশীল কোড বিশ্লেষকদের সম্পর্কে আরও তথ্য সংগ্রহ করতে পারে: এটি গতিশীলভাবে উত্পন্ন শ্রেণি এবং ক্রিয়াকলাপগুলির একটি নিখরচায় পরিদর্শন করতে পারে তবে ডকুমেন্টেশন উত্স হিসাবে মন্তব্যগুলি বা স্বাক্ষরযুক্ত স্ট্রিংগুলিও ব্যবহার করতে পারে ভেরিয়েবল এবং শ্রেণীর সর্বজনীন বৈশিষ্ট্যের জন্য।


এটি gifs এর পরিবর্তে ভেক্টর গ্রাফিক্স আউটপুট করার কোনও উপায় আছে কি? আমি এতে কোনও নথিপত্র পাইনি এবং এইচটিএমএল ডক ব্যতীত অন্য কোনও কিছুর জন্য গ্রাফগুলি মোটামুটি অকেজো।
ওরিফিশ

3
বর্তমানে epydocগ্রাফ তৈরি করতে অক্ষম বলে মনে হচ্ছে। এই বাগ রিপোর্টটি দেখুন
Luís de Sousa

14
অজগর 3
tomsv

23

পাইথনের জন্য সাতটি ইউএমএল সরঞ্জামের এই তালিকাটি পরীক্ষা করে দেখুন


2
উপরোক্ত পৃষ্ঠায় উল্লিখিত আমার ওপেন সোর্স ইউএমএল সরঞ্জাম পাইএনসোর্স পাইসোর্স ডট কম উল্লেখ করার পরে থেকে বহু সংস্করণ পরিবর্তন হয়েছে। এটি এখন পাইথন 3 পার্স করে, এতে জুম, লেআউট, এএসসিআইআই ইউএমএল এবং প্ল্যান্টুমল রেন্ডারিং সমর্থন রয়েছে। পাইন্সফোর্সটিও, যতদূর আমি জানি, একমাত্র ইউএমএল সরঞ্জাম যা পাইথন উদাহরণ বৈশিষ্ট্যগুলি (কেবল শ্রেণীর বৈশিষ্ট্যগুলি নয়) স্বীকৃতি দেয়। এর অর্থ হ'ল সেলফাইম্যাট্রারের মতো অভিব্যক্তি ফলাফল ইউএমএল শ্রেণিতে একটি উপযুক্ত বৈশিষ্ট্য "মায়াটার" হিসাবে তৈরি করবে। বাইনারি চালানোর জন্য প্রস্তুত ম্যাক, উইন্ডোজ, উবুন্টু 18 এবং 16 এর জন্য উপলব্ধ - পাশাপাশি একটি মুক্ত উত্স গিথুব রেপো।
আবুলকা

8

কিছু ভাল শ্রেণীর প্রোগ্রামগুলির শ্রেণিগুলি ডায়াগ্রামেবল হতে পারে, তবে সাধারণ ক্ষেত্রে এটি করা যায় না। পাইথন অবজেক্টগুলি রান সময়ে বাড়ানো যেতে পারে এবং যে কোনও ধরণের অবজেক্টগুলি যে কোনও উদাহরণ ভেরিয়েবলের জন্য বরাদ্দ করা যেতে পারে। কোনও বস্তু কোন শ্রেণীর (রচনা) নির্দেশক থাকতে পারে সেগুলি নির্ধারণের জন্য প্রোগ্রামের রানটাইম আচরণের সম্পূর্ণ বোঝার প্রয়োজন হবে।

পাইথনের মেটাক্লাস ক্ষমতাগুলির অর্থ হ'ল উত্তরাধিকার কাঠামো সম্পর্কে যুক্তিযুক্ত হওয়ার জন্য প্রোগ্রামটির রানটাইম আচরণের সম্পূর্ণ বোঝার প্রয়োজন হবে।

এগুলি অসম্ভব বলে প্রমাণ করার জন্য আপনি যুক্তি দিয়েছিলেন যে এই জাতীয় কোনও ইউএমএল ডায়াগ্রামটি যদি বিদ্যমান থাকে তবে আপনি একটি স্বেচ্ছাসেবী প্রোগ্রাম গ্রহণ করতে পারেন, "থামান" বিবৃতিগুলিকে ইউএমএল চিত্রের উপর প্রভাব ফেলবে এবং থামানো সমস্যা সমাধানের জন্য ইউএমএল ডায়াগ্রাম ব্যবহার করতে পারেন, যা আমরা জানি অসম্ভব।


8
কিছু ভাল জিনিস, কিন্তু থামানো-সমাধানের হাত-ছাড়াই এটি নষ্ট করে দেয়। প্যাথলজিকাল কেসগুলি এখানে বিষয় নয়। ভাল আচরণ করা যথেষ্ট।
ddaa

"হ্যান্ড-ওয়েভিং" বলতে কী বোঝ? আমি সম্পূর্ণ প্রমাণগুলি লিখি নি, তবে আমি পর্যাপ্ত তথ্য দিয়েছি যে যে কেউ অনুরূপ প্রমাণ দেখেছে সেগুলি তৈরি করতে পারে, একটি রচনার জন্য এবং একটি উত্তরাধিকারের জন্য।
Andru Luvisi

14
এখানে একটি সাদৃশ্য রয়েছে: ডিফ / প্যাচ বিভিন্নভাবে ব্যর্থ হতে পারে, তাদের মধ্যে কিছু তুচ্ছ। বাস্তব বিশ্বের অনেক ক্ষেত্রে এটি এখনও খুব কার্যকর। যুক্তিসঙ্গত ক্ষেত্রে, চিত্রের উত্তরাধিকার তুচ্ছ। ডেলিগেশন আরও কৃপণ, তবে একটি প্যাকেজের সীমানার মধ্যে টাইপ অনুক্রমের দ্বারা সম্ভব as
ddaa

7

আপনি যদি গ্রহনটি ব্যবহার করেন তবে সম্ভবত পাইউএমএল । যদিও এটি ব্যবহার করেন নি।


1
এটি সত্যিই ভাল পরামর্শ, তবে এফডাব্লুআইডাব্লু আমি পাইউএমএল প্রকল্পের সাইটে লক্ষ্য করেছি যে তারা এখনও গ্রহনটি ৩.৪ (গ্যানিমেড) সমর্থন করে না। যখন তারা এটি কাজ করে তখন আমি চেষ্টা করার অপেক্ষায় থাকব।
বিল কারভিন

আপনি কি 3.4 দিয়ে পিইউএমএল এর কাজ পেয়েছেন?
আনিঝাও

2
এই প্রকল্পের সর্বশেষ প্রতিশ্রুতি ২০০৯ সালের দিকে হয়েছিল It এটি মার্কেটপ্লেসে প্রদর্শিত হয় না এবং গ্রহনটি .zipসংরক্ষণাগার থেকে এটি ইনস্টল করতে সক্ষম হয় না ।
Luís de Sousa


5

ওম্ব্রেলোও তা করে। মেনুতে কোড -> আমদানি প্রকল্পে যান এবং তারপরে আপনার প্রকল্পের মূল নির্দেশিকাটি নির্দেশ করুন। তারপরে এটি আপনার জন্য কোডটি বিপরীত করে ...


আপনি কি উম্ব্রেলোকে সম্পূর্ণ শ্রেণীর ডায়াগ্রাম তৈরি করার উপায় জানেন (এবং তাদের মধ্যে সম্পর্কগুলি কেবল নিজের দ্বারা ক্লাস নয় - মনে রাখবেন না যে চিত্রটি কীভাবে ডাকা হয়)
ভ্লাদ-আর্দলিয়ান

2
আঃ, আপনাকে ফাইলগুলি আমদানি করতে হবে এবং তারপরে আপনি যখন অঙ্কন অঞ্চলে ক্লাসগুলি টেনে আনেন এবং ড্রপ করেন, সংযোগগুলি স্বয়ংক্রিয়ভাবে যুক্ত হয়ে যায়।
হোসনে

5

ভিপেরা একটি ছোট অ্যাপ্লিকেশন ডিজাইনার এবং ইউএমএল অন্তর্ভুক্ত। আপনি এটি দেখতে পারেন:

vipera

শুভেচ্ছান্তে.


4

SPE আইডিই বিল্ট-ইন ইউএমএল স্রষ্টা হয়েছে। কেবল এসপিইতে ফাইলগুলি খুলুন এবং ইউএমএল ট্যাবে ক্লিক করুন।

আমি জানি না এটি আপনার প্রয়োজনের জন্য কতটা বিস্তৃত, তবে এটি ব্যবহারের জন্য কোনও অতিরিক্ত ডাউনলোড বা কনফিগারেশন প্রয়োজন হয় না।


দুর্ভাগ্যক্রমে এটি বিকাশ বন্ধ হয়েছে, কিন্তু এখনও এখানে কাজ করে! (2013)
আবদেলৌহাব

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.