هندسة برمجيات

39
ات ي ج م ر لب ا ة س د ن ه و ات ي ج م ر لب ا ات ي ج م ر لب ا ة س د ن ه و ات ي ج م ر لب ا م ي د ق ت م ي د ق ت ظ ار حاف ي ج م" ن يء الد لا ع ا.د. ظ ار حاف ي ج م" ن يء الد لا ع ا.د. ومات ل ع م ل م ا ظ ن اد ن س ا ومات ل ع م ل م ا ظ ن اد ن س ا ود ع س9 ك ل م ل ا ة ع م ا ح ود ع س9 ك ل م ل ا ة ع م ا ح
  • Upload

    -
  • Category

    Documents

  • view

    362
  • download

    10

description

محاضرة اولى

Transcript of هندسة برمجيات

Page 1: هندسة برمجيات

البرمجيات وهندسة البرمجيات وهندسة البرمجياتالبرمجيات

تقديمتقديما.د. عالء الدين مختار حافظا.د. عالء الدين مختار حافظ

استاذ نظم المعلوماتاستاذ نظم المعلوماتجامعة الملك سعودجامعة الملك سعود

Page 2: هندسة برمجيات

الفصل األولالفصل األول

البرمجيات وهندسة ا�لبرمجياتالبرمجيات وهندسة ا�لبرمجيات

Page 3: هندسة برمجيات

مقدمةمقدمةهندس''ة ال''برمجيات ه''ى فرع المعرف''ة الذى يهدف هندس''ة ال''برمجيات ه''ى فرع المعرف''ة الذى يهدف

تطوي'ر نظ'م ال'برمجيات، تطوي'ر نظ'م ال'برمجيات، ووإل'ى اإلنتاج الحدى التكلف'ة إل'ى اإلنتاج الحدى التكلف'ة وتعد البرمجيات شيئاً مجرداً غير ملمو'س.وتعد البرمجيات شيئاً مجرداً غير ملمو'س.

SoftwareSoftware البرمجياتالبرمجياتليس'ت ه'ى برام'ج الكم'بيوتر فق'ط لكنه'ا أيضاً ك'ل ليس'ت ه'ى برام'ج الكم'بيوتر فق'ط لكنه'ا أيضاً ك'ل

التوثي''ق المرتب''ط' به''ا، وبيانات التجهي''ز والتكوي''ن التوثي''ق المرتب''ط' به''ا، وبيانات التجهي''ز والتكوي''ن الالزمة لجعل البرامج تعمل بصورة صحيحة.الالزمة لجعل البرامج تعمل بصورة صحيحة.

Page 4: هندسة برمجيات

يتكون نظام البرمجيات من:يتكون نظام البرمجيات من:.عدد من البرامج المنفصلة.عدد من البرامج المنفصلة.ملفات التكوين التى تستخدم إلعادة هذه البرامج.ملفات التكوين التى تستخدم إلعادة هذه البرامج.مستندات توثيق النظام التى تصف هيكل النظام.مستندات توثيق النظام التى تصف هيكل النظام

هناك نوعان من المنتجات البرمجية:هناك نوعان من المنتجات البرمجية:ال''برامج العام''ة الشامل''ةال''برامج العام''ة الشامل''ة Generic ProductsGeneric Products وه''ى نظ''م وه''ى نظ''م

مستقلة تنت'ج بواس'طة منظمات التطوير وتباع فى السوق مستقلة تنت'ج بواس'طة منظمات التطوير وتباع فى السوق ألى عميل وأحياناً يطلق عليها أسم البرمجيات المغلقة.ألى عميل وأحياناً يطلق عليها أسم البرمجيات المغلقة.

ال'برمجيات الجاهزةال'برمجيات الجاهزة Bespoke ProductsBespoke Products وه'ى نظ'م مخص'صة وه'ى نظ'م مخص'صةلعمي''ل معي''ن يطل''ب تجهيزه''ا ويت''م تطويره''ا بواس''طة لعمي''ل معي''ن يطل''ب تجهيزه''ا ويت''م تطويره''ا بواس''طة

شركة أو مطور تخصيصاً لهذا العميل.شركة أو مطور تخصيصاً لهذا العميل.

Page 5: هندسة برمجيات

Software Software هندسة البرمجياتهندسة البرمجياتEngineeringEngineering

،ه'ى فرع م'ن المعرف'ة يهت'م بك'ل أشكال إنتاج ال'برمجيات، ه'ى فرع م'ن المعرف'ة يهت'م بك'ل أشكال إنتاج ال'برمجياتويج''ب أ''ن يتبن''ى مهندس ال''برمجيات اإلقتراب المنظ''م ويج''ب أ''ن يتبن''ى مهندس ال''برمجيات اإلقتراب المنظ''م والنظام'''ى ف'''ى عمل'''ه، ويس'''تخدم األدوات المناس'''بة والنظام'''ى ف'''ى عمل'''ه، ويس'''تخدم األدوات المناس'''بة والتقنيات الضروري''ة إعتماداً عل''ى المشكل''ة الت''ى يقوم والتقنيات الضروري''ة إعتماداً عل''ى المشكل''ة الت''ى يقوم

بحلها وقيود التطوير المفروضة والموارد المتاحة.بحلها وقيود التطوير المفروضة والموارد المتاحة. ه''ى فرع م''ن فروع المعرف''ة الهندس''ية يخت''ص بك''ل ه''ى فرع م''ن فروع المعرف''ة الهندس''ية يخت''ص بك''ل

أشكال إنتاج البرمجي'''''ا بدءاً م'''''ن المراح'''''ل المبكرة أشكال إنتاج البرمجي'''''ا بدءاً م'''''ن المراح'''''ل المبكرة لخصائص النظام حتى صيانة هذا النظام بع'د إستخدامه.لخصائص النظام حتى صيانة هذا النظام بع'د إستخدامه.

