আমি কীভাবে বিদ্যমান জাভা কোড থেকে ইউএমএল ডায়াগ্রাম (বিশেষত ক্রম ডায়াগ্রাম) তৈরি করতে পারি?
আমি কীভাবে বিদ্যমান জাভা কোড থেকে ইউএমএল ডায়াগ্রাম (বিশেষত ক্রম ডায়াগ্রাম) তৈরি করতে পারি?
উত্তর:
আমি কি ব্যবহার করেছি। এটি সহজেই সংগ্রহস্থল থেকে ইনস্টল করা হয়:
Name: ObjectAid UML Explorer
Location: http://www.objectaid.com/update/current
এবং বেশ সুন্দর ইউএমএল ডায়াগ্রাম উত্পাদন করে:
অবজেক্টএইড ইউএমএল এক্সপ্লোরার অন্যান্য ইউএমএল সরঞ্জামগুলির থেকে পৃথক। এটি ব্যবহারের পক্ষে খুব সহজ হওয়ার সাথে সাথে বিদ্যমান কোডের গ্রাফিকাল উপস্থাপনাটি ব্যবহার করতে এটি ইউএমএল স্বরলিপি ব্যবহার করে যা আপনার পাঠ্য সম্পাদক হিসাবে যথাযথ এবং যুগোপযোগী। বেশ কয়েকটি অনন্য বৈশিষ্ট্য এটিকে সম্ভব করে তোলে:
- আপনার উত্স কোড এবং গ্রন্থাগারগুলি এমন মডেল যা প্রদর্শিত হয়, তারা বিপরীতে ইঞ্জিনিয়ারকে আলাদা ফর্ম্যাটে রূপ দেয় না।
- আপনি যদি একিলেসে আপনার কোডটি আপডেট করেন তবে আপনার চিত্রটিও আপডেট হয়েছে; ইঞ্জিনিয়ার সোর্স কোডটি রিভার্স করার দরকার নেই।
- রিফ্যাক্টরিং আপনার ডায়াগ্রাম পাশাপাশি আপনার উত্স কোড আপডেট করে। আপনি যখন কোনও ক্ষেত্রটির নাম পরিবর্তন করেন বা শ্রেণি স্থানান্তর করেন, আপনার ডায়াগ্রামটি সিঙ্কের বাইরে না গিয়ে কেবল পরিবর্তনগুলি প্রতিফলিত করে।
- আপনার এক্লিপস ওয়ার্কস্পেসের সমস্ত চিত্রগুলি যথাযথ হিসাবে রিফ্যাক্টরিং পরিবর্তনের সাথে আপডেট করা হয়েছে। যদি প্রয়োজন হয় তবে সেগুলি আপনার সংস্করণ নিয়ন্ত্রণ সিস্টেমের বাইরে পরীক্ষা করা হবে।
- চিত্রগুলি Eclipse IDE তে সম্পূর্ণ সংহত হয়েছে। আপনি জাভা ক্লাসগুলি অন্য কোনও ভিউ থেকে ডায়াগ্রামে টেনে আনতে পারেন এবং ডায়াগ্রাম সম্পর্কিত তথ্য যেখানেই প্রযোজ্য সেখানে অন্য ভিউতে দেখানো হয়েছে।
An error occurred while installing the items session context was:(profile=epp.package.java, phase=org.eclipse.equinox.internal.p2.engine.phases.Install, operand=null --> [R]com.objectaid.uml 1.1.3, action=). Failed to prepare partial IU: [R]com.objectaid.uml 1.1.3.
সম্পাদনা করুন: আপনি যদি ডিজাইনার হন তবে প্যাপিরাসটি আপনার সেরা পছন্দ এটি অত্যন্ত উন্নত এবং বৈশিষ্ট্যগুলিতে পূর্ণ, তবে আপনি যদি কেবল কিছু ইউএমএল ডায়াগ্রাম এবং সহজেই ইনস্টলেশনটি স্কেচ করতে চান তবে অবজেক্টএইডটি বেশ দুর্দান্ত এবং এটিতে কোনও প্লাগইন প্রয়োজন নেই I সবেমাত্র এটি Eclipse-Java EE এর উপর ইনস্টল করা হয়েছে এবং দুর্দান্ত কাজ করে!
আপডেট 11 ই অক্টোবর, 2013
আমার আসল পোস্টটি ২০১২ সালের জুনে ছিল অনেকগুলি বিষয় বদলেছে অনেক সরঞ্জাম বেড়েছে এবং অন্যরা করেনি। যেহেতু আমি কিছু মডেলিং করতে ফিরে যাচ্ছি এবং পোস্টটিতে কিছু জবাব পেয়েছি আমি আবারও পেপিরাস ইনস্টল করার সিদ্ধান্ত নিয়েছি এবং আবারও সম্ভাব্য ইউএমএল মডেলিংয়ের সমাধানগুলি তদন্ত করব। ইউএমএল প্রজন্ম (সিঙ্ক্রোনাইজেশন বৈশিষ্ট্য সহ) সফ্টওয়্যার ডিজাইনারের পক্ষে নয়, গড় বিকাশকারীদের পক্ষে সত্যই গুরুত্বপূর্ণ।
আমি আশা করি পেপিরাসটি প্রকৌশলী ক্লাসগুলি ইউএমএল শ্রেণির ডায়াগ্রামে সরল করার সহজ উপায় ছিল এবং যদি বিপরীত প্রকৌশলটির একটি সুসংগত বৈশিষ্ট্য থাকে তবে এটি দুর্দান্ত শীতল হবে তবে দুর্ভাগ্যক্রমে প্যাপিরাস প্রকল্পটি বৈশিষ্ট্যগুলিতে পূর্ণ এবং আমি মনে করি সেখানে ডেভেলপাররা ইতিমধ্যে অনেকগুলি হাতে রয়েছে বলে মনে হয় পেপাইরাস নিয়ে আপনি যে ক্রিয়া করেন তা আপনাকে কোনও প্রতিক্রিয়া জানাতে পারে না এবং কেবল কিছুই ঘটে না তবে তা এই প্রশ্নের ক্ষেত্রের বাইরে of
উত্তর (11 অক্টোবর, 2013)
সরঞ্জামসমূহ
ধাপ
MyProject_kdm.xmi -> আবিষ্কার -> আবিষ্কারক -> কেডিএম কোড থেকে ইউএমএল মডেলটি আবার ডান ক্লিক করুন আপনি মাইপ্রজেক্ট.মল নামের একটি ফাইল জেনারেশনের জন্য ট্রায়ালটিতে ডায়ালগ ডায়ালগটি ট্রুতে সেট করবেন property
উত্পন্ন মাইপ্রজেক্ট.উমল যা মূলে উত্পন্ন হয়েছিল, ইউএমএল ফোল্ডারে সরান, Eclipse আপনাকে জিজ্ঞাসা করবে আপনি এটি প্রতিস্থাপন করতে চাইলে হ্যাঁ ক্লিক করুন। আমরা এখানে যা করেছি তা হ'ল আমরা একটি খালি মডেলটিকে জেনারেট করে প্রতিস্থাপন করেছি।
ALT + W -> প্রদর্শন দেখুন -> পেপাইরাস -> মডেল এক্সপ্লোরার
সেই দৃশ্যে, আপনি আপনার ক্লাসগুলি ছবিতে দেখতে পাবেন
ভিউতে রাইট মডেলটিতে রাইট ক্লিক করুন -> নতুন ডায়াগ্রাম
তারপরে ভিউ থেকে ডায়াগ্রামে ক্লাসগুলি ধরা শুরু করুন
কিছু বৈশিষ্ট্য
শ্রেণীর উপাদানগুলি দেখানোর জন্য (ভেরিয়েবল, ফাংশন ইত্যাদি) যে কোনও ক্লাসে ডান ক্লিক করুন -> ফিল্টার -> সামগ্রী লুকান / লুকিয়ে রাখুন ভয়েলা !!
আপনার উইন্ডো -> পেরেফারেন্স -> প্যাপিরাস -> শ্রেণি চিত্রের থেকে ডিফল্ট বন্ধুত্বপূর্ণ রঙের সেটিংস থাকতে পারে
একটি অত্যন্ত গুরুত্বপূর্ণ সেটিংস হ'ল বিন্যাস করুন যখন আপনি ক্লাসগুলি ড্রপ করেন তারা ক্লাস ডায়াগ্রামের যে কোনও ফাঁকা জায়গাতে একটি বিড়ম্বিত রাইট ক্লিক পান এবং সমস্ত সাজান ক্লিক করুন range
মডেল এক্সপ্লোরার ভিউতে তীরগুলি সাধারণীকরণ, আদায় ইত্যাদি দেখানোর জন্য ডায়াগ্রামে ধরা যেতে পারে
সর্বোপরি আপনার সেটিংসগুলিতে ডায়াগ্রামগুলি দেখাবে
সিঙ্ক্রোনাইজেশনটি যতদূর আমি জানি যে আপনাকে ম্যানুয়ালি কোনও নতুন ক্লাস আমদানি করতে হবে available
এগুলি হ'ল, এবং বাণিজ্যিক পণ্যগুলি কিনবেন না যদি না আপনার সত্যই এটির প্রয়োজন হয়, প্যাপিরাস আসলে দুর্দান্ত এবং পরিশীলিত পরিবর্তে অনুদান বা কিছু দেয়।
দাবি অস্বীকার: পাপাইরাস জনগণের সাথে আমার কোনও সম্পর্ক নেই, বাস্তবে আমি প্রচুর গবেষণা না করে এবং ধৈর্য সহকারে অভিজ্ঞতা না পাওয়া পর্যন্ত আমি প্রথমে পাপাইরাস পছন্দ করি না। এবং আমি অন্যান্য নিখরচায় সরঞ্জাম ব্যবহার করার পরে আবার এই পোস্টে ফিরে আসব।
আপনার কোডবেস কি? জাভা নাকি সি ++?
জাভার জন্য eUML2 হল একটি শক্তিশালী ইউএমএল মডেলার যা Eclipse এ জাভা ডেভেলপারের জন্য ডিজাইন করা হয়েছে। ফ্রি সংস্করণটি বাণিজ্যিক ব্যবহারের জন্য ব্যবহার করা যেতে পারে। এটি নিম্নলিখিত বৈশিষ্ট্যগুলি সমর্থন করে:
- সিভিএস এবং টিম সহায়তা
- একাধিক এবং কাস্টমাইজযোগ্য মডেল ভিউ সহ বৃহত প্রকল্পের জন্য ডিজাইন করা
- হেলিওস কমপ্লায়েন্ট
- রিয়েল-টাইম কোড / মডেল সিঙ্ক্রোনাইজেশন
- ইউএমএল ২.১ মেনে চলমান এবং ওএমজি এক্সএমআই সমর্থন
- জেডিকে 1.4 এবং 1.5 সমর্থন
বাণিজ্যিক সংস্করণ সরবরাহ করে:
উন্নত বিপরীত প্রকৌশল
- শক্তিশালী সত্য নির্ভরতা সরঞ্জাম বিশ্লেষণ
- ইউএমএল প্রোফাইল এবং এমডিডি
- ডাটাবেস সরঞ্জাম
- কাস্টমাইজযোগ্য টেমপ্লেট সমর্থন
আমি লেখকদের একজন, সুতরাং উত্তর পক্ষপাতদুষ্ট হতে পারে। এটি ওপেন সোর্স (অ্যাপাচি ২.০), তবে প্লাগইনটি বিনামূল্যে নয়। আপনি যদি স্থানীয়ভাবে এটি ক্লোন করে তৈরি করেন তবে আপনাকে অর্থ দিতে হবে না (স্পষ্টতই)।
ইন্টেলিজ আইডিইএতে, জেনুমেল জাভা কোড থেকে সিকোয়েন্স ডায়াগ্রাম তৈরি করতে পারে।
Https://plugins.jetbrains.com/plugin/12437-zenuml-support এ এটি পরীক্ষা করে দেখুন
প্ল্যান্টামএল সম্পর্কে কীভাবে ? এটি বিপরীত প্রকৌশল জন্য নয় !!! আপনার কোড করার আগে এটি ইঞ্জিনিয়ারিংয়ের জন্য।
আমি একটি মাভেন প্লাগইন তৈরি করেছি যা সিএলআই থেকে একটি প্লাগইন লক্ষ্য হিসাবে চালানো যেতে পারে, বা নির্ভরতা হিসাবে আমদানি করতে হয় এবং প্রোগ্রামারিকভাবে পার্সার ব্যবহার করতে @see Main#main()
পারে কীভাবে ধারণা পেতে।
এটা তোলে উপস্থাপনা PlantUML পছন্দসই প্যাকেজ src কোড যাও recursively যে আপনি নিজে সম্পাদনা করতে পারেন প্রয়োজনে (আশা তুমি করবে না)। তারপরে, প্ল্যান্ট ইউএমএল পৃষ্ঠায় কোডটি আটকানো বা প্ল্যান্টের জারটি ডাউনলোড করে আপনি ইউএনএল চিত্রটি পিএনজি চিত্র হিসাবে রেন্ডার করতে পারেন।
এটি এখানে দেখুন https://github.com/juanmf/ জাভা 2 প্লান্টএমএল
যে কোন অবদান স্বাগত চেয়ে বেশি। এটিতে ফিল্টারগুলির একটি সেট রয়েছে যা আউটপুটকে কাস্টমাইজ করে তবে আমি সেগুলি প্লাগিন সিএলআই প্যারামগুলিতে এখনও প্রকাশ করতে পারি নি।
এটি লক্ষ্য করা গুরুত্বপূর্ণ যে এটি আপনার *। জাভা ফাইলগুলির মধ্যেই সীমাবদ্ধ নয়, এটি আপনার থেকে ম্যাভেন নির্ভরতাগুলি থেকেও ইউএমএল ডায়াগ্রামের এসসিআরও সরবরাহ করতে পারে। আপনার উপর নির্ভরশীল লাইব্রেরিগুলি বোঝার জন্য এটি খুব সহজ। এটি প্রকৃতপক্ষে সংকলিত ক্লাসগুলি প্রতিবিম্ব সহ পরিদর্শন করে যাতে কোনও উত্সের প্রয়োজন হয় না
এটি গীতহাবের তারকাচিহ্নিত প্রথম স্থান পান: পি
আমি সাধারণ ব্যবহারের জন্য ওমন্ডো থেকে এক্লিপসইউএমএল প্রস্তাব করব , যদিও আমি কয়েক মাস আগে আমার ওয়েব প্রকল্পগুলি সহ কিছু সমস্যার সম্মুখীন হয়েছি। তাদের এক সময় একটি বিনামূল্যে সংস্করণ ছিল, তবে এটির আর প্রচার হয় না বলে মনে হয়।
আপনি যদি উত্স কোড থেকে রিভার্স ইঞ্জিনিয়ারিং সিকোয়েন্স ডায়াগ্রামের বিষয়ে সত্যিই আগ্রহী হন, আমি জে ট্র্রেসেটের পরামর্শ দেব ।
যতক্ষণ নিঃস্রোত প্রকল্পগুলি তাদের নিজস্ব হিসাবে বিবেচিত , Eclipse UML2 সরঞ্জাম প্রকল্পটি বিপরীত প্রকৌশলকে সমর্থন করতে পারে, যদিও আমি এর ব্যবহারটি বাস্তবে কখনও দেখিনি।
MoDisco (মডেল ডিসকভারি) প্রকল্প অন্ধকার জিএমটি প্রকল্পের আপনার উদ্দেশ্য অর্জনের পরিষ্কার মনে করা হয়। প্রযুক্তি নির্দিষ্ট সরঞ্জামের তালিকা একটি ভাল জায়গা দিয়ে শুরু করতে হবে।
jSonde
URL টি উপরে দেখানো উপলব্ধ নেই। আপনি গিথুব : github.com/bedrin/jsonde এ একটি ওয়েবসাইট এবং উত্স কোড খুঁজে পেতে পারেন ।
আমি গ্রীন প্লাগইনটি ব্যবহার করতে এবং উত্স কোড থেকে শ্রেণি চিত্রটি তৈরি করার জন্য খুব সহজ পেয়েছি । একবার চেষ্টা করে দেখো :). আপনার প্লাগইন ডায়ারে প্লাগইনটি অনুলিপি করুন।
আপনি নেটবিয়ান্স ইউএমএল মডেলারের চেষ্টা করেও দেখতে পারেন। আমি আমার গ্রহণ প্রকল্পগুলিতে জাভাকোড তৈরি করতে এটি ব্যবহার করেছি। এমনকি আপনি নেটবীনে গ্রহন প্রকল্পগুলি আমদানি করতে পারেন এবং নেটবিন প্রকল্পের সেটিংসের সাথে গ্রহগ্রহের সেটিংস সিঙ্ক করে রাখতে পারেন।
আমি গ্রহণের জন্য বেশ কয়েকটি ইউএমএল মডেলারের চেষ্টা করেছি এবং তাদের সাথে সন্তুষ্ট নই। তারা হয় অস্থির, জটিল বা কেবল সরল কুরুচিপূর্ণ। ;-)
ইন্টেলিজ আইডিইএ ব্যবহার করছে। বর্গ ডায়াগ্রাম নির্বাচন প্যাকেজ এবং প্রেস উৎপন্ন করার জন্য Ctrl+ + Alt+ + U:
ডিফল্টরূপে, এটি কেবল শ্রেণীর নাম প্রদর্শন করে এবং সমস্ত নির্ভরতা নয়। এটি পরিবর্তন করতে: ডান ক্লিক করুন -> বিভাগগুলি দেখান ... এবং নির্ভরতা দেখান:
নির্ভরতা ডায়াগ্রাম জেনারেট করতে (ইউএমএল ডিপ্লোমেন্ট ডায়াগ্রাম) এবং আপনি মাভেন ব্যবহার দেখুন -> সরঞ্জাম উইন্ডোজ -> মাভেন প্রকল্পগুলি এবং Ctrl+ Alt+ টিপুন U:
এছাড়াও আরও আরও ডায়াগ্রাম তৈরি করা সম্ভব। ডকুমেন্টেশন দেখুন ।
আপনি EclipseUML এর 30 দিনের মূল্যায়ন বিল্ডটি Eclipse 3.5 3.5 এর জন্য ব্যবহার করতে পারেন: http://www.uml2.org/eclipse-java-galileo-SR2-win32_eclipseUML2.2_package_may2010.zip এটি সর্বশেষ 3.6 বিল্ড নয়, তবে এটি বেশ ভাল এবং পরীক্ষার জন্য এবং বিপরীত প্রকৌশল জন্য আপনার এটি কেনার প্রয়োজন হবে না।
বিপরীত প্রকৌশল: http://www.forum-omondo.com/docamentation_eclipseuml_2008/revers/revers/revers_engineering_example.html
লাইভ ফ্ল্যাশ ডেমো: http://www.ejb3.org/revers.swf
EclipseUML Omondo জাভা জন্য বিশ্বের সেরা হাতিয়ার। কেবলমাত্র EUML এই লাইভ জাভা সিঙ্ক্রোনাইজেশন বাজারে এটির সাথে প্রতিদ্বন্দ্বিতা করে বলে মনে হচ্ছে, তবে EUML কোডটিতে মডেল ট্যাগগুলি যুক্ত করেছে যা সত্যই খুব খারাপ এবং আমার পক্ষে চূড়ান্ত কোনও সিদ্ধান্ত নেই।
আমি এখন পর্যন্ত রিভার্স ইঞ্জিনিয়ারিংয়ের জন্য সবচেয়ে ভাল সরঞ্জামটি ব্যবহার করেছি, এবং রাউন্ড ট্রিপিং জাভা -> ইউএমএল হ'ল বোরল্যান্ডের একসাথে । এটি Eclipse (শুধুমাত্র একটি একক প্লাগইন নয়) এর উপর ভিত্তি করে সত্যই ভাল কাজ করে।
আমি প্ল্যান্টামএল পরামর্শ দিই। এই সরঞ্জামগুলি খুব ব্যবহারযোগ্য এবং সহজেই ব্যবহারযোগ্য। প্ল্যান্টুমে নেটবিনের জন্য একটি প্লাগইন রয়েছে যা আপনি আপনার জাভা কোড থেকে ইউএমএল ডায়াগ্রাম তৈরি করতে পারেন।
আপনি এই পদ্ধতিতে নেটবিনে প্লান্টএমএল প্লাগইন ইনস্টল করতে পারেন:
নেটবিন্স মেনু -> সরঞ্জাম -> প্লাগইন
এখন উপলভ্য প্লাগইনগুলি নির্বাচন করুন এবং তারপরে প্ল্যান্টামল খুঁজে বার করুন এবং এটি ইনস্টল করুন।
আরও তথ্যের জন্য ওয়েবসাইটে যান: www.plantuml.com
আমি লক্ষ্য করেছি যে ইন্টেলিজের জন্য সিকোয়েন্সডায়াগ্রাম প্লাগইনটিও একটি ভাল বিকল্প।
জাভা জন্য আরেকটি মডেলিং সরঞ্জাম হ'ল (আমার) ওয়েবসাইট GitUML । গিটহাব সংগ্রহস্থলে সঞ্চিত জাভা বা পাইথন কোড থেকে ইউএমএল ডায়াগ্রাম তৈরি করুন।
গিটিউএমএল-এর একটি মূল ধারণা হ'ল "ডকুমেন্টেশন" এর একটি সমস্যার সমাধান করা: যে চিত্রগুলি সর্বদা পুরানো থাকে। GitUML এর সাহায্যে, আপনি গিট ব্যবহার করে কোডটি চাপলে ডায়াগ্রামগুলি স্বয়ংক্রিয়ভাবে আপডেট হয়।
সম্প্রদায় ইউএমএল ডায়াগ্রামের মাধ্যমে ব্রাউজ করুন, সেখানে কিছু জাভা ডিজাইনের নিদর্শন রয়েছে। জনপ্রিয় গিটহাব সংগ্রহস্থলের মাধ্যমে সার্ফ করুন এবং সেগুলির মধ্যে আর্কিটেকচার এবং নিদর্শনগুলি কল্পনা করুন।
পয়েন্ট ব্যবহার করে ডায়াগ্রাম তৈরি করুন এবং ক্লিক করুন। কোনও ড্র্যাগ ড্রপ সম্পাদক নেই, কেবলমাত্র আপনি যে ভিজ্যুয়ালাইজ করতে চান সেই ভাণ্ডার গাছের ক্লাসগুলিতে ক্লিক করুন:
অন্তর্নিহিত প্রযুক্তিটি প্ল্যান্টুমল ভিত্তিক, যার অর্থ আপনি অতিরিক্ত প্ল্যান্টুমল মার্কআপের সাহায্যে আপনার চিত্রগুলি পরিমার্জন করতে পারেন।
বাইনারিডক নামে একটি নিখরচায় সরঞ্জাম রয়েছে যা থেকে UML Sequence Diagram
বা Control Flow Graph
( CFG
)) উত্পন্ন করতে পারেbytecode
জাভা পদ্ধতির (উত্স কোডের পরিবর্তে ।
এখানে একটি নমুনা ডায়াগ্রাম হয় binarydoc জাভা পদ্ধতির জন্য উত্পন্ন java.net.AbstractPlainSocketImpl.getInputStream :
java.net.AbstractPlainSocketImpl.getInputStream
:java.net.AbstractPlainSocketImpl.getInputStream
: