Professional Documents
Culture Documents
157901504 هندسة البرمجياتdoc
157901504 هندسة البرمجياتdoc
ما هي الهندسة ؟
هي التطبيق النظامي للمعرفة العلمية لخلق وبناء حلول مجدية فنيا واقتصاديا لمشاكل علمية لخدمة البشرية .
ما هي هندسة البرمجيات ؟
هي مجموعة من ثالثة عناصر هامة متفاعلة مع بعضها البعض تستخدم لتطوير البرمجيات وهي :
/1الطرق Methods
/2األدوات Tools
ماهو تعريف البرمجيات ؟
/1هي مجموعة من برامج الكمبيوتر التي تكون نظام ما
/3اإلجراءات النظامية Procedures
/2البرمجيات هي أشياء غير ملموسة أي ليس لها وزن وال حجم طبيعي وال خواص طبيعية
أنواع البرمجيات ؟
أساسا ً تنقسم البرمجيات لثالثة أنواع هي :
.1برمجيات النظم system s/w
.2برمجيات االستخدام utility program
.3برمجيات التطبيقات application s/w
ماهى خواص ومواصفات البرمجيات ؟
/1أن البرمجيات ليست لها خواص طبيعية ال تخضع لقوانين الطبيعة لتطويرها ذلك حدا من عددية المؤشرات الرئيسية والقيود
األساسية لتصميم وتنفيذ منتج البرمجيات
/2البرمجيات ال تتقادم وال تتناقص قيمتها بمرور الزمن مثل األجهزة
/3سبب فشل البرمجيات دائما ً هو أخطأ في المتطلبات وأخطأ في التصميم و أخطأ في التنفيذ وليس النظام
/4البرمجيات تطور وتهندس وال تنتج بالمعنى التقليدي كما هو في األجهزة فمعظم البرمجيات تبنى للزبون أكثر من تجميعها من مكونات
موجودة .
/5البرمجيات هي عنصر منطقي في النظام وليست عنصر طبيعي
/6البرمجيات قد تتدهور نتيجة للتغيرات المستمرة في المتطلبات .
ماهى مشاكل البرمجيات ؟
هنالك عدد من المشاكل تعيق عملية تطوير البرمجيات نذكر منها :
/1تقديرات التكلفة والجدولة دائما ً غير دقيقة وغير مضبوطة مثل()price – to – win
/2إنتاجية مطوري البرمجيات عادة ال تتماشى مع متطلبات الزبون (مثال :عدم وجود معيار دقيق لقياس قدرة المبرمجين )
/3نوعية البرمجيات المنتجة دائما ً غير مالئمة وغير مطابقة لمتطلبات الزبون ومن هنا ظهرت ما يسمي بازمات البرمجيات (s/w
)crisisوهي التي تعني تخطي المشروع التكلفة الموضوعة والزمن الموضوع لتنفيذ المشروع وعدم اإليفاء بمتطلبات الزبون .
ماهي ازمات البرمجيات ( )s/w crisis؟
تعني تخطي مشروع البرمجيات التكلفة الموضوعة والزمن الموضوع لتنفيذ المشروع وعدم اإليفاء بمتطلبات الزبون .
ماهى أسباب فشل معظم نظم البرمجيات ؟
/1تخطي التكلفة بأضعاف ما هو مقدر لها قد تم ممارسته بكثرة حتى صار شيء عادي
/2تخطي الجدولة الزمنية إلكمال المشروع بشهور و أحيانا بسنوات صار أيضا شيء مألوفا ً
/3لم يبذل جهد مقدر لتطوير إنتاجية مطوري البرمجيات
/4معدل األخطاء المتزايد في نظم البرمجيات أدي لعدم رضا الزبون واقتناعه بمنتج البرمجيات .
/5عدم توفر الوقت الكافي لجمع البيانات المطلوبة لعملية تطوير البرمجيات أي شح البيانات التاريخية .
/6عدم وضوح متطلبات الزبون وعدم تعريفها بوضوح
/7عدم الوصول إلي إنتاجية محددة لم تمكن من تقييم األدوات أو الطرق والمعايير المطلوبة .
اسباب فشل معظم نظم البرمجيات كيف يمكن تصحيحها ومعالجتها؟
باستخدام تقنيات هندسة البرمجيات التى تساهم تطور البرمجيات كذلك أنه صار هنالك
/1تضافر شامل للطرق بكل مراحل تطوير البرمجيات .
/2صارت هنالك أدوات جيدة ألتمتة هذه الطرق
/3كما أنه هنالك تقنيات ممتازة لضمان جودة البرمجيات
/4أيضا هنالك تنسيق تام للرقابة واإلدارة العلمية علي مشاريع البرمجيات
1
هندسة البرمجيات هى مجموعة من ثالث عناصر متفاعلة مع بعضها ,هى الطرق واالدوات واالجراءات تحدث عن
الطرق ؟ مبينا أمثلة لها
الطرق في هندسة البرمجيات هي توفير الكيفية التقنية لبناء البرمجيات والطرق تشمل اآلتي :
/1تخطيط مشروع البرمجيات
/2تقدير تكلفة و جدولة المشروع
/3تعريف وتحليل متطلبات برمجيات النظام
/4تصميم هياكل البيانات data structures
/5معمارية البرامج وطرق الخوارزميات
/6الترميز Coding
/7االختبارات testing
/8الصيانة Maintenance
هذه الطرق عادة تفرض مجموعة من المعايير لضمان نوعية البرمجيات .
ماهى اهمية التخطيط لمشاريع البرمجيات؟
توضيح األهداف /1
توضيح االحتياجات والمتطلبات للمشروع /2
توضيح القيود علي المنتج والمخاطرة /3
تحديد حجم المشروع /4
تعريف المنتجات الرئيسية والنتائج /5
كيف يتم تقدير حجم مشروع برمجيات ولماذا؟
يتم قياس حجم البرمجيات عادة ب :
.Line of codes (LOC)
Function point (FP)
الن الجهد والتكلفة والزمن المطلوبين لتطوير مشاريع البرمجيات تعتمد كلها علي حجم منتج البرمجيات .
ألن أغلب خوارزميات تقديرات التكلفة تستخدم الحجم كمدخل والخطأ في تقديرات الحجم ينتج عنه الخطأ في تقدير التكلفة .
-توجد صعوبة في تقدير الحجم المناسب وذلك لعدم وجود حجم محدد لكل تطبيق إلنجاز متطلب معين .ومن هنا جاءت استخدامات
خوارزميات تقدير الحجم فمعرفة الحجم تمكن من تقدير التكلفة والجدولة والتوظيف المطلوب .
التقدير اإلحصائي للحجم
ليس هنالك مقياس محدد ومضبوط في حجم البرمجيات ولكن تستخدم بكثرة السطور المصدرية ) line of codes(locوالنقاط الوظيفية
)Function point (FP
يعتمد تقدير الحجم اإلحصائي علي تفكيك النظام إلي عدة وظائف والنظر في كل وظيفة منها بالتالي للحصول إحصائيا ً علي التقديرات
اإلجمالية لحجم كل وظيفة واالنحراف المعياري للتقدير وبهذه الطريقة يمكن تحديد عدم التأكد من األحجام المقدرة في المكونات الفردية
للنظام والحصول علي تقدير مناسب لكل نظام
ماهى مصادر المعلومات لتقدير الحجم ؟
/ 1مجموع احجام المكونات
/2وحدات في وظائف مماثلة تم عملها من قبل ،يتم النظر الي احجام منتجات البرمجيات من قواعد منتجات البرمجيات الخبيرة فلكل
مكون ( )iوالتي هي الوظيفة المراد تقدير حجمها توجد ثالثة تقديرات هي -:
اقل عدد من االسطر ونرمز له ب aiواكبر عدد من االسطر ونرمز له ب biوالعدد االكثر احتماال“ ونرمز له ب miومن هنا يمكن
تقدير الحجم المتوقع ai+4mi+bi/6
واالنحراف المعياري هو bi-ai/6
حيث iعدد المكونات للنظام i=1,2,3,….n
ماهى أهمية تقدير التكلفة لمشروع البرمجيات ؟
تساعد في تخطيط المشروع .1
زيادة التكلفة وتخطي الزمن المقدر يسيران جنبا“ الي جنب .2
كل مشروع يجب ان تكون له تكلفة وزمن محدد .3
التكلفة المتفائلة تؤدي الي صعوبة منافسة والتواضعة لها مشاكلها .4
ماهى الصعوبات التى تواجة تقدير التكلفة وكيف يمكن حلها؟
من الصعب تقدير تكلفة حقيقة ومضبوطه وذلك لوجود عدد كبير من العوامل الغير معروفه وغير مرئية في مرحلة التخطيط .بعض
بيوتات البرمجة تستخدم سلسة لتقديرات التكلفة -:
/1تقدير اولي في مرحلة التخطيط
2
/2تقديم تقدير محسن لمراجة المتطلبات /3تقديم تقدير نهائي عن مراجعة التصميم االولي
كل تقدير يكون مبني علي معلومات اضافية في بعض االحيان يمول الزبون مرحلة التحليل ومرحلة التصميم االولية تكون هناك عقودات منفصلة
وذلك للحصول بقدر االمكان علي تكلفة وجدولة زمنية دقيقة ومضبوطه .
ماهى طرق تقدير التكلفة والموارد مبينا مثال لذلك؟
/1بنية تجزئة العمل WORK BREAKDOWN STRUCTURE
وهي تعتمد علي مخطط هرمي يوضح االجزاء الضروية في النظام ،وهذه الطريقة يمكن ان تبين شيئين -:
اما الترتيب الهرمي للمنتج (يعرف مكونات المنتج وبوضوح الطريقة التي يتم عن طريقها ربط هذه المكونات)
الترتيب الهرمي للمعالجة (يوضح نشاطات العمل او العالقات بين هذه النشاطات ،وتقدير الكلفة يتم بتحديد التكاليف والمكونات الفردية
للمخطط وبعد ذلك تجمع تلك التكاليف العطاء التكلفة الكلية للنظام .ويمكن استخدام كال المخططين الخاص بالمنتج والمعالجه)
/2الطريقة التحتية الفوقية DOWN/UP APPROACH
تركز علي تقديرات تكلفة كل جزء من النظام علي حدة أو النظم الفرعية وبعد ذلك تجمع هذه التقديرات أي تركز علي التكلفة المرتبطة
بتطوير مكونات النظم الفرعية لكنها تفشل في وضع اختبار للتكاليف اإلدارية وتكاليف ضبط الجودة .
/ 3طريقة دلفي DELPHI TECHNIQUE
يعطي المنسق كل فرد وثيقة تعريف النظام ويدون كل فرد التقديرات التي وصل اليها .يلخص المنسق ما تم عمله ويوزع مره اخري المقدرين ،
يجري المقدرين تقديراتهم مرة واخري ويتم تكرار العملية عدة مرات حتي الوصول الي تقدير متفق عليه .
/4طريقة دلفي القياسية STANDARD DELPH
اختالفها عن الطريقة السابقة ان هناك اتصال بين اعضاء الفريق فيما بينهم ،بعد دراسة وثيقة تعريف النظام ،يجتمع اعضاء الفريق مع بعضهم
لمناقشة مهام التقدير ،يكمل المقدرين تقديراتهم بدون ذكر اسماءؤهم .بعد اعداد ملخص التقديرات يتم اجتماع لمناقشة نقاط الخالف .ويكرر
المقدرين هذه العملية عدة مرات حتي الوصول الي تقدير متفق علية .
/5نمازج التكلفة الكلية ()COCOMO (CONSTRUCTIVE COST MODEL
وهي تقنية تحتية فوقية لتقدير التكلفة ،هومجموع تكلفة الوحدات القياسية والنظم الفرعية التي تكون النظام واشهر هذه الخوارزميات هي طرقة
constructive cost model
/6طريقة تقدير التكلفة بالقياس estimation by analogy
هي تقدير التكلفة المشروع الجديد بقياسه مع مشروع او مشاريع تم تطويرها من قبل في نفس المجال
5
كيف يتم وضع خطة إدارة ورقابة نشاطات األفراد (آلية لتحديد وتقييم ومتابعة نشاطات العمل) ؟
أحسن طريقة لالدارة هي اإلدارة باألهداف تنحصر في األتي :
/1يتم وضع وصف محدد وظيفي لكل فرد من أفراد المجموعة
/2كل فرد يضع هدف محدد له والمدة الزمنية التي يستوفي فيها هذا الهدف
/3تكتب هذه األهداف المختلفة وتسلم لرئيس المجموعة ويكون زمن تنفيذ هذه األهداف في فترة من شهر إلي شهرين وفي نهاية المدة يتم
محاسبة كل فرد بإنجازه وهذه تسمى اإلدارة باألهداف .
تعريف وتحليل المتطلبات
دورة حياة تطوير نظم البرمجيات
تنقسم دورة حياة تطوير نظم البرمجيات إلى مراحل متتالية وليست متطابقة والمراحل هي :
.1مرحلة تعريف المتطلبات s/w requirement definition
.2مرحلة تحليل المتطلبات s/w requirements analysis
.3مرحلة التصميم المعماري Architectural design
.4مرحلة التصميم التفصيلي Detail design
.5مرحلة التنفيذ أي كتابة البرامج Implementation
.6مرحلة االختبارات Test phase
.7مرحلة التشغيل Transfer phase
.8مرحلة الصيانة Maintenance
مرحلة المتطلبات
وهي أصعب وأهم جزء في بناء النظام إذ تركز عليها كل عملية بناء النظام فالبد من وضع متطلبات دقيقة للنظام ومفصلة ألن أي خطأ •
في المتطلبات سينتج عنه خطأ كبير في بناء النظام يصعب معالجته .
ما هي المتطلبات
ماذا يجب أن يعمل النظام والقيود التي يجب أن يعمل تحتها •
بيان بدقة ماذا سيتم بناؤه وتوثيق النتيجة •
بيان بخدمات النظام وقيوده •
هي حالة النظام المطلوب من قبل المستخدم لحل مشكلة ما او الوصول الي هدف معين •
أهمية واهداف المتطلبات
هي أهم مرحلة من مراحل تطوير نظام البرمجيات ويجب تنفيذها بدقة ألنها تعرف الفكرة المطلوبة من النظام فهي تجيب علي ماذا يجب •
أن نفعل ()what are we going to doوليس كيف يجب أن نفعل ذلك ( )not how are we going to do thisاي الهدف هو
تحديد المشاكل التي يجب حلها وليست ايجاد طريقة لكيفية حلها .
دور المتطلبات في عملية تطوير النظم
في نظم البرمجيات خاصة النظم الكبيرة تلعب مواصفات المتطلبات دوراً كبيراً .1
بالنسبة للزبون ألنها توثق ماذا يجب أن يسلم له .2
وبالنسبة لمدراء المشاريع ألنها هي األساس في الجدولة وقياس التقدم .3
وبالنسبة لمصممي البرمجيات فهي توفر مواصفات تصميم كاملة .4
وبالنسبة للمبرمجين توضح مدي التنفيذ والقبول والسيطرة النهائية علي المخرجات التي سوف تنتج . .5
وبالنسبة ألخصائي تأمين جودة البرمجيات فهي أساس للمراجعة وخطة االختبارات والتأكد من صحة البرمجيات .6
أنواع مستويات المتطلبات
.1متطلبات عامة :general requirementsوهي تصاغ في عبارات عريضة تصف ماذا يجب أن يعمل النظام أي تمثل أهداف الزبون
خارج النظام
.2متطلبات وظيفية : functional requirementsهي تعريف وظائف البرمجيات التي سيبنيها المطور في المنتج مما يمكن المستخدم
من الوصول إلي أهدافه
.3المتطلبات غير الوظيفية : non-functional requirementsوهي التي ترمز لكل القيود األخرى مثل األداء و االعتمادية والصيانة
أخطاء المتطلبات
أساسا ً أغلب أخطاء المتطلبات هو الفشل في الوصول إلي أحد هذه األهداف التالية : .1
فشل مهندس البرمجيات في فهم ماذا يطلب الزبون من نظام البرمجيات .2
فشل مهندسي البرمجيات في وصف المتطلبات كاملة وبدقة أي عدم استطاعتهم توصيل المتطلبات بدقة لجهات أخرى معنية بالتطوير .3
عدم استطاعته تأمين مطابقة متطلبات النظام مع التصميم والتنفيذ واالختبار والصيانة .نتيجة لما سبق نجد أن .4
6
.5أن هذه البرمجيات سوف ال تعمل كما هو متوقع منها
.6سوف تزيد الميزانية والجدولة في مرحلة التطوير
.7أو كما في معظم األحوال فشل في التسليم المنتج في زمنه
صعوبات المتطلبات
الصعوبات التالية نابعة من أهداف وخصائص المتطلبات
.1القدرة علي الفهم ففي أغلب األحيان الزبون ال يفهم ماذا يريد
.2االتصال أي صعوبة توصيل متطلبات البرمجيات
.3الضوابط أي التغيرات المستمرة في المتطلبات يجعل من الصعوبة عمل مواصفات متطلبات مستقرة
لذلك التخطيط بفاعلية وضبط الجدولة والتكلفة وضبط التقديرات من أصعب المشاكل
خواص المتطلبات
.1االكتمال completeness
.2الصحة correctness
.3الجدوي feasibility
.4األهمية import
.5ذات أولوية priority
.6غير غامضة unable pious
.7قابلة للمراجعة verifiable
.8قابلة للتعديل modifiable
.9متوافقة ومنسجمة consistent
.10يمكن تتبعها traceable
مرحلة تعريف متطلبات البرمجيات
هي مرحلة تحليل المشكلة ومتطلبات المستخدم يتم تحليلها بإنتاج مجموعة من مواصفات متطلبات البرمجيات خالف الخواص سالفة الذكر
تحليل المتطلبات يشمل تقنية فحص المتطلبات التي تم جمعها وذلك إليجاد أخطاء ونواقص وعمل تقنيات لكل مواصفة لتحليل المتطلبات التي
تم جمعها فالتحليل يقيم ما إذا كانت كل المتطلبات توضح خواص المتطلبات المرغوبة من أن الهدف هو تطوير متطلبات ذات نوعية عالية
وتفاصيل كافية للتطوير تقديرات مشروع حقيقية يمكنه بعدها تصميم وتنفيذ واختبار النظام وفي هذه المرحلة يتم األتي
.1النظر في كل المفاهيم األساسية للنظام ومراجعة وثيقة النظام
.2النظر في المفاهيم المعمارية للنظام
.3النظر في المواصفات الوظيفية للنظام
.4استخدام بدقة قيود النظام في االجهزة وفي البرمجيات وقيود نظام التشغيل والبرمجيات الداعمة وافتراضات التطوير والمخاطرات
المالية والزمنية وتدفق البيانات وقاموس البيانات .ويتم كل ذلك تقدير تحليل المتطلبات الذي يضع القاعدة للتصميم المعماري .والهدف
هو فهم بدقة ماهي طبيعة وحدود المشكلة .
هنالك عدة طرق لتحليل مواصفات متطلبات البرمجيات نذكر منها
.1التحليل البنيوي structured analysis
هذه الطريقة تحلل المشكلة بتكوين مخططات انسياب البيانات ( data flow diagramوهي عبارة عن مخططات هرمية تشمل معالجات
وانسياب البيانات ).
.2التحليل الموجه نحو الكائنات object oriented analysis
.3الطرق االصطالحية formal method
.4وضع النمازج االولية السريعة rapid prototyping
شكل مواصفات متطلبات البرمجيات s/w Requirements specification format
)1نظرة شاملة وملخص لمعالم المنتج
)2بيئة التطوير والتشغيل والصيانة
)3مصادر البيانات والتداخالت الخارجية
)4المتطلبات الوظيفية وتشمل :
خالئط التدفق للتسلسل الوظيفي •
• مخططات انسياب البيانات والوحدات الناتجة
• الجداول وقاموس البيانات
)5متطلبات االداء وتشمل :
• وقت االستجابة لمختلف النشاطات
• زمن المعالجة
7
• قيود الذاكرة
• امكانية االتصاالت
)6معالجة االستشارات Exception handlingمثل :
• الفشل الموقت للموارد
• بيانات ادخال غير صحيحة
• مخالفات حدود السعة التخزينية
)7اولويات تنفيذ النظام :يخطط النظام بثالث مراحل :
النموذج االولي prototype version •
• النموذج المقتدر modest version
• النموذج المحسن enhanced version
)8التعديالت والتحسينات المعرفة مسبقا“ :
تغيرات متوقعة في الميزانية او في مهمة محددة في المشروع او في اقتناء اجهزة جديدة
)9معايير القبول :وهي تحديد االختبارات الوظيفية واختبارات االداء والمعايير والمقاييس والوثائق الداخلية والخارجية .
)10ارشادات التصميم design hintsعن كيفية تصميم المنتج
)11مصادر البيانات :
تنسب متطلبات المنتج لمصادر البيانات التي استخدمت الستنتاج المتطلبات منها .
مخرجات مرحلة تعريف متطلبات البرمجيات
وثيقة مواصفات متطلبات البرمجيات التي تحوي نموذج منطقي لمتطلبات النظام والبرمجيات .1
خطة إدارة مشروع البرمجيات في مرحلة التصميم المعماري .2
خطة التشكيل االداري للبرمجيات لمرحلة التصميم المعماري .3
خطة التحقق والتاكد من صحة البرمجيات .4
خطة تأمين جودة البرمجيات .5
خطة اختبار النظام .6
ماهو التصميم ؟
التصميم هو الجسر بين متطلبات الزبون والتنفيذ الذي يستوفي المتطلبات ،والتصميم الجيد يجب أن يكون :
/1مالئم adaptableاي انه سهل الصيانة وسهل التعديل
/2فعال efficientبمعني انه يستخدم اقل جزء من الموارد المتاحة
/3وسهل الفهم understandable
ماهى المفاهيم االساسية للتصميم ؟
الهيكيلة structuresوهي تفكيك النظام الكبير الي نظم فرعية اصغر . .1
قابلية التجميع modularity .2
هي ضمان تناسق البيانات المشتركة بين الوحدات القياسية المتزامنة في التنفيذ التزامن concurrency .3
اخفاء البيانات :data hidingالوحدات القياسية تخفي التفاصيل .4
ماهو التصميم الجيد ؟
هو تصميم نسقي( )modulerوفيه تكون المكونات بسيطة ومستقلة عن بعضها البعض ويمكن النظر للتصميم علي أنه عملية يتم فيها
وصف المعمارية من خالل خطوات فيها تفاصيل أكثر وكل خطوة جديدة تنفذ المتطلبات التي عرفت في السابق والخطوة األخيرة هي التنفيذ الذي
يكمل معمارية البرمجيات إلي برامج
ماذا نعنى ب قابلية التجميع ؟
هي من المفاهيم األساسية للتصميم وهي قابلية التجميع أو الترتيب النسقي فهي مهمة جداً لتصميم البرمجيات فالتصميم الجيد هو تصميم
نسقي ويطلق علي مكونات النظام الجيد الوحدات القياسية
ماهى الوحدات القياسية modules؟
هي الجزء المعرف جيداً في برنامج مثال ذلك برنامج sub programأخرى أو دالة هي مكونات بسيطة مستقلة عن بعضها البعض
وتحتوي هياكل البيانات ويمكن تضمينها في البرامج ويمكن تخزينها في مكتبات البرامج وتفكيك النظام إلي وحدات قياسية يمكن تنفيذه بعدة
طرق وعدة خطوات مثال ذلك تفكيك النظام Black boxبوحدات قياسية عالية المستوى أي إلي نظم فرعية ثم تفكيك كل نظام فرعي لوحدات
حتى الوصول إلي نقطة كافية من الصغر وهذه هي عملية تحليل تحتية فوقية
كيف تتم عملية التصميم (على ماذا تحتوي عملية التصميم ) ؟
/1التصميم الخارجي External design
/2التصميم الداخلي internal design
/3التصميم المعماري architectural design
8
/4التصميم التفصيلي details design
ملحوظة
• يطلق علي التصميم المعماري والتفصيلي التصميم الداخلي
ماهو التصميم الخارجي ؟
هو صورة هيكلية للنظام ويعتبر -:
/1صورة عامة و كاملة لفكرة النظام
/2صورة لهيكلة النظام (ادخال ،معالجة ،اخراج)
/3التخطيط النهائي لهذه الفكرة
/4تحديد وتفصيل لمواصفات منتج البرمجيات التي يمكن توقعها وهذه المواصفات هي-:
.1تحديد أشكال التقارير التي يرغب فيها المستخدم
.2تحديد مصادر البيانات الخارجية و أوعيتها
.3تحديد المواصفات الوظيفية
.4تحديد المواصفات البرمجية التي توصل إلي األهداف وبذلك توفي بالمتطلبات
.5تحديد متطلبات األداء
.6تحديد هيكلية و بيئة المعالجة
من اين يبدأ التصميم الخارجي ؟
يبدأ التصميم الخارجي خالل مرحلة التحليل ويستمر حتى مرحلة التصميم .وهو تنقيح المتطلبات ووضع صورة ذهنية أولية لهيكلية
للنظام
ملحوظة
في الواقع ليس من الممكن عمل تعريفات للمتطلبات بدون أجراء بعض التصميمات األولية فتعريف المتطلبات يعنى بتحديد المتطلبات
الوظيفية ومتطلبات األداء ومعالجة االستشارات الي ..الخ ، .لهذا فالفرق بين تعريف المتطلبات والتصميم الخارجي ليس فرق قاطع انما هو
االنتقال التدريجي من مرحلة ماذا سنبني Whatإلي مرحلة كيف سنبني .How
ماهو التصميم الداخلي ؟
/1التصور الفعلي لمنتج البرمجيات
/2التخطيط الفعلي لمنتج البرمجيات
/3وصف الهيكل الداخلي لمنتج البرمجيات
/4وصف تفاصيل معالجة منتج البرمجيات
ماهى أهداف التصميم الداخلي ؟
/1توصيف الهيكل الداخلي للمنتج
/2وصف تفاصيل المعالجة
ماهى نشاطات التصميم الداخلي ؟
/1وضع مواصفات البنية المعمارية لمواصفات البرمجيات (تسلسل النظام)
/2وضع مواصفات تفاصيل الخوارزميات (من اين تبدأ وكيف تعالج واين تذهب)
/3وضع مواصفات هياكل البيانات
/4وضع خطة االستثناءات exceptional handling
ماهو التصميم المعماري؟
هو الوصلة ما بين المتطلبات وعمليات التصميم
فتصميم البرمجيات هو تفكيك النظام إلي وحدات قياسية ووصف ماذا يجب أن تعمل كل وحدة والصالت بين هذه الوحدات هذا يسمى
بالتصميم المعماري أو بنية البرمجيات وهدف نشاطات هذه المرحلة هو تعريف معمارية البرمجيات
ماهى مراحل التصميم المعماري ؟
.1تعريف البرمجيات في شكل مكونات وبنياتها ()interfaces
.2تغطية متطلبات البرمجيات ،فالوصول لتصميم جيد فالبد من تعريف جيد للتكوين النسقي للنظام (هو تقسيم النظام الي وحدات
قياسية modulesوتحديد الوصالت بينها )
ماهو مفهوم التصميم المعماري( ماذا يعنى) ؟
المفهوم الشامل لفكرة النظام .1
تحديد وظائف المعالجة الداخلية للنظام .2
تفكيك الوظائف العليا إلي وظائف فرعية .3
تعريف تدفق البيانات الداخلية ومخازن البيانات .4
إنشاء عالقات وتداخالت بين الوظائف وتدفق البيانات .5
9
ماهو التصميم المعمارى (أهدافة) ؟
.1يركز علي الخواص الهيكلية الوظيفية للنظام
.2إنتاج برمجيات عالية التكوين
ماهى مخرجات التصميم المعماري ؟
وثيقة التصميم المعماري .1
خطة إدارة مشروع البرمجيات لمرحلة التصميم التفصيلي .2
خطة التشكيل اإلداري للبرمجيات لمرحلة التصميم التفصيلي .3
خطة التدقيق والتحقق من صحة البرمجيات لمرحلة التصميم التفصيلي .4
خطة تأمين جودة البرمجيات لمرحلة التصميم التفصيلي .5
ماهو التصميم التفصيلي (مرحلة اإلنتاج والتنفيذ) ؟
.1تنقيح البنية المعمارية إلي تفاصيل تنفيذ دقيقه
.2نقطة البداية للتصميم التفصيلي هي هيكل معماري للنظام مزود بتفاصيل خوارزميات
ماهى أهم نشاطات مرحلة التصميم التفصيلى ؟
.1وصف تفاصيل الخوارزميات التي تنفذ النظام
.2تحديد للترابطات الداخلية الحقيقية بين الوظائف وهياكل البيانات
.3وضع منتج البرمجيات بشكل ملموس
ماهى مخرجات التصميم التفصيلي ؟
.1الوثائق التي سيتم تسليمها عند نهاية المرحلة
.2توثيق التصميم المعماري في تفاصيل متسلسلة حتى الوصول إلي النظم الفرعية
.3وصف مدخالت المستخدم
.4وصف مخرجات النظام
.5تحديد ملفات اإلدخال واإلخراج
.6تحديد تدخالت الوحدات القياسية فيما بينها
.7تحديد خطة إدارة مشروع البرمجيات في مرحلة االختبار والمراجعة
.8تحديد خطة إدارة التشغيل
.9تحديد خطة تأمين جودة البرمجيات
.10البدء بعمل كتيب المستخدم
ماهو التربط والتماسك ؟
هدف تصميم البرمجيات هو انتاج نظام يكون فيه هناك تقليل في الترابط بين المكونات بمعني تقليل عدد المفردات التي تمر بين
المكونات وفقط تمرير البيانات ذات الحوجه وفي نفس الوقت تعظيم او تكبير التماسك داخل المكونات بوضع الوحدات داخل المكونات التي لها
صالت مع بعضها البعض
13
.3التنظيم الدقيق لنشاطات الصيانة ومبرمجي الصيانة
.4توفير أدوات الصيانة
فالصيانة هي عملية مصغرة لعملية تطوير البرمجيات ألن تعديل المنتج يمكن أن يشمل :
RE REQURIMENT DEFINTION تعريف مرة أخرى للمتطلبات .1
تحليل مرة أخرىRE ANALYSIS .2
تصميم مرة أخرىRE DESIGN .3
RE IMPLEMENTATION تنفيذ مرة أخرى .4
RE TSETING التحقق من الصحة مرة أخرى .5
تعديل وتحديث الوسائل .6
14