JavaRush /جاوا بلاگ /Random-SD /يو ايم ايل: نظريي کان مشق تائين
Viacheslav
سطح

يو ايم ايل: نظريي کان مشق تائين

گروپ ۾ شايع ٿيل

تعارف

منهنجو خيال آهي ته هر ڪنهن کي ننڍپڻ ۾ اهڙي چوڻي ٻڌو آهي ته " ٻه ڀيرا ماپ ڪريو، هڪ ڀيرو ڪٽي ." اهو ساڳيو پروگرامنگ ۾ آهي. اهو هميشه بهتر آهي ته توهان ان تي عمل ڪرڻ کان پهريان ان تي عمل ڪرڻ بابت سوچيو. اڪثر عمل جي دوران توهان کي ڪلاس ٺاهڻ ۽ انهن جي رابطي کي ايجاد ڪرڻو پوندو. ۽ اڪثر هن جي هڪ بصري نمائندگي سڀ کان وڌيڪ صحيح انداز ۾ مسئلو حل ڪرڻ ۾ مدد ڪري سگهي ٿو. هي آهي جتي UML اسان جي مدد ڪري ٿي .

UML ڇا آهي؟

جيڪڏهن توهان سرچ انجڻ ۾ تصويرن کي ڏسو، اهو واضح ٿي ويندو ته يو ايم ايل ڊراگرام، تير ۽ چوڪن بابت ڪجهه آهي. ڇا ضروري آهي ته UML ترجمو ڪري ٿو متحد ماڊلنگ ٻولي . گڏيل لفظ هتي اهم آهي. يعني اسان جون تصويرون نه رڳو اسان کي پر ٻين کي به سمجھندا جيڪي UML کي ڄاڻن ٿا. اهو ظاهر ٿئي ٿو ته هي ڊرائنگ ڊرائنگ لاء هڪ بين الاقوامي ٻولي آهي.

يو ايم ايل: نظريي کان مشق تائين - 1

جيئن وڪيپيڊيا چوي ٿو

UML سافٽ ويئر ڊولپمينٽ، ڪاروباري پروسيس ماڊلنگ، سسٽم ڊيزائن، ۽ تنظيمي ڍانچي کي ڊسپلي ڪرڻ ۾ اعتراض ماڊلنگ لاء هڪ گرافاتي وضاحت جي ٻولي آهي.
سڀ کان وڌيڪ دلچسپ شيء جيڪا هر ڪنهن جي باري ۾ نه سوچيندو آهي يا اهو محسوس ڪري ٿو ته يو ايم ايل جون خاصيتون آهن. ان کان علاوه، اتي به ھڪڙو UML2 وضاحت آھي. تفصيل جي باري ۾ وڌيڪ تفصيل ڳولهي سگهجن ٿا Object Management Group ويب سائيٽ . دراصل، هي گروپ ترقي ڪري رهيو آهي UML وضاحتون. اهو پڻ دلچسپ آهي ته UML صرف طبقن جي جوڙجڪ کي بيان ڪرڻ تائين محدود ناهي. UML ڊراگرام جا ڪيترائي قسم آھن. UML ڊرائگرامن جي قسمن جو مختصر بيان ساڳئي وڪيپيڊيا: يو ايم ايل ڊاگرامس ۾ يا وڊيو ۾ تيمور باتيرشينوف جي يو ايم ايل ڊاگرامس جو جائزو ڏسي سگھجي ٿو . UML پڻ وڏي پيماني تي استعمال ڪيو ويندو آهي مختلف عملن کي بيان ڪرڻ لاءِ، مثال طور هتي: سنگل سائن آن استعمال ڪندي JWT . يو ايم ايل ڪلاس ڊاگرامس جي استعمال ڏانھن واپسي، اھو نوٽ ڪرڻ جي لائق آھي ڪتاب Head First: Design Patterns ، جنھن ۾ نمونن کي انھن ساڳين يو ايم ايل ڊاگرامن ذريعي بيان ڪيو ويو آھي. اهو ظاهر ٿئي ٿو ته يو ايم ايل واقعي استعمال ٿي رهيو آهي. ۽ اهو ظاهر ٿئي ٿو ته علم ۽ ان جي ايپليڪيشن کي سمجهڻ ڪافي مفيد مهارت آهي.

