Table of Contents

النموذج الوظيفي في تطوير النظم المدمجة: الاستراتيجيات والأدوات

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

ما هو النموذج الخيالي؟

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

وفي النظم المدمجة، تتخذ النماذج الوظيفية عادة شكلا من أشكال عدة:

  • Usese case diagrams — Illustrate interactions between actors (users, other systems) and the system, showing high -level functionity.
  • Activity diagrams - Model the flow of actions, decisions, and parallelism - useful for understanding control logical and sequential processes.
  • State machine diagrams — Define system states, transitions, and events - ideal for reactive systems like a thermostat or a communication protocol.
  • Data flow diagrams - خريطة كيف تنتقل البيانات بين عناصر التجهيز - تساعد في تجهيز الإشارات أو صمامات أجهزة الاستشعار.
  • Block definition and internal block diagrams (SysML) - بنية نظام العرض والترابط على مستوى مفاهيمي.

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

استراتيجيات النماذج الوظيفية الفعالة

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

بدء العمل بالمتطلبات

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

استخدام التحلل الهرمي

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

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

اعتماد لغات نموذجية موحدة

وتحرص المعايير على أن تكون النماذج غير مبهمة ومشتركة ومفيدة، وأن تكون اللغتان المهيمنتان للنموذج الوظيفي المدمج هما:

  • Unified Modeling Language (UML)] - Originally designed for software systems, UML’s state machine, activity, and use case diagrams are widely used in embedded development, especially for control‐oriented and eventdriven systems.
  • Systems Modeling Language (SysML)] - تمديد للعمود المصمم لهندسة النظم.

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

التكرار والتنقية

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

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

الحفاظ على قابلية التعقب

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

أدوات للنمذجة الوظيفية

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

سيمولينك (ماث ووركس)

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

مهندس معماري في المؤسسة (نظم سباركس)

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

IBM Rational Rhapsody

والتجمع هو بيئة إنمائية محركة نموذجية مصممة خصيصاً للنظم المتجسدة والقائمة على الزمن الحقيقي، وهي تدعم نظام " سيزم " و " سي دي إم " ، وتوفر أدوات آلية للبرمجة (C, C++, Java, وAda) وتكمن قوة الشعائر في قدرتها على التحقق من النماذج عن طريق المحاكاة والتنفيذ، وتولد شفرة للبرمجيات ذات المستوى " RORhaod.

Modelica (OpenModelica, Dymola)

إن " " " هي لغة مفتوحة المصدر، ومُعادلة لنموذج النظم المادية المعقدة - مثل الديناميات الحرارية، والدوائر الكهربائية، والنظم الهيدروليكية، وميكانيكيات التعددية، وخلافاً لنموذج " سيولينك " ، تستخدم " موديليكا " نموذجاً قياسياً: تربط المكونات بمراحل تصميمها المادي (مثلاً، نماذج التدفق الحرارة، والفولت) والأدا.

ماجيكدراو (السايستيومات الدوارة)

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

أدوات أخرى جديرة بالملاحظة

  • SCADE (Ansys) ] - أداة نموذجية معتمدة للتنمية في برامجيات السلامة الحرجة، ولا سيما فيزيائية وسككك الحديدية.
  • Papyrus (Eclipse) ] — An open —source UML/SysML modeling tool that can be extended via plug —ins. Good for teams with limited budgets who still want standards —compliant modeling.
  • Vector PREEvision] - Specialized for automotive electrical/electronic (E/E) structure, including functional networking, signal‐to-oftware mapping, and wiring harness design.

فوائد النماذج الوظيفية في النظم المدمجة

ويسفر اعتماد النماذج الوظيفية عن تحسينات قابلة للقياس في النوعية والتكاليف والزمن من السوق، ويتضح ذلك من الفوائد الرئيسية التي تتجلى في نتائج ملموسة.

الكشف المبكر عن مخالب التصميم

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

تحسين الاتصالات بين الأفرقة المتعددة التخصصات

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

وفورات التكاليف والزمن

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

تحسين الوثائق المتعلقة بالنفقة والامتثال

وتنتج النماذج الوظيفية مواصفات ذاتية التوثيق، وتبين روابط القابلية للتعقب الخرائط التي تتطلبها الحالة أو الانتقال، وهذه الوثائق لا تقدر بثمن بالنسبة للمهندسين الجدد الذين يتابعون أعمال الصيانة في وقت لاحق، يمكن أن يفهموا منطق النظام بقراءة آلة الدولة بدلاً من التغليف عن طريق شفرة المصدر، وبالنسبة للصناعات المنظمة )المعيار الدولي للتوحيد القياسي الطبي رقم ٤٣٤٨٥٢، فإن الوثائق المستندة القائمة على النموذج هي في كثير من الحالات مثل وثائق الاقتفاء.

تعزيز موثوقية النظام

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

أفضل الممارسات لإدماج النماذج الوظيفية في التنمية

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

نموذج قبل أن تُصبح

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

التكوين الذاتي حيثما أمكن

ويُحدث الترميز اليدوي من النماذج أخطاء في الترجمة ويُبطل الغرض من الاختراق، فإذا دعمت مجموعة الأدوات الخاصة بك، تُنتج رمزا للإنتاج (C, C+, etc.) من النموذج المصادق عليه، ولكن على علم بما يلي: يجب اختبار المدونة والتحقق منها، ويجب أن تكفلوا تأهيل المولد الرمزي لمستوى أمانكم (مثلا شهادة المدوّن المدمجة).

مراقبة استخدام النماذج

وتتطور النماذج تماماً مثل المدونة، وتخزنها في مستودع متحكم فيه نسخاً (Git, SVN) وتستخدم استراتيجيات الفرع لإدارة التنمية الموازية، وقد بنيت معظم أدوات النموذج دعماً في مجال المقارنة النموذجية والدمج، وتعالج التغييرات النموذجية بنفس الحزمة التي تُجرى بها تغييرات في الرموز - وهي تحتاج إلى استعراضات من جانب الأقران لجميع التعديلات.

Integrate Modeling with Testing

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

التحديات وكيفية التغلب عليها

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

خاتمة

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

For further reading, explore the SysML specification by OMG], the ] Simulink product page, and the practical guide on model —based embedded development from IBM.]