# مهندسی نرم افزار > مباحث مرتبط با مهندسی نرم‌افزار > تحلیل و طراحی نرم افزار >  نحوه رسم sequence diagram چگونه است؟

## hassan_kahrizy

بسمه تعالی
با سلام
یکی از دوستان در یکی از تاپیک ها عنوان کر که در مدل شی گرا به جای DFDاز sequence diagram استفاده می کنیم.
حال می خواستم بدونم چه چیزهایی در این نمودار مهم است یعنی چه چیزهایی باید با هم ارتباط داشته باشند؟

ببینید ما یک پروژه مدرسه هوشمند داریم،که مثلا یک دانش آموز ابتدا وارد سیستم می شود(لاگ این می شود) سپس با استفاده از لینک ها می تواند گزینه هایی که در اختیارش قرار دادیم(USE CASE) را انجام دهد چطور باید رسمش کنم (لطفا راهنماایی کنید)
در ضمن نمی توان از نمودار COLLOBORATION استفاده کرد
با تشکر

----------


## miimii

به طور کلی برای هر Use-Case که اهمیت دارد این دیاگرام ترسیم می شود.آنچه که اهمیت دارد Actor آن Use-Case و کلاسهای مرتبط با آن است. Sequence Diagram تعاملات بین کلاسها را توضیح می دهد.که غالبا در قالب ارسال Messageاین کار انجام می شود.در این دیاگرام حتی خط عمر هر Object  مشخص می شود. دوست عزیز یک link برایت می فرستم امیدوارم که بدرد بخوره.اگر تونستی در مورد پروژه بیشتر توضیح بده شاید بتونم کمکی کنم.
http://www.smartdraw.com/tutorials/s...e-uml/uml4.htm

----------


## smhoseyni

ضمن تشکر ، فکر می کنم بد نیست دو تا نکته راجع به صحبت های دوستان ذکر کنم : 
1- در UML 2  امکانات بیشتری برای  Sequence Diagram ها پیش بینی شده، مثلا میتوانید یک حلقه (While یا for) را کاملا روی آن نمایش بدهید یا حتی If -then -else  را به راحتی می توان روی آن نمایش داد. البته در حال حاضر Raitonal Rose از UML 2 پشتیبانی نمیکنه ولی Rational XDE تا حدودی و Rational Software Archietct بطور کامل پشتیبانی می کنه.
2- با استفاده از Raitonal rose به راحتی  و کاملا خودکار می توانید  از روی یک Sequence Diagram یک Collaboration Diagram بدست آورید ( با فشردن کلید F5) البته دیاگرام حاصل نیاز به مرتب کردن خواهد داشت.

----------


## gholypur

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

----------


## Elham_gh

> ضمن تشکر ، فکر می کنم بد نیست دو تا نکته راجع به صحبت های دوستان ذکر کنم : 
> 1- در UML 2  امکانات بیشتری برای  Sequence Diagram ها پیش بینی شده، مثلا میتوانید یک حلقه (While یا for) را کاملا روی آن نمایش بدهید یا حتی If -then -else  را به راحتی می توان روی آن نمایش داد. البته در حال حاضر Raitonal Rose از UML 2 پشتیبانی نمیکنه ولی Rational XDE تا حدودی و Rational Software Archietct بطور کامل پشتیبانی می کنه.
> 2- با استفاده از Raitonal rose به راحتی  و کاملا خودکار می توانید  از روی یک Sequence Diagram یک Collaboration Diagram بدست آورید ( با فشردن کلید F5) البته دیاگرام حاصل نیاز به مرتب کردن خواهد داشت.


بله. درسته. 
اما sparx Enterprise Architect  از UML 2.1 کامل پشتیبانی می کنه

----------


## Elham_gh

> بسمه تعالی
> با سلام
> یکی از دوستان در یکی از تاپیک ها عنوان کر که در مدل شی گرا به جای DFDاز sequence diagram استفاده می کنیم.
> حال می خواستم بدونم چه چیزهایی در این نمودار مهم است یعنی چه چیزهایی باید با هم ارتباط داشته باشند؟
> 
> ببینید ما یک پروژه مدرسه هوشمند داریم،که مثلا یک دانش آموز ابتدا وارد سیستم می شود(لاگ این می شود) سپس با استفاده از لینک ها می تواند گزینه هایی که در اختیارش قرار دادیم(USE CASE) را انجام دهد چطور باید رسمش کنم (لطفا راهنماایی کنید)
> در ضمن نمی توان از نمودار COLLOBORATION استفاده کرد
> با تشکر


