Teaching Software Architecture Patterns Using ACME Language
Tahani Elfatih Babeker
Faculty of Computer Science and information Technology || Sudan University for Science and Technology || Sudan
Hany Ammar
Lane Department of Computer Science and Electrical Engineering || West Virginia University || USA
Tab title
Software Architecture is one of the most important courses, in computer science discipline. It has many branches all of them aimed to prepare students to be architects on the industry. But actually there is a gap between what the students find on the theoretical courses and what they find on the industry. On other words practical experience differ from academic theory. So the question how to prepare students to join industry? Abstract nature of the software engineering courses as general and software architecture in special manner, led to difficulties on understanding, this raise the second question, how to make these courses understandable? All previous studies focusing on these problems either by changing course curricula, or by using software tools. This paper extension for the previous study [1] as we survey Architecture Description Languages (ADLs) and conclude that ACME is a general purpose language and it may be suitable for using as practical part for software architecture curricula. We aimed to design a frame work use, ACME language, use it as practical part of the software architecture course and supporting on teaching, focus on architecture patterns, thus we use most common architecture patterns layer and Pipes-Filters, starting with simple example and increase the complexity. Keywords: Teaching Software Architecture، ACME Architecture Description Language، Software Architecture Education، Software Architecture Patterns
تدريس أنماط معمارية البرمجيات باستخدام لغة أكمي
تهاني الفاتح بابكر
كلية علوم الحاسوب وتقانة المعلومات || جامعة السودان للعلوم والتكنولوجيا || السودان
هاني عمار
قسم علوم الحاسوب والهندسة الكهربائية || جامعة وست فرجينيا || أمريكا
Tab title
معمارية البرمجيات من المقررات المعتمدة في علوم الحاسب ولها العديد من الفروع والتي تهدف جميعها إلى تجهيز طالب علوم الحاسب للمشاركة في سوق العمل ولكن في الحقيقة هناك فرق بين ما يدرسه الطالب في الجانب النظري وما يجده عمليا في سوق العمل أو بصورة أخرى هناك فرق بين الدراسة الأكاديمية والخبرة العملية. إذن السؤال هو كيف يتم تجهيز الطالب حتى ينخرط في سوق العمل بدون معوقات؟ الطبيعة التجريدية لمقرري هندسة البرمجيات ومعمارية البرمجيات أدت إلى صعوبة في استيعابهم ومن هنا ظهر السؤال الثاني كيف يمكن أن نجعل تلك المقررات سهلة الفهم والاستيعاب؟ تعتبر هذه الورقة امتدادا للدراسة السابقة [1] والتي خلصنا فيها أن لغة أكمي تعتبر من اللغات ذات الأغراض العامة والتي يمكن أن تكون لغة مناسبة تستخدم كجزء عملي لمقرر معمارية البرمجيات. قمنا بوضع إطار عمل فيه تستخدم لغة أكمي للمساعدة والدعم في تدريس الجزئية الخاصة بأنماط معمارية البرمجيات تم استخدامها في شرح نمطى الطبقات Layered والأنابيب و المرشحات Pipes- Filters ، ويعتبر هذين النمطين من أكثر أنماط معمارية البرمجيات استخداما. بداً بمثال بسيط ومن ثم زيادة في تعقيد المثال بزيادة المتطلبات التي يجب إضافتها عل النمط المعين. الكلمات المفتاحية: معمارية البرمجيات، لغة أكمي لتوصيف معمارية البرمجيات، تعليم معمارية البرمجيات، أنماط معمارية البرمجيات.