Professional Documents
Culture Documents
تصميم البرمجيات
تصميم البرمجيات
تصميم البرمجيات
) ( Software Design
مقدمة.
تعريفات.
ما هو البرنامج؟
ما هي هندسة البرمجيات؟
ما الفرق بين هندسة البرمجيات وعلوم الكمبيوتر؟
ما الفرق بين هندسة البرمجيات وهندسة النظم؟
ما هي عملية البرمجيات؟
ما هو نموذج عملية البرمجيات؟
ما هي تكاليف هندسة البرمجيات؟
ما هو ) : Computer Aided Software Engineering ( CASE
ما هي سمات البرمجيات الجيدة؟
1
المقدمة:
هندسة البرمجٌات هً عبارة عن مجال متخصص ٌهتم بتطوٌر وتصمٌم البرمجٌات وإدارة عملٌات تطوٌرها .تتضمن هندسة البرمجٌات
تطبٌك مجموعة من المبادئ واألسالٌب واألدوات لضمان تنفٌذ عملٌة تطوٌر البرمجٌات بشكل منهجً وفعال.
تتعامل هندسة البرمجٌات مع تطوٌر أنظمة البرمجٌات بطرٌمة فعالة من حٌث التكلفة .تختلف البرمجٌات عن األشٌاء الملموسة وغٌر ممٌدة
بالمٌود المادٌة أو الموانٌن الفٌزٌائٌة .وبالرغم من تبسٌط هندسة البرمجٌات بسبب عدم وجود لٌود مادٌة ،إال أنها ٌمكن أن تصبح معمدة للغاٌة
وصعبة الفهم.
بدأت فكرة هندسة البرمجٌات فً عام 1691كاستجابة لمشاكل تطوٌر البرمجٌات فً تلن الفترة .كانت المشارٌع تتأخر وتكلفة تطوٌر
البرمجٌات زادت بشكل غٌر متولع.
تم تطوٌر تمنٌات جدٌدة للتحكم فً التعمٌد الكبٌر ألنظمة البرمجٌات واستخدامها ٌنتشر تدرٌجٌا .وعلى الرغم من التمدم الكبٌر ،ما زالت
هنان تحدٌات فً تطوٌر برامج معمدة تلبً تولعات المستخدمٌن وتسلٌمها فً الولت والمٌزانٌة المحددٌن .ال ٌزال هنان حاجة لتحسٌن تطبٌك
تمنٌات هندسة البرمجٌات فً الشركات ،ومع زٌادة تعمٌد األنظمة المطلوبة ،تواجه هندسة البرمجٌات تحدٌات جدٌدة .ومع ذلن ،فإن تطور هندسة
البرمجٌات لد ساهم فً تحسٌن البرمجٌات بشكل كبٌر ولها دور كبٌر فً تمدم العالم فً مجاالت مختلفة مثل الفضاء واالتصاالت والسفر
واالنترنت.
تطورت هندسة البرمجٌات كاستجابة للتحدٌات التً واجهت تطوٌر البرمجٌات فً السنوات األولى .فً الماضً ،كانت عملٌات تطوٌر
البرمجٌات غالبا تعتمد على نهج غٌر رسمً وغٌر منظم ،مما أدى إلى تأخر فً التسلٌم وزٌادة فً التكالٌف وجودة غٌر مستمرة للبرمجٌات.
أزمة البرمجٌات التً واجهت صناعة التكنولوجٌا فً الستٌنٌات كانت محفزا لتطوٌر هندسة البرمجٌات واعتماد أسالٌب محددة ومنهجٌة
لتطوٌر البرمجٌات.
تشمل مجاالت االهتمام فً هندسة البرمجٌات تحلٌل متطلبات البرمجٌات ،وتصمٌم البرمجٌات ،وترمٌزها ،واختبارها ،وتوثٌمها ،وصٌانتها.
ٌهدف المهندسون البرمجٌات إلى تطوٌر برمجٌات عالٌة الجودة وذات أداء ممتاز ،وتلبٌة متطلبات المستخدمٌن والعمالء ،والتأكد من تسلٌم
البرمجٌات فً الولت المحدد وضمن المٌزانٌة المحددة.
تعتمد هندسة البرمجٌات على استخدام أدوات وتمنٌات متعددة مثل النمذجة ،وتمنٌات تحلٌل النظم ،وتصمٌم لواعد البٌانات ،وتطوٌر
البرمجٌات الشاملة ،وتمنٌات اختبار البرمجٌات .تساعد هذه األدوات والتمنٌات فً زٌادة كفاءة عملٌة تطوٌر البرمجٌات وضمان جودتها.
هندسة البرمجٌات تعتبر مجاال متنامٌا ومتطورا باستمرارٌ .تم تطبٌك مفاهٌم هندسة البرمجٌات فً مجموعة متنوعة من المجاالت مثل
تطبٌمات الوٌب والهواتف المحمولة والذكاء االصطناعً واألنظمة المدمجة وغٌرهاٌ .ساهم تمدم هندسة البرمجٌات فً تطوٌر التكنولوجٌا
وتحسٌن الحٌاة الٌومٌة وتمكٌن التمدم العلمً والتكنولوجً.
على الرغم من التمدم الكبٌر فً هندسة البرمجٌات ،ال ٌزال هنان تحدٌات تواجهها .بعض هذه التحدٌات تشمل:
تعقيد المشاريع :تزداد تعمٌدٌة المشارٌع البرمجٌة مع تزاٌد المتطلبات والمنظمات المعنٌة. -
التغيرات المستمرةٌ :تطلب تطوٌر البرمجٌات التكٌف مع التغٌٌرات المستمرة فً المتطلبات والتكنولوجٌا والبٌئة التشغٌلٌةٌ .جب أن -
ٌكون لدى المهندسٌن البرمجٌات المرونة والمدرة على التعامل مع التغٌر.
ضمان الجودةٌ :جب ضمان جودة البرمجٌات من خالل عملٌات اختبار فعالة ومراجعات الكود وممارسات التحسٌن المستمرٌ .تطلب -
ضمان الجودة تخصٌص موارد وولت كافٌٌن إلجراء االختبارات والتحلٌالت الالزمة.
إدارة المشروع :إدارة المشروعات البرمجٌة تتطلب تخطٌطا جٌدا وتحلٌال للمخاطر وتنسٌما بٌن الفرق المختلفة وإدارة الموارد -
والجدولةٌ .جب أن ٌكون لدى مهندسٌن البرمجٌات مهارات إدارة المشارٌع لتحمٌك أهداف المشروع بنجاح.
التواصل والتعاونٌ :عمل المهندسون البرمجٌات ضمن فرق وعلٌهم التعاون مع العمالء والمستخدمٌن والفرق األخرى ،فالتواصل -
الفعال والتعاون الجٌد ٌمكن أن ٌكون تحدٌا فً مشارٌع البرمجٌات الكبٌرة والمعمدة.
باختصار ،هندسة البرمجٌات هً مجال حاسم فً تطوٌر البرمجٌات وتحسٌنها .تواجه هندسة البرمجٌات تحدٌات مستمرة ،ولكنها تساهم فً تمدم
التكنولوجٌا
2
تعريفات:
ما هو البرنامج؟
هو مجموعة من التعلٌمات المنطمٌة والمنظمة التً تمت كتابتها بلغة برمجة تخبر الكمبٌوتر كٌفٌة أداء مهمة معٌنة.
ٌمكن تصنٌف البرمجٌات إلى نوعٌن رئٌسٌٌن:
-1برمجيات النظام :هذا النوع من البرمجٌات ٌوفر الوظائف والخدمات األساسٌة لنظام الكمبٌوتر ومكوناته ،وتشمل
برمجٌات النظام أنظمة التشغٌل (مثل وٌندوز ومان أو إس ولٌنكس) وبرامج تشغٌل األجهزة والبرامج الثابتة
وبرامج األدوات .إنه ٌدٌر موارد الكمبٌوتر وٌسهل التواصل بٌن المكونات األجهزة والبرمجٌات وٌوفر منصة
لتشغٌل برمجٌات التطبٌك.
-2برمجيات التطبيك :تشٌر برمجٌات التطبٌك إلى البرامج المصممة ألداء مهام محددة أو تطبٌمات للمستخدم النهائً.
تشمل مجموعة واسعة من تطبٌمات البرمجٌات مثل معالجات النصوص وجداول البٌانات ومتصفحات الوٌب
ومشغالت الوسائط المتعددة ولواعد البٌانات وبرامج التصمٌم الجرافٌكً وغٌرها الكثٌر .تعتمد برمجٌات التطبٌك
على برمجٌات النظام وتسمح للمستخدمٌن بإنجاز مهام مختلفة على أجهزتهم الكمبٌوترٌة أو األجهزة األخرى.
ٌتم إنشاء البرمجٌات من خالل عملٌة تطوٌر البرمجٌات ،والتً تشمل عدة مراحل ،بما فً ذلن جمع المتطلبات والتصمٌم
والبرمجة واالختبار والصٌانةٌ .ستخدم مطورو البرمجٌات لغات البرمجة مثل جافا وسً ++وباٌثون وغٌرها لكتابة الشفرة
التً تشكل البرمجٌات.
3
نشر البرامج وصيانتها :نشر نظام البرامج فً البٌئة المستهدفة والتأكد من تثبٌته وتكوٌنه بشكل صحٌح .تتضمن
الصٌانة المستمرة إصالح األخطاء والتحدٌثات والتحسٌنات لمعالجة المشكالت وتحسٌن األداء وإضافة مٌزات جدٌدة
حسب الحاجة.
إدارة مشاريع البرمجيات :إدارة عملٌة تطوٌر البرمجٌات ،بما فً ذلن التخطٌط والجدولة وتخصٌص الموارد
وإدارة المخاطر واالتصاالتٌ .تم استخدام تمنٌات ومنهجٌات إدارة المشارٌع لضمان تسلٌم المشارٌع فً الولت
المحدد وفً حدود المٌزانٌة ووفما لمعاٌٌر الجودة.
تؤكد هندسة البرمجٌات أٌضا على التعاون والعمل الجماعً والتواصل بٌن فرق تطوٌر البرمجٌات وأصحاب المصلحة.
التركيز :تركز علوم الكمبٌوتر على األسس والمبادئ النظرٌة للحساب والخوارزمٌات ولغات البرمجة ،بٌنما
تركز هندسة البرمجٌات على التطبٌك العملً لمبادئ علوم الكمبٌوتر لتصمٌم أنظمة البرمجٌات وتطوٌرها
واختبارها وصٌانتها.
الجانب النظري والعملي :تتمتع علوم الكمبٌوتر بتوجه نظري ألوى ،مع التركٌز على تطوٌر خوارزمٌات
ونماذج حسابٌة جدٌدة .تعتبر هندسة البرمجٌات أكثر تطبٌمٌة وعملٌة ،مع التركٌز على بناء حلول برمجٌة
والعٌة.
األهداف :تهدف علوم الكمبٌوتر إلى تعزٌز المعرفة والفهم للحساب وتطوٌر نظرٌات ونماذج حسابٌة جدٌدة.
تهدف هندسة البرمجٌات إلى إنشاء أنظمة برمجٌة موثولة وفعالة وعالٌة الجودة تلبً متطلبات واحتٌاجات
المستخدم المحددة.
التعليم والمناهج الدراسية :تغطً برامج علوم الكمبٌوتر مجموعة واسعة من المواضٌع ،بما فً ذلن
الرٌاضٌات والخوارزمٌات وهندسة الكمبٌوتر ولغات البرمجة .تركز برامج هندسة البرمجٌات بشكل أكثر
تحدٌدا على منهجٌات تطوٌر البرمجٌات وتصمٌم البرمجٌات واختبارها وإدارة المشارٌع.
على الرغم من وجود هذه االختالفات ،فمن المهم مالحظة أن هنان تداخال بٌن المجالٌن ،وغالبا ما ٌعتمد المحترفون على
المعرفة من كال المجالٌن لتطوٌر حلول برمجٌة وتطوٌر مجال الحوسبة.
4
ما هي عملية البرمجيات؟
العملٌة البرمجٌة هً مجموعة األنشطة والنتائج المرتبطة بها والتً تنتج منتجا برمجٌاٌ .تم تنفٌذ هذه األنشطة فً الغالب
بواسطة مهندسً البرمجٌات .هنان أربعة أنشطة عملٌة أساسٌة مشتركة بٌن جمٌع العملٌات البرمجٌة .هذه األنشطة هً:
مواصفات البرنامجٌ :جب تحدٌد وظائف البرنامج والمٌود المفروضة على تشغٌله. -1
تطوير البرمجياتٌ :جب إنتاج البرنامج الذي ٌلبً المواصفات. -2
التحقك من صحة البرنامجٌ :جب التحمك من صحة البرنامج للتأكد من أنه ٌفعل ما ٌرٌده العمٌل. -3
تطور البرمجياتٌ :جب أن ٌتطور البرنامج لتلبٌة احتٌاجات العمالء المتغٌرة. -4
6