CodeGym /جاوا بلاگ /Random-SD /يو ايم ايل ڪلاس ڊراگرام
John Squirrels
سطح
San Francisco

يو ايم ايل ڪلاس ڊراگرام

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

تعارف

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

UML ڇا آهي؟

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

وڪيپيڊيا جي مطابق،

"يو ايم ايل سافٽ ويئر انجنيئرنگ جي شعبي ۾ هڪ عام مقصد، ترقياتي، ماڊلنگ ٻولي آهي جيڪا هڪ سسٽم جي ڊيزائن کي ڏسڻ لاء هڪ معياري طريقو مهيا ڪرڻ آهي."
سڀ کان وڌيڪ دلچسپ شيء، جيڪو هرڪو اندازو نه ڪندو، اهو آهي ته يو ايم ايل جون خاصيتون آهن. ۽ هتي به هڪ UML 2 وضاحت آهي. تفصيل تي وڌيڪ معلومات موجود آهي آبجیکٹ مينيجمينٽ گروپ ويب سائيٽ. حقيقت ۾، هي گروپ يو ايم ايل جي وضاحتن کي ترقي ڪري ٿو. اهو پڻ دلچسپ آهي ته UML صرف طبقن جي جوڙجڪ کي بيان ڪرڻ تائين محدود ناهي. UML ڊراگرام جا ڪيترائي قسم آھن. وڪيپيڊيا ۾ يو ايم ايل ڊاگرامس جي مختلف قسمن جي مختصر وضاحت آهي: يو ايم ايل ڊاگرامس . يو ايم ايل ڪلاس ڊاگرامس ڏانھن واپسي، اھو ڪتاب ”ھيڊ فرسٽ ڊيزائن پيٽرن“ جو ذڪر ڪرڻ لائق آھي ، ڊيزائن جي نمونن کي بيان ڪرڻ لاءِ يو ايم ايل ڊاگرام استعمال ڪري ٿو. هيٺئين لائن اها آهي ته UML واقعي استعمال ڪيو ويندو آهي. ۽ اهو ظاهر ٿئي ٿو ته ان کي ڄاڻڻ ۽ سمجھڻ ته ڪيئن استعمال ڪجي ڪافي مفيد آهي.

درخواست

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

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

آٽوميشن

پلانٽ يو ايم ايل ڊاگرامس پاڻمرادو پيدا ڪرڻ جا مختلف طريقا آھن. مثال طور، IDEA وٽ SketchIT پلگ ان آهي، پر اهو ڊراگرام مڪمل طور تي درست نه ٿو ٺاهي. اچو ته چئو ته انٽرفيس جي عمل کي غلط طور تي ٺهيل آهي (اهو وراثت طور ڏيکاريل آهي). انٽرنيٽ جا مثال آهن انهي کي ڪيئن ضم ڪرڻ توهان جي پروجيڪٽ جي تعمير جي عمل ۾. مثال طور، توهان ڳولي سگهو ٿا ته ڪيئن استعمال ڪجي uml-java-docklet Maven سان. ظاهر ڪرڻ لاءِ، اسان استعمال ڪنداسين Maven Archetype جلدي هڪ Maven پروجيڪٽ ٺاهڻ لاءِ. ڊوڙ

mvn archetype:generate
جي جواب ۾ هڪ نمبر چونڊيو يا فلٽر لاڳو ڪريو، ڊفالٽ کي ڇڏي ڏيو - بس داخل ڪريو کي دٻايو. اهو هميشه ٿيندو "maven-archetype-quickstart". جديد نسخو چونڊيو. اڳيون، اسان ڪجهه سوالن جا جواب ڏينداسين ۽ پروجيڪٽ ٺاهڻ کي ختم ڪنداسين: يو ايم ايل: نظريي کان مشق تائين - 5Maven هن مضمون جو موضوع نه آهي، تنهنڪري توهان 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 فائل سان عمل ڪري سگھون ٿا.

mvn clean install
۽

mvn javadoc: javadoc
جيڪڏھن اسان ھاڻي ٺاھيل دستاويز (explorer target\site\apidocs\index.html) کوليون ٿا، اسان يو ايم ايل ڊاگرامس ڏسنداسون. رستي جي ذريعي، عملدرآمد جو تعلق هاڻي صحيح طور تي ڏيکاريل آهي :)

نتيجو

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