۱۳۸۸ دی ۱۶, چهارشنبه

مهندسي نرم‌افزار


يه سري سوالات سر كلاس در مورد نمودارهاي UML در RUP مطرح شد كه دنبال جوابش بودم. اين نكات رو لازم نيست كه در امتحان اگه سوالي در اين مورد بود حتما رعايت كنيد، چون سر كلاس توضيح داده نشده، اما بايد بدونين.
_________________
1. وجود حلقه در Activity Diagram مثلا در مورد پر كردن يه فرم و بررسي اون كه يه حلقه تشكيل داده بودين.
https://www.ibm.com/developerworks/forums/thread.jspa?threadID=314493
نظرات در اين مورد متفاوته.
به نظر مياد كه اگه فرم رو همون‌جا مسئول بررسي مي‌كنه و اگه اشتباه باشه برمي‌گردونه و همونجا مراجعه كننده دوباره تحويل مي‌ده و باز بررسي مي‌شه وجود حلقه خوبه چون نشون مي‌ده كه اين كار هنوز تموم نشده. اما اگه فرم رو پر مي‌كنه و ميره و بعد از مدتي فرم توسط مسئول بررسي مي‌شه و اگه مشكلي داشته باشه به فرد گفته مي‌شه تا بياد و فرم رو اصلاح كنه، اون وقت حلقه نبايد گذاشت چون اون Use Case در واقع كامل شده.
اگر Use Case‌شما فقط همين پر كردن فرم بوده كه همه چي تمومه در غير اين صورت يعني اگه پر كردن فرم، بخشي از يك Use Case بوده، اون وقت دو راه دارين:
يك راه اينكه Use Case رو از همون اول به دو تا Use Case‌بشكنين؛ يكي واسه پر كردن فرم و ديگري واسه ادامه كار.
راه ديگه اينكه Use Case پر كردن فرم رو به عنوان يه Include Use Case واسه Use Case‌ اصلي قرار بدين. اون وقت در Activity Diagram واسه Use Case اصلي يك State ايجاد مي‌كنين كه البته نمونه اين رو توي كلاس نداشتيم كه غير از Start State , End State حالت‌هاي ديگه‌اي داشته باشيم. بهرحال، با پر كردن فرم به اون State مي‌رين و از اون State ادامه كار رو انجام مي‌دين.
در اين حالت يه Activity Diagram جداگانه واسه اون Included Use Case رسم مي‌كنين كه اون دياگرام Start State‌ نداره و حالت شروعش همين حالتي يه كه در دياگرام Use Case اصلي ايجاد كردين!! سخت شد؟! آره، توضيحش به شكل غيرحضوري راحت نيست!
_________________
2. واسه Use Case هاي Include يا Extend شده جداگانه Activity Diagram رسم مي‌شه؟
اگه Use Caseاي كه مثلا include كردين، كوچكه و كار زيادي نداره، ميشه واسش Activity جداگانه‌اي رسم نكرد، اما اگه كارش زياده مي‌شه براش جداگانه Activity Diagram رسم كرد كه البته اون دياگرام Start State نخواهد داشت و توضيحش در پاسخ سوال 1 داده شد.
_________________
3. يك سيستم كامپيوتري رو مي‌توان در يك Use Case Diagram به عنوان worker در نظر گرفت؟
نه، نمي‌تونين.
_________________
4. براي اعلام شرط‌ها در Activity Diagram آيا لازمه كه قبلش يه عمل بگذاريم كه مثلا بررسي فرم يا چيزي مشابه اين كه كار شرط رو نشون بده؟
بله.
_________________
5. چند worker با هم كار رو انجام مي‌دن و ممكنه هر كدوم شروع كننده كار باشن، در Activity Diagram كه رسم مي‌شه، Start State رو كجا قرار بديم؟
يك worker جديد ايجاد مي‌كنين كه اون چند تا worker از اين worker ارث بري دارن (رابطه بين اونها رو از نوع generalization برقرار مي‌كنين). حالا در Activity Diagram حالت شروع رو واسه اين worker‌جديد قرار مي‌دين.
_________________
6. يك فرايند رو چندين worker مي‌تونند انجام بدن، يا يك فرايند در داخل Use Case هاي مختلف هست، اون رو بايد همش تكرار كنيم؟
هر وقت چنين تكرارهايي دارين، مانند مثال بالا، بايد از ارث بري استفاده كنين و كلاس كلي تري تشكيل بدين كه كلاس‌هاي ديگه از اون ارث بري دارن ( مثلا واسه انباردار، مسئول تداركات، .... كه همه عمل خريد رو انجام مي‌دن ميشه يك worker ايجاد كرد به نام مثلاخريد كننده كه عمل خريد رو انجام مي‌ده، حالا worker هاي انباردار، مسئول تداركات و .... از اون ارث بري دارند و بنابراين كار اون رو قاعدتا مي‌تونن انجام بدن.

۱ نظر:

  1. ممنون از توجهتون استاد.
    از اینکه انقد به مسائل نوجا دارین ازتون تشکر میکیم

    پاسخحذف