You are on page 1of 6

‫المحاضرة ( ‪) 1‬‬

‫تصميم البرمجيات‬
‫) ‪( Software Design‬‬

‫مقدمة‪.‬‬ ‫‪‬‬
‫تعريفات‪.‬‬ ‫‪‬‬
‫ما هو البرنامج؟‬ ‫‪‬‬
‫ما هي هندسة البرمجيات؟‬ ‫‪‬‬
‫ما الفرق بين هندسة البرمجيات وعلوم الكمبيوتر؟‬ ‫‪‬‬
‫ما الفرق بين هندسة البرمجيات وهندسة النظم؟‬ ‫‪‬‬
‫ما هي عملية البرمجيات؟‬ ‫‪‬‬
‫ما هو نموذج عملية البرمجيات؟‬ ‫‪‬‬
‫ما هي تكاليف هندسة البرمجيات؟‬ ‫‪‬‬
‫ما هو ) ‪: Computer Aided Software Engineering ( CASE‬‬ ‫‪‬‬
‫ما هي سمات البرمجيات الجيدة؟‬ ‫‪‬‬

‫‪1‬‬
‫‪ ‬المقدمة‪:‬‬
‫هندسة البرمجٌات هً عبارة عن مجال متخصص ٌهتم بتطوٌر وتصمٌم البرمجٌات وإدارة عملٌات تطوٌرها‪ .‬تتضمن هندسة البرمجٌات‬
‫تطبٌك مجموعة من المبادئ واألسالٌب واألدوات لضمان تنفٌذ عملٌة تطوٌر البرمجٌات بشكل منهجً وفعال‪.‬‬
‫تتعامل هندسة البرمجٌات مع تطوٌر أنظمة البرمجٌات بطرٌمة فعالة من حٌث التكلفة‪ .‬تختلف البرمجٌات عن األشٌاء الملموسة وغٌر ممٌدة‬
‫بالمٌود المادٌة أو الموانٌن الفٌزٌائٌة‪ .‬وبالرغم من تبسٌط هندسة البرمجٌات بسبب عدم وجود لٌود مادٌة‪ ،‬إال أنها ٌمكن أن تصبح معمدة للغاٌة‬
‫وصعبة الفهم‪.‬‬
‫بدأت فكرة هندسة البرمجٌات فً عام ‪ 1691‬كاستجابة لمشاكل تطوٌر البرمجٌات فً تلن الفترة‪ .‬كانت المشارٌع تتأخر وتكلفة تطوٌر‬
‫البرمجٌات زادت بشكل غٌر متولع‪.‬‬
‫تم تطوٌر تمنٌات جدٌدة للتحكم فً التعمٌد الكبٌر ألنظمة البرمجٌات واستخدامها ٌنتشر تدرٌجٌا‪ .‬وعلى الرغم من التمدم الكبٌر‪ ،‬ما زالت‬
‫هنان تحدٌات فً تطوٌر برامج معمدة تلبً تولعات المستخدمٌن وتسلٌمها فً الولت والمٌزانٌة المحددٌن‪ .‬ال ٌزال هنان حاجة لتحسٌن تطبٌك‬
‫تمنٌات هندسة البرمجٌات فً الشركات‪ ،‬ومع زٌادة تعمٌد األنظمة المطلوبة‪ ،‬تواجه هندسة البرمجٌات تحدٌات جدٌدة‪ .‬ومع ذلن‪ ،‬فإن تطور هندسة‬
‫البرمجٌات لد ساهم فً تحسٌن البرمجٌات بشكل كبٌر ولها دور كبٌر فً تمدم العالم فً مجاالت مختلفة مثل الفضاء واالتصاالت والسفر‬
‫واالنترنت‪.‬‬
‫تطورت هندسة البرمجٌات كاستجابة للتحدٌات التً واجهت تطوٌر البرمجٌات فً السنوات األولى‪ .‬فً الماضً‪ ،‬كانت عملٌات تطوٌر‬
‫البرمجٌات غالبا تعتمد على نهج غٌر رسمً وغٌر منظم‪ ،‬مما أدى إلى تأخر فً التسلٌم وزٌادة فً التكالٌف وجودة غٌر مستمرة للبرمجٌات‪.‬‬
‫أزمة البرمجٌات التً واجهت صناعة التكنولوجٌا فً الستٌنٌات كانت محفزا لتطوٌر هندسة البرمجٌات واعتماد أسالٌب محددة ومنهجٌة‬
‫لتطوٌر البرمجٌات‪.‬‬
‫تشمل مجاالت االهتمام فً هندسة البرمجٌات تحلٌل متطلبات البرمجٌات‪ ،‬وتصمٌم البرمجٌات‪ ،‬وترمٌزها‪ ،‬واختبارها‪ ،‬وتوثٌمها‪ ،‬وصٌانتها‪.‬‬
‫ٌهدف المهندسون البرمجٌات إلى تطوٌر برمجٌات عالٌة الجودة وذات أداء ممتاز‪ ،‬وتلبٌة متطلبات المستخدمٌن والعمالء‪ ،‬والتأكد من تسلٌم‬
‫البرمجٌات فً الولت المحدد وضمن المٌزانٌة المحددة‪.‬‬
‫تعتمد هندسة البرمجٌات على استخدام أدوات وتمنٌات متعددة مثل النمذجة‪ ،‬وتمنٌات تحلٌل النظم‪ ،‬وتصمٌم لواعد البٌانات‪ ،‬وتطوٌر‬
‫البرمجٌات الشاملة‪ ،‬وتمنٌات اختبار البرمجٌات‪ .‬تساعد هذه األدوات والتمنٌات فً زٌادة كفاءة عملٌة تطوٌر البرمجٌات وضمان جودتها‪.‬‬
‫هندسة البرمجٌات تعتبر مجاال متنامٌا ومتطورا باستمرار‪ٌ .‬تم تطبٌك مفاهٌم هندسة البرمجٌات فً مجموعة متنوعة من المجاالت مثل‬
‫تطبٌمات الوٌب والهواتف المحمولة والذكاء االصطناعً واألنظمة المدمجة وغٌرها‪ٌ .‬ساهم تمدم هندسة البرمجٌات فً تطوٌر التكنولوجٌا‬
‫وتحسٌن الحٌاة الٌومٌة وتمكٌن التمدم العلمً والتكنولوجً‪.‬‬
‫على الرغم من التمدم الكبٌر فً هندسة البرمجٌات‪ ،‬ال ٌزال هنان تحدٌات تواجهها‪ .‬بعض هذه التحدٌات تشمل‪:‬‬

‫تعقيد المشاريع‪ :‬تزداد تعمٌدٌة المشارٌع البرمجٌة مع تزاٌد المتطلبات والمنظمات المعنٌة‪.‬‬ ‫‪-‬‬
‫التغيرات المستمرة‪ٌ :‬تطلب تطوٌر البرمجٌات التكٌف مع التغٌٌرات المستمرة فً المتطلبات والتكنولوجٌا والبٌئة التشغٌلٌة‪ٌ .‬جب أن‬ ‫‪-‬‬
‫ٌكون لدى المهندسٌن البرمجٌات المرونة والمدرة على التعامل مع التغٌر‪.‬‬
‫ضمان الجودة‪ٌ :‬جب ضمان جودة البرمجٌات من خالل عملٌات اختبار فعالة ومراجعات الكود وممارسات التحسٌن المستمر‪ٌ .‬تطلب‬ ‫‪-‬‬
‫ضمان الجودة تخصٌص موارد وولت كافٌٌن إلجراء االختبارات والتحلٌالت الالزمة‪.‬‬
‫إدارة المشروع‪ :‬إدارة المشروعات البرمجٌة تتطلب تخطٌطا جٌدا وتحلٌال للمخاطر وتنسٌما بٌن الفرق المختلفة وإدارة الموارد‬ ‫‪-‬‬
‫والجدولة‪ٌ .‬جب أن ٌكون لدى مهندسٌن البرمجٌات مهارات إدارة المشارٌع لتحمٌك أهداف المشروع بنجاح‪.‬‬
‫التواصل والتعاون‪ٌ :‬عمل المهندسون البرمجٌات ضمن فرق وعلٌهم التعاون مع العمالء والمستخدمٌن والفرق األخرى‪ ،‬فالتواصل‬ ‫‪-‬‬
‫الفعال والتعاون الجٌد ٌمكن أن ٌكون تحدٌا فً مشارٌع البرمجٌات الكبٌرة والمعمدة‪.‬‬

‫باختصار‪ ،‬هندسة البرمجٌات هً مجال حاسم فً تطوٌر البرمجٌات وتحسٌنها‪ .‬تواجه هندسة البرمجٌات تحدٌات مستمرة‪ ،‬ولكنها تساهم فً تمدم‬
‫التكنولوجٌا‬

‫‪2‬‬
‫‪ ‬تعريفات‪:‬‬

‫‪ ‬ما هو البرنامج؟‬
‫هو مجموعة من التعلٌمات المنطمٌة والمنظمة التً تمت كتابتها بلغة برمجة تخبر الكمبٌوتر كٌفٌة أداء مهمة معٌنة‪.‬‬
‫ٌمكن تصنٌف البرمجٌات إلى نوعٌن رئٌسٌٌن‪:‬‬
‫‪ -1‬برمجيات النظام‪ :‬هذا النوع من البرمجٌات ٌوفر الوظائف والخدمات األساسٌة لنظام الكمبٌوتر ومكوناته‪ ،‬وتشمل‬
‫برمجٌات النظام أنظمة التشغٌل (مثل وٌندوز ومان أو إس ولٌنكس) وبرامج تشغٌل األجهزة والبرامج الثابتة‬
‫وبرامج األدوات‪ .‬إنه ٌدٌر موارد الكمبٌوتر وٌسهل التواصل بٌن المكونات األجهزة والبرمجٌات وٌوفر منصة‬
‫لتشغٌل برمجٌات التطبٌك‪.‬‬
‫‪ -2‬برمجيات التطبيك‪ :‬تشٌر برمجٌات التطبٌك إلى البرامج المصممة ألداء مهام محددة أو تطبٌمات للمستخدم النهائً‪.‬‬
‫تشمل مجموعة واسعة من تطبٌمات البرمجٌات مثل معالجات النصوص وجداول البٌانات ومتصفحات الوٌب‬
‫ومشغالت الوسائط المتعددة ولواعد البٌانات وبرامج التصمٌم الجرافٌكً وغٌرها الكثٌر‪ .‬تعتمد برمجٌات التطبٌك‬
‫على برمجٌات النظام وتسمح للمستخدمٌن بإنجاز مهام مختلفة على أجهزتهم الكمبٌوترٌة أو األجهزة األخرى‪.‬‬

‫ٌتم إنشاء البرمجٌات من خالل عملٌة تطوٌر البرمجٌات‪ ،‬والتً تشمل عدة مراحل‪ ،‬بما فً ذلن جمع المتطلبات والتصمٌم‬
‫والبرمجة واالختبار والصٌانة‪ٌ .‬ستخدم مطورو البرمجٌات لغات البرمجة مثل جافا وسً‪ ++‬وباٌثون وغٌرها لكتابة الشفرة‬
‫التً تشكل البرمجٌات‪.‬‬

‫‪ ‬ما هي هندسة البرمجيات؟‬


‫هندسة البرمجٌات هً مجال ٌتعامل مع تصمٌم وتطوٌر واختبار وصٌانة أنظمة البرمجٌات‪ .‬وهو ٌشمل نهجا ومنظما‬
‫لبناء منتجات برمجٌة عالٌة الجودة‪ ،‬مع األخذ فً االعتبار الجوانب الفنٌة واإلدارٌة‪.‬‬
‫تتضمن هندسة البرمجٌات تطبٌك المبادئ والمنهجٌات واألدوات الهندسٌة إلنشاء برامج تلبً متطلبات محددة وتكون‬
‫موثولة وفعالة ولابلة للتطوٌر ولابلة للصٌانة‪ .‬وهو ٌركز على دورة حٌاة تطوٌر البرمجٌات بأكملها‪ ،‬بدءا من المفهوم األولً‬
‫وتحلٌل المتطلبات وحتى التصمٌم والتنفٌذ واالختبار والنشر والصٌانة المستمرة‪.‬‬
‫فٌما ٌلً بعض الجوانب الرئٌسٌة لهندسة البرمجٌات‪:‬‬
‫‪ ‬هندسة المتطلبات‪ :‬تتضمن جمع وتحلٌل وتوثٌك المتطلبات البرمجٌة‪ ،‬وهً المواصفات الوظٌفٌة وغٌر الوظٌفٌة‬
‫التً ٌجب أن ٌفً بها النظام البرمجً‪ .‬وٌشمل فهم احتٌاجات أصحاب المصلحة واستنباط المتطلبات وإدارة‬
‫التغٌٌرات فً جمٌع أنحاء المشروع‪.‬‬
‫‪ ‬تصميم البرمجيات‪ :‬تصمٌم بنٌة وهٌكل النظام البرمجً بناء على المتطلبات‪ٌ .‬تضمن ذلن تحدٌد مكونات البرنامج‬
‫وتفاعالتها وبنٌة النظام الشاملة‪ٌ .‬تم تطبٌك مبادئ التصمٌم واألنماط وأفضل الممارسات لضمان النمطٌة ولابلٌة‬
‫إعادة االستخدام ولابلٌة الصٌانة‪.‬‬
‫‪ ‬بناء البرمجيات‪ :‬تنفٌذ التصمٌم من خالل كتابة الكود الفعلً باستخدام لغات البرمجة وأطر التطوٌر‪ .‬تتضمن هذه‬
‫المرحلة البرمجة واختبار الوحدة وتكامل مكونات البرنامج لبناء النظام الكامل‪.‬‬
‫‪ ‬اختبار البرمجيات‪ :‬إجراء اختبارات مختلفة للتحمك من نظام البرمجٌات والتحمك من صحته‪ٌ .‬تضمن ذلن اختبار‬
‫الوحدة واختبار التكامل واختبار النظام واختبار المبول للتأكد من أن البرنامج ٌعمل بشكل صحٌح وٌلبً المتطلبات‬
‫وٌتعامل مع السٌنارٌوهات والمدخالت المختلفة‪.‬‬

‫‪3‬‬
‫‪ ‬نشر البرامج وصيانتها‪ :‬نشر نظام البرامج فً البٌئة المستهدفة والتأكد من تثبٌته وتكوٌنه بشكل صحٌح‪ .‬تتضمن‬
‫الصٌانة المستمرة إصالح األخطاء والتحدٌثات والتحسٌنات لمعالجة المشكالت وتحسٌن األداء وإضافة مٌزات جدٌدة‬
‫حسب الحاجة‪.‬‬
‫‪ ‬إدارة مشاريع البرمجيات‪ :‬إدارة عملٌة تطوٌر البرمجٌات‪ ،‬بما فً ذلن التخطٌط والجدولة وتخصٌص الموارد‬
‫وإدارة المخاطر واالتصاالت‪ٌ .‬تم استخدام تمنٌات ومنهجٌات إدارة المشارٌع لضمان تسلٌم المشارٌع فً الولت‬
‫المحدد وفً حدود المٌزانٌة ووفما لمعاٌٌر الجودة‪.‬‬

‫تؤكد هندسة البرمجٌات أٌضا على التعاون والعمل الجماعً والتواصل بٌن فرق تطوٌر البرمجٌات وأصحاب المصلحة‪.‬‬

‫‪ ‬ما الفرق بين هندسة البرمجيات وعلوم الكمبيوتر؟‬


‫فٌما ٌلً أهم االختالفات بٌن هندسة البرمجٌات وعلوم الكمبٌوتر باختصار‪:‬‬

‫‪ ‬التركيز‪ :‬تركز علوم الكمبٌوتر على األسس والمبادئ النظرٌة للحساب والخوارزمٌات ولغات البرمجة‪ ،‬بٌنما‬
‫تركز هندسة البرمجٌات على التطبٌك العملً لمبادئ علوم الكمبٌوتر لتصمٌم أنظمة البرمجٌات وتطوٌرها‬
‫واختبارها وصٌانتها‪.‬‬
‫‪ ‬الجانب النظري والعملي‪ :‬تتمتع علوم الكمبٌوتر بتوجه نظري ألوى‪ ،‬مع التركٌز على تطوٌر خوارزمٌات‬
‫ونماذج حسابٌة جدٌدة‪ .‬تعتبر هندسة البرمجٌات أكثر تطبٌمٌة وعملٌة‪ ،‬مع التركٌز على بناء حلول برمجٌة‬
‫والعٌة‪.‬‬
‫‪ ‬األهداف‪ :‬تهدف علوم الكمبٌوتر إلى تعزٌز المعرفة والفهم للحساب وتطوٌر نظرٌات ونماذج حسابٌة جدٌدة‪.‬‬
‫تهدف هندسة البرمجٌات إلى إنشاء أنظمة برمجٌة موثولة وفعالة وعالٌة الجودة تلبً متطلبات واحتٌاجات‬
‫المستخدم المحددة‪.‬‬
‫‪ ‬التعليم والمناهج الدراسية‪ :‬تغطً برامج علوم الكمبٌوتر مجموعة واسعة من المواضٌع‪ ،‬بما فً ذلن‬
‫الرٌاضٌات والخوارزمٌات وهندسة الكمبٌوتر ولغات البرمجة‪ .‬تركز برامج هندسة البرمجٌات بشكل أكثر‬
‫تحدٌدا على منهجٌات تطوٌر البرمجٌات وتصمٌم البرمجٌات واختبارها وإدارة المشارٌع‪.‬‬
‫على الرغم من وجود هذه االختالفات‪ ،‬فمن المهم مالحظة أن هنان تداخال بٌن المجالٌن‪ ،‬وغالبا ما ٌعتمد المحترفون على‬
‫المعرفة من كال المجالٌن لتطوٌر حلول برمجٌة وتطوٌر مجال الحوسبة‪.‬‬

‫‪ ‬ما الفرق بين هندسة البرمجيات وهندسة النظم؟‬


‫فٌما سبك تم التعرف على هندسة البرمجٌات وما تتعامل معه من تصمٌم وتطوٌر واختبار وصٌانة ألنظمة البرمجٌات‬
‫لبناء منتجات برمجٌة عالٌة الجودة ‪.‬‬
‫أما هندسة النظم فهً تخصص ألدم من هندسة البرمجٌات‪ .‬فهً تشمل األنظمة الصناعٌة المعمدة مثل الطائرات والمصانع‬
‫الكٌمٌائٌة ألكثر من ‪ 111‬عام‪ .‬وبما أن هذه األنظمة تحتاج للبرمجٌات كشًء أساسً لتشغٌلها ومع زٌادة نسبة البرمجٌات‬
‫فً األنظمة‪ ،‬وجب استخدام تمنٌات هندسة البرمجٌات لتحسٌن وضمان عملها واستمرارها‪.‬‬

‫‪4‬‬
‫‪ ‬ما هي عملية البرمجيات؟‬
‫العملٌة البرمجٌة هً مجموعة األنشطة والنتائج المرتبطة بها والتً تنتج منتجا برمجٌا‪ٌ .‬تم تنفٌذ هذه األنشطة فً الغالب‬
‫بواسطة مهندسً البرمجٌات‪ .‬هنان أربعة أنشطة عملٌة أساسٌة مشتركة بٌن جمٌع العملٌات البرمجٌة‪ .‬هذه األنشطة هً‪:‬‬

‫مواصفات البرنامج‪ٌ :‬جب تحدٌد وظائف البرنامج والمٌود المفروضة على تشغٌله‪.‬‬ ‫‪-1‬‬
‫تطوير البرمجيات‪ٌ :‬جب إنتاج البرنامج الذي ٌلبً المواصفات‪.‬‬ ‫‪-2‬‬
‫التحقك من صحة البرنامج‪ٌ :‬جب التحمك من صحة البرنامج للتأكد من أنه ٌفعل ما ٌرٌده العمٌل‪.‬‬ ‫‪-3‬‬
‫تطور البرمجيات‪ٌ :‬جب أن ٌتطور البرنامج لتلبٌة احتٌاجات العمالء المتغٌرة‪.‬‬ ‫‪-4‬‬

‫‪ ‬ما هو نموذج عملية البرمجيات؟‬


‫نموذج عملٌة البرمجٌات هو وصف مبسط لعملٌة برمجٌة ٌتم تمدٌمها من منظور معٌن‪ .‬النماذج‪ ،‬بطبٌعتها‪ ،‬هً‬
‫تبسٌطات‪ ،‬لذا فإن نموذج عملٌة البرمجٌات هو تجرٌد للعملٌة الفعلٌة التً ٌتم وصفها‪ .‬لد تتضمن نماذج العملٌات أنشطة‬
‫تشكل جزءا من عملٌة البرمجٌات ومنتجات البرمجٌات وأدوار األشخاص المشاركٌن فً هندسة البرمجٌات‪ .‬بعض األمثلة‬
‫على أنواع نماذج العملٌات البرمجٌة التً ٌمكن إنتاجها هً‪:‬‬
‫‪ -1‬نموذج سير العمل‪ٌ :‬وضح تسلسل األنشطة فً العملٌة باإلضافة إلى مدخالتها ومخرجاتها وتبعٌاتها‪ .‬تمثل األنشطة‬
‫فً هذا النموذج أفعال اإلنسان‪.‬‬
‫‪ -2‬نموذج تدفك البيانات أو النشاط‪ٌ :‬مثل العملٌة كمجموعة من األنشطة‪ٌ ،‬موم كل منها بتنفٌذ بعض عملٌات تحوٌل‬
‫البٌانات‪ٌ .‬وضح كٌف ٌتم تحوٌل مدخالت العملٌة مثل المواصفات إلى مخرجات مثل التصمٌم‪ .‬لد تكون األنشطة هنا‬
‫على مستوى ألل من األنشطة الموجودة فً نموذج سٌر العمل‪ .‬ولد تمثل تحوالت ٌموم بها األشخاص أو أجهزة‬
‫الكمبٌوتر‪.‬‬
‫‪ -3‬نموذج الدور‪/‬اإلجراء‪ٌ :‬مثل أدوار األشخاص المشاركٌن فً عملٌة البرنامج واألنشطة التً ٌتحملون مسؤولٌتها‪.‬‬
‫هنان عدد من النماذج أو النماذج العامة المختلفة لتطوٌر البرمجٌات‪:‬‬
‫‪ -‬نهج الشالل‪.‬‬
‫‪ -‬التطور التدرٌجً‪.‬‬

‫‪ ‬ما هي تكاليف هندسة البرمجيات؟‬


‫ٌمكن أن تختلف التكالٌف المرتبطة بهندسة البرمجٌات اعتمادا على عوامل مختلفة‪ ،‬بما فً ذلن حجم المشروع وتعمٌده‪،‬‬
‫ونهج التطوٌر‪ ،‬ومستوى مهارات الفرٌك‪ ،‬واألدوات والتمنٌات المستخدمة‪ .‬فٌما ٌلً بعض التكالٌف الشائعة التً ٌجب‬
‫مراعاتها‪:‬‬
‫‪ ‬تكاليف التطوير‪ :‬تشمل هذه التكالٌف الرواتب أو الرسوم المدفوعة لمهندسً البرمجٌات والمطورٌن المشاركٌن فً‬
‫المشروع‪ٌ .‬مكن أن تختلف تكلفة التطوٌر بناء على حجم الفرٌك ومستوى خبرته ومدة المشروع‪.‬‬
‫‪ ‬تكاليف البنية التحتية‪ :‬غالبا ما تتطلب هندسة البرمجٌات بنٌة تحتٌة لألجهزة والبرامج لدعم عملٌة التطوٌر‪ٌ .‬تضمن‬
‫ذلن أجهزة الكمبٌوتر والخوادم وأدوات التطوٌر وتراخٌص برامج التطوٌر وتكالٌف البنٌة التحتٌة األخرى ذات‬
‫الصلة‪.‬‬
‫‪ ‬تكاليف األدوات والتكنولوجيا‪ :‬اعتمادا على متطلبات المشروع‪ ،‬لد تكون هنان تكالٌف مرتبطة بالحصول على‬
‫ترخٌص أو أدوات أو تمنٌات محددة لتطوٌر البرمجٌات‪ٌ .‬مكن أن تشمل هذه التكالٌف شراء التراخٌص أو‬
‫االشتراكات أو رسوم الصٌانة المستمرة للبرامج واألدوات المستخدمة أثناء عملٌة التطوٌر‪.‬‬
‫‪5‬‬
‫تكاليف االختبار وضمان الجودة‪ٌ :‬عد ضمان الجودة واالختبار من الجوانب الحاسمة فً هندسة البرمجٌات‪ٌ .‬مكن‬ ‫‪‬‬
‫أن تنشأ التكالٌف من إنشاء بٌئات االختبار‪ ،‬والحصول على أدوات االختبار‪ ،‬وتوظٌف أو تدرٌب المختبرٌن‪ ،‬وتنفٌذ‬
‫أنشطة االختبار‪ ،‬والتأكد من أن البرنامج ٌفً بمعاٌٌر الجودة‪.‬‬
‫تكاليف الصيانة والدعم‪ :‬بمجرد تطوٌر البرنامج ونشره‪ ،‬هنان تكالٌف مستمرة مرتبطة بصٌانة البرنامج وتحدٌثه‬ ‫‪‬‬
‫ودعمه‪ٌ .‬تضمن ذلن إصالح األخطاء وتوفٌر دعم العمالء وإجراء الترلٌات ومعالجة مشكالت التوافك على مدار‬
‫دورة حٌاة البرنامج‪.‬‬
‫تكاليف إدارة المشروع‪ :‬غالبا ما تتطلب مشارٌع هندسة البرمجٌات إدارة المشروع وجهود التنسٌك‪ٌ .‬مكن أن تنشأ‬ ‫‪‬‬
‫التكالٌف من تعٌٌن مدٌري المشارٌع‪ ،‬وإجراء تخطٌط المشروع وجدولة‪ ،‬وإدارة الموارد‪ ،‬واإلشراف على تنفٌذ‬
‫المشروع‪.‬‬
‫تكاليف التدريب والتعليم‪ :‬لمواكبة التمدم التكنولوجً وأفضل ممارسات الصناعة‪ ،‬غالبا ما ٌحتاج مهندسو البرمجٌات‬ ‫‪‬‬
‫إلى التدرٌب والتعلٌم المستمر‪ٌ .‬مكن أن تشمل التكالٌف حضور ورش العمل أو المؤتمرات أو البرامج التدرٌبٌة‪،‬‬
‫باإلضافة إلى الحصول على الشهادات أو التدرٌب المتخصص‪.‬‬

‫‪ ‬ما هو ) ‪: Computer Aided Software Engineering ( CASE‬‬


‫ٌشٌر اختصار ‪ CASE‬إلى هندسة البرمجٌات بمساعدة الكمبٌوتر‪ .‬وٌغطً نطالا واسعا من أنواع البرامج المختلفة التً‬
‫تُستخدم لدعم أنشطة العملٌات البرمجٌة مثل تحلٌل المتطلبات ونمذجة النظام وتصحٌح األخطاء واالختبار‪.‬‬

‫‪ ‬ما هي سمات البرمجيات الجيدة؟‬


‫باإلضافة إلى الخدمات التً تمدمها‪ ،‬تحتوي منتجات البرامج على عدد من السمات األخرى المرتبطة بها والتً تعكس‬
‫جودة تلن البرامج‪ .‬ال تتعلك هذه السمات بشكل مباشر بما ٌفعله البرنامج‪ ،‬بل تعكس سلوكه أثناء تنفٌذه‪ .‬ومن أمثلة هذه‬
‫السمات (التً تسمى أحٌانا السمات غٌر الوظٌفٌة) ولت استجابة البرنامج الستعالم المستخدم وإمكانٌة فهم رمز البرنامج‪.‬‬
‫لذلن‪ٌ ،‬جب أن ٌكون النظام المصرفً آمنا‪ ،‬وٌجب أن تكون اللعبة التفاعلٌة سرٌعة االستجابة‪ ،‬وٌجب أن ٌكون نظام تبدٌل‬
‫الهاتف موثولا به‪ ،‬وما إلى ذلن‪.‬‬

‫‪6‬‬

You might also like