software engineering تلخيص
TRANSCRIPT
Software Engineering
software engineering is the software lifecycle.
قبل ابدا اعدل البرنامج الزم قبل يستخدم من قبل اليوزر
The two steps, use and modify, continue until the software
becomes obsolete. “ ه الزمناضل اعدل على البرنامج الى ان يعفى علي
By “obsolete”, we mean that the software loses its validity
because of inefficiency, obsolescence of the language, major
changes in user requirements, or other factors.
دم اللغة " قصدهم بعفى عليه الزمن انه البرنامج يفقد صحته بسبب عدم كفاءة وق
"و انه ماعد يخدم المستخدم او عوامل اخرى المستخدمة فيه ا
System Development Methodology is a standard process
followed in an organization to conduct all the steps necessary to
analyze, design, implement, and maintain information systems.
البرنامج او النظام يكون جيد ""هي المعايير اللي اسويها عشان
المعايير هي:
Planning, Analysis, Design, Implementation, Maintenance
تخطيط ,تحليل,تصميم,تنفيذ,صيانة
Planning – an organization’s total information system needs are
identified, analyzed, prioritized, and arranged
احاول افهم احتياجات المستخدم و افهمها واحدد اولويتها وارتبها " "هاذي المرحلة
Analysis – system requirements are studied and structured
"هاذي المرحلة ادرس فيها النظام واطلع الحلول"
Design – a description of the recommended solution is converted
into logical and then physical system specifications
"بهاذي المرحلة اخذ الحلول اللي سويتها قبل واروح احطها بالتصميم المنطقي و
الفيزيائي
Logical design – all functional features of the system chosen for
development in analysis are described independently of any
computer platform
"يتم وصف كل ميزات وظيفية النظام المختار للتنمية في التحليل بشكل مستقل عن أي
الكمبيوتر " منصة
Physical design – the logical specifications of the system from
logical design are transformed into the technology-specific details
from which all programming and system construction can be
accomplished
"احول التصميم االفتراضي الى فيزيائي"
Implementation – the information system is coded, tested, installed
and supported in the organization
هينا اسوي ترميز للنظام بعدين اختبره و يتم تثبيه ودعمه""
Maintenance – an information system is systematically repaired
and improved
" هينا الصيانه بحيث اذا احتاج للصيانه او التطوير اخر مرحلة هاذي"
There are several models for the development process. We
discuss the two most common here: the waterfall model and the
incremental model.
ه واشهرها واتر فال و انكرمنتيل انه فيه نماذج كثيره للمعاير المستخدم
The waterfall model is a very popular model for the software
development process.
" الوتر فال هو اكثر شي مستخدم ومشهور اللي قبل شوي درسنا معاييره "
In this model, the development process flows in only one direction.
This means that a phase cannot be started until the previous phase is
completed
اللي "في الواترفل العمليات متسلسه وهذا يعني اني انا ماقدر ابدا في شي اال الزم اخلص
ال لما اخلص من التصميم وهكذا"قبله يعني مثال مابدا بمرحلة التنفيذ ا
مميزاتها:
Each phase is completed before the next phase starts;
" ما ابد مرحلة اال الزم اخلص اللي قبلها "
The testing phase can test the whole system because the entire
system under development is ready.
اقدر اختبر البرنامج قبل ما اخلصه النه هو قيد التطوير
عيوبها:
System requirements “locked in” after being determined (can't
change)
"متطلبات النظام مغلقة بعد ان تحدد ما اقدر اغير عليها
Limited user involvement (only in requirements phase)
محدود""تدخل اليوزر
Too much focus on milestone deadlines of SDLC phases to the
detriment of sound development practices
"هينا يعني معناها الزم اخلص كل الشغل عشان اقيمه الوقت مره مهم ياثر على الجودة"
The difficulty in locating a problem: if there is a problem in
part of the process, the entire process must be checked.
" صعوبة ايجاد المشكلة واذا وجدت الزم اعدل على الباقي ممكن افهم المطلوب غلط
واضطر اني اعدل على كل البرنامج"
النوع الثاني :
The incremental model
The developers first complete a simplified version of the whole
system
This version represents the entire system but does not include the
details.
المطورين يسوون نسخة مبسطة من البرنامج
وهذا االصدار يمثل النظام باكمله بس مايتضمن التفاصيل
In the second version, more details are added, while some are left
unfinished, and the system is tested again.
اختبار يتمو تنته، بعض ترك يتم حين في التفاصيل، من مزيد إضافة يتم الثانية، النسخة
أخرى مرة النظام
If there is a problem, the developers know that the problem is with
the new functionality,.
ها جديدة الي هم ضافو وظيفة مع هي المشكلة أن يعرفون والمطورين مشكلة، هناك كان إذا
they do not add more functionality until the existing system works
properly.
صحيح بشكل القائم النظام يعمل حتى الوظائف من المزيد تضيف ال نها .
This process continues until all required functionality has been added.
المطلوبة الوظائف كافة إضافة تمت حتى العملية هذه تستمر
The development process starts with the analysis phase.
تبدا عملية التطوير او التنمية مع التحليل هو اول شي
This phase results in a specification document that shows what the
software will do without specifying how it will be done.
طريقة ا هاذي العملية احطها بزي المستند ابين فيه كيف اشتغل البرنامج من دون ما اكتب ال
The analysis phase can use two separate approaches, depending on
whether the implementation phase is done using a procedural
programming language or an object-oriented language. We briefly
discuss both in this section.
مرحلة في يتم كان إذا ما على يتوقف وهذا منفصلة، نهجين استخدام التحليل يمكن بمرحلة
بحدا وجيز يبش نناقش. كالسز لغة بستخدم فيها فانكشنز أو البرمجة لغة باستخدام التنفيذ
القسم هذا في ما
Procedure-oriented analysis: is the analysis process used if the system
implementation phase will use a procedural language. The
specification in this case may use several modeling tools, but we
discuss only a few of them here.
Set of function اللي فهمته انه هاذي اللغه اللي بستخدمها تستخدم
Data flow diagrams.
Data flow diagrams show the movement of data in the system.
بالنظاموظيفتها توريني كيف تنتقل الداتا
They use four symbols:
where data is stored
the flow of data.
الرموز اللي فوق تبين كيف ارسم الرسمه وترتيبها
source or
destination of
data
shows the process
(the action to be
performed on the
data),
مثال حجز لفندق عن طريق االنترنت
Entity-relationship diagrams
Another modeling tool used during the analysis phase is the entity-
relationship diagram.
entity-relationship diagram. هو نموذج اخر يستخدم مرحلة التحليل هو ال
The database designer creates an ER diagram to show the entities for
which information needs to be stored and the relationship between
those entities.
ER البياني الرسم ينفذ بيانات قاعدة مصمم
الكيانات تلك بين والعالقة المخزنة، المعلومات تكون أن يجب التي الكيانات إلظهار .
State diagramsState diagrams provide another useful tool that is
normally used when the state of the entities in the system will
change in response to events.
ت الستي تكون عندما عادة يستخدم مفيدة أخرى أداة الستيت مخططات توفر
األحداث على ردا سيتغير النظام في للكيانات .
As an example of a state diagram, we show the operation
of a one-passenger elevator. When a floor button is
pushed, the elevator moves in the requested direction. It
does not respond to any other request until it reaches its
destination.
ح تحتط زر تحت يوديني تحت ومايستجيب لطلب اخر لين ماارومثال عليه المصعد لما اضغ
مالحظة الرسمة استاذة لطيفة قالت مو مطلوبة
Object-oriented analysis is the analysis process used if the
implementation uses an object-oriented language. The
specification document in this case may use several tools, but
we discuss only a few of them here.
Set of object اللي فهمته انه استخدمه اذا عندي برنامج له
Use case diagrams
A use-case diagram gives the user’s view of a system: it
shows how users communicate with the system.
وكيف يتواصلون مع النظاماعرف مين المستخدمين
A use-case diagram uses four components: system, use
cases, actors and relationships. A system, shown by a
rectangle, performs a function.
هينا العناصر حقته معددها
الفاعلة والجهات االستخدام، وحاالت النظام،: عناصر أربعة يستخدم
وظيفة ويؤدي مستطيل، قبل من موضح هو كما نظام، وهناك. والعالقات
52و 52امثلتها ارجعي لساليد
State chart
After the class diagram is finalized, a state chart can be
prepared for each class in the class diagram. A state chart
in object-oriented analysis plays the same role as the state
diagram in procedure-oriented analysis. This means that
for the class diagram of Figure 10.7, we need to have a
four-state chart
ت شرحها باختصار انه هي لها نفس وظيفة الستيت دايقرام توريني الحاال
وكيف تنتقل على مدار الكالسات
DESIGN PHASE
The design phase defines how the system will accomplish
what was defined in the analysis phase. In the design
phase, all components of the system are defined
اعرف مكونات النظام وايش اللي يسويه وكيف انفذه
procedure-oriented design
In procedure-oriented design we have both procedures and
data to design. We discuss a category of design methods
that concentrate on procedures. In procedure-oriented
design, the whole system is divided into a set of
procedures or modules.
ئةف نناقش. لتصميم والبيانات اإلجراءات كل يلد لما اوصل هالمرحلة يكون
،اإلجراء الموجه التصميم في. اإلجراءات على تركز التي التصميم طرق من
الوحدات أو اإلجراءات من مجموعة إلى برمته النظام وينقسم .
Structure charts:
A common tool for illustrating the relations between
modules in procedure-oriented design is a structure chart.
modules in procedure-oriented العالقات بين لتوضيح مشتركة داة
وتساعدني اني اقسم النظام الى مودلز
Modularity
Modularity means breaking a large project into smaller
parts that can be understood and handled easily
فهمها مكنهي عملية تقسيم البروجكت الى اجزاء صغيرة تخليها من الم
بسهولة معها والتعامل
In other words, modularity means dividing a large task into
small tasks that can communicate with each other.
واصلالت على قادرة صغيرة مهام إلى الكبيرة المهمة تقسيم بمعنى اخر يعني
البعض بعضها مع .
There are two main concerns when a system is divided into
modules: coupling and cohesion
coupling and cohesion لما اقسم النظام الزم انتبه لشيئين مهمين هما
Coupling: is a measure of how tightly two modules are bound to
each other.
هو مقياس يوريك كيف المودلز معتمدة او مالزمين على بعضها البعض
The more tightly coupled, the less independent they are.
كل مازاد اعتمادهم على بعض كل ماقلت استقالليتهم
Since the objective is to make modules as independent as
possible, we want them to be loosely coupled
المتباعدة تكون أن لها نريد ونحن اإلمكان، بقدر مستقال وحدات جعل هو الهدف ألن
Coupling between modules in a software system
must be minimized.
االقتران بالسوفت وير الزم يكون اقل ترابط
Another issue in modularity is cohesion. Cohesion is a
measure of how closely the modules in a system are
related. We need to have maximum possible cohesion
between modules in a software system
ىإل بحاجة ونحن. النظام في الوحدات ترتبط قرب لمدى مقياس هو التماسك
نظام في النمطية الوحدات بين التماسك الممكن األقصى الحد يكون أن
البرمجيات
هم يكملون بعض بس مستقلين
Cohesion between modules in a software system
must be maximized
بير التماسك او الترابط بالسوفت وير الزم يكون ك
Object-oriented design
In object-oriented design the design phase continues by
elaborating the details of classes.
فاصيلت وضع طريق عن التصميم مرحلة في تزال االوبكت اورينتد ال التصميم في
.الكالسزز
a class is made of a set of variables (attributes) and a set of methods.
The object-oriented design phase lists details of these attributes and
methods
هينا يقولك انه الكالس يتكون من المتغيرات اللي االتربوتس والميثود
وفي االوبجكت اوريند ديزاين تحط لي ديتيل لست حقت االتربيوت والميثود
IMPLEMENTATION PHASE:
In the waterfall model, after the design phase is completed, the
implementation phase can star
في الواتر فول مودل بعد مااخلص تصميم ابد انفذ
In this phase the programmers write the code for the modules in
procedure-oriented design, or write the program units to implement
classes in object-oriented design
قرام يونت هينا يبدا شغل المبرمجين يكتوب التعليمات البرمجية للمصمين او يكتبون البر
عشان ينفذون الكالسسز
There are several issues we need to mention in each case.
< ترجمة قوقل حالة كل في نذكر أن نحتاج القضايا من العديد هناك
Choice of language اول شي :
In a procedure-oriented development, the project team needs to
choose a language or a set of languages
فريق المشروع يختارون اللغة اللي بطورون عليها وممكن اكثر من لغة
Although some languages like C++ are considered to be both a
procedural and an object-oriented language—normally an
implementation uses a purely procedural language such as C.
لسي بلس بلس تعتمد على السي اللي فهمته انه ا
In the object-oriented case, both C++ and Java are common
في االوبجكت اورنتد المشهور اكثر هو الجافا والسي بلس بلس
Software quality
The quality of software created at the implementation phase is a
very important issue.
كفاءة السوفت وير مره مهم الزم يحقق متطلبات اليوزر
A software system of high quality is one that satisfies the user’s
requirements, meets the operating standards of the organization, and
runs efficiently on the hardware for which it was developed.
ييربالمعا وتجتمع المستخدم، متطلبات ترضي واحدة هي عالية جودة ذات رمجياتالب نظام
وضعها تم التي األجهزة على بكفاءة ويعمل للمنظمة، التشغيلية .
Software quality factors:
Software quality can be divided into three broad measures:
operability, maintainability and transferability
وصيانتها ونقلها معايير كفاءة السوفت وير هي قابلية التشغيل
Operability: refers to the basic operation of a system.
قابلية التشغيل هي العملية االساسية بالنظام
Several measures can be mentioned for operability: accuracy,
efficiency, reliability, security, timeliness, and usability.
الوقت قابلية التشغيل اقيسها على اساس : الدقة و الكفاءة و الموثوقية و االمن و
المناسب ووسهولة االستخدام
Maintainability: refers to the ease with which a system can be
kept up to date and running correctly. Many systems require
regular changes, not because they were poorly implemented,
but because of changes in external factors
كلبش والعمل اآلن، حتى تبقى أن للنظام يمكن التي السهولة إلى يشير الصيانة
سيئ، لبشك نفذت ألنها وليس العادية، التغييرات تتطلب األنظمة من العديد. صحيح
الخارجية العوامل في التغيرات بسبب ولكن
Transferability: refers to the ability to move data and/or a
system from one platform to another and to reuse code.
وإعادة أخرى، إلى واحدة منصة من نظام أو و البيانات نقل على القدرة إلى نقلها يشير
البرمجية التعليمات استخدام .
TESTING PHASE:
The goal of the testing phase is to find errors, which means that
a good testing strategy is the one that finds most errors.
الهدف من االختبار عشان اكتشف االخطاء واصححها
There are two types of testing: glass-box and black-box.
انواع التستينق اللي استخدمها
Glass-box testing:
Glass-box testing (or white-box testing) is based on knowing the
internal structure of the software.
اتخيل ان النظام زي جوا شي شفاف عشان اطلع االخطاء
The testing goal is to determine whether all components of the
software do what they are designed for.
اشوف هل فعال المكونات جالسة تنفذ المطلوب
Glass-box testing assumes that the tester knows everything
about the software.
اعرف جميع مكونات البرنامج
In this case, the software is like a glass box in which everything
inside the box is visible
يقولك ان السوفت وير كانه داخل صندوق زجاجي كل شي جواه واضح
Glass-box testing is done by the software engineer or a
dedicated team.
اللي يسوي االختبار يا مهندس البرمجيات او فريق من المختصين
Glass-box testing that uses the structure of the software is
required to guarantee that at least the following four criteria are
met:
المعايير المستخدمة
All independent paths in every module are tested at least
once.
مسارات مستقلةوكل الاختبر جميع المودلز على االقل مره وحده
All the decision constructs (two-way and multiway) are
tested on each branch.
اختبر بكذا طريقة المفروض اجرب كل الطرق
Each loop construct is tested.
اشيك على كل لوب
All data structures are tested.
اشيك على الداتا وقيم المتغيرات
Several testing methodologies have been designed in the past.
We briefly discuss two of them: basis path testing and control
structure testing.
انه له نوعين وبناقشهم تحت
Basis path testing:
Basis path testing was proposed by Tom McCabe. This method
creates a set of test cases that executes every statement in the
software at least once
ل مره اللي اقترح هذا االختبار توم مكابي وهدفه انه تسوي تنفيذ كل جملة على االق
Basis path testing is a method in which each statement in the
software is executed at least once.
نفس اللي قبل تسوي تنفيذ كل جملة على االقل مره وحده
44ارجعي مثال ساليد
Control structure testing
Control structure testing is more comprehensive than basis path
testing
هينا يقولك ان الكنترول ستركتشر اكثر شمولية من البيس تست
يتكون من كذا كتقوريز تحت شرحهم
Condition testing: حالة االختبار
Applies to any condition expression in the module.
اطبقها على اي حالة عندي بالمودل
Is designed to check whether all conditions (including simple
conditions and compound conditions)are set correctly.
اشيك على الشروط هل هي شغالة صح او ال
Data flow testing:
Is based on the flow of data through the module. This
type of testing selects test cases that involve checking
the value of variables when they are used on the left
side of the assignment statement.
يشيك على القيم اللي بالبرنامج
Loop testing:
Uses test cases to check the validity of loops. All types of loops
are carefully tested
يشيك على اللوب
Black-box testing:
Black box testing gets its name from the concept of testing
software without knowing what is inside it and without knowing
how it works.
من اسمه هو صندوق اسود ما اعرف وشو داخل النظام
In other words, the software is like a black box into which the
tester cannot see. Black-box testing tests the functionality of the
software in terms of what the software is supposed to
accomplish, such as its inputs and outputs.
طيع المختبر ال يست أي داخل األسود الصندوق مثل هو البرنامج فإن أخرى، وبعبارة
ال يرى وظائف البرنامج ومدخالته ومخرجاته .ان يرى مابداخله .
Several methods are used in black-box testing, discussed below
نستخدم عدة طرق الهتبار الصندوق االسود بناقشها تحت
Black-box testing (Cont.)
Exhaustive testing: اختبار شامل
The best black-box test method is to test the software for all
possible values in the input domain. However, in complex
software the input domain is so huge that it is often impractical
to do so.
في مكنةالم القيم لجميع البرمجيات الختبار هو ألسودا الصندوق اختبار طريقة أفضل
أنه جدا ضخمة مدخالت المجال المعقدة البرمجيات في ذلك، ومع. المدخالت مجال
!!! عملي غير يكون ما غالبا .
Random testing: اختبار عشوائي
In random testing, a subset of values in the input domain is
selected for testing. It is very important that the subset be
chosen in such a way that the values are distributed over
the domain input. The use of random number generators
can be very helpful in this case.
دخالتالم مجال في القيم من فرعية مجموعة تحديد يتم عشوائي، اختبار في
وزيعت يتم التي الطريقة هذه مثل في فرعية اختيار يتم أن جدا المهم من. لالختبار
جدا مفيدة تكون أن يمكن عشوائي رقم المولدات استخدام. المجال مدخالت على القيم
الحالة هذه في .
يعني اختار مجموعات معينة واختبرها
Boundary-value testing: اختبار القيمة الحدية
Errors often happen when boundary values are encountered
الحدودية القيم مصادفة عند أخطاء يحدث ما وغالبا
.عادة االغالط تصير بالحدود
DOCUMENTATION:
For software to be used properly and maintained efficiently,
documentation is needed. Usually, three separate sets of
documentation are prepared for software: user documentation,
system documentation and technical documentation
له عشان استخدم النظام بشكل صحيح الزم يكون موثق اسوي ثالث مجوعات منفص
موثقة اوال توثيق للمستخد و للنظام و للتقني
If the software has problems or it is modified after release, they
must be documented too.
اذا السوفت وير كان فيه خطاء وعدلته ايضا الزم اوثقه
Documentation only stops when the package becomes obsolete
الوثيق يوقف لما ينتهي البرنامج محد يستخدمه خالص
Documentation is an ongoing process
يقولك ان التوثيق عملية مستمرة
User documentation:
To run the software system properly, the users need
documentation, traditionally called a user guide, that shows how
to use the software step by step. User guides usually contains a
tutorial section to guide the user through each feature of the
software.
تعلم المستخدم كيف يشغل البرنامج احيانا احط تمارين توريني كيف احلها
A good user guide can be a very powerful marketing tool: the
importance of user documentation in marketing cannot be over-
emphasized. User guides should be written for both the novice
and the expert users, and a software system with good user
documentation will definitely increase sales.
هذا قالت ممكن يجي صح او خطاء اللي باالحمر
ن عن البرنامج لليوزر بيكون سهل وواضح ممكن استخدمة لالعالاذا التعليمات جيدة
المنتج انه من مميزاته يزيد المبيعات
System documentation
System documentation defines the software itself. It should be
written so that the software can be maintained and modified by
people other than the original developers. System
documentation should exist for all four phases of system
development
على فاظالح يمكن بحيث مكتوبة تكون أن ينبغي. نفسه البرنامج نظام وثائق وتحدد
دتوج أن يجب. األصلي المطورين من آخرين أشخاص قبل من وتعديلها البرمجيات
النظام تطوير من األربع المراحل لجميع النظام وثائق
In the analysis phase, the information collected should be
carefully documented. In addition, the analysts should define
the sources of information
إلى ةوباإلضاف. بعناية توثيق يجب جمعها تم التي والمعلومات التحليل، مرحلة في
المعلومات مصادر المحللين تحدد أن ينبغي ذلك،
In the design phase, the tools used in the final copy must be
documented. For example, the final copy of the chart should be
documented with complete explanations.
سبيل لىع. النهائية النسخة في المستخدمة األدوات توثيق يجب التصميم، مرحلة في
كاملة تفسيرات مع المخطط من النهائية النسخة توثيق يجب المثال، .
In the implementation phase, every module of the code should
be documented. In addition, the code should be self-
documenting as far as possible using comments and descriptive
headers.
ذلك، إلى ةوباإلضاف. البرمجية التعليمات من وحدة كل توثيق يجب التنفيذ، مرحلة في
ايذات توثيق-صفية ورؤوس التعليقات باستخدام اإلمكان قدر رمز يكون أن يجب .
Finally, the developers must carefully document the testing
phase. Each type of test applied to the final product should be
mentioned along with its results
وعن لكل اإلشارة وتجدر. االختبار مرحلة بعناية توثق المطورين على يجب وأخيرا،
نتائجها مع النهائي المنتج على يطبق االختبار أنواع من
Technical documentation:
Technical documentation describes the installation and the servicing
of the software system. Installation documentation defines how the
software should be installed on each computer, for example, servers
and clients. Service documentation defines how the system should be
maintained and updated if necessary
يجب كيف التركيب وثائق وتحدد. البرمجيات نظام وصيانة لتركيب التقنية الوثائق وتصف
الخدمة قوثائ وتحدد. وعمالء ملقمات المثال، سبيل على كمبيوتر، كل على البرنامج تثبيت
األمر لزم إذا وتحديثها النظام على الحفاظ ينبغي كيف