PDA

View Full Version : گفتگو: سئوالاتی در آنالیز و طراحی



Elham_gh
سه شنبه 30 مهر 1387, 15:00 عصر
دوستان برای برآورد سطح دانش و بالا بردن دانسته هامون، من یک پیشنهاد دارم . اگر دوستان هم همراهی کنند , من از اینکار در جاهای دیگه نتایج خوبی گرفتم. اگر استقبالی نشه که تاپیک رو حذف می کنم.

یکسری سئوال مطرح می شه و از بقیه دوستان خواسته می شه جوابی که می دونن بگن. اینکه جوابش چیه و یا اگه اون مسئله رو چطور طراحی و مدل و یا آنالیز می کنند. و یا از چه pattern ی استفاده می کنند. در نهایت جوابها جمع بندی می شه و نفر بعدی سئوال دیگه ای رو مطرح می کنه. جمع بندی هر سئوال به عهده مطرح کننده سئوال است.
فقط سئوال این مدلی نباشه که سیستم حسابداری را چگونه طراحی می کنید!!!
و به پیشنهاد مدیر محترم بخش هم , اولین پست به فهرست بندی سوال اختصاص داده می شود.
سئوال اول رو خودم مطرح می کنم. تا دوستان دیگر هم ادامه دهند.

فهرست:


