You are on page 1of 280

SOFTWARE

ENGINEERING
‫محور هندسة البرمجيات‬

2021 By Eng. Joud Khattab 1


Content

■ Overview.
■ Software Processes.
■ Software Development Life Cycle (SDLC).
■ Requirement Engineering.
■ Unified Modeling Language (UML).
■ Architecture Design.
■ Testing & Maintenance.
■ Others.
■ MCQ.

2021 By Eng. Joud Khattab 2


OVERVIEW

2021 By Eng. Joud Khattab 3


‫‪Overview‬‬

‫تعريف هندسة البرمجيات؟‬ ‫■‬


‫– هندسة البرمجيات تعني بناء ‪ product‬جديد أو نظم جديدة أو التعديل و تطوير النظم القديمة و‬
‫تحسين أخطائها و كذلك تعني اكتشاف المشاكل الموجودة مسبقا‪.‬‬
‫– هي فرع من فروع العلم مسؤول عن تطوير البرمجيات (‪ )software‬و ذلك لحظة الفكرة و مستمر‬
‫حتى لحظة خروجها من الخدمة‪.‬‬
‫نقصد بكلمة نظم؟‬ ‫ماذا‬ ‫■‬
‫النظام هو مجموعة مكونات أو أجزاء تتفاعل مع بعضها البعض لتحقيق أهداف معينة و تلك األهداف‬ ‫–‬
‫هي المرغوب بوجودها لحل بعض المشاكل الحياتية‪.‬‬
‫النظام البرمجي ال يختلف عن تعريف النظام‪ ،‬وله نوعان‪:‬‬ ‫–‬
‫نظم مفتوحة‪:‬‬ ‫–‬
‫هي النظم التي تقوم بتبادل المعلومات و المعطيات مع الوسط الخارجي و معظم النظم البرمجية هي‬ ‫■‬
‫نظم مفتوحة ألنها تتلقى ‪ input‬من الوسط الخارجي و تعالجه و تخرج ‪.output‬‬
‫نظم مغلقة ‪:‬‬ ‫–‬
‫هي النظم التي ال تتبادل المعلومات و المعطيات مع الوسط الخارجي‪.‬‬ ‫■‬
‫مثال‪ :‬بعض أنظمة الساعات التي يتم ضبطها لمرة واحدة فقط‪.‬‬ ‫■‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪4‬‬


‫‪Overview‬‬

‫■ تعريف ال ‪:software‬‬
‫– هي عبارة عن البرامج مع ال ‪ data‬مع التوثيق (‪ ،)documentation‬وال نقصد هنا‬
‫بالتوثيق وضع التعليقات بين أسطر البرنامج‪.‬‬
‫– توثيق كل الخطوات التي نقوم بها في تطوير أي نظام برمجي في كل المراحل التي‬
‫يمر بها من تحليل و تصميم و تنجيز و اختبار‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪5‬‬


‫‪Overview‬‬

‫ما هي مواصفات ال ‪ software‬الجيد؟‬ ‫■‬


