المحاضرة رقم 1 - مقدمة (1)-1.pdf
Document Details
Uploaded by Deleted User
Tags
Full Transcript
هندسة البرمجيات أ.ياسر محمد علي المحاضرة رقم 1 مقدمة مقدمة البرمجيات Software ليست هى برامج الكمبيوتر فقط لكنها أيضا ً كل التوثيق المرتبط بها ،وبيانات التجهيز والتكوين الالزمة لجعل...
هندسة البرمجيات أ.ياسر محمد علي المحاضرة رقم 1 مقدمة مقدمة البرمجيات Software ليست هى برامج الكمبيوتر فقط لكنها أيضا ً كل التوثيق المرتبط بها ،وبيانات التجهيز والتكوين الالزمة لجعل البرامج تعمل بصورة صحيحة. هناك نوعان من المنتجات البرمجية: البرامج العامة الشاملة Generic Productsوهى نظم مستقلة تنتج بواسطة أ أ أ منظمات التطوير وتباع فى السوق لى عميل واحيانا يطلق عليها اسم البرمجيات المغلقة. البرمجيات المخصصة Bespoke Productsوهى نظم مخصصة لعميل معين يطلب أ تجهيزها ويتم تطويرها بواسطة شركة او مطور تخصيصا لهذا العميل. Software Engineering هندسة البرمجيات أ أ هى فرع من المعرفة يهتم بكل اشكال إنتاج البرمجيات ،ويجب ان يتبنى مهندس أ البرمجيات اإلقتراب المنظم والنظامى فى عمله ،ويستخدم الدوات المناسبة والتقنيات الضرورية إعتمادا على المشكلة التى يقوم بحلها وقيود التطوير المفروضة والموارد المتاحة. أ هى فرع من فروع المعرفة الهندسية يختص بكل اشكال إنتاج البرمجيات بدءا من المراحل المبكرة لخصائص النظام حتى صيانة هذا النظام بعد إستخدامه. عمليات البرمجياتSoftware Process: أ أ هى مجموعة من النشطة والنتائج المرتبطة بها التى تنتج منتجات البرمجيات ،او هدفها أ تطوير وارتقاء البرمجيات ،ويتم تنفيذ غالبية هذه النشطة بواسطة مهندسى البرمجيات أ النشطة العامة فى عمليات البرمجيات: مواصفات البرمجيات :ما الذى يجب على النظام ان يفعله وما هى قيود تطويره أ تطوير البرمجيات :إنتاج نظام البرمجيات ويجب ان تحقق البرمجيات المنتجة المواصفات. أ التثبت :فحص وإختبار ان البرمجيات تحقق ما يريده العميل. إرتقاء البرمجيات :تغيير وتطوير البرمجيات إستجابة لمقتضيات التغيير. Cost of SWE تكاليف هندسة البرمجيات: بصفة تقديرية فإن حوالى %60من التكاليف تعتبر تكاليف تطويرDevelopment Cost وحوالى %40هى تكاليف فحص وإختبار ، Testing Costوبالنسبة للبرمجيات الخاصة فإن تكاليف اإلرتقاء تتجاوز تكاليف التطوير. هندسة البرمجيات بمساعدة الكمبيوتر CASE مصطلح CASEهو إختصار كلمات هندسة البرمجيات بمساعدة الكمبيوتر Computer أ Aided Software Engineeringويغطى نطاقا واسعا من انواع البرامج المختلفة التى أ تستخدم فى دعم انشطة عمليات البرمجيات مثل تحليل المتطلبات ونمذجة النظام وإك تشاف وتصحيح العلل واإلختبار. هندسة البرمجيات بمساعدة الكمبيوتر عبارة عن نظم برمجية توفر دعما ً آليا ً ألنشطة عمليات البرمجيات وتستخدم نظم CASEلدعم الطرق والمنهجيات. خصائص البرمجيات الجيدة الشرح المواصفات لبد من وجود إمكانية تعديل البرنامج حتى يفى بحاجات العميل قابلية التعديل المتغيرة. ()Maintainability أ خرى أ وهذا يتضمن مواصفات ا مثل التماسك ،توفير المن والسالمة، اإلعتمادية أ أ وإمكانية اإلطمئنان إلى اداء البرنامج ،بمعنى انه فى حالة إنهيار أ أ ()Dependability النظام ،ل يجب ان يسبب البرنامج خسائر مادية اوإقتصادية. أ يجب ان يحسن البرنامج إستخدام الموارد المتاحة مثل الذاكرة وقدرة الفاعلية أ المعالج بافضل صورة ممكنة. ()Efficiency أ يجب ان يملك البرنامج واجهة إستخدام مناسبة ،ومستندات مصاحبة سهولة اإلستخدام لشرح إمكانياته وتوضيح تصميمه. ()Usability بعض التحديات تواجه هندسة البرمجيات هناك تحديات تواجه هندسة البرمجيات ومنها: اإللتقاء مع النظم القديمة الموروثةLegacy Systems. اإلستجابة لطلب تقليل وقت التسليمDelivery Times. المسئولية اإلحترافية واألخالقية Professional & Ethical Responsibility أ موضوعات المسئولية اإلحترافية والخالقية الخصوصيةConfidentiality. الك فاءة والتخصصCompetence. المسئولية اإلحترافية واألخالقية Professional & Ethical Responsibility أ موضوعات المسوئلية ا إلحترافية والخالقية حقوق الملكية الفكريةIntellectual property rights. إساءة إستخدام الكمبيوترComputer Misuse. النهاية هندسة البرمجيات المحاضرة رقم 2 هندسة النظم المبنية على الكمبيوتر مقدمة تهتم هندسة النظم Systems Engineeringالمبنية على الكمبيوتر بتصميم Designingوإنجاز implementingوتجهيز deployingوتشغيل النظم operating systemsوالتى بدورها تتضمن العتاد ،Hardwareوالبرمجيات ،Softwareوالبشر .People أ النظام :عبارة عن تجميع عدة مكونات مرتبطة ببعضها تعمل معا لتحقيق هدف معين ،وقد يكون النظام برمجيا او أ أ أ ميكانيكيا او كهربيا او عتادا يقوم بتشغيله الشخاص ،وتعتمد مكونات النظام على بعضها وتمتزج خصائص أ وسلوكيات مكونات النظام ول يمكن فصلها او فكها. البرمجيات وهندسة النظم الخصائص المنبثقةEmergent system properties : أ هى خصائص مميزة للنظام ككل وليست لمكوناته اى خصائص النظام بصفة عامة بدل من أ الخصائص التى يمكن إشتقاقها من مكونات النظام ،من امثلة الخصائص الحرجة: The reliability of the system إعتمادية النظام. The usability of a system قابلية إستخدام النظام. أ انواع الخصائص المنبثقة Types of emergent property -الخصائص الوظيفية Functional properties :تظهر عندما تعمل كل مكونات أ واجزاء النظام معا لتحقيق غرض ما. -الخصائص الغير وظيفية Non-functional emergent properties : أ أ أ مثل اإلعتمادية والمان والداء والتامينreliability, performance, ، safety, and securityفهذه الخصائص تتعلق بتصرف النظام فى بيئة عمله. النظم وبيئتها Systems and their environment النظم غير مستقلة لكنها تتواجد فى بيئة ،وقد تغير البيئة وظيفة النظام ،وتؤثر البيئة على وظيفية النظام. طبقات النظامSystem hierarchies : فى نظام المبانى :تتواجد المبانى فى شوارع هى نفسها جزء من مدينة ،يحتوى نظام المبنى أ أ ايضا على نظم فرعية مثل نظام التامين ،نظام التسخين ،نظام اإلضاءة ،نظام طاقة ،نظام صرف ،نظام مياه….. System hierarchies Town Street Building Heating Power Water system system system Security Lighting Waste system system system العوامل البشرية والتنظيمية Human and organisational factors من العوامل البشرية والتنظيمية: تغييرات العمليات Process changes :هل يحتاج النظام تغييرا ليقوم بعملياته فى البيئة. التغييرات التنظيمية Organisational changes :هل يغير النظام بنية النفوذ فى المنظمة. نمذجة هيكل النظام System architecture modelling تبين نماذج بنية النظام النظم الفرعية والتنسيق البينى فيما بينها ،وتوضع غالبا فى مخططات صندوقية.يعرض نموذج هيكل النظام شكال مجردا للنظم الفرعية التى يتكون منها النظام، أ وقد يحتوى على المعلومات الرئيسية التى تتدفق بين النظمة الفرعية ،وعادة ما يمثل على أ هيئة مخطط صندوقى ،Diagram Blockوقد يعرف النواع المختلفة للمكونات الوظيفية فى هذا النموذج. مثال نظام إدارة مستشفى عمليات هندسة النظام هى requirements definition.تحديد وتعريف المتطلبات System Design.تصميم النظام Sub-system development.تطوير النظم الفرعية System integration.تجمع النظام System installation.تثبيت النظام System evolution.إرتقاء النظام System decommissioning.تقويض النظام The system engineering process Requirements System definition decommissioning System System design evolution Sub-system System development installation System integration مشاكل متطلبات النظام System requirements problems التغيير بعد تحديد النظام.يجب توقع تطورات العتاد واإلتصالت على مدى عمر النظام.صعوبة تحديد المتطلبات غير الوظيفية عمليا بدقة بدون وجود تصور عن بنية مكونات النظام. عملية تصميم النظام The system design process تقسيم المتطلبات : Partition requirements :تنظيم المتطلبات فى مجموعات مرتبطة ببعضها. تحديد النظم الفرعية :Identify sub-systems :التى يحقق جمعها تحقيق متطلبات النظام. تخصيص متطلبات النظم الفرعيةAssign requirements to sub-systems : تحديد وظيفية النظم الفرعيةSpecify sub-system functionality. تحديد واجهات النظم الفرعية Define sub-system interfacesويعتبر نشاط حرج لتطوير النظم الفرعية المتوازية. The system design process Partition Define sub-system requirements interfaces Identify Specify sub-system sub-systems functionality Assign requirements to sub-systems هى عملية وضع العتاد والبرمجيات System integration تجميع النظام: أ والشخاص معا لكى يعمل النظام. تثبيت النظام System installation :قد تكون إفتراضات البيئة غير صحيحة، قد تتواجد مقاومة بشرية لتقديم النظام الجديد.قد ل يتعايش النظام مع النظم المختلفة لبعض الوقت.قد تتواجد مشاكل تركيب وتثبيت فيزيائية لبعض المكونات يجب تحديد تدريب المشتغلين بالنظام. تشغيل النظام System operation :قد تظهر بعض المتطلبات غير المتوقعة والتى لم أ أ تكن مرئية.قد يستخدم المستخدمون النظام بطريقة لم تكن فى نية او تخطيط او توقع أ مصمم النظام ،قد تك تشف مشاكل فى التفاعل مع النظم الخرى. أ أ إرتقاء النظام System evolution :للنظم الكبيرة فترة حياة اطول ويجب ان ترتبط بإحتياجات متطلبات التغيير ان النظم الموجوة فعليا والتى يجب صيانتها غالبا ما تكون من أ النظم الموروثة القديمة لإلرتقاء تكلفة باهظة متاصلة فى طبيعته إذ يجب تحليل التغييرات أ أ من وجهات نظر العمال ومن وجهة نظر التقنية ،كما ان تفاعل النظم الفرعية قد يخلق المشاكل الغير متوقعة. أ تقويض النظام System decommissioning :اخذ النظام خارج الخدمة بعد إنتهاء فترة حياته المفيدة. إقتناء النظامSystem procurement : أ يهتم بتحديد النظام الذى يتم شراؤه والبائع الذى يتم الشراء منه.يعنى إقتناء نظام يلبى إحتياجات او بعض احتياجات المؤسسة وقد تكون بعض خصائص النظام ومواصفاته وبنية التصميم ضرورية قبل تدبير النظام، أ كما ان المواصفات تبين مدى تكلفة النظام وجدواه القتصادية. تتضمن عملية القتناء نظرة عامة لمسح السوق للبحث عن النظم الموجودة والقيام بعمل التحديد العام للنظام المطلوب ،ثم تحديد اإلحتياجات وتوفيقها ثم إختيار نظام ،وتحديد وتكرار الطلب ،ثم إختيار مصدر التوريد، أ كما قد يتم مسح السوق وإختيار نظام معين ثم عمل مفاوضات العقد ،وتطوير التفاوض بشان العقد. موضوعات الشراء Procurement issues Contractors and sub-contractors المقاول والمقاول الفرعى: ر أ إقتناء نظم العتاد والبرمجيات الكبيرة تعتمد اساسا على مقاول رئيسى وقد يقوم مو د مقاول أ أ أ أ فرعى او اك ثر بتوفير بعض اجزاء النظام بالتعاقد مع المقاول الول الرئيسى ول يتصل أ بالمستهلك او الزبون. Contractor/Sub-contractor model نموذج المقاول والمقاول الفرعى: يجزئ أ اعماله على عدد من المقاوليين الفرعيين. من المستهلك إلى المقاول الذى Contractor/Sub-contractor model System customer Principal contractor Sub-contractor 1 Sub-contractor 2 Sub-contr actor 3 النــــــــــــــهاية المحاضرة رقم 3 عمليات البرمجيات 1- Software Processes مقدمة عمليات البرمجيات Software Processes أ هى مجموعة من النشطة المترابطة المتماسكة المطلوبة لتطوير وإنتاج النظم البرمجية. أ والنشطة العامة هى :توصيف المتطلبات ،التصميم ،التنفيذ ،اإلختبار ،التحقق ،الصيانة ،إرتقاء النظم البرمجية. أ وتمثل هذه النشطة فى نموذج عمليات البرمجيات. نماذج عمليات البرمجيات نموذج العملية البرمجية Software process modelهو تمثيل مجرد لوصف العملية من منظور معين ،ومن النماذج العامة لعمليات البرمجيات: نموذج الشالل : The waterfall modelوهى عبارة عن مراحل واضحة المعالم منفصلة لوضع المواصفات والتطوير. التطوير اإلرتقاىئ :Evolutionary developmentوفيه تتداخل المواصفات مع التطوير. التطوير المعتمد على إعادة اإلستخدام : Reuse-based developmentبتجميع النظام من مكونات موجودة. Waterfall model نموذج الشالل :مراحله Requirements analysis and definition.تعريف وتحليل وتحديد المتطلبات System and software design.تصميم النظام وتصميم البرمجيات Implementation and unit testing.تنفيذ وإختبار وحدات النظام Integration and system testing.تجميع النظام وإختباره Operation and maintenance. عمل النظم وصيانته Waterfall model Requirements definition System and software design Implementation and unit testing Integr ation and system testing Operation and maintenance أ من عيوب نموذج الشالل صعوبة تقدير وتكييف التغييرات اثناء العملية. من مشاكل نموذج الشالل :التقسيم غير المرن للمشروع إلى مراحل منفصلة ،يزيد من صعوبة اإلستجابة عن تغيير متطلبات المستهلك ،لهذا يصبح هذا النموذج مفيدا فقط أ ومرغوبا عند التفهم الكامل للمتطلبات وقلة التغييرات فيها إلى الحد الدنى. التطوير ا إلرتقاىئ Evolutionary development نموذج تطوير إلنتاج البرمجيات تتداخل فيه المواصفات مع التطوير. التطوير اإلستكشافى Exploratory development :الهدف هو العمل مع المستهلك والتوصل إلى النظام النهاىئ من خالل خطوط عامة تمهيدية للمواصفات ويجب البدء بمتطلبات مفهومة جيدا. أ النماذج الولية Throw-away prototyping :الغرض هو فهم متطلبات النظام ويجب البدء بمتطلبات مفهومة إلى حد ما. Evolutionary development Concurr ent activities Initial Specification version Outline Intermediate Development description versions Final Validation version أ فى التطوير اإلرتقاىئ يتم وضع خطوط وصف عامة ثم تتم متابعة العمل بانشطة متالقية أ أ أ مساعدة لتحديد المواصفات التى التى تعطى إصدارا اوليا بمكن ان يتفاعل مرة اخرى مع أ أ تحديد المواصفات لتغييرها وتعديلها وهكذا ،ثم من تحديد المواصفات تبدا اعمال أ التطوير التى توفر إصدارات وسيطة تتفاعل بدورها مع التطوير وتؤثر فيه وتتاثر به ،ثم أ يتم التحقق من النظام للوصول إلى اإلصدار النهاىئ.تتفاعل ايضا مراحل تحديد المواصفات والتطوير والتحقق مع بعضها البعض. من مشاكل التطوير اإلرتقاىئ : Problemsنقص وضوح العمليات ،فقر أ هيكلية النظم ،وتحتاج مهارات خاصة بلغات تسمح بالنماذج الولية السريعة. قابلية تطبيق التطوير اإلرتقاىئ : Applicabilityللنظم الصغيرة أ والمتوسطة الحجم ذات التفاعلية ،ولجزاء من النظم الكبيرة مثل واجهة أ المستخدم ،وللنظم قصيرة المد. التطوير المبنى على إاعادة ا إلستخدام Reuse-oriented development يعتمد على إعادة اإلستخدام التقليدى حيث يتم تجميع النظام من عدة مكونات موجودة أاو من نظم أاخرى ).(Commercial-off-the-shelf مراحل العملياتProcess stages. تحليل المكوناتComponent analysis. تعديل اإلحتياجاتRequirements modification. تصميم النظام بإعادة اإلسنخدامSystem design with reuse. التطوير والتجميعDevelopment and integration. خطواتها :توصيف المتطلبات ،تحليل المكونات ،تعديل المتطلبات ،تصميم النظام بإعادة اإلستخدام، التطوير والتجميع ،التحقق من النظام. Reuse-oriented development Requirements Component Requirements System design specification analysis modification with reuse Development System and integration validation تكرار العمليات Process iteration دائما ما تستخرج متطلبات النظام من سير المشروع لهذا تتكرر العملية ويعاد العمل على المراحل المبكرة أ أ أ من المشروع خاصة فى النظم الكبيرة ،وقد يتم التكرار المتتالى فى اى عملية او فى اى نموذج ،وهناك أ منهجيتان للتكرار هما :التطوير المتزايد او التطوير بنموذج الحلزون. التطوير المتزايد Incremental development :بدل من التوصل إعداد النظام مرة واحدة أ يقسم التطوير والتسليم إلى اجزاء متزايدة يقوم كل منها بتوفير وظيفة مطلوبة ،وتكون لمتطلبات أ أ أ أ أ المستخدمين اعلى اولوية ،وتوضع المتطلبات ذات الولوية العلى فى الجزاء المبكرة من النظام. أ تعريف الخطوط العريضة للمتطلبات ،تخصيص المتطلبات لالجزاء المتزايدة ،تصميم معمارية النظام، أ أ تطوير اجزاء تزايد النظام ،تحقق من التزايد ،تجميع الجزاء المتزايدة ،التحقق من النظام حتى نصل للنظام النهاىئ. Incremental development Define outline Assign requirements Design system requirements to increments architecture Develop system Valida te Integrate Valida te increment increment increment system Final system System incomplete التطوير الحلزونى Spiral development أ أ يمثل تطوير العمليات على هيئة لولبية بدل من تتابع متتال لالنشطة او التتابع المتتالى مع الرجوع عكسيا لمزيد من التحسين ،وتمثل كل حلقة من الحلزون مرحلة من مراحل أ العملية ،ولتوجد مراحل ثابتة مثل توصيف المتطلبات او التصميم ،ويتم إختيار أ الحلقات فى الحلزون بناء على ما هو مطلوب ،ويتم تقدير المخاطر وتحليلها وحل امورها خالل العمليات. Spiral model of the software process Determine objectives Evaluate alternatives alternatives and identify, resolve risks constraints Risk analysis Risk analysis Risk analysis Opera- Prototype 3 tional Prototype 2 protoype Risk REVIEW analysis Proto- type 1 Requirements plan Simulations, models, benchmarks Life-cycle plan Concept of Operation S/W requirements Product design Detailed Requirement design Development plan validation Code Design Unit test Integration and test plan V&V Integr ation Plan next phase test Acceptance Service test Develop, verify next-level product قطاعات نموذج الحلزون Spiral model sectors أ أ فى الربع الول من الحلزون يتم تحديد الهداف والبدائل والقيود ،فى الربع الثانى يتم أ تقييم البدائل وتعريف وتحليل المخاطر ،فى الربع الثالث يتم التطوير والتاكد من منتج أ المرحلة التالية ،وفى الربع الخير يتم تخطيط المرحلة التالية. النهـــــــــــــاية المحاضرة رقم 4 عمليات البرمجيات 2- Software Processes مواصفات البرمجيات Software specification هى عملية وضع وتحديد الخدمات المطلوبة والقيود المفروضة على تشغيل النظام وتطويره ،وتتضمن عملية هندسة المتطلبات ،دراسة الجدوى ،إستنباط وتحليل المتطلبات ،تحديد مواصفات المتطلبات ،التحقق من المتطلبات. طرق تجميع المتطلبات االتصال المباشر عن طريق المقابالت االستبيانات واالستمارات االطالع المباشر االجتماعات النماذج االولية protoypes التوجد طريقة افضل في كل الحاالت . مواصفات البرمجيات Software specification هى عملية وضع وتحديد الخدمات المطلوبة والقيود المفروضة على تشغيل النظام وتطويره ،وتتضمن عملية هندسة المتطلبات ،دراسة الجدوى ،إستنباط وتحليل المتطلبات ،تحديد مواصفات المتطلبات ،التحقق من المتطلبات. عملية هندسة ا إلحتياجات ينتج عن دراسة الجدوى تقرير جدوى ومن إستنباط وتحليل المتطلبات يتم تقديم نماذج النظام.عند توصيف المتطلبات يجرى تحديد متطلبات المستخدم والنظام ،وبعد التحقق من المتطلبات يتم توثيق المتطلبات الناتجة عن متطلبات النظام والمستخدم. The requirements engineering process Feasibility Requirements study elicitation and analysis Requir ements specification Feasibility Requirements report validation System models User and system requirements Requirements document تصميم وتنفيذ البرمجيات Software design and implementation هى العملية الناتجة عن تحويل مواصفات النظام إلى نظام تنفيذى ،وقى تصميم أ البرمجيات يتم تصميم هيكل البرمجيات التى تحقق هذه المواصفات اما التنفيذ فيعنى أ تحويل هذا الهيكل إلى برامج تنفيذية ،وتتصل انشطة التصميم والتنفيذ ببعضها البعض إتصال وثيقا وقد تتداخل فيما بينها. أ انشطة عملية التصميم Design process activities هى :تنفيذ التصميم المعمارى ،عمل تجريد للمواصفات ،تصميم واجهة اإلستخدام، تصميم المكونات ،تصميم هيكل البيانات. The software design process Requirements specification Design activities Architectural Interface Comp onent Data Algorithm Abstract design design design e structur design specification design Software Data System Interface Comp onent Algorithm specification structure architecture specification specification specification specification Design products أ منتجات انشطة التصميم هى معمارية النظام ،مواصفات البرمجيات ،مواصفات واجهة اإلستخدام ،مواصفات المكونات ،مواصفات هيكل البيانات. طرق التصميمDesign methods : منهجيات نمطية لتطوير تصميم البرمجيات ،يتم توثيق التصميم كمجموعة نماذج رسومية ،والنماذج المحتملة منها :نموذج تدفق البيانات ،نموذج خصائص الجزئيات، النموذج الهيكلى ،ونماذج الكائن. البرمجة و إاك تشاف وتصحيح العلل Programming and debugging أ أ تبدا بتحديد المشكلة وتحديد الخطا فى البرنامج ،يتبعها تصميم إصالح العطل ،ثم أ إصالح الخطا ،وإعادة إختبار البرنامج. The debugging process Locate Design Repair Re-test error error repair error program التحقق من البرمجيات Software validation أ أ ثبوت الصحة والتاكيد والتحقق هو بيان ان النظام يطابق المواصفات ويلبى متطلبات المستهلك. عمليات الفحص واإلختبارThe testing process : تتضمن إختبار المكونات :إختبار الوحدات ،إختبار المركب البرمجى. يحتوى إختبار التجميع على :إختبار النظم الفرعية ،وإختبار النظام. يعنى إختبار القبول :إختبار يقوم به المستخدم. مراحل عملية االختبار Unit testing Module testing Sub-system testing System testing Acceptance testing Component Integration testing User testing testing مراحل ا إلختبار Testing stages أ إختبار الوحدات Unit testingبإختبار الجزاء المنفردة. أ إختبار المركبات البرمجية Module testingبإختبار المجموعات المرتبطة من الجزاء التى تعتمد عل بعضها البعض. إختبار النظام الفرعى : Sub-system testingبتجميع المكونات البرمجية فى نظام فرعى وإختبارها ،ويتم التركيز على إختبار واجهة المستخدم. إختبار النظام System testingبإختبار النظام ككل وإختبار الخصائص المنبثقة. إختبار القبول Acceptance testingبإختبار النظام ببيانات المستهلك لفحص قبوله. إرتقاء البرمجياتSoftware evolution : و أ كلما تغيرت المتطلبات خالل تغير ظر ف العمال فإن البرمجيات التى تدعم هذه أ أ أ العمال يجب ان تتضمن التغيرات الجديدة وان تتغير وتتكيف تبعا لذلك. إرتقاء النظامSystem evolution : أ أ يتضمن النشطة التية: تعريف متطلبات النظام ،تقييم النظم الموجودة ،إقتراح تغييرات النظام ،تعديل النظام ،وصول للنظام الجديد. System evolution تطور النظام Define system Assess existing Propose system Modify requirements systems changes systems Existing New systems system النهـــــــــــــاية المحاضرة رقم 5 إدارة المشروع 1- Project management مقدمة أ أ اإلدارة الجيدة للمشروع هى اقوى واهم عوامل نجاح المشروع ،وتسبب الطبيعة غير الملموسة للبرمجيات المشاكل المتعددة فى إدارة المشروعات. أ أ أ وبالرغم من إتباع القواعد فإن اهم النشطة التى لها تاثير قوى هى :التخطيط، التوقع ،وجدولة المهام. أ انشطة ا إلدارة Management activities تتضمن :ك تابة المقترح ،تخطيط المشروع وجدولته ،تكاليف المشروع، مراقبة المشروع ،إعادة تقدير الموقف ،اإلختيار الشخصى والتقييم ،ك تابة التقرير والعروض التقديمية. عموميات ا إلدارة Management commonalities أ أ هيئة او طاقم المشروع :قد ل يمكن تخصيص الشخاص المناسبين للعمل فى المشروع ،كما ل أ تسمح الميزانية المخصصة للمشروع بإستخدام طاقم من الفراد لهم تكلفة عالية ،وقد ل يكون أ متاحا توفر الشخاص الذين يملكون الخبرة المرغوب فيها ،وقد ترغب المؤسسة فى تطوير أ مهارات الفراد والموظفين العاملين لديها من خالل مشروع البرمجيات. تخطيط المشروع Project planning هو الوقت الكبير المستهلك فى أانشطة إدارة المشروع ،وهى أانشطة مستمرة من التصور أ أ المبدىئ حتى تسليم المشروع ،ويجب ان تتم مراجعة الخطط بإنتظام كلما اتيحت أ معلومات جديدة ،ويمكن تطوير العديد من انواع الخطط التى تلبى ما يحتاجه دعم خطة مشروع البرمجيات مكن ميزانية وجدولة. Types of project plan Plan Des cription Quality plan Des cribes the quality procedures and s tandards that will be us ed in a project. Validation plan Des cribes the approach, resources and s chedule used for sys tem validation. Configuration Des cribes the configuration management management plan procedures and structures to be us ed. Maintenance plan Predicts the maintenance requirements of the s ystem, maintenance cos ts and effort required. Staff development plan. Des cribes how the skills and experience of the project team members will be developed. عملية تخطيط المشروع Project planning process تقدير قيود المشروع. عمل تقييمات تمهيدية لمعامالت المشروع أ تعريف احداث المشروع الهامة وقابلية التسليم. هيكل خطة المشروع يتكون من Project plan structure مقدمة ،تنظيم المشروع ،تحليل المخاطر ،متطلبات موارد العتاد والبرمجيات ،تقسيم آ العمل ،جدولة المشروع ،مراقبة ال لية وتقريرها. أ تنظيم النشطة Activity organization أ يجب تنظيم النشطة فى المشروع إلنتاج مخرجات واضحة ملموسة لإلدارة للحكم على أ تقدم المشروع ،الحداث الهامة والمعالم الرئيسية هى نقطة النهاية وغاية نشاط العمليات ،قابلية التسليم هى نتائج المشروع التى تسلم إلى المستهلك ،تسمح عمليات أ الشالل بالتعريف المباشر الواضح والتقديم لالحداث الهامة. جدولة المشروع Project scheduling تقسيم المشروع إلى مهام ،تخمين الوقت والموارد الالزمة إلك تمال كل مهمة. عملية جدولة مهام المشروع: أ أ من هندسة المتطلبات يتم تعريف النشطة وتعريف إعتمادية النشطة وتقدير موارد أ النشطة وتخصيص البشر لإلنشطة إنشاء مخططات المشروع للحصول على المخططات أ البيانية لالنشطة. The project scheduling process Identify Identify activity Estimate resources Allocate people Create project activities dependencies for activities to activities charts Software Activity charts requirements and bar charts مشاكل جدولة المهام The project scheduling process توقع صعوبة المشاكل ،وبالتالى صعوبة تكلفة حلول التطوير. أ لتتناسب اإلنتاجية مع عدد الشخاص القائمين على تنفيذ. أ أ أ أ إضافة الشخاص إلى مشروع متاخر قد يزيد التاخير سبب اعباء اإلتصالت. المحاضرة رقم 6 إدارة المشروع 2- Project management أ المخططات البيانية وشبكة النشطة Bar charts and activity networks تدوين رسومى يستخدم لتمثيل جدولة مهام المشروع ،ويبين تقسيم المشروع إلى مهام، أ أ وليجب ان تكون المهام قصيرة جدا بحيث تتراوح مدتها بين اسبوعين ،وتبين أ أ أ مخططات النشطة إعتمادية النشطة والمسار الحرج لها ،وتبين اعمدة المخططات جدولة المهام مع وقت التقويم التاريخى. Task durations and dependencies الخط الزمنى لألنشطة Activity timeline تخصيص طاقم العمل Staff allocation إادارة المخاطر Risk management أ تهتم إدارة المخاطر بتعريف المخاطر ورسم الخطط لتقليل تاثيرها على المشروع. المخاطرة هى إحتما حدوث ظرف مناوئ ،وتؤثر مخاطر المشروع على جدولة المهام أ والموارد ،وتؤثؤ مخاطر المنتج على ك فاءة واداء البرمجيات التى يجرى تطويرها ،وتؤثر أ أ مخاطر العمال على تطوير المنظمة او إنتاج البرمجيات. عملية إادارة المخاطر وتتضمن The risk management process أ تعريف المخاطرة :بتعريف مخاطر المشروع ،والمنتج والعمال. تحليل المخاطرة :بتخمين وتقييم وترجيح اإلحتمالت والنتائج المنطقية لهذه المخاطر. تخطيط المخاطرة :مراقبة المخاطر خالل المشروع. تعريف المخاطرة Risk identification. مخاطر التقييم، مخاطر المتطلبات، المخاطر التنظيمية، مخاطر البشر،مخاطر التقنية -Organisational risks- People risks - Technology risks Estimation risks - Requirements risks أ المخاطر وانواعها فيما يلى نوع المخاطرة والمخاطر المحتملة: مخاطرة تقنية :قد ل تتمكن قاعدة البيانات المستخدمة فى النظام من العمل والمعالجة كلما زاد معدل إنتقال البيانات الك ثير المتوقع مع الوقت. البشر :حاجة إمداد طاقم العمل بمهارات مطلوبة. التنظيمية :إعادة تشكيل بنية المنظمة قد يؤدى إلى إدارة مختلفة مسئولة عن المشروع. (تابع) المخاطر وأنواعها أ أ الدوات :الشفرة المولدة بواسطة ادوات هندسة البرمجيات بمساعدة الكمبيوتر غير أ أ كافية ،كما قد ليمكن تجميع او توافر تكامل ادوات هندسة البرمجبات بمساعدة الكمبيوتر. أ المتطلبات :تغيير المتطلبات تحتاج إعادة اعمال لتصميم ،كما قد يفشل الزبون فى فهم حتمية تغيير المتطلبات. التقدير :عدم التخمين والتقدير الصحيح للوقت المطلوب فى تطوير البرمجيات ،كما قد أ ليكون هناك تخمين وتقدير صحيح إلصالح العطال ،وحجم البرمجيات. تحليل المخاطر Risk analysis أ تخمين وتقدير إحتمالية ومدى جدية كل خطر ،وقد يكون إحتمال الخطر منخفضا او أ أ أ أ أ متوسطا او عاليا جدا ،وقد تكون تاثيرات الخطر فاجعة او خطيرة او مقبولة او ضئيلة غير مؤثرة. تخطيط المخاطر: وضع كل مخاطرة فى اإلعتبار ،وتطوير إستراتيجية للتعامل مع هذه المخاطرة. مراقبة المخاطرة Risk monitoring أ أ تقدير كل المخاطر المعرفة على فترات منتظمة لتقدير ما إذا كانت سوف تصبح اقل او أ أ أ اك ثر إحتمال.ايضا تقدير ما إذا كانت تاثيرات المخاطرة قد تغيرت.يجب مناقشة كل مخاطرة رئيسية فى إجتماعات تقدم إدارة المشروع الدورية.