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

تحليل لمشروع برنامج الرسم البسيط

مغلقرائج
بدأه Developer .NET في 29 يناير 2003 · 78 رد · 16,152 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#26

لك أخ اسماعيل .. لا يهم الآن Ctrl أو Shift أو ESC ...

ماهم هو الصفات Attributes والخصائص للمستطيل ...

المستطيل يحتوي على :

3 نقاط (الرابعة يتم معرفتها من البقية) ... <--- كل نقطة عبارة عن كائن ..

خاصية دوران الحواف

نوع الحواف (خط غامق أم منقط ونوعية التنقيط)

لون الحواف

ثماكة خط الحواف

نوعة التعبئة (لون أم صورة أم نقشة) <--- وهذا كائن منفصل ..

المستقيم : عبارة عن نقطتني وله عدة خواص .. ويمكن ذكرها على ضوء السابق ..

النقطة : عبارة عن قيمتين x,y ..

جميع عناصر الرسم مورثين من كائن الرسم الذي يحتوي على الصفات العامة لجميع كائمات الرسم وهو PureVirtual class .. بعض الصفات هي :

- اسم الطبقة التي يحتوي عليها العنصر

- نوع العنصر (نقطة، خط ، مستقيم ، وهكذا ...)

:rolleyes: يجب وصف جميع كائنات البرنامج أولا ... من غير الدخول على طريقة كتابة الكود والخوارزميات

===================

أخ اسماعيل كلامك عن كيفية رسم المستقيم بالفأرة لا يتم بهذه الصورة .. ويفضل رسم خوارزمية للموضوع لاحقا .. وأيضا توجد نقطة سوف أذكرها الآن فقط للتنويه وهي : لو وضعت كل هذا الكود بالحدث مباشرة تبع نافذة الرسم .. لحصلت على حدث OnMouseDown/Move/Up كل واحد بطول شي 1000 سطر :D وذلك لتعدد الكائنات الموجودة واختلاف طريقة رسم كل واحدة .. لذلك سوف يكون في كل كائن كود خاص عن كيفية معالجة الأحداث وكيفية الرسم :) وهذا مايسهل جدا بالأمر ..

Coding on the Cloud and for the Cloud!

My Blog

#27

أخ هاني... أعذرني. فأنا لا أفهم في التحليل, ولا استطيع ان أضع حدود بين مراحل العمل... لهذا تجدني أبدأ بتحليل, وأنتهي بكود وأعود لخوارزميّة...

لهذا فأنا حاليّا سأكتفي بمتابعة الموضوع, والتعلّم ...

------------------------

#28

بسم الله الرحمن الرحيم

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

استاذي اسماعيل ابراهيم أنا كنت مثلك مشتت بالنسبة للتحليل والتصميم

مع أني قرأت عنها ودرستها ومع ذلك كان يوجد لدي لبس بينها إلى أن جاء احد اصدقائي المبرمجين والذي ابعد عني اللبس فيما بينها بكلمة واحدة وهي :

التحليل هو نظرة المستخدم للبرنامج بينما التصميم نظرة المبرمج للبرنامج

وأرجوا أن تحل لك اللبس الحاصل وهذا مالدي

أخوك عبدالله عيد المحمادي

#29

أشكرك أخي عبد الله على هذا التوضيح...

(f)(f)

#30

بسم الله الرحمن الرحيم

لا شكر على واجب استاذي اسماعيل

اخوك عبدالله المحمادي

#31

في العادة المشريع الكبيرة تقسم إلى مجموعة من الفترات التي تسمى ب Iteration .. كل فترة يعطى لها وقت معين للانجاز .. وكل وحدة قد تسمى Phase 1 ومن ثم Phase 2 وهكذا ...

كل Phase يجب أن يحتوي على تحليل وتصميم و برمجة واصدار.. التحليل يسمى بSystem Requierments و التصميم هو ال Design والبرمجة هي Implimentation و الاصدار يتخلل التجريب وانتاج ال Release ..

وكما ذكر الأخ عيد :) التحليل هو فقط أن تضع ال Requirements .. وهي جدا سهلة .. أي ماذا يريد منك المستخدم .. وأعتقد بنسبة لمشروعنا قد تم ذكرها وكفاية .. لكن الأخ عيد استطرد وذكر ال Requirements لل Phase 10 .. ;)