درخواست

اچو ته ڏسو ته توهان ڪيئن ڪم ڪري سگهو ٿا انهي ساڳئي UML سان IDE مان. اچو ته IntelliJ Idea کي IDE طور وٺون . جيڪڏهن اسان استعمال ڪريون ٿا IntelliJ Idea Ultimate ، ته پوءِ اسان وٽ هوندو ” UML Support “ پلگ ان دٻي مان انسٽال ٿيل. اهو توهان کي خودڪار طريقي سان خوبصورت ڪلاس ڊراگرام ٺاهڻ جي اجازت ڏئي ٿو. مثال طور، Ctrl+N استعمال ڪندي يا مينيو آئٽم "Navigate" -> "Class" اسان وڃون ٿا ArrayList class . ھاڻي، ڪلاس جي نالي جي حوالي سان مينيو مان، چونڊيو "ڊاگرام" -> "ڊاگرام پاپ اپ ڏيکاريو". نتيجي طور، اسان هڪ خوبصورت خاڪو حاصل ڪريون ٿا:
يو ايم ايل: نظريي کان مشق تائين - 2
پر ڇا جيڪڏهن توهان ان کي پنهنجو پاڻ ڪڍڻ چاهيو ٿا، ۽ توهان وٽ آئيڊيا جو الٽيميٽ ورزن به ناهي؟ جيڪڏهن اسان استعمال ڪريون ٿا IntelliJ Idea Community Edition، ته پوءِ اسان وٽ ٻيو ڪو به رستو ناهي. هن کي ڪرڻ لاء، توهان کي سمجهڻ جي ضرورت آهي ته اهڙي يو ايم ايل آريگرام ڪيئن ٺهيل آهي. پهريون، اسان کي انسٽال ڪرڻو پوندو Graphviz . هي گرافس کي ڏسڻ لاءِ افاديت جو هڪ سيٽ آهي. اهو پلگ ان طرفان استعمال ڪيو ويو آهي جيڪو اسان استعمال ڪنداسين. انسٽاليشن کان پوء، توهان کي شامل ڪرڻ جي ضرورت آهي بن ڊاريڪٽري مان Graphviz تنصيب ڊاريڪٽري مان توهان جي PATH ماحول جي متغير ۾ . ان کان پوء، IntelliJ Idea ۾، چونڊيو فائل -> سيٽنگون مينيو مان. "سيٽنگون" ونڊو ۾، "پلگ ان" جي درجي کي چونڊيو، "براؤز ريپوزٽريز" بٽڻ تي ڪلڪ ڪريو ۽ PlantUML انٽيگريشن پلگ ان انسٽال ڪريو . PlantUML ايترو سٺو ڇو آهي ؟ اهو UML کي بيان ڪرڻ لاءِ ” ڊٽ “ نالي هڪ گراف جي وضاحت واري ٻولي استعمال ڪري ٿو ۽ اهو ان کي وڌيڪ آفاقي ٿيڻ جي اجازت ڏئي ٿو، ڇاڪاڻ ته... هي ٻولي نه رڳو PlantUML استعمال ڪري ٿي. ان کان علاوه، سڀ ڪجھ اسان هيٺ ڪري سگھون ٿا نه رڳو IDE ۾، پر پڻ آن لائن سروس planttext.com ۾ . PlantUML پلگ ان کي انسٽال ڪرڻ کان پوء، اسان "فائل" -> "نئون" ذريعي UML ڊراگرام ٺاهي سگهنداسين. اچو ته "UML ڪلاس" قسم جو هڪ خاڪو ٺاهيو. ھن عمل جي دوران، ھڪڙي نموني سان ھڪڙي نموني پاڻمرادو ٺاھي ويندي آھي. اچو ته ان جي مواد کي حذف ڪريون ۽ پنهنجو پاڻ ٺاهيو، هڪ آرٽيڪل سان هٿياربند Habr: Class Relations - UML کان ڪوڊ تائين . ۽ سمجھڻ لاءِ ته ھن کي متن ۾ ڪيئن بيان ڪجي، اچو ته وٺو PlantUML Manual: plantuml class-diagram . بلڪل شروعات ۾ هڪ ٽيبل آهي ڏيکاريو ته ڪئين ڪنيڪشن بيان ڪيا وڃن:
يو ايم ايل: نظريي کان مشق تائين - 3
اسان پاڻ به هتي ڪنيڪشن کي ڏسي سگهون ٿا: " UML ۾ طبقن جي وچ ۾ لاڳاپا. مثال ." انهن مواد جي بنياد تي، اچو ته اسان جي يو ايم ايل ڊراگرام ٺاهڻ شروع ڪريون. اچو ته ھيٺ ڏنل مواد شامل ڪريون جيڪي ٻن طبقن کي بيان ڪن ٿا:

