Site icon FREEHOW

تصميم البرمجيات

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

مرحلة تصميم البرمجيات في دورة حياة تطوير البرمجيات (Software Development Lifecycle) هي المرحلة التي تتضمن ترجمة متطلبات العملاء والمستخدمين إلى نموذج ما يمكن تنفيذه باستخدام لغات البرمجة، وتقسم مرحلة التصميم إلى 3 أنواع، وهي تصميم الواجهة (Interface Design)، وتصميم هيكلي (Architectural Design)، وتصميم تفصيلي (Detailed Design)، وكل منها له دوره في مرحلة التصميم الأساسية.

أجزاء النظام Elements of a System

تصميم الواجهة Interface Design

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

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

التصميم الهيكلي Architectural Design

تتخصص هذه المرحلة في تصميم البرمجيات بتصميم العناصر الأساسية للنظام، مثل: الوظائف، والأداء، والخصائص، والعلاقات بين هذه العناصر وبعضها، وطريقة تفاعل الوحدات، في التصميم الهيكلي نهتم بجميع العناصر الرئيسية (Major Components)، بينما نتجاهل التفاصيل الداخلية لهذه العناصر، حتى يتسنى التركيز على هذه العناصر وتصميمها بشكل دقيق وترك التفاصيل للمسؤولين التقنيين.

يضيف التصميم الهيكلي تفاصيل مهمة تم تجاهلها في تصميم الواجهة، وتترك التفاصيل إلى آخر مرحلة من التصميم، ومن عيوب التصميم الهيكلي:

التصميم التفصيلي Detailed Design

هي آخر مرحلة من مراحل تصميم البرمجيات وتهتم بالتفاصيل الداخلية لعملية تصميم البرمجيات لأجزاء النظام وكل تفاصيل العناصر التي تم تجاهلها في التصميم الهيكلي، حيث يتم الخوض في تفاصيل العلاقات، والخصائص، والعمليات، وطريقة عمل كل وحدة، وحتى طريقة تنفيذ هياكل البيانات والخوازرميات المستخدمة في هذا النظام، ويهتم التصميم التفصيلي بكلا من:

مفاهيم تصميم البرمجيات Software Design Concepts

مفاهيم تصميم البرمجيات هي الأفكار الأساسية خلف التصميم، وتوضح هذه المفاهيم كيفية حل المشكلة أو تصميم البرمجيات، والتفكير المنطقي يوضح طريقة حل المشكلة أو كيفية تنفيذ هذا التصميم، كما تسمح لمهندسي البرمجيات في تصميم نموذج المنتج الذي سيتم تنفيذه، وتوفر أيضا مفاهيم تصميم البرمجيات هيكل واضح ومفهوم لتطوير البرنامج الصحيح.

التجريد Abstraction

يقوم مفهوم التجريد في تصميم البرمجيات على إخفاء بعض التفاصيل والبيانات لتقليل التعقيد الناتج عن وجود بعض البيانات، وزيادة كفاءة المنتج، ويوجد عدة مستويات من التجريد، وكلها مهمة ويتم تنفيذها على مراحل أثناء عملية التصميم، لذا لابد من تقديم حل مناسب في المستوى الأول من التجريد لتسهيل باقي المراحل ومحاولة تقليل الأخطاء قدر الإمكان>

التجميع Modularity

تقسيم النظام إلى عدة أجزاء لتقليل التعقيد الناتج عن التعامل مع النظام ككتلة واحدة، ويمكن أيضا تصميم وتنفيذ كل وحدة بطريقة منفصلة عن الأخرى، ثم تجميع هذه الأجزاء لتكوين نظام يقوم بعمل وظيفة مهمة أو يحل مشكلة معينة، لذا من المهم تقسيم النظام إلى وحدات لمساعدة المطورين في تفادي بعض المشاكل التي توجد في Monolithic Software

النمط أو الأسلوب Pattern

النمط هو طريقة مبسطة لتكرار شئ معين، وفي تصميم البرمجيات تستخدم أنماط التصميم (Design Patterns) في تكرار نموذج معين من التصميم واستخدامه في عدة أجزاء من النظام، وهذا يحل مشكلة تكرار العمليات داخل النظام مما يوفر الوقت والجهد.

إعادة بناء البرنامج Refactoring

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

عملية تصميم البرمجيات عملية مهمة للغاية، لذا لابد من مشاركة المصممين والمطورين ذوي الخبرة في هذه المرحلة من مراحل تطوير البرمجيات، وتقديم حلول يعتمد عليها تساهم في حل المشكلة الأساسية.

Exit mobile version