التصميم يتخلله عدة أمور أولها يبدأ بتحديد ال Domain Model وهي الكائنات العامة التي نحتاجها بالبرنامج .. ولا نخلط بينها وبين الClasses .. ال Domain Model يصف الكائنات العامة جدا .. كاسم البرنامج ككائن أب ويتفرع منه مثلا كائن الرسم وكائن الأدوات وهكذا ..

بعد عملية تعريف ال DomainModel نأتي لعملية كتابة قصص حول البرنامج :D .. وهذا مايسمى ب Use Cases .. يوجد أشكال عديدة من أجل كتابة الUse Cases .. وهي تعتبر كققالب يتم تعبئته .. لا أدري كيف أترجمها .. لكني سوف أقول أنها (حالة العمل) ..

مثال عليها في البرنامج ..

حالة عمل : رسم الدائرة

الممثل : هو المستخدم

المستفيد : هو أيضا المستخدم

المتطلبات : أن يكون البرنامج يعمل ويوجد لوحة رسم متاحة

النتيجة : الدائرة مضافة إلى لوحة الرسم

القصة السعيدة :

1- يقوم المستخدم باختيار أنه يريد رسم دائرة

2- يقوم المستخدم بتحديد مركز الدائرة

3- يقوم المستخدم بتحديد نصف القطر

اضافات :

<< هنا يذكر جميع الحالات التي تنتج عن خطأ وكيف نظهرها للمستخدم >>

أعتقد أني لم أنج بالترجمة لكن الفكرة واضحة .. لاحظ أني لم أقول أن تحديد مركز الدائرة يتم عن طريق الضغط بالفأرة ومن ثم تحريكها من أجل تحديد نصف القطر .. لأنه لا يهم الآن كيف هي طريقة رسم الدائرة وقد تكون بالكيبورد مثلا ..

بعد عملية كتابة جميع القصص التي تصف كل الحالات التي ممكن أن يقوم بعملها المستخدم ... (والتي قد تنتج ب 50 صفحة من أجل مشروعنا هذا) يصبح لدينا جميعا فكرة جدا كافية على ماهية الأشياء التي نريد تصميمها ..

فيتم البدأ بتعريف ال Classes المختلفة .. واعطائها Attributes و Operations ويمكن أن نورث ال classes من بعضهم وكل الأمور التي يمكن عملها في البرمجة .. ويمكن أن يتم هذا عن طريق Visio .. بعدها يقوم Visio بشكل آلي بتوليد الكود لنا ونقوم حينها بالبدأ بعملية كتابة الكود ..

هذه العملية يتم تكراراها من أجل كل Phase ..

على سبيل المثال يكون هدفنا من أجل Phase 1 هو انشاء البرنامج ليقوم بعملية رسم الأشكال وحفظها وجلبها من الملف ..

Phase 2 ... عملية تحريك الأشكال واضافة الطبقات ..

Phase 3 ... عملية اضافة الeffects كالسماكات وغيرها ..

وهكذا .. وكل Phase يتم كتابة ال Requirements و ال Design ومن ثم ال Implementation ومن ثم عمل Release التي هي ملفexe ..

إذا لم يتم عمل هذا في المشاريع الجماعية ... فسوف تجد أن الناس ماعمتفهم شي صاير ..

:cool:

Coding on the Cloud and for the Cloud!

My Blog

#32

بسم الله الرحمن الرحيم

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

أولاً استاذ هاني شكراً على هذه المعلومات المفيدة بالنسبة للمشاريع الكبيرة

وبالنسبة للإستطراد فلم أكن اعلم عن موضوع Phase أصلاً ولكن بفضل الله ثم بفضلك تعلمنا

وبذلك سيكون لدينا ترتيب في التحليل بإذن الله تعالى.

ثانياً أرجوا أن يركز الجميع على رقم 1 Phase1 وهو ماذكره الأستاذ هاني من الأعمال التي ستكون في هذا الـ Phase

ثالثاً من كلام الأستاذ هاني عن الـ Phase لاحظت أن كل Phase يكون أصعب من الثاني وهذا حسب مافهمته وعليه يجب علينا حصر المعطيات التي ستكون في Phase1 وذلك بذكرها والإتفاق عليها .

ثم نأخذ الPhase1 حسب أقسامه التي ذكرها الأستاذ هاني وهي :

1_ التحليل :فيجب علينا أن نركز في هذه المرحلة على المتطلبات لهذا الـPhase وحصرها دون النظر للـ Phase الأخرى وأرجوا من الأستاذ هاني والأستاذ Developer.Netوالأستاذ اسماعيل ابراهيم وضع جدول للـPhase وتوزيعه على المشاركين

