بسم الله الرحمن الرحيم
أهداف الدرس الأول 0
ما قي هندسة البرهجيات؟
من يشارك بها؟
وكيف يتم بنائها؟
لم يعد خافيا على أي منا أهمية البرمجيات 800010818 في حياتنا اليومية سواء في البيت أو المصنع أو
المستشفى أو ... الخ؛ فنحن نتعامل يوميا مع العديد من الأجهزة والمعدات التي تعتمد في عملها على
قندسة البرمجيات أصبحت البوم أكثر أقمية من أي وقت مضى.
ما هي هندسة البرمجيات؟
لنفهم معا علاقة هندسة البرمجيات بعلوم الكومبيوتر, دعونا نأخذ هذا المثال عن علم الكيمياء واستخدامه
يهتم الكيعيائي بدراسة المواد الكيميائية (تركيبهاء تفاعلاتهاء والنظريات التي تحكم سلوكها.(
بينما المهندس الكيميثي يستخدم النتائج التي توصل إليها الكميائي لحل المشاكل التي يطلب منه إيجاد
حل لها
من وجهه نظر الكيميائي الكمياء في موضوع الإراسة بحد ذائها.
ومن وجهه نظر المهندس الكميائي الكيمياء في أداة 100١ تستخدم لأيجاد الحلول لمشاكل عامة) وقد لا
تكون هذه المشكلة ذات طبيعة كيميائية بحد ذاتها.(
نفس الفكرة يمكن النظر إلى علم الحوسبة 8608008 0001000183 حيث يكون تركيزا على الجواسيب ولغات
ويم النظر إليها والتعامل بها على أنها أدوات نستخدمها عند تصميم وتطهر حل لمشكلة ماتواجهنا أو
مهندس البرمجيات 579068 80000818 يعتبر أن الكمبيور هو أداة لحل المشاكل .1601 7109ا051601-20
وعليه أن يستخدم معلوماته حول الحاسوب وعلم الحوسبة للمساعدة في حل المشكلة التي يطلب منه
يجلا حل لهاء
لحل المشاكل
شكل (1-1)
ولكن ومن المهم أن نتذكر أن عملية كتابة البرامج تعد فن 824 بقدر ما هي علم؛ لماذا؟
لأله يمكن لأي شخص لديه معرفة كافية بأحد لغات برمجة الحاسوب 080163 أن يكتب برنامج ليؤدي مهمة
محددة, لكن الامر يتطلب مهارة ومعرفة مهندس برمجيات محترف لكتابة برنامج أكثر تناسقا ووضوحا وأسهل
في الصيانة؛ ويقوم بالمهمة المطلهة منه بفعالية ودقة أكبر.
أي أن. هندسة البرمجيات تعنى بتصميم وتطوير برامج ذات حودة عالية.
المشاركون في عملية صناعة البرنامج؛ عادة ما يندرجون تحت ثلاث مجموعات:
٠ الزبون 0019:0008 وهو الشركة (أو الشخص) الممولة لمشر وع تطهر البرنامج المطلوب
* المستخدم :800لا الشخص (أو مجموعة الاأشخاص ) الذي سوق يقوم فعلا باستعمال البرنامج»
والتعامل معه مباشرة.
٠ المطور :080968 وهو الشركة (أو الشخص) الذي سوف يقوم بتطوير البرنامج لصالح الزيون.
الشكل التالي يظهر العلاقة بين الفغات الثلاثة السابقة
سغا :فاه
المصدر: المرجع رقم 1
شكل (21)
مكوات النظام
مشايعنا التي نطورها لن تعمل في الفراغ؛ فعليها أن تتفاعل مع مستخدمين. أجهزة ومعدات متنوعة, نظم
تشغيل مرامج وملفات وقواعد بيلات .... إلخ و ريما حتى نظمة حواسيب أخرى. لهذا يجب تعريف جدود
أي نظام هو عبارة عن مجموعة من الكاثنات 001685 والنشاطات 86101065 بالإضافة إلى وصف للعلاقات
أول خطوات تحليل المشكلة قوفهم ماقية المشكلة وتعريفها بوضوح؛ لذا علينا أولا أن نصف النظام بتحديد
1النشاطات والكائنات: النشاط هو عميلة تحدث بالنظام وعادة مايوصف كحدث يتم من خلال حافز. النشاط
يغير شئ ما إلى آخر بتغير خواصه (صفاته(
هذا التغير يمكن أن يعنى تجهيل أحد عناصر البيانات من موقع إلى آخر؛ أوتعديل قيمته إلى قيمة مختلفة.
هذة العناصر تسمى ككثنات 00605 وهي عادة ماتكون مرتبطة ببعضها البعض بشكل أو بأخر. مثلا الكائنات
يمكن أن تكون مرتبة في مصفوفة أوسجل) قيد.(
2العلاقات وحدود النظام/1 801008 8/9810 200 5م301 00لن واو
بعد تعريف الكائنات والنشاطات جيداء يمكن أن نريط بين كل كن والنشاطات المتعلقة به بدقة. تعريف الكائن
يتضمن المرقع الذي سوف ينشأبه (نعض العناصر يمكن أن تكون موجودة بملف سبق انشاءة؛ والبعض قديتم
إنشاءة خلال حدث ما(ء والهدف من نشاءهابعض الكاثنات تستخدم من قبل نشاط واحد فقط والبعض يمكن
أن يستعمل من قبل نظم أخرى كدخلات , (10800 لذا يمكن أن تعثير أن لنظامنا حدود 5000080 بعض
الكاثنات يمكن ن أن تعير هذة الجدود إلى داخل النظام» والبعض الآخر هي مخرجات من نظامنا ممكن أن ترحل
بهذا يمكن أن نعرف النظام 8/9800 .8 على أله تجمع من:
«مجموعة من الانشطة 2011/1185
.وصف للعلاقات بين الكاكنات والأنشطة. 3010 0وتنها
إذا طلب منا عميل تطهر نظام (برنامج) له؛ لحل مشكلة معينة تواجهه في عمله. فمثلا يحتاج نظام حماية
لشركته؛ أونظام صرف آلي لبنك؛ أو ممكن أن يكون صاحب مكتبة أو متجر ويد تغير نظام البيع و الشراء أو
العرض لينم بشكل ألي. علينا انباع الخطوات التالمة لبناء هذا النظام
.1عقد اجتماع مع العميل لتحديد متطلباته؛ هذه المتطلبات تشمل وصف النظام بجميع مكاته التي
شرحناء
.وضع تصميم عام للنظام يحقق المتطلبات التي حددها العميل؛ وعرضه على العميل ليوضج له الشكل
بعد موافقة العميل على التصميم يتم العمل على وضع التصاميم التفصيلية لأجزاء المشروع.
.4كتابة البرنامج
5اختبارة؛ واعادة مراجعة المتطلبات التي وضعها العميل للتأكد من تحققها في البرنامج.
8#تسليم النظام إلى العميل.
.7بعد تسلم العميل للنظام قد تظهر بعض المشاكل أو الاخطاء التي لم تظهر خلال عملية الاختبار, والتي
تجب على المطور اصلاحها فيما يعرف بصيانة النظام.
خلال الدروس التالية من الدورة ستتعرف على كل خطوة من هذه الخطوات وكيف تتم بشكل مبسطء وسوف
نخوض في مزيد من التفاصيل في دروس لاحقة بإذن الله.
#نقاش الدرس الأول*.
س1 - هل المقصود بهذي الجملة ان المبرمج لا يستطيع حل المشكله فقط مهنادس البرمجيات
ممكن أن يوجد شخص تعلم البرمجة دون أن يدرس هندسة برمجيات و شخص آخر كرس قهندسة البرمجيات
الطبع علوم الحاسوب .. لو اعطيت هنين الشخصين مشكلة ما .. سيكون حل مهندس البرمجيات
للمشلكة أفضل من حل المبرمج الذي لم يدرس قندسة البرمجيات
"تستطيع أن تقول أن كل مهندس برمجيات هو مبرمج بينما ليس كل مبرمج هو مهندس برمجيات”
نعم هذا هو المقصود؛ هندسة البرمجات لا تهتم فقط بكتابة برنامج يؤدي مهمة محددة فحسب. بل لها
تهتم بما هو أكثر من ذلك "جودة البرنامج*
كلمة مبرمج أو 18068ا تطلق على كل من يعرف كيف يكتب برنامج لاقيام بأداء عمل ما..
ولكن كلمة مهندس برمجيات لا تطلق إلا على من يكتب هذة البرمجيات باسلوب علمي يسعى من خلاله
إلى أن تكون برامجه ذات جودة عالية.
س2 - ما المقصود في فن كنم ؟
هوان البرمجة فن رتذوق اكثر من ان تكون علم فقط أي له يمكن كتابة نفس البرنامج باسلوب مختلف من
وهذا كله يعتمد علي اسلوب المبرمج وكيفية حله للمشكلة وطريقة صيفته للبرنامج .
س3 - هل يوحد فرق بين مهندس برمجيات و محلل نظم ؟
نعم هناك فرق بين مهندس البرمجيات ومجلل النظم فمثلا في الدول المتقدمة يقوم محلل النظام بدراسة
المشروع المراد تنفيذة وكيفية حل المشاكل التي توجه كما هقوم بدراسة الجدوى ومعرفة متطلبات
النظام ...الخ
أي انه يقوم بتحليل النظام المراذ بنقه تحليل دقيق +
إما مهندس البرمجيات فيقوم ببرمجة النظام وتهيكته كي يظهر في الصورة النهائية.
أي يحتاج على الاقل الي شخصين كي يتم بناء النظام أو البرنامج المطلوب.
الدرس الثاني: دورة حياة تطوير المشروع
كما رلينا في الدرس الأول فإن قندسة البرمجيات هو عمل إبداعي يتم إداءه خطوة بخطوة؛ ويتعاون فيه عدد
من الاأشخاص لكل منهم مهمة محددة .في هذا الدرس سوف نناقش الخطوات التي يتم اتباعها عند تطوير
مشروع برمجي بمهد من التفاصيل فِبحث في الطرق المستخدمة لتنظيم هذا العمل (صناعة البرمجيات(
عملية بناء أي منتج تمر بعدة مراحل يطلق عليها عادة "دورة الحياة0/06 انا "؛ ومما تعلمنا في الدرس
السابق فإن دروة حياة تطهر أي نظام برمجي 6/06 !نا 09/810008 50000818 تتضمن المراحل التالية:
اتحديد وعريف المتطلبات 08001100 200 202/1515 6591161718015
قتصميم النظام 089190 59:67
.3تصميم البرنامج 08990 8:09:80
اكتابة البرنامج (تطهرة 101018118012000 8:091300 (
5أختبار وحدات البرنامج 189009 !اونا
8أختبار النظام 1690109 (8/51810
.7تسليم النظام/80/ 08 8/9190
كل مرحلة من تلك المراحل تتضمن العديد من الخطوات أو النشاطات ولكل منها مدخلاتها ومخرجتها وأثرها
دورة حياة أي منتج تبداً بأول خطوة وقي تجديد المتطلبات وتتدرج إلى باقي الخطوات كما هي مرتبة حتى
الوصول إلى آخر خطوة وقي تسليم البرنامج وصيلته (إن دعت الحاجة), إلا أن التجارب العملية تظهر أن هذا
ليس ضروريا وأن دورة حياة تطوير البرامج قد تأخذ أشكال (أو أنماط) مختلفة. وفي هذا الدرس سوف نتعرف
النموذج الاتحداري 11006١ ((206118/لا
في هذا النموذج تسير دورة الجياة بشكل تدريجي بدا من الخطوة (1) وحتى الخطوة (8)؛ وكما يظهر
بالشكل (1) فإن كل مرحلة تبداً بعد الأنتهاء من المرحلة التي تسبقها مباشرة.
شكل (1-2)
يتميز النموذج الانحداري بالبساطة. ولذا فإنه يسّهِل على المطور توضيح كيفية سير العمل بالمشروع
للعميل (الذي عادة لا يعرف الكثير عن صنع البرمجيات) والمراحل المتبقية من العمل. وقد كان هذا النموذج
أساس عمل كثير من المؤسسات لفترة طهلة مثل وزارة الدفاع الامريكية؛ واستنبط منه العديد من النمائج
الاكثر تعقيداً
بعد قدر شكل من التكرار والاعادة. في حين أن هذا النموذج يفترض أن يكون الحل واضح ومفهوم وسبق
تحليله بالكامل قبل مباشرة مرحلة التصميم وهو أمر يكاد يكون شبه مستحيل مع النظمة الضخمة. وحتى
إن كان ممكن فإنه يأخذ وقت طهيل جدا (ريما سنوات!(
التطوير على مراحل0801م081610 802560 0
حسب النمونج الانحداري فإنه يجب على المطورين إهاء مرحلة تحليل المشروع بشكل تام قبل البدأ في
التصميم؛ وكما وضحنا فإن هذه المرحلة قد تتطلب وقت طهيل في بعض المشاريع وقد تمر عدة سنوات قبل
لذا كان لبد من ايجاد طرق أخرى لتقليل زمن تطهر المشروع .10018 0/06 أحد هذة الطرق هي التطهر
على مراحل 086/96000604 818560 حيث يتم تطهير النظام على عدة مراحل؛ بتقديم إصدار من البرنامج به
بعض الوظائف للعميل والعمل على تطهر الاصدار الاحق الذي سوف يقدم له بقية الوظائف.
يوجد عدة طرق يمكن بها تنظيم عملية تطوير إصدارات البرنامج؛ ومن اشهورها:
«النموذج التزايدي 00891 106180719011
حيث يتم تقسيم النظام المطلوب تطهيرة إلى عدة اجزاء حسب الوظائف التي يعتين عليه القيام بهاء يبدا
أول إصدار بأحد تلك الاجزاء ومع الوقت يتم إضافة الميد من الاجزاء (الوظائف) حتى يتم الانتهاء من تظوير
النظام بشكل تام وحسب متطلبات العميل.
هذه المرة يتم تسليم برنامج بكامل الوظائف من أول مرةء ولكن يتم تعديل وتغيير بعض تلك الوظائف مع كل
إصدار من البرنامج.
حجم و تعقيد العمل مبكرا.
النموذج اللولبي 146061 81:8
وهو شبيه لدرجة كبيرة إلى النموذج التزايدي والتكراري, ولكن فيه يتم دمج فعاليات التطهير مع إدارة المخاطر
امن إجل التحكم بها وتقليلها.
يبدا النموذج اللولبي بمتطلبات العميل مع خطة العمل المبدثية (الميزانية؛ قيود النظام» والبدائل المتاحة). ثم
يتقدم خطوة إلى الامام بتقدير المخاطر وتمثيل البدائل المتاحة قبل تقديم ما يعرف ب "وثيقة العمليات "
5 أ 0000801 التي تصف وبشكل عام (يدون الدخول في التفاصيل) كيف يجب على النظام أن
يعمل. بعدها يتم تحديد وتدقيق المتطلبات للتأكد من أنها تامة ودقيقة إلى أقصى حد ممكن.
بذلك تكون وثيقة العمليات هي المنتج من الطور الأول؛ و المتطلبات هي المنتج الاساسي من الطور الثالي.
وفي الطور الثالث تتم عملية التصميم» أما الاختبار فيتم خلال الطور الرابع.
في كل طور أو مرحلة يساعد تحليل المخاطر على تقدير البدائل المختلفة في ضوء متطلبات وقيود النظام»
وتساعد النمذجة على التحقق من ملائمة أي بديل قبل أعتمادة.
5 اتلطاملاع
انيتا سمي
عنام مافومااا
7 لام مقعلا 08 ماو --
المصدر: المرجع رقم 1
شكل 2.2)