الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هل هناك طريقة أتبعها لكي أنشئ مخططات UML من خلال كود Java

رائج
بدأه BlackBeard في 1 أغسطس 2010 · 56 رد · 5,345 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله تعالى و بركاته

أنا في الحقيقة أريد أن أنشيئ مخططات UML لبعض البرامج المكتوبة بلغة الجافا و هذا لتسهيل عملية شرحها و توزيعها

أنا أستعمل محرر Eclipse لقد قمت بتجربة بعض الحلول الأوتوماتيكية مثل plugin لكن مافي أحسن من إنشائها يدويا

أي بستعمال الخبرة الطويلة في مجال إنشاء مخططات UML

أرجوا أني قد أوظحت مشكلتي

لكم مني جزيل الشكر

تم تعديل هذه المشاركة بواسطة BlackBeard في 2 أغسطس 2010 في 13:16

showimagephp.jpg

#2

هناك برنامج StarUML

ان شاء الله يفيدك فى الموضوع هذا

هو مصدر مفتوح

للتحميل من على صفحه البرنامج على الـ Source forge

http://staruml.sourceforge.net/en/index.php

اتمنى ان يفيدك

سلام عليكم

Software Developer
Mahmoudkelany.com


 

#3
Mahmoud Kelany كتب:

هناك برنامج StarUML

ان شاء الله يفيدك فى الموضوع هذا

هو مصدر مفتوح

للتحميل من على صفحه البرنامج على الـ Source forge

http://staruml.sourceforge.net/en/index.php

اتمنى ان يفيدك

سلام عليكم

مشكور أخي الكريم على إقتراحك

أنا أريد أن أتمكن من إنشاء المخططات يدويا

مثال عن ذلك

كيف أعرف أن بين نوعين من الكائنات Two class

هناك علاقة aggregation و ليس composition

هذا مثال عن مشكلتي

تم تعديل هذه المشاركة بواسطة BlackBeard في 2 أغسطس 2010 في 13:09

showimagephp.jpg

#4

هذه الأمور غير متوفرة على مستوى أدوات UML

هذه أمور تحتاج عقل يفكر ويعمل

ولا يهيألي أن الكمبيوتر قادر على استنتاجها ببساطة من الشيفرة

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#5
علاء الصالحي كتب:

هذه الأمور غير متوفرة على مستوى أدوات UML

هذه أمور تحتاج عقل يفكر ويعمل

ولا يهيألي أن الكمبيوتر قادر على استنتاجها ببساطة من الشيفرة

تحياتي

مشكور أخي الكريم

أنا أعلم ذلك

لذلك أردت أن أستفيد من خبرة أعضاء هذا المنتدى في مجال تحويل مخططات ال UML إلى برامج و كودات Java

فمثلا أستطيع أن أعرف بسهولة علاقة التوريث من خلال كلمة extends

شكرا على إصغائكم لمشكلتي

تم تعديل هذه المشاركة بواسطة BlackBeard في 2 أغسطس 2010 في 13:32

showimagephp.jpg

#6

دعنا ننتظر ربما هناك من يعرف أكثر

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#7
علاء الصالحي كتب:

دعنا ننتظر ربما هناك من يعرف أكثر

تحياتي

لا مشكلة لدي

سأمدد مدة الموضوع كل ماسمحت لي الفرصة مع زيادة النقاط

لكم مني جزيل الشكر

showimagephp.jpg

#8

يمكنك StarUML من إنشاء مخططات UML التي تريد مع إمكانية توليد كود جافا انطلاقاً من المخطط !

كما يدعم توليد المخططات انطلاقاً من أكواد جافا ... ويمكنك بعدها تعديلها يدوياً كما ترغب

ومن الطبيعي أنه يدعم الـ Aggregation والـ Composition ... فهي من أساسيات الـ Class Diagram في UML

انظر هنا:

http://staruml.sourceforge.net/docs/user-guide(en)/ch05_2.html

#9
Speed_Of_Light كتب:

