Skip to main content

مرحلة تصميم البرنامج Software Design


قد يظن البعض أن ما يقصد بالتصميم هو شكل البرنامج فقط. لكن هذا جزء بسيط منه.
فماذا يقصد بتصميم البرنامج (Software Design)؟
مرحلة التصميم لبرنامج هي عملية تحليلية لمتطلبات البرنامج لاختيار و بناء هيكل البرنامج و أجزاءه و كيفية ترابطها مع بعضها البعض، ينتج عن ذلك مجموعة من الملفات و النماذج و الرسومات البيانية التي يمكن منها برمجة وكتابة شيفرة البرنامج “بالكامل”.
و تنقسم مرحلة التصميم إلى مراحل عديدة من أهمها:
1 – تصميم البنية أو الهيكل Architectural Design
2 – تصميم نماذج البرنامج باستخدام اللغة الرسومية UML – Unified Modeling Lanuage
3 – تصميم واجهة الاستخدام GUI – Graphical User Interface
وهذا شرح موجز لكل مرحلة كما يلي:

أولا : تصميم البنية أو الهيكل (Architectural Design)
كما أن بناء مبنى يتطلب أولا تحديد شكل هيكله، فكذلك بناء البرنامج. هيكيلة البرنامج هي عميلة ترتيب لأجزاء البرنامج بطريقة معينة و
مرتبة و تنظيم ترابط هذه الأجزاء مع بعضها البعض. غالبا لا تتطلب هذه مرحلة الابتكار، فهناك أنواع معروفة و محددة من الهياكل. كل ما يُستلزم في هذه المرحلة أو اختيار الهيكل المناسب للبرنامج. يعتمد اختيار الهيكل على نوع البرنامج و على دراسة جوانب آخرى مهمة كالأداء (performance) والحماية و الأمان (security and safty) و سهولة الصيانة (Maintainability).
من الهياكل المستخدمة:
أ ) هيكل الخادم-المخدوم (أو الزبون) (Client-Server Architecture)
و يستخدم في البرامج التي تعمل على أكثر من جهاز أو موزعة على شبكة. مثال: متصفح الانترنت.
ب) هيكل الطبقات (Layered Architecture)
ويستخدم في البرامج التي تنقسم إلى أجزاء واضحة (طبقات). و كل طبقة تعتمد على ما تحتها من طبقات.
مثال: برامج تحويل و إرسال البيانات عبر الشبكة. فتحويل البيانات يستلزم مراحل و كل مرحلة تعتبر طبقة.
ج) هيكل التخرين أو المخرن (Repository Architecture)
و يستخدم في البرامج التي تعتمد على قاعدة (أو قواعد) بيانات كبيرة (Database).
مثال: برنامج تنظيم مكتبة يحتوي قاعدة بيانات ضخمة تحوي جميع معلومات الكتب و معلومات الموظفين …الخ. ، و يستخدم هذه القاعدة أكثر من شخص في نفس الوقت.
ثانيا: تصميم النماذج بالـ UML:
وهي أهم المراحل، حيث أنها زبدة التصميم وفيها الجزء الأكبر من التحليل و التفكير و “الابتكار” في عملية التصميم.
لكن ما هي ال UML؟

هي لغة رسومية موحدة و متفق عليها دوليا تُستخدم لرسم نماذج “لأجزاء” البرنامج. هذه النماذج تُستخدم في برمجة البرنامج كاملا. بعبارة آخرى، لايحتاج المبرمج إلى مستندات متطلبات البرنامج “مباشرة”، بل يبرمج البرنامج من هذه الرسوم و النماذج فقط، كالمهندس المعماري الذي لا يحمل في يديه أثناء العمل إلا تخطيطات المبنى.
من أهم نماذج ال UML:
• نموذج دراسة حالة (سمة) من البرنامج (Usecase Diagram)
• نموذج ترابط الأصناف أو الأجزاء (Class Diagram)
• النماذج الديناميكية (Dynamic Diagrams) ، وتنقسم إلى:
– نموذج الفعالية بين الأجزاء (Activity Diagram)
– نموذج التعاون أو الاشتراك (بين الأصناف) (Collaboration Diagram)
– نموذج تسلسل الأحداث (Sequence Diagram)
– نموذج المراحل (Statechart)
وهذه بعض الأمثلة:

