ملخص(2) هندسة البرمجيات
أ.طروب أحمد مصطفى سعد
الوحدة الثانية
متطلبات مستخدم البرمجيات
أهداف الوحدة
•تحديد متطلبات المستخدم وتعريفها
•التعرف على متطلبات المستخدم
•توثيق متطلبات النظام
•مراجعة متطلبات المستخدم والتحقق منها
• التعرف على قياس متطلبات المستخدم
تمهيد
•من اهم مراحل هندسة البرمجيات الهادفة الى انتاج نظام برمجي ناجح هي:-
• مرحلة فهم متطلبات الجهة المستفيدة والمستخدمة للنظام وجمع هذه المتطلبات والتحقق من توافقها مع بعضها وتعريفها وتوثيقها استعداداً لمراحل لاحقة من مراحل تطوير النظام.
تحديد المتطلبات وتعريفها
•تبدأ حياة البرمجية منذ ظهور فكرة البرمجية عند مواجهة مشكلة او حالة معينة، ثم يتم مناقشة هذه الفكرة ودراسة جدواها الفنية والاقتصادية، وفي حالة التأكد من جدواها تبدأ الدراسة التفصيلية لتحديد مواصفات المتطلبات Requirements Specificationالتي يرغب المستخدم بتوفرها في هذه البرمجية.
•في هذه المرحلة أيضاً لابد من تعاون مهندس البرمجيات مع المستخدمين المحتملين للبرمجية الى ابعد الحدود والتعرف على احتياجاتهم بشكل كامل ودقيق. وبناءً على هذه الاحتياجات يتم البحث عن التصميم الأمثل لهذه البرمجية ويعني تصميم الملفات ، قواعد البيانات ، واجهات الاستخدام، والبرامج ، ... وغيرها
• في نهاية مرحلة التصميم هذه يتم اعداد ملف كامل بمواصفات التصميم Design Specification وتجري مراجعته وتقييمه قبل الانتقال الى المرحلة التالية وهي مرحلة التنفيذ والبرمجة التي يتم خلالها كتابة البرامج واختبارها وبعد الـتأكد من صحتها يمكن وضعها قيد الاستخدام.
متى يبدأ التفكير بتطوير برمجية جديدة؟
üعندما يصبح صيانة البرمجية مكلفة جداً.
üعندما يكون تكاليف تشغيلها عالية.
üظهور تقنيات وبيئات جديدة.
أساليب تطوير البرمجيات
•يخضع قانون نشوء البرمجيات وتطويرها لمفهوم دورة حياة البرمجية و
•أساليب تطوير البرمجيات المختلفة ليست سوي طرق أخرى لتنفيذ هذه المرحلة أو تلك ومن هذه الأساليب:-
• اسلوب النماذج التجريبية Prototype .
•اسلوب تركيب البرامج من وحدات وظيفية Modules موجودة.
• منهجية التطوير الكينوني Object Oriented Development
... تابع
•اسلوب النماذج التجريبية Prototype
هي تصميم مبدئي للنظام يتم انتاجه وعرضه على المستخدم بهدف معرفة ملاحظاته حوله وفيما اذا كان يحقق متطلباته ام يفترض اجراء تعديلات محددة عليها.
•اسلوب تركيب البرامج من وحدات وظيفية Modules
هي الأجزاء التي يتم تقسيم النظام لها بحيث يؤدي كل منها وظيفة محددة في النظام.
• منهجية التطوير الكينوني Object Oriented Development
هو التطوير الذي يستند الى أساسيات البرمجة الكينونية ويستخدم الكينون أساساً لبناء النظام.
متطلبات المستخدم
•تعني فهم ماذا يرغب المستخدم أن يؤديه نظام البرمجيات له، وما هي أهدافه من الرغبة في بناء النظام وهذه هي الخطوة الأولى من فهم النظام المطلوب بناؤه.
•من ضمن التعرف على متطلبات المستخدم يلزم تعريف هذه المتطلبات ومن ثم توثيقها ومراجعتها للتحقق من دقتها واكتمالها.
•تهتم مرحلة تحليل المتطلبات بدراسة هذه المتطلبات لمعرفة الجزء الممكن اعتماده بحيث يحقق متطلبات المستخدم ويتفق مع القواعد العلمية وأن يكون قابلاً لأن يصاغ بنظام برمجيات.
• والمتطلبات هي خاصية لنظام البرمجيات او وصف لهدف يمكن أن يحققه النظام ارضاءً للمستفيد وتحقيقاً لرغبته.
... تابع
•وهناك ثلاثة أنواع من المتطلبات.
–متطلبات لابد من أن يحققها نظام البرمجيات قيد الدراسة
–متطلبات مرغوبة لكن صعبة التحقيق
– متطلبات ممكن تحقيقها لكن يمكن الاستغناء عنها.
... تابع
•الخطوات اللازمة للتعرف على متطلبات المستخدم هي:-
• التعرف على المسألة أو المشكلة لدى المستخدم وتحليلها
•وصف هذه المسألة والمطالب ذات العلاقة بأسلوب مناسب
•توضيح أو تقديم نمط تجريبي للمستخدم عما تم فهمه وما يمكن عمله.
•توثيق المتطلبات وتدقيها.
... تابع
•من المواصفات للمتطلبات الجيدة أن تكون قابلة للاختبار أو القياس في مرحلة لاحقة من بناء النظام، وللاقتراب من تحقيق مواصفات قابلة للاختبار ينصح بما يلي:-
–استخدام وصف كمي لمصطلحات المتطلبات ومفاهيمها.
–استخدام مسميات ذات دلالة في المتطلبات.
–تجنب الازدواجية في المسميات.
... تابع
•المتطلبات نوعان:-
• النوع الوظيفي Functional Requirements
• هي المتطلبات التي تصف التفاعل بين نظام البرمجيات ومحيطه وعلى أساسها يستجيب النظام للإجراءات والتساؤلات ولا يعتمد على اللغة أو الأجهزة المستخدمة، تظهر عندما تعمل كل مكونات وأجزاء النظام معاً لتحقيق غرض ما.
• النوع غير الوظيفي Non-functional Requirements
• هي قيود توضع على النظام لتحديد خيارات التصميم واللغة والتجهيزات المستخدمة، مثل الاعتمادية والأمان والأداء والتأمين، reliability, performance, safety, and security فهذه الخصائص تتعلق بتصرف النظام فى بيئة عمله.
... تابع
•تساعد المتطلبات في تحقيق عدة أغراض من أهمها:-
–توفير معلومات لمطوري النظام ليفهموا ماذا تريد الجهة المستفيدة من النظام المقترح.
–توفير معلومات لمصمم النظام عن الوظائف والمزايا التي ستتوفر في النظام او يحققها.
– تحدد لفريق الاختبار والقياس ماذا عليهم أن يوضحوا في أثناء اختبارهم لإقناع المستفيد بأن النظام المنتج يحقق الغرض وما هو طلبه فعلاً.
... تابع
•لا بد أن للمتطلبات من ان تكون بمواصفات ومزايا عالية الجودة منها:-
–أن تكون صحيحة
–أن تكون متوافقة وغير متضاربة
–أن تكون واقعية ممكنة التحقيق
–ان تصف هدفاً محدداً من أهداف الجهة المستفيدة
–أن تكون قابلة للتحقق من أنها استوفيت عند الانتهاء من بناء النظام والبدء باختباره
– ان يكون تتبعها ممكناً من خلال تطبيق النظام للاطمئنان من تحققها.
توثيق المتطلبات
•هو عقد بين المستخدم والمصمم يدون فيه جميع الوظائف المطلوبة وينظم بطريقة تساعد على التعديل عند اقتضاء الحاجة بناءً على رغبة الطرفين ويشتمل التوثيق على:-
–تحديد معالم النظام الخارجية
–تحديد القيود الموضوعة عند تشغيله.
–سهولة التعديل.
–اعداد مرجع عند صياغة النظام او ادامته بعد تطبيقه.
–تدوين الأفكار والمفاهيم الأساسية لدورة النظام البرمجي.
– وصف الاستجابة المتوقعة في الحالات غير المتوقعة في الحالات غير الطبيعية.
... تابع
•يقصد بتوثيق المتطلبات، الأساس الذي يرجع عليه عندما يتطلب الأمر تعديل النظام، أو معرفة المهام التي تؤديها مقاطع البرنامج أو النظام. ويجب أن يحتوي التوثيق على جدول محتويات وفهرسة ويمكن أن ينظم على شكل وحدات على النحو التالي:-
–المقدمة
–نموذج النظام
–تطور النظام
–الوظائف المطلوبة
–القيود
–مسرد المصطلحات
... تابع
•ويعد توثيق المتطلبات وصفاً للمهام التي يؤديها النظام دون الخوض في طريقة تنفيذ هذه المهام ويتم الرجوع الى هذه الوثيقة أو العقد لمعرفة مواءمة التصميم للمهام والقيود والخصائص المتفق عليها ومن أهم هذه المهام والخصائص ما يلي:-
• السياق العام للنظام System Context
• تعريف المتطلبات Requirements Definition
• الأطراف المشتركة بالمتطلبات Participants
السياق العام للنظام System Context
• من المشكلات التي تظهر في تطوير أي نظام برمجي سوء الفهم بين المؤسسة او الادارة (المؤجر) وبين الذي يقوم ببناء النظام (الأجير)، لأن كل فريق ينظر الى المهام المطلوبة من وجهة نظره وتختلف وجهات النظر من جهة الى أخرى وعلى هذا الأساس فإن العلاقات التي تربط النظام المقترح والمستخدمين ونظام الحاسب والأنظمة الأخرى يجب أن تكون موثقة وواضحة ويستحسن تمثيل العلاقات على شكل مخططات تحدد العلاقات.
تعريف المتطلبات Requirements Definition
•ان وصف المتطلبات البرمجية يقتضي بيان المهام المتوقع أداؤها بصورة مقتضبة ويستلزم كتابة المواصفات بطريقة مفهومة لا تحتاج الى مص مصطلحات فنية ولا يفترض مستخدم النظام أن يتعرف طرف بناء النظام بل يهمه الواجهة.
•بعبارة أخرى يجب أن تكون المهام الوظيفية للنظام متكاملة ومتناغمة Complete and consistent.
الأطراف المشتركة بالمتطلبات Participants
•من أهم الملاحظات على الأطراف ذات العلاقة بنظام برمجي نذكر ما يلي:-
–تعدد هذه الأطراف
–احتمال وجود تعارض بين وجهات نظر هذه الأطراف
–ضرورة وجود محلل النظم للتوفيق بين وجهات النظر هذه
الأطراف المشتركة بالمتطلبات Participants
•من الأطراف الأساسية ذات العلاقة بمتطلبات نظام برمجي نذكر ما يلي:-
مراجعة المتطلبات
•يقصد بمراجعة المتطلبات التحقق من التوافق بين مواصفات المتطلبات وتعريفاتها وأن تفي هذه المتطلبات بحاجات الجهة المستفيدة، ويمكن تمييز مرحلتين في هذه العملية:-
•عملية المراجعة تتم من أجل التحقق من المتطلبات التي يمكن أن يتمثل في العديد من الأطراف مثل:-
–الجهة المستفيدة
–الجهة المطورة
قياس المتطلبات
•ان قياس خصائص المتطلبات يساعد في وضعها بصورة أفضل قبل الانتقال الى التصميم ومن أهم العناصر التي ينصح بقياسها نذكر ما يلي:-
–نواتج هذه المتطلبات بعد جمعها
–التغيير الذي يطرأ على المتطلبات
–التدقيق فيما اذا كان التغيير يحدث في كل اجزاء النظام او في اجزاء محددة منه
• عملية القياس هذه تعني مصمم النظام كما تعني مختبر النظام على حد سواء لكن كل من وجهات النظر التي تعنيه.
انتهت الوحدة
هي تصميم مبدئي للنظام يتم انتاجه وعرضه على المستخدم بهدف معرفة ملاحظاته حوله وفيما اذا كان يحقق متطلباته ام يفترض اجراء تعديلات محددة عليها.
•اسلوب تركيب البرامج من وحدات وظيفية Modules
هي الأجزاء التي يتم تقسيم النظام لها بحيث يؤدي كل منها وظيفة محددة في النظام.
• منهجية التطوير الكينوني Object Oriented Development
هو التطوير الذي يستند الى أساسيات البرمجة الكينونية ويستخدم الكينون أساساً لبناء النظام.
متطلبات المستخدم
•تعني فهم ماذا يرغب المستخدم أن يؤديه نظام البرمجيات له، وما هي أهدافه من الرغبة في بناء النظام وهذه هي الخطوة الأولى من فهم النظام المطلوب بناؤه.
•من ضمن التعرف على متطلبات المستخدم يلزم تعريف هذه المتطلبات ومن ثم توثيقها ومراجعتها للتحقق من دقتها واكتمالها.
•تهتم مرحلة تحليل المتطلبات بدراسة هذه المتطلبات لمعرفة الجزء الممكن اعتماده بحيث يحقق متطلبات المستخدم ويتفق مع القواعد العلمية وأن يكون قابلاً لأن يصاغ بنظام برمجيات.
• والمتطلبات هي خاصية لنظام البرمجيات او وصف لهدف يمكن أن يحققه النظام ارضاءً للمستفيد وتحقيقاً لرغبته.
... تابع
•وهناك ثلاثة أنواع من المتطلبات.
–متطلبات لابد من أن يحققها نظام البرمجيات قيد الدراسة
–متطلبات مرغوبة لكن صعبة التحقيق
– متطلبات ممكن تحقيقها لكن يمكن الاستغناء عنها.
... تابع
•الخطوات اللازمة للتعرف على متطلبات المستخدم هي:-
• التعرف على المسألة أو المشكلة لدى المستخدم وتحليلها
•وصف هذه المسألة والمطالب ذات العلاقة بأسلوب مناسب
•توضيح أو تقديم نمط تجريبي للمستخدم عما تم فهمه وما يمكن عمله.
•توثيق المتطلبات وتدقيها.
... تابع
•من المواصفات للمتطلبات الجيدة أن تكون قابلة للاختبار أو القياس في مرحلة لاحقة من بناء النظام، وللاقتراب من تحقيق مواصفات قابلة للاختبار ينصح بما يلي:-
–استخدام وصف كمي لمصطلحات المتطلبات ومفاهيمها.
–استخدام مسميات ذات دلالة في المتطلبات.
–تجنب الازدواجية في المسميات.
... تابع
•المتطلبات نوعان:-
• النوع الوظيفي Functional Requirements
• هي المتطلبات التي تصف التفاعل بين نظام البرمجيات ومحيطه وعلى أساسها يستجيب النظام للإجراءات والتساؤلات ولا يعتمد على اللغة أو الأجهزة المستخدمة، تظهر عندما تعمل كل مكونات وأجزاء النظام معاً لتحقيق غرض ما.
• النوع غير الوظيفي Non-functional Requirements
• هي قيود توضع على النظام لتحديد خيارات التصميم واللغة والتجهيزات المستخدمة، مثل الاعتمادية والأمان والأداء والتأمين، reliability, performance, safety, and security فهذه الخصائص تتعلق بتصرف النظام فى بيئة عمله.
... تابع
•تساعد المتطلبات في تحقيق عدة أغراض من أهمها:-
–توفير معلومات لمطوري النظام ليفهموا ماذا تريد الجهة المستفيدة من النظام المقترح.
–توفير معلومات لمصمم النظام عن الوظائف والمزايا التي ستتوفر في النظام او يحققها.
– تحدد لفريق الاختبار والقياس ماذا عليهم أن يوضحوا في أثناء اختبارهم لإقناع المستفيد بأن النظام المنتج يحقق الغرض وما هو طلبه فعلاً.
... تابع
•لا بد أن للمتطلبات من ان تكون بمواصفات ومزايا عالية الجودة منها:-
–أن تكون صحيحة
–أن تكون متوافقة وغير متضاربة
–أن تكون واقعية ممكنة التحقيق
–ان تصف هدفاً محدداً من أهداف الجهة المستفيدة
–أن تكون قابلة للتحقق من أنها استوفيت عند الانتهاء من بناء النظام والبدء باختباره
– ان يكون تتبعها ممكناً من خلال تطبيق النظام للاطمئنان من تحققها.
توثيق المتطلبات
•هو عقد بين المستخدم والمصمم يدون فيه جميع الوظائف المطلوبة وينظم بطريقة تساعد على التعديل عند اقتضاء الحاجة بناءً على رغبة الطرفين ويشتمل التوثيق على:-
–تحديد معالم النظام الخارجية
–تحديد القيود الموضوعة عند تشغيله.
–سهولة التعديل.
–اعداد مرجع عند صياغة النظام او ادامته بعد تطبيقه.
–تدوين الأفكار والمفاهيم الأساسية لدورة النظام البرمجي.
– وصف الاستجابة المتوقعة في الحالات غير المتوقعة في الحالات غير الطبيعية.
... تابع
•يقصد بتوثيق المتطلبات، الأساس الذي يرجع عليه عندما يتطلب الأمر تعديل النظام، أو معرفة المهام التي تؤديها مقاطع البرنامج أو النظام. ويجب أن يحتوي التوثيق على جدول محتويات وفهرسة ويمكن أن ينظم على شكل وحدات على النحو التالي:-
–المقدمة
–نموذج النظام
–تطور النظام
–الوظائف المطلوبة
–القيود
–مسرد المصطلحات
... تابع
•ويعد توثيق المتطلبات وصفاً للمهام التي يؤديها النظام دون الخوض في طريقة تنفيذ هذه المهام ويتم الرجوع الى هذه الوثيقة أو العقد لمعرفة مواءمة التصميم للمهام والقيود والخصائص المتفق عليها ومن أهم هذه المهام والخصائص ما يلي:-
• السياق العام للنظام System Context
• تعريف المتطلبات Requirements Definition
• الأطراف المشتركة بالمتطلبات Participants
السياق العام للنظام System Context
• من المشكلات التي تظهر في تطوير أي نظام برمجي سوء الفهم بين المؤسسة او الادارة (المؤجر) وبين الذي يقوم ببناء النظام (الأجير)، لأن كل فريق ينظر الى المهام المطلوبة من وجهة نظره وتختلف وجهات النظر من جهة الى أخرى وعلى هذا الأساس فإن العلاقات التي تربط النظام المقترح والمستخدمين ونظام الحاسب والأنظمة الأخرى يجب أن تكون موثقة وواضحة ويستحسن تمثيل العلاقات على شكل مخططات تحدد العلاقات.
تعريف المتطلبات Requirements Definition
•ان وصف المتطلبات البرمجية يقتضي بيان المهام المتوقع أداؤها بصورة مقتضبة ويستلزم كتابة المواصفات بطريقة مفهومة لا تحتاج الى مص مصطلحات فنية ولا يفترض مستخدم النظام أن يتعرف طرف بناء النظام بل يهمه الواجهة.
•بعبارة أخرى يجب أن تكون المهام الوظيفية للنظام متكاملة ومتناغمة Complete and consistent.
الأطراف المشتركة بالمتطلبات Participants
•من أهم الملاحظات على الأطراف ذات العلاقة بنظام برمجي نذكر ما يلي:-
–تعدد هذه الأطراف
–احتمال وجود تعارض بين وجهات نظر هذه الأطراف
–ضرورة وجود محلل النظم للتوفيق بين وجهات النظر هذه
الأطراف المشتركة بالمتطلبات Participants
•من الأطراف الأساسية ذات العلاقة بمتطلبات نظام برمجي نذكر ما يلي:-
مراجعة المتطلبات
•يقصد بمراجعة المتطلبات التحقق من التوافق بين مواصفات المتطلبات وتعريفاتها وأن تفي هذه المتطلبات بحاجات الجهة المستفيدة، ويمكن تمييز مرحلتين في هذه العملية:-
•عملية المراجعة تتم من أجل التحقق من المتطلبات التي يمكن أن يتمثل في العديد من الأطراف مثل:-
–الجهة المستفيدة
–الجهة المطورة
قياس المتطلبات
•ان قياس خصائص المتطلبات يساعد في وضعها بصورة أفضل قبل الانتقال الى التصميم ومن أهم العناصر التي ينصح بقياسها نذكر ما يلي:-
–نواتج هذه المتطلبات بعد جمعها
–التغيير الذي يطرأ على المتطلبات
–التدقيق فيما اذا كان التغيير يحدث في كل اجزاء النظام او في اجزاء محددة منه
• عملية القياس هذه تعني مصمم النظام كما تعني مختبر النظام على حد سواء لكن كل من وجهات النظر التي تعنيه.
انتهت الوحدة
hamad bashir
أ.طروب أحمد مصطفى سعد, ملخص هندسة البرمجيات, ملخص هندسة البرمجيات طروب سعد, ملخص هندسة البرمجيات للدكتور طروب سعد, هندسة البرمجيات,
اطرح اي سؤال خاص بالموضوع في التعليقات