Page 6: هندسة برمجيات

SW and System EngineeringSW and System Engineering هندسة البرمجيات وهندسة النظم:هندسة البرمجيات وهندسة النظم:

الفرق بي'ن هندس'ة ال'برمجيات وهندس'ة النظ'م أ'ن هندس'ة الفرق بي'ن هندس'ة ال'برمجيات وهندس'ة النظ'م أ'ن هندس'ة النظ''م تهت''م بك''ل أشكال تطوي''ر النظ''م المبني''ة عل''ى النظ''م تهت''م بك''ل أشكال تطوي''ر النظ''م المبني''ة عل''ى الكم''بيوتر بم''ا فيه''ا ال''برامج وعمليات الهندس''ة، وتع''د الكم''بيوتر بم''ا فيه''ا ال''برامج وعمليات الهندس''ة، وتع''د

هندسة البرمجيات جزءاً من هذه العملية.هندسة البرمجيات جزءاً من هذه العملية.

Software ProcessSoftware Processعمليات البرمجيات:عمليات البرمجيات:

ه'ى مجموع'ة م'ن األنشط'ة والنتائ'ج المرتبط'ة به'ا الت'ى تنت'ج ه'ى مجموع'ة م'ن األنشط'ة والنتائ'ج المرتبط'ة به'ا الت'ى تنت'ج منتجات ال'برمجيات، أ'و هدفه'ا تطوي'ر وارتقاء ال'برمجيات، منتجات ال'برمجيات، أ'و هدفه'ا تطوي'ر وارتقاء ال'برمجيات، ويت'''م تنفي'''ذ غالبي'''ة هذه األنشط'''ة بواس'''طة مهندس''ى ويت'''م تنفي'''ذ غالبي'''ة هذه األنشط'''ة بواس'''طة مهندس''ى

البرمجياتالبرمجيات

Page 7: هندسة برمجيات

األنشطة العامة فى عمليات البرمجيات:األنشطة العامة فى عمليات البرمجيات: م''ا الذى يج''ب عل''ى م''ا الذى يج''ب عل''ى مواص''فات ال''برمجيات:مواص''فات ال''برمجيات:

النظام ان يفعله وما هى قيود تطويرهالنظام ان يفعله وما هى قيود تطويره إنتاج نظام ال'برمجيات ويج'ب إنتاج نظام ال'برمجيات ويج'ب تطوي'ر ال'برمجيات:تطوي'ر ال'برمجيات: تحقق البرمجيات المنتجة المواصفات. تحقق البرمجيات المنتجة المواصفات.ننأأ فح'ص وإختبار أ'ن ال'برمجيات تحق'ق م'ا فح'ص وإختبار أ'ن ال'برمجيات تحق'ق م'ا التثب'ت:التثب'ت:

يريده العميل.يريده العميل. تغيي''ر وتطوي''ر ال''برمجيات تغيي''ر وتطوي''ر ال''برمجيات إرتقاء ال''برمجيات:إرتقاء ال''برمجيات:

إستجابة لمقتضيات التغيير.إستجابة لمقتضيات التغيير.

Page 8: هندسة برمجيات

Software Process ModelSoftware Process Model نموذج عمليات البرمجيات:نموذج عمليات البرمجيات: أ''و تمثي'ل مبس''ط لعمليات ال''برمجيات أ''و تمثي'ل مبس''ط لعمليات ال''برمجيات ففعبارة ع''ن وص''عبارة ع''ن وص''

تعرض هذه العمليات م'''''ن منظور خاص مث'''''ل منظرو تعرض هذه العمليات م'''''ن منظور خاص مث'''''ل منظرو مخط'''ط تتاب'''ع العم'''ل وتتباع األنشط'''ة ومنظور تدف'''ق مخط'''ط تتاب'''ع العم'''ل وتتباع األنشط'''ة ومنظور تدف'''ق

البيانات ومنظور القواعد واألعمال ......البيانات ومنظور القواعد واألعمال ......من نماذج العمليات العامة:من نماذج العمليات العامة:

.نموذج الشالل.نموذج الشالل WaterfallWaterfall.التطوير اإلرتقائى.التطوير اإلرتقائى Evolutionary DevelopmentEvolutionary Developmentة إستخدام المكونات.ة إستخدام المكونات.ددالتجمي'ع بإعاالتجمي'ع بإعا Integration from Reusable Integration from Reusable

ComponentsComponents

Page 9: هندسة برمجيات

نماذج عمليات البرمجياتنماذج عمليات البرمجياتSoftware Process ModelSoftware Process Model

الذى يمث''ل األنشط''ة ف''ى مراح''ل عمليات الذى يمث''ل األنشط''ة ف''ى مراح''ل عمليات WaterfallWaterfall نموذج الشالل:نموذج الشالل:مس'تقلة مث'ل توص'يف المتطلبات والتص'ميم والتنفي'ذ واختبار والص'يانة، مس'تقلة مث'ل توص'يف المتطلبات والتص'ميم والتنفي'ذ واختبار والص'يانة، وبع'د تعري'ف ك'ل مرحل'ة يت'م التطوي'ر بإتباع ك'ل مرحل'ة واإلنتقال للمرحل'ة وبع'د تعري'ف ك'ل مرحل'ة يت'م التطوي'ر بإتباع ك'ل مرحل'ة واإلنتقال للمرحل'ة الت'ى تليه'ا، ي'بين نموذج الشالل تتاب'ع األنشط'ة ف'ى العمليات م'ع مدخالته'ا الت'ى تليه'ا، ي'بين نموذج الشالل تتاب'ع األنشط'ة ف'ى العمليات م'ع مدخالته'ا