علاوه بر صحبت دوستان اضافه کنم , sequence diagram علاوه برای مدل کردن flow ی یک use case (یعنی یک سناریو از یک Use case) ,به صورت standalone ,برای مدلسازی dynamic های یک مجموعه ای از object ها هم استفاده می شود

----------


## NazErTan

با سلام
من میخوام یک use case آماده کنم و به برنامه نویس بدم
چیزی که من این وسط میخوام بهش برسم اینه که هدفم اینه که چیزی شبیه شبه کد به برنامه نویس بدم تا بهتر و سریع تر بتونه برنامه رو بنویسه فکر کردم شاید sequence diagram  این کار رو بتونه انجام بده
میخواستم بدونم کسی تجربه ای در این زمینه داره یا نه؟
دقت کنین که هدف من خود شبه کد نیست بلکه چیزی شبیه شبه کد تا برنامه نویس class diagram و use case که من تهیه کردم رو بهتر درک کنه و کار برنامه نویسی راحت تر بشه
ممنون میشم از راهنمائیتون

----------


## cups_of_java

> با سلام
> من میخوام یک use case آماده کنم و به برنامه نویس بدم
> چیزی که من این وسط میخوام بهش برسم اینه که هدفم اینه که چیزی شبیه شبه کد به برنامه نویس بدم تا بهتر و سریع تر بتونه برنامه رو بنویسه فکر کردم شاید sequence diagram  این کار رو بتونه انجام بده
> میخواستم بدونم کسی تجربه ای در این زمینه داره یا نه؟
> دقت کنین که هدف من خود شبه کد نیست بلکه چیزی شبیه شبه کد تا برنامه نویس class diagram و use case که من تهیه کردم رو بهتر درک کنه و کار برنامه نویسی راحت تر بشه
> ممنون میشم از راهنمائیتون


اتفاقا دقیقن همین طوریه! توی اکثر روش های مهندسی نرم افزار، به برنامه نویس Sequence Diagram می دن. هیچ وقت به برنامه نویس نباید Usecase داد. او نمی تونه از usecase استفاده کنه و گیج می شه و خودش باید تصمیم بگیره چطوری اونو پیاده کنه و این خلاف اصول طراحیه.
شما باید به برنامه نویس مجموعه ای از نمودار های کلاس + توالی (گاهی نمودار حالت یا فعالیت) بدین.

----------


## Elham_gh

> با سلام
> من میخوام یک use case آماده کنم و به برنامه نویس بدم
> چیزی که من این وسط میخوام بهش برسم اینه که هدفم اینه که چیزی شبیه شبه کد به برنامه نویس بدم تا بهتر و سریع تر بتونه برنامه رو بنویسه فکر کردم شاید sequence diagram  این کار رو بتونه انجام بده
> میخواستم بدونم کسی تجربه ای در این زمینه داره یا نه؟
> دقت کنین که هدف من خود شبه کد نیست بلکه چیزی شبیه شبه کد تا برنامه نویس class diagram و use case که من تهیه کردم رو بهتر درک کنه و کار برنامه نویسی راحت تر بشه
> ممنون میشم از راهنمائیتون


 با تاييد نظر دوستمون، شما ناچاريد براي ادامه طراحي sequence diagram تون رو با همون سبك و سياقي كه گفتيد در بياريد و گرنه نه تنها برنامه نويس بلكه خود شما براي ادامه طراحي تون با مشكل مواجه مي شيد.
من در اين زمينه تجربياتي دارم، اگر سئوالي داشتيد كمك خواهم كرد

----------


## NazErTan

ممنون از هر دو دوست عزیز
خوب من تا به امروز از rational rose استفاده میکردم
چند تا سوال دارم
1: آیا با rational rose میشه sequence diagram رسم کرد طوری که بشه مفاهیمی شبیه if , else ,... رو توی اون نشون داد؟ (توجه کنین که هدف من چیزی شبیه شبه کد هست)
2: من اون نرم افزاری که بالا معرفی شده (sparx Enterprise Architect) رو دانلود کردم، پیشنهاد شما استفاده از کدام نرم افزاره و چرا؟
3:لطف کنین و به من بگین که چطور میتونم مفاهیم برنامه نویسی رو در sequnece diagram  بیارم؟ مفاهیمی مثل if , else , ...

4: نمیدونم شاید باید برای این سوالم تاپیک جدیدی باز میکردم؟ اگر اینطوره به من بگین

----------


## Elham_gh

