Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Transcript

‫‪7‬المحاضرة رقم‬ ‫متطلبات البرمجيات‬ ‫‪Software Requirements‬‬ ‫مقدمة‬ ‫تبين مجموعة المتطلبات ما يجب أن يقوم به النظام وتقوم ‬ ‫بتعريف القيود على تشغيل هذا النظام وتنفيذه‪ ،‬وتبين مجموعة‬ ‫المتطلبات الوظيفية الخدمات التى يوفرها النظام‪ ،‬وتبين مجموعة‬ ‫المتطلبات غير الوظيفية القيود التى...

‫‪7‬المحاضرة رقم‬ ‫متطلبات البرمجيات‬ ‫‪Software Requirements‬‬ ‫مقدمة‬ ‫تبين مجموعة المتطلبات ما يجب أن يقوم به النظام وتقوم ‬ ‫بتعريف القيود على تشغيل هذا النظام وتنفيذه‪ ،‬وتبين مجموعة‬ ‫المتطلبات الوظيفية الخدمات التى يوفرها النظام‪ ،‬وتبين مجموعة‬ ‫المتطلبات غير الوظيفية القيود التى يتم خاللها تطوير النظام‪.‬‬ ‫نماذج عمليات البرمجيات‬ ‫‪Software Process Models‬‬ ‫‪Waterfall Model‬نموذج الشالل أو النموذج اإلنحدارى ‬ ‫‪Incremental Models‬النماذج المتزايدة ‬ ‫النموذج التزايدى‪ :‬يسلم البرمجيات فى قطع صغيرة قابلة ‬ ‫لإلستخدام تتراكب كل قطعة منها على القطع السابقة‪.‬‬ ‫نموذج التطبيق والتطوير المفاجئ اإلستخدام المكثف لمكونات ‬ ‫إعادة اإلستخدام مع دورة تطوير قصيرة نسبيا‪.‬‬ ‫نماذج العمليات اإلرتقائية‬ ‫‪Evolutionary Process Models‬‬ ‫‪ :‬خطوة أولى جيدة عندما تكون ‪Prototype Model‬النموذج األولى ‬ ‫للمستهلك حاجة ممكنة لكن بدون تفاصيل عملية فإن المطور يحتاج‬ ‫مقاومة الضغط بعمل نموذج أولى تمهيدى إلنتاج المنتج‪.‬‬ ‫‪ :‬يجمع بين طبيعة النموذج األولى ‪Spiral Model‬النموذج الحلزونى ‬ ‫مع خصائص التحكم والعمل التقليدى للنموذج الخطى المتتالى‪.‬‬ ‫‪ :‬يشبه ‪Concurrent Development Model‬نموذج التطوير المتزامن ‬ ‫النموذج الحلزونى وغالبا ما يستخدم عند تطوير تطبيقات العميل الخادم‪.‬‬ ‫دورة حياة تطوير البرمجيات‬ ‫‪Software Development Life Cycle‬‬ ‫هندسة البرمجيات عمل إبداعى يتم خطوة بخطوة بتعاون فريق عمل لكل منهم مهمة ‬ ‫محددة بإستخدام طرق معينة لتنظيم العمل‪ ،‬وتمر عملية بناء أى منتج برمجى بعدة‬ ‫مراحل يطلق عليها أسم دورة الحياة وتتضمن األنشطة التالية‪:‬‬ ‫تحديد وتعريف المتطلبات‪.‬‬ ‫تصميم النظام‪.‬‬ ‫كتابة البرنامج‪.‬‬ ‫إختبار وحدات البرنامج وإختبار النظام‪.‬‬ ‫تسليم النظام‪.‬‬ ‫صيانة النظام‪.‬‬ ‫مرحلة تجميع المتطلبات‬ ‫‪Requirements Engineering‬‬ ‫تتم هذه المرحلة على خطوتين هما‪:‬‬ ‫دراسة السوق وتجميع متطلبات البرنامج‪.‬‬ ‫تحليل المتطلبات وفهم العالقات بينهم‪.‬‬ ‫خطوات تحديد المتطلبات‬ ‫اإلجتماعات مع العميل للتعرف على المتطلبات‪.‬‬ ‫تسجيل المتطلبات فى وثائق أو قاعدة بيانات‪ ،‬وعرضها على ‬ ‫العميل ليوافق عليها بإعتبار أنها ما يطلبه بالفعل‪.‬‬ ‫إعادة تسجيل التطلبات رياضيا ليتمكن المصمم من تحويلها إلى ‬ ‫تصميم جيد للنظام‪.‬‬ ‫التثبت والتحقق من المتطلبات‪.‬‬ ‫هندسة المتطلبات‬ ‫‪Requirements Engineering‬‬ ‫هى عملية إنجاز الخدمات التى يطلبها المستهلك من النظام ‬ ‫والقيود التى يعمل ويطور فيها النظام‪ ،‬المتطلبات نفسها هى‬ ‫وصف لخدمات النظام والقيود التى تتولد خالل عملية هندسة‬ ‫المتطلبات‪.‬‬ ‫تجريد وتلخيص المتطلبات‬ ‫‪Requirements Abstraction‬‬ ‫إذا أرادت شركة عمل عقد لتطوير مشروع برمجيات كبير فيجب ‬ ‫عليها تعريف إحتياجاتها بملخص مجرد بطريقة ال تحتاج إعادة‬ ‫تعريف هذا الحل‪ ،‬ويجب أن تكتب المتطلبات حتى يتمكن‬ ‫المقاولون من استبيان العقد والعروض وعرض إحتياجات العميل‬ ‫بطرق مختلفة‪ ،‬وما أن يتم كتابة العقد حتى يجب على المقاول أن‬ ‫يقوم بكتابة تعريف النظام للمستهلك بتفاصيل أكثر حتى يتمكن‬ ‫العميل من الفهم ويتحقق مما تفعله البرمجيات‪ ،‬وكال من هذين‬ ‫المستندين هما مستندات متطلبات النظام‪.‬‬ ‫أنواع المتطلبات‬ ‫‪Types of Requirements‬‬ ‫متطلبات مستخدم‪ :‬جمل بلغة طبيعية مع أشكال ‬ ‫توضيحية للخدمات التى يوفرها النظام وقيود التشغيل‬ ‫مكتوبة للمستهلك‪.‬‬ ‫متطلبات النظام‪ :‬وثيقة هيكلية تبين الوصف التفصيلى ‬ ‫لخدمات النظام‪ ،‬مكتوبة كعقد بين المقاول والمستهلك‪.‬‬ ‫مواصفات البرمجيات‪ :‬وصف تفصيلى للبرمجيات يعمل ‬ ‫كأساس لتصميم وتنفيذ‪ ،‬مكتوب لمطورى النظام‪.‬‬ ‫تعريف المتطلبات ومواصفات المتطلبات‬ ‫‪Definitions and Specifications‬‬ ‫قراء المتطلبات‪ :‬‬ ‫تقوم كل من األطراف التالية بقراءة المتطلبات ‬ ‫والمواصفات‪:‬‬ Requirements readers Client managers System end-users User requirements Client engineers Contractor managers System architects System end-users Client engineers System requirements System architects Software developers Client engineers (perhaps) Software design System architects specification Software developers ‫المتطلبات الوظيفية وغير الوظيفية‬ ‫‪Functional and non functional Requirements‬‬ ‫المتطلبات الوظيفية‪ :‬يجب توفير بيان وإفادة وعرض الخدمات التى ‬ ‫يوفرها النظام‪ ،‬وكيف يجب للنظام أن يتعامل مع المدخالت المعينة‪،‬‬ ‫وكيفية تصرف النظام فى مواقف معينة‪.‬‬ ‫متطلبات المجال‪ :‬المتطلبات التى تأتى من مجال التطبيق للنظام ‬ ‫والخصائص المنعكسة من هذا المجال‪.‬‬ ‫المتطلبات الغير وظيفية‪ :‬‬ ‫تعريف خصائص النظام والقيود‪ :‬مثل اإلعتمادية وزمن اإلستجابة ‬ ‫ومتطلبات التخزين ‪.....‬‬ ‫التصنيفات الغير وظيفية‬ ‫‪Non functional Classifications‬‬ ‫متطلبات المنتج‪ :‬وهى متطلبات مواصفات تصرف المنتج ‬ ‫المسلم بكريقة معينة مثل سرعة التنفيذ واإلعتمادية وغيرها‪.‬‬ ‫المتطلبات التنظيمية‪ :‬وهى متطلبات تعبر عن نتائج سياسات ‬ ‫المنظمة واإلجراءات مثل المعايير المستخدم‪ ،‬ومتطلبات التنفيذ‬ ‫وغيرها‪.‬‬ ‫المتطلبات الخارجية‪ :‬وهى متطلبات تنشأ من عوامل خارج ‬ ‫النظام وعمية تطويره مثل متطلبات السلطة التشريعية وغيرها‪.‬‬ ‫أنواع المتطلبات غير الوظيفية‬ ‫‪Non – Functional Requirements types‬‬ ‫تضم ‪ :‬متطلبات المنتج مثل المتطلبات اإلعتمادية ومتطلبات ‬ ‫قابلية النقل ومتطلبات قابلية اإلستخدام ومتطلبات الكفاءة‪.‬‬ ‫المتطلبات التنظيمية‪ :‬وتضم متطلبات التسليم ومتطلبات التنفيذ ‬ ‫ومتطلبات المعايير‪.‬‬ ‫متطلبات خارجية وتضم‪ :‬متطلبات قابلية اإلجراء ومتطلبات ‬ ‫أخالقية ومتطلبات تشريعية‪.‬‬ Non-functional requirement types Non-functional requir ements Product Or ganizational External requir ements requir ements requirements Ef ficiency Reliability Portability Interoperability Ethical requir ements requir ements requirements requirements requirements Usability Delivery Implementation Standards Legislative requirements requirements requir ements requirements requirements Performance Space Privacy Safety requirements requir ements requirements requirements ‫األهداف والمتطلبات‬ ‫‪Goals and Requirements‬‬ ‫اليمكن تحديد المتطلبات الغير وظيفية بدقة كما أن المتطلبات ‬ ‫الغامضة يصعب تحقيقها‪.‬‬ ‫الهدف‪ :‬مقصد عام يتحقق للمستخدم مثل سولة اإلستخدام‪.‬‬ ‫تساعد األهداف المطور على بلوغ وتحقيق رغبات ومقاصد ‬ ‫مستخدمى النظام‪.‬‬ ‫تفاعل المتطلبات‪ :‬‬ ‫التنازع بين المتطلبات الغير وظيفية امختلفة أمر شائع فى النظم ‬ ‫المعقدة‪.‬‬ ‫متطلبات المجال‬ ‫‪Domain Requirements‬‬ ‫مستخرج من مجال تطبيق ووصف خصائص نظم والمالمح التى تعكس ‬ ‫المجال وقد تكون متطلبات وظيفية جديدة أو قيدا على متطلبات موجودة‬ ‫أو تعريف عمليات حسابية معينة‪.‬‬ ‫مشاكل متطلبات المجال‪:‬‬ ‫قدرة الفهم‪ :‬فالمتطلبات يعبر عنها بلغة مجال التطبيق وهذا غالبا ما ‬ ‫يكون غير مفهوم لمهندس البرمجيات المطور للنظام‪.‬‬ ‫الوضوح‪ :‬متخصص المجال يفهم المنطقة بدرجة جيدة للدرجة التى ‬ ‫اليقوم فيها بالتفكير فى جعل متطلبات المجال واضحة بينة‪.‬‬ ‫الخطوط الرئيسية لكتابة المتطلبات‬ ‫‪ :‬مواصفات أكثر ‪System Requirements‬متطلبات النظام ‬ ‫تفصيال من متطلبات المستخدم‪ ،‬تخدم أسس تصميم‬ ‫النظام‪ ،‬وقد تستخدم كجزء من العقد المكتوب المحرر‬ ‫بين المطور ومستخدم أو مستهلك النظام‪ ،‬وقد يعبر عن‬ ‫متطلبات النظام بإستخدام نماذج النظام‪.‬‬ ‫اللغة المهيكلة للمواصفات‬ ‫‪Structured Language Specifications‬‬ ‫مواصفات مبينة على شكل ثابت‪:‬‬ ‫تعريف الوظيفة أو المكون‪ ،‬وصف المدخالت ومن أين ‬ ‫يأتى‪ ،‬وصف المخرجات وإلى أين تذهب‪ ،‬اإلشارة إلى‬ ‫أى مكونات أخرى مطلوبة‪ ،‬الشروط‪ ،‬والتأثيرات الجانبية‬ ‫إذا كانت موجودة‪.‬‬ ‫مواصفات واجهة المستخدم‬ ‫‪Interface Specification‬‬ ‫أنواعها‪:‬‬ ‫الواجهات اإلجرائية ‬ ‫هياكل البيانات التى سيتم تبادلها ‬ ‫تمثيل البيانات ‬ ‫التدوين الشكلى طريقة تقنية مؤثرة لمواصفات واجهة ‬ ‫المستخدم‪.‬‬ ‫توثيق المتطلبات‬ ‫‪Requirement Document‬‬ ‫وثائق المتطلبات هى إفادة رسمية بما هو مطلوب من ‬ ‫مطور النظام‪ ،‬ويجب أن تتضمن كال من تعريف‬ ‫المتطلبات ومواصفاتها‪ ،‬وهى ليست مستند تصميم‪،‬‬ ‫وبقدر اإلمكان فإنها عبارة عن مجموعة مما يجب أن‬ ‫يجب أن يفعله النظام بدال من أن تكون مجموعة من‬ ‫كيفية ما يجب عمله‪.‬‬ ‫هيكل توثيق المتطلبات‬ ‫‪Requirements Document Structure‬‬ ‫وتتضمن مقدمة‪ ،‬مفردات‪ ،‬تعريف متطلبات المستخدم‪ ،‬‬ ‫بنية النظام‪ ،‬مواصفات متطلبات النظام‪ ،‬نماذج النظام‪،‬‬ ‫إرتقاء النظام‪ ،‬مالحق‪ ،‬وفهرس‪.‬‬

Tags

software engineering requirements analysis software development
Use Quizgecko on...
Browser
Browser