يمكنك StarUML من إنشاء مخططات UML التي تريد مع إمكانية توليد كود جافا انطلاقاً من المخطط !

كما يدعم توليد المخططات انطلاقاً من أكواد جافا ... ويمكنك بعدها تعديلها يدوياً كما ترغب

ومن الطبيعي أنه يدعم الـ Aggregation والـ Composition ... فهي من أساسيات الـ Class Diagram في UML

انظر هنا:

http://staruml.sourceforge.net/docs/user-guide(en)/ch05_2.html

مشكور أخي الكريم

هذا الحل لا يختلف عن Plugins المظافة لمحرر Eclispe

لقد قمت بتجربته لكن لم يضع العلاقات

أريد معرفة كيف يمكن لهذا البرنامج إنشاء العلاقات بين مجموعة الكلاس _ إن كان يستطيع ذلك _

ما هي الدلالات التي يتبعها لإنشائه المخططات

تم تعديل هذه المشاركة بواسطة BlackBeard في 3 أغسطس 2010 في 13:39

showimagephp.jpg

#10

أنشئ Class Diagram وابدأ واستخدم أدوات الرسم المتاحة في صندوق الأدوات

هناك تجد علاقات الـ Aggregation والـ Composition

قم بالسحب والإفلات بين الفئتين التي تريد إنشاء العلاقة بينهما

راجع الرابط السابق لمزيد من المعلومات

هل هذا ما تبحث عنه؟

#11
Speed_Of_Light كتب:

أنشئ Class Diagram وابدأ واستخدم أدوات الرسم المتاحة في صندوق الأدوات

هناك تجد علاقات الـ Aggregation والـ Composition

قم بالسحب والإفلات بين الفئتين التي تريد إنشاء العلاقة بينهما

راجع الرابط السابق لمزيد من المعلومات

هل هذا ما تبحث عنه؟

ليس قصدي البحث عن وسيلة تمكنني من رسم المخططات

سوف أشرح لك ما أبحث عنه

تخيل أنني قمت بتحميل كود سورس Java لأحد التطبيقات ثم أردت إستخراج أو إستنتاج مخطط من مخططات UML

لنفرض أنه مخطط الكلاسات

الكلاسات يمكن إستخراجها أو معرفتها من كلمة Class

كما يمكنني معرفة إحدى العلاقات و هي التوريث و ذلك من خلال كلمة extends

مثال عن ذلك

public class HelloWorld extends JFrame {}

هنا تلاحظ أن هناك علاقة التوريث

فالكلاس HelloWorld ترث من كلاس أخرى تسمى JFrame و هي إحدى كلاسات مكتبة الجافا

لم يتبقى سوى كيفية التعرف على باقي العلاقات و استخراجها

شكرا

تم تعديل هذه المشاركة بواسطة BlackBeard في 3 أغسطس 2010 في 14:36

showimagephp.jpg

#12

علاقة التوريث تمثل في مخططات UML بعلاقات من نوع تعميم Generalization

وباقي العلاقات ليس بالضرورة وجود كلمات مفتاحية لمعرفة متى تستخدمها ! (مثلاً فئة تحوي غرضاً من فئة آخرى ... نعتبر هذا علاقة Aggregation)

لكنك تحتاج إلى مثال لتعمل مثله، أعلم ذلك :D

يمكنك أن تشاهد الأمثلة المرفقة مع البرنامج أو من قائمة tools اختر apply pattern وشاهد الأمثلة على نماذج تصميم شهيرة

#13
Speed_Of_Light كتب:

علاقة التوريث تمثل في مخططات UML بعلاقات من نوع تعميم Generalization

وباقي العلاقات ليس بالضرورة وجود كلمات مفتاحية لمعرفة متى تستخدمها ! (مثلاً فئة تحوي غرضاً من فئة آخرى ... نعتبر هذا علاقة Aggregation)

لكنك تحتاج إلى مثال لتعمل مثله، أعلم ذلك :D

