🎧 New: AI-Generated Podcasts Turn your study notes into engaging audio conversations. Learn more

محاضرة2عمليات_البرمجيات_هندسة_برمجيات.pdf

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

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

Use Quizgecko on...
Browser
Browser