ملخص(1) هندسة البرمجيات
أ.طروب أحمد مصطفى سعد
الوحدة الأولى
مقدمة في هندسة البرمجيات Introduction To Software Engineering
أهداف الوحدة
•تعريف المفاهيم الأساسية و المصطلحات المستخدمة في هندسة البرمجيات.
•تتبع تطور هندسة البرمجيات و مواصفاتها.
•توضيح الصفات الجيدة للبرمجيات.
•تحديد العلاقة بين المراحل المختلفة لتطوير أنظمة البرمجيات، و دورة حياة نظام البرمجيات.
•تعريف مفاهيم البرمجة الكينونية و بعض مصطلحاتها و ايضاح مزاياها.
• مناقشة أساسيات مخططات انسياب التحكم.
مفاهيم عامة في هندسة البرمجيات
•النظام : هو مجموعة من العناصر والقواعد المترابطة التي تعمل معاً لأداء مهمة.حيث من الممكن ان يكون النظام كبيراً ومعقداً,يتراوح ما بين منظومة صاروخية معقدة ومتقدمة,الى نظام صغير مثل أداء الوضوء.
•هندسة البرمجيات : هي عملية بناء نظام متعدد الاجزاء بوساطة عدد من المختصين.
... تابع
•هو ذلك الفرع الهندسي الذي يعنى بدراسة جميع جوانب انتاج البرمجيات.
ما الفرق بين البرنامج والبرمجية؟
•مصطلح البرمجية أعم من مصطلح البرنامج حيث أن البرمجية الواحدة تحتوي على عدة برامج.
• البرمجية هي مجموعة من البرامج والوثائق المترافقة معها.
... تابع
•تنقسم المنتجات البرمجية الى نوعين أساسيين:
–المنتجات العامة
–المنتجات الخاصة
•ما الفرق بين هندسة الأنظمة وهندسة البرمجيات؟
– هندسة الأنظمة تشتمل على جميع جوانب تطوير الأنظمة الحاسوبية ومنها Hardware و البرمجيات و العمليات و الاشخاص، وبالتالي فان هندسة البرمجيات هي جزء من هندسة الأنظمة.
... تابع
•ما الفرق بين عملية هندسة البرمجيات وعملية البرمجة؟
–تختلف هندسة البرمجيات عن البرمجة، المبرمج وحده يكتب برنامجاً كاملاً بينما مهندس البرمجيات يعتني بجزء من نظام متكامل لينضم هذا الجزء الى أجزاء يعتني بها مهندسون برمجيات آخرون، كما يمكن تعديل جزء مكتوب من طرف غير الذي كتبه.
– البرمجية يمكن أن تكون عملاً فردياً بينما هندسة البرمجيات عمل فريق.
تطور هندسة البرمجيات
•بدأت صناعة البرمجيات في أواخر الستينات وكانت تعاني من:
–التكاليف الباهظة لتطوير البرمجيات.
–الجهد الكبير المبذول.
–عدم امكانية حساب الفترة الزمنية للمشروع.
•تسبب ذلك في العجز عن:
–تنفيذ المشروع في الوقت المحدد، تقليل التكاليف الباهظة، انتاج برمجيات ذات جودة عالية.
... تابع
•العوامل التي ساعدت على تبني مفهوم هندسة البرمجيات:
–ارتفاع تكاليف صناعة البرمجيات مقارنة مع المكونات المادية للحاسوب.
–الدور المتزايد لصيانة البرمجيات.
–التقدم السريع في التقنيات المادية للحواسيب.
–الطلب المتزايد على البرمجيات.
–التقدم في أساليب بناء البرمجيات.
– الطلب على البرمجيات الكبيرة والمعقدة.
... تابع
•العوامل السابقة ساعدت على تبني اسس علمية جديدة في تطوير هندسة البرمجيات,مثل :-
•أولاً:المصداقية Reliability(درجة الاعتماد على البرمجيات)
أي خلو البرمجيات من الاخطاء بحيث تطبق بثقة وعدم الخوف من نتائج خاطئة وأيضا ضمان تشغيل البرمجيات باحتمال قليل جدا من التعرض للعطب او التوقف عن العمل.
أي خلو البرمجيات من الاخطاء بحيث تطبق بثقة وعدم الخوف من نتائج خاطئة وأيضا ضمان تشغيل البرمجيات باحتمال قليل جدا من التعرض للعطب او التوقف عن العمل.
أي خلو البرمجيات من الاخطاء بحيث تطبق بثقة وعدم الخوف من نتائج خاطئة وأيضا ضمان تشغيل البرمجيات باحتمال قليل جدا من التعرض للعطب او التوقف عن العمل.
... تابع
•يمكن تحقيق المصداقية (الاعتمادية) بثلاث طرق :
تطوير برمجيات خالية من الاخطاء.
تطوير برمجيات استثنائية تمكن البرمجيات من اداء العمل.
الكشف عن الاخطاء.
... تابع
•ثانيا:سهولة القراءة Readability
أي تجنب الاختصارات الغير الواضحة في كتابة البرامج واستخدام أسماء تعكس المسميات.
•تحقيقاً لذلك اتجهت الأنظار الى مفهوم البرامج الفرعية وكتابتها على أجزاء متعددة يتم وضعها مع بعضها البعض وتكوين برمجية متكاملة، كذلك استخدام مفهوم برمجة الكيانات.
• كذلك استخدام الأفعال في تسمية البرامج الفرعية والأسماء في تسمية المتغيرات تحقق Readability
... تابع
•ثالثا:جودة البرمجيات Software Quality
تعني بناء برمجيات تؤدي المهمات المطلوبة للجهة المستفيدة منها بكفاءة عالية, وتلتزم بالمقاييس المتبعة, وتحقق خصائص البرمجيات المتعارف عليها بين مراكز صناعة البرمجيات.
... تابع
... تابع
•مفهوم الجودة لدى الجهات ذات العلاقة
• ان الهدف الرئيس من هندسة البرمجيات هو انتاج انظمة برمجيات ذات جودة عالية,ويختلف مفهوم الجودة من جهة اخرى,فعندما تبدأ مرحلة تشغيل نظام البرمجيات,فإن المفاهيم تتداخل بين ثلاث جهات.
... تابع
صفات البرمجيات الجيدة
البرمجيات الاقصر هي الأيسر متابعة.
تفضيل البرمجيات ذات القرارات الأقل.
تجنب تداخل القرارات.
التحديد الجيد لتركيب البيانات.
الإكثار من التوضيح والشرح.
الانسجام.
التكامل.
الكفاءة.
الفاعلية.
دورة حياة نظام البرمجيات ومراحل تطويره
•وهي مجموعة من الانشطة التي تبدأ منذ بداية التفكير بالبرمجية,مروراً بتحليلها وتصميمها وإنتاجها واستخدامها. وتقسم الدورة الى عدة مراحل:
•تحديد المتطلبات وتحليل النظام.
•التصميم.
•التحويل.
•الفحص والاختبار.
•التشغيل والتطبيق.
• التوثيق.
المجموعات المؤثرة في تقدم البرمجيات وتطويرها:
•الادارة
•محللو النظام
•المبرمجون
•مستخدمو النظام
• قسم الصيانة
مراحل تطوير حياة نظام البرمجيات
تحديد المسألة ومتطلبات المستفيد Requirements Phase
تهدف الى دراسة احتياجات ومتطلبات المستخدمين وتحديدها, وبالتالي صياغة الاهداف والوظائف التي يجب ان يقوم بها النظام البرمجي المطلوب.
... تابع
صياغة المتطلبات Specification Phase
وهي دراسة المتطلبات التي تم جمعها من الجهة المستفيدة بهدف تبويبها وترتيبها لإحداث الربط والتسلسل بين مختلف اجزائها,ثم صياغة هذه المتطلبات اما بأسلوب لغوي, او باستخدام احدى اللغات المناسبة لهذه المرحلة مثل لغة Z.
... تابع
التخطيط Planning Phase
تتطلب دراسة النظام القائم وتحليله وتحديد امكانية تعديله او بناء نظام جديد وقد يستلزم الامر حساب الجدوى الاقتصادية, حيث هنالك بعض التساؤلات عند البدء بحساب الجدوى الاقتصادية ولأجل الاجابة عليها تبدأ الدراسة بما يلي:
1- تحديد المخرجات والمدخلات للنظام المقترح.
2-معالجة البيانات.
3-المعلومات او النتائج الخارجة من المعالجة.
... تابع
تحليل النظام Analysis Phase
وتهدف الى تقرير الحاجة الى نظام جديد او تعديل النظام السابق.ويتضمن التحليل خطوتين هما: تجميع الحقائق والتحليل, ويمكن تجميع الحقائق من مصادر عدة مثل:-
-الاشكال المكتوبة.
-الاستبيانات.
-المقابلات.
-المشاهدات.
-المخططات الانسيابية System Flow Charts
-
-
-جداول القرارات Decision Tables
-
-
-انسيابية البيانات Data Flow Diagram
... تابع
تصميم النظام Design Phase
تتلخص بعدة خطوات:-
-تحديد الاهداف.
-تطوير تصميم نظام البرمجيات.
-تحليل التكاليف والمنافع.
-إعداد تقرير عن التصميم.
وخلال مرحلة تصميم النظام ينبغي دراسة:-
-مستلزمات العمل والمدخلات والمخرجات.
-الملفات والبيانات.
-الرقابة والضبط على النظام.
-الخطوات المتبعة في تنفيذ العمل (خطة العمل).
... تابع
تنفيذ النظام Implementation Phase
يتم خلال هذه المرحلة بناء نظام المعلومات المقترح ويشمل:
1-شراء المعدات او استئجارها.
2-كتابة البرامج وبناؤها.
3-اختبار النظام.
اما اهم الانشطة التي تتضمنها فهي:
-كتابة البرامج وفحصها.
-مرحلة التحويل المتوازي.
... تابع
أساسيات البرمجة الكينونية
•البرمجة الكينونية Object-Oriented Programming:
•التوجه في تصميم البرامج نحو تمثيل مسائل العالم الحقيقي باستخدام الكائنات والأصناف. وتوفر امكانيات متعددة منها: التنظيم الجيد, والمقاطع البرمجية المتكاملة, والوضوح والانسجام, والكفاءة,والاستخدام المتعدد, وتعتمد برامجها على الكينونة.
... تابع
• الكينونة Object: وهي جزء من البرنامج يضم البيانات والعمليات في قالب واحد.ومن اجل بناء برامج كينونية يستلزم الامر اتباع اربع خطوات هي:
–تحديد تركيب الكينون المطلوب
–تحديد المتغيرات التي يتضمنها كل كينون وتعريف كل متغير.
–تحديد البرامج الفرعية المطلوبة لتنفيذ عمليات الكينون.
– تحديد أهداف كل برنامج فرعي وأهمية المتغيرات الأساسية وتحديد الشروط الأولية والنتائج المتوقعة.
مزايا البرمجة الكينونية
خصوصية المعلومات وإمكانية اخفائها.
التوارث: استخدام نفس السمات والملامح الموجودة لدى كينون بواسطة كينون اخر.حيث يمكن ان يرث كينون ما بعض سماته وخصائصه من كينون اخر.
الاستعمال المتعدد Polymorphism: وهو قابلية المتغير في تمثيل حالات متعددة خلال مرحلة تنفيذ الكينون وبعبارة اخرى استدعاء الكينون بمتغيرات مختلفة الانواع والحصول على نتائج مختلفة.
... تابع
استخدام الكينونات الديناميكية: حيث يتم تخصيص جزء من الذاكرة للكينونات خلال مرحلة تنفيذ البرامج,ويلغي التخصيص ويعاد حجم الذاكرة المقتطع الى وضعه الاصلي حال انتهاء دور الكينون.
مخططات انسياب التحكم Control Flow Graphs
•تصف هذه المخططات التركيب المنطقي لمقاطع البرمجيات,حيث المقطع هو عبارة عن وحدة برمجة من برامج .
•يتكون المخطط الذي يصف مقطعاً من رؤوس(Nodes) او دوائر صغيرة تمثل الجمل وحواف(Edges) تمثل انسياب التحكم بين الرؤوس.
• تأمل مثال رقم 2 من المقرر الدراسي.
hamad bashir
أ.طروب أحمد مصطفى سعد, ملخص هندسة البرمجيات, ملخص هندسة البرمجيات طروب سعد, ملخص هندسة البرمجيات للدكتور طروب سعد, هندسة البرمجيات,
هل موجود تلخيص ملف كامل للsoftwar Engineer؟
ردحذف