سوال 1-چگونه مجموعه ای از شرطها را در Class diagram مدل کنید؟ (http://barnamenevis.org/forum/showthread.php?p=618604&posted=2#post618604)

سئوال 2- رابطه های مجموعه و زیر مجموعه را چطور در class diagram مدل می کنید؟


پاسخ (http://barnamenevis.org/forum/showthread.php?p=645599#post645599)
سئوال سوم- لايه هاي مختلف سيستمتون رو چطور مدل مي کنيد؟ (http://barnamenevis.org/forum/showthread.php?p=679504#post679504)

Elham_gh
سه شنبه 30 مهر 1387, 15:09 عصر
سئوال 1- شما چگونه مدل می کنید؟

می خواهیم مجموعه ای از شرطها را در Class diagram مدل کنیم. مثلا شرط ما می تونه به این صورت ها باشه:
Age<23
Age <23 AND Gender=Female
Not MaritalStatus=Married
Gender=Female OR MaritalSatus=Married
نمونه استفاده از این مسئله زیاد است.شما می تونید تو سیستمهای مختلف نمونه های آن را ببینید.مثل:
شرایط احراز یک شغل- نحوه محاسبه یک مقدار در شرایط مختلف –شرایط استفاده از وام و ......

Elham_gh
یک شنبه 05 آبان 1387, 13:12 عصر
کسی قرار نیست همکاری کنه؟

javaphantom
دوشنبه 06 آبان 1387, 20:04 عصر
کسی قرار نیست همکاری کنه؟

class diagram حالت ایستایی object ها رو نشون می ده. در صورتی که بخواهیم شرطها رو بین کلاسها و رابطه ای که بین اونها وجود داره رو نشون بدیم از sequence diagram استفاده می کنیم معمولا می شه گفت که sequence diagram حالات پویای بین object ها رو نشون می ده. گذاشتن شرط یا حلقه ها در این diagram نشون داده می شود

Elham_gh
سه شنبه 07 آبان 1387, 13:58 عصر
class diagram حالت ایستایی object ها رو نشون می ده. در صورتی که بخواهیم شرطها رو بین کلاسها و رابطه ای که بین اونها وجود داره رو نشون بدیم از sequence diagram استفاده می کنیم معمولا می شه گفت که sequence diagram حالات پویای بین object ها رو نشون می ده. گذاشتن شرط یا حلقه ها در این diagram نشون داده می شود

دوست عزیز ,
در sequence diagram , ارتباط بین کلاسها مدل نمی شود بلکه پیغامهایی که بین کلاسها رد و بدل می شود مدل می شود. ارتباط بین کلاسها با همان Class Diagram ،که حالت static یا به قول شما استاتیک کلاسها را نمایش می دهد، مدل می شود.
از طرفی در sequence diagram کلاسها در مدل سازی نقشی ندارند ، بلکه Object ها نشان داده می شوند.
از کاربردهای sequence diagram مدل سازی سناریوی Use case است.

بدین ترتیب سئوالی که من مطرح کردم کاملا درست است دوست عزیز.

javaphantom
سه شنبه 07 آبان 1387, 20:05 عصر
دوست عزیز ,
در sequence diagram , ارتباط بین کلاسها مدل نمی شود بلکه پیغامهایی که بین کلاسها رد و بدل می شود مدل می شود. ارتباط بین کلاسها با همان Class Diagram ،که حالت static یا به قول شما استاتیک کلاسها را نمایش می دهد، مدل می شود.
از طرفی در sequence diagram کلاسها در مدل سازی نقشی ندارند ، بلکه Object ها نشان داده می شوند.
از کاربردهای sequence diagram مدل سازی سناریوی Use case است.

بدین ترتیب سئوالی که من مطرح کردم کاملا درست است دوست عزیز.

منظور از رابطه بین کلاسها مبتنی بر اساس سوال بود که چگونه اگر ها رو نشون بدیم من منظورم ارتباط بین کلاس ها نبود

Elham_gh
چهارشنبه 08 آبان 1387, 08:09 صبح
لازم به مدل کردن اگرها نداریم.
شما برای این همچین صورت مسئله ای احتیاج به یک Class Diagram هم دارید دیگه. سئوال من همون Class diagram است.

Modifier
پنج شنبه 09 آبان 1387, 01:16 صبح
دوست عزیز ,
در sequence diagram , ارتباط بین کلاسها مدل نمی شود بلکه پیغامهایی که بین کلاسها رد و بدل می شود مدل می شود. ارتباط بین کلاسها با همان Class Diagram ،که حالت static یا به قول شما استاتیک کلاسها را نمایش می دهد، مدل می شود.
از طرفی در sequence diagram کلاسها در مدل سازی نقشی ندارند ، بلکه Object ها نشان داده می شوند.
از کاربردهای sequence diagram مدل سازی سناریوی Use case است.

بدین ترتیب سئوالی که من مطرح کردم کاملا درست است دوست عزیز.


این که بگوییم sequence در مدل سازی نقشی ندارند ، نمیتواند صحبت دقیقی باشد ، همین که میتوان با آنها
object ها را شناسایی کرد که البته یکی از راه های شناسایی object ها میباشد میتوان گفت که در مدل سازی
کلاس ها نقش دارند بخصوص در مدل آنالیز ، چون میتوان حداقل با جمع بندی object ها به کلاس های مورد نظر
رسید و البته این یکی از راه های یافتن کلاس ها میباشد.


سئوال 1- شما چگونه مدل می کنید؟

می خواهیم مجموعه ای از شرطها را در Class diagram مدل کنیم. مثلا شرط ما می تونه به این صورت ها باشه:
Age<23
Age <23 AND Gender=Female
Not MaritalStatus=Married
Gender=Female OR MaritalSatus=Married
نمونه استفاده از این مسئله زیاد است.شما می تونید تو سیستمهای مختلف نمونه های آن را ببینید.مثل:
شرایط احراز یک شغل- نحوه محاسبه یک مقدار در شرایط مختلف –شرایط استفاده از وام و ......

حالابریم سر بحث اصلی : مدل کردن شرط در کلاس دیاگرام ...

بحث روی این قضیه نیازمند مطالعات بیشتری است ولی تا اونجایی که من میدانم شرط ها در کلاس دیاگرام مدل نمیشوند بلکه در درون متدها پیاده سازی میشوند و مسئله دیگری هم که مهم است این است که باید بدانیم که پس از احراز و مورد تایید قرار گرفتن یک شرط چه عملی ممکن است رخ دهد ، آن موقع قسمتی از بحث ما بر میگردد به طرف design pattern ها مثلا :

در الگوی simple factory با برقراری یک شرط یکی از کلاس هاس مشتق شده از کلاس abstract انتخاب و نمونه سازی میشود ...

احتمالا در مدل کردن شرط ها از سناریوی یوزکیس شروع میشه ، در sequence digram و همچنین در activity هم بحث میشه ... پس احتمالا میبایستی بر روی این موارد هم تمرکز کرد و همچنین بر روی کلاس دیاگرام که مورد اصلی سوال است ...

فعلا تا این حد در توانم بود ...

تا بعد ..

موفق باشید.

یا علی.

Modifier
شنبه 11 آبان 1387, 00:59 صبح
خواستم بگم لطفا یه توضیحی در مورد اینکه چه سوالاتی رو بیان کنیم بدید تا هم من و هم بقیه روشن تر بشن ...

آیا محدوده فقط Systems Analysis and Design هست ؟

یعنی توی این گفتگو نباید سوالات و جوابها به طرف بقیه دسیپلین ها بخصوص Implementation و برنامه نوسی بره ؟

توی مباحث مربوط به طراحی ممکن هست یا بهتره بگم به احتمال زیاد در مورد ساختار و معماری یک زبان بحث خواهد شد و یا اینکه سوالاتی مطرح میشه.
این که مشکلی نداره ؟

مباحث design pattern رو میشه اینجا مطح کرد ؟

آیا باید حتما جواب یه سوال داده بشه و بعد سوال بعدی پرسیده بشه ؟

در آخر امیدوارم موفق باشید چون مدیریت چنین گفتگویی خیلی سخته بخصوص در مباحث طراحی که هر آن ممکن به طرف پیاده سازی کشیده بشه.

موفق باشید.

Elham_gh
شنبه 11 آبان 1387, 08:06 صبح
خواستم بگم لطفا یه توضیحی در مورد اینکه چه سوالاتی رو بیان کنیم بدید تا هم من و هم بقیه روشن تر بشن ...

آیا محدوده فقط Systems Analysis and Design هست ؟

یعنی توی این گفتگو نباید سوالات و جوابها به طرف بقیه دسیپلین ها بخصوص Implementation و برنامه نوسی بره ؟

توی مباحث مربوط به طراحی ممکن هست یا بهتره بگم به احتمال زیاد در مورد ساختار و معماری یک زبان بحث خواهد شد و یا اینکه سوالاتی مطرح میشه.
این که مشکلی نداره ؟

مباحث design pattern رو میشه اینجا مطح کرد ؟

آیا باید حتما جواب یه سوال داده بشه و بعد سوال بعدی پرسیده بشه ؟

در آخر امیدوارم موفق باشید چون مدیریت چنین گفتگویی خیلی سخته بخصوص در مباحث طراحی که هر آن ممکن به طرف پیاده سازی کشیده بشه.

موفق باشید.

modifier عزیز,
محدوده سوالها محدوده تالار است. هر سئوالی که تو حوزه این تالار باشه قابل طرح است.
نظر من اینکه سئوالا به جواب برسه بعد سئوال بعدی مطرح شده. تا نظر اکثریت دوستان چی باشه.
و من هم امیدوارم با همکاری دوستامون در این بحث کلی مطلب یاد بگیریم. :)

Modifier
شنبه 11 آبان 1387, 23:52 عصر
modifier عزیز,
محدوده سوالها محدوده تالار است. هر سئوالی که تو حوزه این تالار باشه قابل طرح است.
نظر من اینکه سئوالا به جواب برسه بعد سئوال بعدی مطرح شده. تا نظر اکثریت دوستان چی باشه.
و من هم امیدوارم با همکاری دوستامون در این بحث کلی مطلب یاد بگیریم. :)

سلام

والا این باعث گیج شدن میشه .. این طور نیست !؟
سوالات زیادی در محدوده این تالار هست ... که خیلی های از اون ها در بحث آنالیز و طراحی نمیگنجد.

به نظر شما تمام سوالات رو تو این تاپیک مطرح کنیم ؟!!!!!!

اینطور مطمئنا نمیشه .

البته باید بگم که خیلی سوالاتی که در این بخش مطرح میشه یا در مورد تحلیل و طراحی یک سیسم خاص است یا در مورد نرم افزار خاصی است و یا سوالات مطرح شده در حوزه آنالیز و طراحی خیلی تکراری و یا ... است .

میشه گفت این تاپیک خوبه برای سوالاتی که کمتر روش بحث شده ، چه در اینجا و چه در جایی های دیگه حتی کتابها و همین طور سوالاتی که جوابهای متعددی داره و همچنین سولات سختی که یه ذهن بعضی از کاربران میاد.

خوبه اگه با توضیح بالا صدق کنه چون میشه برای این جور سوالات به جمع بندی خوبی رسید.

البته من نمیگم با نظر من موافق باشید ولی من خودم سعی میکنم توی محدوده ای که توضیح دادم عمل کنم (طرح سوال و جواب دادن به سوالات) تا یه تاپیک عالی برای مباحث مهندسی نرم افزار بشه.

در ضمن اگر سوالات میتونه از بحث آنالیز و طراحی فرا تر بره لطفا عنوان تاپیک رو تغییر دهید.

موفق باشید.

یا علی.

Itist82
یک شنبه 12 آبان 1387, 15:13 عصر
سلام به همه
امیدوارم سوالم توی محدوده این تاپیک باشه:لبخندساده:

فرض کنید می خواهیم یه پایگاه داده طراحی کنیم برای نگه داشتن اطلاعات شجره نامه ای یه خانواده. شرایط رو این جوری بگیرید که در زیر می گم و اگه چیز دیگه هم به ذهنتون رسید بهش اضافه کنید:

اتربیوت هایی مثل نام و جنسیت و تاریخ تولد و ... از افراد ثبت می شه، هر کس در طول زندگی ممکنه 0 تا n بار ازدواج کنه و می خواهیم اطلاعات همه همسرانشو داشته باشیم(با داشتن کلید اصلی یه نفر بشه گفت همسرانش کی ها بودن) می خواهیم فرزندان هر کس هم معلوم باشه(راطه خواهر برادری رو هم شاید جدا در نظر بگیریم بهتر باشه چون ممکنه نشه از روی اطلاعات مادر پدر اونو پیدا کرد، مثلا از مادر یا از پدر از هم جدا باشن).

فرض کنید بخواهیم کوئری هایی مثل پیدا کردن فامیل های درجه یک هر فرد و نسبت دونفر و اینا رو بگیریم.
من فکر می کنم این سیستم یه موجودیت قوی داره به اسم فرد. اما یه مشکل اساسی داره، اینکه اون موجودیت یه رابطه چند به چند با خودش داره برای نشون دادن ازدواج! حتی اگه ازدواج رو یه موجودیت جدا بگیریم یه سیکل بد جور به وجود میاد از "فرد" به "ازدواج" و از اون باز به "فرد". من هر چی فکر کردم راه دیگه ای به ذهنم نرسید که چه کار باید کرد. چون این جوری اصلا نمی شه با این پایگاه داده کار کرد.
تنها چیز دیگه ای که به ذهنم رسید این بود که دوتا جدول بگیریم و خانم ها و آقایون رو جدا کنیم!!!! حالا بین این دو جدول یه واسط داریم که همون موجودیت ازدواجه. ولی در این حالت هم نمی دونم رابطه ی فرزندی رو چه جوری نشون بدم!:متفکر:
نظرتون چیه؟

mrub_mail
سه شنبه 14 آبان 1387, 14:26 عصر
فكر كنم شرطها را نمي شود در كلاس دياگرام نمايش داد. فكر كنم چاره كار چيزي شبيه Polymorphism
باشه. براي نمونه براي محاسبه حقوق انواع كارمندان مي توانيم يك كلاس كارمند تعريف كنيم و كلاس هاي مانند كارمند قراردادي، رسمي و ... تعريف كنيم كه از آن به ارث ببرند و هر كدام متدهاي مورد نظر را بازنويسي كنند. اگر جواب صحيح نيست لطفا كمي راهنمايي كنيد

Elham_gh
سه شنبه 14 آبان 1387, 15:08 عصر
فكر كنم شرطها را نمي شود در كلاس دياگرام نمايش داد. فكر كنم چاره كار جزي شبيه Polymorphism
باشه. براي نمونه براي محاسبه حقوق انواع كارمندان مي توانيم يك كلاس كارمند تعريف كنيم و كلاس هاي مانند كارمند قراردادي، رسمي و ... تعريف كنيم كه از آن به ارث ببرند و هر كدام متدهاي مورد نظر را بازنويسي كنند. اگر جواب صحيح نيست لطفا كمي راهنمايي كنيد

بسیار عالی. بالاخره یکی قدمی برای حل صورت مسئله برداشت.
بله درست می گید دوست عزیز. شما باید مدلی بسازید که یک عبارت شرطی رو نشون می ده. این عبارت از چند قسمت تشکیل شده. قسمت اول یک Comparative Operator و قسمت دوم.
قسمت اول شامل یک ماهیتیست که باید مقداری بهش داده بشه. Comparative Operator می تونه < > <= >= <> باشه و در ساده ترین حالت قسمت دوم یک مقدار ثابت.

و همونطور که گفتید Generalization کار ساز نیست. حالا Aggriegation رو امتحان کنید
(دوستان یک مسئله, یک راه حل نداره. لطف راه حلهاتونو ارائه بدین که بقیه هم استفاده کنند)

Elham_gh
سه شنبه 14 آبان 1387, 15:12 عصر
سلام به همه
امیدوارم سوالم توی محدوده این تاپیک باشه:لبخندساده:

فرض کنید می خواهیم یه پایگاه داده طراحی کنیم برای نگه داشتن اطلاعات شجره نامه ای یه خانواده. شرایط رو این جوری بگیرید که در زیر می گم و اگه چیز دیگه هم به ذهنتون رسید بهش اضافه کنید:

اتربیوت هایی مثل نام و جنسیت و تاریخ تولد و ... از افراد ثبت می شه، هر کس در طول زندگی ممکنه 0 تا n بار ازدواج کنه و می خواهیم اطلاعات همه همسرانشو داشته باشیم(با داشتن کلید اصلی یه نفر بشه گفت همسرانش کی ها بودن) می خواهیم فرزندان هر کس هم معلوم باشه(راطه خواهر برادری رو هم شاید جدا در نظر بگیریم بهتر باشه چون ممکنه نشه از روی اطلاعات مادر پدر اونو پیدا کرد، مثلا از مادر یا از پدر از هم جدا باشن).

فرض کنید بخواهیم کوئری هایی مثل پیدا کردن فامیل های درجه یک هر فرد و نسبت دونفر و اینا رو بگیریم.
من فکر می کنم این سیستم یه موجودیت قوی داره به اسم فرد. اما یه مشکل اساسی داره، اینکه اون موجودیت یه رابطه چند به چند با خودش داره برای نشون دادن ازدواج! حتی اگه ازدواج رو یه موجودیت جدا بگیریم یه سیکل بد جور به وجود میاد از "فرد" به "ازدواج" و از اون باز به "فرد". من هر چی فکر کردم راه دیگه ای به ذهنم نرسید که چه کار باید کرد. چون این جوری اصلا نمی شه با این پایگاه داده کار کرد.
تنها چیز دیگه ای که به ذهنم رسید این بود که دوتا جدول بگیریم و خانم ها و آقایون رو جدا کنیم!!!! حالا بین این دو جدول یه واسط داریم که همون موجودیت ازدواجه. ولی در این حالت هم نمی دونم رابطه ی فرزندی رو چه جوری نشون بدم!:متفکر:
نظرتون چیه؟
دوست عزیز بعد از به جواب رسیدن سئوال اول , مسئله شما رو یه کم بهینه و مطرحش می کنیم.
ممنون

Itist82
سه شنبه 14 آبان 1387, 19:05 عصر
در sequence diagram , ارتباط بین کلاسها مدل نمی شود بلکه پیغامهایی که بین کلاسها رد و بدل می شود مدل می شود. ارتباط بین کلاسها با همان Class Diagram ،که حالت static یا به قول شما استاتیک کلاسها را نمایش می دهد، مدل می شود.
از طرفی در sequence diagram کلاسها در مدل سازی نقشی ندارند ، بلکه Object ها نشان داده می شوند.
از کاربردهای sequence diagram مدل سازی سناریوی Use case است.


من تسلط چندانی روی UMLندارم، اما الان داشتم یه جزوه ای رو نگاه می کردم در این مورد، هر چی فکر می کنم می بینم مطرح کردن شرط توی کلاس دیاگرام معنی نداره. عین جمله ای که توی جزوه مهندسی نرم2 دکتر ناظمی اومده رو براتون می نویسم:

"تحلیل گران و برنامه نویسان به نمودار Sequence و Collaboration نگاه خواهند کرد تا ببینند که چگونه {احتمالا یه "در" جا افتاده}منطق سیستم، Object های سیستم پیغام های بین Object ها جریان خواهند داشت ... برنامه نویسان از نمودار Class و نمودار های State Transition استفاده خواهند کرد تا دید جزئی نسبت به قطعات سیستم و چگونگی ارتباط آن ها به دست آوردند."

با توجه به اینکه جریان منطق برنامه (همون شرط) رو مربوط به نمودار های دیگه ای دونسته و کلاس دیاگرام رو برای شرح جزئیات بیشتر هر قطعه سیستم و ارتباط بین اونا در نظر گرفته، من فکر نمی کنم بشه با کلاس دیاگرام این کار رو کرد.(دقت کنیم که اینجا ارتباط ترجمه ی Relation بوده و نه هر ارتباطی که می تونه شامل ارتباط "اگر و آنگاه" ای هم باشه)

Modifier
یک شنبه 19 آبان 1387, 01:54 صبح
یکسری سئوال مطرح می شه و از بقیه دوستان خواسته می شه جوابی که می دونن بگن. اینکه جوابش چیه و یا اگه اون مسئله رو چطور طراحی و مدل و یا آنالیز می کنند. و یا از چه pattern ی استفاده می کنند. در نهایت جوابها جمع بندی می شه و نفر بعدی سئوال دیگه ای رو مطرح می کنه. جمع بندی هر سئوال به عهده مطرح کننده سئوال است.
فقط سئوال این مدلی نباشه که سیستم حسابداری را چگونه طراحی می کنید!!!



سلام به همه
امیدوارم سوالم توی محدوده این تاپیک باشه:لبخندساده:

فرض کنید می خواهیم یه پایگاه داده طراحی کنیم برای نگه داشتن اطلاعات شجره نامه ای یه خانواده. شرایط رو این جوری بگیرید که در زیر می گم و اگه چیز دیگه هم به ذهنتون رسید بهش اضافه کنید:

اتربیوت هایی مثل نام و جنسیت و تاریخ تولد و ... از افراد ثبت می شه، هر کس در طول زندگی ممکنه 0 تا n بار ازدواج کنه و می خواهیم اطلاعات همه همسرانشو داشته باشیم(با داشتن کلید اصلی یه نفر بشه گفت همسرانش کی ها بودن) می خواهیم فرزندان هر کس هم معلوم باشه(راطه خواهر برادری رو هم شاید جدا در نظر بگیریم بهتر باشه چون ممکنه نشه از روی اطلاعات مادر پدر اونو پیدا کرد، مثلا از مادر یا از پدر از هم جدا باشن).

فرض کنید بخواهیم کوئری هایی مثل پیدا کردن فامیل های درجه یک هر فرد و نسبت دونفر و اینا رو بگیریم.
من فکر می کنم این سیستم یه موجودیت قوی داره به اسم فرد. اما یه مشکل اساسی داره، اینکه اون موجودیت یه رابطه چند به چند با خودش داره برای نشون دادن ازدواج! حتی اگه ازدواج رو یه موجودیت جدا بگیریم یه سیکل بد جور به وجود میاد از "فرد" به "ازدواج" و از اون باز به "فرد". من هر چی فکر کردم راه دیگه ای به ذهنم نرسید که چه کار باید کرد. چون این جوری اصلا نمی شه با این پایگاه داده کار کرد.
تنها چیز دیگه ای که به ذهنم رسید این بود که دوتا جدول بگیریم و خانم ها و آقایون رو جدا کنیم!!!! حالا بین این دو جدول یه واسط داریم که همون موجودیت ازدواجه. ولی در این حالت هم نمی دونم رابطه ی فرزندی رو چه جوری نشون بدم!:متفکر:
نظرتون چیه؟

نقل قول اولی رو با دقت بخونید.
اینجا مربوط به سوالاتی است که به صورت جامع مسائل رو پوشش میده و کاری به یک سیستم خاص و مسئله ای خاص نداره.

لطفا از تکرار چنین مواردی پرهیز کنید تا این تاپیک مسیر خوبی رو برای پیشرفت پیدا کنه.

اگه بخواهیم مثل سوال شما رو اینجا مطح کنیم باید تقریبا کل بخش رو تو همین تاپیک خلاصه کنیم.

بهتره مثل بقیه اعضا سوالتون رو در یک تاپیک مجزا مطح کنید ، تا بهتر و زودتر به جواب برسید.

ممنون.

دوست عزیز بعد از به جواب رسیدن سئوال اول , مسئله شما رو یه کم بهینه و مطرحش می کنیم.
ممنون

نمیدونم بهینه که بشه چه جور میشه اما من ترجیح میدم سوالات حول محور سوالاتی مثل سوال اول بچرخه ، و وارد مسائل خاص در یک سیستم خاص نشه.

البته احتمالا میشه سوال رو طوری مطرح کرد که جامعیت داشته باشه. انشاالله که این سوال هم بعدا همین طور بشه.

موفق باشید.

Elham_gh
دوشنبه 20 آبان 1387, 07:50 صبح
من تسلط چندانی روی UMLندارم، اما الان داشتم یه جزوه ای رو نگاه می کردم در این مورد، هر چی فکر می کنم می بینم مطرح کردن شرط توی کلاس دیاگرام معنی نداره. عین جمله ای که توی جزوه مهندسی نرم2 دکتر ناظمی اومده رو براتون می نویسم:

"تحلیل گران و برنامه نویسان به نمودار Sequence و Collaboration نگاه خواهند کرد تا ببینند که چگونه {احتمالا یه "در" جا افتاده}منطق سیستم، Object های سیستم پیغام های بین Object ها جریان خواهند داشت ... برنامه نویسان از نمودار Class و نمودار های State Transition استفاده خواهند کرد تا دید جزئی نسبت به قطعات سیستم و چگونگی ارتباط آن ها به دست آوردند."

با توجه به اینکه جریان منطق برنامه (همون شرط) رو مربوط به نمودار های دیگه ای دونسته و کلاس دیاگرام رو برای شرح جزئیات بیشتر هر قطعه سیستم و ارتباط بین اونا در نظر گرفته، من فکر نمی کنم بشه با کلاس دیاگرام این کار رو کرد.(دقت کنیم که اینجا ارتباط ترجمه ی Relation بوده و نه هر ارتباطی که می تونه شامل ارتباط "اگر و آنگاه" ای هم باشه)

با عرض معذرت بابت غیبت چند روزه ام.
دوست عزیز من نگفتم تو class diagram از شزط استفاده کنید. اصولا تو این سئوال اصلا شرط مطرح نیست. شما باید خود عبارت شرط را مدل کنید.
اگه تو این یکی دو روز کسی جوابی نداشته باشه, جواب پیشنهادی خودمو می دم.

Itist82
دوشنبه 20 آبان 1387, 22:03 عصر
اینجا مربوط به سوالاتی است که به صورت جامع مسائل رو پوشش میده و کاری به یک سیستم خاص و مسئله ای خاص نداره.
اگه بخواهیم مثل سوال شما رو اینجا مطح کنیم باید تقریبا کل بخش رو تو همین تاپیک خلاصه کنیم.
.
.
.
نمیدونم بهینه که بشه چه جور میشه اما من ترجیح میدم سوالات حول محور سوالاتی مثل سوال اول بچرخه ، و وارد مسائل خاص در یک سیستم خاص نشه.

البته احتمالا میشه سوال رو طوری مطرح کرد که جامعیت داشته باشه. انشاالله که این سوال هم بعدا همین طور بشه.

ممنون از توجهتون
متوجه هدف تاپیک هستم اما شکل این سوال جوری بود که اگه کلی می گفتم این می شد:
یه موجودیت قوی داریم که با خودش را بطه ی n به n داره، چی کارش کنیم؟
خوب اون وقت شما یا بقیه نمی پرسیدید یعنی چی؟ مثال بزن؟!
فکر کنم اگه این جوری بگیم شبیه همون سوال اول هم می شه و همون طور که شما هم گفتید جامعیت هم داره. البته شاید کمتر سیستمی باشه که همچین چیزی توش به وجود بیاد.

البته فعلا منتظریم سوال اول بسته بشه، لطفا اگه جوابی برای مسئله من دارید بذارید بعد از نهایی شدن سوال دوستمون Elham_gh

Elham_gh
سه شنبه 21 آبان 1387, 14:59 عصر
خوب گویا باید خودم جواب رو بذارم!
برای حل این مسئله می شه از Interpreter Pattern استفاده کرد. یعنی:
http://barnamenevis.org/forum/attachment.php?attachmentid=25400&stc=1&d=1226404607

بدین ترتیب راه حل مسئله می شه:

http://barnamenevis.org/forum/attachment.php?attachmentid=25401&stc=1&d=1226404607

میشه ANDEXP و OREXP رو یکی در نظر گرفت مثلا CompundExp

odiseh
شنبه 25 آبان 1387, 12:59 عصر
در پاسخ به سوال اصلی :
برای نمایش شروط در Class Diagram ، از Constraint ها استفاده می شه که خود Constraint ها هم درون {} ها کنار کلاس نوشته می شوند.

odiseh
شنبه 25 آبان 1387, 13:24 عصر
elham_gh
میشه سوالتون رو با این pattern ای که گذاشتین map کنین و با مثالتون روی این pattern توضیح بدین. من یکی که چیز زیادی دستگیرم نشد.

Elham_gh
یک شنبه 26 آبان 1387, 08:13 صبح
در پاسخ به سوال اصلی :
برای نمایش شروط در Class Diagram ، از Constraint ها استفاده می شه که خود Constraint ها هم درون {} ها کنار کلاس نوشته می شوند.

نه دوست من
Constraint محدودیت روی خود کلاس است. البته در سطح کلاس 2 نوع Constraint داریم. یکی در سطح کل کلاس و یکی در سطح هر attribute.
مثلا شما برای attribute ی به نام نمره دانشجو محدودیت می زارید که باید بین 0 تا 20 باشد.
و یا روی کلاسی به نام کارمند محدودیت می زارید که تاریخ استخدام باید بزرگتر از تاریخ تولد باشد.

اما سئوال من با این جنس محدودیتها سنخیت ندارد.

Elham_gh
یک شنبه 26 آبان 1387, 09:03 صبح
elham_gh
میشه سوالتون رو با این pattern ای که گذاشتین map کنین و با مثالتون روی این pattern توضیح بدین. من یکی که چیز زیادی دستگیرم نشد.

اصولا می دونین که Design Pattern ها الگوهای طراحی هستند. یعنی شرایطی که زیاد در طراحی پیش می یاد مدل شده و به عنوان الگو قابل استفاده و استناد هستند.
یکی از انواع این الگوها Interpreter است.این الگو :
1. گرامر یک زبان را تعریف می کنه . هر گرامر با یک کلاس مشخص می شه.(مثل <=)
2. جملات زبان رو ارائه می ده. جملات داخل گرامر به صورت یک درخت انتزاعی با کلاسهای این الگو ارائه می شوند(مثل age<35 and maritalStatus=Married)
3. جملات زبا رو تفسیر می کنه
الگوی کلی به صورت زیر است.
(شکل 1 جواب)

که در آن Terminal Expression ها عبارات خاتمه دهنده هستند که معمولا لیترال ها هستند.
و Non-Terminal Expression معمولا کلاسهایی هستند که برای پیاده سازی قوانین داخل گرامر زبان به کار می روند. مثل :
1. Alternations
2. Repetitions
3. Sequences
حالا به مدل خودمون یه نگاهی بندازیم ببنیم چطور جمله زیر رو تفسیر می کنه:
Marital Status=Married AND (StartValidDate>EndValidDate OR Age>35)
گرامرهای ما در اینجا = <= >= < > <> AND OR هستند. و لیترالهای ما Married(مقدار ثابت است), 35 , EndValidDate , Age , StartValidDate, Marital Status هستند.
یعنی:
BooleanExp ::= VariableExp | Constant | And | ‘(‘ expression ‘)’ //AbstractExpression
AndExp ::= expression ‘and’ expression //TerminalExpression
Constant ::= ‘true’ | ‘false’ |'married'
VariableExp ::= ‘StartValidDate’ | ‘EndValidDate’ | …// NonTerminalExpression
….

http://barnamenevis.org/forum/attachment.php?attachmentid=25512&stc=1&d=1226815382

Elham_gh
یک شنبه 17 آذر 1387, 10:33 صبح
انگار سئوال دوم رو هم باید خودم مطرح کنم!
این بار یک سئوال خیلی خیلی ساده طرح می کنم.


سئوال دوم-رابطه های مجموعه و زیر مجموعه را چطور در class diagram مدل می کنید؟
نمونه این سوال موارد زیادی است از جمله:
-هر چند پرسنل , یک مدیر دارند
-هر چند بخش یک قسمت را تشکیل می دهند و هر چند قسمت یک معاونت رو تشکیل می دهند و هر چند معاونت یک اداره
-چند شهرستان و شهر و روستا یک استان رو تشکیل می دهند, هر چند استان یک کشور رو تشکیل می دهند و ...

Itist82
یک شنبه 01 دی 1387, 21:43 عصر
در مورد مدل کردن این جور رابطه ها زیاد خوندم اما درست یادم نیست. فکر کنم نمادش شکل خطی بود که از یه کلاس به کلاس دیگه وصل می شد و سرش یه لوزی توخالی یا تو پر داشت. البته من فکر می کنم بهتره نگیم رابطه مجموعه و زیر مجموعه، اینا حداقل در تئوری شی گرایی روابط has a هستند.

Elham_gh
دوشنبه 02 دی 1387, 07:58 صبح
در مورد مدل کردن این جور رابطه ها زیاد خوندم اما درست یادم نیست. فکر کنم نمادش شکل خطی بود که از یه کلاس به کلاس دیگه وصل می شد و سرش یه لوزی توخالی یا تو پر داشت. البته من فکر می کنم بهتره نگیم رابطه مجموعه و زیر مجموعه، اینا حداقل در تئوری شی گرایی روابط has a هستند.

اگه مثلا منظورتون اینه که بین 2 کلاس پرسنل و مدیر یک رابطه Aggrigation یا Composition(سرش یه لوزی توخالی یا تو پر داشت) باید باشه اشتباست.
چرا؟رابطه Aggrigation بین دو کلاس رابطه "جزئی از" بر قرار می کنه.خوب آیا پرسنل جزئی از مدیر است؟؟ مسلما خیر.Composition همان Aggrigation است ولی ارتباط قوی تر است.
از طرفی این قضیه که خوب خود مدیر هم دارای مدیر دیگریست اینطوری قابل پیاده سازی نیست.
پس سعی کنید یه جور دیگه به مسئله نگاه کنید.برای راهنمایی سعی کنید کلاسهاتون رو بشناسید (با مشخص کردن خصوصیات و متدهاشون)

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

Itist82
دوشنبه 02 دی 1387, 16:26 عصر
اگه مثلا منظورتون اینه که بین 2 کلاس پرسنل و مدیر یک رابطه Aggrigation یا Composition(سرش یه لوزی توخالی یا تو پر داشت) باید باشه اشتباست.
چرا؟رابطه Aggrigation بین دو کلاس رابطه "جزئی از" بر قرار می کنه.خوب آیا پرسنل جزئی از مدیر است؟؟ مسلما خیر.Composition همان Aggrigation است ولی ارتباط قوی تر است.
از طرفی این قضیه که خوب خود مدیر هم دارای مدیر دیگریست اینطوری قابل پیاده سازی نیست.
پس سعی کنید یه جور دیگه به مسئله نگاه کنید.برای راهنمایی سعی کنید کلاسهاتون رو بشناسید (با مشخص کردن خصوصیات و متدهاشون)

نه، منظورم این نبود که همچین رابطه ای بین اون کلاس هاست. من مشکلم اینه که به نماد های UML تسلط ندارم! شی گرایی رو با نماد ها اصطلاحات یه متدلوژی دیگه یادگرفتم! فکر می کنم رابطه یه مدیر و کارمندان یه instance connection معمولیه، حد اقل من اگه کلاس دیاگرامشو بکشم این جوری می کشم. یه چیزی مثل یه رابطه یک به چند توی پایگاه داده. در مورد نمادشم دیگه نظر ندم بهتره!



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

Sociant
دوشنبه 23 دی 1387, 16:58 عصر
با سلام
به نظرم میتونیم کلاسهامون رو به این شکل تعریف کنیم:
1- کلاس گروه کاری
شامل :
یک خاصیت از نوع کلاس کارمند با عنوان مدیر
یک خاصیت از نوع آرایه ای از کلاسهای کارمند با عنوان کارمندان یا زیردستان

2- کلاس کارمند

میتونیم بین این دو کلاس ارتباط بر قرار کنیم و اگه اشتباه نکنم میشه تو تعریف آرایه تعداد عناصر رو مشخص کرد!

m_Naderi
سه شنبه 24 دی 1387, 02:59 صبح
با عرض پوزش باید بگم سوال دوم کمی گنگ است . اگرمنظور نویسنده رابطه کل به جزء است که با دو روش می توان این کار را انجام داد:
Composition
Aggregation

Elham_gh
سه شنبه 24 دی 1387, 08:43 صبح
با عرض پوزش باید بگم سوال دوم کمی گنگ است . اگرمنظور نویسنده رابطه کل به جزء است که با دو روش می توان این کار را انجام داد:
Composition
Aggregation

ممنون از شركتتون در بحث.
نه منظور من جزء به كل نيست. منظور من زير مجموعه بودن است.

Sociant
چهارشنبه 25 دی 1387, 10:44 صبح
ببخشید چیزی راجع به راه حل من نگفتین؟!

Elham_gh
چهارشنبه 25 دی 1387, 12:04 عصر
ببخشید چیزی راجع به راه حل من نگفتین؟!

شرمنده من اولين پيغام شما رو اصلا نديده بودم.

اينگونه رابطه ها با يك كلاس لينك ساده پياده سازي است.
مانند زير:(به هر حال هر رئيسي خودش يك كارمند است)


http://barnamenevis.org/forum/attachment.php?attachmentid=27380&stc=1&d=1231923703



دوستان ديگر اگه سئوالات كلي اينچنيني دارند بسم الله

Sociant
پنج شنبه 26 دی 1387, 22:00 عصر
آخه شما گفته بودین مجموعه ای از کارمندا یک رئیس داشته باشن! واسه همین اینجوری طراحی کردم و گرنه طراحی شما کاملا درسته!

لطفا بازم از اینجور سوالات بپرسین. من uml رو فقط تئوری خوندم ، این مدل سوالا میتونه تمرین خیلی خوبی واسه من و امثال من باشه

Elham_gh
شنبه 26 بهمن 1387, 18:13 عصر
انگار کسی دوست نداره تو پرسیدن سئوالها بهم کمک کنه.
باور کنید کار آسونی نیست اگه همکاری نکنید.

سئوال سوم- لایه های مختلف سیستمتون رو چطور مدل می کنید؟

فرض کنید معماری سیستمتون رو لایه در نظر گرفتید
لایه UI
لایه Business Logic
لایه Business Rule
لایه common
لایه Data Access
اینها رو چطور در مدلتون نشون کی دین؟

cups_of_java
یک شنبه 27 بهمن 1387, 12:40 عصر
برای نشون دادن ساختار لایه ای، می شه از نمودار component (در صورتی که لایه هانون روی مولفه ها نگاشت بشن) استفاده کرد. از طرفی از بعد فیزیکی می شه از نمودار Package استفاده کرد براشون استفاده کرد اگه از نظر ساختار فیزیکی هر لایه رو روی یک package نگاشت کنیم.
اما ارتباطاتی مثل وابستگی و یا چیدمان لایه ها (لایه ها افقی هستند یا عمودی) و واسط هایی که در اختیار هم قرار می دن رو در نمودار component می شه نشون داد.

کسی مطلب دیگه ای نداره در این مورد بگه؟

mehdi_m1360
دوشنبه 12 اسفند 1387, 21:34 عصر
فکر میکنم استفاده از پکیج ها و ارتباط بین اونا بهترین راه حله، میشه از ارتباط بین پکیج ها برای نشون دادن معماری استفاده کرد.

تا اونجایی که من میدونم استفاده از component diagram ها برای نشون دادن لایه ها چندان جالب نیست. از اونا بهتر سرجای خودشون و توی Implementation Model استفاده کرد.

در کنار این موضوع، میشه بگید منظورتون از نشون دادن در مدل، نمایش توی design model هتسش؟

Elham_gh
سه شنبه 13 اسفند 1387, 08:13 صبح
در کنار این موضوع، میشه بگید منظورتون از نشون دادن در مدل، نمایش توی design model هتسش؟


بله.منظور design Model است.


(خيلي دوست دارم كه ديگران هم در اين مورد نظر بدن بعد اين بحث رو جمع كنم.اين 2 دوستمون هم ممنون)

mehdi_m1360
دوشنبه 19 اسفند 1387, 16:20 عصر
یه سوال دیگه، چرا باید معماری یه نرم افزار رو توی design model نشون بدیم؟ منظورم اینه که لزوم این کار چیه؟ دقیقتر بگم، وقتی صحبت از نمایش معماری در مدل میشه، باید با دیدن مدل هم طبق یه روش مشخص، بشه معماری رو تشخیص داد اما این موضوع به نظر نمیرسه خیلی مهم باشه به خصوص اینکه معماری سیستم قبل از بحث طراحی تعیین تکلیف شده و در طراحی ما تصمیم داریم به چگونگی پیاده سازی بپردازیم. البته طراحی سیستم متاثر از معماری اون هست اما بهتر نیست معماری سیستم درSoftware Architecture Document بیان بشه؟

cups_of_java
سه شنبه 20 اسفند 1387, 13:57 عصر
یه سوال دیگه، چرا باید معماری یه نرم افزار رو توی design model نشون بدیم؟ منظورم اینه که لزوم این کار چیه؟ دقیقتر بگم، وقتی صحبت از نمایش معماری در مدل میشه، باید با دیدن مدل هم طبق یه روش مشخص، بشه معماری رو تشخیص داد اما این موضوع به نظر نمیرسه خیلی مهم باشه به خصوص اینکه معماری سیستم قبل از بحث طراحی تعیین تکلیف شده و در طراحی ما تصمیم داریم به چگونگی پیاده سازی بپردازیم. البته طراحی سیستم متاثر از معماری اون هست اما بهتر نیست معماری سیستم درSoftware Architecture Document بیان بشه؟


1. کجا گفته که معماری نرم افزار رو توی مدل طراحی نشون می دن؟

2. معماری یه مفهوم عام هست. می تونه به مدل های مختلفی اشاره کنه!

3. هیچ لزومی وجود نداره! روش های مهندسی هر کدوم با توجه به دیدگاه خودشون توصیه هایی می کنند که باید اول منظورشون رو فهمید و بعد با منطق جور در بیاد.
روش های معماری-گرا مثل RUP یا XP یا USDP و ... همه بستری برای مشخص کردن معماری دارند. توی XP این رو با System Metaphor می شناسند. شبیه همون Software Arch. Document

Elham_gh
چهارشنبه 21 اسفند 1387, 08:05 صبح
یه سوال دیگه، چرا باید معماری یه نرم افزار رو توی design model نشون بدیم؟ منظورم اینه که لزوم این کار چیه؟ دقیقتر بگم، وقتی صحبت از نمایش معماری در مدل میشه، باید با دیدن مدل هم طبق یه روش مشخص، بشه معماری رو تشخیص داد اما این موضوع به نظر نمیرسه خیلی مهم باشه به خصوص اینکه معماری سیستم قبل از بحث طراحی تعیین تکلیف شده و در طراحی ما تصمیم داریم به چگونگی پیاده سازی بپردازیم. البته طراحی سیستم متاثر از معماری اون هست اما بهتر نیست معماری سیستم درSoftware Architecture Document بیان بشه؟

با تشكر از جواب cups_of_java

شما به لايه هاي معماري تون در Sequence diagram نياز داريد.
شما نياز داريد مشخص كنيد كه كلاسي كه ايجاد كرديد مربوط به كدوم لايه است.
غير اينه؟

mehdi_m1360
دوشنبه 26 اسفند 1387, 13:01 عصر
با تشكر از جواب cups_of_java

شما به لايه هاي معماري تون در Sequence diagram نياز داريد.
شما نياز داريد مشخص كنيد كه كلاسي كه ايجاد كرديد مربوط به كدوم لايه است.
غير اينه؟

من فکر میکنم اینکه طراحی یک سیستم تحت تاثیر معماری اون باشه با اینکه ما توی طراحی معماری رو نشون بدیم متفاوته!

توی همین معاری چند لایه هم درسته که در بیشتر نمودارهای sequence لایه ها رو در نطر میگیریم اما من فکر نمیکنم کسی باشه که بتونه بگه که یه نمودار sequence صحیح و یا نمودار class یا هر چیز دیگه ای توی طراحی باید معرف معماری ما باشه.

معماری سیستم تاثیر خودشو توی طراحی میزاره اما معکوس اون یعنی شناخت معماری از طریق بررسی طراحی سیستم ( که همون نشون دادن معماری توی طراحیه) معمولا امکان پذیر نیست.

Elham_gh
شنبه 15 فروردین 1388, 14:08 عصر
من فکر میکنم اینکه طراحی یک سیستم تحت تاثیر معماری اون باشه با اینکه ما توی طراحی معماری رو نشون بدیم متفاوته!

توی همین معاری چند لایه هم درسته که در بیشتر نمودارهای sequence لایه ها رو در نطر میگیریم اما من فکر نمیکنم کسی باشه که بتونه بگه که یه نمودار sequence صحیح و یا نمودار class یا هر چیز دیگه ای توی طراحی باید معرف معماری ما باشه.

معماری سیستم تاثیر خودشو توی طراحی میزاره اما معکوس اون یعنی شناخت معماری از طریق بررسی طراحی سیستم ( که همون نشون دادن معماری توی طراحیه) معمولا امکان پذیر نیست.

دوست عزيز،
من منظورم نشان دادن معماري در مستندات طراحي نيست. سئوال من هم اينچنين مطرح نشد.
شما در معماري خيلي چيزها رو مشخص مي كنيد. لايه هايي كه در معماري مشخص مي شوند، اثرشون در مستندات طراحي نشون مي دهند. سئوال اينه چطور اونها مدل شده و نشون دداده مي شوند.

mehdi_m1360
یک شنبه 16 فروردین 1388, 14:18 عصر
تا اونجا که من میدونم حرفی از مستندات نزدم! گرچه توی مستندات طراحی ما مدل رو مطرح میکنم و اساسا تفاوت قائل شدن بین این دو آنهم از این جنس با هم چندان جالب به نظر نمی رسد.



اما در مورد خود سوال،

نکته اول اینکه به نظر میرسه بحث بر روی معماری چند لایه از آن نوعی است که در Net. مطرح میشود، با همان Facadeها و کلاسهایی که تحت الگوی MVC به هم مرتبط میشوند. در واقع ما از قبل الگوی خود را انتخاب کرده ایم.

با توجه به این موضوع، معمولا در نمودارهای Sequence (همچنان که فرمودید) و علاوه بر آن در نمودارهای کلاس (البته تا حدودی) میتوان این معماری را نشان داد. طبیعتا بخشهای مربوط به View و Control در لایه View دیده میشوند(البته من انتقال Control به Business را هم دیده ام که فکر نمی کنم منطقی باشد). و لایه Model مربوط به Business و Data Access میشود. از کلاسهای بخش Common معمولا به عنوان عامل انتقال اطلاعات میان لایه های مختلف استفاده میشود (همان Entityها).
نمودارها Sequence به وضوح شامل 4 ستون میشوند که میتوان آنها را در نمودار به وسیله Box ها و یا Comment مشخص کرد و احتمالا واضح ترین بخش برای مدل کردن معماری همان قسمت است.
اما در حاشیه باید بگم که با این تکنیک و با این معماری و استفاده از Net. عملا الگوهای دیگه رو از دست میدیم که البته کم کاربرد هم نیستند. دلیل اینکه نمودارهای Sequence در این سبک از طراحی مدام معماری را گوشزد میکنند نیز همین عدم استفاده از سایر الگوهاست. چرا که تعیین الگویی که طی آن یک جریان فرعی و یا اصلی قرار است کامل شوند در کنار بررسی کلی رفتار کلاس ها وظایف اصلی نمودارهای sequence هستند و در این صورت در خیلی مواقع نمودارهای Sequence وارد لایه های پایینی نمیشوند (به خصوص وقتی ما نیاز داریم لایه ها را به صورت فیزیکی هم جدا نماییم).

bfarhad
پنج شنبه 11 تیر 1388, 09:16 صبح
سلام من تازه به این جا اومدم
میخواستم اگر لطف کنید یکی منو راهنمایی کنه
من چه طوری باید تجزیه و تحلیل سیستم را یاد بگیرم

cups_of_java
شنبه 13 تیر 1388, 11:19 صبح
سلام من تازه به این جا اومدم
میخواستم اگر لطف کنید یکی منو راهنمایی کنه
من چه طوری باید تجزیه و تحلیل سیستم را یاد بگیرم

به طوری کلی با جستجو در گوگل (و ویکی پدیا) خیلی مطلب پیدا می کنید. کتاب های مرجع هم در هر دانشگاهی شناخته شده است.
۱. مطالعه کتاب های مرجع مربوط مثل کتاب Modern System Analysis and Design (اجباری نیست)
۲. تمرین روی تحلیل سیستم (اجباری نیست)
۳. یاد گیریه شی گرایی
۴. مطالعه کتاب های تحلیل و طراحی شی گرا (معروفترین این ها کتاب آقای Booch هست! ) + یاد گیریه UML
(برای جستجو از Object Oriented Analysis and Design استفاده کنید)
۵. تمرین! آشنایی نحوه کار با روش های به روز تر که عمومن چابک (Agile) هستند.

samanis
سه شنبه 13 مرداد 1388, 11:04 صبح
از تحليلگران و طراحان محترم دعوت ميكنم آگهي استخدام در لينك زير را مشاهده نموده و در صورت علاقمندي رزومه خود را ارسال كنند.
http://www.barnamenevis.org/forum/showthread.php?t=171570

با تشكر

elnazii
سه شنبه 10 شهریور 1388, 23:34 عصر
لطفا جواب رو زود بگيد و ترجيحا mail كنيد : Raha.e84@gmail.com
توضيحات اوليه :
سيستم كتب نفيس(خطي و سنگي ) رو در نظر بگيريد.اين دو نوع يه سري فيلد هاي مشترك دارند كه اونها رو توي يك جدول گرفتم.موند غير مشترك ها.حالا يه جدول واسه سنگي و يه جدول واسه خطي گرفتم تا غير مشترك ها رو توش بذارم.مشك اينجاست كه نمي دونم چي رو كليد بگيرم؟

آيا شماره بازيابي كتاب رو كه منحصر به فرد هست و توي فيلد هاي مشترك كليد گرفتم بيارم توي هر دو تا زير مجموعه و اونجا هم كليد بگيرم ؟ ميشه؟

masoud_z_65
دوشنبه 16 شهریور 1388, 02:56 صبح
با سلام
من توی تاپیک تحلیل انبارداری این سوال رو که مشکلم بود پرسیدم ولی چون که شما اساتید اصلا تحویل نمیگیرید گفتم اینجا بپرسم تا جوابمو بگیرم...ممنون میشم کمکم کنید:
در قسمت primary actor بعضی مواقع مثل use case لیست خریدها پیش میاد که 2تا یا بیشتر actor داریم(انباردار و مدیر سیستم)
میخواستم ببینم اصلا همچین چیزی میشه؟؟
چطور؟

در ضمن تاپیک انبارداری رو هم کمکم کنید (http://barnamenevis.org/forum/showthread.php?t=177493)

masoud_z_65
دوشنبه 16 شهریور 1388, 02:57 صبح
بچه هایی که به تحلیل علافه دارن و استادن خواهشا توی تحلیل انبارداری کمکم کنید شدیدا به کمکتون احتیاج دارم
ممنون

Elham_gh
سه شنبه 17 شهریور 1388, 10:25 صبح
لطفا جواب رو زود بگيد و ترجيحا mail كنيد : Raha.e84@gmail.com
توضيحات اوليه :
سيستم كتب نفيس(خطي و سنگي ) رو در نظر بگيريد.اين دو نوع يه سري فيلد هاي مشترك دارند كه اونها رو توي يك جدول گرفتم.موند غير مشترك ها.حالا يه جدول واسه سنگي و يه جدول واسه خطي گرفتم تا غير مشترك ها رو توش بذارم.مشك اينجاست كه نمي دونم چي رو كليد بگيرم؟

آيا شماره بازيابي كتاب رو كه منحصر به فرد هست و توي فيلد هاي مشترك كليد گرفتم بيارم توي هر دو تا زير مجموعه و اونجا هم كليد بگيرم ؟ ميشه؟

گمان كنم شما Data model مد نظرتون باشه.
شما يك جدول كتيبه داريد كه كليد اون مثلا KatibehID است.اين جدول شامل تمام مشتركات است. 2 تا جدول داريد براي خطي و سنگي كه كليد هر دوي اونها باز همان KatibehID است. يعني اين جداول ارتباط 1 به 1 دارند.
(در حقيقت اين پياده سازي همان generalization است)

Elham_gh
سه شنبه 17 شهریور 1388, 10:31 صبح
با سلام
من توی تاپیک تحلیل انبارداری این سوال رو که مشکلم بود پرسیدم ولی چون که شما اساتید اصلا تحویل نمیگیرید گفتم اینجا بپرسم تا جوابمو بگیرم...ممنون میشم کمکم کنید:
در قسمت primary actor بعضی مواقع مثل use case لیست خریدها پیش میاد که 2تا یا بیشتر actor داریم(انباردار و مدیر سیستم)
میخواستم ببینم اصلا همچین چیزی میشه؟؟
چطور؟

در ضمن تاپیک انبارداری رو هم کمکم کنید (http://barnamenevis.org/forum/showthread.php?t=177493)

اول من يك سئوال!:منظورتون از primary actor چيه؟ اين اصطلاح رو از كجا خونديدن؟

بعدشم جواب شما. هيچ اشكالي نداره يك use case توسط چند actor اجرا بشه.مثل شكل زير(اگه سئوالتون رو درست فهميده باشم)
http://barnamenevis.org/forum/attachment.php?attachmentid=36566&stc=1&d=1252394730

masoud_z_65
سه شنبه 17 شهریور 1388, 15:56 عصر
اول من يك سئوال!:منظورتون از primary actor چيه؟ اين اصطلاح رو از كجا خونديدن؟

بعدشم جواب شما. هيچ اشكالي نداره يك use case توسط چند actor اجرا بشه.مثل شكل زير(اگه سئوالتون رو درست فهميده باشم)
http://barnamenevis.org/forum/attachment.php?attachmentid=36566&stc=1&d=1252394730

درس نرم 2 خوندم
use case text
یک فایل آموزشی و مثال از use case text دارم از استاد خودم آقای سیفی پور هست
اگه مربوط به این تاپیک میشه تا بزارم

ممنون

Elham_gh
چهارشنبه 18 شهریور 1388, 11:17 صبح
درس نرم 2 خوندم
use case text
یک فایل آموزشی و مثال از use case text دارم از استاد خودم آقای سیفی پور هست
اگه مربوط به این تاپیک میشه تا بزارم

ممنون

اين چند تا پيغام آخرم ربطي به ابن تاپيك نداشت :)
اما لطف مي كنيد مطلبي رو كه گفتين در يك تاپيك جديد بگذاريد

masoud_z_65
چهارشنبه 18 شهریور 1388, 23:41 عصر
اين چند تا پيغام آخرم ربطي به ابن تاپيك نداشت :)
اما لطف مي كنيد مطلبي رو كه گفتين در يك تاپيك جديد بگذاريد

فکر نکنم کار درستی باشه برا یک مطلب به ایم کوچیکی 1 تاپیک جدید بزارم ایشالا هرجا بحث use case ها شذ همونجا خواهم گذاشت
ممنون

dariush.bm
جمعه 14 خرداد 1389, 17:12 عصر
Artifact های موجود در نظم­هاي 9 گانه­ي متدلوژي RUP چیست و مختصر توضیح در مورد هر یک؟
من قبلا هم این سوال رو مطرح کردم ولی نمیدونم چرا پاک شد...!!!

Itist82
سه شنبه 25 خرداد 1389, 17:06 عصر
لطفا جواب رو زود بگيد و ترجيحا mail كنيد : Raha.e84@gmail.com
توضيحات اوليه :
سيستم كتب نفيس(خطي و سنگي ) رو در نظر بگيريد.اين دو نوع يه سري فيلد هاي مشترك دارند كه اونها رو توي يك جدول گرفتم.موند غير مشترك ها.حالا يه جدول واسه سنگي و يه جدول واسه خطي گرفتم تا غير مشترك ها رو توش بذارم.مشك اينجاست كه نمي دونم چي رو كليد بگيرم؟

آيا شماره بازيابي كتاب رو كه منحصر به فرد هست و توي فيلد هاي مشترك كليد گرفتم بيارم توي هر دو تا زير مجموعه و اونجا هم كليد بگيرم ؟ ميشه؟

البته من به اندازه کسی که اول جواب داد اطلاعات ندارم فقط اینو که گفتید یاد استاد پایگاه داده ام افتادم. ایشون می گفت ما در تحلیل گاهی اتربیوت های مشترک رو توی یه موجودیت می ریزیم و بعد موجودیت های دیگه ای ازش ارث می برن که خاص مدل های شی گرایی هم نیست. اما در طراحی معمولا اگه دلیل خوبی وجود نداشته باشه اون اتربیوت های مشترک رو عینا در تمام موجودیت های فرزند تکرار می کنیم و روابط یک یه یک رو حذف می کنیم. استاد ما اعتقاد داشتن که در طرح نهایی پایگاه داده عمدتا فقط و فقط باید روابط یک به چند دیده بشه و فقط به خاطر یک سری دلایل خاص ممکنه بذاریم بعضی از یک به یک ها باقی بمونن، مثلا یکی اینکه حجم جدول زیاد بشه و روی کارایی کوئری بخواد تاثیر منفی بذاره و دوم اینکه ادغام نکردن جداول باعث بشه معنی اونا واضح تر باشه و اگه ادغام کنیم یه خورده همه چیز گنگ بشه.

در موردکلید، شما خیلی راحت هر زمان و هر جایی می تونید یه اتربیوت از خودتون بسازید (البته بیشتر در فاز طراحی) و مثلا اسشمو بذارید شماره کتاب، و اونو به عنوان کلید در نظر بگیرید. مثلا یه عدد که یکی یکی زیاد می شه. DBMS ها هم اینو پشتیبانی می کنن. غصه نداره که عزیزم!!
البته باز به خودتون بستگی داره، می تونید همونی رو که گفتید هم، اگه مطمئنید منحصر به فرده، در نظر بگیرید. اما از من که یه خورده تو زندگیم برنامه نویسی کردم اگه می شنوید همون که گفتم خیلی خیلی بهتره، مخصوصا موقع کد زدن.

Sepehr_g
یک شنبه 28 شهریور 1389, 18:43 عصر
با در نظر گرفتن معماری چند لایه برای پیاده سازی یک پروژه
آیا تصمیم در خصوص استفاده از Service Application ها و پیامد آن طراحی
لایه Service به حجم برنامه بستگی دارد؟
اگر جواب مثبت است چه معیارهایی برای تشخیص بزرگی برنامه وجود دارد؟

lomion
یک شنبه 25 مهر 1389, 13:41 عصر
موضوع سرویس معمولا به معماریهای پشتیبانی کننده از سرویس منجر میشه که در اونا معماری مشخصه. استفاده از مفهوم سرویس علاوه بر اندازه به نوع مساله بستگی داره. ممکنه مساله کوچیک باشه ولی به سرویس احتیاج داشته باشه. ممکنه هم بر عکس مساله ای بزرگ باشه اما به سرویس احتیاج نداشته باشه.:لبخندساده: خیلی وقتها مفهوم سرویس به دلیل اسمی که داره مورد استفاده قرار می گیره. :لبخند:
برای بزرگی برنامه معیارهای متفاوتی وجود داره. از بعد طراحی، میشه از تعداد موارد کاربری متعارف و پیچیدگی اونا حدسی در مورد اندازه زد. تعداد زیر سیستمها (بسته بندی منطقی در سطح سیستم) استفاده کرد.

vistacali
یک شنبه 09 مرداد 1390, 17:38 عصر
سلام دوستان من در حال انالیز کردن سیستم رستوران و کافی شاپ هستم، میخوام برنامه اونو بنویسم برای پروژه پایان ترم ولی هر چی گشتم چیز بدرد بخوری گیرم نیومد اگر اطف کنید کی راهنمایی کنید ممنون میشم

behrooz123
پنج شنبه 20 مرداد 1390, 10:18 صبح
با سلام
میشه یه جدول در نظر گرفت که ازدواج رو نشون بده . و بعد هم با تریگر ها رابطه رو پیاده سازی کرد داد. یعنی اینکه توی جدول ازدواج کلید جدول فرد ذخیره بشه و در قسمت بعدی کلید همسرش- واسه اینکه فرزندان هم رو بتونیم دخیره کنیم میتونیم یه فیلد در نظر بگیریم و رابطه رو اونجا بنویسم . در اصل اسم جدول عوض میشه و میشه جدول خویشاوندان .

mahdikoochooloo
سه شنبه 25 مرداد 1390, 10:55 صبح
یک سوال داشتم :
من همینطور که دارم پروژم رو تکمیل می کنم متوجه می شم که خیلی از قسمت های ریزی که تحلیل کرده بودم ناقص بود و خیلی از چیز ها رو تحلیل نکرده بودم(مثلا توابعی برای کار با دیتا گرید). با این حساب به این نتیجه رسیده ام که یک تحلیلگر باید تا آنجا که می تواند ریز شود و تمام توابعی که در سطح برنامه نویسی با آن مواجه می شود را در تحلیل خود لحاظ کند. با این حساب نتیجه می گیریم که یک تحلیلگر باید در بالاترین مرتبه بسیار برنامه نویس قدری باشد.

آیا کسی موافق است؟

Elham_gh
سه شنبه 15 شهریور 1390, 13:24 عصر
یک سوال داشتم :
من همینطور که دارم پروژم رو تکمیل می کنم متوجه می شم که خیلی از قسمت های ریزی که تحلیل کرده بودم ناقص بود و خیلی از چیز ها رو تحلیل نکرده بودم(مثلا توابعی برای کار با دیتا گرید). با این حساب به این نتیجه رسیده ام که یک تحلیلگر باید تا آنجا که می تواند ریز شود و تمام توابعی که در سطح برنامه نویسی با آن مواجه می شود را در تحلیل خود لحاظ کند. با این حساب نتیجه می گیریم که یک تحلیلگر باید در بالاترین مرتبه بسیار برنامه نویس قدری باشد.

آیا کسی موافق است؟

دوست عزیز
یک تحلیلگر و طراح خوب از روز اول تحلیلگر و طراح نیست. باید سابقه ارتباط با مشتری، پشتیبانی، برنامه نویسی داشته باشه و مسلما در این زمینه ها خوب باشه.طراحی که نمی دونه چه طور کد زده می شه، نمی دونه ابزار برنامه نویسی چه تکنیک ها و ابزاری را پشتیبانی می کنه، نمی تونه طراحی خوبی انجام بده.

ehsanocx
چهارشنبه 27 مهر 1390, 17:36 عصر
سلام. وقتتون بخیر.میشه نمودار و تجزیه و تحلیل مربوط به یک ویدئو کلوپ رو برام بذارید. ممنون میشم

Neo2011
شنبه 14 آبان 1390, 13:09 عصر
Class Diagram برای نشان دادن کلاسها و حالتهای ایستای کلاس استفاده میشه و از یک سری کلاس کنترلی یا Boundry برای کنترل استفاده میشه. به نظر من برای کنترل شروط قید شده توسط Elham از رابطه Extend در نمودار UC استفاده میشه و از اونجا که شرطها درون متدها مدل و پیاده سازی میشن و هر یوزکیس یک یا چند متد را مدلسازی میکند، پس شرطها تو UC diagram مدل میشود.

M.S.Developer
چهارشنبه 23 فروردین 1391, 12:06 عصر
سلام به همگی

ببخشید چند تا سوال دارم.

من یکی از دوستام یک پروژه رو برام آورده که فقط یه سری مستندات هستش راجع به اینکه این پروژه چی هستش و با چه پلت فرمی نوشته شده و اینکه پایگاه داده ما چی هستش یصورت کلی.

در ضمن این پروژه یک سایت آنلاین برای فروش موبایل هستش یا به عبارت دیگر یک فروشگاه اینترنتی موبایل که در محیط ASP.NET نوشته شده.

حالا این پروژه رو برای من آورده می گه استاد به من گیر داده گفته این پروژه ناقص و نمودار UML نداره.این بنده خدا هم اصلا این چیزا رو بلد نیست.تازه کدش رو هم خودش همشو ننوشته .دیگه از من خواهش کرده براش انجام بدم.

حالا می خواستم ببینم با این شناختی که من دارم و یه سری کلیات که در این جزوه بهش اشاره شده ، من از کجا شروع کنم و چه تحلیل هایی باید انجام بدم تو محیط نرم افزار Rational Rose .

اگر ممکن هستش دوستان بنده رو راهنمایی کنند.درضمن من کدهای پروژه رو ندارم و دسترسی هم بهشون ندارم.

sabaaaaaa
یک شنبه 20 مرداد 1392, 18:00 عصر
من الان تو یه شرکت کار می کنم که دارن یه نرم افزار می نویسن و همش می گن که این نرم افزار پروتوتایپ...می خوام بدونم این یعنی چی؟
اصلا چرا اول باید پروتوتایپ باشه؟...یا مرحله بعدی چیه؟

behnam1392
یک شنبه 20 مرداد 1392, 18:37 عصر
سلام دوستان. من اولین روزی است که این سایتو میبینم. بنده دنبال نرم افزار رشنال رز که uml2 را پشتیبانی کند هستم ولی هر چی در اینترنت جستجو کردم پیدا نکردم ورژن 7 را هم دارم ولی uml2 را پشتیبانی نمی کند. اگه لینکشو بزارید خیلی ممنون میشم.
با تشکر

cups_of_java
یک شنبه 20 مرداد 1392, 20:55 عصر
من الان تو یه شرکت کار می کنم که دارن یه نرم افزار می نویسن و همش می گن که این نرم افزار پروتوتایپ...می خوام بدونم این یعنی چی؟
اصلا چرا اول باید پروتوتایپ باشه؟...یا مرحله بعدی چیه؟

پروتوتایپ یه نسخه اولیه یا با امکانات کمتر و مهمتر اون نرم افزار نهایی هستش. مثل یه پوسته نازک که همه امکانات رو نداره ولی چند کارکرد مهم نرم افزار رو داره.
دلیل پروتو تایپ زدن در اول داستان اینه که تضمین بشه اون چیزی که میخوایم نهایتن بسازیم همون چیزیه که کاربر میخواد!
مخصوصن در مورد واسط کاربریش (GUI) یه اینترفیس های ساده درست می کنیم که به کاربر نشون بدیم تا ببینه و بتونیم تایید کنیم اون چیزی که فهمدیم از خواسته هاش درسته یا نه
یه دلیل دیگه اینکه که ریسک های تکنولوژیک ساخت نرم افزار رو کم کنیم.

sabaaaaaa
دوشنبه 21 مرداد 1392, 16:45 عصر
واقعا ممنونم.
پروتوتایپ یه نرم افزار قابلیت تحمل دیتای زیاد یا request های زیادو نداره؟
یعنی تا یک مدت محدودی پاسخگو نیازهای کاربرانشه؟

cups_of_java
دوشنبه 21 مرداد 1392, 19:41 عصر
پروتوتایپ یه نرم افزار قابلیت تحمل دیتای زیاد یا request های زیادو نداره؟
می تونه نداشته باشه، در واقع اجباری نیست که داشته باشه، مگر اینکه پروتو تایپ بررسی کارایی و سرعت باشه اصن


یعنی تا یک مدت محدودی پاسخگو نیازهای کاربرانشه؟
نه لزومن! پروتوتایپ اصون نیازها رو براورده نمیکنه. خیلی عملیاتی نیست اصن، بیشتر نشون دادنیه

razzagh2826
شنبه 10 خرداد 1393, 11:46 صبح
سلام چند تا نرمافزار برای تست پروزه های نرم افزاری معرفی کنید برای پورزه دانشگاهی هست که باید ارایه بدم ممنون

faeghe68
دوشنبه 12 خرداد 1393, 10:14 صبح
سلام و روز بخیر
کسی میدونه umberella و enterprise erchitect ea از چه متدلوژی هایی استفاده میکنند؟

namekarbary
جمعه 13 تیر 1393, 01:00 صبح
سلام
کسی در مورد umlسیستم رزرو بلیط اتوبوس میتونه کمک کنه؟
خودم طراحی ها شون و انالیزش رو در حد انالیز همه دیاگراما انجام دادم ولی میخوام ببینم یوزکیس ها کاملند یا نه
ممنون

morowatali
سه شنبه 24 تیر 1393, 14:11 عصر
یکی از دلایلی که نرم افزار پروتو تایپ می تونه باشه اینه که دسترسی به یک ماژول امکان پذیر نیستش و ماهیت درستی از اون وجود نداره و خارج از Domain نرم افزار اصلی هستش با شبیه سازی عملکرد اون ماژول به صورت ساده می تونن نرم افزارشون رو توسعه بدن!
اما پروتوتایپ نوشتن هزینه زیادی داره با یک دموی مناسب تر هم میتونن قابلیت های نرم افزار رو بررسی کنن!

namekarbary
جمعه 27 تیر 1393, 16:21 عصر
سلام
کسی در مورد umlسیستم رزرو بلیط اتوبوس میتونه کمک کنه؟
خودم طراحی ها شون و انالیزش رو در حد انالیز همه دیاگراما انجام دادم ولی میخوام ببینم یوزکیس ها کاملند یا نه
ممنون
واقعا کسی نیست کمک کنه ؟:ناراحت:

amir.h.2001
دوشنبه 06 مرداد 1393, 12:42 عصر
با سلام به همه دوستان و تشکر از elham-gh لطف کنید بگذارید که شکل این صفحه حفظ بشه و صفحه حل مشکلات شخصی نباشه ....از Elham-gh o هم خواهش می کنم که بین سوالات زیاد وقفه نندازه تا مباحث فرعی زیاد شه و اگه می تونه منابعی را معرفی کنه که بقیه هم در جریان بحث باشند و بتونند سوال طرح کنند.با تشکر

mnsissi
جمعه 30 آبان 1393, 14:31 عصر
سلام دوستان،می خواستم بدونم کسی اینجا هست که بتونه به من در پیدا کردن آبجکت های دو سیستم VoiceMail System و Memory Manegement simulation System کمک کنه؟فقط در حد همون نام آبجکت ها می خوام.پیشاپیش ممنون