مقدمة في هندسة البرمجيات PDF
Document Details
Uploaded by JoyfulSphene
University of Tripoli
2020
Marwa Solla
Tags
Summary
This document is a lecture about software project planning, including cost estimation and project scheduling, for the Introduction to Software Engineering course. This lecture gives an overview of activities included in project planning. It also discusses methods of estimating costs, project scheduling, and related challenges.
Full Transcript
5/19/2022 جامعة طرابلس ـ كلية تقنية المعلومات مقدمة في هندسة البرمجيات Introduction to software Engineering ITGS-213 المحاضرة الثاني...
5/19/2022 جامعة طرابلس ـ كلية تقنية المعلومات مقدمة في هندسة البرمجيات Introduction to software Engineering ITGS-213 المحاضرة الثانية – انشطة التخطيط (تقدير التكلفة وجدولة المشروع) Planning: Cost Estimation and Project Schedulin مواضيع المحاضرة انشطة التخطيط لمشروع برمجي: جدولة المشروع البرمجي أدوات الجدولة تقدير تكلفـــة البرمجـــة و عوامل أخرى تؤثر على تقدير التكلفة صعوبات تواجه عملية تقدير التكلفة طـــــرق تقدير التكلفة حقائق و مفاهيم خاطئة 2 Lect2_Fall2020 1 5/19/2022 هندسة البرمجيات لم يعد خافيا على أي منا أهمية البرمجيات في حياتنا اليومية سواء في البيت أو الشركة أو المستشفى ...الخ ،فنحن نتعامل يوميا مع العديد من األجهزة والمعدات التي تعتمد في عملها على البرمجيات. فوجود أسلوب منظم ومنضبط والقابل للقياس لعمليات تطوير البرمجيات وصيانتها يعد تطبيقا ً للهندسة على البرمجيات ودراسة هذه األساليب وتطبيقها يعد هندسة برمجيات التي تهتم بتصميم وتطوير برامج ذات جودة عالية . واألساليب واألدوات المستخدمة. مع تطور علوم الحاسوب فقد ظهرت أساليب حديثة لتطوير وبناء أنظمة البرمجيات ومن أبرز اتجاهات هذا التطور هو ظهور أدوات هندسة البرمجيات بمساعدة الحاسوب (Computer- )Aided Software Engineeringأو ما يعرف بأدوات ) (CASE Toolsوالمستخدمة في أتمته و دعم نشاطات دورة حياة أنظمة البرمجيات التي تتكون من عدة مراحل تبدأ ب جمع المتطلبات تم توثيقها بطريقة علمية (التحليل) وثم وضع خطة لتنفيذ هذه المتطلبات(التصميم) ومن ثم تنفيذ المتطلبات(اإلنشاء أو البرمجة) وأخيرا التحقق من إن ما تم إنجازه يوافق المتطلبات(التجربة أو االختبار) ، حيث تتفق هذه المراحل ظاهريا في إطارها العام ،ولكنها تختلف داخليا فيما يتعلق بالمضمون والمنهجية والتي سنقوم بدراستها في المحاضرات القادمة ادارة المشاريع البرمجية تعتبر ادارة المشاريع البرمجية احد المواضيع الهامة التي تعالجها هندسة البرمجيات ،فسوء اإلدارة يعني بالضرورة فشل المشروع بمعنى التأخر في تسليم البرمجية ،وتجاوز الكلف المحددة في البداية ،وفشل البرمجية في القيام بالمتطلبات التي وضعت من أجلها. تتكون إدارة مشروع البرمجيات من عدد من األنشطة ،والتي تحتوي على تخطيط المشروع ،وتحديد نطاق منتج البرنامج ،وتقدير التكلفة بمصطلحات مختلفة ،وجدولة المهام واألحداث ،وإدارة الموارد.قد تشمل أنشطة إدارة المشروع:تخطيط المشروع إدارة نطاق تقدير المشروع Lect2_Fall2020 2 5/19/2022 التخطيط لمشروع برمجي من االنشطة التي يتم ممارستها عند التخطيط لمشروع برمجي: تحديد اهداف المشروع. .1 دراسة الجدوي .2 تحديد المستلزمات الخاصة للمشروع البرمجي من عتاد وبرمجيات وعنصر بشري. .3 تحديد حدود او نطاق المشروع و المخاطر المتوقعة . .4 تقدير التكلفة و زمن المشروع هو .5تقدير المدة الزمنية للمشروع. الجزء االهم واالصعب في التخطيط .6تقدير تكلفة المشروع 5 تقدير التكلفة و زمن المشروع حيث اصبحت البرمجيات في يومنا هذا أغلى تكلفة من العتاد ،وعند حدوث أي خطأ في تقدير التكلفة قد ينتج عنه خسارة لمعدي المنظومات ومن ثم فشل اعداد المنظومة. وتحديد الجدول الزمني مهم ايضا ،ألنه مرتبط بتقدير التكلفة ويؤثر على نجاح المشروع ،ولهذا تم إعداد طرق لتقدير كل مهمة من مهام المشروع ليتم معرفة الزمن الكلي. 6 Lect2_Fall2020 3 5/19/2022 Cost Estimationتقدير التكلفة يتم تقدير جميع مراحل المشروع البرمجي بداية من: تقديرات أولية لمعرفة الجدوى االقتصادية. خطة المشروع. تقديرات تفصيلية عند اعداد *عوامل تؤثر على تقدير التكلفة: .١درجة تعقيد البرمجيات Complexity of Software : كلما زاد التعقيد زادت التكلفة. ٢.حجم البرنامج Size Of Software : البرمجيات الكبيرة أكثر كلفة من الصغيرة. .٣التقنية المستخدمة technologiesعالقة عكسية Modern Old .٤أداء المبرمجينPerformance of programmers المبرمج المجد يوفر من تكلفة المشروع. Lect2_Fall2020 4 5/19/2022 صعوبات تواجه عملية تقدير التكلفة تعتبر عملية تقدير تكلفة اعداد المنظومات البرمجية صعبة في الحاالت التالية: ال توجد مشاريع سابقة مماثلة. ازدياد تعقيد المشروع البرمجي. نتائج أدوات وطرق تقدير التكلفة غير دقيقة. طرق مقترحة الجتياز صعوبات تقدير التكلفة اعطاء وقت كاف لعمليات تقدير التكلفة. التقديرات السريعة تولد تكاليف غير دقيقة. استخدام بيانات مشاريع ناجحة ومتكاملة سابقة كلما أمكن. نماذج تجريبية مبنية على الواقعية واالختبار. استخدام اسلوب التجزئةDecomposition. يتم تقسيم المشروع الى مهام ثم تجمع تكلفة المهام للوصول الى التكلفة الكلية. االستشارة الجماعية. تساعد في كثيرا في التقدير الجيد بدل الرأي الفردي. Lect2_Fall2020 5 5/19/2022 طرق تقدير التكلفـــةCost Estimation Methods يمكن استخدام نموذج أو طريقة أو أكثر من طريقة للمشروع الواحد: حكم الخبيرExpert judgement. الخبراء يستخدمون تجربتهم لتوقع كلفة المشروع . الفوائد :يمكن أن يكون دقيق إذا كان الخبراء لديهم تجربة مباشرة من أنظمة مماثلة. األضرار :خاطئ جدا إذا ليس هناك خبراء! التقدير بالمقارنةEstimation By analogy يتم حساب تكلفة المشروع بمقارنة المشروع مع مشروع مماثل في نفس مجال التطبيق. الفوائد :قد يكون دقيق إذا بيانات المشروع القديم متوفرة ومستخدم نفس االدوات. األضرار :مستحيل إذا ال يوجد مشروع مقارن مماثل. طرق تقدير التكلفـــةCost Estimation Methods اإلجماع Group Consensus or Delphi methodوتتبع هذه الطريقة الخطوات التالية: تعتمد على الرأي الجماعي المقنع والمبني على اساس سليم وتتبع الخطوات التالية: اعطاء( مستند تعريف للمنظومة +نموذج لتدوين التقدير االبتدائي لتكلفة المشروع )لالخصائيين. .1 يجب ان ال يتبادل االخصائيين االفكار مع بعضهم عند اجراء عملية التقدير مع الرجوع للمنسق عن أي .2 معلومة في حاجة اليها. يقوم المنسق بجمع ومراجعة التقديرات الناتجة . .3 تبرير االختالف الكبير في تقديرات االخصائيين واعادة .4 عملية التقدير في حالة كان تقدير االختالف مقنع. .5تكرار الخطوة السابقة الى ان يتحقق المطلوب على أن ال توجد مناقشة جماعية في أي جلسة. Lect2_Fall2020 6 5/19/2022 طرق تقدير التكلفـــةCost Estimation Methods طريقة من أسفل-الى-أعلى Bottom-Up methodتجزئة المشروع الى مهام التقدير الكلي= مجموع تقدير أجزاء أو مهام المشروع. Bottom up cost estimation example Lect2_Fall2020 7 5/19/2022 جدولة المشروع البرمجيSoftware project scheduling أدوات الجدولة للمشاريع البرمجية واإلنشائية والصناعية تعتبر الى حد كبير متشابهة وتستخدم نفس االدوات. صعوبة مهمة جدولة المشاريع يحتم على مدير المشروع أو المتخصص في االستفادة من جداول سابقة ان وجدت. لحساب الزمن الكلي إلنهاء المنظومة يجب تجزئة العمل وحساب كل جزء على حدى مع مراعاة االجزاء التي تتم بالتوازي والبعض االخر يتم بالتسلسل ألنه يعتمد على بعضه اآلخر. مشاكل تسبب في تأخير تسليم المشروع: (مرض أحد االعضاء الفاعلين -عطل في العتاد -تأخر وصول العتاد أو تأخير التدريب - اختالف محتوى المنظومة عن أي منظومة سابقة) 15 جدولة المشروع البرمجيSoftware project scheduling الطريقة المتبعة لتقدير جدولة المشروع هي التقدير الزمني الكلي(+ 10%بسبب المشاكل التي قد تحدث( تستخدم االيام واحيانا الساعة كوحدة قياس للزمن الختالف أيام العمل من دولة الخرى. oإرشادات بخصوص تقدير الوقت: .1تحديد المهام التي تتم على التوازي والتي ال تعتمد على بعضها. .2استعمال أقل قوة عاملة. .3األخذ في االعتبار أن بعض األعضاء قد يتركون العمل. .4تحديد مواصفات المتطلبات والتصميم يتطلب ضعف وقت كتابة شفرة البرنامج. Lect2_Fall2020 8 5/19/2022 أدوات الجدولةTools of scheduling تفترض أدوات الجدولة أن المشروع يتكون من مجموعة نشاطات أو مهام بعضها ينجز بالتوازي واالخر يعتمد على بعض. أدوات الجدولة المستخدمة في التخطيط ومتابعة المشروع هي: مخطط غانتGantt Chart .1 .2طريق المسار الحرجCritical Path Method CPM .3اداة برت Project Evaluation & Review Technique PERT مخطط غانتGantt Chart عرفت هذا المخطط باسم جانت نسبه إلى ، Henery L. Ganttيعتبر مخطط جانت أداة تخطيط رسومية تستخدم المحور االفقي لزمن التنفيذ والمحور الراسي ألسماء النشاطات. 18 Lect2_Fall2020 9 5/19/2022 Gantt Chart for Software Launch Project طريق المسار الحرجCritical path method CPM اسلوب المسار الحرج هو احدى الطرق المستخدمة لحساب المدة الزمنية التي يستغرقها المشروع . و هي أداة تخطيط على شكل شبكة تبين المهام أو النشاطات والمدة الزمنية المقدرة لكل مهمة. المسار الحرج هو الذي يضم مجموعة من االنشطة و المهام و الذي يستغرق وقت اكثر من كافة المسارات في الشبكة٠ هو أطول وقت إلنهاء المشروع.اي هو اطول مسار من البداية الى النهاية ،وهذا المسار يبين أقصر مدة زمنية ممكنة إلنهاء المشروع . 20 Lect2_Fall2020 10 5/19/2022 طريق المسار الحرجCritical path method CPM تتلخص هذه الطريقة في تحديد كل المسارات الممكنة من البداية الى النهاية وجمع المدة الزمنية لكل منها ،ثم نحدد أطول هذه المسارات. طريقة المسار الحرج تتكون من االوقات االتية :- .1الوقت المبكرEarliest Event Time : هو ابكر وقت او اقرب وقت يمكن ان يبدأ فيه نشاط معين ،ويحدث ذلك عندما تنتهي من جميع األنشطة السابقة. )EEj=EEi + D OR EEj=Max(EEi +D 21 .2الوقت المتأخرLatest Event Time : يمثل أخر وقت يمكن أن يحدث حدث معين و يبدا نشاط معين دون التأثير على الجدول الزمني للمشروع. حيث نبدا دائما بوضع الوقت المتأخر للنشاط يساوي الوقت المبكر له. )LEi=LEj - D OR LEi=Min(LEj - D .3الوقت الفائضSlack Time : -الوقت الفائض :ويتمثل في الفرق بين الوقت المبكر والمتأخر ،اما بالنسبة لألنشطة التي ال يوجد لديها وقت فائض أي ان الفرق بين االوقات المبكرة والمتأخرة يساوي صفرا فأنها تعد انشطة حرجة. S =LE -EE Lect2_Fall2020 11 5/19/2022 حقائق ومفاهيم خاطئةFacts & misconceptions المفهوم الخاطئ: 3كلما اسرعت في كتابة الشفرة انهيت المشروع بسرعة. الحقيقة :هذا صحيح في البرامج الصغيرة أما البرامج المعقدة كلما أسرعت أبطأت في إنهائه. المفهوم الخاطئ: 4ما دمت لم تنفذ البرنامج ال يمكن تقييم الجودة. الحقيقة : كل مرحلة في المشروع لها تقييم جودة. عملية االختبار تتم في جميع المراحل.كلما اكتشفت الخطأ مبكرا توفر الوقت والمال. المفهوم الخاطئ: 5المطلوب تسليم مشروع برمجي (برنامج ) بدون أخطاء. الحقيقة :البرنامج ليس اال جزء من البرمجيات والمتمثلة في البرنامج -البيانات -التوثيق 33 References Mobile App Development Gantt Chart https://app.instagantt.com/shared/s/WYVfQXGQnahFsD1nAYwD/latest https://www.projectengineer.net/3-simple-gantt-chart-examples/ Lect2_Fall2020 17