يبدو انى وصلت متأخر، هذا هو اقتراحي:
1- المشكلة
وجود مجموعة من المواضيع بتفاصيل محدده و التى لابد من ادخالها بأى ترتيب و بعدها امكانية عرضها بترتيب معين و فى مدى محدد.
*------------------------------------------*
1.1- المتطلبات:
عناصر الموضوع:
A- عنوان الموضوع.
B- اسم الكاتب.
C- تاريخ الكتابة بالشكل day/month/year.
D- عدد مرات المشاهدة.
E- عدد الردود.
F- رابط الموضوع.
خصائص الترتيب:
A- الترتيب قد يكون تصاعدى أو تنازلي.
B- الترتيب عن طريق اى بيان مدخل.
C- الترتيب قد يتم تجاهله و يتم إستخدام الترتيب الذى تم الإدخال به.
خصائص العرض:
A- يتم تحديد رقم الموضوع بإستخدام خصائص الترتيب المحدده.
B- يتم تحديد عدد معين من المواضيع بإستخدام خصائص الترتيب المحدده.
*------------------------------------------*
2- التحليل
* حيث أن كل عناصر الموضوع يمكن الترتيب بها حينها لابد من إيجاد قيمة رقمية تمثل كل منهم لتسهيل البحث و الترتيب:
A- عنوان الموضوع: سيتم إستخدام عدد الحروف به بالإضافة لـ hash يمثل محتوى النص و عند الترتيب سيتم إستخدام عدد الحروف يليها الـ hash.
B- اسم الكاتب: كما فى عنوان الموضوع.
C- تاريخ الكتابة: سيتم إدخاله كنص و التعامل معه كـ uint حيث اليوم سيحفظ فى بايت و الشهر فى بايت و السنه فى 2 بايت و سيتم دمج القيم معا فى 4 بايت لتستخدم فى الترتيب.
D- عدد مرات المشاهدة: رقم صحيح موجب.
E- عدد الردود: كما فى عدد مرات المشاهدة.
F- رابط الموضوع: كما فى عنوان الموضوع.
* حيث ان ترتيب الإدخال الأولي مطلوب سيتم حفظ المحتويات داخل list و ستسمي data store و من خلالها نستطيع الإضافة و الحفظ و التعديل.
* للترتيب سيتم عمل 3 فئات كل منهم تمثل نوع ترتيب معين و بداخل أى منهم سيوجد list و كل عنصر فيه هو رقم الموضوع داخل data store بعد ان تقوم فئة الترتيب بتطبيق نمط عملها.
* للعرض سيوجد فئتين كل منهم سيتم إدخال لها نوع الترتيب و الإفتراضي هو ترتيب الإدخال.
*-----------------------------------------*
عموما التحليل الأولي دائما ما يحتوى على نواقص و اخطاء و هذا يظهر داخل التصميم الاولي و بعدها نعود للتحليل و نقوم بتحسينه و نعود لنطبق داخل التصميم و هكذا حتى يصبح التحليل و التصميم أفضل ما يمكن و هنا تبدأ المرحله الرابعه و هي كتابة الكود لجعل التصميم فعال.
فى حالتنا هذه سأكتفي بهذا التحليل وسأفترض ان عملية الذهاب و الإياب إلى و من التصميم قد تمت و ذلك لحفظ الوقت و ايضا للتركيز على محتوى المثال بدلا من SE.
*-----------------------------------------*
سأضيف التصميم بعد قليل.
و الله ولي التوفيق