> ممنون از هر دو دوست عزیز
> خوب من تا به امروز از rational rose استفاده میکردم
> چند تا سوال دارم
> 1: آیا با rational rose میشه sequence diagram رسم کرد طوری که بشه مفاهیمی شبیه if , else ,... رو توی اون نشون داد؟ (توجه کنین که هدف من چیزی شبیه شبه کد هست)
> 2: من اون نرم افزاری که بالا معرفی شده (sparx Enterprise Architect) رو دانلود کردم، پیشنهاد شما استفاده از کدام نرم افزاره و چرا؟
> 3:لطف کنین و به من بگین که چطور میتونم مفاهیم برنامه نویسی رو در sequnece diagram  بیارم؟ مفاهیمی مثل if , else , ...
> 
> 4: نمیدونم شاید باید برای این سوالم تاپیک جدیدی باز میکردم؟ اگر اینطوره به من بگین



جواب سئوال اولتون : با اينكه خيلي وقته كه ديگه با rational rose كار نمي كنم ، اما 100% اين امكانات وجود داره.
در جواب سئوال دومتون: بايد بگم در اين مورد تاپيكهاي زيادي در موردش وجود داره با يك جستجو مي تونيد اونها رو پيدا كنيد.
مثل اينها:
https://barnamenevis.org/showthread.php?t=121075
يا
https://barnamenevis.org/showthread.php?t=130875

3: اين مفاهيمي كه شما گفتيد مثل if , else  همشون notaion داره. شما tools تون رو مشخص كنيد ، اگه EA  بود من مي تونم كمك كنم و اگه tools ديگري بود، دوستان جوابتون رو مي دن.

----------


## cups_of_java

توصیه اکید می شه که نمودار های توالی خودتون رو شلوغ نکنید. آوردن جزییات کد و توالی توی نمودار توصیه نمی شه چون از قابل درک بودن کلیت توالی اجرا کم می کنه.

----------


## RFNBNKR

باز هم ممنون از لطفتون
خوب من تا امروز از rational استفاده میکردم اما با گشتی که زدم متوجه شدم که rational بازدهی کمتری نسبت به EA و VP داره مخصوصا با توضیحاتی که آقای SMhoseyni داده بودن https://barnamenevis.org/showth...light=Rational
اما هنوز نتوستم تفاوت های VP و EA رو بفهمم گرچه فکر میکنم که کاملا گشتم 
پروژه ای که ما کار میکنیم با تکنولوژی J2EE هست با این حال شما مزیت خاصی بین این دو برای من میبینین؟ (راستشو بخواین به خاطر سبکی و این که اکثرا از EA تعریف میکن بیشتر به این نرم افزار تمایل پیدا کردم و هم VP و هم EA رو دانلود کردم)

به هر حال من حتما به کمک شما احتیاج دارم

----------


## RFNBNKR

راستی شما تا حالا لینک زیر رو دیدین؟ به نظرتون مطالبش به درد بخور هست؟
http://www.enterprise-architecture.info/

----------


## Elham_gh

> راستی شما تا حالا لینک زیر رو دیدین؟ به نظرتون مطالبش به درد بخور هست؟
> http://www.enterprise-architecture.info/



دوست عزيز، اميدوارم اين enterprise-architecture رو با اون EA اشتباه نگرفته باشين. اين دو هيچ ربطي به هم ندارند. اين سايت در مورد معماري سازماني است. سايت EA:
http://www.sparxsystems.com.au/

----------


## RFNBNKR

نه اشتباه نگرفته بودم
Elham_gh شما تا حالا با VP کار کردین؟ محیطش بسیار کاراست
امکانات گرافیکی زیادی داره و حتی کمی هوش مصنوعی هم داره
مثلا اگر شما 2 تا کلاس ایجاد کنید با رابطه n به n ، خودش کلاس واسط رو براتون میسازه
البته این با کمی کار کردن بدست اومده مسلما امکانات بیشتری داره
یا وقتی شما فرضا actor اضافه میکنین تمام کنترل هایی که روی این actor اعمال میشه رو در کنار اون میاره و کاربری راحتی ایجاد میکنه
نمیدونم اما من نتونستم این امکانات رو در EA ببینم، چنین امکاناتی در اون وجود داره؟
EA با MSoffice خوب match هست؟
من این سوال ها رو این جا میپرسم چون در هیچ تاپیکی نتونستم جوابشو پیدا کنم :گیج:

----------


## Elham_gh

