مهندس برمجيات
مهندس البرمجيات أو مهندس أنظمة الحاسوب هو محترف ممارس متخصص في هندسة البرمجيات (هندسة البرمجيات)، "أحد التخصصات الهندسية الذي ظهر في بداية الأربعينيات مع ظهور أول حاسوب رقمي عام 1940م [1]" يقوم بتطبيق النظريات العلمية (نظرية علمية) والخوارزميات (خوارزمية) لتنفيذ أو تصميم حلول تقنية المعلومات (تقنية المعلومات) لمختلف المجالات ضمن معايير السلامة والجودة المتعارف عليها.[2][3][4] صنف موقع CareerCast.com مهنة مهندس البرمجيات ثالث أفضل وظيفة في الولايات المتحدة الأمريكية بدخل يزيد عن 7 آلاف دولار أمريكي شهريا طبقا لدراسة سوق العمل عام 2013م يشترط في أسواق العمل [5] والنقابات المهنية حصول مهندس البرمجيات على درجة علمية. ويجب التنويه أن مراحل ومستويات التعليم والدرجات العلمية تختلف من بلد إلى آخر. في أستراليا يتدرج السلم التعليمي إلى عشر مستويات بهم خمس درجات علمية [6] وفي بريطانيا ودول الاتحاد الأوروبي يتدرج السلم التعليمي إلى ثمان مستويات بهم أربع درجات علمية.[7] عمومًا مهندس البرمجيات يجب أن يكون حاصلًا على شهادة جامعية (شهادة جامعية) من المستوى الأول «دبلوم عالي» [8][9][10] (First-tier Degree) أو الثاني «بكالوريوس» [11][12] (Second-tier Degree) طبقا لنظام بلده في تخصص هندسة البرمجيات أو علوم الحاسب الآلي أو تكنولوجيا المعلومات والاتصالات أو حسب ما تنص عليه قوانين ولوائح النقابات المنظمة للمهنة.[13][14] في كندا على سبيل المثال لا تقبل النقابات المهنية تسجيل مهندس البرمجيات إلا إذا كان حاصلًا على شهادة البكالوريوس في هندسة البرمجيات [15] ولا يحق للحاصلين على شهادات نفس المستوى في أي تخصص آخر أن يسجل في النقابات المهنية تحت هذا المسمى. ملاحظة "تعتبر شهادة البكالوريوس هي شهادة المرحلة الجامعية الأولى طبقا لأنظمة التعليم في كندا [16] والولايات المتحدة الأمريكية [17]" بينما تعتمد الحكومة الأسترالية والحكومة النيوزلندية على معايير مرنة مبنية على النظام البريطاني في الموازنة بين المؤهلات العلمية والخبرات العملية في تقييم مهندس البرمجيات.[18] توضح مقارنة بين أنظمة التعليم في مختلف دول العالم تمت تحت إشراف منظمة الأمم المتحدة أنه رغم عدم وجود نظام عالمي يربط بين الأنظمة الدولية إلا أنه لا يوجد اختلاف كبير [19] في الشروط اللازمة لتأهيل مهندس البرمجيات لدخول أسواق العمل والتسجيل في النقابات المهنية.
مهندس برمجيات | |
---|---|
"مهندس البرمجيات" محترف متخصص في هندسة البرمجيات
| |
الاسم الرسمي | مهندس برمجيات، مهندس أنظمة الحاسوب |
تسمية الإناث | مهندسة برمجيات |
فرع من | مهندس أنظمة ، ومحترف حاسوب |
النوع | مهنة |
المجال | تقنية المعلومات والإتصالات |
الكفاءات | عقل تحليلي |
التعليم المطلوب | شهادة جامعية في تخصص هندسة البرمجيات، علوم الحاسوب، تكنولوجيا المعلومات |
تعديل مصدري - تعديل |
وانتبه لخلط المفاهيم بين «التكنولوجي» هو الشخص الذي يجمع بين علم التقنية والعلوم التطبيقية في المجالات التطبيقية وفي نواحي الحياة العملية لا يتبع أي من نقابات أو منظمات مهندسين البرمجيات ولا يشترك في أي من مجالات التعليم وانتبه لخلط المفاهيم بين «هندسة الحاسبات» وهي إحدى فروع الهندسة الكهربائية ومهندس الحاسبات (متخصص في الإلكترونيات) يحصل على معلومات عامة إضافية في البرمجيات (غير متخصص في هندسة البرمجيات).
مقدمة عن العمل
عدليعمل مهندس البرمجيات على تنفيذ وببناء الحلول التقنية من خلال (عملية تطوير البرمجيات) دراسة ذات آلية معينة [20] وتخطيط لمصادر المشروع (Resource Planning) من حيث الموارد البشرية والفنية وأي متطلبات أخرى ضمن ميزانية (ميزانية (محاسبة)) محددة بشرط أن لا تخلو بمواصفات الجودة (ضمان الجودة) والأمان والخصوصية (خصوصية) وتضمن تكلفه مثاليه وأعلى كفائه ممكنة [21] بأحدث تكنولوجيا (تكنولوجيا) يجب أن يجتاز مهندس البرمجيات العديد من الدورات التدريبية (Professional Certification) الخاصة بإدارة مشاريع البرمجيات ومن أهمها دوره محترف إدارة المشاريع (محترف إدارة المشاريع) ومحترف البنية التحتية لتكنولوجيا المعلومات (مكتبة البنية التحتية للمعلوماتية) وغير ذلك.[22][23]
تاريخ مهنة مهندس البرمجيات
عدلاستُخدمت هندسة البرمجيات كمفهوم نظري من حين لآخر في أواخر الخمسينات وبداية الستينات من القرن الماضي. أما الاستخدام الرسمي الأول لهذا المصطلح فكان في مؤتمر عقد من قبل اللجنة العلمية في منظمة حلف شمال الأطلسي1968 حول البرمجيات، وقد أخذ هذا المصطلح بالانتشار منذ ذلك الحين ولاقى اهتماماً متزايداً في نواح مختلفة. عقد المؤتمر لمعالجة مايعرف «أزمة البرمجيات» والتي ظهرت بسبب عدم استخدام منهجية في التفكير (Software Development Process) عند بناء البرمجيات، مما أدى إلى ظهور أخطاء كثيرة خلال عملية بناء وصيانة البرمجيات، وبالتالي أصبحت البرمجيات تحتاج إلى وقت كبير لتطويرها ولصيانتها، وكلفة مالية عالية أكثر مما هو مخمن لها، وبعد تحمل التأخر في الوقت وتجاوز الميزانية كانت البرمجيات ذات كفاءة ضعيفة في إنجاز الوظائف المطلوبة، وقلة في الفعالية كذلك بعدم تلبية كافة المتطلبات بالشكل الكامل.[24]
الحلول التقنية
عدلفي هندسة البرمجيات، بناء النظام البرمجي ليس مجرد كتابة شفرة، وإنما هي عملية إنتاجية لها عدة مراحل أساسية وضرورية للحصول على المنتج، وهو البرنامج بأقل كلفة ممكنة وأفضل أداء محتمل. يطلق على هذه المراحل اسم دورة حياة النظام البرمجي (Software Lifecycle) التي قد يبدو بعضها ليس له علاقة بالبرمجة. وهناك الكثير من التصورات والنماذج في هندسة البرمجيات تصف عملية إنتاج برنامج والخطوات اللازمة لذلك. كما أن هذه الدورة خاضعة للتطوير دائمًا، حيث بالإضافة للدورات الكلاسيكية، ظهر مفهوم المنظومة المرنة (Agile Process) والتي تتخلي عن النموذج الثابت للمنظومة الكلاسيكية في سبيل المزيد من حرية الحركة للمشروع.[25]
نماذج من أعمال مهندس البرمجيات
عدلكتابة وثيقة الشروط الخارجية والداخلية
وثيقة الشروط الخارجية تُؤخذ من الزبون. تحتوي الوثيقة على متطلبات الزبون في ما يخص مواصفات البرنامج الذي يجب إنشاؤه. ثم تُحلل المتطلبات بشكل أولي ثم كتابة وثيقة شروط داخلية تحتوي على تفسير المواصفات التي يريدها الزبون بدقة أكبر، وبطريقة تتماشى مع مصطلحات المبرمجين. قد تكون طلبات الزبون متعارضة وفي هذه الحالة يُرجع إليه لتنقيح وثيقة الشروط. ثم يُحدّد عدد الساعات اللازمة للعمل وحساب التكلفة.[26]
التحليل
في هذه العملية تجمع المعلومات بدقة ثم تحدد المتطلبات والمهام التي سيقوم بها البرنامج، وتوصف هذه المهام بدقة تامة، كما تدرس الجدوى المرجوة من البرنامج، فالمستخدم مثلاً يضع تصورًا للبرنامج ليقوم بعمليات معينة، ومهمة مهندس البرمجيات في هذه المرحلة هي استخلاص هذه الأفكار وتحديدها؛ لذلك فهي تتطلب مهارة عالية في التعامل مع الزبائن، وقدرة على التحليل الصحيح. ينتج في نهاية هذه المرحلة وثيقة تدعى جدول الشروط والمواصفات دينامكاميد.[27]
التصميم
تصميم البرمجيات هي مرحلة من مراحل دورة حياة النظام، تساعدنا في تحديد كيفية حل المشكلة «كيف سنحل المشكلة؟»، والتخطيط للتوصل إلى حلول للمشكلة، والدخول في تفاصيل النظام. التصميم يحدد هيكلية وبنية النظام من خلال تجزأة النظام إلى مجموعة من الأنظمة الفرعية Sub-Systems مما يساهم في السيطرة على التعقيد في النظام System Complexity، وتحديد الواجهات ونوافذ المستخدم User Interfaces د، والمكونات Components، والوحدات Modules والبيانات للنظام كي يحقق النظام متطلبات الزبون. ونقوم بمرحلة التصميم باستخدام المتطلبات التي حددناها في مرحلة التحليل. خلال مرحلة التصميم يُوجِدُ التصميم الأمثل لنظام المعلومات الحاسوبي الذي يلبي احتياجات المستخدمين التي وُصفت في مرحلة التحليل. إن عملية التصميم في جوهرها هي عملية حل مشكلات، أي يجري البحث خلالها عن أفضل الحلول التصميمية لبناء نظم ذات أهداف محددة.[28]
الترميز (كتابة الكود)
تحول الخوارزميات والمخططات Diagrams التي أُنتجت في مرحلة التصميم إلى إحدى اللغات البرمجية، وذلك لإنتاج برنامج أو نظام قابل للاستخدام من قبل الزبون، يلبي احتياجته الموضحة في وثيقة الشروط. خلال هذه المرحلة تتم بعض الاختبارات test على بعض أجزاء النظام للتاكد من عمله بطريقة صحيحة، علمًا ان مرحلة الاختبار Testing هي مرحلة منفصلة يتم العمل عليها لاحقاً.[29]
الاختبار والتكاملية
تجمع الكتل مع بعضها ويختبر النظام للتأكد من موافقته لجدول الشروط والمواصفات، وخاصة إذا كانت الكتل قد كُتبت من قبل عدة أعضاء في الفريق.[30]
التوثيق
وهي مرحلة هامة من مراحل بناء النظام البرمجي حيث يتم توثيق البناء الداخلي للبرنامج؛ وذلك بغرض الصيانة والتطوير. يفضل عادة أن يترافق التوثيق مع كل مرحلة من المراحل السابقة واللاحقة، وأن يكون هناك فريق خاص يهتم بعملية التوثيق لجميع المشاكل والحلول التي يمكن أن تظهر أثناء بناء البرمجية. وبدون التوثيق قد يصل مصنع البرمجية إلى مرحلة لا يعود بعدها قادراً على متابعة صيانتها وتطويرها؛ مما يزيد الكلفة المادية والزمنية الخاصة بهذه البرمجية إلى حدود غير متوقعة، أو بمعنى آخر الفشل في بناء برمجية ذات جودة عالية ودورة حياة طويلة. وهناك أكثر من طريقة للتوثيق -توثيق المبرمج وهو ممكن أن يكون بأضافة تعليقات داخل الشفرة البرمجية. -توثيق المحلل بكتابة مستندات شرح لدورة البرنامج المستندية وخلافة. -توثيق مختبر النظام وفيها تُسجل نقاط الخلل في البرنامج.[31]
الصيانة والتطوير
إن هذه المرحلة هي المرحلة الأطول في حياة النظام البرمجي لبقاء النظام قادراً على مواكبة التطورات والمعدات الحديثة، جزءٌ من هذه المرحلة يكون في تصحيح الأخطاء، والجزء الآخر يكون في التطوير وإضافة تقنيات جديدة. إن هذه الخطوات كما نلاحظ مشابهة لخطوات الإنتاج في الهندسيات الأخرى.[32]
دور مهندس البرمجيات في المشاريع
عدلرغم أن الدور الأمثل لمهندس البرمجيات هو مدير المشروع (Project Manager) في المشاريع الصغيرة فإنه تبعًا لحجم المشروع قد يعمل ضمن فريق العمل في أي من مهام المشروع بعد اجتيازه الدورات التدريبية المناسبة [33] ومن أهمها مدير تكنولوجيا المعلومات (إدارة نظم المعلومات) ومسؤول شبكات المعلومات (مسؤول الشبكة) ومسؤول امن المعلومات (مدير النظام) ومسؤول قواعد البيانيات (مدير قاعدة بيانات) وهناك أيضا مهام أخرى مثل محلل نظم (محلل النظم) وفريق الفحص (فحص البرمجيات) وفريق دعم فني (دعم فني) وفريق المبرمجين (Programmers Team) وفريق الإدارة والبحث والتطوير (بحث وتطوير)
الاستشارات والتصميم
عدليستطيع مهندس البرمجيات أن يصمم وان يراقب (Software Audit) تنفيذ الحلول التقنية أن توفرت لديه الخبرة والمؤهلات التي تمكنه من ذلك والتي عادةً ما تكون الحصول على درجه علميه جامعية من المستوى الثالث «الماجستير» (Third-tier Degree) أو الرابع «الدكتوراه» (Fourth-tier Degree) في تخصص هندسة البرمجيات أو علوم الحاسب الالي أو تكنولوجيا المعلومات وعدد من سنوات الخبرة والتدريب ليسجيل كاستشاري في أحد النقابات المهنية (استشارة تقنية المعلومات) حيث يكون مؤهل ان يقدم تصميم هندسي للبرمجيات (معمارية برمجيات) ولتوضيح الفرق بين التصميم الهندسي للبرمجيات وتصميم البرمجيات (تصميم البرمجيات) نشير إلى الالتزام بالمعايير والمواصفات الموضوعة من النقابات والمنظمات العالمية المتخصصة في هذا الشأن ومن أهم النقابات الهندسية والمنظمات الدولية لتسجيل مهندس البرمجيات كاستشاري أو ما يُعرف بالمهندس المحلف في بريطانيا هي جمعية الهندسة والتقنية (جمعية الهندسة والتقنية) البريطانية [34]
مجالات وطبيعة عمل مهندس البرمجيات
عدلتتراوح تصاميم البرمجيات في درجة التعقيد والكفاءة فعلى سبيل المثال لا الحصر من التصاميم البسيطة، تصميم تطبيقات الهاتف الذكي (تطبيق محمول) وبرامج اداره الحاسوب اللوحي (نظام تشغيل) والألعاب (لعبة حاسوب) ومن التصاميم المعقدة، تصميم برامج التحكم (Micro Programming) وتصميم الحلول المتكامله لاداره مصنع أو محطه طاقة نوويه (Large scale Complex IT Systems) وهناك العديد من أنواع التصاميم الأخرى كبرامج الذكاء الاصطناعي (ذكاء اصطناعي) برامج الاله (روبوتية) وبرامج المحاكاة (محاكاة) والواقع الافتراضي (واقع افتراضي) وبرامج العلوم العصبية (علوم عصبية حاسوبية)، تتم تصاميم البرمجيات باستخدام آليات وأدوات علمية ومخططات تدفق البيانات (مخطط تدفق البيانات) مستندة على نظريات علوم الحاسب الآلي وتكنولوجيا المعلومات والفيزياء والرياضيات والاتصالات (اتصال عن بعد) والطاقة (طاقة) مراعياً التكلفة والجودة والأمان (أمن المعلومات)
الأسس الرياضية
عدلنظرية المخططات Graph theory
منطق رياضي Mathematical logic
نظرية الأنماط Type Theory
نظرية الأتمتةAutomata theory
نظرية الحسابات Computability theory
نظرية التعقيد الحسابي Computational complexity theory دراسة الحدود الأساسية للحوسبة (بالذات الزمن وسعات التخزين)
خوارزميات وبيانات
عدلتحليل الخوارزميات Analysis of algorithms
خوارزميات Algorithms دراسة عمليات شكلية لإنجاز التحسيب، ومدى فعالية هذه العمليات.
بنى البياناتData Structure تنظيم ومعالجة البيانات
أنظمة موزعة، ومتوازية، ومتواقتة
عدلتزامن (حوسبة) Concurrency
تشبيك حاسوبي Computer networking خوارزميات وبروتوكولات لنقل مضمون للبيانات لمسافات بعيدة مع تصحيح الأخطاء error correction
حوسبة متوازية Parallel computing حوسبة تستخدم عدة حواسب وعدة معالجات معا على التوازي
حوسبة موزعة Distributed computing
معمارية أو تكوين الحاسوب Computer architecture the design, organization, optimization and verification of a computer system, mostly about CPUs and Memory subsystem
أنظمة التشغيل / تنظيم الحاسوب Computer organization
برمجة الحاسوب Computer programming كتابة برامج باستخدام لغات برمجة
طرق صورية Formal methods طرق رياضية للوصف والاستنتاج حول تصميم البرمجيات software designs.
هندسة برمجيات Software engineering مباديء وممارسة تصميم، تطوير، وفحص البرامج.
تطوير البرمجيات Software development
هندسة عكسيةReverse Engineering
لغات البرمجة والمترجمات البرمجية
عدللغات البرمجة للحاسوب متدنية المستوى:
- لغة الآلة (Machine Language)
- لغة التجميع(Assembly Language)
أمثلة لبعض لغات البرمجة للحاسوب عالية المستوى:
- سي
- سي++
- سي
- جافا
- ليسب
- برولوغ
- بايثون
- سي شارب
- فورتران
- روبي
- أدا
- دلفي
- بيسك
- كوبول
- باسكال
- إس كيو إل
- بي إتش بي
- جافا سكربت
- جيم
- لغة لوغو Logo
- أطلس أوتوكود
- لغة دارت
الذكاء الاصطناعي
عدلذكاء اصطناعي Artificial intelligence
استنتاج مؤتمت Automated reasoning
روبوتية أو صتاعة الرجل الآلي Robotics
رؤية حاسوبية Computer vision
تعلم الآلة Machine Learning
حياة اصطناعية Artificial Life
معالجة اللغات الطبيعية / لسانيات حاسوبية
الاتصالات
عدلصوت الحاسوب Computer audio
رسوميات حاسوبية
عدلرسوميات حاسوبيةComputer graphics
معالجة الصور Image processing
التفاعل الإنساني الحاسوبي
عدلحوسبة علمية
عدلعلوم عصبية حاسوبية
رياضيات رمزية Symbolic mathematics
مهام مهندس البرمجيات
عدليشترط في مهندس البرمجيات أَيٍّ كان دوره في المشروع الالتزام بمعايير هندسة البرمجيات خلال المشروع (التصميم أو التنفيذ) حيث يمثل هذا الفرق الأساسي بينه وبين المبرمج أو مطور البرمجيات الذي يقوم بتنفيذ البرنامج دون الحاجة للالتزام بأي معايير وتجد الكثير من الأطفال أو خرّيجي التخصّصات الأخرى يمارس عمل البرمجة بحرية وقد يصل العديد منهم إلى مراحل متقدمة ومهارة مبهرة.
النقابات المهنية والمنظمات الدولية
عدليعمل مهندسين البرمجيات حفاظا على أفضل كفاءه ومهنية من خلال نقبات ومنظمات عالمية تعمل على توفير وتنظيم بيئة مهنية مناسبة ومعايير عالمية لمهندسين البرمجيات ومن أهم هذه المنظمات منظمة (IEEE) الإمريكية ومنظمه (BCS) البريطانية حيث تقوم النقابات المهنية بتنظيم بيئه العمل لمهندسين البرمجيات بأحد الأشكال التالية الأول من خلال نقابة عامة لكل المهن الهندسية تتولى مسؤولية تسجيل مهندسين البرمجيات ومراقبه التخصصات الدراسية الاكاديمية والمهنية التي تدرس في الجامعات والمعاهد لتؤهل خرجين هندسه البرمجيات وتعمل على حمايه اللقب المهني وترخيص مزاولة المهنة الخاص بهم وغير ذلك كما هو الحال في مجلس المهندسين في بريطانيا (UK Engineering Council) والدول العاملة بسياسات مشابهه وفي بعض الدول الاخرالثاني من خلال نقابة مستقلة لخرجين وخبراء البرمجيات وتكنولوجيا المعلومات غالبًا ما تكون تحت اسم مجتمع الحاسوب مضاف اليها اسم البلد وتعمل على تحقيق أفضل معايير المهنة اضافه إلى جميع ما سبق ذكره من مهام النقابات المهنية كحمايةٍ للّقب المهني لمهندس البرمجيات وخلافه كما هو الحال في مجتمع الحاسوب في أستراليا (Australian Computer Society) والدول العاملة بسياسات مشابهة.
التعليم الأكاديمي
عدلتختلف أنظمة التعليم من بلد إلى آخر وتعرف باسم سلم التعليم أو هيكل التعليم مثل هيكل التعليم (AQF) في أستراليا [35] واحيانا من ولايه إلى ولايه في مده الدراسة وأسماء الشهادات وطرق التعليم والامتحانات لكنها جميعا تشترك في منح الخريجين شهادات جامعية، في نظام التعليم البريطاني التعليم الجامعي ينقسم إلى اربع مستويات حيث يفضل ولا يشترط وجود شهادة المستوى السابق لدخول المستوى التالي بحسب سلم التعليم / هيكل المؤهلات في بريطانيا (FHEQ UK)، تنوية نظام التعليم البريطاني هو نفس النظام الدولي المستخدم في الهندسة البحرية في جميع دول العالم والمستخدم أيضًا في الدراسة في الأكاديمية البحرية في مصر، ووفقا للسنة ومجلس التصنيف شهادات المستوى الأول أو شهادات مرتبطة بالدورة الأولى (Higher Diploma) (Foundation Degree) مده الدراسة من سنة إلى سنتين وشهادات المستوى الثاني أو شهادات الدورة الأولى (Bachelor Degree) و(Honours Degree) مده الدراسة من ثلاث سنوات إلى أربع سنوات شهادات المستوى الثالث أو شهادات الدورة الثانية (Masters Degree) مده الدراسة من سنة إلى سنتين وشهادات المستوى الرابع أو شهادات الدورة الثالثة (دكتوراه) مدة الدراسة من سنتين إلى ثلاث سنوات [36]، نماذج
شهادات المستوى الأول (Higher Diploma)
عدلمدة الدراسة سنتين في جامعة ويلز ترينتي سانت دايفد، بريطانيا[37] وقد تصل مدة الدراسة لهذه الشهادة إلى ثلاث سنوات في جامعات أخرى.[38] ملاحظة: شهادات المستوى الأول «الدبلوم العالي» مبنية على أساس شهادات المستوى الثاني (البكالوريوس أو البكالوريوس مع مرتبت الشرف) وفي حال أراد الطالب الانتقال إلى المستوى التالي يشترط في معظم الجامعات البريطانية إكمال سنة واحدة [39] إضافة إلى ما سبق دراسته إما في حال الانتقال إلى شهادات المستوى الثالث (الماجستير) فتقبل الخبرة العملية الموثقة أو / ودراسة إضافية وتقبل النقابات المهنية في بريطانيا الحاصلين على أي من شهادات المستوى الأول التسجيل تحت مسمى مهندس مسجل (جزئيا) إذا لم تتوفر أي خبرات عملية حيث أن شروط القبول عُدِّلَتْ عام 1999 م [40] للمهندس المسجل أن يكون حاصل على شهاده البكالوريوس أو بكالوريوس مع مرتبة الشرف أو ما يعادلها إضافة إلى عدد من سنين الخبرة العملية مثل «دبلوم الخريجين» الذي يعادل البكالوريوس مع مرتبة الشرف في سلم التعليم البريطاني (Professional Graduate Diploma in IT) [41] و(Graduate Diploma in Engineering) [42][43] المتعارف عليه أن الحصول على بكالوريوس مع مرتبة الشرف يكون بدراسة سنة إضافية بعد الحصول على درجة البكالوريوس [44]
Modules of Year 1
- Academic & Employ-ability Skills, معمارية الحاسوب
- Introduction to Programming
- Software Development
- Maths for Software Engineers
- هندسة المعلومات
- Introduction to Web Development
Modules of Year 2
- Project Algorithms
- بنية بيانات & Formal Methods
- Software Engineering Principles
- Systems Software & Multi-User Applications Engineering
- Database Management Systems
شهادات المستوى الثاني (Bachelor Degree)
عدلBSc Hons in هندسة البرمجيات وللتوضيح الHons إشارة إلى أن شهادة البكالوريوس هي مع مرتبة الشرف وهي أعلى في السلم التعليمي من البكالوريوس التقليدي الذي يعادل الدبلوم العالي البريطاني [45] كما يوضح تصنيف الشهادات في بريطانيا، مدة الدراسة ثلاث سنوات في جامعة نوتنغهام (بالإنجليزية: جامعة نوتنغهام) هي جامعة بحثية إنجليزية عامة في مدينة نوتنغهام الإنجليزية. صدر الميثاق الملكي بإنشائها سنة 1948، غير أنها في الواقع خرجت من رحم مؤسسة تعليمية أقدم، هي الكلية الجامعية بنوتنغهام (بالإنجليزية: University College, Nottingham)، التي أنشئت سنة 1881. توسعت جامعة نوتنغهام مؤخرًا وافتتحت فروعًا لها في كل من نينغبو بالصين وكوالالمبور بماليزيا، وهو ما جعل جريدة التايمز تصفها بأنها «الجامعة العالمية الحقيقية الوحيدة في بريطانيا».
Modules of Year 1
- معمارية الحاسوب
- Introduction to Functional Programming
- Maths and خوارزمية for Computer Science
- Introduction to Programming
- قاعدة بيانات
- Introduction to ذكاء اصطناعي
- Introduction to Software Engineering
Modules of Year 2
- Algorithms and Data Structures
- Software Engineering Group Project
- واجهة مستخدم رسومية
- Software Engineering Methodologies
Modules of Year 3
- Individual Dissertation Software Engineering
- Software Quality Management,
- Computers in the World
Optional
شهادات المستوى الثالث (Masters Degree)
عدلMSc in هندسة البرمجيات، مده الدراسة سنتين جامعة أوكسفورد (بالإنجليزية: جامعة أوكسفورد) (باللاتينية: University Oxoniensis) تعدّ أقدم جامعة في العالم الغربي المتحدث بالإنجليزية ومن خيرة ورابع أفضل جامعات العالم والجامعة الأولى في المملكة المتحدة على مؤشر تايم للجامعات لعام 2011-2012. وتقع الجامعة في مدينة أكسفورد في إنجلترا، يختار الباحث مجموعة من المواد من المجموعات التالية
Group 1 - Software Engineering Methods
- Software Engineering Mathematics SEM
- Specification and Design SDE
- Concurrency and Distributed Systems CDS
- Advanced Concurrency/ Model Checking MCH
- Performance Modelling PMO
- Software Development Management SDM
- Agile Methods AGM
- Interaction Design IDE
- Requirements Engineering REN
- Management of Risk and Quality MRQ
- Process Quality and Improvement PRO
- Safety Critical Systems SCS
- Enterprise Architecture EAR
Group 2 - Software Engineering Tools
- Object-Oriented Design OOD
- برمجة كائنية التوجه OOP
- Design Patterns DPA
- فحص البرمجيات STE
- Database Design DAT
- برمجة وظيفية FPR
- Concurrent Programming CPR
- تطوير البرمجيات أجايل APE
- لغة الترميز القابلة للامتداد XML
- البنية الخدمية SOA
- Mobile and Sensor Networks MOB
Group 3 - Software and Systems Security
- Security Principles SPR
- Secure and متانة (علوم الحاسب) SRO
- Trusted Computing Infrastructure TCI
- Design for Security DES
- Risk Analysis and Management RIS
- People and Security PAS
- أمن الشبكات NES
- أمن الحوسبة السحابية CLS
- العلوم الجنائية المتعلقة بالحاسب الآلي FOR
- Data Security and Privacy DAS
- Security and Incident Management SIM
- Building Information Governance BIG
- نظام تشغيل هواتف محمولة Security MSS
- Security in شبكة لاسلكية SWN
PhD (Research) in هندسة البرمجيات مده الدراسة من سنتين إلى ثلاث سنوات في جامعة لستر (بالإنجليزية: Lester University) إحدى الجامعات البريطانية الرائدة، تقع في مدينة ليستر في وسط أنجلترا. احتلت في عام 2006 المركز 18 من بين أكثر من 100 جامعة بريطانية حسب تصنيف دليل التايمز لأحسن الجامعات البريطانية والمركز 24 حسب تصنيف جريدة الغارديان. وفي عام 2013 احتلت الجامعة المركز 13 حسب تصنيف الغارديان بين أكثر من 100 جامعة بريطانية
Topics on Software Engineering
- Abstractions for mobile distributed systems
- Programming language semantics
- Algorithmic Aspects of Comunication Networks
- Modelling and analysis of social networks by graph transformation
- Advanced Software Modularity
- استدامة
التدريب المهني والشهادات الحرفية
عدلقائمة باهم الشهادات العالمية في مجال البرمجيات وتقنية المعلومات
إدارة المشاريع
عدل- Project Management Professional PMP
- ITIL v3 Foundation
- (IPPM)International Professional Project Manager
أمن المعلومات
عدل- CISSP: Certified Information Systems Security Professional
الشبكات
عدل- CCDA: Cisco Certified Design Associate
- نوفيل نت وار
- CCNA) Cisco Certified Network Associate)
- CCNP)(Cisco Certified Network Professional)
- CCIE ) Cisco Certified Internet-work Expert)
- Microsoft Certified System Administrator
قواعد البيانات
عدل- OCA Oracle Certified Associate
- OCP Oracle Certified Professional
OCP Oracle Certified Professional
- OCM Oracle Certified Master
أنظمة التشغيل
عدل- Microsoft Certified Professional
- MCDBA Microsoft Certified Database Administrator
البرمجيات
عدل- Sun Certified Programmer for Java
- Sun Certified Enterprise Architect for J2EE
- MCSD Microsoft Certified Solution Developer
- MCAD Microsoft Certified Application Developer
مدرب تقنية معلومات
عدل- MCT Microsoft Certified TrainerCTT+ Certified Technical Trainer كومبتيا
التجارة الإلكترونية
عدلالاختبارات الدولية
عدلالاختبارات الدولية لتقييم وتسجيل مهندسين البرمجيات منشرة انتشار واسع في جميع دول العالم حيث تضع الدول المعايير لضمان الجودة المهنية والعلمية في هذا المجال ونذكر من أهم هذه الاختبرات التابعة مباشرة للقطاع الحكومي في الدولة:
اليابان
عدل- اختبار مهندس تكنولوجيا المعلومات في اليابان بدأ عام 1969 م وأصبح رسميًّا الاختبار الوطني لهذه المهنة عام 1970 م[46]
ماليزيا ودول الكومنويلث
عدل- اختبار مهندس أنظمة الحاسوب في ماليزيا التابع لمنظمة محترفي تكنولوجيا المعلومات الهيئة الحكومية المخوله لمتابعة شؤون مهن البرمجيات[47]
أستراليا
عدل- اختبار وتقييم مهندس برمجيات في مجتمع الحاسوب في أستراليا [48] المجلس الحكومي الرسمي لتقييم وتسجيل مهن البرمجيات وتكنولوجيا المعلومات [49]
بريطانيا ودول أوروبا
عدل- اختبار وتقييم منظمة تكنولوجيا المعلومات التابعة لمجتمع الحاسوب البريطاني [50] ومجلس المهندسين البريطاني المخول الرسمي لتسجيل مهندسين بريطانيا [51]
ملاحظه: المهندس المسجل في بريطانيا معترف به مهندس ممارس لعمله في كل دول الاتحاد الأوروبي[52]
قطاع الاتصالات وتكنولوجيا المعلومات
عدلتكمن أهمية هندسة البرمجيات في قطاع الاتصالات وتكنولوجيا المعلومات في تمكين وتفعيل الخدمات الالكترونية والحلول التقنية لتقديم خدمات أفضل ذات مواصافات قياسية وامكانيات مختلفة جيل جديد من الحلول الرقمية ومثال ذلك:
التعليم الإلكترونى: التعليم وتكنولوجيا الاتصالات والمعلومات تساعدنا على وجه الدقة في التعرف على قدراتنا كبشر، كما تمكننا من فهم العالم من حولنا والتواصل معه عبر طرق جديدة تتجاوز قيود الزمان والمكان وربط وبناء مجتمعات تتقاسم تبادل المعرفة. وبدعم من تكنولوجيا الاتصالات والمعلومات أصبح التعليم ملبيا للاحتياجات الشخصية وأكثر قدرة على كسر الحواجز وزيادة الفرص.
التعاملات الإلكترونية: توفير التكنولوجيا التي تساعدها على دخول الأسواق الجديدة لتصبح أكثر قدرة على المنافسة محليًّا وعالميًّا.
الصحة الإلكترونية: مجال الخدمات الصحية الإلكترونية نظام صحي يتمتع بالكفاءة وسرعة الاستجابة والنتائج الفعالة
الحكومة الإلكترونية: بفضل الحكومة الإلكترونية، أصبح باستطاعة الفريق الواحد من الإفراد مشاطرة وتبادل المعلومات لتحقيق الفائدة لكافة الجمهور وزيادة الخدمات الإلكترونية للمواطنين والشركات مع رفع كفاءة هذه الخدمات وتيسر سبل الوصول إليها توفير هيئات حكومية متكاملة وذات كفاءة عالية من خلال الاستخدام المبدع لتكنولوجيا الاتصالات والمعلومات زيادة شفافية المؤسسات الحكومية وتشجيع المشاركة في العملية الديمقراطي
الأمن الإلكترونى: توفير الحماية لنظم تكنولوجيا المعلومات والاتصالات
التواصل الإعلامى الرقمي: بداية اندماج التكنولوجيا والإعلام في مجتمع معلوماتي شامل يتفاعل أفراده مع التكنولوجيا التي أصبحت جزئ لا يتجزأ من حياتهم اليومية توفر لهم سبلاً جديدة ومبتكرة للعمل والتواصل فيما بينهم بشكل يلهم حياتهم ويثريها.
المؤتمرات الدولية
عدلهناك ما يزيد عن 2000 مؤتمر سنوي في مختلف مجالات تقنية المعلومات وهندسة البرمجيات في ما يلي تفصيل لاهم المواضيع والمؤتمرات لعام 2014م ويمكن الاطلاع على التفاصيل في موقع قوائم المؤتمرات الدولية [53]
مؤتمرات هندسية
عدل- Software for Engineering 6
- Computational Engineering 1
مؤتمرات تقتية المعلومات
عدل- Information Technology 1272
مؤتمرات الحاسوب
عدل- Artificial Intelligence 649
- Automation 214
- Computer Arts 30
- Human-Computer Interaction 15
- Internet 846
- Microprocessors 40
- Mobile Computing 471
- Multimedia 264
- Networking 947
- Object Oriented 66
- Open Source 161
- Operating Systems 95
- Parallel Computing 150
- Programming 17
- Programming Languages 176
- Robotics 173
- Security 909
- Software 43
- Unix 14
مؤتمرات علوم الحاسوب
عدل- Computer Science 1934
مشاريع عملاقة في قطاع تكنولوجيا المعلومات
عدليمكن تعريف المشاريع العملاقة على أنها:
المشاريع التي تزيد كلفتها عن بليون دولار أمريكي، وتجذب انتباه الرأي العام نظراً لتأثيرها الهام على المجتمعات والبيئة الطبيعية والموازنات . يمكن أن تكون المشاريع أيضاً «مبادرات ذاتية، ومكلفة جداً، وعامة للجمهور» تحتاج المشاريع العملاقة إلى رعاية في العملية التنموية للحد من المخاطر التي قد تعترض تنفيذ المشروع والذي قد يؤدي إلى تغيير الاستراتيجيات. تشمل الأمثلة على المشاريع الكبرى الجسور والأنفاق والطرق السريعة والسكك الحديدية والمطارات والموانئ ومحطات توليد الكهرباء والسدود ومشاريع الصرف الصحي والمناطق الاقتصادية الخاصة ومشاريع استخراج النفط والغاز الطبيعي والمباني العامة وأنظمة تقنية المعلومات ومشاريع الفضاء ونظم الأسلحة. من أهم المشاريع العملاقة في قطاع تكنولوجيا المعلومات:
- سيبرجايا (سايبرجايا)، ماليزيا
- تمكين شبكات العلوم: تعدد العلم الخاص بالبنية التحتية للحوسبة الشبكية لمنطقة البحوث الأوروبية. هي بالفعل أكبر بنية تحتية لشبكة علوم متعددة في العالم، ومن المتوقع أن توسع بشكل كبير بعد الانتهاء من مصادم الهدرونات الكبير.
- هيئة الخدمات الصحية الوطنية (المملكة المتحدة) للحفاظ على صحة المواطنين.
- الانترانت الخاص ببحرية الولايات المتحدة وقوات مشاة بحرية الولايات المتحدة ويُستخدم بمثابة أحد مصادر تكنولوجيا المعلومات الخاصة.
- أنظمة الآي بي إم /360
- الشبكة الوطنية ذات النطاق الواسع، وهي شبكة FTTP قيد الإنشاء في أستراليا، واقتراح لربط 93٪ من مباني الاتصالات بألياف بصرية مع الباقي مع اللاسلكية الثابتة أو الأقمار الصناعية
- غوجارات التمويل الدولي تك-سيتي، ولاية غوجارات، الهند
- مثلث بارك البحثي، نورث كارولينا، أكبر حديقة أبحاث في العالم بالولايات المتحدة الأمريكية
- مجمع كامينغز للبحوث، ألاباما، الولايات المتحدة الأمريكية
- آدهار الهند هو 12 رقم متميز لتحديد الهوية (UID) تستخدمها السلطة الهندية لتحديد الهوية وتُصدر لجميع المقيمين الهنود. يتم تخزين رقم UID في قاعدة بيانات مركزية وربطها بالتركيبة السكانية والمعلومات الأساسية الحيوية - الصور الفوتوغرافية وبصمات الأصابع العشرة وقزحية العين - لكل فرد.
- بيدموند ترايد بارك للبحوث، نورث كارولينا، الولايات المتحدة.
انظر أيضًا
عدل- إنترنت
- برمجيات/برامج
- هندسة البرمجيات
- نظم التشغيل
- عتاد الحاسوب
- الوسائط المتعددة
- يوتابايت
- الشبكات النورونية
- نظرية الألعاب
- علم المحاكاة
- خوارزميات وراثية
- رخص الكترونية
- لغات البرمجة
- وحدات تخزين المعلومات
- برمجيات النظام
- معلوماتية حيوية Bioinformatics
- معلوماتية طبية Biomedical informatics
- معلوماتية كيميائية Cheminformatics
- معلوماتية صحية Health informatics
- معلوماتية عصبية Neuroinformatics
- خبير تكنولوجى كهربائى Electrical technologist
المراجع
عدل- ^ كل ما يحتاج المهندس معرفته عن هندسة البرمجيات نسخة محفوظة 20 ديسمبر 2014 على موقع واي باك مشين.
- ^ طبيعة عمل مهندس انظمة الحاسوب جامعة جيمس كووك في أستراليا نسخة محفوظة 03 نوفمبر 2014 على موقع واي باك مشين.
- ^ طبيعة عمل مهندس البرمجيات موقع بوابة التعليم نسخة محفوظة 10 فبراير 2015 على موقع واي باك مشين.
- ^ طبيعة عمل مهندس البرمجيات موقع جرب الهندسة، IEEE وIBM نسخة محفوظة 21 يوليو 2017 على موقع واي باك مشين.
- ^ كيف تختار مهندس برمجيات نسخة محفوظة 14 ديسمبر 2014 على موقع واي باك مشين.
- ^ مستويات التعليم في أستراليا [وصلة مكسورة] نسخة محفوظة 22 مارس 2017 على موقع واي باك مشين.
- ^ السلم التعليمي للمؤهلات في أوروبا نسخة محفوظة 04 نوفمبر 2014 على موقع واي باك مشين.
- ^ شهادات المستوى الأول (الدبلوم العالي) جامعة ستفوردشير بريطانيا [وصلة مكسورة] Engineering HND EDEXCEL UG CS_tcm44-36699.pdf نسخة محفوظة 3 نوفمبر 2014 على موقع واي باك مشين.
- ^ شهادات المستوى الأول (الدبلوم العالي) جامعة ويلز سانت ديفيد بريطانيا نسخة محفوظة 09 نوفمبر 2016 على موقع واي باك مشين.
- ^ شهادات المستوى الأول (الدبلوم العالي) جامعة ويلز الجنوبية بريفسجول بريطانيا [وصلة مكسورة] نسخة محفوظة 03 نوفمبر 2014 على موقع واي باك مشين.
- ^ شهادات المستوى الثاني (البكالوريوس) جامعة تون عبد الرازق ماليزيا نسخة محفوظة 05 مارس 2016 على موقع واي باك مشين. [وصلة مكسورة]
- ^ شهادات المستوى الثاني (البكالوريوس) جامعة موناش أستراليا نسخة محفوظة 27 أكتوبر 2015 على موقع واي باك مشين.
- ^ لوائح وأنظمة مهنة مهندس البرمجيات نسخة محفوظة 03 أغسطس 2017 على موقع واي باك مشين.
- ^ هل يحتاج مهندس البرمجيات لرخصة لممارسة عملة نسخة محفوظة 07 سبتمبر 2017 على موقع واي باك مشين.
- ^ تسجيل مهندس البرمجيات في كندا نسخة محفوظة 10 مارس 2016 على موقع واي باك مشين.
- ^ نظام التعليم في كندا نسخة محفوظة 20 أبريل 2016 على موقع واي باك مشين.
- ^ نظام التعليم في الولايات المتحدة الأمريكية نسخة محفوظة 15 يوليو 2017 على موقع واي باك مشين.
- ^ معايير الحكومة الأسترالية والحكومة النيوزلندية في تقييم مهندس البرمجيات نسخة محفوظة 22 فبراير 2014 على موقع واي باك مشين.
- ^ مقارنة انظمة التعليم بين دول العالم نسخة محفوظة 10 يناير 2017 على موقع واي باك مشين.
- ^ شرح كتاب نظريات هندسة البرمجيات، أرشيف العلوم الهندسية نسخة محفوظة 24 سبتمبر 2015 على موقع واي باك مشين.
- ^ أساسيات هندسة البرمجيات - ملخص نسخة محفوظة 4 مايو 2020 على موقع واي باك مشين.
- ^ قائمة أهم دورات هندسة البرمجيات تقدم مجانًا نسخة محفوظة 01 مارس 2015 على موقع واي باك مشين.
- ^ دورات تدريبية لتقنية المعلومات نسخة محفوظة 07 سبتمبر 2017 على موقع واي باك مشين.
- ^ تاريخ هندسة البرمجيات
- ^ مراحل بناء النظام البرمجي
- ^ كتابة وثيقة الشروط الخارجية والداخلية
- ^ التحليلٍ
- ^ التصميم
- ^ الترميز(كتابة الكود)
- ^ الاختبار والتكاملية
- ^ التوثيق
- ^ الصيانة والتطوير
- ^ تفاصيل مهام وأدوار فريق عمل مشاريع البرمجيات نسخة محفوظة 06 ديسمبر 2014 على موقع واي باك مشين.
- ^ تسجيل مهندس البرمجيات الاستشاري كمهندس محلف نسخة محفوظة 03 فبراير 2018 على موقع واي باك مشين.
- ^ تصنيف الشهادات ومستوياتها في أستراليا
- ^ هيكل المؤهلات العليا بريطانيا نسخة محفوظة 29 أكتوبر 2013 على موقع واي باك مشين.
- ^ المواد الدراسية لشهادة الدبلوم العالي في هندسة البرمجيات جامعة ويلز سانت دايفد، بريطانيا نسخة محفوظة 09 نوفمبر 2016 على موقع واي باك مشين.
- ^ قائمة الجامعات التي تدرس شهادات الدبلوم العالي المعترف بها من مجلس المهندسين البريطاني [وصلة مكسورة] نسخة محفوظة 11 مايو 2015 على موقع واي باك مشين.
- ^ شرح شهادات المستوى الاول نسخة محفوظة 14 يوليو 2014 على موقع واي باك مشين.
- ^ تعديلات مجلس المهندسين البريطاني عام 1999 م [وصلة مكسورة] نسخة محفوظة 01 مايو 2015 على موقع واي باك مشين.
- ^ دبلوم الخريجين البريطاني في تقنية المعلومات نسخة محفوظة 16 يوليو 2017 على موقع واي باك مشين.
- ^ دبلوم الخريجين في بريطانيا، شهادات تعادل بكالوريوس هندسة مع مرتبة الشرف نسخة محفوظة 11 يوليو 2017 على موقع واي باك مشين.
- ^ دبلوم الخريجين البريطاني في الهندسة نسخة محفوظة 08 يوليو 2017 على موقع واي باك مشين.
- ^ تصنيف الشهادات حسب الدولة ومقارنة أنظمة التعليم بين دول الاتحاد الأوروبي نسخة محفوظة 15 يوليو 2014 على موقع واي باك مشين.
- ^ تصنيف الشهادات البريطانية
- ^ اختبار مهندسين البرمجيات في اليابان نسخة محفوظة 02 سبتمبر 2017 على موقع واي باك مشين.
- ^ اختبار مهندسين البرمجيات في ماليزيا نسخة محفوظة 28 أكتوبر 2015 على موقع واي باك مشين.
- ^ تسجيل مهندسين البرمجيات أستراليا [وصلة مكسورة] نسخة محفوظة 23 أغسطس 2016 على موقع واي باك مشين.
- ^ تقييم مهندس برمجيات في مجتمع الحاسوب في أستراليانسخة محفوظة 10 مارس 2015 على موقع واي باك مشين.
- ^ تسجيل مهندسين البرمجيات بريطانيا نسخة محفوظة 10 يوليو 2017 على موقع واي باك مشين.
- ^ شهادات تأهيل مهندس تكنولوجيا المعلومات في بريطانيا للتسجيل كمهندس استشاري نسخة محفوظة 08 يوليو 2017 على موقع واي باك مشين.
- ^ تسجيل مهندسين البرمجيات بريطانيا [وصلة مكسورة] نسخة محفوظة 10 مايو 2015 على موقع واي باك مشين.
- ^ قوائم المؤتمرات الدولية نسخة محفوظة 13 ديسمبر 2017 على موقع واي باك مشين.
مهندس برمجيات في المشاريع الشقيقة: | |
|