بنيان وتصميم البرمجيات – مقدمة

Software Architecture & Design

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

Software Architecture types

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

هيكلة البرمجيات Software Architecture

الهندسة المعمارية بمثابة مخطط للنظام. يوفر فكرة مجردة لإدارة تعقيد النظام وإنشاء آلية اتصال وتنسيق بين المكونات.

فهي تحدد حلاً منظمًا لتلبية جميع المتطلبات الفنية والتشغيلية، مع تحسين سمات الجودة المشتركة مثل الأداء والأمان.
علاوة على ذلك، فهو يتضمن مجموعة من القرارات الهامة حول المنظمة المتعلقة بتطوير البرمجيات ويمكن أن يكون لكل قرار من هذه القرارات تأثير كبير على الجودة وقابلية الصيانة والأداء والنجاح الشامل للمنتج النهائي. وتتكون هذه القرارات من :
1 – اختيار العناصر الهيكلية والواجهات التي يتكون منها النظام.
2 – السلوك كما هو محدد في التعاون بين تلك العناصر.
3 – تكوين هذه العناصر الهيكلية والسلوكية في نظام فرعي كبير.
4 – تتوافق القرارات المعمارية مع أهداف العمل.
5 – الأنماط المعمارية توجه المنظمة.

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

يوفر تصميم البرمجيات خطة تصميم تصف عناصر النظام، وكيفية ملاءمتها، والعمل معًا لتحقيق متطلبات النظام. أهداف وجود خطة التصميم هي كما يلي :
1 – للتفاوض بشأن متطلبات النظام وتحديد التوقعات مع العملاء وموظفي التسويق والإدارة.
2 – بمثابة مخطط أثناء عملية التطوير.
3 – قم بتوجيه مهام التنفيذ، بما في ذلك التصميم التفصيلي والترميز والتكامل والاختبار.

يأتي قبل التصميم التفصيلي والترميز والتكامل والاختبار وبعد تحليل المجال وتحليل المتطلبات وتحليل المخاطر.

Software design

أهداف البنيان والهيكل

الهدف الأساسي للبنية هو تحديد المتطلبات التي تؤثر على بنية التطبيق. تعمل البنية المصممة جيدًا على تقليل مخاطر الأعمال المرتبطة ببناء حل تقني وبناء جسر بين متطلبات العمل والمتطلبات الفنية.

بعض الأهداف الأخرى هي كما يلي :
1 – كشف بنية النظام مع إخفاء تفاصيل تنفيذه.
2 – تحقيق جميع حالات الاستخدام والسيناريوهات.
3 – حاول تلبية متطلبات مختلف أصحاب المصلحة.
4 – التعامل مع المتطلبات الوظيفية والجودة.
5 – تقليل هدف الملكية وتحسين مكانة المنظمة في السوق.
6 – تحسين الجودة والوظائف التي يقدمها النظام.
7 – تحسين الثقة الخارجية سواء في المنظمة أو النظام.

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

لا تزال هندسة البرمجيات مجالًا ناشئًا في هندسة البرمجيات. لديها القيود التالية :
1 – نقص الأدوات والطرق الموحدة لتمثيل الهندسة المعمارية.
2 – عدم وجود طرق تحليل للتنبؤ بما إذا كانت الهندسة المعمارية ستؤدي إلى تنفيذ يلبي المتطلبات.
3 – قلة الوعي بأهمية التصميم المعماري في تطوير البرمجيات.
4 – عدم فهم دور مهندس البرمجيات وضعف التواصل بين أصحاب المصلحة.
5 – عدم فهم عملية التصميم وخبرة التصميم وتقييم التصميم.

دور مهندس البرمجيات

يوفر مهندس البرمجيات حلاً يمكن للفريق الفني إنشاءه وتصميمه للتطبيق بأكمله. يجب أن يتمتع مهندس البرمجيات بالخبرة في المجالات التالية:

خبرة في التصميم

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

خبرة في المجال

1 – خبير في النظام الجاري تطويره والتخطيط لتطوير البرمجيات.
2 – المساعدة في عملية التحقيق في المتطلبات، وضمان الاكتمال والاتساق.
3 – تنسيق تعريف نموذج المجال للنظام الجاري تطويره.

الخبرة التكنولوجية

1 – خبير في التقنيات المتاحة التي تساعد في تنفيذ النظام.
2 – تنسيق اختيار لغة البرمجة، والإطار، والمنصات، وقواعد البيانات، وما إلى ذلك.

الخبرة المنهجية

1 – خبير في منهجيات تطوير البرمجيات التي يمكن اعتمادها خلال دورة حياة تطوير البرمجيات (SDLC).
2 – اختيار الأساليب المناسبة للتطوير التي تساعد الفريق بأكمله.

الدور الخفي لمهندس البرمجيات

1 – يسهل العمل الفني بين أعضاء الفريق ويعزز علاقة الثقة في الفريق.
2 – متخصص في المعلومات ويشارك المعرفة ويتمتع بخبرة واسعة.
3 – حماية أعضاء الفريق من القوى الخارجية التي من شأنها أن تشتت انتباههم وتقلل من قيمة المشروع.

ما يقدمه مهندس البرمجيات.

1 – مجموعة واضحة وكاملة ومتسقة وقابلة للتحقيق من الأهداف الوظيفية.
2 – وصف وظيفي للنظام، مع طبقتين من التحلل على الأقل.
3 – مفهوم للنظام.
4 – تصميم على شكل نظام يحتوي على طبقتين من التحلل على الأقل.
5 – فكرة عن التوقيت وسمات المشغل وخطط التنفيذ والتشغيل.
6 – وثيقة أو عملية تضمن اتباع التحليل الوظيفي، والتحكم في شكل الواجهات

معايير ومواصفات الجودة

الجودة هي مقياس للتميز أو حالة الخلو من أوجه القصور أو العيوب. سمات الجودة هي خصائص النظام المنفصلة عن وظائف النظام.

يؤدي تطبيق سمات الجودة إلى تسهيل التمييز بين النظام الجيد والنظام السيئ. السمات هي العوامل العامة التي تؤثر على سلوك وقت التشغيل، وتصميم النظام، وتجربة المستخدم.

Related posts

هندسة البرمجيات – نظرة عامة

نظم المعلومات الإدارية – جودة المعلومات

نظم المعلومات الإدارية – تصنيف المعلومات