SW Lec3 Notes
SW Lec3 Notes
|Pa ge0
Software
Agile Development
▪ Program specification, design and implementation are inter-leaved.
▪ The system is developed as a series of versions or increments with stakeholders
involved in version specification and evaluation.
▪ Deliver working software quickly.
▪ Minimal documentation – focus on working code.
Agile
• Specification, design, implementation and testing are inter- leaved.
• Iteration occurs across activities.
Agile Methods
These methods:
• Focus on the code rather than the design
• Are based on an iterative approach to software development
• Are intended to deliver working software quickly.
• The aim of agile methods is to reduce overheads in the software process (e.g. by
limiting documentation)
|Pa ge1
Software
Agile Manifesto
Individuals and interactions processes and tools.
االفراد او التيم والناس الل هتستخدم السيستم بعد كده ويكون نف بينهم ن
اهم عندهم من الinteraction وبي بعض ي ي
process and tools
علشان تطور السيستم الزم العميل يشارك ن يف التطوير ده عن طريقه انه يديك فيدباك
1) Extreme Programming
ن
أسبوعي بتسلم تطوير للسيسم كل
• Increments are delivered to customers every 2 weeks.
• All tests must be run for every build and the build is only accepted if tests run
successfully.
للسيستمtestانت لما بتعمل تحديث علي السيستم الزم تعمل
كله علشان تتأكد ان الجزء اللي ضفته مبوظش السيستم
|Pa ge2
Software
These are written on cards and the development team break them down into
implementation tasks.
ال تاسكات
عل شكل استوري بعد كده انت بتقسم المتطلبات دي ي
انت خدت المتطلبات ي
The customer chooses the stories for inclusion in the next release based on their
priorities.
بتاع أي؟
>> انا كيوزر بحدد الدور يAs a user
الل عاوزها بهدف اي؟
>> الحاجه يI want to goal
>> acceptance criteria ن يف ضهر الكارت بكتب ال
تبق موجوده
لل مفروص ي ده بيكون عباره عن المعايب ا ي
ن يف السيستم علشان يقبل بيها العميل
Acceptance Criteria
▪ as Conditions that a software product must satisfy to be accepted by a user,
customer or other stakeholder.
▪ a set of statements, each with a clear pass/fail result, that specify both functional
(e.g., minimal marketable functionality) and non-functional (e.g., minimal
quality)requirements
Example:
بتاع
ي >> الدورlog in يف المثال ده هنا انا ك يوزر عاوز اعمل
بتاعت
ي dashboard ان اقدر أوصل لل
طب انا عاوز اعمل كده بهدف اي؟ ي
وال6character ع يل األقلusername >> ان الacceptance criteria طب اي ال
password must contain number and capital letter
|Pa ge3
Software
Valuable: User Stories should be valuable to the user (or owner) of the solution.
They should be written in user language. They should be features, not tasks.
ديuser stories عشان هياخد الdeveloper يعن مش كاتب أي كالم وخالص الكالم ده يكون له قيمه بالنسبه لل ن
ي
بتاعتك ديuser stories عل ال وينفذ بناء يtaskes يقسمها ل
Estimable: The user stories should have sufficient detail for the dev team to
understand and estimate them.
Small: User Stories should be small. Not too small and not too big.
Testable: User Stories need to be worded in a way that is testable. This is supported
by the “Confirmation”.
Refactoring
Code improvement (refactoring) to make changes easier when they have to be
implemented.
Programming team look for possible software improvements and make these
improvements .
This improves the understandability of the software and so reduces the need for
documentation.
Changes are easier to make because the code is well- structured and clear.
انت لما تعمل سيستم و تسلمه للعميل مهو أكيد السيستم ده هيحتاج تطوير بعد كده فكرة انك تعمل
عل كود و تطور فيه الزم تكون
و أكيد علشان تعدل يrefactoringلكود ده بنقول عليهاimprovements
بحيث لو حد من.well- structured and clearفاهمه كويس جدا فعلشان كده الزم الكود بتاعك يكون
هيقلل
ي الل معاك مفروض يعدل فيه يكون فهم الكود سهل و بناء عليه يكون التعديل فيه سهل وده كله
التيم ي
documentation ان احتاج ال
ي
Examples Of Refactoring
Re-organization of a class hierarchy to remove duplicate code.
remove لو عندي حاجات متكررة بعملها
Tidying up and renaming attributes and methods to make them easier to
understand.
عشان اخليها سهلهrenaming مش بدل علي الحاجه اللي هي بتعملها فبعملهاattributes وmethods لو عندي
الفهم
|Pa ge4
Software
Test-first development
Testing is central to XP and the program is tested after every change has been made.
XP testing features:
• Test-first development.
• Incremental test development from scenarios.
• User involvement in test development and validation.
Pair Programming
In pair programming, programmers sit together at the same computer to develop
المب ن
the software. مجي هيقعدوا مع بعض عل البمجيات بحيث ان كل ن ن
اتني من ر ه طريقة يف تطوير ر
ي
جهاز كمبيوتر واحد.
airs are created dynamically so that all team members work with each other during
the development process.
The sharing of knowledge that happens during pair programming is very important
as it reduces the overall risks to a project when team members leave.
|Pa ge5
Software
SCRUM
▪ Scrum is an agile method that focuses on managing iterative development.
▪ There are three phases in Scrum.
• The initial phase is an outline planning phase where you establish the general
objectives for the project.
• This is followed by a series of sprint cycles, where each cycle develops an
increment of the system.
• The project closure phase wraps up the project, completes required
documentation such as system help frames and user manuals.
مراحل3ال
بينقسم يScrumال
الل هو
و دي التيم بيقعد فيها مع العميل و ياخد منه المتطلبات يinitial phase
عل الخطوه دي بيقرروا ازاي هينفذوا
عاوزه ويحددوا المتطلبات االساسيه و بناء ي
ر
المشوع
المشوع يف مرحلة تطوير بيدخل ر،initial phase >> بعد الsprint cycles
ُ
بيتم،سيينت يف كل ر.بالسيينت
ر قصية تعرف
ر مستمر من خالل دورات أو جوالت
ده هيؤدي إل زيادة تدريجية يف أداء،معي أو تحسينه
كي عل تطوير جزء ر الي ر
النظام
و ف المرحله دي انت بتكون خالص بتخلص ف رproject closure
المشوع و ي ي
documentationالل يف
عل وشك االنتهاء من كل المتطلبات ي
بتكون ي
1) Product Owner
▪ An individual (or possibly a small group) whose job is to
• identify product requirements,
• prioritize these for development
• continuously review the product backlog to ensure that the project continues to
meet critical business needs.
▪ The Product Owner can be a customer but might also be a product manager.
الل هتكون يف السوفت وير
بيكون شخص او محموعه من األشخاص بيحددوا المتطلبات يProduct Ownerال
الل هما عاوزينها
باستمرار لضامن انه بيحقق الطلبات يproduct backlogو ربياجعواprioritize these for developmentو
.
Product Backlog
• This is a list of ‘to do’ items which the Scrum team must develop.
• Definitions for the software requirements
development المطلوب من التيم ان هو يعملهاrequirement الل
بيكون فيها كل ي
The Team
• A self-organizing group of software developers, which should be no more than 7
people.
• They are responsible for developing the software.
• A daily meeting of the Scrum team that reviews progress and prioritizes work to be
done that day. Ideally, this should be a short face-to-face meeting that includes the
whole team
|Pa ge6
Software
Requirements Engineering
Requirements:
• are the descriptions of the system services and constraints that are generated
during the requirements engineering process.
Requirements Engineering Process:
• The process of establishing the services that the customer requires from a
system and the constraints under which it operates and is developed.
|Pa ge7
Software
Property Measure
Speed Processed transactions/second
User/event response time
Ease of use Training time
Number of help frames
Reliability Mean time to failure
Rate of failure occurrence
Robustness Time to restart after failure
Percentage of events causing
failure
Probability of data corruption on
failure
Requirements Specification
User requirements System requirements
Abstract Points More Detailed Description
Services and constraints of the system in Services and constraints of the system in
abstract detail
Readable by everybody Useful for the design and development
Precise and cover all cases
Example:
System Stakeholders
▪ Any person or organization who is affected by the system in some way and so who has a
legitimate interest
Stakeholder types
• End users
• System managers
• System owners
• External stakeholders
|Pa ge8
Software
األرضَّ َّ
َّ قاعَّ اللهمَََّّّنسألُكَّنصراََّّوجَبراََّّوعِزاََّّ ِِلخوانِناَّال ُمستضعَف ََّ
ِينَّفيَّغزةَّوفيَّك َُِّلَّبِ َِّ
عجائبَّقُ َ
درتِكَّ َّ ََّ ََّ
الظالمينَّ فيَّ
اللهمََّّ ِأر َّناَّ َّ
تحتَّأقدامِ ِهمََّّ،و ُخذه َُّمَّأخ َّذََّ َّ
عزيزَّ ُمقتَدِرََّّ. نَّ َّ
األرضَّمِ َّ
ََّ اللهمََّّزلز َِّلَّ
|Pa ge9