يمكنك أن تشاهد الأمثلة المرفقة مع البرنامج أو من قائمة tools اختر apply pattern وشاهد الأمثلة على نماذج تصميم شهيرة

عندي ملاحظة لاحظتها قد تمكنني من استخراج علاقة Aggregation أو ال Compositon

و هي كالتالي

عندما أجد أنه يجب تقديم referance لأحد ال Objects لكي تتمكن من إنشاء Object أخر

هل أستطيع أن أستنتج من هذه العلاقة علاقة Aggregation أو ال Compositon

كما أن هناك ملاحظة أخرى

قد يكون هناك من ظمن Attributes الخاصة ب Class معينة referance لأحد ال Objects

هل يمكنني ترجمتها لعلاقة Association بين هذه Class و ال Class الخاصة بال Object

هذه بعض من ملاحظاتي أرجوا أن تقدموا لي رأيكم فيها

هل يمكنني الإعتماد عليها أم لا

تحياتي

تم تعديل هذه المشاركة بواسطة BlackBeard في 3 أغسطس 2010 في 15:59

showimagephp.jpg

#14

التفرقة ما بين composition و aggregation

ليست بالشيء البسيط

أصلاً أن تقوم بعمل composition ليس بالشيء البسيط في جافا

قمت بكتابة هذه التدوينة عن الموضوع

كيف تقوم بعمل Composition بمعناها في UML

يمكنك التفكير في الموضوع أكثر

ربما تجد شيء يساعدك

تحياتي

1
حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#15
علاء الصالحي كتب:

التفرقة ما بين composition و aggregation

ليست بالشيء البسيط

أصلاً أن تقوم بعمل composition ليس بالشيء البسيط في جافا

قمت بكتابة هذه التدوينة عن الموضوع

كيف تقوم بعمل Composition بمعناها في UML

يمكنك التفكير في الموضوع أكثر

ربما تجد شيء يساعدك

تحياتي

لقد قرأت التدوينة ووجدت أن لكي تستنتج علاقة composition من الكود المصدري هي وجود referance لأحد Objects ظمن المعطيات أو المدخلات الخاصة بال constructor

و هي نفس الملاحظة التي طرحتها في ردي الأخير

تبقى المشكلة في علاقة ال Aggregation

فهي مشابهة للؤولة إلا أنها ليست ظرورية لإنشاء كائن مع أنها من مكوناته

تحياتي أخي الكريم مع تمنياتي لمدونتك بالإستمرار

showimagephp.jpg

#16

أظن أن العكس صحيح يا أخي

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#17
علاء الصالحي كتب:

أظن أن العكس صحيح يا أخي

تحياتي

كيف يعني العكس أرجوا التوضيح أكثر

أرجوا من المتخصصين أن يفيدوني أكثر في هذا الموضوع

شكرا

تم تعديل هذه المشاركة بواسطة BlackBeard في 4 أغسطس 2010 في 14:11

showimagephp.jpg

#18

أخي راجع صفحة الويكبيديا في المراجع

وستفهم أن ما تظنه أنت composition هو في الحقيقة aggregation والعكس

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#19
علاء الصالحي كتب:

أخي راجع صفحة الويكبيديا في المراجع

وستفهم أن ما تظنه أنت composition هو في الحقيقة aggregation والعكس

تحياتي

ألف شكر و ميت شكر

لقد أعدت التدقيق في المدونة الخاصة بك و وجدت أنني قد فاتتني بعض التفاصيل المهمة للغاية

وهي أنك قد قمت بتعطيل

ال Standard Constractor الذي قد يسمح للمبرمج بإنشاء الكائن بدون إستعمال كائن أخر

كما أنك تفاديت حالة وضع المبرمج لكلمة null في مكان referance الخاصة بالكائن الواجب وضعه لإنشاء الكائن

و هذه مميزات علاقة Composition و بالتالي يمكنني الأن التعرف على هذه العلاقة من خلال الكود سورس و ذلك بالتباع هذه الخصائص

أما التي كنت تكلمت عنها أنا في ردودي الأخيرة فهي علاقة ال Aggregation