ومخرجاتها وإعتماديتها.ومخرجاتها وإعتماديتها.بالتداخل البينى بالتداخل البينى Evolutionary DevelopmentEvolutionary Development نموذج التطوير اإلرتقائى:نموذج التطوير اإلرتقائى:

ألنشط'ة توص'يف المتطلبات والتطوي'ر والتثب'ت، وينش'أ نظام أول'ى يتطور ألنشط'ة توص'يف المتطلبات والتطوي'ر والتثب'ت، وينش'أ نظام أول'ى يتطور فجأ'ة م'ن مواص'فات مجردة ث'م يعاد التدقي'ق م'ع مدخالت العمي'ل إلنتاج فجأ'ة م'ن مواص'فات مجردة ث'م يعاد التدقي'ق م'ع مدخالت العمي'ل إلنتاج

النظام يلبى إحتياجات الهكيل.النظام يلبى إحتياجات الهكيل. System System ::نموذج تجمي��ع النظام م��ن مكونات إعادة اإلستخدامنموذج تجمي��ع النظام م��ن مكونات إعادة اإلستخدام

AssemblyAssembly وتفترض هذا التقني'ة أ'ن أجزاء النظام موجودة بالفع'ل، وترك'ز وتفترض هذا التقني'ة أ'ن أجزاء النظام موجودة بالفع'ل، وترك'زعمليات تطوي'ر النظام عل'ى تجمي'ع هذه األجزاء بدال م'ن تطوي'ر النظام عمليات تطوي'ر النظام عل'ى تجمي'ع هذه األجزاء بدال م'ن تطوي'ر النظام

من الشئ.من الشئ.

Page 10: هندسة برمجيات

Cost of SECost of SE تكاليف هندسة البرمجيات:تكاليف هندسة البرمجيات:

% م''ن التكالي''ف تعتبر% م''ن التكالي''ف تعتبر6060بص''فة تقديري''ة فإ''ن حوال''ى بص''فة تقديري''ة فإ''ن حوال''ى % ه'ى % ه'ى 4040 وحوال'ى وحوال'ى Development CostDevelopment Cost تكالي'ف تطوي'رتكالي'ف تطوي'ر

، وبالنس'بة لل'برمجيات ، وبالنس'بة لل'برمجيات Testing CostTesting Cost تكالي'ف فح'ص وإختبارتكالي'ف فح'ص وإختبارالخاصة فإن تكاليف اإلرتقاء تتجاوز تكاليف التطوير.الخاصة فإن تكاليف اإلرتقاء تتجاوز تكاليف التطوير.

SE MethodsSE Methods طرق ومنهجيات هندسة البرمجياتطرق ومنهجيات هندسة البرمجياتطرق هندس'ة ال'برمجيات ه'ى اقتراب مهيك'ل أ'و منهجي'ة طرق هندس'ة ال'برمجيات ه'ى اقتراب مهيك'ل أ'و منهجي'ة

هيكلي'''ة لتطوي'''ر ال'''برمجيات تحتوى عل'''ى نماذج النظام هيكلي'''ة لتطوي'''ر ال'''برمجيات تحتوى عل'''ى نماذج النظام والمالحظات والقواع'د ونص'ائح التص'ميم والخطوط العام'ة والمالحظات والقواع'د ونص'ائح التص'ميم والخطوط العام'ة

للعمليات.للعمليات.

Page 11: هندسة برمجيات

بمساعدة البرمجيات بمساعدة هندسة البرمجيات هندسة CASECASEالكمبيوتر الكمبيوتر

ه'و إختص'ار كلمات هندس'ة ال'برمجيات بمس'اعدة ه'و إختص'ار كلمات هندس'ة ال'برمجيات بمس'اعدة CASECASEمص'طلح مص'طلح Computer Aided Software EngineeringComputer Aided Software Engineeringالكم''بيوتر الكم''بيوتر

ويغط'ى نطاقاً واس'عاً م'ن أنواع ال'برامج المختلف'ة الت'ى تس'تخدم ويغط'ى نطاقاً واس'عاً م'ن أنواع ال'برامج المختلف'ة الت'ى تس'تخدم ف''ى دع''م أنشط''ة عمليات ال''برمجيات مث''ل تحلي''ل المتطلبات ف''ى دع''م أنشط''ة عمليات ال''برمجيات مث''ل تحلي''ل المتطلبات

ونمذجة النظام وإكتشاف وتصحيح العلل واإلختبار.ونمذجة النظام وإكتشاف وتصحيح العلل واإلختبار.

هندس'ة ال'برمجيات بمس'اعدة الكم'بيوتر عبارة ع'ن نظ'م برمجي'ة هندس'ة ال'برمجيات بمس'اعدة الكم'بيوتر عبارة ع'ن نظ'م برمجي'ة توف''ر دعماً آلياً ألنشط''ة عمليات ال''برمجيات وتس''تخدم نظ''م توف''ر دعماً آلياً ألنشط''ة عمليات ال''برمجيات وتس''تخدم نظ''م

CASECASE.لدعم الطرق والمنهجيات. لدعم الطرق والمنهجيات

Page 12: هندسة برمجيات

الجيدة البرمجيات الجيدة خصائص البرمجيات خصائصالمواصفاتالشرح

الب''د م''ن وجود إمكاني''ة تعدي''ل ال''برنامج حتى يفى بحاجات العميل المتغيرة.

قابلية التعديل(Maintainability)