> نه اشتباه نگرفته بودم
> Elham_gh شما تا حالا با VP کار کردین؟ محیطش بسیار کاراست
> امکانات گرافیکی زیادی داره و حتی کمی هوش مصنوعی هم داره
> مثلا اگر شما 2 تا کلاس ایجاد کنید با رابطه n به n ، خودش کلاس واسط رو براتون میسازه
> البته این با کمی کار کردن بدست اومده مسلما امکانات بیشتری داره
> یا وقتی شما فرضا actor اضافه میکنین تمام کنترل هایی که روی این actor اعمال میشه رو در کنار اون میاره و کاربری راحتی ایجاد میکنه
> نمیدونم اما من نتونستم این امکانات رو در EA ببینم، چنین امکاناتی در اون وجود داره؟
> EA با MSoffice خوب match هست؟
> من این سوال ها رو این جا میپرسم چون در هیچ تاپیکی نتونستم جوابشو پیدا کنم


متاسفانه خير. تا حالا با VP كار نكردم و از اونجا كه درگير يك پروژه زمانگيرم فكر نكنم فرصت بشه تا مدتي هم برم سراغش. اما خيلي لطف مي كنيد كه كماكان نكات مثبتش رو اينجا به اطلاع ما هم برسونيد.
در مورد اين امكاناتي كه گفتيد :
"مثلا اگر شما 2 تا کلاس ایجاد کنید با رابطه n به n ، خودش کلاس واسط رو براتون میسازه
البته این با کمی کار کردن بدست اومده مسلما امکانات بیشتری داره" با اينكه امكان جالبيه ، اما زياد كارآمد نيست. شايد به اين دليل اينو مي گم كه با EA  كار ميكنم و كلاس واسط رو خودم مي سازم. اما سئوال به هر حال مگه نبايد خودتون بريد و نامي براي كلاستون انتخاب كنيد؟
"وقتی شما فرضا actor اضافه میکنین تمام کنترل هایی که روی این actor اعمال میشه رو در کنار اون میاره و کاربری راحتی ایجاد میکنه" راستش من اينو درست متوجه نشدم.

با اينكه خيلي EA رو دوست دارم ( به خصوص اينكه تيمي داره كه پاسخگوي سئوالات شماست) اما شنيدم(فقط شنيدم! صحتشو نمي دونم) كه VP از EA قوي تر هستش.
حالا كه شما داريد با VP دست و پنجه نرم مي كنيد ، اگه امكانات و ويژگي هاشو بگيد من هم مقايسه اون رو در EA بهتون مي گم. فكر مي كنم بحث خوبي بشه ، اما نه در اين تاپيك چون موضوعات سنخيت نداره. در اون صورت لطف كنيد يك تاپيك جديد ايجاد كنيد.

ممنون

----------


## RFNBNKR

البته من هنوز به این نتیجه نرسیدم که از VP استفاده کنم و فقط سعی کردم خیلی سطحی به مسئله نگاه کنم و امکانات اولیه رو ببینم
اما حتما یه تاپیک باز میکنم تا دوستان دیگه هم اگر تجربیاتی دارن اونجا مطرح کنن
من هنوز به این احتیاج دارم که بتونم تصمیم درستی برای انتخاب یکی از این دو نرم افزار بگیرم و فکر میکنم داره این پروسه انتخاب زیادی طولانی میشه

----------


## RFNBNKR

در مورد کلاس واسطی که ایجاد میکنه مثلا اگر نام کلاس های شما course و student  باشه خودش کلاس واسطی به اسم student_course ایجاد میکنه همراه با رابطه هاشون

در اون موردی که متوجه نشدین هم نمیدونم چطور توضیح بدم اما فکر میکنم اگر فیلم هایی که در خود سایت VP هست ببینین متوجه میشین

----------


## RFNBNKR

یک تاپیک ایجاد کردم برای مقایه نرم افزارها
https://barnamenevis.org/showth...036#post677036

----------


## mohamad100000

من با vp كار مي كنم ، و برام قياس نيست كه بخوام امكانات و محيط كاربري اونو با Rose مقايسه كنم.چونكه vp واقعا يك شاهكاره
اما چيزي كه در اين نرم افزار ها بايد دقت بشه
1- مسله generator Code هستش ... اينكه تمايل داريد كدتون رو بر اساس چه  زباني ژنراتور كنيد و اينكه اون نرم افزار قابليت ژنراتور  كردن اون كد رو  با آن زبان داشته باشه يا نه؟
2-دومين مسله قابيلت مستند سازي خودكار نرم افزار هستش ، مطمئنن يك برنامه  نويس فرصت زيادي براي ارائه مستندات رو نداره ، و بايد بگم كه VP در مستند  سازي رتبه اولو داره

----------