و هناك العديد من النماذج الآخرى. (سنتطرق لشرح مفصل عن ال UML في مقال لاحق).
في نهاية هذه المرحلة الطويلة و المتعبة نكون قد أنتجنا نماذج مفصلة و عديدة عن البرنامج تكون جاهزة لتقديمها للمبرمج.
ثالثا: تصميم واجهة الاستخدام (GUI Design)
واجهة الاستخدام هي واجهة البرنامج التي يتعامل معها المستخدم. وتشمل بالأساس الجزئ المرئي الذي يتكون عادة من نوافذ و أزرار و حقول كتابة و لون الخلفية و لون الخط… الخ.
يتعلق هذا القسم بالجزء الفني و جمالي من البرنامج. كم يهتم بسرعة استجابة الواجهة و إمكانيتها إعطاء معلومات واضحة و كافية للمستخدم. وهناك دراسات كثيرة في هذا المجال تشمل دراسة الجانب النفسي للإنسان و تأثره بالألوان و بطريقة ترتيب الأشياء.
على سبيل المثال، من النصائح المعروفة في هذا المجال هي: لا تستخدام جميع ألوان قوس قزح في واجهة برنامجك! :) . من المفضل استخدام لونين إلى أربع ألوان مختلفة كحد أقصى.
مثال على واجهتين مختلفيتن لبرنامج الآلة الحاسبة:

على السريع:
ما مدى تأثير كل واجهه على : سرعة الاستخدام، بساطة المظهر، نوع المستخدم؟ (مبتدئ/خبير)
هل لاحظت مدى الفرق؟ :)
هل هناك فروق في جوانب آخرى؟ ما هي؟ :)
والسلام
__________________________________________
*مصادر الصور:
صورة 1: http://pigseye.kennesaw.edu
صورة 2 و 3: www.csci.csusb.edu
صورة 4: http://trials2.pocketgear.com
صورة 5: http://homepage.mac.com/superpixel

المصدر 

Popular posts from this blog

ظروفنا ماتستحي وايامنا ماهيب ريف ,,

القصيدة لـ محمد بن الذيب ..... ويقول فيها ظروفنا ماتستحي وايامنا ماهيب ريف = والأرض من كثر القحط ماعاد شفت اعلافها وحقي على البيت القوي ماهو على البيت الضعيف = وإلى بغيت أدمدم الجمه على غرافها خليت شمس العشق مركونه على حد الرصيف = الخطه المحبوكه تحقق جميع اهدافها يا اهل الثنائيات مضمون الثنائه سخيف= أنا لحالي أحكم الدفه مع مجدافها والمعرفي (شرطي) وخاواني ورقيته (عريف) = لكن تجهله العلوم ارباعها وانصافها يبغى يسوي مع جنابي بهرجه وانا مخيف = وهو الى شاف الدروب المستحيله خافها والمختلف مجلة الجمهور والشعر النظيف = ماهي غريبة لالقيتو صورتي في غلافها بس الغريبة يوم مريت الحساء ياهل القطيف = تذكرت عيني مدامعها على مشرافها واليوم مابه عذر يوم ارقاك يالضلع المنيف = الا اني اتعب ارجولي من كثر وقافها واكثر مشاريه الشجر عليك يافصل الخريف = هتكت ستر غصونها واسرفت في كلافها انا جويع وجوعي مواصل ماهو قطعة رغيف = وعيني من الفرقا حداها الهم عن محرافها والعفو عند المقدره صوره من الحب العفيف = هذا كلام اللي قطار العمر كله طافها اخذت فـ أبها شهر كامل يسمونه مصيف = والشمس تحجبها السحابه والرعود خلافها وعي...

رابـــــح صقـــر == انا كـــــــــــــذا

أنا كذا من خلقني الهي أن جيت ببكي كذبتني المناديل *** الصبح أبصرخ وأمسي أجرح شفاهي أبعد علي البوح من نجمه سهيل نصفي يموت وباقي النصف لاهي راسي تجاذبها يدين المهابيل *** أكبرت فيك الحزم ناهي وراهي وأصغرت فيك الركض لمصافح الليل حبيبتي ما دونك ألا النواهي تكبيره الإحرام قيد الرجاجيل *** كلن على طبعه يفسر أشباهي ما غيرك الي لمسني نزعه النيل لقيت بك كذبن على الصدق زاهي ولقيت بك صدقن كما ريحه الهيل *** أنا أحبك من خلقني الهي ما تصدقي لو صدقتني المناديل

احبك ولا ظني ضلوعي تحمل . - محمد عبده

احبك .. احبك احبك ولا ظني ضلوعي تحمل .. أحبك عسى ربي يقوي ضلوعي احبك .. احبك احبك واظن الصبر يا زين كمل .. أحبك ولا موني بحبك أربوعي حبيبي .. حبيبي حبيبي دخيلك في محبك تجمل .. حبيبي ترفق جف منبع دموعي عشيري .. عشيري عشيري عيوني بازرق الدمع همل .. عشيري دموعي بيدي طفن شموعي ظنيني .. ظنيني ظنيني هذا قلبي رجا فيك وأمل .. ظنيني كفاني في هواكم خضوعي مقام: بياتي