لكي لايحدث لبس وتتداخل متطلبات كل Phase مع الأخر.

2_ التصيميم :وهذا بإذن الله تعالى سيتم بعد الإنتهاء من المرحلة الأولى وهي التحليل وذلك بالنسبة للPahse1

وأنا مقتنع بكلام الأستاذ هاني في استخدام برنامج Visio من مايكروسوفت

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

3_ البرمجة :وهذه المرحلة التي يتم فيها كتابة الكود والجميع اظنه يعرف هذه المرحلة .

4_ الإصدار :وهذه المرحلة تتضمن خروج البرنامج كـ exe كما ذكر الأستاذ هاني

وبعد أن نأخذ هذه الأقسام للـPhase1 ونتأكد منها ومن عملها بالشكل المطلوب تأتي المرحلة الثانية أو الوحدة الثانية وهي Phase2 ونعاملها ايضاً كمعاملة Phase1 وبذلك سيصبح البرنامج منطقياً أقوى وأقوى لكل Phase متقدم

وشكراً

اخوكم عبدالله المحمادي

#33

بسم الله الرحمن الرحيم

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

استاذ هاني نسيت كتابة شئ وهو مانصيب Thread من البرنامج فأنا أرى أن عمل Thread Working له

أولويات جيدة ونحن لم نتكلم عنها مطلقاً وأنا لاأقصد الكلام عنها من ناحية كتابة الكود أو ناحية التصميم ولكن أنا أتكلم عنها من ناحية التحليل فمثلاً عمل Threak Working لـ Backup وهذا مجرد مثال ونظرة تحليلية سريعة أي معنى كلامي البدء في التناقش حول ThreadWorking بشكل تحليلي مثل :

ماهي ThreakWorking المطلوبة

ماهي الأعمال التي تقوم بها ThreakWorking

ماهي الأجزاء التي توضع فيها ThreadWorking

ماهي الأعمال التي تصلح أو لاتصلح أن تكون ThredWorking

وهكذا

ولكن انا ارى أن ThreakWorking لها ايجابيات كبيرة من ناحية التسريع والعمل المتخفي الذي لايعلم عنه المستخدم

واذا كانت نظرتك ايجابية عنه فأخبرنا في أي Phase سنضعه

وإذا كانت نظرتك سلبية عنه فأخبرنا عن الأسباب

وشكراً لك استاذ هاني

اخوك عبدالله عيد المحمادي

#34

بسم الله الرحمن الرحيم

تحية طيبة وبعد

انا ابارك هذا المشروع

الذي لم اره الا اليوم بسبب انشاغلي بالامتاحانات النهائية

وان شاء الله سوف اتطلع على تفصيلا ت المشروع في الغد

واقد ماستطيع تقديمة

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

#35

بسم الله الرحمن الرحيم

تحية طيبة وبعد

انا اطلعت على التحليل وارى انه رائع

وعندي فكرة لاضافتها للبرنامج ان امكن

وهي اذا كان المستخدم يعمل على ابرنامج وكان هو ناسي ان يحفظ العمل وانقطعت الكهرباء و علق الجهاز انيقوم البرنامج بحفظها في منطقة في الذاكرة بحيث عنما يشغل البرنامج لاول مرة بعد اعادة التشغيل يتم ارسالة رسالة له تعلمة اذا كان يريد استرجاع العمل الذي كان يقوم به ام يريد فتح مشروع جديد ووفقط لمرة واحدة

كما هو في الاوفس اكس بي

مع تحياتي للجميع:)

#36

هل توقف البرنامج الى هنا ام ماذا ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

#37

المشكلة هاني مشغول جدا ..... و كنت اتمنى ان يمسك المشروع هو بنفسه ....

عموما .... المشروع هذا فعلا يجب ان ننهيه ..... و لا يهم متى ننتهي منه .... المهم ان ننتهي بنجاح ..... إن شاء الله بعد سنه حتى !!!

اتمنى الشباب الذي ما زالوا متحمسين للمشروع ان يضعوا اساميهم، لكي نغلق مرحلة التحليل و نبدأ بمرحلة التصميم ... لأنه اعتقد انها هي اللي راح تحمس الشباب .....

راح احاوول انسق كامل النقاش اللي دار بينا في تقرير لمرحلة التحليل .... لنبدأ في مسألة تصميم الخوارزميات و تراكيب البيانات ...

تحياتي ...

#38

السلام عليكم(f) (f)(f)(f)

#39

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