وهذا يتضم'''ن مواص'''فات أخرى مث'''ل التماس'''ك، توفي'''ر األم'''ن والس'''المة، وإمكاني''ة اإلطمئنان إل''ى أداء ال''برنامج، بمعن''ى أن''ه ف''ى حال''ة إنهيار النظام، ال يج'ب أ'ن يس'بب ال'برنامج خس'ائر مادي'ة

أوإقتصادية.

اإلعتمادية(Dependability)

يج''ب أ''ن يحس''ن ال''برنامج إس''تخدام الموارد المتاح''''ة مث''''ل الذاكرة وقدرة

المعالج بأفضل صورة ممكنة.

الفاعلية(Efficiency)

يج'ب أ'ن يمل'ك ال'برنامج واجه'ة إس'تخدام مناس'''بة،' ومس'''تندات مص'''احبة لشرح

إمكانياته وتوضيح تصميمه.

سهولة اإلستخدام(Usability)

Page 13: هندسة برمجيات

البرمجيات هندسة تواجه البرمجيات تحديات هندسة تواجه تحديات

هناك تحديات تواجه هندسة البرمجيات هى: هناك تحديات تواجه هندسة البرمجيات هى: .اإللتقاء م''ع النظ''م القديمة الموروثة.اإللتقاء م''ع النظ''م القديمة الموروثةLegacy Legacy

SystemsSystems.التنوع ينتج التغاير.التنوع ينتج التغايرHeterogeneityHeterogeneity اإلس'''''''تجابة لطل'''''''ب تقلي'''''''ل وق'''''''ت اإلس'''''''تجابة لطل'''''''ب تقلي'''''''ل وق'''''''ت

Delivery TimesDelivery Timesالتسليم.التسليم.

Page 14: هندسة برمجيات

واألخالقية اإلحترافية واألخالقية المسئولية اإلحترافية المسئوليةProfessional & Ethical Professional & Ethical

ResponsibilityResponsibilityموضوعات المسئولية اإلحترافية واألخالقيةموضوعات المسئولية اإلحترافية واألخالقية

.الخصوصية.الخصوصية ConfidentialityConfidentiality.الكفاءة والتخصص.الكفاءة والتخصصCompetenceCompetence.حقوق الملكية الفكرية.حقوق الملكية الفكريةIntellectual Intellectual

property rightsproperty rights.إساءة إستخدام الكمبيوتر.إساءة إستخدام الكمبيوترComputer MisuseComputer Misuse

Page 15: هندسة برمجيات

الفصل الثانىالفصل الثانى

على المبنية النظم على هندسة المبنية النظم هندسةالكمبيوترالكمبيوتر

Page 16: هندسة برمجيات

مقدمةمقدمة المبني''ة عل''ى المبني''ة عل''ى Systems EngineeringSystems Engineeringتهت''م هندس''ة النظ''م تهت''م هندس''ة النظ''م

implementingimplementingوإنجاز وإنجاز DesigningDesigning الكم''''بيوتر بتص''''ميمالكم''''بيوتر بتص''''ميم والت'ى والت'ى operating systemsoperating systemsوتشغي'ل النظ'م وتشغي'ل النظ'م deployingdeployingوتجهيزوتجهيز

، ، SoftwareSoftware، وال''برمجيات ، وال''برمجيات HardwareHardwareبدوره''ا تتض'م''ن العتاد' بدوره''ا تتض'م''ن العتاد' ..PeoplePeopleوالبشر والبشر

النظام: عبارة ع'ن تجمي'ع هادف م'ن عدة مكونات مرتبط'ة ببعضه'ا النظام: عبارة ع'ن تجمي'ع هادف م'ن عدة مكونات مرتبط'ة ببعضه'ا أ'''و أ'''و ًًتعم'''ل معاً لتحقي'''ق هدف معي'''ن، وق'''د يكون النظام برمجياتعم'''ل معاً لتحقي'''ق هدف معي'''ن، وق'''د يكون النظام برمجيا

ميكانيكياً أ'''و كهربياً أ'''و عتاداً يقوم بتشغيل'''ه األشخاص، وتعتم'''د ميكانيكياً أ'''و كهربياً أ'''و عتاداً يقوم بتشغيل'''ه األشخاص، وتعتم'''د مكونات النظام عل'ى بعضه'ا وتمتزج خص'ائص وس'لوكيات مكونات مكونات النظام عل'ى بعضه'ا وتمتزج خص'ائص وس'لوكيات مكونات

النظام وال يمكن فصلها أو فكها.النظام وال يمكن فصلها أو فكها.

Page 17: هندسة برمجيات

البرمجيات وهندسة النظمالبرمجيات وهندسة النظمEmergent system propertiesEmergent system properties الخصائص المنبثقة:الخصائص المنبثقة:

ه'ى خص'ائص مميزة للنظام كك'ل وليس'ت لمكونات'ه أ'ى ه'ى خص'ائص مميزة للنظام كك'ل وليس'ت لمكونات'ه أ'ى م''ن الخص''ائص الت''ى م''ن الخص''ائص الت''ى خص''ائص النظام بص''فة عام''ة بدالخص''ائص النظام بص''فة عام''ة بدال

يمك'ن إشتقاقه'ا م'ن مكونات النظام، م'ن أمثل'ة الخص'ائص يمك'ن إشتقاقه'ا م'ن مكونات النظام، م'ن أمثل'ة الخص'ائص الحرجة:الحرجة:

.الوزن الكلى للنظام.الوزن الكلى للنظام The overall weight of the systemThe overall weight of the system

.إعتمادية النظام.إعتمادية النظام The reliability of the systemThe reliability of the system

.قابلية إستخدام النظام.قابلية إستخدام النظام The usability of a systemThe usability of a system

Page 18: هندسة برمجيات

أنواع الخصائص المنبثقةأنواع الخصائص المنبثقة Types of emergent propertyTypes of emergent property

تظه'ر تظه'ر Functional propertiesFunctional properties- الخص'ائص الوظيفي'ة: - الخص'ائص الوظيفي'ة: عندم''ا تعم''ل ك''ل مكونات وأجزاء النظام معاً لتحقي''ق عندم''ا تعم''ل ك''ل مكونات وأجزاء النظام معاً لتحقي''ق

غرض ما.غرض ما. Non-functional emergent Non-functional emergent - الخص'ائص الغي'ر وظيفية :- الخص'ائص الغي'ر وظيفية :

propertiesproperties،مث'ل اإلعتمادي'ة واألمان واألداء والتأمي'ن، مث'ل اإلعتمادي'ة واألمان واألداء والتأمي'ن reliability, performance, safety, and securityreliability, performance, safety, and security

فهذه الخصائص تتعلق بتصرف النظام فى بيئة عمله.فهذه الخصائص تتعلق بتصرف النظام فى بيئة عمله.

Page 19: هندسة برمجيات

النظم وبيئتهاالنظم وبيئتها Systems and their Systems and their

environmentenvironment النظ'م غي'ر مس'تقلة لكنه'ا تتواج'د ف'ى' بيئ'ة، وق'د تغي'ر النظ'م غي'ر مس'تقلة لكنه'ا تتواج'د ف'ى' بيئ'ة، وق'د تغي'ر

البيئة وظيفة النظام، وتؤثر البيئة على' وظيفية النظام.البيئة وظيفة النظام، وتؤثر البيئة على' وظيفية النظام.

System hierarchiesSystem hierarchies طبقات' النظام:طبقات' النظام: ف''ى نظام المبان''ى': تتواج''د' المبان''ى ف''ى ش'وارع ه''ى ف''ى نظام المبان''ى': تتواج''د' المبان''ى ف''ى ش'وارع ه''ى

نفس'ها جزء م'ن مدين'ة، يحتوى نظام المبن'ى أيضاً عل'ى نفس'ها جزء م'ن مدين'ة، يحتوى نظام المبن'ى أيضاً عل'ى نظ'م فرعي'ة مث'ل نظام التأمي'ن، نظام التس'خين، نظام نظ'م فرعي'ة مث'ل نظام التأمي'ن، نظام التس'خين، نظام

اإلضاءة، نظام طاقة، نظام صرف، نظام مياه'…..اإلضاءة، نظام طاقة، نظام صرف، نظام مياه'…..

Page 20: هندسة برمجيات

System hierarchiesSystem hierarchies

Securitysystem

Heatingsystem

Lightingsystem

Powersystem

Wastesystem

Watersystem

Town

Street

Building

Page 21: هندسة برمجيات

العوامل البشرية والتنظيميةالعوامل البشرية والتنظيمية Human and organisational factorsHuman and organisational factors

من العوامل البشرية والتنظيمية:من العوامل البشرية والتنظيمية: :تغييرات العمليات: تغييرات العملياتProcess changesProcess changes ه''ل يحتاج ه''ل يحتاج

النظام تغييراً ليقوم بعملياته فى البيئة.النظام تغييراً ليقوم بعملياته فى البيئة.:تغييرات األعمال:تغييرات األعمال Job changesJob changes ه''ل يقوم النظام ه''ل يقوم النظام

بتقلي'ل مهارة المس'تخدمين ف'ى بيئ'ة أ'و يس'بب تغييره'م بتقلي'ل مهارة المس'تخدمين ف'ى بيئ'ة أ'و يس'بب تغييره'م طريقة العمل.طريقة العمل.

:التغييرات التنظيمي'ة: التغييرات التنظيمي'ةOrganisational changesOrganisational changes هل يغير النظام بنية النفوذ فى المنظمة.هل يغير النظام بنية النفوذ فى المنظمة.

Page 22: هندسة برمجيات

نمذجة هيكل النظامنمذجة هيكل النظام System architecture modellingSystem architecture modelling

،ت'بين نماذج بني'ة النظام النظ'م الفرعي'ة والتنس'يق ال'بينى فيم'ا بينه'ا، ت'بين نماذج بني'ة النظام النظ'م الفرعي'ة والتنس'يق ال'بينى فيم'ا بينه'اوتوض''ع غالباً ف''ى مخططات ص''ندوقية. يعرض نموذج هيك''ل النظام وتوض''ع غالباً ف''ى مخططات ص''ندوقية. يعرض نموذج هيك''ل النظام شكالً مجرداً للنظ'م الفرعي'ة الت'ى يتك'ون منه'ا النظام، وق'د يحتوى عل'ى شكالً مجرداً للنظ'م الفرعي'ة الت'ى يتك'ون منه'ا النظام، وق'د يحتوى عل'ى المعلومات الرئيس'ية الت'ى تتدف'ق بي'ن األنظم'ة الفرعي'ة، وعادة م'ا يمث'ل المعلومات الرئيس'ية الت'ى تتدف'ق بي'ن األنظم'ة الفرعي'ة، وعادة م'ا يمث'ل

، وق''د يعرف األنواع ، وق''د يعرف األنواع Diagram BlockDiagram Blockعل''ى هيئ''ة مخط''ط ص''ندوقى عل''ى هيئ''ة مخط''ط ص''ندوقى المختلفة للمكونات الوظيفية فى هذا النموذج.المختلفة للمكونات الوظيفية فى هذا النموذج.

:مثال نظام إنذار الدخالء: مثال نظام إنذار الدخالءIntruder alarm systemIntruder alarm system

أنواع مكونات نظام اإلنذ'ار ه''''ى المس''''تشعرات والمشغ''''ل اآلل''''ى أنواع مكونات نظام اإلنذ'ار ه''''ى المس''''تشعرات والمشغ''''ل اآلل''''ى، ، SensorSensor والحس'''اب والتنس'''يق واالتص'''االت والواجه'''ةوالحس'''اب والتنس'''يق واالتص'''االت والواجه'''ة ActuatorActuator ، ،

ComputationComputation ، ، CommunicationCommunication ، ، Co-ordinationCo-ordination ، ، InterfaceInterface

Page 23: هندسة برمجيات

Intruder alarm systemIntruder alarm system

Alarmcontroller

Voicesynthesizer

Movementsensors

Siren

Doorsensors

Telephonecaller

Externalcontrol centre

Page 24: هندسة برمجيات

مثال أخ''ر لمعماري''ة نظام تحك''م تتب''ع حرك''ة مالح''ة مثال أخ''ر لمعماري''ة نظام تحك''م تتب''ع حرك''ة مالح''ةجوية:جوية:

لجم'ع لجم'ع مكونات النظام الوظيفي'ة ه'ى مكونات إس'تشعارمكونات النظام الوظيفي'ة ه'ى مكونات إس'تشعارالمعلومات م''ن بيئ''ة النظام، مكونات المشغ''ل اآلل''ى المعلومات م''ن بيئ''ة النظام، مكونات المشغ''ل اآلل''ى تس'بب بع'ض التغيي'ر ف'ى بيئ'ة النظام، مكونات حس'اب تس'بب بع'ض التغيي'ر ف'ى بيئ'ة النظام، مكونات حس'اب

دخالت نتاج مخرجات، دخالت نتاج مخرجات، ممتقوم بعم''ل حس''ابات م''ن التقوم بعم''ل حس''ابات م''ن المكونات إتص'''االت تس'''مح بإتص'''ال مكونات وأجزاء مكونات إتص'''االت تس'''مح بإتص'''ال مكونات وأجزاء النظام م''ع بعضه''ا البع''ض، مكونات تنس''يق لتنس''يق النظام م''ع بعضه''ا البع''ض، مكونات تنس''يق لتنس''يق ردود أفعال مكونات النظام، مكونات واجه''''ة تيس''''ر ردود أفعال مكونات النظام، مكونات واجه''''ة تيس''''ر

تفاعل مكونات النظام األخرى.تفاعل مكونات النظام األخرى.

Page 25: هندسة برمجيات

Data comms.system

Transpondersystem

Radarsystem

Aircraftcomms.

Telephonesystem

Flight plandatabase

Backupposition

processor

Positionprocessor

Comms.processor

Backup comms.processor

Aircraftsimulation

system

Weather mapsystem

Accountingsystem

Controllerinfo. system

Controllerconsoles

Activity loggingsystem

ATC systemarchitecture

Page 26: هندسة برمجيات

The system engineering processThe system engineering process عمليات هندسة النظامعمليات هندسة النظام عادة م''ا تتخ''ذ عمليات هندس''ة النظ''م شك''ل نموذج عمليات عادة م''ا تتخ''ذ عمليات هندس''ة النظ''م شك''ل نموذج عمليات

الشالل بم'ا فيه'ا م'ن خطوات: تحدي'د المواص'فات، التص'ميم، الشالل بم'ا فيه'ا م'ن خطوات: تحدي'د المواص'فات، التص'ميم، التطوير، التجميع.التطوير، التجميع.

Inter-disciplinary Inter-disciplinary اإلرتباط بي'''''ن العلوم المعرفية:اإلرتباط بي'''''ن العلوم المعرفية: involvementinvolvement

تحتاج فروع المعرف'''ة إل''ى التعرف عل'''ى نق'''ط قوة الفروع تحتاج فروع المعرف'''ة إل''ى التعرف عل'''ى نق'''ط قوة الفروع األخرى وأنشطته''ا بدال م''ن التنس''يق اإلضطرارى بينه''ا عل''ى األخرى وأنشطته''ا بدال م''ن التنس''يق اإلضطرارى بينه''ا عل''ى

مضض فى عمليات الهندسة.مضض فى عمليات الهندسة. ف'ى مثال التحك'م ف'ى حرك'ة المالح'ة الجوي'ة ترتب'ط ك'ل م'ن ف'ى مثال التحك'م ف'ى حرك'ة المالح'ة الجوي'ة ترتب'ط ك'ل م'ن

فروع العلوم التالية:فروع العلوم التالية:

Page 27: هندسة برمجيات

Inter-disciplinary Inter-disciplinary involvementinvolvement

ATC systemsengineering

Electronicengineering

Electricalengineering

User interfacedesign

Mechanicalengineering

Architecture

Structuralengineering

Softwareengineering

Civilengineering

Page 28: هندسة برمجيات

عمليات هندسة النظام هىعمليات هندسة النظام هى.تحديد وتعريف المتطلبات.تحديد وتعريف المتطلبات requirements definitionrequirements definition.تصميم النظام.تصميم النظام System DesignSystem Design.تطوير النظم الفرعية.تطوير النظم الفرعية Sub-system developmentSub-system developmentم.م.ااتجمع النظتجمع النظ System integrationSystem integration .تثبيت النظ'ام.تثبيت النظ'ام System installationSystem installation .إرتقاء النظام.إرتقاء النظام System evolutionSystem evolution يض النظام.يض النظام.ووتقتق System decommissioningSystem decommissioning

Page 29: هندسة برمجيات

The system engineering The system engineering processprocess

Systemintegration

Sub-systemdevelopment

Systemdesign

Requirementsdefinition

Systeminstallation

Systemevolution

Systemdecommissioning

Page 30: هندسة برمجيات

مشاكل متطلبات النظاممشاكل متطلبات النظام System requirements problemsSystem requirements problems

التغيي'ر بع'د تحدي'د النظام. يج'ب توق'ع تطورات التغيي'ر بع'د تحدي'د النظام. يج'ب توق'ع تطوراتالعتاد واإلتص''''االت عل''''ى مدى عم''''ر النظام. العتاد واإلتص''''االت عل''''ى مدى عم''''ر النظام. ص''عوبة تحدي''د المتطلبات غي''ر الوظيفي''ة عملياً ص''عوبة تحدي''د المتطلبات غي''ر الوظيفي''ة عملياً بدق'''ة بدون وجود تص'''ور ع'''ن بني'''ة مكونات بدق'''ة بدون وجود تص'''ور ع'''ن بني'''ة مكونات

النظام.النظام.

Page 31: هندسة برمجيات

عملية تصميم النظامعملية تصميم النظامThe system design processThe system design process

:متطلبات التقس'يم:متطلبات التقس'يم Partition requirementsPartition requirements : : تنظي'م المتطلبات ف'ى تنظي'م المتطلبات ف'ىمجموعات مرتبطة ببعضها.مجموعات مرتبطة ببعضها.

:تعري'ف النظ'م الفرعي'ة:تعري'ف النظ'م الفرعي'ة Identify sub-systemsIdentify sub-systems : : الت'ى يحق'ق جمعه'ا الت'ى يحق'ق جمعه'اتحقيق متطلبات النظام.تحقيق متطلبات النظام.

بات النظ'م الفرعي'ة:بات النظ'م الفرعي'ة:للتخص'يص متطتخص'يص متط Assign requirements to sub-Assign requirements to sub-systemssystems

.تحديد وظيفية النظم الفرعية.تحديد وظيفية النظم الفرعية Specify sub-system functionalitySpecify sub-system functionality تحدي''د واجهات النظ''م الفرعي''ة تحدي''د واجهات النظ''م الفرعي''ةDefine sub-system interfacesDefine sub-system interfaces

ويعتبر نشاط حرج لتطوير النظم الفرعية المتوازية.ويعتبر نشاط حرج لتطوير النظم الفرعية المتوازية.

Page 32: هندسة برمجيات

The system design processThe system design processPartition

requirements

Identifysub-systems

Assign requirementsto sub-systems

Specify sub-systemfunctionality

Define sub-systeminterfaces

Page 33: هندسة برمجيات

:مشاك''ل تصميم النظام:مشاك''ل تصميم النظام System design System design problemsproblems يج''ب أ''ن تخض''ع عملي''ة تقس''يم يج''ب أ''ن تخض''ع عملي''ة تقس''يم

المتطلبات م''''ن مكونات العتاد وال''''برمجيات المتطلبات م''''ن مكونات العتاد وال''''برمجيات والبش''ر للتداول والتفاوض، مشاك''ل ص''عوبة والبش''ر للتداول والتفاوض، مشاك''ل ص''عوبة التص'''ميم غالباً م'''ا تفترض س'''هولة الح'''ل التص'''ميم غالباً م'''ا تفترض س'''هولة الح'''ل بإس'تخدام ال'برمجيات. ق'د تكون منص'ات العتاد بإس'تخدام ال'برمجيات. ق'د تكون منص'ات العتاد غي''ر مالئم''ة لمتطلبات ال''برمجيات لذا يج''ب غي''ر مالئم''ة لمتطلبات ال''برمجيات لذا يج''ب

يات أن تعوض هذا األمر.يات أن تعوض هذا األمر.ججعلى البرمعلى البرم

Page 34: هندسة برمجيات

:تجمي''ع النظام: تجمي''ع النظامSystem integrationSystem integration ه''ى عملي''ة ه''ى عملي''ةوض'''ع العتاد وال'''برمجيات واألشخاص معاً لك'''ى وض'''ع العتاد وال'''برمجيات واألشخاص معاً لك'''ى

يعمل النظام.يعمل النظام.

:تث'''بيت النظام:تث'''بيت النظام System installationSystem installation ق'''د تكون ق'''د تكون إفتراضات البيئ'ة غي'ر ص'حيحة، ق'د تتواج'د مقاوم'ة إفتراضات البيئ'ة غي'ر ص'حيحة، ق'د تتواج'د مقاوم'ة

يتعاي'''ش يتعاي'''ش بشري'''ة لتقدي'''م النظام الجديد. ق'''د البشري'''ة لتقدي'''م النظام الجديد. ق'''د الالنظام م''ع النظ''م المختلف''ة لبع''ض الوقت. ق''د النظام م''ع النظ''م المختلف''ة لبع''ض الوقت. ق''د تتواج''د مشاك''ل تركي''ب وتث''بيت فيزيائي''ة لبع''ض تتواج''د مشاك''ل تركي''ب وتث''بيت فيزيائي''ة لبع''ض المكونات يجب تحديد تدريب المشتغلين بالنظام.المكونات يجب تحديد تدريب المشتغلين بالنظام.

Page 35: هندسة برمجيات

:تش'غي'ل النظام: تش'غي'ل النظامSystem operationSystem operation ق'د تظه'ر بع'ض المتطلبات ق'د تظه'ر بع'ض المتطلباتغي'ر المتوقع'ة والت'ى ل'م تك'ن مرئية. ق'د يس'تخدم' المس'تخدمون غي'ر المتوقع'ة والت'ى ل'م تك'ن مرئية. ق'د يس'تخدم' المس'تخدمون النظام بطريق'ة ل'م تك'ن ف'ى ني'ة أ'و تخطي'ط أ'و توق'ع مص'مم النظام بطريق'ة ل'م تك'ن ف'ى ني'ة أ'و تخطي'ط أ'و توق'ع مص'مم

النظام'، قد تكتش'ف مش'اكل' فى' التفاعل مع النظم األخرى.النظام'، قد تكتش'ف مش'اكل' فى' التفاعل مع النظم األخرى.

:'إرتقاء النظام':إرتقاء النظام System evolutionSystem evolution للنظ''م الك''بيرة فترة حياة للنظ''م الك''بيرة فترة حياة أطول ويج'ب أ'ن ترتب'ط بإحتياجات متطلبات التغيي'ر ان النظ'م أطول ويج'ب أ'ن ترتب'ط بإحتياجات متطلبات التغيي'ر ان النظ'م الموجوة فعلياً والت'ى يج'ب ص'يانتها غالباً م'ا تكون م'ن' النظ'م الموجوة فعلياً والت'ى يج'ب ص'يانتها غالباً م'ا تكون م'ن' النظ'م الموروث'ة القديم'ة لإلرتقاء تكلف'ة باهظ'ة متأص'لة ف'ى' ط'بيعته إ'ذ الموروث'ة القديم'ة لإلرتقاء تكلف'ة باهظ'ة متأص'لة ف'ى' ط'بيعته إ'ذ يج'ب تحلي'ل' التغييرات م'ن' وجهات نظ'ر األعمال وم'ن وجه'ة يج'ب تحلي'ل' التغييرات م'ن' وجهات نظ'ر األعمال وم'ن وجه'ة نظ'ر التقني'ة، كم'ا أ'ن تفاع'ل النظ'م الفرعي'ة ق'د يخل'ق' المشاك'ل نظ'ر التقني'ة، كم'ا أ'ن تفاع'ل النظ'م الفرعي'ة ق'د يخل'ق' المشاك'ل

الغير متوقعة.الغير متوقعة.

Page 36: هندسة برمجيات

:تقوي''ض النظام:تقوي''ض النظام System decommissioningSystem decommissioning أخ''ذ النظام أخ''ذ النظام خارج الخدمة بعد إنتهاء فترة حياته المفيدة.خارج الخدمة بعد إنتهاء فترة حياته المفيدة.

:تدبي''ر النظام: تدبي''ر النظامSystem procurementSystem procurement يهت''م بتحدي''د النظام يهت''م بتحدي''د النظامالذى يت'م شراؤ'ه والبائ'ع الذى يت'م الشراء منه. يعن'ى إقتناء نظام الذى يت'م شراؤ'ه والبائ'ع الذى يت'م الشراء منه. يعن'ى إقتناء نظام يل''بى إحتياجات أ''و بع''ض احتياجات المؤس''سة وق''د تكون بع''ض يل''بى إحتياجات أ''و بع''ض احتياجات المؤس''سة وق''د تكون بع''ض خص'ائص النظام ومواص'فاته وبني'ة التص'ميم ضروري'ة قب'ل تدبي'ر خص'ائص النظام ومواص'فاته وبني'ة التص'ميم ضروري'ة قب'ل تدبي'ر النظام، كم''ا أ''ن المواص''فات ت''بين مدى تكلف''ة النظام وجدواه النظام، كم''ا أ''ن المواص''فات ت''بين مدى تكلف''ة النظام وجدواه

االقتصادية.االقتصادية. تتضم'ن عملي'ة التدبي'ر نظرة عام'ة لمس'ح الس'وق للبح'ث ع'ن تتضم'ن عملي'ة التدبي'ر نظرة عام'ة لمس'ح الس'وق للبح'ث ع'ن

النظ'م الموجودة والقيام بعم'ل التحدي'د العام للنظام المطلوب، النظ'م الموجودة والقيام بعم'ل التحدي'د العام للنظام المطلوب، ث'م تحدي'د اإلحتياجات وتوفيقه'ا ث'م إختيار نظام، وتحدي'د وتكرار ث'م تحدي'د اإلحتياجات وتوفيقه'ا ث'م إختيار نظام، وتحدي'د وتكرار الطل''ب، ث''م إختيار مص''در التوري''د، كم'ا ق''د يت''م مس''ح الس''وق الطل''ب، ث''م إختيار مص''در التوري''د، كم'ا ق''د يت''م مس''ح الس''وق وإختيار نظام معي'ن ث'م عم'ل مفاوضات العق'د، وتطوي'ر التفاوض وإختيار نظام معي'ن ث'م عم'ل مفاوضات العق'د، وتطوي'ر التفاوض

بشأن العقد. بشأن العقد.

Page 37: هندسة برمجيات

The system procurement The system procurement processprocess

Choosesupplier

Issue requestfor bids

Choosesystem

Adaptrequirements

Survey market forexisting systems

Let contract fordevelopment

Negotiatecontract

Selecttender

Issue requestto tender

Off-the-shelfsystem available

Bespoke systemrequired

Page 38: هندسة برمجيات

موضوعات التدبيرموضوعات التدبير Procurement issuesProcurement issuesContractors and sub-contractorsContractors and sub-contractors المقاول والمقاول الفرعى:المقاول والمقاول الفرعى:

تدبي'ر نظ'م العتاد وال'برمجيات الك'بيرة تعتم'د أس'اساً عل'ى تدبي'ر نظ'م العتاد وال'برمجيات الك'بيرة تعتم'د أس'اساً عل'ىمقاول رئيس'ى وق'د يقوم مورد مقاول فرع'ى أ'و أكث'ر بتوفي'ر مقاول رئيس'ى وق'د يقوم مورد مقاول فرع'ى أ'و أكث'ر بتوفي'ر بع'ض أجزاء النظام بالتعاق'د م'ع المقاول األول الرئيس'ى وال بع'ض أجزاء النظام بالتعاق'د م'ع المقاول األول الرئيس'ى وال

يتصل بالمستهلك أو الزبون.يتصل بالمستهلك أو الزبون.

Contractor/Sub-contractor Contractor/Sub-contractor: : نموذج المقاول والمقاول الفرعىنموذج المقاول والمقاول الفرعىmodelmodel

م'ن المس'تهلك إل'ى المقاول الذى يجزئ أعمال'ه عل'ى عدد م'ن المس'تهلك إل'ى المقاول الذى يجزئ أعمال'ه عل'ى عددمن المقاوليين الفرعيين.من المقاوليين الفرعيين.

Page 39: هندسة برمجيات

Contractor/Sub-contractor Contractor/Sub-contractor modelmodel

Sub-contractor 2Sub-contractor 1 Sub-contractor 3

Principalcontractor

Systemcustomer