Web___LEC2
خلينا نبدأ بسم الله المحاضرة التانيه .المحاضره التانيه بتتكلم عن اي؟. بتتكلم عن ان احنا كنا ف الاول بنقول عندنا اي ؟ الweb العادي اللي كان ف الاول خالص. وقولنا ساعتها دا  ف المحاضرة اللي فاتت قولنا كدا . قولنا ان كان عندنا الweb العادي اللي ف الاول خالص وقولنا ساعتها انه مكانش بيمشي ع standard معين والحجات دي كلها
بعد كده عرفنا ان الsystem عندنا بقى complex اكتر الweb بقى complex اكتر complicated فبقينا نمشي على.. يعني بقينا نعمل شوية gathering ل requirement نعمل plan ناخد بالنا ان كل قرار بناخده او كل decision بناخده بيبقى ليه consequence معينة تبعات معينة وحاجات فعملنا حاجة اسمها web engineer
فالـ web engineering مهم أن نفهم ثلاث حاجات عشان نعمله بيبقا فيه تلت حاجات مهم ان احنا نفهمهم ال agile frame work industry. ال agile احنا اكيد measure معاها شويه او احنا عارفين يعني اي .خلينا كدا نفتكر بس سريعا . هو ال agile مش زي ال waterfall .بعني ال waterfall كانت بتبدأ مثلا وانت وانت عندك plan
بتخلص اه ال stage او الfees بتاعت الplan تبدأ بعد كده تخش على الstage اللي بعدها اللي هي مثلا ال agile  تخلصها تخش على الstage اللي بعدها وهكذا. يعني ما بتخشش على الfees غير ما كنت مخلص لقبلها تماما. مش هترجع لها دا ال waterfall. تمام? ده لكن الagile انت ممكن ترجع عادي الموضوع Iterated ويمشي عادي وتبقى شوية مثلاهتلاقي في حاجة قدام اسمها incremental برضو
تخلص جزء مثلاً وتدي لـ customer و ال  customer يديك رأي وهاكذا بما ان انت تقدر ترجع لأي fees وحاجة زي كدا دا بيعمل ايه؟ دا بيعمل كذا حاجة بس خليها بس نقرأ الكلام المكتوب هنا في مبادر الصحة بيقوم الagile وweb engineering بcombine ما بين حاجتين فلوسف معينة هنشوفها و set of development guidelines
طب هي بت combine مبين الحاجتين دول . طب دا كلام جميل طب دي بت encourage اي؟ بت encourage عندي اكتر من حاجه customer ال customer هيكون راضي. Incremental delivery. تمام وهنعرف يعني اي Incremental delivery. بس.                   early Incremental delivery يعني. ماشي يبدأ ال customer كل شويه .مثلا في في version  او حاجه احنا خلصناها ماشي نبدأ نديها لل customer وال customer يدينا feedback
نشوف الchanges بتاعتهم ونشوف هنعمل ايه ونغيرها وهكذا. motivator الproject team . ا informal methods . و Minimal work productو. Overall development simplicity وهكذا. دي دي already حاجات احنا ممكن نكون عادي من غير منحفظها نستنتجها يعني ان انت already عادي بتعرف ان انت كده كده بتقدر ترجع لل Fees اللي فاتت قبل كده فانت عادي حقق الcast emertification هنعمل ايه.
incremental delivery and so on. ماشي؟ طيب، بس نبقى عارفين يعني فيها incremental delivery. طيب، بيقول لك برضو معلومة مهمة ان الagile process بتstress اكتر يعني ال delivery ان انا ادي كده output للuser واللuser يديه feedback وهكذا اكتر من ال analysis والdesine.
تمام ؟ بيبقا في طبعا continuous communication مبين ال developer وال customer . يعني انت تبقا عارف اااا . عارف اي ال changes اللي تغيرها واي ال requirement بتاعته وهكذا .agile process stresses delivery over analysis and design حلو . طب ليه ال agile اصلا ليه ال agile؟
لي نشتغل بالagile لإن الagile هي بsupport الchanges صح؟ أو بتدعم حتة الchanges يعني إنت لو غيرت حاجة فتمام إنت زي الفل مفيش مشكلة عادي نقدر ان احنا نغيرها حتى لو كان دا  في وقت متأخر طيب فطبيعة الbusiness ماشي ال business  strategies الرrows والحاجات دي إنها بتتغير بسرعة
ف دا بيsupport حته ال . انت already ال agile بتsupport ال changes وهي ال business وال strategies والحجات دي بتتغير بسرعه . طيب عندي بعد كدا ال management demand near مش عارف اي تمام . ااا لحظه واحده اممم ثواني
طيب بيقول برضو ان انت يعني المفروض انك الاداره او الmanagement يعني انك تقدر انك تحاول تدير الطلبات او التغيرات بيكون بشكل سريع ماشي او بشكل يعتبر فوري ماشي ده قلنا ان هي بsupport already الagile الاس...
ما بيكونوش فاهمين تبعات الـ... عندنا... هو بيعرض هنا للمشاكل ماشي وبيقولك إن الـ.stakeholder ما بيكونوش متخيلين أوي النتائج بتاعت التغييرات اللي هم بيقولوها وفي نفس الوقت هم بيكونوا عايزين يستلموا الـ.web مثلاً بتاعهم أو الweb site بتاعهم بشكل سريع
فدي حتت مهم يعني طيب فإيه اللي احنا قلناه قلنا أن الـ business strategy و الـ rules بchange بشكل سريع قلنا أن أن أنت بتبقى عايز تدير الـ demands والحاجات دي وترد عليها بشكل برضو يعتبر فوري و الـ stakeholder مش بيكون مدرك قوي لأن نتايج بداية التغيرات دي كبير حاجات
واخر واحدة برضو الagile approach  helps cope with this fluidity and un certainly الحاجات اللي انت مش متاكد اوي او كده فالاagile هتساعدك في حاجة زي كده انت لو مش متاكد انت تقدر تغير ومش يبقى في مشكلة لو غيرت فانت هنا عندك اربع حاجات اربع حاجات في ..
في الأول وفي الأخر هتلاقي نفسك بsupport الـ changes فأنت لو فكرت من بين حتة أن الagile بيsupport الـ changes وأنها تقدر تchange عادي في أي وقت فأنت ساعتها هتقدر تستنتج كل دا من غير ما تحفظه عندي بعد كده الunderlying agility principles  الagility principles  بيقولك إيه؟ الـ highest priority أن الـ user يكون راضي أو الـ customer يكون راضي
الـ customer يكون راضي ان انا ادي له early continuous delivery يعني ايه يعني incremental delivery كده كل شوية مثلاً نطلعه على الprototype ونقول له ها ايه رأيك احنا عملنا كذا كذا كذا ايه رأيك في الحاجات دي فيها يقول لي تمام كويس او لا انا عندي شوية تغير  تمام  welcome changing requirement تقدر تغير requirement حتى لو كان في late development
اه او في وقت متأخر يعني. تمام? طيب. اه.deliver working software increments frequently  طيب. يعني بيقول لك
 every few days to every few months او كده تبقى انك ايه اه تديincrements  او حاجات كده. طيب? يعني تبقى اه كل شوية بتطلع طيب prototype او حاجة. طيب. طيب. فهو برضو في الاول في الاخر. principles كلها مغتمدة على ايه? مغتمدة ان احنا عايزين نرضي ال user عن طريق انه يقد يغير ال requirement ف اي وقت.