بصراحه ياشباب الموضوع والفكره جميله جدا جدا واتمنى من الله ان يوفقكم ويتم هذا المشروع ويتم تطويره الى الافضل والافضل

والله اني كنت اتمنى ان اشارككم ولكني بعد مبتدئ في البرمجه :confused:وليس لدي الا ان اشجعكم (((وعساكم على القوه))) وإن شاء الله راح استفيد منكم

#40

بسم الله الرحمن الرحيم

تحية طيبة وبعد

اخي العزيز لا تنسى من المشاركة

#41

بسم الله الرحمن الرحيم

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

ماشاء الله مجهود كويس اوي يا شباب

ربنا يبارك فيكم

و ليا كلمه خاصه للأخ هاني الي اتحفني بأسلوبه الرائع

انا درست ازاي اشتغل UML بس عمري مفكرت فيها بالشكل الرائع الي هو

عرض بيه الفكره مع انه بس كان بيعرض امثله من مخه مش من ورق علشان احنا نفهم

ماشاء الله يا أخ هاني انا اتمني اكون تلميذ ليك

بس للاسف انا ليا تعليقين عليكم كلكم للاسف

اولا ان مفيش اي شيء ظهر للنور مما يدل علي ان دا

شيء من صفات العرب المميزه و الي يا رب نتخلص منها بقي .

ثانيا يا شباب الفكره معموله قبل كده و موجود منها كتير علي النت بالسورس كود

بس انا معاكم ان شاء الله لو هاتبتدوا فعلا بالشغل

ليا مقترح اساسي جدا في موضوع التيم ورك دا

و هو اننا لازم نختار ليدر او قائد لفريق العمل دا علشان هو يعرض الموديولز الي عندنا

ويكلف الناس بيها و اقترح انه يأما يكون الاخ هاني و ذلك لخبرته ماشاء الله ربنا يبارك له

او ان مقترح الموضوع هو الي يقود السفينه :)

يا ريت نبتدي شغل بجد و بلاش النوم دا

و نسأل الله الهدي و التوفيق

#42

بسم الله الرحمن الرحيم

تحية طيبة وبعد

للاسف هذا المشروع طرح من فترة سابقة وقديمة

ولكن العمل توقف عند الوصول لمرحلة توزيع الادوار والبدء بالعمل

ولا اعرف لماذا

؟؟؟؟؟؟

ولكن اتمنى ان يعود ويبدا العمل بهذا المشروع....

#43

السلام عليكم

كيف الحال ياشباب

أين Eidx00 و Developer .NET

وأين اختفى كل الحماس السابق ؟؟؟؟

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

وأحد الاسباب الرأيسية لتسجيلي في هذا الموقع هو هذا المشروع الرائع والناس الرائعين في مجال البرمجة بال C ++

وشكرا

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#44

السلام عليكم:

جزاكم الله خيرا للجميع

أنا مشترك جديد وأعمل في البرمجة في سوريا بلغة الجافا و++c

و أنا مستعد لأقدم المساعدة على حسب معرفتي المتواضعة

ولكن كنتم متحمسون أكثر من ذلك فماذا حصل

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

أخوكم من الشام مهند

والسلاممممممممممممم

#45

السلام عليكم ,,

أخي memoIT1 لو لاحظت لتاريخ المشاركات ستجد أن المشروع قد توقف فعليا قبل 8 أشهر ,, لكن تم تحدثيه قبل 3 شهور ,,

تمنيت أن يوجد من يريد الاستمرار ,, واذا أردتم فعلا سنستمر فورا,,

فقط أروني رأيكم ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#46

فعلاً كلامك منطقي أخوي HGB

ارجوا من الأخوه الاستمرار

ولكن دون تشعيب المشروع

فقط لنبدأ بـمشروع صغير ثم نضيف إلي مميزات

لكن لانختلف من الاول على مميزات معقده

فقط دعونا نمشي خطوه بخطوه

سنكتب مشروع بإذن الله مميـّز ويحتوي على خصائص عديده

#47

السلام عليكم

انا قرات كل الردود التي طرحت في هده المشاركة وفعلا المشروع ممكن ان ينجح نجاح هائل خصوصا ولدينا الخبراء الكبار مثل الاخ هيثم والعبقري jaas وغيرهم الكثيرين .

ياريت لو نفتح المشروع من جديد ونبدا نشتغل عليه فورا

مع تحياتي للجميع .

#48

شو صار بالمشروع

#49

شايف ما في رد أبدا

#50

لم يتم تطبيق المشروع

هذا الموضوع مغلق.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…