‫– يجب أن يقدم الخدمات المطلوبة منه و ينجز تلك الخدمات بشكل جيد‪.‬‬
‫– أن يكون قابال للصيانة و ذلك عند طروء أي مشكلة أو ظهور أي خطأ في عمله‪.‬‬
‫– األمان‪)security( :‬‬
‫نقصد بها أنه ال يجب لل ‪ users‬أو أي شخص أن يصل لمعلومات داخل النظام ال يتوجب عليه الوصول إليها‪.‬‬ ‫■‬
‫االتاحة‪)availability( :‬‬ ‫–‬
‫لو كنا نطور نظام ‪ web‬و كل بضع دقائق تظهر رسالة تخبرنا بأن ال ‪ server‬غير متاح‪ ،‬عندها يكون نظامنا‬ ‫■‬
‫سيء و غير متاح بشكل دائم للمستخدمين‪.‬‬
‫الموثوقية‪)reliability( :‬‬ ‫–‬
‫هناك الكثير من التطبيقات التي تهمنا فيها الموثوقية مثل تطبيق لتحويل أموال بين حسابين‪.‬‬ ‫■‬
‫الحماية‪)safety( :‬‬ ‫–‬
‫مثل نظام التحكم األتوماتيكي بالطائرة أو ما يسمى الطيار اآللي و هذا النظام يجب تواجده ضمن طائرة‬ ‫■‬
‫عند حدوث أي طارئ على الطيار و يجب أت تتوفر فيه الحماية الالزمة للمحافظة على أرواح البشر‪.‬‬
‫تلك األنظمة تسمى بال ‪ real time software‬أو األنظمة الحقيقية اللحظية‪.‬‬ ‫■‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪6‬‬


‫‪Overview‬‬

‫■ ما هي مواصفات ال ‪ software‬الجيد؟‬
‫– الفاعلية‪)efficiency( :‬‬
‫نقول عن برمجيات أنها فعالة إذا استخدمت موارد أقل من معالجة ‪ CPU‬و ‪.memory‬‬ ‫■‬
‫– القبول‪)accessibility( :‬‬
‫معايير قبول نظام برمجي يختلف من شركة ألخرى و من مستخدم آلخر‪ ،‬و المعيار‬ ‫■‬
‫األساسي لقبول نظام برمجي هو الواجهات‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪7‬‬


‫‪Overview‬‬

‫■ الفرق بين هندسة البرمجيات ‪ software engineering‬و علوم الحاسوب ‪computer‬‬


‫‪science‬؟‬
‫– إن علوم الحاسب تعتمد على العلوم النظرية‪.‬‬
‫– أما هندسة البرمجيات فهي تعتمد على الواقع و على التطبيق العملي و تطوير نظم‬
‫فعلية‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪8‬‬


‫‪Overview‬‬

‫■ الفرق بين هندسة البرمجيات ‪ software engineering‬و هندسة النظام ‪system‬‬


‫‪engineering‬؟‬
‫– إن هندسة البرمجيات تركز على المواضيع البرمجية بشكل مطلق‪.‬‬
‫– أما هندسة النظام فهي تركز على كل شيء فتشمل ال ‪ hardware‬و ال ‪ software‬و‬
‫هي أوسع و أشمل من هندسة البرمجيات‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪9‬‬


‫‪Overview‬‬

‫‪■ Enterprise Resource Planning (ERP):‬‬


‫هي عبارة عن حزمة برمجية متكاملة تشكل مع بعضها ‪system‬كامل و ذلك إلدارة أي‬ ‫–‬
‫شركة‪ ،‬أي تقوم بأتمتة أنظمة الشركة‪.‬‬
‫)النظم المضمنة( ‪■ Embedded System:‬‬
‫– النظم المضمنة هي عبارة عن ذاكرة أو ‪ ROM‬أي هي ‪ cheep‬من ذاكرة تخزن عليها‬
‫معلومات ثابتة مثل برمجيات البراد و الغسالة و المنزل الذكي‪.‬‬
‫)‪■ Computer Aided Software Engineering (CASE‬‬
‫أدوات مساعدة في تطوير هندسة البرمجيات و لها نوعين‪:‬‬ ‫–‬
‫‪ :Upper case‬هذه األدوات تكون قليلة و تقتصر فقط على المراحل األولى من تحليل و‬ ‫–‬
‫تصميم أي تضم أدوات ‪ tools‬تساعد في عملية جمع المتطلبات و رسم المخططات و‬
‫تصنيف المتطلبات‪ ..‬الخ‪.‬‬
‫‪ :Lower case‬هي األدوات التي تساعد في عمليات ال ‪ debugging‬و البرمجة و االختبار‪.‬‬ ‫–‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪10‬‬


‫‪Overview‬‬

‫■ المهتمون‪)stakeholders ( :‬‬
‫– انهم أشخاص أو مؤسسات المهتمة في تطوير النظم البرمجية ألنها تؤثر أو تتأثر‬
‫بطريقة مباشرة أو غير مباشرة بالنظام المقترح‪.‬‬
‫– مثال‪ :‬نظام تعليمي لوزارة التعليم العالي أو ‪ online management system‬فكل من‬
‫الوزارة و الطالب يشكلون ال ‪ stakeholders‬ألنهم يتأثرون بهذا النظام و لهم الدور‬
‫األساسي في تطوير ذلك النظام ‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪11‬‬


‫‪Overview‬‬

‫■ تقسيم ال ‪:stakeholders‬‬
‫– المطورون الذين يطورون النظام‪developers :‬‬
‫حيث يعتبر ال ‪ developers‬مهتمون ألنهم يتأثرون بشكل أو بآخر بالنظام‪.‬‬ ‫■‬
‫– المستخدمون‪users :‬‬
‫هم من المهتمون ألنهم من يستخدمون النظام‪.‬‬ ‫■‬
‫– الممولون‪sponsors :‬‬
‫المسؤولون الذين يمولون النظام أي يقومون بدفع المال‪.‬‬ ‫■‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪12‬‬


‫‪Overview‬‬

‫■ الفرق بين مفهومي ال ‪ actor‬و ال ‪:stakeholders‬‬


‫– ال ‪ stakeholders‬هم المهتمون و هم من يستخدمون النظام و هم دائماً أشخاص‬
‫فقط‪.‬‬
‫– ال ‪ actor‬هو من يف ّعل النظام أو يف ّعل خدمة من النظام‪.‬‬
‫ليس بالضرورة أن يكون شخص حيث أن ال ‪ actor‬قد يكون شخص‪،software ،hardware ،‬‬ ‫■‬
‫و يمكن أن يكون أي شيء ماعدا النظام نفسه‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪13‬‬


‫‪Overview‬‬

‫■ اإلجرائية البرمجية‪)Software Processes( :‬‬


‫– مجموعة األنشطة و الطرق و األدوات و المخططات المترابطة بعضها البعض التي‬
‫تؤدي لفهم المشكلة و إيجاد نظام جديد مجدي لحل تلك المشكلة و الذي يحقق‬
‫الكلفة المنخفضة و الجودة العالية و رضا الزبون ‪.‬‬
‫■ نماذج اإلجرائيات البرمجية‪)Software Process Models( :‬‬
‫– فنقصد به طريقة ورود تلك األنشطة السابقة وفق إجراء معين أو طريقة معينة ‪.‬‬
‫– مثل إذا وردت تلك األنشطة بشكل خطي نطلق على النموذج اإلجرائي اسم‬
‫(النموذج الشاللي)‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪14‬‬


‫‪Overview‬‬

‫■ تمر مرحلة تطوير (النظام) أو البرمجيات بشكل عام في أربع مراحل‪)activities( :‬‬

‫‪Analysis‬‬ ‫التحليل‬ ‫‪1‬‬


‫‪Design‬‬ ‫التصميم‬ ‫‪2‬‬
‫‪Implementation‬‬ ‫التنجيز‬ ‫‪3‬‬
‫‪Testing‬‬ ‫االختبار‬ ‫‪4‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪15‬‬


Question 1

■ Which of these is incorrect?


A. Software engineering belongs to Computer science
B. Software engineering is a part of more general form of System Engineering
C. Computer science belongs to Software engineering
D. Software engineering is concerned with the practicalities of developing and
delivering useful software

2021 By Eng. Joud Khattab 16


Question 1

■ Which of these is incorrect?


A. Software engineering belongs to Computer science
B. Software engineering is a part of more general form of System Engineering
C. Computer science belongs to Software engineering
D. Software engineering is concerned with the practicalities of developing and
delivering useful software

2021 By Eng. Joud Khattab 17


Question 2

■ A stakeholder is anyone who will purchase the completed software system under
development.
A. True
B. False

2021 By Eng. Joud Khattab 18


Question 2

■ A stakeholder is anyone who will purchase the completed software system under
development.
A. True
B. False

2021 By Eng. Joud Khattab 19


Question 3

■ What are the characteristics of software?


A. Software is developed or engineered; it is not manufactured in the classical
sense
B. Software doesn’t “wear out”
C. Software can be custom built or custom build
D. All mentioned above

2021 By Eng. Joud Khattab 20


Question 3

■ What are the characteristics of software?


A. Software is developed or engineered; it is not manufactured in the classical
sense
B. Software doesn’t “wear out”
C. Software can be custom built or custom build
D. All mentioned above

2021 By Eng. Joud Khattab 21


Question 4

■ Software is defined as ____ .


A. Instructions
B. Data Structures
C. Documents
D. All of the above

2021 By Eng. Joud Khattab 22


Question 4

■ Software is defined as ____ .


A. Instructions
B. Data Structures
C. Documents
D. All of the above

2021 By Eng. Joud Khattab 23


Question 5

■ What are the signs that a software project is in trouble?


A. The product scope is poorly defined
B. Deadlines are unrealistic
C. Changes are managed poorly
D. All of the above

2021 By Eng. Joud Khattab 24


Question 5

■ What are the signs that a software project is in trouble?


A. The product scope is poorly defined
B. Deadlines are unrealistic
C. Changes are managed poorly
D. All of the above

2021 By Eng. Joud Khattab 25


SOFTWARE PROCESSES
‫اإلجرائية البرمجية‬

2021 By Eng. Joud Khattab 26


‫‪Software Processes‬‬
‫)التوصيف او التحليل( ‪Descriptions‬‬
‫■ التوصيف‪:‬‬
‫– ما هو مطلوب من النظام أو ما يقدمه النظام من خدمات‪.‬‬
‫– تنتهي مرحلة التوصيف بوثيقة تسمى (دفتر الشروط) أو (وثيقة المتطلبات)‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪27‬‬


‫‪Software Processes‬‬
‫)التصميم( ‪Design‬‬
‫■ التصميم‪:‬‬
‫– المسؤول عن هذه المرحلة هو المصمم و له وظائف عديدة هي‪:‬‬
‫أن يعرف بمعمارية النظام‪.‬‬ ‫■‬
‫يجب أن يقوم بتصميم قاعدة المعطيات و مخططات‪.‬‬ ‫■‬
‫يقوم بتصميم الواجهات الخاصة بالنظام البرمجي‪.‬‬ ‫■‬
‫– عملية التصميم هي العملية الهندسية الوحيدة في أثناء بناء النظام‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪28‬‬


‫‪Software Processes‬‬
‫)التنجيز( ‪Implementation‬‬
‫■ التنجيز‪:‬‬
‫– نقوم بكتابة الخوارزميات التي صممها المصمم و تحويلها إلى ‪.code‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪29‬‬


‫‪Software Processes‬‬
‫)االختبار( ‪Testing‬‬
‫■ االختبار‪:‬‬
‫– هي مرحلة تجريب النظام بهدف العثور على أخطاء و تصحيحها‪.‬‬
‫– نشاط المظلة (‪:)umbrella activity‬‬
‫– نقوم بتقسيم عمليات ال ‪ testing‬الى اجزاء بحيث أن كل مرحلة من المراحل‬
‫السابقة يكون لدينا ‪ testing‬معين في نهايتها‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪30‬‬


Question 1

■ 1. Requirement Elicitation ------- a. Module Development and integration.


■ 2. Design ----------------------------------- b. Analysis.
■ 3. Implementation -------------------- c. Structure and behavioral.
■ 4. Maintenance ------------------------ d. Performance tuning.
A. 1-c , 2-a , 3-d , 4-b
B. 1-c , 2-a , 3-b , 4-d
C. 1-a , 2-c , 3-d , 4-b
D. 1-b , 2-c , 3-a , 4-d

2021 By Eng. Joud Khattab 31


Question 1

■ 1. Requirement Elicitation ------- a. Module Development and integration.


■ 2. Design ----------------------------------- b. Analysis.
■ 3. Implementation -------------------- c. Structure and behavioral.
■ 4. Maintenance ------------------------ d. Performance tuning.
A. 1-c , 2-a , 3-d , 4-b
B. 1-c , 2-a , 3-b , 4-d
C. 1-a , 2-c , 3-d , 4-b
D. 1-b , 2-c , 3-a , 4-d

2021 By Eng. Joud Khattab 32


Question 2

■ A Project can be characterized as _____ .


A. Every project may not have a unique and distinct goal
B. Project is routine activity or day-to-day operations
C. Project does not comes with a start time and end time
D. None of the above

2021 By Eng. Joud Khattab 33


Question 2

■ A Project can be characterized as _____ .


A. Every project may not have a unique and distinct goal
B. Project is routine activity or day-to-day operations
C. Project does not comes with a start time and end time
D. None of the above

2021 By Eng. Joud Khattab 34


Question 3

■ Which of these software activities are not a part of software processes?


A. Software dependence
B. Software development
C. Software validation
D. Software specification

2021 By Eng. Joud Khattab 35


Question 3

■ Which of these software activities are not a part of software processes?


A. Software dependence
B. Software development
C. Software validation
D. Software specification

2021 By Eng. Joud Khattab 36


SOFTWARE DEVELOPMENT
LIFE CYCLE (SDLC)
software process model
‫نماذج اإلجرائيات البرمجية‬

2021 By Eng. Joud Khattab 37


‫‪Software Process Model‬‬
‫)نماذج االجرائيات البرمجية(‬
‫■ تقسم نماذج اإلجرائيات البرمجية إلى قسمين‪:‬‬
‫– المخطط‪)plan driven( :‬‬
‫كل األنشطة التي تحدثنا عنها يتم التخطيط لها بشكل كامل و بشكل تام و نضع‬ ‫■‬
‫المخاطر بعين االعتبار‪ ،‬و تضع خطط بديلة في الحاالت الطارئة‪.‬‬
‫– السريع‪)agile process( :‬‬
‫الهدف من هذه النماذج هي االنتهاء من عملية تطوير النظام بأسرع وقت ممكن و ذلك‬ ‫■‬
‫على حساب الجودة و هو ال يحتاج لتخطيط عالي حيث كل فترة نخطط تخطيطا سريعا‬
‫لخدمة معينة ثم ننجزها أي أنه ليس كامل‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪38‬‬


‫)‪Software Development Life Cycle (SDLC‬‬
‫)النموذج الشاللي( ‪Waterfall Model‬‬
‫■ تعريف‪:‬‬
‫– عندما تورد األنشطة وراء بعضها البعض مثل تدفق المياه حيث يتدفق الماء نحو األمام‬
‫دون العودة إلى الوراء يسمى هذا النموذج بالنموذج الشللي‪.‬‬
‫■ مشاكل هذا النموذج‪:‬‬
‫– الوقت الكبير الذي يستهلكه النظام من مرحلة الفكرة و حتى الحصول على النظام‪.‬‬
‫ألنه أثناء القيام بعملية التحليل ال يقوم المصممون بأي عمل‪.‬‬ ‫■‬
‫– هذا النموذج ال يقبل أي تغيير في المتطلبات و لذلك عند اختيار هذا النموذج يجب أن‬
‫يكون النظام واضح بكل تفاصيله الدقيقة‪.‬‬
‫مثل تطوير نظام قديم لدينا يمكننا تطويره بنموذج الشللي‪.‬‬ ‫■‬
‫■ محاسن هذا النموذج‪:‬‬
‫– إن العقل يقبل الطريقة الخطية تماما مثل النموذج الشاللي و يراه أسهل من غيره‪.‬‬
‫– إذا كان الفريق الذي يقوم بتطوير النظام ال يملك الخبرة الكافية فإن النموذج الشاللي‬
‫مفيد لهم جدا‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪39‬‬


‫)‪Software Development Life Cycle (SDLC‬‬
‫)النموذج الشاللي( ‪Waterfall Model‬‬
‫■ مالحظة‪:‬‬
‫– جميع تطبيقات الويب ‪ web‬ال تطور بالنموذج الشللي!!‬
‫– ألنها تطبيقات يحدث لها إضافة خدمات كل فترة و تغييرات و تعديالت على خدمات‬
‫قديمة و لذلك ال تطور بالنموذج الشللي‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪40‬‬


‫)‪Software Development Life Cycle (SDLC‬‬
‫)النموذج التزايدي( ‪Incremental Model‬‬
‫تعريف‪:‬‬ ‫■‬
‫– ليكن لدينا نظام معين يقدم ‪ 100‬خدمة معينة‪.‬‬
‫– يقوم فريق العمل بعد فهم المشكلة و تحديد المتطلبات و الخدمات التي يقدمها النظام بتحديد‬
‫األولويات و نقصد بها أن يتم اختيار ‪ 10‬خدمات أساسية أولوية في النظام‪.‬‬
‫– ثم يتم عمل مرحلة تحليل لها ثم تصميم ثم تنجيز و هكذا نصل لمنتج ملموس يقدم ‪ 10‬خدمات‪،‬‬
‫– بعد ذلك نأخذ هذا المنتج و نضيف إليه ‪ 5‬خدمات أخرى و ذلك بإعادة عمليات التحليل و التصميم و‬
‫التنجيز لها فيصبح المنتج يقدم ‪ 15‬خدمة‪،‬‬
‫– و هكذا حتى ينتهي نظامنا أو يبقى في مرحلة تطوير دائم‪.‬‬

‫‪,‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪41‬‬


‫)‪Software Development Life Cycle (SDLC‬‬
‫)النموذج التزايدي( ‪Incremental Model‬‬
‫■ محاسن هذه النموذج‪:‬‬
‫– الوقت القصير الذي يمكننا من الحصول على منتج ملموس لكنه غير كامل‪.‬‬
‫– يمكن لهذا النموذج ان يتعامل مع متطلبات متغيرة‪ ،‬فبكل دورة نقوم بها يمكننا تعديل‬
‫متطلبات أو إضافة خدمات جديدة‪.‬‬
‫– معظم االنظمة تطور بهذا النموذج و خاصة تطبيقات الويب‪.‬‬
‫■ مساوئ هذا النموذج‪:‬‬
‫– يمكن لبعض الخدمات أو المتطلبات الجديدة أن تتناقض مع متطلبات قديمة قد تم تنجيزها‬
‫بالنظام لذلك نضطر إلى نسفها من النظام‪.‬‬
‫– يمكن أن ترتبط الخدمات ببعضها البعض فتقدم خدمة لكنها غير مفيدة بدون خدمة أخرى‬
‫و هنا يجب االنتظار دورة كاملة ثانية لتنجيز الخدمة الثانية و ذلك لتفعيل الخدمة األولى و‬
‫هذا يعود لخطأ أثناء ترتيب أولوياتنا في النظام‪.‬‬
‫بشكل عام محاسن هذا النظام أكثر من مساوئه‪.‬‬ ‫■‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪42‬‬


‫)‪Software Development Life Cycle (SDLC‬‬
‫‪Reuse-oriented Software Engineering‬‬
‫)النموذج المقام بإعادة االستخدام(‬
‫تعريف‪:‬‬ ‫■‬
‫– تحليل ثم تصميم ثم بحث ثم تنجيز ثم اختبار‪.‬‬
‫– البحث هي مرحلة نقوم بها بالبحث عن ‪ component‬جاهزة نضمنها في مشروعنا‪ ،‬حيث بعد القيام‬
‫بعملية التحليل و تحديد المتطلبات و الخدمات التي يقوم بها النظام نجري عملية بحث في السوق‬
‫عن أنظمة قديمة تخدم الخدمات التي يقدمها نظامي فنقوم بتجميع هذه المكونات الجاهزة و‬
‫ربطها سويا ليتشكل نظامنا‪.‬‬
‫– يجب مراعاة أن تكون تلك ال ‪ component‬التي نستفيد منها في نظامنا موثوقة و لذلك يتوجب‬
‫علينا القيام بعملية ‪ testing‬للمكونات قبل تضمينها في النظام‪.‬‬

‫‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪43‬‬


‫)‪Software Development Life Cycle (SDLC‬‬
‫‪Reuse-oriented Software Engineering‬‬
‫)النموذج المقام بإعادة االستخدام(‬
‫■ محاسن هذا النموذج‪:‬‬
‫– السرعة في تنجيز نظامنا‪.‬‬
‫– الموثوقية بسبب عمليات ال ‪ testing‬التي نقوم بها من أجل كل مكون من المكونات‬
‫الجاهزة‪.‬‬
‫■ مساوئ هذا النموذج‪:‬‬
‫– أحيانا ال تتوافر ال ‪ component‬المناسبة ولذلك نضطر إلى تنجيزها بأنفسنا‪.‬‬
‫– أن عملية التكامل و ربط ال ‪ components‬مع بعضها البعض عملية معقد جدا و هي‬
‫تحتاج إلى فهم عالي لل ‪ interfaces‬بين ال ‪.components‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪44‬‬


‫)‪Software Development Life Cycle (SDLC‬‬
‫)النموذج البدائي او االولي( ‪Prototyping Model‬‬
‫تعريف‪:‬‬ ‫■‬
‫– نريد تطوير نظام جديد ذو فكرة جديدة غير مطبق من قبل أبدا أي ال يوجد أي نظام يشبهه بل هو‬
‫نظام جديد كليا و في هذه الحالة يكون النظام بالنسبة لفريق العمل غامض‪.‬‬
‫– عندما يكون الزبون غير قادر عن التعبير عن متطلباته التي يريدها و هنا ال يمكننا جمع المتطلبات‬
‫من الزبون بشكل مباشر‪.‬‬
‫– النموذج يوجد نوعين‪:‬‬
‫مهمل‪.‬‬ ‫■‬
‫تطويري‪.‬‬ ‫■‬

‫‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪45‬‬


‫)‪Software Development Life Cycle (SDLC‬‬
‫)النموذج البدائي او االولي( ‪Prototyping Model‬‬
‫■ محاسن هذا النموذج‪:‬‬
‫– إنه الحل الوحيد في حال كان‪:‬‬
‫نظامنا جديد تماما‪.‬‬ ‫■‬
‫الزبون غير قادر على التعبير عن متطلباته‪.‬‬ ‫■‬
‫■ مساوئ هذا النموذج‪:‬‬
‫– مستهلك للوقت و ذلك بسبب الوقت المستهلك في عملية جمع المتطلبات‪.‬‬
‫– مستهلك للجهد فقد نقوم بعمل أكثر من واجهة و أكثر من نموذج من الرسومات‪.‬‬
‫– غير مضمون ألننا قد ال نصل إلى حل إليجاد المتطلبات‪ ،‬ألن ذلك له عالقة بإمكانية‬
‫إقناع الزبون بتصميماتنا‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪46‬‬


‫)‪Software Development Life Cycle (SDLC‬‬
‫)النموذج الحلزوني( ‪Spiral Model‬‬
‫■ تعريف‪:‬‬
‫– هذا النموذج مكون من أربعة قطاعات أساسية و هي‪:‬‬
‫التخطيط‪)Planning( .‬‬ ‫‪.1‬‬
‫دراسة المخاطر‪)Risk analysis( .‬‬ ‫‪.2‬‬
‫التطوير‪)Development( .‬‬ ‫‪.3‬‬
‫التقييم‪)Assessment( .‬‬ ‫‪.4‬‬
‫هذا النموذج موجه بشكل أساسي لدراسة المخاطر‪.‬‬ ‫–‬
‫النموذج الحلزوني ال يطلب إال في األنظمة الضخمة والمعقدة‪.‬‬ ‫–‬
‫يعتبر دمج بين مخطط الشاللي والبروتوتايب‬ ‫–‬
‫ما الفرق بين النموذج الحلزوني و النموذج التزايدي؟‬ ‫■‬
‫– إن النموذج التزايدي بعد دورة واحدة فقط نحصل على منتج ملموس‪،‬‬
‫– أما النموذج الحلزوني قد ندور أكثر من دورة و ال نصل إلى ‪ product‬أي قد يتطلب إنتاج‬
‫نظام أكثر من دورة‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪47‬‬


‫)‪Software Development Life Cycle (SDLC‬‬
‫)النموذج الحلزوني( ‪Spiral Model‬‬
‫■ محاسن هذا النموذج‪:‬‬
‫– هذا النموذج يأخذ بعين االعتبار التغييرات ‪ change‬و كذلك دراسة المخاطر ‪،risk‬‬
‫فالنظام المطور بهذا النموذج يكون ذا جودة عالية بسبب عدد التكرارات و الدورات‬
‫التي يتم تنفيذها للحصول على هذا النظام و أيضا يكون النظام قابل للصيانة‪.‬‬
‫■ مساوئ هذا النموذج‪:‬‬
‫– مساوئه أنه صعب التطبيق بشكل كبير و يحتاج إلى فريق ذو خبرات و مؤهالت‬
‫عالية‪ ،‬و هو يطبق في المشاريع الكبيرة ‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪48‬‬


Software Development Life Cycle (SDLC)
Rational Unified Process (RUP)
(‫)اإلجراءات الموحدة‬
:‫■ تعريف‬
Rational software ‫ هي نسبة للشركة التي طورتها التي اسمها‬Rational ‫– كلمة‬
corporation
‫– هذه اإلجرائية تقوم بعمليات التحليل و التصميم غرضي التوجه بمساعدة لغة‬
.)Unified Modeling Language UML( ‫النمذجة الموحدة‬

2021 By Eng. Joud Khattab 49


‫‪Software Process Model‬‬
‫)نماذج االجرائيات البرمجية(‬
‫ما هي األمور التي تجعلنا نختار النموذج اإلجرائي المناسب للنظام؟‬ ‫■‬
‫المتطلبات‪:‬‬ ‫–‬
‫إذا كانت واضحة و النظام واضح نختار النموذج الشاللي‪.‬‬ ‫■‬
‫إذا كانت جديدة و غير معروفة نختار النموذج البدائي (‪.)prototyping‬‬ ‫■‬
‫إذا أردنا السرعة في إنجاز النظام نختار النموذج التزايدي‪.‬‬ ‫■‬
‫إذا أردنا الجودة العالية نختار ‪.RUP‬‬ ‫■‬
‫وضع المخاطر بعين االعتبار الخترنا النموذج الحلزوني‪.‬‬ ‫■‬
‫لو كانت المتطلبات متغيرة نختار التزايدي‪.‬‬ ‫■‬
‫فريق العمل‪:‬‬ ‫–‬
‫الفريق كبير جدا نختار ‪RUP‬‬ ‫إذا كان‬ ‫■‬
‫ذا خبرات كبيرة و كفاءة عالية نختار الحلزوني‪.‬‬ ‫إذا كان‬ ‫■‬
‫صغير نختار ال ‪ agile‬أو التزايدي‪.‬‬ ‫إذا كان‬ ‫■‬
‫ال يملك الخبرة و المؤهالت الكافية نختار الشاللي‪.‬‬ ‫إذا كان‬ ‫■‬
‫الزبون‪:‬‬ ‫–‬
‫إذا كان الزبون ال يعرف التعبير عن متطلباته نختار النموذج البدائي‪.‬‬ ‫■‬
‫إذا كان متقلبا و يغير متطلباته باستمرار نختار النموذج التزايدي‪.‬‬ ‫■‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪50‬‬


‫‪Agile Software Development‬‬
‫)تطوير البرمجيات الرشيقة(‬
‫■ ان هذه الطريقة تهتم فقط بمسألة الوقت و ذلك على حساب الكلفة و الجودة أي أن الهدف‬
‫من التطوير ب ‪ agile‬هو الحصول على منتجات برمجية تواكب التطور و ذلك بأقصر وقت ممكن‪.‬‬
‫■ بهذا النوع من تطوير النظم ال يوجد لدينا تخطيط كبير و كذلك ال يوجد لدينا توثيق‬
‫‪ ،documentation‬و بالتالي عند ظهور مشاكل معينة في النظام ال نستطيع حلها و ذلك ألن‬
‫األنشطة من ( تحليل ‪ ،‬تصميم ‪ ،‬تنجيز ‪ ،‬اختبار ) متداخلة مع بعضها البعض‪.‬‬
‫■ يتم تطوير النظام بشكل تزايدي ‪ Incremental‬و ذلك لنجعله يقدم الخدمات األساسية و بعد‬
‫ذلك تبدأ مرحلة التطوير و غالبا ما تقوم باستخدام ‪ component‬جاهزة أو ‪ tools‬تساعدنا في‬
‫عملية تطوير النظام‪.‬‬

‫‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪51‬‬


‫‪Agile Software Development‬‬
‫)تطوير البرمجيات الرشيقة(‬
‫■ متى نقوم بتطبيق ال ‪Agile method‬؟‬
‫– عندما يكون حجم النظام صغيراً أو وسطاً‪.‬‬
‫– عندما يكون ال ‪ customer‬قادراً على االلتزام مع فريق التطوير و ذلك ألننا نعد الزبون‬
‫آلية تقييم كاملة للنظام خالل مرحلة التطوير‪.‬‬
‫– عندما يكون الفريق المطور صغيراً و متكامال ً بمهاراته‪.‬‬
‫■ بما أن النظام المطور ب ‪ Agile method‬يقدم على شكل ‪ versions‬فقد يكون هناك خطأ‬
‫في تحديد األولويات بالنظام و الخدمات األساسية مما يؤدي إلى فشل النظام‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪52‬‬


‫‪Agile Software Development‬‬
‫)تطوير البرمجيات الرشيقة(‬
‫■ طرق و نماذج ال ‪Agile‬‬
‫– الطريقة األولى‪(Rapid Application Development RAD) :‬‬
‫طريقة ‪ RAD‬هي طريقة مشتقة من النموذج الشاللي و هي تقوم على القيام بعملية تحليل‬ ‫■‬
‫للنظام ثم تقسيم المهام بين فريق التطوير بحيث يتم التطوير على التوازي و هي تحاول‬
‫كذلك االستفادة من ‪ component‬جاهزة و تضمينها ضمن النظام‪.‬‬
‫الطريقة الثانية‪)Extreme Programming XP( :‬‬ ‫–‬
‫تعني (البرمجية المتطرفة)‪ :‬و هي الطريقة األساسية بال ‪ Agile method‬و قد سميت بهذا‬ ‫■‬
‫االسم ألنها تركز على عمليات البرمجة و عملياً هي تهتم بتحويل ال ‪ stories‬التي يقصها ال‬
‫‪ costumers‬إلى ‪.code‬‬
‫الطريقة الثالثة‪scrum :‬‬ ‫–‬
‫هذه الطريقة ظهرت نتيجة لظهور مشاكل إدارية في النظم المطورة بطرق ال ‪Agile‬‬ ‫■‬
‫فهذه الطريقة يوجد بها إشراف على النظام الذي يتم تطويره بشكل إداري مع التركيز على‬ ‫■‬
‫الحصول على النظام بأسرع وقت ممكن‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪53‬‬


Question 1

■ The most important feature of spiral model is


A. requirement analysis
B. risk management
C. quality management
D. configuration management

2021 By Eng. Joud Khattab 54


Question 1

■ The most important feature of spiral model is


A. requirement analysis
B. risk management
C. quality management
D. configuration management

2021 By Eng. Joud Khattab 55


Question 2

■ In the spiral model ‘risk analysis’ is performed.


A. In the first loop
B. in the first and second loop
C. In every loop
D. before using spiral model

2021 By Eng. Joud Khattab 56


Question 2

■ In the spiral model ‘risk analysis’ is performed.


A. In the first loop
B. in the first and second loop
C. In every loop
D. before using spiral model

2021 By Eng. Joud Khattab 57


Question 3

■ The spiral model of software development


A. Ends with the delivery of the software product
B. Is more chaotic than the incremental model
C. Includes project risks evaluation during each iteration

2021 By Eng. Joud Khattab 58


Question 3

■ The spiral model of software development


A. Ends with the delivery of the software product
B. Is more chaotic than the incremental model
C. Includes project risks evaluation during each iteration

2021 By Eng. Joud Khattab 59


Question 4

■ The model in which the requirements are implemented by category is:


A. Evolutionary Development Model
B. Waterfall Model
C. Prototyping
D. Iterative Enhancement Model

2021 By Eng. Joud Khattab 60


Question 4

■ The model in which the requirements are implemented by category is:


A. Evolutionary Development Model
B. Waterfall Model
C. Prototyping
D. Iterative Enhancement Model

2021 By Eng. Joud Khattab 61


Question 5

■ For a well understood data processing application it is best to use


A. The waterfall model
B. Prototyping model
C. The evolutionary model
D. The spiral model

2021 By Eng. Joud Khattab 62


Question 5

■ For a well understood data processing application it is best to use


A. The waterfall model
B. Prototyping model
C. The evolutionary model
D. The spiral model

2021 By Eng. Joud Khattab 63


Question 6

■ RAD stands for:


A. Relative Application Development
B. Rapid Application Development
C. Rapid Application Document
D. None of the mentioned

2021 By Eng. Joud Khattab 64


Question 6

■ RAD stands for:


A. Relative Application Development
B. Rapid Application Development
C. Rapid Application Document
D. None of the mentioned

2021 By Eng. Joud Khattab 65


Question 7

■ SDLC stands for:


A. Software Development Life Cycle
B. System Development Life Cycle
C. Software Design Life Cycle
D. System Design Life Cycle

2021 By Eng. Joud Khattab 66


Question 7

■ SDLC stands for:


A. Software Development Life Cycle
B. System Development Life Cycle
C. Software Design Life Cycle
D. System Design Life Cycle

2021 By Eng. Joud Khattab 67


Question 8

■ Which model can be selected if user is involved in all the phases of SDLC?
A. Waterfall Model
B. Prototyping Model
C. RAD Model
D. both Prototyping Model & RAD Model

2021 By Eng. Joud Khattab 68


Question 8

■ Which model can be selected if user is involved in all the phases of SDLC?
A. Waterfall Model
B. Prototyping Model
C. RAD Model
D. both Prototyping Model & RAD Model

2021 By Eng. Joud Khattab 69


Question 9

■ Selection of a model is based on:


A. Requirements
B. Development team & users
C. Project type and associated risk
D. All of the mentioned

2021 By Eng. Joud Khattab 70


Question 9

■ Selection of a model is based on:


A. Requirements
B. Development team & users
C. Project type and associated risk
D. All of the mentioned

2021 By Eng. Joud Khattab 71


Question 10

■ Which two models doesn’t allow defining requirements early in the cycle?
A. Waterfall & RAD
B. Prototyping & Spiral
C. Prototyping & RAD
D. Waterfall & Spiral

2021 By Eng. Joud Khattab 72


Question 10

■ Which two models doesn’t allow defining requirements early in the cycle?
A. Waterfall & RAD
B. Prototyping & Spiral
C. Prototyping & RAD
D. Waterfall & Spiral

2021 By Eng. Joud Khattab 73


Question 11

■ If you were a lead developer of a software company and you are asked to submit a
project/product within a stipulated time-frame with no cost barriers, which model
would you select?
A. Waterfall
B. Spiral
C. RAD
D. Incremental

2021 By Eng. Joud Khattab 74


Question 11

■ If you were a lead developer of a software company and you are asked to submit a
project/product within a stipulated time-frame with no cost barriers, which model
would you select?
A. Waterfall
B. Spiral
C. RAD
D. Incremental

2021 By Eng. Joud Khattab 75


Question 12

■ Spiral Model has high reliability requirements.


A. True
B. False

2021 By Eng. Joud Khattab 76


Question 12

■ Spiral Model has high reliability requirements.


A. True
B. False

2021 By Eng. Joud Khattab 77


Question 13

■ RAD Model has high reliability requirements.


A. True
B. False

2021 By Eng. Joud Khattab 78


Question 13

■ RAD Model has high reliability requirements.


A. True
B. False

2021 By Eng. Joud Khattab 79


REQUIREMENT
ENGINEERING
‫هندسة المتطلبات‬

2021 By Eng. Joud Khattab 80


‫‪Requirement Engineering‬‬
‫)هندسة المتطلبات(‬
‫■ يكون دخل هذه المرحلة هو دراسة الجدوى و خرج هذه المرحلة هو وثيقة المتطلبات أو‬
‫‪ Requirement Document‬و هي الوثيقة التي تضم المتطلبات بشكلين‪:‬‬
‫– شكل مبسط للمستخدم‪.‬‬
‫– شكل مفصل للمطور‪.‬‬
‫■ تسمى هذه الوثيقة أحياناً ب ‪ SRS‬و هي ‪.software requirement specification‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪81‬‬


‫‪Requirement Engineering‬‬
‫)هندسة المتطلبات(‬
‫■ نستطيع تقسيم أنواع المتطلبات إلى ثالثة اقسام‪:‬‬
‫– المتطلبات الوظيفية‪:‬‬
‫نقصد بها الخدمات الفعلية التي يقدمها النظام ( إجرائيات العمل ) أي الوظائف األساسية‬ ‫■‬
‫التي يقدمها النظام مثل ( خدمة الحجز ‪ ،‬العرض ‪ ،‬التسجيل و غيرها )‪.‬‬
‫– المتطلبات الغير وظيفية‪:‬‬
‫هي عبارة عن القيود على المتطلبات‪:‬‬ ‫■‬
‫متطلبات تتعلق بالجودة‪ :‬مثل ( ‪)availability، performance ، reliability ، security‬‬ ‫–‬
‫متطلبات متعلقة بالكلفة‪.‬‬ ‫–‬
‫متطلبات متعلقة بالوقت‪.‬‬ ‫–‬
‫– المجال او ال‪domain‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪82‬‬


‫‪Requirement Engineering‬‬
‫)هندسة المتطلبات(‬
‫■ طرق جمع المتطلبات‪:‬‬
‫– طرق قديمة‪:‬‬
‫المقابلة‪.‬‬ ‫■‬
‫االستبيان‪.‬‬ ‫■‬
‫المالحظة‪.‬‬ ‫■‬
‫دراسة الوثائق‪.‬‬ ‫■‬
‫– طرق حديثة‪:‬‬
‫‪.Prototyping‬‬ ‫■‬
‫تطوير التطبيقات المشترك‪)Join Development Application JAD( .‬‬ ‫■‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪83‬‬


Question 1

■ IEEE 830-1993 is a IEEE recommended standard for


A. Software requirement specification
B. Software design
C. Testing
D. Both (A) and (B)

2021 By Eng. Joud Khattab 84


Question 1

■ IEEE 830-1993 is a IEEE recommended standard for


A. Software requirement specification
B. Software design
C. Testing
D. Both (A) and (B)

2021 By Eng. Joud Khattab 85


Question 2

■ If every requirement stated in the Software Requirement Specification (SRS) has


only one interpretation, SRS is said to be
A. correct
B. unambiguous
C. consistent
D. verifiable

2021 By Eng. Joud Khattab 86


Question 2

■ If every requirement stated in the Software Requirement Specification (SRS) has


only one interpretation, SRS is said to be
A. correct
B. unambiguous
C. consistent
D. verifiable

2021 By Eng. Joud Khattab 87


Question 3

■ SRS is also known as specification of


A. White box testing
B. Stress testing
C. Integrated testing
D. Black box testing

2021 By Eng. Joud Khattab 88


Question 3

■ SRS is also known as specification of


A. White box testing
B. Stress testing
C. Integrated testing
D. Black box testing

2021 By Eng. Joud Khattab 89


Question 4

■ If every requirement can be checked by a cost-effective process, then the SRS is


A. verifiable
B. traceable
C. modifiable
D. complete

2021 By Eng. Joud Khattab 90


Question 4

■ If every requirement can be checked by a cost-effective process, then the SRS is


A. verifiable
B. traceable
C. modifiable
D. complete

2021 By Eng. Joud Khattab 91


UNIFIED MODELING
LANGUAGE (UML)
‫لغة النمذجة الموحدة‬

2021 By Eng. Joud Khattab 92


Unified Modeling Language (UML)
(‫)لغة النمذجة الموحدة‬

2021 By Eng. Joud Khattab 93


‫)‪Unified Modeling Language (UML‬‬
‫)مخطط حاالت االستخدام( ‪Use Case Diagram‬‬
‫■ مخطط ينظر للنظام بشكل مجرد ‪ high abstract‬وهو سهل الفهم على المستخدم‪.‬‬
‫■ مخطط ال يتحدث عن بنية النظام فهو يفهمنا جانب واحد من جوانبه‪.‬‬
‫هذا المخطط يوجد عالقات تربط الخدمات مع بعضها البعض مثل‬ ‫■ في‬
‫‪.Include‬‬ ‫–‬
‫‪.Extent‬‬ ‫–‬
‫‪.Generalization‬‬ ‫–‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪94‬‬


‫)‪Unified Modeling Language (UML‬‬
‫‪Activity Diagram‬‬
‫■ يعتبر ‪ middle abstract‬حيث يرى كل حالة من حاالت االستخدام كيف يتم تحقيقها ضمن‬
‫النظام مثل حالة االستخدام ‪.login‬‬
‫■ يعبر ال ‪ activity Diagram‬عن كل النشاطات المشمولة بكل خدمة أي دفق األحداث‬
‫(‪ )flow of events‬في كل خدمة و نأخذ النجاح و الفشل بعين االعتبار‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪95‬‬


‫)‪Unified Modeling Language (UML‬‬
‫‪Sequence Diagram‬‬
‫■ نعتبر هذا المخطط يندرج تحت ‪ behavioral + Interaction‬و ذلك ألنه من أجل كل خدمة‬
‫يحدد ماهي ال ‪ objects‬المشمولة بتلك الخدمة كما أنه يحدد الرسائل ‪ Messages‬بين‬
‫تلك ال ‪ objects‬و بين النظام و هنا نكون قد دخلنا إلى بنية النظام‪.‬‬
‫■ كما يكون تسلسل ال ‪ messages‬وفق زمن معين و ترتيب أحداث معينة و تسلسل‬
‫األحداث يقرأ من األعلى إلى األسفل‪.‬‬
‫■ و يعتبر التجريد بهذا المخطط ‪.very low‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪96‬‬


‫)‪Unified Modeling Language (UML‬‬
‫)المخطط التعاوني( ‪Collaboration Diagram‬‬
‫■ يشبه ال ‪ sequence‬لكن األخير يهتم بالبعد الزمني أما المخطط التعاوني يهتم فقط‬
‫بتسلسل الرسائل أو بالترقيم فقط دون االهتمام بموضوع الزمن‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪97‬‬


‫)‪Unified Modeling Language (UML‬‬
‫‪Class Diagram‬‬
‫■ مبدأ توزيع الصفوف إلى ثالثة صفوف عامة‪:‬‬
‫– صفوف ال ‪Entity :‬‬
‫لهم عالقة بال ‪ data base‬مثل نظام حجز طيران ‪ ،online‬المسافر هو ‪ Entity‬و يعتبر‬ ‫■‬
‫كصف‪.‬‬
‫– صف ال ‪Interface :‬‬
‫هو واجهة النظام التي يتعامل معها المستخدم‪.‬‬ ‫■‬
‫– صف ال ‪behavior :‬‬
‫هو الصف الذي يحوي ال ‪ method‬التي يقوم بها النظام‪ ،‬و يتم اكتشاف كال ً من صفوف ال‬ ‫■‬
‫‪interface‬و ال ‪behavior‬في مرحلة تحليل النظام‪.‬‬
‫– و بالطبع نأخذ بعين االعتبار وجود صفوف مجردة و ليست ملموسة مثل صف (الحجز)‬
‫ليس له وجود فيزيائي و لكنه صف هام في نظام الحجز ‪online‬‬
‫■ مبدأ البطاقات ‪ CRC :‬و هو اختصار ل ‪Card Responsibility Corporation‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪98‬‬


‫)‪Unified Modeling Language (UML‬‬
‫‪Class Diagram‬‬
‫■ مالحظة‪:‬‬
‫– عند الوصول لمرحلة التصميم يجب أن يكون كل ال‪ classes‬قد أصبحت معروفة أما ال‬
‫‪ attribute‬و ال ‪ method‬الخاصة بكل صف قابلة للزيادة أو النقصان‪.‬‬
‫– إذا ظهر لدينا أثناء تصفية ال ‪ classes‬بواسطة آلية ‪ CRC Unique class‬أي كالس‬
‫متفرد ومستقل بذاته و ال يتشارك مسؤولياته مع أحد نقوم بحذفة فوراً‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪99‬‬


Unified Modeling Language (UML)
Class Diagram Notation
■ Visibility of Attributes and Operations

Access Right public (+) private (-) protected (#) Package (~)

Members of the
yes yes yes yes
same class

Members of
yes no yes yes
derived classes

Members of any in same


yes no no
other class package

2021 By Eng. Joud Khattab 100


Unified Modeling Language (UML)
Class Diagram Example
■ The graphical representation of the class - MyClass as shown above:
– MyClass has 3 attributes and 3 operations
– Parameter p3 of op2 is of type int
– op2 returns a float
– op3 returns a pointer (denoted by a *) to Class
– attribute1 and op1 of MyClassName are public
– attribute3 and op3 are protected.
– attribute2 and op2 are private.

2021 By Eng. Joud Khattab 101


Unified Modeling Language (UML)
Class Diagram Relationships
■ A class may be involved in one or more relationships with other classes.
■ A relationship can be one of the following types:
– Inheritance (Generalization)
– Simple Association
– Aggregation
– Composition
– Dependency

2021 By Eng. Joud Khattab 102


Unified Modeling Language (UML)
Class Diagram Relationships
■ Inheritance (Generalization)
– Represents an "is-a" relationship.
– An abstract class name is shown in italics.
– SubClass1 and SubClass2 are specializations of Super Class.
– A solid line with a hollow arrowhead that point from the child to the parent class

2021 By Eng. Joud Khattab 103


Unified Modeling Language (UML)
Class Diagram Relationships
■ Simple Association
– A structural link between two peer classes.
– There is an association between Class1 and Class2
– A solid line connecting two classes

2021 By Eng. Joud Khattab 104


Unified Modeling Language (UML)
Class Diagram Relationships
■ Multiplicity Indicators
– Each end of an association contains a multiplicity indicator that Indicates the
number of objects participating in the relationship
Exactly one
1

0..* Zero or more

1..* One or more

0..1 Zero or one

2..7 Specified range

2021 By Eng. Joud Khattab 105


Unified Modeling Language (UML)
Class Diagram Relationships
■ Aggregation
– A special type of association. It represents a "part of" relationship.
■ Class2 is part of Class1.
■ Many instances (denoted by the *) of Class2 can be associated with Class1.
■ Objects of Class1 and Class2 have separate lifetimes.
■ A solid line with a unfilled diamond at the association end connected to the class of
composite

2021 By Eng. Joud Khattab 106


Unified Modeling Language (UML)
Class Diagram Relationships
■ Composition
– A special type of aggregation where parts are destroyed when the whole is
destroyed.
■ Objects of Class2 live and die with Class1.
■ Class2 cannot stand by itself.
■ A solid line with a filled diamond at the association connected to the class of
composite

2021 By Eng. Joud Khattab 107


Unified Modeling Language (UML)
Class Diagram Relationships
■ Dependency
– Exists between two classes if changes to the definition of one may cause
changes to the other (but not the other way around).
– Class1 depends on Class2
– A dashed line with an open arrow

2021 By Eng. Joud Khattab 108


‫)‪Unified Modeling Language (UML‬‬
‫‪State Diagram‬‬
‫■ يتوجه هذا النظام لدراسة ‪ object‬معين و الحاالت التي يمر بها أثناء دورة حياة النظام‪.‬‬
‫■ مثال‪ :‬زر الكهرباء‬
‫– له حالتين اثنتين هما ‪ on‬و ‪.off‬‬
‫– الحالة البدائية تكون ‪ off‬و بالضغط على الزر ينتقل لحالة ‪ on‬و بالعكس‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪109‬‬


Question 1

■ What is an object?
A. An object is an instance of a class
B. An object includes encapsulation of data
C. An object is not an instance of a class
D. All of the mentioned

2021 By Eng. Joud Khattab 110


Question 1

■ What is an object?
A. An object is an instance of a class
B. An object includes encapsulation of data
C. An object is not an instance of a class
D. All of the mentioned

2021 By Eng. Joud Khattab 111


Question 2

■ What is an abstract class?


A. A class that has direct instances, but whose descendants may have direct
instances
B. A class that has direct instances, but whose descendants may not have direct
instances
C. A class that has no direct instances, but whose descendants may have direct
instances
D. All of the mentioned

2021 By Eng. Joud Khattab 112


Question 2

■ What is an abstract class?


A. A class that has direct instances, but whose descendants may have direct
instances
B. A class that has direct instances, but whose descendants may not have direct
instances
C. A class that has no direct instances, but whose descendants may have direct
instances
D. All of the mentioned

2021 By Eng. Joud Khattab 113


Question 3

■ Which of the following are the valid relationships in Use Case Diagrams
A. Generalization
B. Include
C. Extend
D. All of the mentioned

2021 By Eng. Joud Khattab 114


Question 3

■ Which of the following are the valid relationships in Use Case Diagrams
A. Generalization
B. Include
C. Extend
D. All of the mentioned

2021 By Eng. Joud Khattab 115


Question 4

■ What is a collection of operations that specify a service of a class or component?


A. Use Case
B. Actor
C. Interface
D. Relationship

2021 By Eng. Joud Khattab 116


Question 4

■ What is a collection of operations that specify a service of a class or component?


A. Use Case
B. Actor
C. Interface
D. Relationship

2021 By Eng. Joud Khattab 117


Question 5

■ Which diagram in UML emphasizes the time-ordering of messages?


A. Activity
B. Sequence
C. Collaboration
D. Class

2021 By Eng. Joud Khattab 118


Question 5

■ Which diagram in UML emphasizes the time-ordering of messages?


A. Activity
B. Sequence
C. Collaboration
D. Class

2021 By Eng. Joud Khattab 119


Question 6

■ If you are working on real-time process control applications or systems that involve
concurrent processing, you would use a
A. Activity diagram
B. Sequence diagram
C. State diagram
D. Object diagram

2021 By Eng. Joud Khattab 120


Question 6

■ If you are working on real-time process control applications or systems that involve
concurrent processing, you would use a
A. Activity diagram
B. Sequence diagram
C. State diagram
D. Object diagram

2021 By Eng. Joud Khattab 121


Question 7

■ Which diagram shows the configuration of run-time processing elements?


A. Deployment diagram
B. Component diagram
C. Node diagram
D. ER-diagram

2021 By Eng. Joud Khattab 122


Question 7

■ Which diagram shows the configuration of run-time processing elements?


A. Deployment diagram
B. Component diagram
C. Node diagram
D. ER-diagram

2021 By Eng. Joud Khattab 123


Question 8

■ Which of the following term is best defined by the statement: ”a structural


relationship that specifies that objects of one thing are connected to objects of
another”?
A. Association
B. Aggregation
C. Realization
D. Generalization

2021 By Eng. Joud Khattab 124


Question 8

■ Which of the following term is best defined by the statement: ”a structural


relationship that specifies that objects of one thing are connected to objects of
another”?
A. Association
B. Aggregation
C. Realization
D. Generalization

2021 By Eng. Joud Khattab 125


Question 9

■ Which of the following UML diagrams has a static view?


A. Collaboration
B. Use case
C. State chart
D. Activity

2021 By Eng. Joud Khattab 126


Question 9

■ Which of the following UML diagrams has a static view?


A. Collaboration
B. Use case
C. State chart
D. Activity

2021 By Eng. Joud Khattab 127


Question 10

■ What type of core-relationship is represented by the symbol in the figure below?


A. Aggregation
B. Dependency
C. Generalization
D. Association

2021 By Eng. Joud Khattab 128


Question 10

■ What type of core-relationship is represented by the symbol in the figure below?


A. Aggregation
B. Dependency
C. Generalization
D. Association

2021 By Eng. Joud Khattab 129


Question 11

■ Which core element of UML is being shown in the figure?


A. Node
B. Interface
C. Class
D. Component

2021 By Eng. Joud Khattab 130


Question 11

■ Which core element of UML is being shown in the figure?


A. Node
B. Interface
C. Class
D. Component

2021 By Eng. Joud Khattab 131


Question 12

■ What type of relationship is represented by Shape class and Square ?


A. Realization
B. Generalization
C. Aggregation
D. Dependency

2021 By Eng. Joud Khattab 132


Question 12

■ What type of relationship is represented by Shape class and Square ?


A. Realization
B. Generalization
C. Aggregation
D. Dependency

2021 By Eng. Joud Khattab 133


Question 13

■ Which of the following diagram is time oriented?


A. Collaboration
B. Sequence
C. Activity
D. None of the mentioned

2021 By Eng. Joud Khattab 134


Question 13

■ Which of the following diagram is time oriented?


A. Collaboration
B. Sequence
C. Activity
D. None of the mentioned

2021 By Eng. Joud Khattab 135


ARCHITECTURE DESIGN
‫التصميم المعماري‬

2021 By Eng. Joud Khattab 136


‫‪Coupling V.S. Cohesion‬‬

‫■ تعريف ال ‪:component‬‬
‫– ال ‪ component‬هو كلمة رديفة ل ‪ sub system‬و ال ‪ sub system‬يقدم خدمة أو أكثر و‬
‫لذلك فإن ال ‪ component‬هو عبارة عن ‪ block of code‬يقدم خدمة واحدة أو عدة‬
‫خدمات‪.‬‬
‫■ انوع ال ‪:component‬‬
‫– ‪Large grain‬‬
‫هو ‪ component‬يقدم وظائف و مهام كبيرة أي بمعنى آخر هو ‪ code‬يقدم خدمات متعددة‪.‬‬ ‫■‬
‫‪Fine grain‬‬ ‫–‬
‫هو ‪ code‬يقدم مهمات صغيرة مهمة أو اثنين على األكثر‪.‬‬ ‫■‬
‫مالحظات‪:‬‬ ‫–‬
‫عندما نستخدم ‪ large grain‬فنحن نحقق مفهوم االلتحام (‪ .)cohesion‬التجانس‬ ‫■‬
‫عندما نستخدم ‪ fine grain‬فنحن نحقق مفهوم االقتران (‪ .)coupling‬الترابط‬ ‫■‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪137‬‬


‫‪Coupling V.S. Cohesion‬‬

‫■ ماذا يعني كال ً من ال ‪ cohesion‬و ال ‪coupling‬؟‬


‫– ‪:Cohesion‬‬
‫أي أن الوظائف التي يقدمها ال ‪ component‬متالحمة مع بعضها البعض و أكواد هذه‬ ‫■‬
‫الخدمات معتمدة على بعضها البعض و ال تعتمد على أكواد خارج ال ‪component‬‬
‫‪:coupling‬‬ ‫–‬
‫فعند استخدام ‪ fine grain‬يعني أن ال ‪ component‬الواحد يقدم خدمة صغيرة أو خدمتين‬ ‫■‬
‫على األكثر فعند طلب خدمة معينة من هذا ال ‪component‬سيضطر إلى االتصال و‬
‫االقتران مع باقي ال ‪ component‬لتلبية هذه الخدمة و هذا ما نسميه بال ‪coupling‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪138‬‬


Coupling V.S. Cohesion

2021 By Eng. Joud Khattab 139


‫‪Coupling V.S. Cohesion‬‬

‫تقارن المحتوى‪:‬‬ ‫■‬


‫يكون تقارن المحتوى عندما تعدل وحدة برنامج أو تعتمد على األعمال الداخلية لوحدة برنامج أخرى‬ ‫–‬
‫مثال‪ :‬الدخول إلي بيانات خاصة بوحدة برنامج أخرى‪.‬‬ ‫–‬
‫تقارن شائع‪:‬‬ ‫■‬
‫يكون التقارن الشائع عندما تتقاسم وحدتان للبرامج نفس البيانات اإلجمالية (مثل المتغير العام)‪.‬‬ ‫–‬
‫تقارن خارجي‪:‬‬ ‫■‬
‫يحدث التقارن الخارجي عندما تتقاسم وحدتان صيغة البيانات المفروضة من الخارج‪ ،‬وبروتوكول االتصال‪ ،‬أو الوصلة البينية للجهاز‪.‬‬ ‫–‬
‫تقارن التحكم‪:‬‬ ‫■‬
‫تحكم وحدة في تدفق وحدة أخرى‪ ،‬من خالل تمرير معلومات لها لما عليها أن تفعله‪.‬‬ ‫–‬
‫تقارن الطابع‪( :‬تقارن مركب البيانات)‬ ‫■‬
‫يكون تقارن الطابع عندما تتقاسم وحدتان هيكل بيانات مركبة وتستخدم فقط جزء منه وربما جزء مختلفا‪.‬‬ ‫–‬
‫مثل‪ :‬تمرير سجل كامل لوظيفة تحتاج فقط خانة واحدة منه‪.‬‬ ‫–‬
‫تقارن البيانات‪:‬‬ ‫■‬
‫يكون تقارن البيانات عدما تتقاسم وحدتان البيانات من خالل مثال‪ :‬قيمة وسيطة ‪ parameters‬فكل جزء من البيانات هو أساسي‪،‬‬ ‫–‬
‫وهذه هي البيانات المشتركة فقط (مثال‪ ،‬تمرير عدد صحيح لوظيفة تحسب جذرا تربيعي)‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪140‬‬


‫‪Architectural Pattern‬‬
‫)األنماط المعمارية(‬
‫■ ‪:MVC‬‬
‫– اختصار لكلمات (‪.)Model View Controller‬‬
‫– هذا النمط مناسب لكل تطبيقات الويب‪.‬‬
‫– مبدأ عملها؟‬
‫لدينا ‪ view‬للتعامل مع الواجهات التابعة التي ستظهر للمستخدم مثل صفحات ال ‪html‬‬ ‫■‬
‫العادية إذا كان نظامنا ‪.web‬‬
‫لدينا ال ‪ Model‬و هي مسؤولة عن التعامل مع قواعد المعطيات الخاصة بتطبيقنا‪ .‬أي‬ ‫■‬
‫هي ‪ code‬للتواصل مع ال‪.data base‬‬
‫لدينا ‪ controller‬و هو مخصص كصلة وصل بين ال ‪ Model‬و ال ‪.view‬‬ ‫■‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪141‬‬


‫‪Architectural Pattern‬‬
‫)األنماط المعمارية(‬
‫■ المعمارية الطبقية‪)architecture layered( :‬‬
‫– بهذه المعمارية يتم تقسيم ال ‪ code‬لمجموعة طبقات و نضع ضمن الطبقة الواحدة‬
‫مجموعة الخدمات المنسجمة مع بعضها البعض ‪ ،‬أي لدينا ‪ large grain‬في كل طبقة‬
‫و من الممكن أن يكون لدينا عدد كبير من الطبقات و بكل طبقة خدمة معينة هامة‪.‬‬
‫– يمكن استخدام هذا النمط عندما تطلب منا ‪ security‬عالية و نضع المعلومات المهمة‬
‫بالطبقات الداخلية‪.‬‬
‫– مشكلتها أنها تجعل ال ‪ performance‬أبطئ ‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪142‬‬


‫‪Architectural Pattern‬‬
‫)األنماط المعمارية(‬
‫■ معمارية المخزن‪)repository architecture( :‬‬
‫– تستخدم هذه المعمارية عندما يكون لدينا ‪ data‬معينة مركزية و كل ال ‪ component‬و‬
‫ال ‪ sub system‬تريد استخدام هذه ال ‪ data‬لذلك نقوم بوضعها بمخزن و نجعل جميع‬
‫ال ‪ component‬تتصل مع هذا المخزن‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪143‬‬


‫‪Architectural Pattern‬‬
‫)األنماط المعمارية(‬
‫■ ‪:server / client architecture‬‬
‫– هي الفصل بين طالب الخدمة و بين المخدم الذي يقدم مجموعة الخدمات و لها‬
‫أنواع ‪ thin‬و ‪.flat‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪144‬‬


‫‪Architectural Pattern‬‬
‫)األنماط المعمارية(‬
‫■ معمارية األنبوب المرشح‪)pipe and filter architecture( :‬‬
‫– يتم استخدام هذه المعمارية عندما يكون لدينا المعالجة في نظامنا تتم بشكل‬
‫تسلسلي أي ال ننتقل إلى المرحلة التالية قبل أن نتأكد من مرورنا بالمرحلة‬
‫السابقة لها ‪ ،‬حيث تتكون معماريتنا من مجموعة أنابيب ومرشحات‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪145‬‬


‫‪Architectural Pattern‬‬
‫)األنماط المعمارية(‬
‫■ حدد المعمارية المناسبة للتطبيقات التالية؟‬
‫– ‪:Web base application‬‬
‫المناسب هو ‪ tiers 3‬رمع ‪ MVC‬و ذلك إذا كان موقع فيه ‪( dynamic process‬معالجة‬ ‫■‬
‫ديناميكية) للمعطيات و ليس فقط موقع لعرض صفحات ال ‪html‬‬
‫– موقع للتجارة االلكترونية‪e-commerce reservation :‬‬
‫نحن بحاجة إلى أقل شيء ل ‪ tiers 4‬ألن قد تنقص مواد أو ال تتوافر في الموقع فيتصل‬ ‫■‬
‫مع مخدمات أخرى لتوفيرها للزبون ‪ ،‬أي ‪ tiers 3‬و ما فوق‪.‬‬
‫و كذلك ‪ MVC‬إجباري لوجود معالجات كبيرة مثل‪ :‬االتصال بالبنك الدفع االلكتروني و‬ ‫■‬
‫التأكد من كون رقم ال ‪ credit card‬صحيح‪.‬‬
‫– نظام معالجة اللغات‪:‬‬
‫نستخدم أسلوب المرشح و األنبوب‪.‬‬ ‫■‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪146‬‬


‫‪Interfaces‬‬

‫■ تعريفها‪:‬‬
‫– مكان حصول المستخدمين ‪ External Entities‬على الوظائف التي يقدمها النظام‪.‬‬
‫– وسيلة للتواصل بين األنظمة األخرى مع النظام مثل ال ‪ API‬وهي اختصار ل‬
‫‪ Application Program Interface‬أي واجهة تواصل بين نظام ونظام ثاني‪.‬‬
‫■ تقسم ال ‪ Interface‬إلى‪:‬‬
‫– ‪ :User Interface‬واجهة للمستخدم للتفاعل مع النظام‪.‬‬
‫– ‪ :System Interface‬واجهة ل ‪ System‬ليتفاعل مع النظام‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪147‬‬


Question 1

■ The worst type of coupling is:


A. data coupling
B. control coupling
C. stamp coupling
D. content coupling

2021 By Eng. Joud Khattab 148


Question 1

■ The worst type of coupling is:


A. data coupling
B. control coupling
C. stamp coupling
D. content coupling

2021 By Eng. Joud Khattab 149


Question 2

■ The desired level of coupling is:


A. No coupling
B. Control coupling
C. Common coupling
D. Data coupling

2021 By Eng. Joud Khattab 150


Question 2

■ The desired level of coupling is:


A. No coupling
B. Control coupling
C. Common coupling
D. Data coupling

2021 By Eng. Joud Khattab 151


Question 3

■ Coupling and cohesion can be represented using a


A. cause-effect graph
B. dependence matrix
C. structure chart
D. SRS

2021 By Eng. Joud Khattab 152


Question 3

■ Coupling and cohesion can be represented using a


A. cause-effect graph
B. dependence matrix
C. structure chart
D. SRS

2021 By Eng. Joud Khattab 153


Question 4

■ Modules X and Y operate on the same input and output data, then the cohesion is
A. Sequential
B. Communicational
C. Procedural
D. Logical

2021 By Eng. Joud Khattab 154


Question 4

■ Modules X and Y operate on the same input and output data, then the cohesion is
A. Sequential
B. Communicational
C. Procedural
D. Logical

2021 By Eng. Joud Khattab 155


TESTING &
MAINTENANCE
‫االختبار والصيانة‬

2021 By Eng. Joud Khattab 156


Testing & Maintenance

:‫■ بعض المصطلحات المهمة‬


.)error( ‫– خطأ‬
.)fault( ‫– عيب‬
.)failure( ‫– فشل‬
‫ على‬DEFECT ‫ وكلمة‬FAULT ‫ و‬ERROR ‫ على كل من ال‬BUG ‫– كما يتم إطالق كلمة‬
.FAILURE

2021 By Eng. Joud Khattab 157


‫‪Testing & Maintenance‬‬

‫■ ال ‪ error‬ينشأ من أخطاء العنصر البشري‪.‬‬


‫■ ال ‪ fault‬عند انتقال الخطأ الذي ارتكبه اإلنسان لداخل ال ‪ code‬يصبح اسمه (عيب)‪.‬‬
‫– ونحن هنا أمام أمرين ‪:‬‬
‫هذا العيب أثناء عملية التنفيذ قد يكون بداخل إجرائية معينة أو داخل ‪ case‬أو شرط ‪if‬‬ ‫■‬
‫معين فيمكن أال يتنفذ وعندها ال يظهر لدي فشل في التنفيذ ‪.failure‬‬
‫أو يمكن له أن يتنفذ ونحصل على نتيجة غير منطقية وعندها بهذه الحالة يصبح لدي‬ ‫■‬
‫فشل في النظام وهو ‪.failure‬‬
‫■ الفشل ‪ failure‬هو ما نلمسه عند التنفيذ وهو اختالف القيمة الفعلية مع القيمة المتوقعة‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪158‬‬


‫‪Testing & Maintenance‬‬

‫■ ‪:Test-Data‬‬
‫– هي مجموعة ال ‪ data‬التي ندخلها إلجراء ‪ testing‬معين‪.‬‬
‫■ ‪:Test-Case‬‬
‫– هي مجموعة ال ‪ data‬المدخلة باإلضافة إلى التوقع (توقع النتيجة) وذلك من أجل‬
‫المقارنة ما بين القيمة المتوقعة والقيمة الفعلية‪.‬‬
‫■ ‪:Test-Suite‬‬
‫– هي مجموعة جميع ال ‪ Test-Case‬التي نطبقها‪.‬‬
‫■ ‪:Testing‬‬
‫– هي إجرائية اختبار النظام بهدف إيجاد أخطاء "حيث الغاية من ال ‪ testing‬أبداً ليست‬
‫إثبات عدم وجود أخطاء في النظام بل العكس"‪.‬‬
‫■ ‪:Debugging‬‬
‫– هي مرحلة تالية لل ‪ Testing‬حيث عندما يكون ال ‪ Testing‬ناجحاً نقوم بإصالح األخطاء‬
‫التي اكتشفناها في مرحلة ال ‪debugging‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪159‬‬


‫‪Verification and Validation‬‬

‫■ ‪ :Verification‬التحقق‬
‫– هو عمل دائم ومستمر في كل مرحلة من مراحل تطوير النظام نقوم بمطابقة ما‬
‫نطوره مع المتطلبات ‪ specification‬التي وضعناها في بداية المرحلة‪ ،‬فمثال ً في‬
‫نهاية مرحلة التحليل نرى هل ما طورنا إلى اآلن متوافق ومتطابق مع المتطلبات‬
‫والمواصفات المطلوبة من النظام؟ وفي نهاية مرحلة التصميم نرى هل ما صممناه‬
‫متوافق ومتطابق مع ال ‪ design document‬التي وضعناها؟‬
‫■ أي نسال نفسنا في نهاية كل مرحلة‪:‬‬
‫– ?‪Are we building the product right‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪160‬‬


‫‪Verification and Validation‬‬

‫■ ‪ :Validation‬التثبت‬
‫– ففي آخر كل مرحلة نرى الوثائق وال ‪ document‬التي لدينا هل توافق ما اتفقنا عليه‬
‫مع الزبون؟ وهو عمل يتم في نهاية كل مرحلة من المراحل وهنا نقول أن المنتج إما‬
‫نجح أو رفض‪.‬‬
‫■ والسؤال يكون كالتالي‪:‬‬
‫– ?‪Are we build the right product‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪161‬‬


‫‪Testing Levels‬‬

‫■ نبدأ من المكونات الصغيرة صعوداً إلى الكبيرة ولدينا ‪ 4‬أنواع من االختبارات‪:‬‬


‫■ اختبار الواحدات (‪:)Unit testing‬‬
‫– في المنهجية التقليدية نعتبر الواحدات هي ال ‪ functions‬التي تؤدي الخدمات‪.‬‬
‫– أما في حال كون المنهجية هي المنهجية غرضية التوجه ‪ oop‬نعتبر أن الواحدات هي‬
‫ال ‪ class‬أو مجموعة ‪ classes‬تقدم خدمة واحدة‪.‬‬
‫– إذا كانت منهجيتنا المقادة بالمكونات البرمجية تكون الواحدات هي ال ‪.component‬‬
‫– يقوم بهذا االختبار المبرمج ويخبر كل واحدة على حدى ويرى إن كانت تعمل بشكل‬
‫سليم أو ال‪.‬‬
‫■ اختبار التكامل (‪:)integration testing‬‬
‫– يطلق عليه البعض اسم ‪ Component Testing‬وهو االختبار الذي نقوم به باختبار الواحدات‬
‫هل تعمل مع بعضها البعض؟‬
‫– يقوم بهذا االختبار المبرمج بمساعدة فريق مختص بعمليات ال ‪Testing‬‬
‫يتم التركيز في النوعين السابقين على اختبار الوظائف األساسية‪.‬‬ ‫■‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪162‬‬


‫‪Testing Levels‬‬

‫■ هناك ثالث أنواع الختبارات التكامل‪:‬‬


‫– ‪Top down‬‬
‫وهو عبارة أن يكون لدينا وحدة كبيرة أو ‪ component‬معين مسؤول عن االشراف على‬ ‫■‬
‫مجموعة واحدات ‪ units‬صغيرة وهنا نبدأ باختبار الوحدة الكبيرة نزوال ً إلى الوحدات األصغر‬
‫منها‪.‬‬
‫– ‪Button up‬‬
‫نبدأ باالختبار من الواحدات الصغيرة صعوداً حتى نصل إلى الوحدة الكبيرة وهو األسهل‬ ‫■‬
‫واألكثر اعتماداً‪.‬‬
‫– ‪Sandwish‬‬
‫فريق التطوير يقسم لقسمين قسم يبدأ باالختبارات من األعلى ‪ top down‬وقسم يبدأ‬ ‫■‬
‫االختبارات من األسفل ‪ button up‬ويلتقي الطرفين في منتصف الطريق‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪163‬‬


Testing Levels

:)system testing( ‫■ اختبار النظام‬


‫– بهذا االختبار يتم اختبار النظام بحد ذاته ويتم التركيز بهذه المرحلة من االختبارات‬
:‫على الخدمات غير الوظيفية مثل‬
Reusability Testing ■
Performance Testing ■
Security Testing ■
Recovering Testing ■
Stress Testing ■

2021 By Eng. Joud Khattab 164


‫‪Testing Levels‬‬

‫■ االختبار العودي (‪:)regression testing‬‬


‫– االختبار الناجح يقوم بكشف االخطاء في النظام و عن اكتشاف أخطاء في النظام‬
‫نقوم بتحويل األخطاء إلى مرحلة ال ‪ debugging‬وهي مرحلة تصحيح هذه األخطاء‬
‫لكن بعد تصليح األخطاء علينا أن نقوم مرة أخرى بإجراء عملية ‪ Testing‬جديدة تتضمن‬
‫ال ‪ data‬نفسها التي كشفت لنا األخطاء ونرى هل أدى تصليح األخطاء القديمة إلى‬
‫ظهور أخطاء جديدة؟ وهكذا يتم االختبار بشكل عودي‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪165‬‬


‫‪Testing Levels‬‬

‫■ لدينا نوعين من أنواع ال ‪:Testing‬‬


‫– ‪:Static testing‬‬
‫وبهذه المرحلة من ال ‪ Testing‬ال نقوم بعمليات التنفيذ بل هي تقتصر فقط على مراجعة‬ ‫■‬
‫الوثائق في مراحل التحليل والتصميم وتفحصها أو قراءة الكود ومراجعته وتفحصه‪.‬‬
‫إن عملية ال ‪ Static Testing‬تتم في نهاية كل مرحلة من مراحل تطوير النظام‬ ‫■‬
‫يتم اكتشاف أخطاء هائلة في هذه العملية من االختبار من نسيان لخدمة معينة مطلوبة من‬ ‫■‬
‫نظامنا أو أخطاء مراحل التحليل والتصميم‪.‬‬
‫عملية ال ‪ static testing‬مستمرة من مرحلة التحليل وحتى مرحلة الصيانة‪.‬‬ ‫■‬
‫‪:Dynamic testing‬‬ ‫–‬
‫هي مرحلة من ال ‪ Testing‬تتم فقط في مرحلة ال ‪ Testing‬وليست مستمرة مع مراحل تطوير‬ ‫■‬
‫النظام مثل ال ‪.Static testing‬‬
‫هي عبارة عن إدخال ‪ data‬إلى النظام واختبار ال ‪.code‬‬ ‫■‬
‫نحاول في هذه المرحلة قدر اإلمكان االعتماد على ال ‪Automatic Testing‬‬ ‫■‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪166‬‬


Testing Levels

:‫ لها منهجيتين أساسيتين‬Dynamic Testing ‫■ إن مرحلة ال‬


.‫ اختبار الصندوق األسود‬:Black Box Testing –
.‫ اختبار الصندوق األبيض‬:White Box Testing –

2021 By Eng. Joud Khattab 167


‫‪Testing‬‬

‫■ ‪:Validation Testing‬‬
‫– يعتبر الزبون صاحب القرار األول واألخير في قبول ال ‪ System‬أو ال فهو يقوم باإلطالع‬
‫على الوظائف التي يقدمها ال ‪ System‬والتأكد من أنها تعمل بشكل جيد‪.‬‬
‫– هناك معيارين أساسيين في قبول النظام ‪:expectance Testing‬‬
‫ألفا‪.‬‬ ‫■‬
‫بيتا‪.‬‬ ‫■‬
‫– في االختبار ألفا يختبر الزبون الوظائف بأنها تعمل بشكل جيد وذلك في الشركة‬
‫المطورة للنظام‪.‬‬
‫– أما في اختبار بيتا فإن الزبون يطلب من المطورين ‪ installation‬للنظام في البيئة‬
‫التي يرد المستخدم أن يستخدم النظام عبرها ويقوم باختبار الوظائف هل تعمل‬
‫بشكل جيد وإذا كان االختبار ناجحاً يقوم بقبول هذا النظام وإذا كان االختبار فاشال ً‬
‫يقوم برفض هذا النظام‪.‬‬
‫– الفرق بين النوعين السابقين بالمكان ال غير ‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪168‬‬


‫‪Testing‬‬

‫■ ‪:Debugging‬‬
‫– هي عبارة عن إجرائية تشخيصية للتعرف على أماكن األخطاء المكتشفة في مرحلة‬
‫ال ‪ Testing‬وتصليحها‪.‬‬
‫– مالحظة‪ :‬كل عملية اصالح يتم القيام بها بعد تشغيل النظام تعتبر ‪maintenance‬‬
‫وكل عملية إصالح يتم القيام بها قبل تشغيل النظام صار اسمها ‪.debugging‬‬

‫■ كلفة اإلصالح‪:‬‬
‫– إن عملية ال ‪ Testing‬مكلفة بنسبة ‪ %60‬بالنسبة إلى المراحل التي تسبقها‪،‬‬
‫وكذلك عملية الصيانة أيضاً عملية مكلفة جداً جداً بنسبة ‪ % 21‬إلى كلفة كل‬
‫المراحل التي تسبقها‪.‬‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪169‬‬


‫‪Legacy System‬‬
‫)النظم الموروثة(‬
‫■ أما المعايير األربعة فهي‪:‬‬
‫– إذا كان لدينا ‪ low quality‬و ‪:low business value‬‬
‫عندها نتخلص من النظام بهذه الحالة ونطور نظاماً غيره‪.‬‬ ‫■‬
‫– إذا كان لدينا ‪ low quality‬و ‪:high business value‬‬
‫هذا يعني أن هذا النظام يخدمني بشكل جيد لكن فيه العديد من األخطاء ولذلك نقوم‬ ‫■‬
‫بعملية ‪ re-engineering‬لهذا النظام‪.‬‬
‫– إذا كان لدينا ‪ high quality‬و ‪:low business value‬‬
‫نقوم بعمليات استبدال أجزاء من هذا النظام ونقوم بعملية إضافة خدمات جديدة له‬ ‫■‬
‫وصيانته‪.‬‬
‫– إذا كان لدينا ‪ high quality‬و‪:high business value‬‬
‫ال نقوم بتغيير النظام وال استبداله بشيء بل ندعه في مكانه‪.‬‬ ‫■‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪170‬‬


Question 1

■ One of the fault base testing techniques is


A. Unit testing
B. Beta testing
C. Stress testing
D. Mutation testing )‫(اختبار الطفرات‬

2021 By Eng. Joud Khattab 171


Question 1

■ One of the fault base testing techniques is


A. Unit testing
B. Beta testing
C. Stress testing
D. Mutation testing )‫(اختبار الطفرات‬

2021 By Eng. Joud Khattab 172


Question 2

■ All the modules of the system are integrated and tested as complete system in the
case of
A. Bottom up testing
B. Top-down testing
C. Sandwich testing
D. Big-Bang testing

2021 By Eng. Joud Khattab 173


Question 2

■ All the modules of the system are integrated and tested as complete system in the
case of
A. Bottom up testing
B. Top-down testing
C. Sandwich testing
D. Big-Bang testing

2021 By Eng. Joud Khattab 174


Question 3

■ A fault simulation testing technique is


A. Mutation testing
B. Stress testing
C. Black box testing
D. White box testing

2021 By Eng. Joud Khattab 175


Question 3

■ A fault simulation testing technique is


A. Mutation testing
B. Stress testing
C. Black box testing
D. White box testing

2021 By Eng. Joud Khattab 176


Question 4

■ Output comparators are used in


A. Static testing of single module
B. Dynamic testing of single module
C. Static testing of single and multiple module
D. Dynamic testing of single and multiple module

2021 By Eng. Joud Khattab 177


Question 4

■ Output comparators are used in


A. Static testing of single module
B. Dynamic testing of single module
C. Static testing of single and multiple module
D. Dynamic testing of single and multiple module

2021 By Eng. Joud Khattab 178


Question 5

■ Alpha and Beta Testing are forms of


A. Acceptance testing
B. Integration testing
C. System Testing
D. Unit testing

2021 By Eng. Joud Khattab 179


Question 5

■ Alpha and Beta Testing are forms of


A. Acceptance testing
B. Integration testing
C. System Testing
D. Unit testing

2021 By Eng. Joud Khattab 180


Question 6

■ The main purpose of integration testing is to find


A. Design errors
B. Analysis errors
C. Procedure errors
D. Interface errors

2021 By Eng. Joud Khattab 181


Question 6

■ The main purpose of integration testing is to find


A. Design errors
B. Analysis errors
C. Procedure errors
D. Interface errors

2021 By Eng. Joud Khattab 182


Question 7

■ The testing that focuses on the variables is called


A. Black box testing
B. White box testing
C. Data variable testing
D. Data flow testing

2021 By Eng. Joud Khattab 183


Question 7

■ The testing that focuses on the variables is called


A. Black box testing
B. White box testing
C. Data variable testing
D. Data flow testing

2021 By Eng. Joud Khattab 184


Question 8

■ Site for Alpha Testing is


A. Software Company
B. Installation place
C. Any where
D. None of the above

2021 By Eng. Joud Khattab 185


Question 8

■ Site for Alpha Testing is


A. Software Company
B. Installation place
C. Any where
D. None of the above

2021 By Eng. Joud Khattab 186


Question 9

■ What is the normal order of activities in which software testing is organized?


A. Unit, integration, system, validation
B. System, integration, unit, validation
C. Unit, integration, validation, system
D. None of the above

2021 By Eng. Joud Khattab 187


Question 9

■ What is the normal order of activities in which software testing is organized?


A. Unit, integration, system, validation
B. System, integration, unit, validation
C. Unit, integration, validation, system
D. None of the above

2021 By Eng. Joud Khattab 188


Question 10

■ Units and stubs are not needed for unit testing because the modules are tested
independently of one another
A. True
B. False

2021 By Eng. Joud Khattab 189


Question 10

■ Units and stubs are not needed for unit testing because the modules are tested
independently of one another
A. True
B. False

2021 By Eng. Joud Khattab 190


Question 11

■ Changes made to an information system to add the desired but not necessarily the
required features is called
A. Preventative maintenance
B. Adaptive maintenance
C. Corrective maintenance
D. Perfective maintenance

2021 By Eng. Joud Khattab 191


Question 11

■ Changes made to an information system to add the desired but not necessarily the
required features is called
A. Preventative maintenance
B. Adaptive maintenance
C. Corrective maintenance
D. Perfective maintenance

2021 By Eng. Joud Khattab 192


Question 12

■ Modifying the software to match changes in the ever changing environment is called
A. Adaptive maintenance
B. Corrective maintenance
C. Perfective maintenance
D. Preventive maintenance

2021 By Eng. Joud Khattab 193


Question 12

■ Modifying the software to match changes in the ever changing environment is called
A. Adaptive maintenance
B. Corrective maintenance
C. Perfective maintenance
D. Preventive maintenance

2021 By Eng. Joud Khattab 194


Question 13

■ Changes made to the system to reduce the future system failure chances is called
A. Preventive Maintenance
B. Adaptive Maintenance
C. Corrective Maintenance
D. Perfective Maintenance

2021 By Eng. Joud Khattab 195


Question 13

■ Changes made to the system to reduce the future system failure chances is called
A. Preventive Maintenance
B. Adaptive Maintenance
C. Corrective Maintenance
D. Perfective Maintenance

2021 By Eng. Joud Khattab 196


SOFTWARE METRICS
‫المقاييس البرمجية‬

2021 By Eng. Joud Khattab 197


Software Metrics

■ Measure:
– quantitative indication of extent, amount, dimension, capacity, or size of some
attribute of a product or process.
– E.g., Number of errors

■ Metric:
– quantitative measure of degree to which a system, component or process
possesses a given attribute. “A handle or guess about a given attribute.”
– E.g., Number of errors found per person hours expended

2021 By Eng. Joud Khattab 198


Motivation for Metrics

1. Estimate the cost & schedule of future projects.


2. Evaluate the productivity impacts of new tools and techniques.
3. Establish productivity trends over time.
4. Improve software quality.
5. Forecast future staffing needs.
6. Anticipate and reduce future maintenance needs.

2021 By Eng. Joud Khattab 199


Types of Measures

■ Direct Measures (internal attributes)


– Cost, LOC, speed, memory
■ Indirect Measures (external attributes)
– Functionality, quality, complexity, efficiency, reliability, maintainability

2021 By Eng. Joud Khattab 200


Cyclomatic Complexity

Sequence While

If-then-else

Until

2021 By Eng. Joud Khattab 201


Cyclomatic Complexity

■ Set of independent paths through the graph (basis set)

■ V(G) = E – N + 2
■ E is the number of flow graph edges
■ N is the number of nodes

2021 By Eng. Joud Khattab 202


Cyclomatic Complexity

i = 0;
1
while (i<n-1) do
j = i + 1; 2
while (j<n) do
if A[i]<A[j] then 3
swap(A[i], A[j]);
end do;
7 4 5
i=i+1;
end do;
6
2021 By Eng. Joud Khattab 203
Cyclomatic Complexity

■ V(G) = 9 – 7 + 2 = 4

■ Basis Set
– 1, 7
– 1, 2, 6, 1, 7
– 1, 2, 3, 4, 5, 2, 6, 1, 7
– 1, 2, 3, 5, 2, 6, 1, 7

2021 By Eng. Joud Khattab 204


ESTIMATION AND
PLANNING
‫التخطيط والتخمين‬

2021 By Eng. Joud Khattab 205


‫‪Estimation and Planning‬‬

‫■ ‪:Milestone‬‬
‫– هي عبارة عن نقاط عالم على الجدول الزمني وهي تساعد في التحقق من مقدار‬
‫التقدم والتطور في المشروع‪،‬‬
‫– هي خاصة لألشخاص الذين يعملون على تطوير المشروع‪.‬‬
‫■ ‪:Deliverable‬‬
‫– هي عبارة عن كل ما يسلم للزبون من تقارير ومخططات ‪...‬الخ‪.‬‬
‫– ليس بالضروري أن يكون عند كل ‪ Milestone‬هناك ‪ Deliverable‬لكن على الغالب‬
‫يكون هناك ‪Deliverable‬‬
‫– فمثال ً وضعنا ‪ Milestone‬في نهاية مرحلة التحليل لنعرف هل انتهينا من مرحلة‬
‫التحليل ؟‬

‫‪2021‬‬ ‫‪By Eng. Joud Khattab‬‬ ‫‪206‬‬


MCQ

2021 By Eng. Joud Khattab 207


Question 1

■ If the objects focus on the problem domain, then we are concerned with
A. Object Oriented Analysis
B. Object Oriented Design
C. Object Oriented Analysis & Design
D. None of the above

2021 By Eng. Joud Khattab 208


Question 1

■ If the objects focus on the problem domain, then we are concerned with
A. Object Oriented Analysis
B. Object Oriented Design
C. Object Oriented Analysis & Design
D. None of the above

2021 By Eng. Joud Khattab 209


Question 2

■ The feature of the object oriented paradigm which helps code reuse is
A. Object
B. Class
C. Inheritance
D. Aggregation

2021 By Eng. Joud Khattab 210


Question 2

■ The feature of the object oriented paradigm which helps code reuse is
A. Object
B. Class
C. Inheritance
D. Aggregation

2021 By Eng. Joud Khattab 211


Question 3

■ Which of the following statements is true:


A. Abstract data types are the same as classes
B. Abstract data types do not allow inheritance
C. Classes cannot inherit from the same base class
D. Object have state and behavior

2021 By Eng. Joud Khattab 212


Question 3

■ Which of the following statements is true:


A. Abstract data types are the same as classes
B. Abstract data types do not allow inheritance
C. Classes cannot inherit from the same base class
D. Object have state and behavior

2021 By Eng. Joud Khattab 213


Question 4

■ SRD stands for:


A. Software requirements definition
B. Structured requirements definition
C. Software requirements diagram
D. Structured requirements diagram

2021 By Eng. Joud Khattab 214


Question 4

■ SRD stands for:


A. Software requirements definition
B. Structured requirements definition
C. Software requirements diagram
D. Structured requirements diagram

2021 By Eng. Joud Khattab 215


Question 5

■ A COCOMO model is:


A. Common Cost Estimation Model
B. Constructive Cost Estimation Model
C. Complete Cost Estimation Model
D. Comprehensive Cost Estimation Model

2021 By Eng. Joud Khattab 216


Question 5

■ A COCOMO model is:


A. Common Cost Estimation Model
B. Constructive Cost Estimation Model
C. Complete Cost Estimation Model
D. Comprehensive Cost Estimation Model

2021 By Eng. Joud Khattab 217


Question 6

■ The model that assumes that effort and development time are functions of product
size alone is
A. Basic COCOMO model
B. Intermediate COCOMO model
C. Detailed COCOMO model
D. All the three COCOMO models

2021 By Eng. Joud Khattab 218


Question 6

■ The model that assumes that effort and development time are functions of product
size alone is
A. Basic COCOMO model
B. Intermediate COCOMO model
C. Detailed COCOMO model
D. All the three COCOMO models

2021 By Eng. Joud Khattab 219


Question 7

■ The next symbol represents


A. Mandatory 1 cardinality
B. Mandatory many cardinality
C. Optional 0 or 1 cardinality
D. Optional zero-many cardinality

2021 By Eng. Joud Khattab 220


Question 7

■ The next symbol represents


A. Mandatory 1 cardinality
B. Mandatory many cardinality
C. Optional 0 or 1 cardinality
D. Optional zero-many cardinality

2021 By Eng. Joud Khattab 221


Question 8

■ Each time a defect gets detected and fixed, the reliability of a software product
A. Increases
B. Decreases
C. Remains constant
D. Cannot say anything

2021 By Eng. Joud Khattab 222


Question 8

■ Each time a defect gets detected and fixed, the reliability of a software product
A. Increases
B. Decreases
C. Remains constant
D. Cannot say anything

2021 By Eng. Joud Khattab 223


Question 9

■ As the reliability increases, failure intensity


A. Decreases
B. Increases
C. No effect
D. None of the above

2021 By Eng. Joud Khattab 224


Question 9

■ As the reliability increases, failure intensity


A. Decreases
B. Increases
C. No effect
D. None of the above

2021 By Eng. Joud Khattab 225


Question 10

■ The level at which the software uses scarce resources is


A. Reliability
B. Efficiency
C. Portability
D. All of the above

2021 By Eng. Joud Khattab 226


Question 10

■ The level at which the software uses scarce resources is


A. Reliability
B. Efficiency
C. Portability
D. All of the above

2021 By Eng. Joud Khattab 227


Question 11

■ All activities lying on critical path have slack time equal to


A. 0
B. 1
C. 2
D. None of above

2021 By Eng. Joud Khattab 228


Question 11

■ All activities lying on critical path have slack time equal to


A. 0
B. 1
C. 2
D. None of above

2021 By Eng. Joud Khattab 229


Question 12

■ An object encapsulates
A. Data
B. Behavior
C. State
D. Both Data and behavior

2021 By Eng. Joud Khattab 230


Question 12

■ An object encapsulates
A. Data
B. Behavior
C. State
D. Both Data and behavior

2021 By Eng. Joud Khattab 231


Question 13

■ Aggregation represents )‫(التجميع‬


A. is_a relationship
B. part_of relationship
C. composed_of relationship
D. none of above

2021 By Eng. Joud Khattab 232


Question 13

■ Aggregation represents )‫(التجميع‬


A. is_a relationship
B. part_of relationship
C. composed_of relationship
D. none of above

2021 By Eng. Joud Khattab 233


Question 14

■ The tools that support different stages of software development life cycle are called:
A. CASE Tools
B. CAME tools
C. CAQE tools
D. CARE tools

2021 By Eng. Joud Khattab 234


Question 14

■ The tools that support different stages of software development life cycle are called:
A. CASE Tools
B. CAME tools
C. CAQE tools
D. CARE tools

2021 By Eng. Joud Khattab 235


Question 15

■ Requirements can be refined using


A. The waterfall model
B. Prototyping model
C. The evolutionary model
D. The spiral model

2021 By Eng. Joud Khattab 236


Question 15

■ Requirements can be refined using


A. The waterfall model
B. Prototyping model
C. The evolutionary model
D. The spiral model

2021 By Eng. Joud Khattab 237


Question 16

■ Structured charts are a product of


A. Requirements gathering
B. Requirements analysis
C. Design
D. Coding

2021 By Eng. Joud Khattab 238


Question 16

■ Structured charts are a product of


A. Requirements gathering
B. Requirements analysis
C. Design
D. Coding

2021 By Eng. Joud Khattab 239


Question 17

■ A problem that threatens the success of a project but which has not yet happened:
A. Bug
B. Error
C. Risk
D. Failure

2021 By Eng. Joud Khattab 240


Question 17

■ A problem that threatens the success of a project but which has not yet happened:
A. Bug
B. Error
C. Risk
D. Failure

2021 By Eng. Joud Khattab 241


Question 18

■ Pseudocode can replace


A. Flowcharts
B. Structure charts
C. Décision tables
D. cause-effect graphs

2021 By Eng. Joud Khattab 242


Question 18

■ Pseudocode can replace


A. Flowcharts
B. Structure charts
C. Décision tables
D. cause-effect graphs

2021 By Eng. Joud Khattab 243


Question 19

■ If a program in its functioning has not met user requirements is some way, then it is
A. Error
B. Failure
C. Fault
D. Defect

2021 By Eng. Joud Khattab 244


Question 19

■ If a program in its functioning has not met user requirements is some way, then it is
A. Error
B. Failure
C. Fault
D. Defect

2021 By Eng. Joud Khattab 245


Question 20

■ CASE Tool is
A. Computer Aided Software Engineering
B. Component Aided Software Engineering
C. Constructive Aided Software Engineering
D. Computer Analysis Software Engineering

2021 By Eng. Joud Khattab 246


Question 20

■ CASE Tool is
A. Computer Aided Software Engineering
B. Component Aided Software Engineering
C. Constructive Aided Software Engineering
D. Computer Analysis Software Engineering

2021 By Eng. Joud Khattab 247


Question 21

■ Software consists of
A. Set of instructions + operating procedures
B. Programs + documentation + operating procedures
C. Programs + hardware manuals
D. Set of programs

2021 By Eng. Joud Khattab 248


Question 21

■ Software consists of
A. Set of instructions + operating procedures
B. Programs + documentation + operating procedures
C. Programs + hardware manuals
D. Set of programs

2021 By Eng. Joud Khattab 249


Question 22

■ Which phase is not available in software life cycle?


A. Coding
B. Testing
C. Maintenance
D. Abstraction

2021 By Eng. Joud Khattab 250


Question 22

■ Which phase is not available in software life cycle?


A. Coding
B. Testing
C. Maintenance
D. Abstraction

2021 By Eng. Joud Khattab 251


Question 23

■ Which is not a step of requirement engineering?


A. Requirements elicitation
B. Requirements analysis
C. Requirements design
D. Requirements documentation

2021 By Eng. Joud Khattab 252


Question 23

■ Which is not a step of requirement engineering?


A. Requirements elicitation
B. Requirements analysis
C. Requirements design
D. Requirements documentation

2021 By Eng. Joud Khattab 253


Question 24

■ FAST stands for


A. Functional Application Specification Technique
B. Fast Application Specification Technique
C. Facilitated Application Specification Technique
D. None of the above

2021 By Eng. Joud Khattab 254


Question 24

■ FAST stands for


A. Functional Application Specification Technique
B. Fast Application Specification Technique
C. Facilitated Application Specification Technique
D. None of the above

2021 By Eng. Joud Khattab 255


Question 25

■ Which is not a size metric?


A. LOC
B. Function count
C. Program length
D. Cyclomatic complexity

2021 By Eng. Joud Khattab 256


Question 25

■ Which is not a size metric?


A. LOC
B. Function count
C. Program length
D. Cyclomatic complexity

2021 By Eng. Joud Khattab 257


Question 26

■ Software deteriorates rather than wears out because


A. Software suffers from exposure to hostile environments.
B. Defects are more likely to arise after software has been used often.
C. Multiple change requests introduce errors in component interactions.
D. Software spare parts become harder to order.

2021 By Eng. Joud Khattab 258


Question 26

■ Software deteriorates rather than wears out because


A. Software suffers from exposure to hostile environments.
B. Defects are more likely to arise after software has been used often.
C. Multiple change requests introduce errors in component interactions.
D. Software spare parts become harder to order.

2021 By Eng. Joud Khattab 259


Question 27

■ What are the three generic phases of software engineering?


A. Definition, development, support
B. What, how, where
C. Programming, debugging, maintenance
D. Analysis, design, testing

2021 By Eng. Joud Khattab 260


Question 27

■ What are the three generic phases of software engineering?


A. Definition, development, support
B. What, how, where
C. Programming, debugging, maintenance
D. Analysis, design, testing

2021 By Eng. Joud Khattab 261


Question 28

■ Which of these terms is a level name in the Capability Maturity Model?


A. Ad hoc
B. Repeatable
C. Reusable
D. Organized

2021 By Eng. Joud Khattab 262


Question 28

■ Which of these terms is a level name in the Capability Maturity Model?


A. Ad hoc
B. Repeatable
C. Reusable
D. Organized

2021 By Eng. Joud Khattab 263


Question 29

■ Which of the items listed below is not one of the software engineering layers?
A. Process
B. Manufacturing
C. Methods
D. Tools

2021 By Eng. Joud Khattab 264


Question 29

■ Which of the items listed below is not one of the software engineering layers?
A. Process
B. Manufacturing
C. Methods
D. Tools

2021 By Eng. Joud Khattab 265


Question 30

■ Which of the following are advantages of using LOC (lines of code) as a size oriented
metric?
A. LOC is easily computed
B. LOC is a language dependent measure
C. LOC is a language independent measure
D. LOC can be computed before a design is completed

2021 By Eng. Joud Khattab 266


Question 30

■ Which of the following are advantages of using LOC (lines of code) as a size oriented
metric?
A. LOC is easily computed
B. LOC is a language dependent measure
C. LOC is a language independent measure
D. LOC can be computed before a design is completed

2021 By Eng. Joud Khattab 267


Question 31

■ Which of the following is not an attribute of software engineering


A. Efficiency
B. Scalability
C. Dependability
D. Usability

2021 By Eng. Joud Khattab 268


Question 31

■ Which of the following is not an attribute of software engineering


A. Efficiency
B. Scalability
C. Dependability
D. Usability

2021 By Eng. Joud Khattab 269


Question 32

■ A key concept of quality control is that all work products


A. Are delivered on time and under budget
B. Have complete documentation
C. Have measurable specification for process outputs
D. Are thoroughly tested before delivery to the customer

2021 By Eng. Joud Khattab 270


Question 32

■ A key concept of quality control is that all work products


A. Are delivered on time and under budget
B. Have complete documentation
C. Have measurable specification for process outputs
D. Are thoroughly tested before delivery to the customer

2021 By Eng. Joud Khattab 271


Question 33

■ The ISO quality assurance standard that applies to software engineering is


A. ISO 9000
B. ISO 9001
C. ISO 9002
D. ISO 9003

2021 By Eng. Joud Khattab 272


Question 33

■ The ISO quality assurance standard that applies to software engineering is


A. ISO 9000
B. ISO 9001
C. ISO 9002
D. ISO 9003

2021 By Eng. Joud Khattab 273


Question 34

■ What types of models are created during software requirements analysis?


A. Functional and behavioral
B. Algorithmic and data structure
C. Architectural and structural
D. Usability and reliability

2021 By Eng. Joud Khattab 274


Question 34

■ What types of models are created during software requirements analysis?


A. Functional and behavioral
B. Algorithmic and data structure
C. Architectural and structural
D. Usability and reliability

2021 By Eng. Joud Khattab 275


Question 35

■ Software feasibility is based on which of the following


A. Business and marketing concerns
B. Scope, constraints, market
C. Technology, finance, time, resources
D. Technical prowess of the developers

2021 By Eng. Joud Khattab 276


Question 35

■ Software feasibility is based on which of the following


A. Business and marketing concerns
B. Scope, constraints, market
C. Technology, finance, time, resources
D. Technical prowess of the developers

2021 By Eng. Joud Khattab 277


Question 36

■ The software metrics chosen by an organization are driven by the business or


technical goals an organization wishes to accomplish.
A. True
B. False

2021 By Eng. Joud Khattab 278


Question 36

■ The software metrics chosen by an organization are driven by the business or


technical goals an organization wishes to accomplish.
A. True
B. False

2021 By Eng. Joud Khattab 279


CONTACT INFO

2021 By Eng. Joud Khattab 280

You might also like