تحليل وتصميم الأنظمة
تحليل وتصميم الأنظمة هي مراحل متكاملة في دورة حياة تطوير البرمجيات، حيث يشمل التصميم تصور كامل عن
المكونات الأساسية للنظام والتفاعلات الداخلية لتلبية متطلبات العملاء، وفي الناحية الأخرى يضمن التحليل تقييم
هذا التصميم والتأكد من صحته، وإمكانية العمل بهذا النظام والتوقعات بعد عملية النشر.
مقدمة في تحليل وتصميم الأنظمة
تتضمن مرحلة تحليل النظام بعض المراحل المهمة:
- تعريف وتحديد المشكلة (Problem Identification): وتشمل هذه المرحلة تحديد المشكلة المراد حلها
من خلال النظام وتختلف أنواع المشاكل.
- جمع المتطلبات (Requirements Gathering): كتابة متطلبات العملاء بشكل منظم، من خلال المقابلات المستمرة، أو من خلال الإستبيانات.
- التحليل والنمذجة (Analysis and Modeling): تعاون محللي الأعمال والمطورين في إنشاء مخططات التصميم.
تصميم النظام ينقسم إلى:
- تصميم الهيكلية وقاعدة البيانات (Architecture and Database Design): يتم اتباع منهجيات تحليل وتصميم الأنظمة في بناء هيكل النظام وقاعدة بياناته.
- تصميم الخوارزميات ونظام التواصل (Algorithms and Communication system Design): يقوم المطورون بتصميم واجهات أمامية، وتصميم الخوارزميات المستخدمة في الواجهة الخلفية.
- الأمان والتوثيق (Security and Documentation): الاهتمام بأجزاء الأمان في النظام، وتوثيق عمليات
البناء كلها.
منهجيات تحليل وتصميم الأنظمة
-
التحليل كائني التوجه (Object Oriented Analysis):
استخدام الكائنات في أنظمة البرمجيات من أهم المنهجيات المتبعة في تحليل وتصميم الأنظمة، حيث يوفر هذا النهج مجموعة من المفاهيم لتحليل المشكلة.
شاهد أيضا: التخطيط المعماري للنظام
-
النمذجة الوظيفية (Functional Modeling):
كل نظام يحتوي على بعض المدخلات وبعض المخرجات، ويقوم النموذج الوظيفي بحساب المخرجات من خلال مدخلات النظام، كما يعرض المنظور الوظيفي للنظام، والتي تتكون من عمليات داخلية، ومدخلات، ومخرجات.
-
نمذجة البيانات (Data Modeling):
عملية تصميم مخططات البيانات، والعلاقات بين بيانات النظام، ويهتم هذا الجزء بقاعدة البيانات من خلال نمذجة البيانات
واتباع مناهج قواعد البيانات للتصميم والنمذجة، والهدف الرئيسي منها توفير إطار عمل دقيق ومنظم للبيانات.
أدوات تحليل وتصميم الأنظمة
-
مخططات تدفق البيانات (Data Flow Diagrams):
مجموعة من الرسوم البيانية والمخططات التوضيحية التي تساعد في تمثيل طريقة مرور البيانات بين الوحدات داخل
النظام، وتساهم هذه الرسوم البيانية في فهم وظائق النظام، مما يؤدي إلى تحسين الكفاءة، وتطوير التقنيات المستخدمة، وتعد من أهم أدوات تحليل وتصميم الأنظمة.
-
مخططات علاقة الكائن (Entity Relationship Diagrams):
المخططات المستخدمة في تصميم قاعدة البيانات لأنظمة البرمجيات، وخاصة قواعد البيانات العلائقية، وينطبق مصطلح
الكائن على أي شئ يتم تخزين بياناته في النظام، وكل كائن لديه عدة خصائص وعلاقات مختلفة.
-
مخططات حالة الاستخدام (Use Case Diagrams):
وتوضح الحالات التي يمك استخدام النظام فيها، بدون الدخول في تفاصيل التنفيذ لكل عملية، ولكن مجرد منظور علوي
حول طريقة عمل الوظائف، وكيفية تفاعل المستخدم معها.
تصميم النظام
- أهداف تصميم النظام (System Design Objectives): توجد عدة أهداف لتصميم النظام مثل، العملية، والدقة، والكفاءة، ومصداقية المنتج، ومرونته، وتلك الأهداف لابد أن تتحقق من خلال تطبيق جميع متطلبات العميل بشكل صحيح.
- هيكلية النظام (System Architecture): أساس تحليل وتصميم الأنظمة هو بناء هيكلية ومعمارية النظام، حيث يوضح المكونات الأساسية، ومستويات التجريد المطلوبة، وفهم المنطق وراء بناء هذا النظام، ويعد مرجع
في المستقبل.
- تصميم قاعدة البيانات (Database Design): وهي الإجراءات المتبعة في تنفيذ قاعدة البيانات بهدف:
تطابق البيانات وتكاملها، وقلة التكرار، والبحث بشكل أسرع، وتخزين البيانات بشكل مجزأ.
النمذجة والبروتوتايب
- خطوات النمذجة والبورتوتايب (Modeling and Prototype Steps): تتضمن جمع وتحليل المتطلبات، وتصميم سريع للنموذج الأولي، وبناءه، وعملية تقييم أولي للتصميم، وتكرار البروتوتايب، وتنفيذ المنتج بعد الانتهاء من العملية.
- لغة التصميم الموحدة (Unified Modeling Language): تعتبر لغة تحليل وتصميم الأنظمة، لأنها تستخدم في بناء المخططات التي ذكرناها سابقا، وبناء النماذج الأولية للعميل، ولكنها ليست لغة برمجة، بل عبارة عن لغة رسومية تساهم في توضيح هياكل التصميم المختلفة.
التحقق من صحة التصميم والمراجعة
- التحقق من صحة التصميم (Design Validation): هي عملية التدقيق والتقييم الشامل لتصميم النظام، وتشمل مقارنة التصميم الحالي مع تصاميم مشابهة بهدف اكتشاف الأخطاء، كما تشمل فحص وظائف املنتج الداخلية وتنفيذ بعض الأاليب كالنمذجة الرياضية.
- التأكيد على التصميم (Design Verification): التأكد أن المنتج النهائي مناسب لمتطلبات العميل، ويحققها بشكل آمن، والتأكد أن النظام قابل للاستخدام، ولابد من اختبار النظام وتخطيط هذه العملية، وتنفيذ الأساليب الخاصة مثل: اختبار الوحدات، واختبار التكاملية، ووجود مسؤولي الجودة للتحقق من النظام.
- مميزات التحقق والتأكيد (Advantages of Validation and Verification): مراقبة التصميم باستمرار ومعرفة مستوى استيفاء الشروط والمتطلبات، وتوثيق مراحل التحقق والتأكيد لفهم وظائف النظام بشكل أفضل في المستقبل، كما يساهم التوثيق في إثبات تلبية النظام لمتطلبات المستخدم.
جمع وتحليل المتطلبات
- عملية جمع وتحليل المتطلبات (Requirements Gathering and Analysis Process):
من أساسيات تصميم وتحليل الأنظمة وتتضمن: تحديد أصحاب المصلحة المعنيين في هذه العملية، وتحليلهم من خلال
فهم احتياجاتهم الرئيسية، وتحديد المشكلة الرئيسية، واستخراج المتطلبات، وتوثيق تلك المتطلبات، والتحقق والتأكيد.
- تقنيات جمع وتحليل المتطلبات (Requirements Gathering and Analysis Techniques):
من أهم التنقيات المتبعة في معظم الشركات: المقابلات المستمرة مع العملاء والمستخدم وأصحاب المصلحة، وإستطلاع الآراء المختلفة، وتنفيذ ورش عمل مكثفة، والمراقبة، وتقديم نماذج أولية، ومراجعة حالات الاستخدام، وتحليل توثيق النظام.
- أدوات جمع وتحليل المتطلبات (Requirements Gathering and Analysis Tools):
توجد بعض الأدوات المستخدمة وأهمها، أدوات إدارة المشاريع مثل Jira، وأدوات إدارة الملفات مثل SharePoint، وأدوات الخرائط الذهنية مثل XMind.
التوثيق والمعايير
- أنواع وثائق التصميم (Types of Design Documents):
توجد أنواع مهمة تستخدم في تصميم الأنظمة مثل: موصفات متطلبات البرمجيات وهو توثيق شامل للمتطلبات
الوظيفية والغير وظيفية، ووثائق تصميم النظام وتحتوي على هيكلية النظام، ووثائق التصميم التفصيلي لعرض الأجزاء
الداخلية للنظام.
- أهمية توثيق التصميم (Importance of Design Documentation):
يساعد في فهم المتطلبات بشكل جيد، وتصميم وهيكلة المنتجات البرمجية بطريقة صحيحة، ويمكن للمنضمين الجدد
إلى الشركة المشاركة في المشروع، ويتم ذكر كل شئ حول المشروع في هذه الملفات، والتواصل الجيد بين المساهمين في المشروع.
- معايير البرمجيات (Software Standards):
وهي مجموعة من الإرشادات والقواعد مثل: معايير كتابة الكود ومعايير توثيق البرمجيات، ومعايير الجودة، ومعايير التوافقية، ومعايير الأمان.
إدارة التغيير
- عملية إدارة التغيير (Change Management Process):
وهي تشمل إنشاء طلب التغيير، ومراجعة وتقييم طلب التغيير من قبل المختصين وهيئة المراجعة، والتخطيط لعملية التغيير
في حالة القبول، واختبار التغييرات ومدى تأثيرها على النظام، وإنشاء اقتراح التغيير ورفعه إلى المتخصصين في مراجعة
التغيير ، وذلك للتأكيد على تنفيذ التغيير بشكل صحيح، وتنفيذ التغيير على مستوى الكود أو التوثيق، ومراجعة أداء التغيير بعد التنفيذ، وإغلاق العملية.
- أهمية إدارة التغيير (Change Management Importance):
كذلك تساهم في تحسين الاداء، وزيادة الارتباط والمشاركة من قبل الموظفين، وتحسين إبداع الموظف، واستخدام التقنيات الحديثة، وتنفيذ متطلبات العميل المتجددة، وتقليل التكاليف، وتعتبر عملية تحليل وتصميم الأنظمة من أطول العمليات في تطوير البرمجيات، حيث تحتاج الكثير من الوقت والجهد لتنفيذها بشكل صحيح، ولكن اتباع التعليمات والقواعد الإرشادية في التصميم يساعد في تسريع العملية والوصول إلى النتيجة المطلوبة في وقت قصير والانتقال إلى مرحلة التطوير بشكل سليم بدون أي أخطاء.