مقدمة في تحليل وتصميم الأنظمة
ومقدمة في تحليل وتصميم الأنظمة، مع مرور الوقت تصبح صناعة البرمجيات أكثر تعقيدا، بسبب زيادة تعقيد الأنظمة
المبنية، والطرق التقليدية لحل هذه المشكلات أصبحت غير كافية، وفي هذا المقال سوف نستعرض مقدمة في تحليل وتصميم الأنظمة، ومعرفة كيف تساعد منهجيات تحليل الأنظمة في دراسة المشكلة، وتعريف الأهداف والمتطلبات لكل
نظام، ثم تصميم الحل الأنسب الذي يحقق هذه المتطلبات.
مقدمة في تحليل وتصميم الأنظمة System Analysis
المرحلة الأولى من دراسة المشكلة المراد حلها، وأول مراحل تطوير الأنظمة، وهي المرحلة الحاسمة في تحليل
وتصميم الأنظمة، حيث يتعاون المطورون في فهم المشكلة، وفهم متطلبات النظام، وتحديد الهدف من بناء هذا النظام
وما يقدمه للمستخدم.
تعريف وتحديد المشكلة Problem Identification
يتمحور هذا الجزء حول تحديد المشاكل التي يسعى هذا النظام لحلها، وتختلف أنواع المشاكل في صناعة البرمجيات، مثل: أتمتة عملية معينة في العمل، أو تحسين إدارة البيانات، أو تحسين تجربة المستخدم بشكل عام، لذا عند استخدام الأساليب المعروفة في تحليل وتصميم الأنظمة لابد من فهم المشكلة أولا.
جمع المتطلبات Requirements Gathering
بمجرد وضع اليد على المشكلة المراد حلها، ثاني الخطوات هو جمع وكتابة متطلبات العميل من هذا النظام، وهذا
يشمل مقابلات محلل الأعمال مع العميل لفهم المتطلبات وترجمة المتطلبات إلى توثيقات برمجية يمكن للمطورين
فهمها جيدا، وتضمل هذه المتطلبات كيفية تصميم النظام، والعمليات الداخلية بشكل غير مفصل.
دراسة الجدوى Feasibility Study
قبل المرور إلى مرحلة التطوير، لابد أن يقوم مدير المشروع (Project Manager) بدراسة جدوى للمشروع لأنها من
أساسيات تحليل وتصميم الأنظمة، وتشمل تقييم كامل للجوانب التقنية، والعملية، والمالية للمشروع وتحليل كل جزء
منها، لمعرفة الهدف من وراء الحلول المقترحة لتنفيذ هذا النظام، والفائدة المرجوة منه.
التحليل والنمذجة Analysis and Modeling
هو الجزء الذي يهتم بالتفاصيل الداخلية في مراحل تحليل وتصميم الأنظمة، حيث يقوم محلل الأعمال بالتعاون مع
المطورين بتنفيذ عدة مخططات (Diagrams) تساهم في تشكيل أساسيات النظام من بيانات، وعمليات، ومن هذه المخططات: مخططات تدفق البيانات (Data Flow Diagrams)، ومخططات حالات الاستخدام (Use Cases Diagrams)،
ومخطط قاعدة البيانات (Entity-Relationship Diagram “ERD”)، وتساهم هذه النماذج في عرض النظام والعمليات التي ينفذها.
تحديد النطاق Scope Definition
تعريف حدود النظام من أولويات تحليل وتصميم الأنظمة، حيث تمنع إضافة العديد من المميزات والعمليات داخل النظام
بدون داع، والتأكد أن المشروع يتم تطويره في حدود المتطلبات فقط، كما يعمل هذا الجزء على تحديد الأجزاء المتعلقة
بالنظام دونا عن غيرها.
مثال عملي
تصميم أنظمة كشف الاحتيال (Fraud Detection Systems): عملية التحليل تتضمن دراسة عميقة لأنماط العمليات والتناقضات في البيانات المالية، لتصميم وتطوير خوارزميات قادرة على كشف الحالات الشاذة والاحتيالات ومنع هذه
الأنشطة في النظام.
تصميم النظام System Design
تصميم النظام هو المخطط الفعلي للمشروع المراد تنفيذه، وتتمحور هذه المرحلة حول تحويل المتطلبات والتحليلات
المُعَرَفَة في مرحلة التحليل إلى حل مرئي، وتتكون هذه المرحلة من:
تصميم الهيكلية أو معمارية النظام Architecture Design
من أهم أجزاء تحليل وتصميم الأنظمة، حيث يصف هيكلية النظام من منظور علوي، كما يقرر البرامج والأجهزة اللازمة
لتطوير وتشغيل المنتج، وكيفية ترابط البرامج والأجهزة وتواصلها مع بعضها البعض، ويوفر مسؤول التخطيط البرمجي (Software Architects) تصاميم مهمة تضمن قابلية التوسع (Scalability) للبرنامج، وأداء قوي (Performance)، وأهمية الأمان (Security).
تأسيس قاعدة البيانات Database Configuration
تشمل مرحلة التصميم أيضا تصميم مخطط قاعدة البيانات (Schema)، وسعة تخزين البيانات الأولية (Data Storage)،
وطرق الوصول لقاعدة البيانات (Access Methods)، ويتأكد مسؤول قواعد البيانات (Database Administrator) أن البيانات مرتبة بشكل صحيح، ويمكن للنظام استعادة وإدخال البيانات بشكل كفء.
نظام التواصل Communication System
هنا يكمن عمل المصممين في تصميم واجهات أمامية جيدة، تتيح للمستخدم التفاعل مع النظام بشكل سهل، مع
اعتبار أساليب تحسين تجربة المستخدم، مع تصميم عناصر مرئية تفاعلية لها شكل مريح للعين، ويسهل التعامل معها.
تصميم الخوازميات Algorithms Design
الخوازرميات هي طرق حل مشكلة ما، وفي هذا الجزء يقوم المطورون بتصميم الخوازرميات المعقدة في النظام، وهذه الخوازرميات تحمل المنطق وراء عمليات النظام، وكيفية تنفيذ هذه العمليات في شكل كود برمجي، ويؤخذ في الاعتبار
الكفاءة والدقة في كتابة هذه الخوارزميات باستخدام طرق لتحليل مدى تعقيد الخوازرمية، مثل: Big O Notation
الأمان Security
على المطورين الاهتمام بتأمين بيانات المستخدم عند بناء أنظمة جديد يوميا، وخاصة في هذا العالم الرقمي الذي
نعيشه الآن، وتشمل حماسة بيانات النظام وبيانات المستخدم، واستخدام طرق معروفة، مثل: التشفير (Encryption)، والتحكم في الوصول (Access Control)، تحديد مقاييس التهديد (Threat Measures).
الاختبار والصيانة Testing and Maintenance
كما عرفنا في المقالات السابقة أهمية الاختبار في مراحل تطوير البرمجيات، وفي هندسة البرمجيات بشكل عام، لذ لابد
أن يساهم مسؤول التخطيط في النظام في تحديد طرق اختبار النظام، وكيف يمكن لهذا النظام أن يحقق المتطلبات،
وتحديد طرق الصيانة المتبعة والمتكررة بشكل مستمر، فهذا يضمن تحليل وتصميم الانظمة بكفاءة عالية.
التوثيق Documentation
لا غنى عن التوثيق في صناعة البرمجيات، فهي ضرورية في مراحل صيانة النظام، ومراحل الإطلاق، كما يساعد
المستخدم في تحديد متطلبات النظام وكيفية تشغيله على جهازه الخاص، كما يوجد عدة أنواع من التوثيقات أثناء
مرحلة تحليل وتصميم الأنظمة، مثل: توثيقات المتطلبات، وتوثيقات التشغيل.
مثال عملي
تحديد الأجزاء الأساسية في نظام الإدارة التعليمية:
- الأجزاء الرئيسية: قاعدة بيانات الطلاب، وتفاصيل المادة العلمية، ووحدة الإدارة، ونظام تحصيل الدرجات.
- الوحدات: التسجيل، ومتابعة الحضور، وتسليم التكاليف والواجبات، والدرجات.
- الواجهات: بوابة الطلاب، بوابة المعلمين، بوابة أولياء الأمور.
النظام System
النظام هو مجموعة من الأشياء التي تعمل مع بعضها لتحقيق هدف معين، وتتنوع الأشياء بين: أجهزة (Hardware)،
وبرامج (Software)، وموظفين (Employees)، والعديد من الأشياء الأخرى، ويمكن أن ترى الأنظمة في كل مكان حولك، مثل:
أنظمة الحاسوب، وأنظمة الإدارة، ولابد أن يمر كل نظام على مراحل متقدمة في تحليل وتصميم الأنظمة.
قيود النظام System Constraints
كل نظام يعمل في نطاقات وحدود معينة، وهذه الحدود تعرف أقصى حد يمكن أن يصل إليه النظام في عملياته، ومن
أنواع هذه القيود: الماليات (أي أنه لا يمكن تخطي ميزانية العميل)، التقنيات (وقد تتضمن استخدام تقنيات مجانية بدلا
من المدفوعة)، والوقت (لتسليم العميل في الوقت المحدد)، وهذه الحدود مهمة في إرشاد المطورين.
عناصر النظام System Elements
- المدخلات (Inputs): هي البيانات التي يحصل عليها الجهاز من مصادر خارجية.
- العمليات (Processes): الأنشطة التي تحدث داخل النظام.
- المخرجات (Outputs): نواتج العمليات داخل النظام.
- التعليقات (Feedback): ردود أفعال المستخدمين حول النظام وطرق تحسينه.
أنواع الأنظمة Types of Systems
أنظمة مفتوحة (Open Systems):
هذه الأنظمة تتفاعل بحرية مع العوامل الخارجية، وهذه الأنظمة يمكنها التأقلم مع التغييرات التي تحدث داخلها بدون تعقيدات، مثل: المؤسسات التجارية.
مغلقة (Closed Systems):
هي أنظمة منغلقة على نفسها، ولا تتفاعل مع البيئة المحيطة بها بأي طريقة، مثل: نظام الحاسوب.
الأنظمة التكيفية (Adaptive Systems):
هي أنظمة تتكيف مع البيئة المحيطة بها، وتغير من وظائفها بتغيير البيئة، مثل: الأسواق المتغير باستمرار.
الحركية (Dynamic Systems):
وهي أنظمة تتغير مع مرور الوقت، مثل: النظام البيئي والذي يتغير بتغير المناخ، فتحليل وتصميم الأنظمة تشكل حجر الزاوية
والذي يعرف بالحصان الأسود في صناعة البرمجيات، حيث تعد عملية أساسية في حل مشكلات الأنظمة المختلفة، كما تعتبر عملية أساسية تساعد في تحديد الصعوبات التي تواجه تصميم أي نظام وتحقيق أهداف جيدة في هذا العالم السريع.