Professional Documents
Culture Documents
ENGINEERING
محور هندسة البرمجيات
■ Overview.
■ Software Processes.
■ Software Development Life Cycle (SDLC).
■ Requirement Engineering.
■ Unified Modeling Language (UML).
■ Architecture Design.
■ Testing & Maintenance.
■ Others.
■ MCQ.
■ تعريف ال :software
– هي عبارة عن البرامج مع ال dataمع التوثيق ( ،)documentationوال نقصد هنا
بالتوثيق وضع التعليقات بين أسطر البرنامج.
– توثيق كل الخطوات التي نقوم بها في تطوير أي نظام برمجي في كل المراحل التي
يمر بها من تحليل و تصميم و تنجيز و اختبار.
■ ما هي مواصفات ال softwareالجيد؟
– الفاعلية)efficiency( :
نقول عن برمجيات أنها فعالة إذا استخدمت موارد أقل من معالجة CPUو .memory ■
– القبول)accessibility( :
معايير قبول نظام برمجي يختلف من شركة ألخرى و من مستخدم آلخر ،و المعيار ■
األساسي لقبول نظام برمجي هو الواجهات.
■ المهتمون)stakeholders ( :
– انهم أشخاص أو مؤسسات المهتمة في تطوير النظم البرمجية ألنها تؤثر أو تتأثر
بطريقة مباشرة أو غير مباشرة بالنظام المقترح.
– مثال :نظام تعليمي لوزارة التعليم العالي أو online management systemفكل من
الوزارة و الطالب يشكلون ال stakeholdersألنهم يتأثرون بهذا النظام و لهم الدور
األساسي في تطوير ذلك النظام .
■ تقسيم ال :stakeholders
– المطورون الذين يطورون النظامdevelopers :
حيث يعتبر ال developersمهتمون ألنهم يتأثرون بشكل أو بآخر بالنظام. ■
– المستخدمونusers :
هم من المهتمون ألنهم من يستخدمون النظام. ■
– الممولونsponsors :
المسؤولون الذين يمولون النظام أي يقومون بدفع المال. ■
■ تمر مرحلة تطوير (النظام) أو البرمجيات بشكل عام في أربع مراحل)activities( :
■ A stakeholder is anyone who will purchase the completed software system under
development.
A. True
B. False
■ A stakeholder is anyone who will purchase the completed software system under
development.
A. True
B. False
,
.
.
.
■ 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
■ 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
■ Which two models doesn’t allow defining requirements early in the cycle?
A. Waterfall & RAD
B. Prototyping & Spiral
C. Prototyping & RAD
D. Waterfall & Spiral
■ Which two models doesn’t allow defining requirements early in the cycle?
A. Waterfall & RAD
B. Prototyping & Spiral
C. Prototyping & RAD
D. Waterfall & Spiral
■ 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
■ 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
Access Right public (+) private (-) protected (#) Package (~)
Members of the
yes yes yes yes
same class
Members of
yes no yes yes
derived classes
■ 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
■ 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
■ Which of the following are the valid relationships in Use Case Diagrams
A. Generalization
B. Include
C. Extend
D. All of the mentioned
■ Which of the following are the valid relationships in Use Case Diagrams
A. Generalization
B. Include
C. Extend
D. All of the mentioned
■ 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
■ 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
■ تعريف ال :component
– ال componentهو كلمة رديفة ل sub systemو ال sub systemيقدم خدمة أو أكثر و
لذلك فإن ال componentهو عبارة عن block of codeيقدم خدمة واحدة أو عدة
خدمات.
■ انوع ال :component
– Large grain
هو componentيقدم وظائف و مهام كبيرة أي بمعنى آخر هو codeيقدم خدمات متعددة. ■
Fine grain –
هو codeيقدم مهمات صغيرة مهمة أو اثنين على األكثر. ■
مالحظات: –
عندما نستخدم large grainفنحن نحقق مفهوم االلتحام ( .)cohesionالتجانس ■
عندما نستخدم fine grainفنحن نحقق مفهوم االقتران ( .)couplingالترابط ■
■ تعريفها:
– مكان حصول المستخدمين External Entitiesعلى الوظائف التي يقدمها النظام.
– وسيلة للتواصل بين األنظمة األخرى مع النظام مثل ال APIوهي اختصار ل
Application Program Interfaceأي واجهة تواصل بين نظام ونظام ثاني.
■ تقسم ال Interfaceإلى:
– :User Interfaceواجهة للمستخدم للتفاعل مع النظام.
– :System Interfaceواجهة ل Systemليتفاعل مع النظام.
■ Modules X and Y operate on the same input and output data, then the cohesion is
A. Sequential
B. Communicational
C. Procedural
D. Logical
■ Modules X and Y operate on the same input and output data, then the cohesion is
A. Sequential
B. Communicational
C. Procedural
D. Logical
■ :Test-Data
– هي مجموعة ال dataالتي ندخلها إلجراء testingمعين.
■ :Test-Case
– هي مجموعة ال dataالمدخلة باإلضافة إلى التوقع (توقع النتيجة) وذلك من أجل
المقارنة ما بين القيمة المتوقعة والقيمة الفعلية.
■ :Test-Suite
– هي مجموعة جميع ال Test-Caseالتي نطبقها.
■ :Testing
– هي إجرائية اختبار النظام بهدف إيجاد أخطاء "حيث الغاية من ال testingأبداً ليست
إثبات عدم وجود أخطاء في النظام بل العكس".
■ :Debugging
– هي مرحلة تالية لل Testingحيث عندما يكون ال Testingناجحاً نقوم بإصالح األخطاء
التي اكتشفناها في مرحلة ال debugging
■ :Verificationالتحقق
– هو عمل دائم ومستمر في كل مرحلة من مراحل تطوير النظام نقوم بمطابقة ما
نطوره مع المتطلبات specificationالتي وضعناها في بداية المرحلة ،فمثال ً في
نهاية مرحلة التحليل نرى هل ما طورنا إلى اآلن متوافق ومتطابق مع المتطلبات
والمواصفات المطلوبة من النظام؟ وفي نهاية مرحلة التصميم نرى هل ما صممناه
متوافق ومتطابق مع ال design documentالتي وضعناها؟
■ أي نسال نفسنا في نهاية كل مرحلة:
– ?Are we building the product right
■ :Validationالتثبت
– ففي آخر كل مرحلة نرى الوثائق وال documentالتي لدينا هل توافق ما اتفقنا عليه
مع الزبون؟ وهو عمل يتم في نهاية كل مرحلة من المراحل وهنا نقول أن المنتج إما
نجح أو رفض.
■ والسؤال يكون كالتالي:
– ?Are we build the right product
■ :Validation Testing
– يعتبر الزبون صاحب القرار األول واألخير في قبول ال Systemأو ال فهو يقوم باإلطالع
على الوظائف التي يقدمها ال Systemوالتأكد من أنها تعمل بشكل جيد.
– هناك معيارين أساسيين في قبول النظام :expectance Testing
ألفا. ■
بيتا. ■
– في االختبار ألفا يختبر الزبون الوظائف بأنها تعمل بشكل جيد وذلك في الشركة
المطورة للنظام.
– أما في اختبار بيتا فإن الزبون يطلب من المطورين installationللنظام في البيئة
التي يرد المستخدم أن يستخدم النظام عبرها ويقوم باختبار الوظائف هل تعمل
بشكل جيد وإذا كان االختبار ناجحاً يقوم بقبول هذا النظام وإذا كان االختبار فاشال ً
يقوم برفض هذا النظام.
– الفرق بين النوعين السابقين بالمكان ال غير .
■ :Debugging
– هي عبارة عن إجرائية تشخيصية للتعرف على أماكن األخطاء المكتشفة في مرحلة
ال Testingوتصليحها.
– مالحظة :كل عملية اصالح يتم القيام بها بعد تشغيل النظام تعتبر maintenance
وكل عملية إصالح يتم القيام بها قبل تشغيل النظام صار اسمها .debugging
■ كلفة اإلصالح:
– إن عملية ال Testingمكلفة بنسبة %60بالنسبة إلى المراحل التي تسبقها،
وكذلك عملية الصيانة أيضاً عملية مكلفة جداً جداً بنسبة % 21إلى كلفة كل
المراحل التي تسبقها.
■ 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
■ 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
■ Units and stubs are not needed for unit testing because the modules are tested
independently of one another
A. True
B. False
■ Units and stubs are not needed for unit testing because the modules are tested
independently of one another
A. True
B. False
■ 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
■ 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
■ 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
■ 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
■ 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
■ 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
■ 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
Sequence While
If-then-else
Until
■ V(G) = E – N + 2
■ E is the number of flow graph edges
■ N is the number of nodes
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
■ :Milestone
– هي عبارة عن نقاط عالم على الجدول الزمني وهي تساعد في التحقق من مقدار
التقدم والتطور في المشروع،
– هي خاصة لألشخاص الذين يعملون على تطوير المشروع.
■ :Deliverable
– هي عبارة عن كل ما يسلم للزبون من تقارير ومخططات ...الخ.
– ليس بالضروري أن يكون عند كل Milestoneهناك Deliverableلكن على الغالب
يكون هناك Deliverable
– فمثال ً وضعنا Milestoneفي نهاية مرحلة التحليل لنعرف هل انتهينا من مرحلة
التحليل ؟
■ 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
■ 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
■ The feature of the object oriented paradigm which helps code reuse is
A. Object
B. Class
C. Inheritance
D. Aggregation
■ The feature of the object oriented paradigm which helps code reuse is
A. Object
B. Class
C. Inheritance
D. Aggregation
■ 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
■ 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
■ 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
■ 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
■ An object encapsulates
A. Data
B. Behavior
C. State
D. Both Data and behavior
■ An object encapsulates
A. Data
B. Behavior
C. State
D. Both Data and behavior
■ 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
■ 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
■ A problem that threatens the success of a project but which has not yet happened:
A. Bug
B. Error
C. Risk
D. Failure
■ A problem that threatens the success of a project but which has not yet happened:
A. Bug
B. Error
C. Risk
D. Failure
■ 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
■ 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
■ CASE Tool is
A. Computer Aided Software Engineering
B. Component Aided Software Engineering
C. Constructive Aided Software Engineering
D. Computer Analysis Software Engineering
■ CASE Tool is
A. Computer Aided Software Engineering
B. Component Aided Software Engineering
C. Constructive Aided Software Engineering
D. Computer Analysis Software Engineering
■ Software consists of
A. Set of instructions + operating procedures
B. Programs + documentation + operating procedures
C. Programs + hardware manuals
D. Set of programs
■ Software consists of
A. Set of instructions + operating procedures
B. Programs + documentation + operating procedures
C. Programs + hardware manuals
D. Set of programs
■ Which of the items listed below is not one of the software engineering layers?
A. Process
B. Manufacturing
C. Methods
D. Tools
■ Which of the items listed below is not one of the software engineering layers?
A. Process
B. Manufacturing
C. Methods
D. Tools
■ 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
■ 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