@startuml
class ArrayList {
}
class LinkedList {
}
@enduml
Idea ۾ نتيجو ڏسڻ لاءِ، "ڏسو" -> "ٽول ونڊوز" -> "PlantUML" چونڊيو. اسان صرف ٻه اسڪوائر حاصل ڪنداسين جيڪي طبقن جي نمائندگي ڪن ٿا. جيئن اسان ڄاڻون ٿا، انهن ٻنهي طبقن کي لاڳو ڪن ٿا لسٽ انٽرفيس. اهو طبقاتي تعلق عمل کي سڏيو ويندو آهي. اهڙي ڪنيڪشن کي ظاهر ڪرڻ لاء، هڪ تير استعمال ڪريو ڊاٽ ٿيل لڪير سان. اچو ته ان کي بيان ڪريون:
interface List
List <|.. ArrayList
List <|.. LinkedList
List- ٻارن جي طبقن مان هڪ Collection. اھو آھي، اھو ڪليڪشن مان ورثي ۾ ملي ٿو. هن رابطي کي عام سڏيو ويندو آهي. اهو هڪ تير وانگر ڏسڻ ۾ اچي ٿو جيڪو باقاعده مسلسل لائين سان. اچو ته ان کي بيان ڪريون:
interface Collection
Collection <|-- List
هيٺين قسم جي ڪنيڪشن لاءِ، ڪلاس جي تفصيل ۾ شامل ڪريو پيڪيج جي پرائيويٽ صفن جي عناصر ArrayListجي باري ۾ داخلا :
~Object[] elementData
ھاڻي اسان ڏيکارڻ چاھيون ٿا ته ArrayListڪھڙي شيءِ تي مشتمل آھي. انهي صورت ۾، ڪنيڪشن جو قسم مجموعي هوندو . هن معاملي ۾ يونٽ آهي ArrayList، ڇاڪاڻ ته اهو ٻين شين تي مشتمل آهي. اسان مجموعي کي چونڊيندا آهيون ڇاڪاڻ ته فهرست ۾ شيون فهرست کان سواء رهي سگهن ٿيون: اهي ان جا لازمي حصا نه آهن. انهن جي زندگي جي فهرست جي زندگيء سان ڳنڍيل نه آهي. Aggregate لاطيني مان ترجمو ڪيو ويو آهي "جمع ٿيل"، يعني ڪا شيءِ جو ٺهيل آهي. مثال طور، زندگي ۾، اتي هڪ پمپنگ يونٽ آهي، جنهن ۾ هڪ پمپ ۽ هڪ موٽر تي مشتمل آهي. يونٽ پاڻ کي جدا ڪري سگهجي ٿو، ان جي ڪجهه حصن کي ڇڏي. مثال طور، وڪڻڻ يا ٻي يونٽ ۾ رکڻ. ائين ئي فهرست آهي. ۽ اهو بيان ڪيو ويو آهي هڪ خالي هيرن جي صورت ۾ يونٽ جي ويجهو ۽ هڪ مسلسل لڪير. اچو ته ان کي هن طرح بيان ڪريون:
class Object{
}
ArrayList o- Object
هاڻي اسان اهو ڏيکارڻ چاهيون ٿا ته، ان جي ابتڙ ArrayList، ڪلاس ۾ ڪنٽينرز LinkedListشامل آهن جيڪي ذخيرو ٿيل ڊيٽا ڏانهن اشارو ڪن ٿا. Nodeهن معاملي ۾، Nodeاهي پاڻ جو حصو آهن LinkedList۽ الڳ الڳ رهي نه ٿا ڪري سگهو. Nodeسڌو سنئون ذخيرو ٿيل مواد نه آهي، پر صرف ان جي لنڪ تي مشتمل آهي. مثال طور، جڏهن اسان LinkedListهڪ قطار ۾ شامل ڪندا آهيون، اسان هڪ نئون شامل ڪندا آهيون Node، جنهن ۾ انهي قطار جي هڪ لنڪ شامل آهي، انهي سان گڏ پوئين ۽ ايندڙ جي لنڪ Node. هن قسم جي رابطي کي ڪمپوزيشن سڏيو ويندو آهي . هڪ جامع (جنهن ۾ حصن تي مشتمل آهي) کي ظاهر ڪرڻ لاءِ، هڪ رنگين هيرو ٺهيل آهي، جنهن ۾ هڪ لڳاتار لڪير آهي، جيڪا ان ڏانهن وڃي ٿي. اچو ته ھاڻي ھن کي لکون ڪنيڪشن جي ٽيڪسٽ ڊسپلي جي طور تي:
class Node{
}
LinkedList *-- Node
۽ هاڻي اسان کي سکڻ جي ضرورت آهي ته هڪ ٻيو اهم قسم جو تعلق ڪيئن ڏيکاريو - انحصار تعلق. اهو استعمال ٿيندو آهي جڏهن هڪ طبقو ٻيو استعمال ڪندو آهي، پر ڪلاس ۾ اهو طبقو نه هوندو آهي جيڪو استعمال ڪيو ويندو آهي ۽ نه ئي ان جو اولاد آهي. مثال طور، LinkedListاهي ArrayListڄاڻن ٿا ته ڪيئن ٺاهيو ListIterator. اچو ته هن کي ڊاٽ ٿيل لڪير سان تير وانگر ڏيکاريون:
class ListIterator
ListIterator <... ArrayList : create
ListIterator <... LinkedList : create
سڀ کان پوء، اهو هن طرح نظر ايندو:
يو ايم ايل: نظريي کان مشق تائين - 4
توھان وڌيڪ تفصيل ۾ وڃو جيئن ضروري آھي. سڀئي نامزدگيون هتي ظاهر ڪيون ويون آهن: " PlantUML - ڪلاس ڊاگرام ". ان کان سواء، اهڙي آريگرام کي ڊرائنگ ڪرڻ ۾ ڪا به مافوق الفطرت ناهي، ۽ جڏهن توهان جي ڪم تي ڪم ڪري، توهان جلدي هٿ سان ان کي ٺاهي سگهو ٿا. اهو توهان جي صلاحيتن کي ايپليڪيشن آرڪيٽيڪچر ذريعي سوچڻ ۾ ترقي ڪندو ۽ توهان کي طبقاتي ڍانچي جي خامين کي جلد سڃاڻڻ ۾ مدد ڏيندو، بجاءِ ته توهان غلط ماڊل کي لاڳو ڪرڻ ۾ ڏينهن گذاريو. مان سمجهان ٿو ته اها ڪوشش ڪرڻ جو سٺو سبب آهي؟ )
يو ايم ايل: نظريي کان مشق تائين - 5

