0% found this document useful (0 votes)
12 views10 pages

SW Lec3 Notes

The document discusses rapid software development, emphasizing agile methodologies that prioritize quick delivery and stakeholder involvement through iterative processes. It outlines the principles of agile methods, such as customer collaboration and simplicity, and introduces specific practices like Extreme Programming and Scrum. Additionally, it highlights the importance of user stories, refactoring, and agile project management roles like the Product Owner in ensuring successful software development.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views10 pages

SW Lec3 Notes

The document discusses rapid software development, emphasizing agile methodologies that prioritize quick delivery and stakeholder involvement through iterative processes. It outlines the principles of agile methods, such as customer collaboration and simplicity, and introduces specific practices like Extreme Programming and Scrum. Additionally, it highlights the importance of user stories, refactoring, and agile project management roles like the Product Owner in ensuring successful software development.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Software

|Pa ge0
Software

Rapid Software Development


▪ Rapid development and delivery is now often the most important requirement for
software systems.
▪ Agile development methods emerged in the late 1990s whose aim was to radically
reduce the delivery time for working software systems.

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.

‫ه مش‬‫ ان ي‬incremental development ‫ه زي ال‬ ‫ دي فكرتها اي؟ ي‬agile ‫طب ال‬


‫ بحيث‬increments ‫ه بتقسم السوفت وير ل‬ ‫بتطلع السوفت وير كله مرة واحدة أل ي‬
customer ‫الل ال‬‫ي‬ functionality ‫ال‬ ‫من‬ ‫ بيتنفذ فيه مجموعه‬increment ‫كل‬
‫الل محددهالها ال‬
‫ ي‬requirement ‫ بتاعت ال‬priority ‫عل ال‬ ‫عاوزها بناءا ي‬
customer

Plan-Driven And Agile Development


 Plan-driven
• approach to software engineering is based around separate development
stages with the outputs to be produced at each of these stages planned in
advance.
• Iteration occurs within activities

waterfall model ‫دي زي ال‬

 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

 Working software comprehensive documentation


documentation ‫الكود عندهم اهم من ال‬
 Customer collaboration contract negotiation
 Responding to change following a plan.

The Principles Of Agile Methods


• Customer involvement.
• Incremental delivery.
• People not process.
• Embrace change.
• Maintain simplicity.

Agile Method Applicability


• A small or medium-sized product for sale. ‫البامج الصغبه او المتوسطه‬ ‫ن‬
‫بيستخدم يف ر‬
• Custom system development within an organization, where there is a clear
commitment from the customer to become involved in the development process.

‫علشان تطور السيستم الزم العميل يشارك ن يف التطوير ده عن طريقه انه يديك فيدباك‬

Agile Process Models

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‫انت لما بتعمل تحديث علي السيستم الزم تعمل‬
‫كله علشان تتأكد ان الجزء اللي ضفته مبوظش السيستم‬

User stories for requirements


▪ In Extreme Programming (XP):
 a customer or user is part of the XP team and is responsible for bringing system
requirements to the team for implementation. ‫الل شغال‬ ‫بتعتب اليوزر فرض من التيم ي‬
‫ر‬ ‫انت‬
‫عل المتطلبات‬ ‫بيقولك‬ ‫الل‬ ‫هو‬ ‫نه‬‫ال‬ ‫وع‬ ‫عل ر‬
‫المش‬
‫ي‬ ‫ي‬ ‫ي‬
 User requirements are expressed as user stories or scenarios.
‫بحاول اوصف متطلبات اليوزر ن يف شكل استوريز او سيناريو‬

|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.

What Is A User Story


 A brief, simple requirement statement from a user’s perspective.
‫ ن‬format ‫بتبق مكتوبه ب‬
‫معي زي كده‬ ‫ي‬

‫بتاع أي؟‬
‫ >> انا كيوزر بحدد الدور ي‬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

Invest In Good User Stories


 Independent: User Stories should be as independent as possible.

‫يبق ليهم نفس‬ ‫ن‬ ‫ن‬


‫ عندهم نفس الفكره ي‬2 customers ‫احنا قولنا بناخد المتطلبات يف شكل قصه مش الزم مثال عشان يف‬
.‫ مستقل‬story ‫ الزم مل عميل له‬story ‫ال‬

 Negotiable: a User Story is not a contract. It is not a detailed specification. It is a


reminder of features for the team to discuss and collaborate to clarify the details
near the time of development.

|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.

‫الل أصال بيكون الغرض‬ ‫ن‬


‫ وأي تعديل بتعمله يف الكود ي‬test‫من السوفت وير الزم طبعا تعملها‬Version‫انت أول ما تعمل أول‬
‫؟‬Test‫الل بتعمل‬‫هل انت كديفيلوبر ي‬. ‫الل ضفته او عدلته مبوظش الدنيا‬
‫بحيث تتأكد ان الجزء ي‬Test‫منه التطوير الزم تعمل‬
‫الل ممكن تظهر ن يف السيستم علشان كده بنقول ان اليوزر كمان‬
‫ي‬ ‫األخطاء‬ ‫االجابه أل الن مستحيل انك لوحدك تكتشف كل‬
Testing‫رئيش و فعال ن يف عملية‬
‫ي‬ ‫بيكون له دور‬

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.

