انت هنا الان : شبكة جامعة بابل > موقع الكلية > نظام التعليم الالكتروني > مشاهدة المحاضرة
الكلية كلية تكنولوجيا المعلومات
القسم قسم البرامجيات
المرحلة 3
أستاذ المادة مهند محمد جاسم الياسري
12/23/2011 8:35:10 AM
مقدمــة: رغم إن مئات المؤلفين وضعوا تعريفات شخصية لهندسة البرامجيات فان التعريف الذي اقترحه Fritz Bauer في المؤتمر الذي كان منعقد لهذا الموضوع مازال يعتبر أساسا للمناقشة. (هندسة البرامجيات) هي استخدام مبادئ هندسية صحيحة للحصول اقتصادياً على برامجيات موثوقة وتعمل بكفاءة على كومبيوترات حقيقية. سنشعر برغبة لمحاولة الإضافة على هذا التعريف لأنه يقول الكثير عن المظاهر التقنية لجودة البرامجيات، ولا يذكر مباشرة الحاجة إلى إرضاء الزبون أو تسليم المنتج في الوقت المناسب؛ كما انه اغفل ذكر أهمية اخذ القياسات (Measurement)، ولم يذكر أهمية عملية البرمجة الناضجة. ومع ذلك فان تعريف Bauer يقدم لنا ركيزة لننطلق منها. ما هي "المبادئ الهندسية الصحيحة" التي يمكن تطبيقها على تطوير البرامجيات؟ كيف نتمكن "اقتصادياً" من بناء برامجيات بحيث تكون "موثوقة" ؟ ما المطلوب لبناء برامج كومبيوتر تعمل بكفاءة على عدة "كومبيوترات حقيقية" مختلفة وليس على كومبيوتر واحد؟ هذه هي الأسئلة التي ما زالت تتحدى مهندسي البرامجيات. لقد وضع معهد المهندسين الكهربائيين والإلكترونيين IEEE تعريفاً اشمل، هو: هندسة البرامجيات 1. هي تطبيق منهج مرتب ومنظم وقابل للقياس لعمليات تطوير وتشغيل وصيانة البرامجيات، أي تطبيق الهندسة على البرامجيات. 2. دراسة المناهج المذكورة في النقطة (1). هندسة البرامـجـيات – تكنولوجيا طبقية: هندسة البرامجيات هي تكنولوجيا طبقية (Layered Technology) الشكل (1). يجب أن يركز أي منهج هندسي (يشمل ذلك هندسة البرامجيات)على التزام مؤسساتي بالجودة. تعتمد الإدارة الشاملة للجودة والفلسفات المشابهة على ثقافة أساسها التحسين الدائم لعملية البرمجة، وهذه الثقافة هي التي تقود في النهاية إلى تطوير مناهج أكثر نضجاً لهندسة البرامجيات. إن حجر الأساس الذي يدعم هندسة البرامجيات هو التركيز على الجودة. القاعدة التي ترتكز عليها هندسة البرامجيات هي طبقة عملية البرمجة. أما العملية الهندسية البرمجية فهي الغراء الذي يمسك طبقات التكنولوجيا بعضها مع بعض، ويسمح بحصول تطوير منطقي وفي حينه لبرامجيات الكومبيوتر. تُعرِّف عملية البرمجة هيكلا لمجموعة من المجالات الأساسية لعملية البرمجة (Key Process Areas أو KPAs) يجب تأسيسها لضمان ممارسة فعالة لتكنولوجيا هندسة البرامجيات. تكون المجالات الأساسية لعملية البرمجة (KPA) هي الأساس لضبط إدارة مشاريع البرامجيات، تضع السياق الذي فيه تطبق الطرق التقنية وتنتج منتجات العمل (مثل النماذج، الوثائق، البيانات، التقارير... الخ)، تجتاز الصعوبات، وتضمن الجودة وإدارة التغيير على وجه مناسب. تقدم طرق (Methods) هندسة البرامجيات "الكيفيات" التقنية لبناء البرامجيات. وتشمل هذه الطرق قائمة طويلة من المهمات تتضمن تحليل المتطلبات، التصميم، بناء البرنامج، اختباره، وصيانته. تعتمد طرق هندسة البرامجيات على مجموعة من المبادئ الأساسية التي تحكم كل مجال من مجالات التكنولوجيا، وتضمن هذه الطرق فعاليات نمذجة، وتقنيات (Techniques) واصفة أخرى . تقدم أدوات هندسة البرامجيات دعماً مؤتمتاً أو شبه مؤتمت لعملية البرمجة وللطرق. وعندما تتكامل الأدوات بعضها مع بعض بحيث تستطيع أداة استخدام المعلومات التي تولدها أداة أخرى، فإنها تغدو نظاماً لدعم تطوير البرامجيات يسمى هندسة البرامجيات بمعونة الكومبيوتر (Computer Aided Software Engineering أو CASE) حيث إنها تضم كل من البرامجيات والعتاد وقاعدة بيانات هندسة البرامجيات (هي مخزن يحتوي على معلومات هامة عن التحليل والتصميم وبناء البرنامج واختباره) لبناء بيئة لهندسة البرامجيات تشبه التصميم بمعونة الكومبيوتر (CAD).
نظرة عامة على هندسة البرامجيات: الهندسة هي التحليل والتصميم والبناء والتحقق والإدارة للكيانات (تقنية أو اجتماعية). وبغض النظر عن الكيان المطلوب هندسته، يجب طرح الأسئلة التالية والإجابة عليها: ? ما هي المشكلة المطلوب حلها ؟ ? ما هي خصائص الكيان الذي سيستخدم لحل المشكلة ؟ ? كيف سيجري تحقيق الكيان (والحل) في الواقع ؟ ? كيف سيتم بناء الكيان ؟ ? ما هو المنهج (Approach) الذي سيتم استخدامه لاكتشاف الأخطاء المرتكبة أثناء تصميم أو بناء الكيان ؟ ? كيف سيتم دعم الكيان على المدى البعيد، عندما يطلب مستخدم الكيان إجراء تصحيح، تكيّيف،أو تحسينات عليه ؟ سيكون تركيزنا على كيان واحد وهو برامجيات الكومبيوتر. ولكي نستطيع تنفيذ هندسة البرامجيات على وجه صحيح، يجب معرفة أهداف هندسة البرامجيات التي ستتحقق بتطبيق مبادئ هندسة البرامجيات. يمكن تصنيف العمل المرتبط بهندسة البرامجيات على ثلاث مراحل عامة بغض النظر عن مجال التطبيق، أو حجم المشروع أو تعقيده. تعالج كل مرحلة سؤالاً أو أكثر من الأسئلة المذكورة أعلاه. تهتم مرحلة التعريف (Definition Phase) بكلمة "ما هي" (What). هذا يعني إن مطور البرنامج يحاول من خلال هذا التعريف تحديد هوية المعلومات التي يجب معالجتها، الوظيفة والأداء المطلوبين، السلوك المتوقع للنظام،الواجهات المطلوبة مع الأنظمة الأخرى، ما هي القيود المفروضة على التصميم، ومؤشرات التحقق من صحة العمل المطلوبة لتعريف النظام الناجح. ستحدد في هذه المرحلة المتطلبات الرئيسية للنظام و البرامجيات. ومع إن الطرق المتبعة خلال مرحلة التعريف ستختلف وفقاً لنموذج هندسة البرامجيات (أو لخليط النماذج) المطبق، لا بد من انجاز ثلاث مهمات رئيسية بصيغة أو بأخرى: ? هندسة النظام أو المعلومات. ? التخطيط للمشروع البرمجي. ? تحليل المتطلبات. تهتم مرحلة التطوير (Development Phase) بكلمة "كيف" (How) هذا يعني إن مهندس البرامجيات يحاول خلال التطوير أن يعرّف كيف ستبنى البيانات، كيف سيتم انجاز الوظيفة كبناء برمجي، كيف سيتم انجاز تفاصيل عملية البرمجة، كيف سيتم تعيين خصائص الواجهات، كيف سيترجم التصميم إلى لغة برمجة (أو لغة لا إجرائية)، وكيف سيتم إجراء الاختبار. تختلف الطرق المطبقة في مرحلة التطوير، لكن يجب أن تشمل دوما على ثلاث مهمات تقنية هي: ? تصميم البرنامج. ? توليد الكود (Code). ? اختبار البرنامج. تهتم مرحلة الصيانة (Maintenance Phase) بالتغيير المرافق لتصحيح الخطأ، التكييفات المطلوبة مع تطور البيئة البرمجية، التغييرات التي تفرضها التحسينات المنجزة نتيجة لتغير متطلبات الزبون. تعيد مرحلة الصيانة تطبيق مرحلتي التعريف والتطوير ولكن تقوم بذلك في سياق البرامجيات الموجودة. يجر التعرض لأربعة أصناف من التعديلات خلال مرحلة الصيانة. التصحيح (Correction) يكشف الزبون على الأرجح عيوباً في البرنامج حتى عند تطبيق أفضل نشاطات ضمان الجودة. تغير الصيانة التصحيحية (Corrective Maintenance) البرنامج لتصحيح هذه العيوب. التكيُّف (Adaptation) مع مرور الزمن، قد تتغير البيئة الأصلية (كوحدة المعالجة المركزية، نظام التشغيل، قواعد العمل (Platforms)، خصائص المنتج الخارجي) التي طور من اجلها البرنامج. تُجرى الصيانة التكيّفية (Adaptive Maintenance) تعديلات على البرنامج لاستيعاب التغيرات في بيئته الخارجية. التحسين (Enhancement) يميز الزبون - أو المستخدم – خلال استخدامه للبرنامج وظائف أخرى تقدم فوائد له. توسع الصيانة التحسينية (Perfective Maintenance) وظائف البرنامج إلى ما يتجاوز متطلباته الوظيفية الأصلية. الوقاية (Prevention) تُتلف برامجيات الكومبيوتر بسبب التغيير، ولهذا يجب تنفيذ الصيانة الوقائية (Preventive Maintenance)، التي تسمى غالباً بإعادة هندسة البرامجيات، لتمكين البرنامج من تحقيق متطلبات المستخدمين؛ بمعنى آخر، تغيّر الصيانة الوقائية برامج الكومبيوتر بحيث تصحح وتكيّف وتحسن بسهولة اكبر.
يجري تكامل المراحل (التعريف، التطوير، الصيانة)والخطوات التابعة لها بعدد من نشاطات المظلة (Umbrella Activities) ومن الأمثلة المألوفة على هذا النوع من النشاطات ما يلي: ? متابعة المشروع البرمجي ومراقبته. ? المراجعات التقنية الرسمية. ? ضمان جودة البرنامج. ? إدارة تشكيلة البرنامج. ? إعداد الوثائق وإنتاجها. ? إدارة أعادة الاستخدام. ? اخذ القياسات. ? إدارة المخاطر. يتم تطبيق نشاطات المظلة هذه على كامل عملية البرمجة.
المادة المعروضة اعلاه هي مدخل الى المحاضرة المرفوعة بواسطة استاذ(ة) المادة . وقد تبدو لك غير متكاملة . حيث يضع استاذ المادة في بعض الاحيان فقط الجزء الاول من المحاضرة من اجل الاطلاع على ما ستقوم بتحميله لاحقا . في نظام التعليم الالكتروني نوفر هذه الخدمة لكي نبقيك على اطلاع حول محتوى الملف الذي ستقوم بتحميله .
|