بنطلع له Increments frequently كده وهكذا. نكمل برضو principles بيقولك ان ال business people and developers بيشتغلوا مع بعض تقريبا كل يوم. لازم يحصل communication ما بين أنا حاجز  ع business مثلا وعايز application معين وعايز website معين فبيبدأ ان انا بيروح لل developer و developer بيبدأ ان هو
يشتغل معايا يعني نبدأ ان احنا نcommunicate مع بعض. طيب. طيب build projects around a motivated people. اه give them the environment  انه هو يقدر ي support والكلام دا ويت trust . حاجات دي. ماشي. اه يقول لك the most efficient  and effective methods of conveying information to  مش عارف ايه. face to face conversationحاجة زي.
يبقى احنا خلصو ولا لأ؟ اوه خلصو. طيب خلينا كده ايه؟ نrecap بسرعة كده. الagility قلنا ان هي عبارة عن ايه او ليه الagility ؟ لان انت عندك الBusiness rules وstratiges بس تتغير بسرعة. طيب وايه كمان؟ وان الmanagement بيdemand بيdemand ايه؟ بيdemand ان انت عايز ترد بسرعة الحجات دي. ناشي? طيب الstakeholder اللي ما بيكونوش مدركين تبعات. القرارات اللي هما بيقولوها
ف كويس ان انت تاخد بالك من التغيرات دي من بدري. طيب الagile ان هو برضو بيدا ان هو يقوم cope with  ال uncertainty الحاجات اللي انت مش متأكد منها يعني او كدا. وقولنا ساعتها ان principles ان انت عايز ت satisfy الcustomer. عن طريق ايه? عن طريق انك تديني continuous delivery. ايه كمان? ان انت بتwelcome el change requirement حتى لو كانت مرحلة متأخرة.
و بتدي increments frequently كدا ماشي . لل customer يعني وال developer و ال business people بيدأو ان هما كدا ي communicate مع بعض بشكل يومي يعني  .و build projects around motivated people دا بي encourage وبيدي trust وهكذا .وface to face conversation. دا كلام لحد دلوقتي جميل . طب احنا كنا قولنا اي ف الاول؟ كنا قولنا ان احنا ف ال agile
احنا قولنا اننا عايزين نفهم تلت حجات ال agile عندنا بعد كدا disciplined framework وال industry quality .خلينا نفهم بقا اي هي ال web framework اصلا. ف ال web framework او ال framework هي set of activities كدا بتحصل for every web engineering project. شويه activities بتحصل ف كل project . دا اللي بتبدأ انك تعمله
طيب. آآ nature بتاعتها تتغير وفقا للproject دي. طيب. فالactions دي زي ايه? زي الwork tasks الwork products الquality assurance points  ال project milestones. يعني اكيد بدي هي ملخص الslide دي عايزة اقول لك ايه? عايزة اقول لك ان انت عندك حاجة اسمها web envirnment framework اه ال framework دي عباره عن ايه.activities بتعملها لكل project.
او كل ما تبدأ project. طيب ايه هي الactivities دي? في كل projects استنبه سابتة? لا هي بتتغير عشان تتوافق مع كل project. طيب ايه هي الactions اللي عندك? ال actions اللي عندك هي اكتر من حاجة. انت work task هل الtask بتبقى هي هي في كل ال web apps استحاله. طيب اه عندك work product .
ماشي ال quality assurance هل حته ال testing وانك تتأكدال application والحجات دي هل هي هتكون هي هي ف كل ال applications ؟لا هي تبقا اصلا من ضمن test principle ما علينا يعني بس هي بتبقي ان هي ليها علاقه ب context معينيعني ماشي؟ ف لو انا بعمل web app عن حاجه sensitive شويه ف انا هعمل testing اكتر وهكذا
تبقى مختلفة. هل عدد الmilestones لكل project هتبقى واحدة؟ اكيد لا. طيب الframework دي كلها هنقدر عليها نقول ان هي كلها تحت حاجة اسمها umbrella activities  ان هي بتبقى حاجات جوه حاجات كده. بالشكل umbrella شوية. ان انت عندك ديprocess framework ودي  ال umbrella activities دي جواها هنا framework activity1.
activity 2 لحد activity n طيب بيقولك ان ال process والactivities والactions بيقولك ان هي مثلا بالشكل ده هنبدأ نتكلم بقى عن كل واحدة بس هي انت لأول تcommunicate تcommunicate بقى مع مع الcustomer مع user مع اي حد يعني مع stakeholders بشكل عام يعني انت مش بcommunicate مع user
تبدأ تcommunicate مع الstakeholders هتشوف الثلاثة اللي فيهم دول دلوقتي. تبدأ تplan ماشي ايه هي الresks يا جماعة ه schedule  هنestimate الكلام ده. بعد كده عندنا الmodeling ماشي analysis والdesign . وconctruction تبدأ تعمل code وtest. والdeployment فال evaluate , delivery  . فاول حاجة ايه اول حاجة نبعملها بcommunicate. نتكلم على الstakeholders. ها يا جماعة عايزين نعمل application فلاني علاني هكذا. حضر الenduser وبالكلام ده. بعد كده بplan اشوف هاي يا جماعة.
الجزء دا هيبقا مهم اكتر  الحجات دي ابدأ ا estimate حجات وهكذا . ال modeling ابدأ اعمل code بعد كدا اعمل test . ال analysis تبدأ تعمل analysis لل design بتاعك . construction تبدأ تعمل ال code وال test . وال deployment خلاص بقا احنا هن deliver لل customer وال customer يبدأ ان هو اي
يقول تمام والا عايز changes معين. طيب عندنا ال communication بيقول لك هنتكلم بقى على كل واحدة منهم بيقول لك ان انت لازم يكون في heavy interaction and innovation مع ال customer او اي stakeholder مش ليه عشان نgather el requirement والدنيا تكون مظبوطة ايه. طيب. ال planning  عادي تبدأ تعمل incremental plane كده.
في الincrement الأولى هنسلمه كذا وفي الincrement  الثانية هنسلمه  كذا الmodellingان انت تبدأ  تcreate شكل تعمل design  او هكذا  علشان تساعد الdeveloper والcustomer أن هما يفهموا الweb app  أكثر لو اديتك مثلا use case مثلاً وبدأت اشرح لل developer طبعا ال developer هيكون فاهمها هيكون فاهم ال use case وال application يفهم طبيعه ال application اكتر
الـ customer هيفهم برضو الدنيا ماشية ازاي. فـ الmodeling حتة الـ design أو الmodels دي ان  انا a create models ده  بيساعد الـ developer و الـ customer انهم يفهموا اكتر. طيب الـ construction بـ combine ما بين الـ generation باك الـ HTML, XML, Java و كلام ده هتعمل code و deployment هننده تدـ deliver كل increment لـ customer بتاعك.
دي كده باختصار هي الـ Web Process اللي انت تمشي فيها مشي بكل activity طيب طيب فخلونا نكمل عندنا هقولنا في ساعتها بقى بيتكلم بقى عن الـ Web Process بيكمل دقيقة كاملة بيقولنا ان هي لازم تكون Agile Adaptable
وبرضو لازم تكونincremental . احنا عرفنا ليه agile. ماشي? وعرفنا ان هي بsupport changes  وحاجات زي كده وعرفنا ان الbusiness البيتغير و principles بتاعت ال agile وكل الكلام ده. وadabtable وincremental . طب ليه incremental? incremental عشانال requirements  ان بتبدأ نحصلها evolves .
ماشي. برضو في الاول والاخر عشان ال changes يعني. ماشي when el changes will occur frequently. بس بدأت تتغير بشكلfrequently  يعني. ماشي. طيب وال time lines are short . طيب. اه. طيب. بعد كده increment delivery allow you to manage this change فال incremental .
مع الagile مع الحاجات دي بتقدر أنك تmanage حتة  ال changes او التغيرات فإيه اللي بيحصل في الـ Incremental Deliveryيعني الـ Incremental Delivery  أن أنت تبدأ يبقى عندك process زي الكلام أو أنت مثلاً دلوقتي عندك piece of... يعني مش piece of code يعني ولكن جزء من الـ project جزء من الـ project ده بتقدر أن يتطبع عليه الحاجات الـ plan, model, construction, deployment, communication الأول و هكذا يعني
تبدأ تعمل الcycle دي كلها تطلعincrement  توديها للcustomer. الcustomer يديك evaluationمعينه. يعمل. في الdeployment يديك evaluation معينه. اه التغيرات دي تمام او التغيرات دي مش عاجباني. فالتغيرات مش عاجباني. فهكزا فنغيرها. بعدين نخش علىincrement 2  increment 3 increment 4. and so on. ماشي? فانت بrepeat ال development cycle في كل
خلينا بقا نتكلم عن ال .. . احنا قولنا ال web process قولنا ان احنا عندنا communication, planning و modeling, instructions, deployment  . وقولنا ال communication انا احنا بيبقا في تواصل مبينا ومبين ال stakeholder وال planning ان انت بتبدأ تخطط بقا وتشوف اي هي alerts analysis
والmodeling تعمل design عشان تساعد الcustomer او الuser والdeployment والconstruction تبدأ تcode والtest والdeployment تطلع increment ف احنا عايزين نتكلم عن الcommunication  بشكل اوسع بقى طيب الcommunication بيساعدك ان انت  تunderstand الproblem قبل ما تبدأ انك تحلها يعني ماشي تعرف انا عايز application طب انت عايز application  عن ايه؟ اه عايز application اي E-commerce application طيب الاي  E-commerce application عايز يبقى في ايه؟
عايز products مثلا كذا كذا كذا .طيب عايز limits معينه عايز event هتبدأ انك تتكلم مع ال stakeholder عموما وتعرف اي هي ال requirement واي هيالمشكله قبل م تبدأ تحلها. طيب ف علشان تعمل دا لازم محتاج تعرف شويه حجات . ال formulate وتقريبا ال elicitate, negotiate
و negotiate و negotiate دي اخر حاجة هتبقى في المحاضرا يعني طيب اول حاجة بس قبل ما يبدأ بيقولك ليه اصلاً محتاجة الcommunicate بيقولك ان ال stakeholder كان بيdefine اي واحد بيعمل او بياخد بينتفع من ال application بشكل direct او indirect طيب و بيقولك ال way from the system which is being developed
طيب دا كلام جميل كله تمام  طيب in general ال stakeholder are drawn طبعا ال stakeholder ممكن بكونوا ال business manager, product manager, marketing people, internat او external customers,enduser الكلام دا كله . طيب الformulation الformulation دا اللي هو عباره عن اي. هو احنا اه احنا المفروض نتواصل علشان نفهم المشكله وقولنا مين هما ال stakeholder
ينتفع من الapplication بتاعي بشكل direct او indirect طيب ايه هو الformulation بقى الformulation  هو focus on defining the project needs and scope  انا دلوقتي وانا لسه بcommunicate واعرف ايه هي المشكلة يا جماعة فمحتاج ايه محتاجها formulate يعني ايه formulate يعني اعرف ايه هوال project needs ايه هي ال scope بتاعي ها هبقى
طيب دا كلام جميل كله تمام  طيب in general ال stakeholder are drawn طبعا ال stakeholder ممكن بكونوا ال business manager, product manager, marketing people, internat او external customers,enduser الكلام دا كله . طيب الformulation الformulation دا اللي هو عباره عن اي. هو احنا اه احنا المفروض نتواصل علشان نفهم المشكله وقولنا مين هما ال stakeholder
تديـfine الـ scope بتاعك وهكذا. فأنت في الأول وفي الآخر أنت بتحط كدا زي outlines للبروجيكت. formulation. ماشي؟ فـ formulation بتبدأ تـidentify إيه هي الـ business needs يا جماعة؟ الـ scope بتاعي إيه؟ إيه هو الـ objective؟ إيه هي الـ major features؟ features أساسية؟ كل stakeholder يقول إيه هو الـ objective بتاه والـ goals وإيه.
طيب، فإيه الـ questions اللي أنت مفروض تسألها؟ تسألهم إيه هو يا جماعة الـ business needs بتاعتكم؟ إيه هو الـ objective؟ ده كان متكرر يعني. ماشي؟ مين اللي هيستخدم الأب؟ ما أنا لازم أكون عارفة مين اللي هيستخدم الأب لأن كل stakeholder ليه different view من الويب أب. أنا كمثلاً لو أنا أدمن فأنا لا أنا عايزة أرفع الـ products عايزة أعمل مش عارف إيه عايزة
user، لأ ده user عايز يشتري حاجات بس. حد تاني مثلاً اللي أنا مثلاً اللي هيشتري مني الsystemده عايز ينتفع بشكل ما. ماشي؟ فكل stakeholder ليه view وعنده risks معينة بتبقى حواليه أو حول الـ development بتاعه. فالـ development effort بيختلف يعني. تمام؟
بيقولك الـ information for multiple viewpoint is collected. تبدأ تجمع من كل stakeholder كدا إيه هو الـ objective بتاعه؟ إيه هي الـ goal؟ إيه هي الـ view بتاعته؟ كدا تشوف الـ viewpoint بتاعته عشان تقدر إنك تشوف إيه الـ risks بتاعتك. إيه الـ requirement بتاعتك. إيه الحاجات اللي هيحصل فيها inconsiـ أو هتبقى inconsistent مع مثلاً goals بتاعت stakeholder تاني وهكذا
تمام؟ فأنت بتـcategorize الـ stakeholders based على الـ information بتاعتك دي. بتـcategorize الحاجات دي وتبدأ تشوف أنت هتشتغل عليها إزاي وتبدأ تشوف إيه هي الـ conflict اللي بيحصل ما بين الحاجات. طيب. الـ CPI ده ده كان جزء كدا تبع الـ case study. ماشي؟ فبيقولك it's time to meet the CPI corporation stakeholder and begin the communication activity. ابدأ بقى الحاجة اللي إحنا اتكلمنا عنها قبل كدا اللي هي ال
الـ case study اللي كنا اتكلمنا عنها في المحاضرة اللي فاتت يعني. ماشي؟ فكل اللي أنت عايز تعمله إنك تبدأ إنك تشوف عايز تcommunicate معاهم عشان تشوف الـ stakeholders دول عايزين إيه. تمام؟ طيب، خلينا كدا نشوف إيه اللي هيحصل. إيه أول أسئلة إحنا قلنا إننا هنسألها؟ إحنا قلنا إيه يا جماعة الـ business needs بتاعتكم؟
فأنت بتبدأ تسأل الـ stakeholder إيه يا جماعة الـ business need؟ فـ after discussion بقى والـ group عملنا جروب كدا أو meeting يعني بدأوا إنهم عملوا agree إن الـ customer إن الـ business need أو الـ main motivation بتاعه إن الـ customer يـallow إنه يـevaluate يـconfigure purchase الـ security system
system product and monitoring services. ماشي؟ هما اتفقوا على هدف معين. بغض النظر إيه الهدف يعني. ماشي؟ طيب. أو يعني اتفقوا على شوية features معينة أو شوية needs معينة. طيب إيه هو الـ objective؟ فده كان تاني سؤال نسأله، فالـ stakeholders بدأوا إنهم يجاوبوا على السؤال. طيب، فقالوا إيه ساعتها؟ we allow us to sell directly to the consumer إننا نوصل بشكل directly للكونسيومر ونبيع لهم
مش عارف هنعمل إيه، it will also increase the sales by projected 25%. خلونا كل واحد يقول هو عايز إيه. ماشي؟ طيب يبقى هو بدأوا إنهم يقولوا الـ objectives. طيب وسألنا بعد كده طيب مين اللي هيستخدم السيستم يا جماعة؟ ماشي؟ فلازم نعرف مين هما الـ audience بتوعي أو مين هو الشخص اللي هيستخدم السيستم
سيستم. فبدأوا يقولوا مثلاً ممكن يكونوا home owners ناس عادي عندهم بيت أو owners بتوع small system مثلاً أو حاجة كدا. ماشي؟ أو small business يعني. طيب. فإحنا بدأنا إننا نسأل، إحنا لحد دلوقتي سألنا تلت أسئلة. قلنا إيه هو الـ main objective بتاعنا أو إيه هو الـ objective وسألنا إيه هي الـ business needs وسألنا كمان على سؤال مين اللي هيستخدم السيستم؟
تاع الـ system.. طيب.. عندنا بعد كده this answer employ a set of specific goals.. تبدأ تشوف بعد كده يعني.. تقدر تقسم الـ goals بتاعتك لحاجتين: informational goals و applicative goals.. طيب إيه الـ informational goals دي؟ indicate intention to provide specific content أو information للـ end user.
للـ user.. طيب الـ applicative goal هي عبارة عن إيه؟ الـ ability to perform some tasks.. أنت هنا بتقول إيه هي الـ.. يعني إزاي أو indicate كده إيه هي الحاجات اللي هتعملها provide للـ content اللي هتعملها provide أو الـ information اللي هتعملها provide للـ end user.. لكن الـ applicative goal.. الـ ability to perform tasks
تمام.. طيب.. فخلينا كده نشوف إيه الـ context بتاع الـ case study اللي عندنا.. عايزين نعرف إيه هي الـ informational goal.. فالـ informational goal إن أنا allow الـ user إنه يبدأ يشوف مش عارف CUI cooperation.. الـ people بتوعها.. يبدأ يشوف الـ products.. الكلام ده
الـ user يبدأ يشوف details عن كل product تمام؟ الـ technical description والـ installation والحاجات دي.. دي display كذا.. كلها معلومات بتظهر لليوزر.. طيب خلينا نشوف إيه هي الـ applicative goal.. طيب الـ applicative goal بيقولك to provide tool that will enable user إنه يعمل layout space كده معينة.
شان تحميه.. أو مثلاً to make customized recommendation about security ماشي؟ أو مثلاً بيقولك to integrate.. حاجة في الأول وفي الآخر يعني بتكلم عن ability.. لكن هنا لو تلاحظوا أنا هنا بعرض حاجات عن الuser بقول إيه هو الـ informational اللي هتظهر للuser
ماشي.. تمام.. طيب خلينا نكمل.. الـ formulation.. الـ formulation بيقولك بعد كده خلاص once إن أنت.. بيبدأ يكمل يعني في الـ formulation.. once إن أنت عرفت إيه هي الـ objective.. الـ goals.. الكلام ده كله
تبدأ تشوف الـ scope بتاعك ماشي.. activity بـ focus على الـ statement of scope.. فـ in many cases الـ informational والـ applicative goals provide sufficient information to identify the scope.. يعني أنت خلاص الـ goals بتاعتك اللي أنت جمعتها بتساعدك إنك تعرف أنت within أنهي scope.
الـ scope ماشي؟ طيب.. إحنا كنا اتكلمنا في الأول إن إحنا عندنا تلات حاجات صح؟ تمام.. قلنا التلات حاجات في الـ communication.. الحاجة الأولى قلنا اللي هي الـ formulation والحاجة التانية كانت الـ elicitation والحاجة التالتة كانت الـ negotiate.. فإحنا هنكمل بقى عن الـ elicitation.. إحنا كده اتكلمنا عن الـ formulation
الـ elicitation.. الـ elicitation هي عبارة عن إيه؟ بيقولك the intent is to gather detailed requirement إنك تبدأ تجمع requirement بشكل details بقى.. مش بقولك إيه يا جماعة الـ main objective.. إيه هي الـ business need.. إيه هي كانت مش فاكر كانت إيه.. آه مين اللي هيستخدم الـ.. أنا عايزة بقى بشكل كده details كده requirement أجمعها
أبدأ أشوف.. collaborate كده مع الـ stakeholders وأشوف هو يا جماعة بشكل detailed كده إيه الـ requirements بتاعتكم.. طيب.. فممكن أعمل meeting ماشي من خلاله أشوف الموضوع ده.. agenda ماشي ممكن أعمل agenda كده مثلاً.. وطبعاً بيبقى فيه facilitator طبعاً بـ manage الـ meeting يعني
طيب الـ facilitator ممكن يكون customer، ممكن يكون web engineer، ممكن يكون بره التلاتة دول، وهو بيـ control يعني عموماً الـ meeting. طيب definition mechanism، ماشي؟ تبدأ تشوف كدا worksheets كدا أو flip charts أو حاجات زي كدا، ممكن تساعد. فإنت يعني عموماً في الأول وفي الآخر إنت بتـ gather الـ requirement منهم بأي طريقة بقى، ماشي؟
دي برضه بيتكلم بقى على الـ elicitation جوا الـ case study، فبيقولك الـ web app description is assembled using this information already delivered from formulation. إنت already بتستخدم، إنت أنا عايز أعرف بقى الـ requirement in details، صح؟ تمام، فأنا بعرف الـ requirement in details منين؟ من الـ formulation
يعني باخد الـ requirement أو الـ information بتاعة إن أنا عملتها من الـ formulation، وأبدأ إن أنا بقى بشكل فيه details أكتر أبدأ إن أنا أفردها ونبدأ نتكلم عنها أكتر، ماشي؟ فإنت في الـ formulation بتاخد الـ requirement كدا as outline كدا، اللي هو requirement بس، أنا قولت أنا عايز أعمل كذا بس مقولتش description عنه. فتبدأ إن إحنا نشوف الـ description والحاجات دي في الـ elicitation
إحنا مش هنقرأ كل ده أكيد يعني، بس إنت بتبدأ تتكلم عن الحاجة بشكل إيه؟ يعني details أكتر يعني. ماشي؟ فإنت تقدر تقول مثلاً مش عارفة اليوزر ممكن إنه يـ sign up for monitoring كذا كذا كذا، contract customer can control كذا كذا كذا، تبدأ تتكلم بشكل فيه details أكتر يعني. طيب
وده برضه يعني ده إيه؟ ده كدا بيتكلم description يعني وبيوضح الـ statement of scope يعني. طيب. برضه بيتكلم عن الـ content and functionality. each stakeholder يقدر إنه يـ prepare كدا لستة of content objects and function.
والـ functions، كل stakeholder يقول أنا عايز، يبدأ إنه يعمل لستة يقول إيه هو الـ objects اللي هو عايزها، إيه هي الـ function اللي هو عايزها، يبدأ يتكلم عنها. طيب. once إن الـ meeting بدأ، في large sheet كدا paper تبدأ إن هي تتحط على الحيطة، ماشي؟ وبعد كدا تبدأ إنك تشوف هه يا جماعة إحنا نـ write على الـ whiteboard، نبدأ نتناقش والكلام ده كله
لحظة، طيب، خلينا نكمل. من ضمن الحاجات المهمة، كنا بنقول ساعتها الجزء ده يعني، كنا بنقول إن هنا كل واحد أو كل stakeholder بيبدأ إنه يكتب أو يحضر لستة كدا من الـ content objects أو الـ functions اللي هو عايزها يعني في الـ web app بتاعته أو في الـ web app يعني
ماشي؟ طيب. ممكن اللستة دي ممكن تكون في large display sheet، مش عارفة دي ده شكل تاني برضه ورقة كدا محطوطة على الحيطة، أو في whiteboard أو ممكن على حاجة إلكترونية كدا وتكون متوزعة already، أو في chat room ما بينا أو هكذا. طيب
قبل ما يحصل أصلاً gather للـ requirement meeting and make the list of content. طيب. بيقولك part of the environment that surrounded the system يشوف إيه هي الحاجات دي، produced by the system and used by the system، ماشي؟
قبل ما يحصل أصلاً gather للـ requirement meeting and make the list of content. طيب. بيقولك part of the environment that surrounded the system يشوف إيه هي الحاجات دي، produced by the system and used by the system، ماشي؟
طيب، بيبدأ إنه يقولك إنه مثلاً اللستة دي يقدر إنه بعد كدا يـ interact with the content object يبدأ يتناقش فيها وهكذا. طيب، اتكلم عن الـ business rules، تتكلم عن الـ performance criteria والكلام ده
فهو ملخص كل الـ slides دي، إن إنت في الأول وفي الآخر كل stakeholder بيبدأ إنه يكتب لستة بالـ functions اللي هو عايزها مثلاً أو من الحاجة from point of view بتاعته، ماشي؟ وتكون بشكل in details أكتر
وطبعاً الinformation والحاجات دي إحنا بنكون واخدينها already من، أو بنكون واخدين information من الـ formulation meetings أصلاً يعني. طيب، ماشي، خلينا بقى نشوف آه، خلينا نشوف الشكل ده. بيقولك إن إنت عندك مثلاً في الـ case study بتاعتنا اللي هي safehomeassured.com دي.
ده مثلاً each person بيبدأ إنه يكتب اللستة بتاعته، فده حد كتب عادي اللستة بتاعته ماشي، order form, order entry database، حاجات زي كدا. بيقولك each of content object represent content requirement and also implies set of function required to occur and manipulate or produce the content
object، تمام، ده كلام جميل. طيب، بيقولك الـ elicitation task، الـ elicitation task بشكل عام بقى إن إنت تعمل إيه؟ بتـ define الـ user category. طيب إحنا مجبناش سيرة الuser خالص، طيب إنت مش إحنا قلنا إن كل stakeholder بيبدأ إنه يكتب لستة بشوية objects وحاجات زي كدا؟ تمام، فإنت من خلال ده بتقدر تعرف إيه هي الـ categories بتاعة الusers بتوعك
description عن كل category، تبدأ تعرف الـ content أو الـ functionality بتاعة كل واحد فيهم، إيه هي الـ constraints اللي عندك، وبنبدأ نعرف بقى، إحنا قلنا إن إحنا بنكتب جزء برضه الـ performance والحاجات دي، فبتدأ تعرف إيه هي الحاجات الـ ممكن تكون constraints عندك، تمام؟ write the user scenarios، فنعرف يعني إيه user scenario إنت يعني ممكن يكون عندك فكرة عنها، user scenario عموماً يعني إيه هنشوفها.
طيب، بيقول بعد كدا what is the user overall objective؟ الـ user description ده هو عبارة عن إيه؟ أو الديسكريبشن بتاع كل يوزر؟ إحنا قلنا إن إحنا كل يوزر category بيبقى عندنا description عنه، فإنت بتبدأ تشوف إيه هي الـ user overall objective بتاعه، الـ background بتاعته
أو الـ related يعني بالـ functionality يعني اللي موجودة في الـ web app. تمام. اليوزر هيوصل للـ web app إزاي؟ وهكذا. ماشي؟ و generic بقى characteristics يعني، does the user like and dislike الحاجات اللي حبها وما حبهاش يعني. طيب، طب إيه استخدام الـ scenario؟ بستخدم الـ scenarios دي في إيه؟
إحنا عرفنا خلاص إن أنا بيبقى عندي user description والـ user description ده بيبقى عندي لكل category بتاعة userمعين ببدأ إن أنا أشوف إيه هو الـ objective بتاعه، الـ background بتاعة كل واحد مثلاً related بالـ functionality وهكذا. طيب، وإزاي أنا هوصل للـ application ده وشوية characteristics كدا إيه اللي عاجب الuser وإيه
طيب، بيقولي بعد كدا ليه بنستخدم الـ scenarios؟ أو إيه هي الاستخدام بتاع الـ scenarios أصلاً؟ فبيقول بعد كدا إن استخدام الـ scenarios دي إن إنت تـ identify الـ content object، بعرف إيه هو الـ objects الموجودة، الـ functions، الـ constraints، الحاجات دي أوريدي إحنا قلناها فوق، يعني for stakeholder asked to play the role of user ماشي؟ from a specific user category and develop usage scenario for one or more
فإنت بتبدأ تعرف إيه هي الـ Objects أو الـ Functions اللي بتكون موجودة، الكلام بيتعاد يعني، والـ Constraints وكل الكلام دا. طيب، بيقول لك كل سيناريو One or two narrative paragraphs that describe how end user apply to create and content object to interact والكلام دا، برضه كلام أوريدي..
دا شكل الـ سيناريو، ماشي؟ بيقول في Case usage scenarios، بيقول لك إن إنت عندك هنا مثلاً اسم الـ Use case بتاعتك أو الـ Use case ومين الـ Actor وبتبدأ إننا نحكي قصة بقى.. أنا دلوقتي مش عارف في Remote في Remote location أو لو أنا في Remote location وعايز أستخدم من الـ PC أبدأ إني ألوج على الـ Website..
وأدخل الـ ID والحاجات دي ويكون.. ولازم تكون يعني Validate ولو هي.. Once إنه حصل له Validation خلاص وإنه فعلاً كدا أو إنه فعلاً يعني عمل Login قبل كدا، بـ Access الـ Functionality بتاعتها وإنه يقدر إنه يـ Access specific camera وهكذا. ماشي؟ فدا كدا سيناريو بتكلم من..
Home owner، من Actor معين، من Category معينة من الـ Stakeholder اللي هو مين؟ اللي هو الـ Home owner. تمام؟ فكل واحد، كل.. سوري، يعني نوع من الـ Stakeholder أو Category من الـ Stakeholder، كل User بيبدأ إنه يـ Identify الـ list of content، إيه الـ Functions اللي هو عايزها، الـ Constraints اللي هتكون موجودة وهكذا
Capturing interactions، الـ Use cases. بيقول لك Use cases describe how a specific user category called an actor will interact with the web app. فبيقول لك الـ Use cases are developed iteratively، أكيد بشكل Iterative إنها ممكن تتغير، Only those use cases necessary for the increment to be built.
Built during الـ إيه؟ الـ Communication. طيب، يبقى هي الـ Build Iteratively والـ Use cases اللي هي Necessary بتبدأ إنها تتعمل لها Develop في الأول، في الـ Incremental في الأول مثلاً، وكل دا بنبدأ إننا نبنيها أثناء مرحلة الـ Communication والحاجات دي. طيب
الـ Communication اللي في كل Increment، يعني دا بيبقى في الـ Communication for each increment. طيب، بيقول لك إن الـ Use cases بتبدأ إنها تديك Details necessary for effective planning، كمان الـ Modeling activities بتساعدك إنك تفهم الـ User بـ perceive الـ Interaction بتاعه إزاي وهكذا
لأن أوريدي الـ User هو اللي بيكون يعتبر كاتب حاجة زي كدا أو مديني حاجة تخليني أعرف أكتب حاجة زي كدا وهكذا يعني. وبتديني Guidance برضه إن أنا إزاي هـ Test الـ Web app بتاعي. طيب فدي كدا شكل مثلاً الـ Use case، لو لاحظنا الـ Use case هنا فيها الـ Actions مترتبة يعني وبرضه بتكلم على Actor
فبيقول لك إن الـ Use cases to increments، بيقول لك Stack of cards، بنبدأ بيبقى بنحط كروت كدا فيها السيناريوهات، ماشي؟ أو Usage scenario أو Use cases معينة بالـ Card. والـ User ببدأ إني أعرضها للـ User والـ User إنه بيعمل لها Shuffle وبيبدأ الـ User يختار إيه هي الـ.
الـ Cards يعني، أوزع الـ.. بعد ما بعمل Shuffle يعني للكروت اللي فيها Use cases معينة وحاجات معينة، أبدأ بعد كدا إني أعمل لها Shuffle كدا ألخبطهم في بعض وأوزعهم على الـ Stakeholder وأسألهم يا جماعة رتبوا الحاجات دي يعني حسب أولوية أو حسب اللي أنتم عايزينه. فمثلاً الـ Card رقم واحد
آه، وبيبدأ برضه إنه يديلها حاجة اسمها Effort من 1 لـ 4، اللي هو يعني إيه هي الـ Severity بتاعتها أو حاجة زي كدا. ماشي؟ من High لـ Low يعني، أو من Low لـ High. طيب، فهو بيقول دا الـ Effort Indicator بتاعها ومن 1، 2، 3، 4 ودي الـ Card name، بيبدأوا إنهم يرتبوها وهكذا
طيب، فدول الـ Increments اللي عندنا، ماشي؟ إن إحنا في الـ Increment الأولى Use cases reflected in card 1، في الـ Increment التانية هنعمل 2 و3 و4 الـ Cards 2، 3، 4 وهكذا. طيب، مين اللي كان بيحدد الأولوية بتاعة الـ Card؟ الـ Stakeholders. طيب، هما اللي رتبوا الـ Cards دي يعني. طيب، الـ Internal عندي بعد كدا الـ Constraints إحنا قلنا في الـ Elicitation إحنا.
اتكلمنا إن إحنا عايزين نعرف الـ Requirement in details، وقلت ساعتها إن إحنا بنـ Deliver الحاجات دي من Information أخدناها من الـ Formulation وقلت برضه عشان بس الناس ما تنساش يعني، وقلت برضه إن إحنا بنعرف كل طبعاً Stakeholder بيعمل لستة كدا فيها إيه الحاجات Goals وObjectives وحاجات زي كدا
طيب، وبتبقى الحاجات دي بتوضح الـ Constraints، فأنا عندي الـ Constraints أنواع، Constraints ممكن تكون Internal constraint حاجات ليها علاقة بالـ Technical Environment أو Project Environment، فالـ Technical Environments مثلاً Database protocols معينة أنا ماشية عليها، أو Browsers معينة بستخدمها، أو كلام دا Operating system characteristics أو Client-server issues معينة وهكذا
Project Environment حاجة على مستوى الـ Project بقى، ماشي؟ إن الـ Project دا لازم أستخدم فيه Tools معينة وهكذا أو Standards معينة. طيب، الـ External constraint أي حاجة External تعرفوا إن هي ليها علاقة بالـ Business، فهي ليها علاقة بالـ Business rule، الـ Privacy issues الحاجات دي. تمام؟ Legal restriction حاجات ليها علاقة بالـ Government، حاجات بره الـ Organization بتاعتي
لكن هنا الـ Internal حاجات جوه الـ Organization بتاعتك زي الـ Technical حاجات Technical Environment ليها علاقة بالـ Technical part اللي أنا شغال فيها كلها، وحاجات ليها علاقة بالـ Project يعني. ماشي؟ طيب، بعد كدا آخر حاجة بقى في الـ Communication، إحنا قلنا الـ Communication كان Formulation، وElicitation، والـ Negotiation. الـ Negotiation هو بعد كدا خلاص الـ Requirement are defined وخلاص وعملنا Process طويلة عشان نطلع الـ Requirement. طيب
طيب، فبس بيقول في الحقيقة إن الـ Requirement دي بتبدأ إنها يعني بتتغير غالباً، Within حاجات معينة يعني Within context of real world constraints، الـ Cost، الـ Time والحاجات دي. فإنت بتبدأ تـ Negotiate مع الـ Stakeholders وتحط Establish كدا Requirement Increment.
أو لكل Increment يعني، بحيث إن إنت تشوف إيه هي الـ Needs بتاعة الـ Stakeholder وتـ Reflect الحاجات دي. طيب، فبيقول لك في الـ Negotiation محتاج إن إنت تكون تـ Recognize وتدرك إن هي مش.. مش مسابقة، ماشي؟ مش Competition، مش مسابقة ما بين يعني مين هيفوز ومين هيخسر وهكذا
Map out a strategy، حط خطة. Listen actively، اسمع كويس، ماشي؟ Don't work on formulating your response while the other party is talking، يعني ما تقعدش تكتب أو ما تقعدش تـ Formulate الـ Response بتاعك وإنت أوريدي في ناس تانية بتتكلم، لأ اسمع الأول وخد Knowledge منهم وهكذا.
Focus on other.. يعني الناس التانية الـ Interests بتاعتهم، تشوف برضه ركز عليهم، ما تاخدش الموضوع بشكل شخصي، ماشي؟ خليك Creative وخليك دايماً إيه يعني مستعد إنك تلتزم يعني. بس كدا ودي كانت المحاضرة التانية.