‫مش من التيم فأنا مش هضطر اوقف‬‫ر‬


‫الل ممكن تحصل لو حد ي‬ ‫ بتقلل من المخاطر ي‬sharing knowledge ‫ال‬
‫ان أوقف السيستم‬ ‫ن‬ ‫مشكلة‬ ‫من‬ ‫نفش‬ ‫امنت‬ ‫أكون‬ ‫كده‬ ‫و‬ ‫يكمل‬ ‫واحد‬ ‫عل الجزء ده فممكن‬ ‫ن‬
‫ي‬ ‫ي‬ ‫كانوا شغالي ي‬2‫السيستم الن‬
.‫مش‬‫ر‬ ‫ن‬
‫علشان يف واحد من التيم ي‬
 It encourages refactoring as the whole team can benefit from improving the system
code.
‫المب ن‬
،‫مجي بيشتغلوا مع بعض‬ ‫ن‬
‫ لما ر‬.‫وتحسي الكود بشكل مستمر‬ ‫ تشجع عل إعادة هيكلة‬pair programing ‫ال‬
‫ن‬ ‫ن‬ .
‫هيبق من السهل اكتشاف الثغرات والمشكالت واقباح تحسينات للكود وده بيساهم يف تحسي جودة النظام بشكل‬ ‫ي‬
‫ن‬
.‫تحسي الكود واالستفادة من التغيبات‬ ‫ بحيث يشارك الجميع ن يف‬،‫عام‬

Agile Project Management


 The principal responsibility of software project managers is to manage the project so
that the software is delivered on time and within the planned budget for the project
 The standard approach to project management is plan- driven. Managers draw up a plan
for the project showing what should be delivered, when it should be delivered and who
will work on the development of the project deliverables.
‫ن‬
‫بمعن يكون‬ ‫للسيستم‬plan- driven‫و ده بيكون مسئول انه يعمل‬project manager‫بيكون عندنا شخص اسمه‬
‫ي‬
‫عل السيستم لحد ما‬ ‫ن‬
‫الل هتترصف ي‬
‫ للعميل بيكون بردوا مسئول عن تحديد المبانية ي‬Version‫حاطط ميعاد تسليم اول‬
‫يخلص و هكذا‬

 Agile project management requires a different approach, which is adapted to


incremental development.

agile ‫ مع ال‬project management ‫هنوضح ازاي بيحصل‬

|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

 The ‘Scrum master’ is a person who


• arranges daily meetings,
• tracks the backlog of work to be done,
• records decisions,
• measures progress against the backlog
• and communicates with customers and management outside of the team.
‫الل‬
‫الل بيتعمل كل يوم للتيم ي‬
‫بيكون مسئول عن تحديد ميعاد الميتنج ي‬Scrum master‫ال‬
‫الل‬ ‫ بيتابع السوفت وير و يشوف مدي التقدم ي‬. ‫عل السوفت وير‬
‫الل اتحقق و ايه ي‬ ‫شغال ي‬
‫الل التيم مفروض يعملها و يتواصل مع العمالء‬
‫ي‬ ‫ات‬‫ر‬‫ا‬‫ر‬ ‫الق‬ ‫بيحدد‬ backlog‫من‬ ‫مخلصش‬ ‫لسه‬
The Scrum Sprint Cycle
 Sprint are a development iteration. Sprints are usually 1-4 weeks long.
 The starting point for planning is the product backlog, which is the list of work to be
done on the project.
 The selection phase involves all of the project team who work with the customer to
select the features and functionality from the product backlog to be developed
during the sprint.
 At the end of the sprint, the work done is reviewed and presented to stakeholders.
The next sprint cycle then begins.

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.

Functional requirements Non-Functional Requirements


Specific services or functions the system must Define system properties and constraints(performance
provide. ,reliability ,security ,usability)
Software functionality that the developers must Process requirements may also be specified:
build into the product to enable users to accomplish  must run on certain platform or operating system
their tasks  must be written in a certain programming language.
 development method
Example: search the appointments lists , ID for users Non-functional requirements may be more critical than
functional requirements. If these are not met, the
system may be useless
‫ن‬
‫الل يوزر بيكون طالبها يف السيستم بتاعه‬ ‫ن‬
‫ ي‬function ‫بتحتوي ع ال‬ ‫يعن الزم يكون رسي ع و‬
‫هنا احنا بنحدده من الناحيه التقنيه شويه ي‬
‫الل هنكتبه بيها‬
‫الل هيشتغل عليه و ايه هيا اللغه ي‬
‫ ي‬OS‫نوع‬

|Pa ge7
Software

Metrics For Specifying Nonfunctional Requirements

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

Goals And Requirements


 Goal
• A general intention of the user such as ease of use.
requirement ‫الرئيش من ال‬
‫ي‬ ‫بوضح الهدف‬
 Verifiable non-functional requirement
• A statement using some measure that can be objectively tested.
‫ر‬
non- functional requirements ‫ لل‬measure ‫ دي بعبارات معينه ممكن من خاللها اعمل‬requirements ‫بشح ال‬

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‬‬

You might also like