ألف شكر إليك لقد صححت عندي خطأ كبير كما أنك قد أوضحت لي ما كنت أبحث عنه

لكن مع ذلك تبقى هناك علاقات أخرى و بالتالي يبقى جواب سؤالي غير كامل

أرجوا المزيد من الإجابات أو أي شيئ يساعدني في حل مشكلتي

لكم مني جزيل الشكر

BlackBeard

showimagephp.jpg

#20

قلة من يعرفون هذه النقطة أخي

كما أني لا أعرف إن كان هذه هي طريقة الحل الوحيدة للمشكلة

أية علاقات بالضبط أخي؟

وضح أكثر أخي

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#21
علاء الصالحي كتب:
<br />قلة من يعرفون هذه النقطة أخي<br />كما أني لا أعرف إن كان هذه هي طريقة الحل الوحيدة للمشكلة<br /><br />أية علاقات بالضبط أخي؟<br />وضح أكثر أخي<br /><br />تحياتي<br />
<br /><br /><br />

ألف شكر أخي

هناك العلاقات التالية

Association

DirectedAssociation

Dependency

Realisation

AssociationClass

كما أنني لم أتطرق إلى باقي المخططات

تحملوني قليلا

شكرا

تم تعديل هذه المشاركة بواسطة BlackBeard في 5 أغسطس 2010 في 13:22

showimagephp.jpg

#22

ما رأيك لو تكلمنا عن كل واحد من هذه العلاقات بطريقة مختصرة!؟

بالنسبة لي لم أعد أذكر الكثير عن UML

لأني على الأغلب أعتمد على النموذج السريع agile في عملية البرمجة

على كل وسنرى ما يمكننا عمله

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#23

بسم الله

لنبدأ بعلاقة ال Association

لهذه العلاقة خصائص تتميز بها و هي قد تكون بين صنفان مختلفان كما أنها قد تكون بين الصنف نفسه

كما أن لها بما يسمى بال Multiplicity أي عدد الذي يشارك به كل صنف من بين الصنفين

كما أنها تمثل علاقة الترابط بين الصنفان فكل منهما يستطيع التغير في حالة كائنات الصنف الأخر

هذا ما أعرفه عن هذه العلاقة

كيف يمكنني إستخراجها من الكود المصدري ؟

showimagephp.jpg

#24

وجود refrence من فئة في فئة أخرى تعني أن هناك علاقة assossition

ما بين الفئتين بما يعرف بعلاقة 1 إلى 1

في حال وجود List من فئة في فئة أخرى فهذا ما يعرف بعلاقة م إلى 1

في حال وجود List في كلتا الفئتين من الأخرى فهذا ما يعرف بعلاقة م إلى م

(ملاحظة م يعني متعدد)

تحياتي

1
حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#25
علاء الصالحي كتب:

وجود refrence من فئة في فئة أخرى تعني أن هناك علاقة association

ما بين الفئتين بما يعرف بعلاقة 1 إلى 1

في حال وجود List من فئة في فئة أخرى فهذا ما يعرف بعلاقة م إلى 1

في حال وجود List في كلتا الفئتين من الأخرى فهذا ما يعرف بعلاقة م إلى م

(ملاحظة م يعني متعدد)

تحياتي

شكرا لك

هناك ملاحظة أظيفها لإجابتك و هي أنه يجب أن يكون ال refrence ظمن مجموعة ال Attributs الخاصة بالصنف

هل يستوجب و جود ال refrence في كلا الصنفين أم يكفي واحد ؟

أرجوا أن توظح لي أكثر

كما أن هناك حالة لم تتطرق إليها و هي عندما تكون association بين كائنين من نفس الصنف

أي طرفها الأول في نفس الصنف مع الطرف الثاني

مشكور أخي على مساعدتك لي

تم تعديل هذه المشاركة بواسطة BlackBeard في 6 أغسطس 2010 في 02:45

showimagephp.jpg

مواضيع مشابهة