صفحة 1 من 3 123 الأخيرةالأخيرة
النتائج 1 إلى 15 من 34

الموضوع: دائرتين و ثلاثة خطوط لجمع طلبات العميل - Use Cases

  1. دائرتين و ثلاثة خطوط لجمع متطلبات العميل - Use Cases



    قرأت في مكان ما أن اثنين من كل ثلاثة مشاريع برمجية يكون مصيرها الفشل، إما لأنها لم تنجز في الوقت المحدد، أو لأنها تتطلب مصاريف أكثر من المتوقع، و الغالب لأنها لاتوافق متطلبات العميل، اما عني انا شخصياً فأستطيع أن أقول أن ثلاثة من كل ثلاثة مشاريع تأتيني كانت تفشل و كنت دائماً ما أرى تلك النظرة المؤلمة على وجه العميل، و التي أفهم منها أننا سنبدأ في حلقات لا تنتهي من التعديلات، بالرغم من أني متأكد من أن ما اتفقنا عليه مطابق تماماً لما قدمته، إذاً أين المشكلة ؟! ... بعد فترة طويلة من المعاناة عرفت أن هنالك مجال بحث يسمى "هندسة المتطلبات" و بعضهم يسميه "تحليل المتطلبات"، الموضوع واسع و متشعب، اممممممم لكن دعونا نأخذ شيء عملي بسيط يكون كثقافة عامة لمن لم يعجبه، و كمقدمة لمن أراد التوسع فيما بعد ... إذاً لنبدأ .. ماهو تعريف "متطلبات العميل"

    متطلبات العميل
    إذا كنا نتحدث عن مشروع برمجي فمصطلح “متطلبات العميل” يقصد به الوظائف التي يريدها العميل في البرنامج أو في موقع الإنترنت، و الحقيقة أن أكثر المشاكل التي تحدث بين المبرمجين و العملاء يكون مصدرها سوء فهم بينهم حول هذه النقطة تحديداً، فقد يطلب العميل شيء ولا ينفذه المبرمج، أو قد يجد المبرمج طلب من العميل لم يتم ذكره في الإتفاق (مع العلم أن هنالك أساليب حديثه لتجاوز مشكلة تغيير العميل لمتطلباته بعد إبرام العقد لكن هذا ليس له علاقة بموضوعنا هذا، بتفلسف عليكم :shy: ).

    الـ Use Cases
    هي طريقة للتعبيرعن “متطلبات العميل” بأسلوب بسيط يمكن أن يفهمه حتى غير التقنين، لنأخذ مثال يوضح كيفية تحويل “المتطلبات” إلى “Use Cases”.

    مثال افتراضي
    أحد العملاء طلب مني تطوير موقع على الإنترنت، يمكن للزائر من خلاله أن يستعرض المنتجات، وكذلك يمكنه أن يقوم بمراسلة مشرف الموقع. أما مشرف الموقع فيمكنه إضافة و حذف و تعديل المنتجات المعروضة في الموقع، كما يمكنه أن يقوم بتحميل ملفات إلى الموقع، إضافةً إلى قدرته على تصفح الرسائل المرسلة من قبل الزوار.

    تحليل المثال
    في المثال السابق يظهر لدينا نوعين من المستخدمين، “زائر” و “مشرف” (في الـ Use Cases نطلق على المستخدمين مسمى : Actors)، “الزائر” يمكنه القيام بالوظائف التاليه :
    *استعراض المنتجات.
    *مراسلة مشرف الموقع.

    أما “المشرف” فيمكنه القيام بما يلي :
    *إضافة منتج .
    *حذف منتج .
    *تعديل منتج .
    *تحميل ملفات إلى الموقع.
    *تصفح رسائل الزوار.

    لتبدأ حصة الرسم
    صدقني.. بالرغم من أن الـ “Use Cases” تعتبر أهم طرق التعبير عن المتطلبات إلا أن أساسياتها بغاية البساطة، انظر إلى الرسمة التالية :

    فهمتها وهي طايرة صح ؟! بهذا الشكل نكون قد حولنا "متطلبات العميل" إلى "Use Cases" ... عن طريق تمثيل "المستخدمين-Actors" بشكل الإنسان المجرد :

    و أما الوظائف فقد مثلناها في الرسم عن طريق الشكل البيضاوي ثم وصلناها بخط مع المستخدم(ِActor) الخاص بها.

    هل يمكنك أن تحول أي برنامج أو نظام إلى هذا الشكل ؟ جرب بنفسك .. اختر أو تخيل فكرة أي برنامج ثم أحضر مجموعة من الاوراق البيضاء من مقاس A4 و قلم رصاص و ابدأ الرسم ^_^

    كيف يمكن الإستفادة من الـ Use Cases :
    كما ترى فإن الرسمة السابقة سهلة الفهم و يمكن لعميلك أن يفهمها حتى بدون شرح، ولكن توجد فائدة أخرى وهي انك أثناء برمجتك ستتمكن من معرفة الوظائف التي يجب عليك تنفيذها بالنظر إلى الرسم دون الحاجة للرجوع إلى العقود وقراءة النص المكتوب فيها و محاولة فهمه، بل و أكثر من ذلك، لو كان لديك فريق من المبرمجين من الأهسل ان يتم تبادل الـ Use Cases خصوصاً عندما يكون أحدهم أجنبي لايتحدث بنفس لغة بقية أفراد الفريق، فهو لا يستطيع قراءة العقود وفهمها، لكن يمكنه فهم كل مايحتاجه من خلال الـ Use Cases. إضافة إلى ذلك يمكن أن تستخدم الـ Use Cases مع العقد لتوضيح المتطلبات .


    هل هذا هو كل شيء في الـ Use Cases:
    لا هذا ليس كل شيء، توجد أشكال أخرى لها معاني خاصة في الـ Use Cases غير الاشكال السابقه، و توجد أساليب و تقنيات لجمع الـ Use Cases و ترتيبها ( الحقيقة أني تعمدت كسر أحد الأساليب المشهورة في الرسمة السابقه من أجل التبسيط )، ستكتشف المزيد إذا مارست عملية جمع متطلبات عملائك بهذه الطريقة.

    مثال حقيقي
    هذه صورة لـ Use Cases كتبته قبل أربع سنوات تقريباً لمشروع خاص هو غير مكتمل لكنه يعطي تصور عن كيف يمكن أن يكون شكل الـ Use Cases


    "هذا الموضوع كتبته اعتماداً على ما في ذاكرتي فتجاوزا عن الأخطاء إن وجدت :shy: و أما تعريب بعض المصطلحات مثل كلمة Actors و التي عربتها بـ مستخدمين فهو اجتهاد شخصي لأن الترجمة الحرفية لم ترق لي"
    و الحمد لله الذي تتم بنعمته الصالحات ...

    تقبلوا أرق التحايا ..
    محبكم / مازن بن عبد الله مليباري
    http://www.mazen.ws





    __________________
    مدونتي الشخصية :
    http://www.mazen.ws
    عن البرمجة و تطوير المواقع و علوم الحاسب
    ماسنجر :
    desclub@hotmail.com
    بريد الكتروني :
    mazen@mazen.ws


  2. #2
    عضو فعال
    تاريخ التسجيل
    Jan 2005
    المشاركات
    1,736


    جزاك الله خير Nasa Baby

    موضوع رائع ومهم

    وهذا ما اعانيه الآن مع المبرمجين

    ولكن المشكله لاتقع بتقسيم الفكرة لكي تكون مفهومه للمبرمجين

    المشكله عندما يفهم النقاط المبرمج ويتم الاتفاق وبعدها بوقت التطبيق العملي يقوم

    المبرمج ويسقط احد النقاط عبطاً من غير ذكر اي سبب ولما تذكر له لماذا تناسيت هذي النقطه

    يرد بإنها غير جيده ويظهر الاف الاعذار والحقيقه هو يا انه النقطه تاخذ وقت وجهد او انه غير قادر على تنفيذها


    وهنا تقع المشكله

    وشكراً لك مرة اخرى ....





    __________________
    سبحان الله و بحمده سبحان الله العظيم
    لآ إله إلآ إنت سبحانك إني كنت من الظالمين
    سيارات الخليج سيارات الخليج : لعرض وبيع السيارات المستعملة مجانا
    دايموند كار واش



  3. أخوي "دليل عز" : عندما تكون المتطلبات مكتوبة بشكل نصي من الصعب على المبرمج أن يلتطقتها و غالباً ماتضيع بعض المتطلبات بين السطور، طبعاً هذا مع إحسان الظن بالمبرمج ... شكراً لتعقيبك ..

    مازن بن عبد الله مليباري
    http://www.mazen.ws





    __________________
    مدونتي الشخصية :
    http://www.mazen.ws
    عن البرمجة و تطوير المواقع و علوم الحاسب
    ماسنجر :
    desclub@hotmail.com
    بريد الكتروني :
    mazen@mazen.ws

  4. #4
    عضو نشيط
    تاريخ التسجيل
    May 2002
    المشاركات
    177


    موضوع جميل ومفيد لاحرمك الله الاجر اخي Nasa Baby
    فضلا لا امراً هل بالامكان تزويدنا بصورة اكثر وضوحاً للصورة رقم 2

    عيدكم مبارك وايامكم سعيده باذن الله

    اخوكم








  5. gharbawi : أهلاً بك أخي و كل عام و أنت بخير ، كما ذكرت في الموضوع فهذا الـ Use Cases غير مكتمل، و يمكنك مشاهدة نسخة أوضح على العنوان التالي :
    http://www.mazen.ws/blogSection/blogjet_files/usecases/

    و جزاك الله خيراً على دعائك و بارك فيك و في اهلك و مالك ^_^





    __________________
    مدونتي الشخصية :
    http://www.mazen.ws
    عن البرمجة و تطوير المواقع و علوم الحاسب
    ماسنجر :
    desclub@hotmail.com
    بريد الكتروني :
    mazen@mazen.ws

  6. #6
    عضو فعال
    تاريخ التسجيل
    Jul 2003
    المشاركات
    1,576


    سوالف منورة بوجودك أخي العزيز ^_^


    جزاك الله كل خير .. فعلا ما تتحدث عنه سليم 100%

    تقريبا .. لم أقم بعمل برنامج واحد في حياتي .. وتقبله الزبون مباشرة دون طلب تعديلات .. أو إضافات . .


    مؤخرا ، بدأت اللجوء إلى نظام أكثر صرامة لضمان حقوقي كمبرمج ، في بداية الإتفاق يفصّل العميل جميع طلباته بشكل واضح .. ولا يتم وضع أي مميزات أخرى غير التي تم ذكرها فقط ..

    النقطة ، تكمن في خبرة المبرمج العملية ، لفهم ما يدور برأس العميل مباشرة .. ^_^


    أمثلة رائعة تلك التي وضعتها . . تذكرني بال Microsoft Visio


    تحياتي ..





    __________________
    SWF Thumbnail - tweet me

  7. #7
    مُجَاهِد سابقاً
    تاريخ التسجيل
    Apr 2004
    المشاركات
    12,000


    جزاك الله خير على الموضوع القيم ..
    والف الف شكر لك ..
    وبارك الله فيك ..




    وخالص المودة ،،





    __________________
    استخدم خاصية تنبيه المشرفين للضرورة وعند ملاحظة موضوع يخالف قوانين منتديات سوالف وسيتم مراجعة الموضوع او المشاركة المبلغ عنها على الفور

  8. #8
    عضو نشيط
    تاريخ التسجيل
    Nov 2003
    المشاركات
    175


    إستخدام الUML لربما هو المجال الأوسع هذه الأيام في تحويل متطلبات العميل إلى model و بالتالي تسهل عملية الإتفاق على حدود النظام المعمول .

    و هنالك عدة وجهات مختلفة تمكنك الUML من العمل عليها ، فهنالك وجهة نظر الزبون ووجهة نظر المبرمج .

    و ربما أشهر طريقة لتمثيل البرنامج هي use case ، لكن هنالك أيضاً activity digram و state digram . و class digram .

    و لربما لكن واحدة منهم خصائص معينة .

    أخوكم أبو كامل





    __________________
    إن كان الكلام من فضة ، فالسكوت من ذهب

  9. #9


    مرحبا

    حبيت اشارك بالموضوع
    ============
    هذا الموضوع يندرج تحت موضوع يجهله الكثيرون هو ( هندسة البرمجيات )

    يعتقد الكثير من الأشخاص انهم بمجرد كتابتهم برنامج معين اصبحوا مبرمجين !!!!!!!!


    في الحقيقة ليس كل له القدرة في كتابة الأكواد يصبح مبرمجاً
    المبرمج الحقيقي لابد أن يكون ملم بأسس وقواعد هندسة البرمجيات

    هندسة البرمجيات هي فرع من فروع الهندسة يقوم على مجموعة أسس و قواعد تهدف إلى تصميم و تطوير البرامج بجودة عالية تلبي احتياجات المستخدمين .

    إن بناء النظام البرمجي ليس مجرد كتابة (code) وإنما هي عملية إنتاجية لها عدة مراحل أساسية وضرورية للحصول على البرنامج بأقل كلفة ممكنة وأفضل أداء
    يطلق على هذه المراحل اسم دورة حياة النظام البرمجي Software Lifecycleوهي تبدأ من مرحلة( جمع المتطلبات وتحليلها , تصميم النظام , كتابة الكود ,الاختبار و المكاملة للنظام ,تسليم النظام , الصيانة)

    كل مرحلة من هذه المرااحل لها كتب خاصة تدرس في الجامعات

    =========================
    بالنسبة لهندسة المتطلبات انا اعتبرها فن بحد ذاتها

    لأنه ليس لأي شخص القدرة على استخراج من العميل المعلومات المطلوبة بشكل جيد

    وهذه المرحلة هي أهم مرحلة لانه اذا وثقت المتطلبات بشكل خاطئ سوف يبنى النظام على اساس خاطئ ومسألة التعديل قد تكون مكلفة


    اخي العزيز / Nasa Baby

    " Use Cases " + "المتطلبات بشكل نصي " = Requirements Document هي المحصلة النهائية لهذه المرحلة

    *لابد من توثيق المتطلبات بشكل نصي ايضاً حتى تخرج بوثيقة متطلبات تتوافق مع المعاايير العالمية


    واشكرك فعلاً على هذا الموضوع الرائع





    __________________
    لا إله إلا أنت سبحانك اني كنت من الظالمين



  10. اقتباس المشاركة الأصلية كتبت بواسطة Egyptechno
    سوالف منورة بوجودك أخي العزيز ^_^
    جزاك الله كل خير .. فعلا ما تتحدث عنه سليم 100%
    تقريبا .. لم أقم بعمل برنامج واحد في حياتي .. وتقبله الزبون مباشرة دون طلب تعديلات .. أو إضافات . .
    مؤخرا ، بدأت اللجوء إلى نظام أكثر صرامة لضمان حقوقي كمبرمج ، في بداية الإتفاق يفصّل العميل جميع طلباته بشكل واضح .. ولا يتم وضع أي مميزات أخرى غير التي تم ذكرها فقط ..
    النقطة ، تكمن في خبرة المبرمج العملية ، لفهم ما يدور برأس العميل مباشرة .. ^_^
    أمثلة رائعة تلك التي وضعتها . . تذكرني بال Microsoft Visio

    تحياتي ..
    بالرغم من أن الشروط الصارمة تضمن حقوقك كمبرمج إلا أنها ليست مجدية كثيراً في المشاريع البرمجية لأنه من واقع تجربة أكثر العملاء سيقوموا بتغيير بعض متطلباتهم عاجلاً أو أجلاً، عدم قبولك لطلبات التعديل قد يكون على حساب رضا العميل ، و "الزبون دائماً على حق"

    و الـ Diagrams الموجودة بالأعلى هي بالفعل مرسومة بالـ Visio ^_^





    __________________
    مدونتي الشخصية :
    http://www.mazen.ws
    عن البرمجة و تطوير المواقع و علوم الحاسب
    ماسنجر :
    desclub@hotmail.com
    بريد الكتروني :
    mazen@mazen.ws



  11. اقتباس المشاركة الأصلية كتبت بواسطة مُجَاهِد
    جزاك الله خير على الموضوع القيم ..
    والف الف شكر لك ..
    وبارك الله فيك ..
    وخالص المودة ،،
    و جزاك الله خير و بارك فيك و في أهلك و مالك ..
    شكراً لك ^_^





    __________________
    مدونتي الشخصية :
    http://www.mazen.ws
    عن البرمجة و تطوير المواقع و علوم الحاسب
    ماسنجر :
    desclub@hotmail.com
    بريد الكتروني :
    mazen@mazen.ws



  12. اقتباس المشاركة الأصلية كتبت بواسطة كلاسيك
    مرحبا
    حبيت اشارك بالموضوع
    ============
    هذا الموضوع يندرج تحت موضوع يجهله الكثيرون هو ( هندسة البرمجيات )
    يعتقد الكثير من الأشخاص انهم بمجرد كتابتهم برنامج معين اصبحوا مبرمجين !!!!!!!!
    في الحقيقة ليس كل له القدرة في كتابة الأكواد يصبح مبرمجاً
    المبرمج الحقيقي لابد أن يكون ملم بأسس وقواعد هندسة البرمجيات
    هندسة البرمجيات هي فرع من فروع الهندسة يقوم على مجموعة أسس و قواعد تهدف إلى تصميم و تطوير البرامج بجودة عالية تلبي احتياجات المستخدمين .
    إن بناء النظام البرمجي ليس مجرد كتابة (code) وإنما هي عملية إنتاجية لها عدة مراحل أساسية وضرورية للحصول على البرنامج بأقل كلفة ممكنة وأفضل أداء
    يطلق على هذه المراحل اسم دورة حياة النظام البرمجي Software Lifecycleوهي تبدأ من مرحلة( جمع المتطلبات وتحليلها , تصميم النظام , كتابة الكود ,الاختبار و المكاملة للنظام ,تسليم النظام , الصيانة)
    كل مرحلة من هذه المرااحل لها كتب خاصة تدرس في الجامعات
    =========================
    بالنسبة لهندسة المتطلبات انا اعتبرها فن بحد ذاتها
    لأنه ليس لأي شخص القدرة على استخراج من العميل المعلومات المطلوبة بشكل جيد
    وهذه المرحلة هي أهم مرحلة لانه اذا وثقت المتطلبات بشكل خاطئ سوف يبنى النظام على اساس خاطئ ومسألة التعديل قد تكون مكلفة
    اخي العزيز / Nasa Baby
    " Use Cases " + "المتطلبات بشكل نصي " = Requirements Document هي المحصلة النهائية لهذه المرحلة
    *لابد من توثيق المتطلبات بشكل نصي ايضاً حتى تخرج بوثيقة متطلبات تتوافق مع المعاايير العالمية
    واشكرك فعلاً على هذا الموضوع الرائع
    بما أنك فتحت الموضوع فدعني أقول مافي نفسي
    و لله الحمد درست كافة جوانب "هندسة البرمجيات" دراسة علمية اكاديمية مؤصلة داخل الجامعه و خارجها حالياً أعمل على مشاريع بـ multi million هل تعرف أين المفارقة ؟! ثلاثة أرباع النظريات الحديثة في الهندسة و التحليل لاتجدي نفعاً و إنما هي أكاديميات حتى على مستوى المشاريع الحكومية الضخمة! ، خذ مثلاً ما يخص الـ Lifecycle أنت تعلم أن الطرق الحديثه تعتمد على أسلوب الـتطوير الـ iterative and incremental، نظرياً و في الكتب يظهر هذا الأسلوب وكأنه الحل للكثير من المشاكل و هذا ماكنت مقتنع به تماماً، لكن عندما تواجه قيادات عليا غير مستعدة للقبول بهذا الأسلوب من العمل و تريد أن ترى النتائج فقط ستجد نفسك ترجع للستينيات و تستخدم أسلوب الـ Waterfall !!!!!! ويا قلبي لاتحزن... بالتأكيد أن تعرف ماذا يعني أن ينجز مشروع بملايين الريالات باستخدام الـ Waterfall ، اسرح بخيالك ^_^ ...
    بل أكثر من ذلك، أعتقد أننا بحاجة لأساليب أخف و أرشق حتى من الـ Agile و الـ XP المزيد من الحريات ... امممم أو لنقل القليل من القيود و التحركات ! ..

    اما فيما يخص قولك :
    " Use Cases " + "المتطلبات بشكل نصي " = Requirements Document
    فصحيح وانا لم أهمش دور النصوص المجردة وذكرت أن الـ Use Cases تستخدم بجانب العقد


    تقبل تحياتي /
    مازن بن عبد الله مليباري
    http://www.mazen.ws





    __________________
    مدونتي الشخصية :
    http://www.mazen.ws
    عن البرمجة و تطوير المواقع و علوم الحاسب
    ماسنجر :
    desclub@hotmail.com
    بريد الكتروني :
    mazen@mazen.ws



  13. لمن أراد الإستزادة في الموضوع، هذه أجمل الكتب التي قراتها عن "متطلبات العميل" و الـ " Use Cases" :

    * Software Requirements - Microsoft Press
    من أجمل الكتب على الإطلاق و أسلوب الكاتب متميز جداً

    * Writing Effective Use Case - Addison Wesley
    وهو لنفس مؤلف كتاب Agile SD و الحائز على جائزة أفضل كتاب في تطوير البرمجيات في 2002م.

    * Use Cases Requirements In Context - Addison Wesley

    * Use Cases Patterns and Blueprints - Addison Wesley
    يقدم هذا الكتاب أنماط جاهزة يمكن استخدامها عند تصميم الـ Use Cases و يناقش بعض الأخطاء التي يتكرر حدوثها.

    تحياتي ^_^





    __________________
    مدونتي الشخصية :
    http://www.mazen.ws
    عن البرمجة و تطوير المواقع و علوم الحاسب
    ماسنجر :
    desclub@hotmail.com
    بريد الكتروني :
    mazen@mazen.ws

  14. #14
    عضو نشيط جدا
    تاريخ التسجيل
    Mar 2003
    المشاركات
    309


    مازن يا مازن ، آه ثم آه .!


    بطبيعة الحال ، اغلب مواقع الانترنت على تعتمد على الـ oop لذلك ، جميل منك انك غفلت عن نقطة الـ UML كموديل عظيم .. له اصداراته المختلفة ..

    أكثر الموديولز انتشارا في مجال الـ uml هي ثلاثة
    - Class digram
    - use cases
    - sequence digram

    واعتقد ان الـ class digram لا يحبذ تطبيقه في برمجيات الانترنت لأنها اصلا البرمجيات صغيرة .!

    لكن في use cases و sequence daigram .. من الواجب رسمها الرسم المبدئي عند بداية اي برنامج .!

    مازن امنحني من وقتك اكثر تكرما ، ولتشرح للقوم sequence daigram ، اعتقد أنك افضل مني في ذلك .!

    كل الحب والتقدير والاحترام ، إلخ ...!





    __________________
    http://www.taqniah.com



  15. اقتباس المشاركة الأصلية كتبت بواسطة taqniah.com
    مازن يا مازن ، آه ثم آه .!
    بطبيعة الحال ، اغلب مواقع الانترنت على تعتمد على الـ oop لذلك ، جميل منك انك غفلت عن نقطة الـ UML كموديل عظيم .. له اصداراته المختلفة ..
    أكثر الموديولز انتشارا في مجال الـ uml هي ثلاثة
    - Class digram
    - use cases
    - sequence digram
    واعتقد ان الـ class digram لا يحبذ تطبيقه في برمجيات الانترنت لأنها اصلا البرمجيات صغيرة .!
    لكن في use cases و sequence daigram .. من الواجب رسمها الرسم المبدئي عند بداية اي برنامج .!
    مازن امنحني من وقتك اكثر تكرما ، ولتشرح للقوم sequence daigram ، اعتقد أنك افضل مني في ذلك .!
    كل الحب والتقدير والاحترام ، إلخ ...!
    أهلاً سيدي ، يبدو و الله أعلم أنك تعاني أعانك الله ..
    هدفي من طرح الوضوع هو مثل ماقال الاخ "أبو كامل" أن الـ UML يمكن أن نأخذها من عدة جوانب، و الموضوع يناقش الجانب الذي يهتم بعلاقة العميل مع المبرمج !

    إذا يسر الله وقت كتبت عن الـ sequence diagram بإذن الله !

    تحياتي و أشواقي و تقديري ... الخ !







    __________________
    مدونتي الشخصية :
    http://www.mazen.ws
    عن البرمجة و تطوير المواقع و علوم الحاسب
    ماسنجر :
    desclub@hotmail.com
    بريد الكتروني :
    mazen@mazen.ws

صفحة 1 من 3 123 الأخيرةالأخيرة




ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  
0
أضف موقعك هنا