دراسة استقصائية حول لغات توصيف معمارية البرمجيات - بابكر، تهانى الفاتح; عمار، هانى (المركز القومي للبحوث, 2019)
أن الزيادة المضطردة في إعداد البرمجيات وزيادة درجة تعقيدها، تحتم على دارسي هندسة البرمجيات ومعمارية البرمجيات أو على معماريي البرمجيات الذين ليس لديهم الخبرة العملية الكافية أن يكونوا على قدر من المهارات والمقدرات التي تمكنهم من أداء وظائفهم. ولكن على أرض الواقع هناك فجوة بين المعرفة الأكاديمية وبين المقدرة العملية المطلوبة في سوق العمل فكان السؤال لماذا لا تستخدم إحدى لغات توصيف المعمارية كلغة مساعدة حتى يتمكن المتلقي من ربط المفاهيم المجردة لهندسة البرمجيات ومعمارية البرمجيات؟ تهدف هذه الدراسة الاستقصائية إلى تصنيفات لغات توصيف معمارية البرمجيات (Software Architecture Description Languages) أو (ADLs) الحالية والتعرف على مدى فاعليتها في تعليم معمارية البرمجيات. وذلك باستخدام طريقة الدراسة الاستقصائية المنتظمة (systematic Literature Review)، متبعين التوجيهات المقترحة من (Kitchenham). لغرض تصميم لغة لتوصيف معمارية البرمجيات باللغة العربية لكي تكون مادة مساعدة في تدريس مقرر معمارية البرمجيات، معتمدين على مفهوم البرمجيات القائمة على المكونات (Components). خلصت النتائج إلى أن معظم لغات توصيف المعمارية الحالية موجه إلى مجال معين (Domain Specific)، مثل (أنظمة الطيران، الأنظمة الموزعة، الهواتف النقالة، خطوط الإنتاج، ...الخ) أضف إلى ذلك أنه ليس هناك واحدة من هذه اللغات مستخدمة في مجال تعليم معمارية البرمجيات، بل إن معظمها إن لم يكن كلها موجهة للتعامل مع خبراء في المجال، عدا بعض اللغات ذات الأغراض العامة والتي قد تكون بسيطة إلى حد ما مثل أكمي (ACME)، والتي كانت النواة للغة المراد تصميمها. وهي لغة لتوصيف معمارية البرمجيات، والتي تستخدم العبارات والصياغة باللغة العربية لإثراء محتوى اللغة العربية التقني وكذلك لتكون معين للطلاب الذين يدرسون مادة معمارية البرمجيات في دراستهم، نسبة لأن كل لغات توصيف المعمارية تعتمد على أن الذين يستخدمونها من الذين لديهم خبرة في معمارية البرمجيات، أي أنها تعتمد على مستوى علمي وعملي عال. أضف إلى ذلك عندما ينفذ الطالب معمارية البرمجيات بنفس اللغة التي يفكر بها يصبح ذلك بالنسبة إليه أوضح. أما من ناحية تعلم معمارية البرمجيات فإن استخدامه أداة للتعلم يساعد في تقليل المستوى العالي من التجريد (Abstraction) التي تتميز به مادة معمارية البرمجيات. فكانت هناك دراسات هدفت إلى اقتراح طرق وأساليب مختلفة لتسهيل تعلم معمارية البرمجيات وهندسة البرمجيات، ولكن ليست هناك واحدة منها اقترحت بناء لغة معمارية تخدم هذا الغرض. لذلك فإن استخدام لغة توصيف المعمارية للأغراض التعليمية يساهم إلى حد ما في استيعاب مقررات معمارية البرمجيات وهندسة البرمجيات.
increase numbers and complexity of software development requires that learners of software engineering and software architecture or software architects who do not have sufficient practical experience must have the skills and abilities to perform their jobs. But there is a gap between academia and practical so the question why does not use one of the architecture description languages in teaching and learn software engineering and software architecture to fill this gap? The objective of this study to classification ADLs according to their domain, domain specific or general purpose languages, doing these systematic literature review flowing the steps from Ketchenham. As the result we find that most ADLs are Domain Specific ADLs (Aviation Systems, Distribution Systems, Mobile Systems, Product Lines …etc. ) none of these ADLs is used in the field of software architecture education, but most intended to deal with experts in the field, except general purpose ADLs, like ACME, which we make as start point to design Arabic ADL, so as to enrich Arabic content, also to be as helping language in teaching Software Architecture course, because most of ADLs need experience and high level of understanding to use, moreover, when student think and design with same language subject more understandable. So using software architecture description languages in educating purpose, help on understanding high level of abstraction of software architecture and software engineering courses, there are some studies that aimed to reduce the complexity of these courses using different methodologies and approaches, but none of them using architecture description languages as helping tool. So the use of architecture description languages is helpful in teaching software architecture and software engineering courses.
Keywords: البرمجيات -- معمارية البرمجيات -- هندسة البرمجيات -- لغات توصيف معمارية البرمجيات