Khaled Musaied خالد مسيعد
Khaled Musaied خالد مسيعد

@abo_ans

18 تغريدة 89 قراءة Sep 05, 2020
كيف تصبح معماري برمجيات (Software Architect) ناجح
في هذا الثريد سأقوم بتلخيص أهم النقاط التي اذا ركزت عليها ستجعل منك معماري برمجيات ناجح بإذن الله .. بسم الله ..
ما هي معمارية البرمجيات؟
هي عملية توصيف الحل التقني من مختلف الزوايا Views التقنية مثل زاوية أمن المعلومات Information Security و التكامل Integration والأداء Performance وغيرها من الزوايا.
من هو معماري البرمجيات؟
هو المسؤول عن توصيف وتصميم الحل التقني وهو من يتخذ قرارات مهمة يصعب تغيرها لاحقا.
ما هي الزوايا التي يجب عليك الاهتمام به عند تصميم الحل التقني؟
يجب عليك الاهتمام بما يسمى بتفاصيل الجودة (Quality Attributes) وهي كالتالي:
1. جودة الوظائف (Functional Suitability)
وهي مناسبة وظائف النظام لمتطلبات المستخدمين.
مثال لتصميم جيد: نظام إلكتروني مدرسي يحتوي على خدمات للطلاب والمعلمين وأولياء الأمور وغيرهم.
مثال لتصميم سيء: نظام الكتروني مدرسي يحتوي فقط على خدمات للطلاب والمعلمين.
2. جودة الأداء (Performance efficiency)
هي تحقق من تناسب سرعة استجابة النظام والموارد والبنية التحتية لمتطلبات العمل.
مثال لتصميم جيد: نظام إلكتروني سريع الاستجابة.
مثال لتصميم سيء: موقع الكتروني بطيء الاستجابة.
3. التوافقية (Comparability):
وهي التحقق من ان النظام سيتمكن من تبادل المعلومات مع الانظمة الاخرى بدون التأثير سلبا عليها.
مثال لتصميم جيد: برنامج لاستقبال طلبات التوظيف يقوم بالتكامل مع نظام HR عند انتهاء عملية التوظيف ويرسل بيانات الموظف الجديد الى نظام الموارد البشرية.
مثال لتصميم سيء: برنامج لاستقبال طلبات التوظيف لا يتكامل مع نظام الموارد البشرية ويتطلب ادخال بيانات الموظف الجديد يدويا في نظام الموارد البشرية.
4. قابلية الاستخدام (Usability):
وهي التحقق من ان النظام قابل للاستخدام والتشغيل والتعلم من قبل المستخدمين.
مثال لتصميم جيد:نظام لتعليم الاطفال الرسم يوفرللطفل امكانية الرسم بأكثر من اصبع Multi-touch.
مثال لتصميم سيء:نظام يستهدف كبارالسن يتطلب والخط المستخدم في النظام صغير جدا
5. الموثوقية (Reliability):
وهي التحقق من كون النظام متوفرا ومتاحا وقابل للاستعادة للمستخدمين تحت الظروف المطلوبة.
مثال لتصميم جيد: نظام إلكتروني تعليمي متوفر طوال الوقت سواء في ساعات الذروة ام خارجها ولا يواجه مستخدموه اي مشكلات تذكر.
مثال لتصميم سيء: برنامج لطبات المطاعم لا يتمكن مستخدموه من تقديم الطلب في ساعات الذروة.
6. أمن المعلومات (Security):
هي التحقق من كون النظام يحمي البيانات المستخدمة والمتبادلة من الوصول غير الموثوق.
مثال لتصميم جيد: نظام يستخدم كلمة المرور ورسالة الجوال two-factor authentication للتحقق من هوية المستخدم قبل الدخول على النظام.
مثال لتصميم سيء: نظام يعطي المستخدم القدرة على الاستعلام عن الطلب (الذي قد يتضمن بيانات حساسة) بمجرد ادخال رقم الهوية.
7. قابلية الصيانة (Maintainability):
هي التحقق من كون النظام قابل للتعديل والتطوير والاضافة والتوسع والادارة والاختبار.
مثال لتصميم جيد: نظام إلكتروني مدرسي لا يتطلب تعديل الشيفرة المصدرية (Code) لتجهيز النظام لسنة دراسية جديدة.
مثال لتصميم سيء: نظام إلكتروني مالي لا يمكن تعديله الا من خلال مبرمج واحد فقط لانه الوحيد الذي يفهم الكود.
8. قابلية النقل (Portability):
هي التحقق من أن النظام قابل للتثبيت والنقل من بنية تحتية برمجية او عتاد الى اخر.
مثال لتصميم جيد: برنامج محاسبي للويندوز يمكن تثبيته على جهاز الكمبيوتر خلال ثواني معدوه من خلال برنامج تنصيب سهل.
مثال لتصميم سيء: برنامج محاسبي يتطلب تنصيبه وتشغيله عدة ايام بسبب عدم وجود برنامج تنصيب.
وفي الختام ان يجب أن نعلم أن لكل نظام إلكتروني ظروفه ومتطلباته ولا يلزم ان تكون جميع تفاصيل الجودة تنطبق عليه ولكن عليك كمسؤول عن تصميم النظام أن تأخذها جميعا في الاعتبار عند التصميم.
المراجع:
youtube.com
iso25000.com

جاري تحميل الاقتراحات...