آٽوميشن

پلانٽ يو ايم ايل ڊاگرامس پاڻمرادو پيدا ڪرڻ جا مختلف طريقا آھن. مثال طور، Idea وٽ SketchIT پلگ ان آھي ، پر اھو انھن کي بلڪل صحيح طرح نٿو ٺاھيو. مثال طور، انٽرفيس تي عمل درآمد غلط طور تي ٺهيل آهي (وراثت جي طور تي ڏيکاريل). انٽرنيٽ تي پڻ مثال موجود آهن ته ڪيئن ٺاهيو اهو توهان جي منصوبي جي زندگي جي چڪر ۾ ٺاهيو. اچو ته چوندا آهن ته Maven لاءِ هڪ مثال آهي uml-java-docklet استعمال ڪندي . اهو ڏيکارڻ لاءِ ته اهو ڪيئن ڪيو ويو آهي، اسان استعمال ڪنداسين Maven Archetype جلدي هڪ Maven پروجيڪٽ ٺاهڻ لاءِ. اچو ته ڪمانڊ تي عمل ڪريون: mvn archetype:generate جڏهن فلٽر چونڊڻ لاءِ چيو وڃي ( ڪو نمبر چونڊيو يا فلٽر لاڳو ڪريو )، صرف Enter کي دٻائڻ سان ڊفالٽ ڇڏي ڏيو. اهو هميشه ٿيندو " maven-archetype-quickstart ". جديد نسخو چونڊيو. اڳيون، اسان سوالن جا جواب ڏيون ٿا ۽ منصوبي جي پيدائش کي مڪمل ڪريو:
يو ايم ايل: نظريي کان مشق تائين - 6
جيئن ته Maven هن مضمون جو ڌيان نه آهي، توهان جي Maven سوالن جا جواب ڳولي سگهجن ٿا Maven Users Center . ٺاهيل پروجيڪٽ ۾، پروجيڪٽ جي تفصيل واري فائل کي کوليو، pom.xml، ايڊيٽنگ لاءِ . اچو ته ان ۾ uml-java-docklet انسٽال ڪرڻ جي وضاحت مان مواد نقل ڪريون . وضاحت ۾ استعمال ٿيل نمونو Maven مرڪزي مخزن ۾ نه ملي سگهيو. پر اهو مون لاء هن سان ڪم ڪيو: https://mvnrepository.com/artifact/com.chfourie/uml-java-doclet/1.0.0 . اهو آهي، انهي وضاحت ۾ توهان کي صرف " info.leadinglight " مان " com.chfourie " سان گروپ آئي ڊي کي تبديل ڪرڻ جي ضرورت آهي ۽ ورزن کي " 1.0.0 " تي سيٽ ڪرڻ جي ضرورت آهي. ان کان پوء، اسان انهن حڪمن کي ڊاريڪٽري ۾ عمل ڪري سگهون ٿا جتي pom.xml فائل واقع آهي: ۽ . ھاڻي، جيڪڏھن اسان ٺاھيل دستاويز کوليون ٿا (explorer target\site\apidocs\index.html)، اسان ڏسنداسين يو ايم ايل ڊاگرامس. رستي ۾، عمل درآمد اڳ ۾ ئي صحيح طور تي هتي ڏيکاريل آهي) mvn clean installmvn javadoc:javadoc

نتيجو

جئين توهان ڏسي سگهو ٿا، يو ايم ايل توهان کي توهان جي ايپليڪيشن جي جوڙجڪ کي ڏسڻ جي اجازت ڏئي ٿي. ان کان علاوه، يو ايم ايل صرف هن تائين محدود ناهي. UML استعمال ڪندي، توهان پنهنجي ڪمپني جي اندر مختلف عملن کي بيان ڪري سگهو ٿا يا ڪاروباري عمل کي بيان ڪري سگهو ٿا جنهن جي اندر توهان ڪم ڪري رهيا آهيو. UML ذاتي طور تي توهان لاءِ ڪيترو ڪارائتو آهي اهو توهان تي منحصر آهي، پر ان کي وڌيڪ تفصيل سان پڙهڻ لاءِ وقت ڪڍڻ ڪنهن به صورت ۾ ڪارآمد ثابت ٿيندو. #وياچسلاو
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION