محاضرة2 عمليات البرمجيات هندسة برمجيات PDF
Document Details
Uploaded by CompactSerpentine2104
الجامعة الوطنية
Ma’afer Mansour
Tags
Summary
This document details different software processes. It covers topics such as software process models, the waterfall model, evolutionary development, and reuse-based development. The document also includes explanations of the problems and applicability of each process.
Full Transcript
Chapter2: Software Processes عمليات البرمجيات By: Ma’afer Mansour مقدمة عمليات البرمجيات Software Processes هى مجموعة من األنشطة المترابطة المتماسكة المطلوبة لتطوير وإنتاج ...
Chapter2: Software Processes عمليات البرمجيات By: Ma’afer Mansour مقدمة عمليات البرمجيات Software Processes هى مجموعة من األنشطة المترابطة المتماسكة المطلوبة لتطوير وإنتاج النظم البرمجية. واألنشطة العامة هى :توصيف المتطلبات ،التصميم ،التنفيذ ،اإلختبار، التحقق ،الصيانة ،إرتقاء النظم البرمجية. وتمثل هذه األنشطة فى نموذج عمليات البرمجيات. 2 نماذج عمليات البرمجيات نموذج العملية البرمجية Software process modelهو تمثيل مجرد لوصف العملية من منظور معين ،ومن النماذج العامة لعمليات البرمجيات: نموذج الشالل : The waterfall modelوهى عبارة عن مراحل واضحة المعالم منفصلة لوضع المواصفات والتطوير. التطوير اإلرتقائى :Evolutionary developmentوفيه تتداخل المواصفات مع التطوير. التطوير المعتمد على إعادة اإلستخدام : Reuse-based development بتجميع النظام من مكونات موجودة. 3 Waterfall model نموذج الشالل :مراحله Requirements analysis and.تعريف وتحليل وتحديد المتطلبات definition System and software design.تصميم النظام وتصميم البرمجيات Implementation and unit testing.تنفيذ وإختبار وحدات النظام Integration and system testing.تجميع النظام وإختباره Operation and maintenance.عمل النظم وصيانته 4 Requirements Waterfall model definition System and software design Implementation and unit testing Integr ation and system testing Operation and maintenance 5 من عيوب نموذج الشالل صعوبة تقدير وتكييف التغييرات أثناء العملية. من مشاكل نموذج الشالل :التقسيم غير المرن للمشروع إلى مراحل منفصلة ،يزيد من صعوبة اإلستجابة عن تغيير متطلبات المستهلك ،لهذا يصبح هذا النموذج مفيدا فقط ومرغوبا عند التفهم الكامل للمتطلبات وقلة التغييرات فيها إلى الحد األدنى. 6 التطوير اإلرتقائى Evolutionary development نموذج تطوير إلنتاج البرمجيات تتداخل فيه المواصفات مع التطوير. التطوير اإلستكشافى Exploratory development :الهدف .1 هو العمل مع المستهلك والتوصل إلى النظام النهائى من خالل خطوط عامة تمهيدية للمواصفات ويجب البدء بمتطلبات مفهومة جيدا. النماذج األولية Throw-away prototyping :الغرض هو .2 فهم متطلبات النظام ويجب البدء بمتطلبات مفهومة إلى حد ما. 7 Evolutionary development Concurr ent activities Initial Specification version Outline Intermediate Development description versions Final Validation version فى التطوير االرتقائي يتم وضع خطوط وصف عامة ثم تتم متابعة العمل بأنشطة متالقية مساعدة لتحديد المواصفات التي تعطى إصدا ار أوليا يمكن أن يتفاعل مرة أخرى مع تحديد المواصفات لتغييرها وتعديلها وهكذا ،ثم من تحديد المواصفات تبدأ أعمال التطوير التي توفر إصدارات وسيطة تتفاعل بدورها مع التطوير وتؤثر فيه وتتأثر به ،ثم يتم التحقق من النظام للوصول إلى اإلصدار النهائي.تتفاعل أيضا مراحل تحديد المواصفات والتطوير والتحقق مع بعضها البعض. 9 من مشاكل التطوير اإلرتقائى : Problemsنقص وضوح العمليات ،فقر هيكلية النظم ،وتحتاج مهارات خاصة بلغات تسمح بالنماذج األولية السريعة. قابلية تطبيق التطوير اإلرتقائى : Applicabilityللنظم الصغيرة والمتوسطة الحجم ذات التفاعلية ،وألج ازء من النظم الكبيرة مثل واجهة المستخدم ،وللنظم قصيرة األمد. 10 التطوير المبنى على إعادة االستخدام Reuse-oriented development يعتمد على إعادة اإلستخدام التقليدى حيث يتم تجميع النظام من عدة مكونات موجودة أو من نظم أخرى ).(Commercial-off-the-shelf مراحل العملياتProcess stages. تحليل المكوناتComponent analysis. .1 تعديل اإلحتياجاتRequirements modification. .2 تصميم النظام بإعادة اإلسنخدامSystem design with reuse. .3 التطوير والتجميعDevelopment and integration. .4 خطواتها :توصيف المتطلبات ،تحليل المكونات ،تعديل المتطلبات ،تصميم النظام بإعادة اإلستخدام ،التطوير والتجميع ،التحقق من النظام. 11 Reuse-oriented development Requirements Component Requirements System design specification analysis modification with reuse Development System and integration validation 12 مواصفات البرمجيات Software specification هى عملية وضع وتحديد الخدمات المطلوبة والقيود المفروضة على تشغيل النظام وتطويره ،وتتضمن عملية هندسة المتطلبات، دراسة الجدوى ،إستنباط وتحليل المتطلبات ،تحديد مواصفات المتطلبات ،التحقق من المتطلبات. 13 عملية هندسة االحتياجات ينتج عن دراسة الجدوى تقرير جدوى ومن استنباط وتحليل المتطلبات يتم تقديم نماذج النظام.عند توصيف المتطلبات يجرى تحديد متطلبات المستخدم والنظام ،وبعد التحقق من المتطلبات يتم توثيق المتطلبات الناتجة عن متطلبات النظام والمستخدم. 14 عمليات تصميم البرمجيات The software design process بعد تحديد مواصفات المتطلبات تمر أنشطة التصميم بعدة مراحل تبدأ بتحديد معمارية التصميم الذى يقود إلى موجز مجرد للمواصفات ثم يتم تصميم واجهة االستخدام وتصميم مكونات وهيكل البيانات وتصميم الخطوات المنطقية للتنفيذ. 15 عمليات تصميم البرمجيات The software design process طرق التصميمDesign methods : منهجيات نمطية لتطوير تصميم البرمجيات ،يتم توثيق التصميم كمجموعة نماذج رسومية ،والنماذج المحتملة منها :نموذج تدفق البيانات ،نموذج خصائص الجزئيات ،النموذج الهيكلى ،ونماذج الكائن. 16 تصميم وتنفيذ البرمجيات Software design and implementation هي العملية الناتجة عن تحويل مواصفات النظام إلى نظام تنفيذي ،وفى تصميم البرمجيات يتم تصميم هيكل البرمجيات التي تحقق هذه المواصفات أما التنفيذ فيعنى تحويل هذا الهيكل إلى برامج تنفيذية ،وتتصل أنشطة التصميم والتنفيذ ببعضها البعض اتصاال وثيقا وقد تتداخل فيما بينها. 17 البرمجة وإكتشاف وتصحيح العلل Programming and debugging تبدأ بتحديد المشكلة وتحديد الخطأ فى البرنامج ،يتبعها تصميم إصالح العطل ،ثم إصالح الخطأ ،وإعادة إختبار البرنامج. 18 التحقق من البرمجيات Software validation ثبوت الصحة والتأكيد والتحقق هو بيان أن النظام يطابق المواصفات ويلبى متطلبات المستهلك. عمليات الفحص واإلختبارThe testing process : تتضمن إختبار المكونات :إختبار الوحدات ،إختبار المركب البرمجى. يحتوى إختبار التجميع على :إختبار النظم الفرعية ،وإختبار النظام. يعنى إختبار القبول :إختبار يقوم به المستخدم. 19 The testing process Unit testing Module testing Sub-system testing System testing Acceptance testing Component Integration testing User testing testing 20 مراحل االختبار Testing stages .1إختبار الوحدات Unit testingبإختبار األجزاء المنفردة. .2إختبار المركبات البرمجية Module testingبإختبار المجموعات المرتبطة من األجزاء التى تعتمد عل بعضها البعض. .3إختبار النظام الفرعى : Sub-system testingبتجميع المكونات البرمجية فى نظام فرعى وإختبارها ،ويتم التركيز على إختبار واجهة المستخدم. .4إختبار النظام System testingبإختبار النظام ككل وإختبار الخصائص المنبثقة. .5إختبار القبول Acceptance testingبإختبار النظام ببيانات المستهلك لفحص قبوله. 21 إرتقاء البرمجياتSoftware evolution : كلما تغيرت المتطلبات خالل تغير ظروف األعمال فإن البرمجيات التى تدعم هذه األعمال يجب أن تتضمن التغيرات الجديدة وأن تتغير وتتكيف تبعا لذلك. إرتقاء النظامSystem evolution : يتضمن األنشطة األتية: تعريف متطلبات النظام ،تقييم النظم الموجودة ،إقتراح تغييرات النظام ،تعديل النظام ،وصوال للنظام الجديد. 22 System evolution Define system Assess existing Propose system Modify requirements systems changes systems Existing New systems system 23