کارگاه مدلسازی.

Download Report

Transcript کارگاه مدلسازی.

‫استاد ‪ :‬مهندس رضایی‬
‫دانشگاه جامع علمی کاربردی‬
‫نیمسال اول ‪90-91‬‬
‫کارگاه مدلسازی‬
‫فصل ‪1‬‬
‫‪‬‬
‫مبانی و دالیل ساخت مدلها‬
‫‪‬‬
‫مدل نما یا تجسمی از یک واقعیت است‪.‬‬
‫‪‬‬
‫‪1‬دلیل برای مدلسازی‬
‫‪‬‬
‫مدل را می سازیم تا درک بهتری از سیستمی که قصد ساخت آن را داریم داشته باشیم‪(.‬ساخت سیستم‬
‫با کیفیت بهتر)‬
‫‪‬‬
‫اهداف مدلسازی‬
‫‪.1‬‬
‫مدلها به ما کمک می کنند تا یک سیستم را آنطور که هست و یا آنطور که می خواهیم باشد‪ ،‬مشاهده‬
‫کنیم‪.‬‬
‫‪.2‬‬
‫مدلها به ما امکان مشخص کردن رفتار و ساختار یک سیستم را می دهند‪(.‬منظور از رفتار خدمتی‬
‫است که سیستم قرار است ارائه دهد و منظور از ساختار این است که سیستم از چه اجزایی ساخته‬
‫شده و این اجزا به چه صورت به هم مرتبط شده اند‪.‬‬
‫‪.3‬‬
‫مدلها به ما یک قالبی رائه می دهند که توسط آن قالب می توانیم محصول را بهتر بسازیم‪.‬‬
‫‪.4‬‬
‫مدلها تصمیماتی را که ما می گیریم مستند می کنند‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫*نکته‪:‬‬
‫ما برای سیستم های پیچیده مدل می سازیم چرا که درک و پیاده سازی تمام پیچیدگی های‬
‫آن برای ما کار مشکلی است‪.‬‬
‫* انتخاب مدلهایی که برای ساخت یک محصول استفاده می شوند‪ ،‬کاملا با نحوه ی ساخت‬
‫محصول مرتبط است‪.‬‬
‫هر مدل می تواند در سطوح دقت مختلفی ساخته شود‪.‬‬
‫معمولا در مراحل اولیه‪ ،‬مدلها به صورت کلی ساخته می شوند و سپس بر مبنای آنها طی‬
‫مراحلی مدلهای تفصیلی ایجاد می شوند‪.‬‬
‫مدلهای مناسب‪ ،‬مدلهایی هستند که تطابق کامل با واقعیت دارند‪(.‬تطابق مدل با سیستمی که‬
‫در نهایت تولید می شود‪).‬‬
‫هیچ مدلی به تنهایی غالبا ا برای ساخت یک محصول کفایت نمی کند و در اکثر اوقات‪ ،‬ما‬
‫مجبوریم مدلهای مختلفی را ایجاد کنیم‪(.‬مجموعه ای از مدلهای مختلف برای بخشهای‬
‫مختلف سیستم)‬
‫‪‬‬
‫در نرم افزار دو الگوی عمده برای ساخت مدل و جود دارد که عبارتند از ‪:‬‬
‫‪.1‬‬
‫‪ Structural‬ساختاری‬
‫‪.2‬‬
‫‪ Objet Oriented‬شیء گرایی‬
‫‪‬‬
‫‪‬‬
‫در مدل ساختاری(ساخت یافته) نرم افزار از عناصر ریشه ای به نام ‪( procedure‬ماژول یا‬
‫‪ )function‬ساخته می شود و تمرکز اصلی در این نوع مدلسازی بر مبنای جریان داده ها می باشد‬
‫و مشکل این روش این است که در هنگام تغییرات نیازمندیها و بزرگ شدن سیستم پشتیبانی و‬
‫نگهداری سیستم بسیار مشکل می شود و از طرف دیگر به دلیل عدم وجود قطعات پایه ای قابل‬
‫استفاده مجدد یا ‪class‬ها و ‪component‬ها فرآیند تولید‪ ،‬کندتر می باشد و مدلسازی شیءگرا‪،‬‬
‫تأکید بر روی ‪class‬ها و رفتار آنهاست و تولید نرم افزار با استفاده از این نوع مدلسازی سریعتر و‬
‫باکیفیت مناسب تری انجام می شود‪.‬‬
‫زبان ‪ UML‬زبانی است برای ساخت مدلهای رفتاری و ساختاری شیءگرا که عمدتا ا در مدلسازی‬
‫نرم افزار استفاده شده ‪ ،‬اما بعضا ا می تواند در مدلسازی سایر محصولت نیز به کار گرفته شود‪.‬‬
‫‪‬فصل ‪2‬‬
‫‪‬‬
‫‪‬‬
‫مروری بر زبان ‪UML‬‬
‫‪UML‬زبانی است که از آن برای مدلسازی استفاده می شود و جزئی از روال تولید یا ‪process‬‬
‫تولید نرم افزار است‪ .‬زبان ‪ UML‬با ‪process‬های متفاوتی از قبیل فرآیند ‪ RUP‬و تا ح ّدی ‪XP‬‬
‫همگونی دارد و به عبارت کلی وابسته به یک فرآیند خاص نیست اما اگر بخواهیم در رابطه با تطابق‬
‫‪ UML‬با پروسس ها یا فرآیندهای تولید نرم افزار نکته ای را یادآوری کنیم‪ ،‬این مورد است که‬
‫‪ UML‬بیشترین همگونی را با ‪process‬های ‪usecase( usecase driven‬محور) معماری‬
‫محور‪ ،‬تکراری و افزونه ‪ ،‬بیشترین تطابق را دارد‪.‬‬
‫‪‬‬
‫‪‬‬
‫(‪ UML‬با ‪ waterfall‬استفاده نمی شود‪).‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪ UML‬زبانی است برای مشاهده‪ ،‬مشخص کردن‪ ،‬ساختن و مستندسازی سیستم های مختلف‬
‫بخصوص سیستم های نرم افزاری‪.‬‬
‫عناصر سازنده ی زبان ‪: UML‬‬
‫‪.1‬‬
‫‪( Things‬مؤلفه ها یا اشیاء)‬
‫‪.2‬‬
‫‪( Relationships‬ارتباطات)‬
‫‪.3‬‬
‫‪( Diagrams‬نمودارها)‬
‫‪‬‬
‫‪ Things‬به چهار دسته تفکیک می شود‪:‬‬
‫‪‬‬
‫‪ Structural Things .1‬اشیاء ساختاری‬
‫‪‬‬
‫‪ Behavioral Things .2‬اشیاء رفتاری‬
‫‪‬‬
‫‪ Grouping Things .3‬اشیاء گروه بندی شده‬
‫‪‬‬
‫‪ Annotation Things .4‬اشیاء آگاه کننده‬
Structural Things .1
‫ یعنی آنها غالبا ا قسمت‬.‫ هستند‬UML ‫ اشیاء ساختاری همانند اسامی در مدلهای‬
.‫) مدل ما را می سازند‬static(‫ایستای‬
.‫ها تغییر کند‬actor ‫) می تواند بسته به نوع نقش یا رفتار‬dynamic( ‫ مدل پویا‬
‫ هفت نوع مختلف اشیاء ساختاری‬،UML ‫ در زبان‬.‫این پویایی مدل را می رساند‬
: ‫وجود دارند که به ترتیب عبارتند از‬
Class .1
Interface .2
Collaboration .3
Use cases .4
active classes .5
components .6
nodes .7
 Structural Things
 Structural things are the nouns of UML models. These
include classes, interfaces, collaborations,use cases,
active classes, components, and nodes.
‫‪.1‬‬
‫‪‬‬
‫‪‬‬
‫‪Class‬‬
‫‪ Class‬توصیفی از مجموعه ای از اشیاء است که دارای ویژگی ها‪ ،‬عملگرها‪ ،‬ارتباطات و مفاهیم یکسان‬
‫هستند‪.‬‬
‫یک ‪ Class‬می تواند یک یا بیش از یک ‪( interface‬رابطه) را پیاده سازی نماید‪ .‬از لحاظ گرافیکی‬
‫نمایش یک ‪ Class‬به صورت زیر است که در آن از یک ‪ BOX‬که به قسمتهای مختلفی تفکیک شده‬
‫استفاده می کند‪ .‬بالترین قسمت ‪ Box‬نشان دهنده ی نام ‪ ،Class‬قسمت بعدی نشان دهنده ی‬
‫‪attribute‬ها یا ویژگی های ‪ Class‬و قسمت بعد نشان دهنده ی رفتارها و توابع ‪ Class‬می باشد‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪( Interface .2‬واسط)‬
‫مجموعه ای از عملیاتی است که مشخص کننده ی سرویسی از یک ‪ class‬یا ‪ component‬می‬
‫باشد‪ .‬نمایش ‪ interface‬در زبان ‪ UML‬با یک دایره می باشد که در زیر آن نام ‪interface‬‬
‫ذکر می شود‪.‬‬
‫‪( Collaboration .3‬همکاری)‬
‫مجموعه ای از نقش ها و سایر اجزاست که با کمک یکدیگر و در کنار هم رفتاری را انجام می دهند‬
‫که کاملتر و یا جامعتر از رفتار تک تک آن اجزاست‪ .‬نمایش ‪ Collaboration‬در زبان ‪UML‬‬
‫با یک بیضی نقطه چین همانند مثال زیر است‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪:Usecase .4‬‬
‫‪Usecase‬ها توصیف مجموعه ای از عملیات هستند که سیستم برای رسیدن به یک نتیجه ی مشخص و‬
‫در ارتباط با ‪actor‬های خاصی انجام می دهد‪.‬‬
‫از ‪Usecase‬ها برای نشاند دادن ساختار اشیاء رفتاری در یک مدل استفاده می کنیم‪ .‬منظور این است که‬
‫‪ Usecase‬نشان دهنده ی نحوه ی انجام رفتارهای مهم در حوزه ی مورد نظر می باشد‪ .‬نمایش‬
‫‪ Usecase‬با یک بیضی است که در داخل آن نام ‪ Usecase‬ثبت می شود‪.‬‬
‫‪‬‬
‫سه مؤلفه بعدی عبارتند از ‪:‬‬
‫‪‬‬
‫‪ Active classe‬کلسهای فعال‬
‫‪‬‬
‫‪ Components‬مؤلفه ها‬
‫‪‬‬
‫‪ Nodes‬نودها‬
‫‪‬‬
‫که هر سه آنها از لحاظ شکل شبیه ‪class‬ها بوده و در زیر به شرح آنها می پردازیم‪.‬‬
‫‪‬‬
‫‪ Active classe .5‬کالسهای فعال ‪:‬‬
‫‪‬‬
‫‪ Class‬ماهیت اجرایی ندارد‪ abstract(.‬مجرد است‪).‬‬
‫‪‬‬
‫‪Class ,Active classe‬ی است که ‪object‬هایی از آن کلس وجود دارد که یک یا بیش از یک‬
‫‪ Process‬و یا ‪ thread‬از آنها در حال اجرا می باشد‪ .‬کلس اکتیو همانند ‪ classe‬با یک ‪ box‬نشان‬
‫داده می شود که خطوط مرزی آن قطورتر رسم می شود‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪( Components .6‬مؤلفه ها)‪:‬‬
‫یک ‪ ،component‬یک جزء فیزیکی و قابل تعویض از یک سیستم است که مجموعه ای از سرویس ها‬
‫را ارائه می دهد‪.‬‬
‫‪ Component‬ماهیت اجرایی دارد و می تواند خود شامل مجموعه ای از ‪class‬ها باشد‪ .‬در زبان‬
‫‪ component ، UML‬را با شکل زیر نمایش می دهند‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪Node .7‬‬
‫‪ Node‬یک مؤلفه ی فیزیکی بوده که در هنگام اجرای یک سیستم وجود دارد و حاوی عناصر‬
‫سخت افزاری لزم برای محاسبه از قبیل ‪ cpu‬و ‪ memory‬می باشد‪.‬‬
‫‪ Computer‬و ‪ router‬هر کدام یک نود هستند‪(.‬سخت افزارهایی که نرم افزارها روی آنها‬
‫اجرا می شوند نود هستند‪ ).‬نمایش نود با یک مکعب مربع می باشد که نام نود در آن ذکر می‬
‫گردد‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫مؤلفه های رفتاری‬
‫اشیاء رفتاری جزء پویا (‪ )Dynamic‬زبان ‪ UML‬بوده و در حقیقت نشان دهنده ی افعال‬
‫مدل ما می باشد و بیانگر رفتار در زمان و مکان مشخصی هستند‪ .‬دو نوع اساسی از اشیاء‬
‫رفتاری وجود دارند که عبارتند از ‪:‬‬
‫‪( Interaction .1‬فعل و انفعال‪ ،‬تبادل)‬
‫یک رفتاری است که شامل مجموعه ای از ‪message‬هاست که بین مجموعه ای از اشیاء‬
‫برای رسیدن به یک هدف مشخص ر ّد و بدل می شود‪ .‬نمایش ‪ Interaction‬توسط یک پیکان‬
‫توپر می باشد‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪ .2‬ماشین وضعیت یا ‪: state machine‬‬
‫یک ماشین وضعیت‪ ،‬رفتاری است که نشان دهنده ی مجموعه ای از حالتهاست که یک شیء و‬
‫یا یک فعل و انفعال در سیر زندگی خود‪ ،‬در پاسخگویی به وقایع محیط بیرونی می تواند داشته‬
‫باشد‪.‬‬
‫نمایش یک ‪ state machine‬با یک ‪ box‬با گوشه های خمیده می باشد‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪( Grouping Things .3‬اشیاء دسته بندی)‪:‬‬
‫از این دسته برای قرار دادن اجزای مختلف در یک قالب استفاده می کنیم و در زبان ‪،UML‬‬
‫تنها یک نوع از آنها وجود دارد که بسته یا ‪ package‬نام دارد‪ .‬بسته یا ‪ package‬عبارت‬
‫است از یک مکانیسم عمومی برای سازماندهی اشیاء در داخل گروهها‪ .‬این اشیاء می توانند‬
‫اشیاء ساختاری و یا رفتاری باشند‪ .‬نمایش ‪ package‬در زبان ‪ UML‬به شکل زیر است‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪(Annotation Things .4‬اشیاء توصیفی)‪:‬‬
‫اشیاء توصیفی قسمت شرح دهنده در زبان ‪ UML‬بوده و از آنها برای توضیح یا شرح بیشتر‬
‫اشیاء استفاده می کنیم‪ .‬یک شیء توصیفی اصلی در زبان ‪ UML‬به نام ‪ Note‬وجود دارد که‬
‫با شکل گرافیکی زیر نشان داده می شود و در داخل آن هرگونه شرح یا توضیحی که کمک به‬
‫شفاف شدن مدل کند‪ ،‬می توان ارائه داد‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫جزء دوم از زبان ‪(relationship ،UML‬ارتباطات) است‪.‬‬
‫در زبان ‪ 4 ، UML‬نوع ارتباط به شرح زیر وجود دارد‪:‬‬
‫‪Dependency‬‬
‫‪Association‬‬
‫‪Generalization‬‬
‫‪Realization‬‬
‫این ارتباطات برای برقراری وابستگی بین قسمتهای مختلف زبان ‪ UML‬مورد استفاده قرار‬
‫می گیرند که در زیر به شرح آنها می پردازیم‪.‬‬
‫‪( Dependency .1‬وابستگی) ‪:‬‬
‫وابستگی یک ارتباط بین دو مؤلفه یا دو چیز است که در آن اعمال تغییر بر روی یکی از آنها‬
‫منجر به تغییر در دیگری می شود و آن را با نماد زیر(پیکان خط چین دار) نشان می دهیم‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪( Association .2‬همکاری)‪:‬‬
‫‪ Association‬یک ارتباط ساختاری می باشد که با یک ‪ link‬یا اتصال نشان داده شده و‬
‫برای بیان ارتباط بین اشیاء مناسب است‪.‬‬
‫از لحاظ گرافیکی آن را با یک خط راست نشان می دهیم و تعداد کمیت هر شیء را نیز می‬
‫توانیم ذکر کنیم‪.‬‬
‫‪Generalization .3‬‬
‫که در آن ارتباط بین اشیائ را در حالتی نشان می دهد که یک شیء (فرزند) نمونه ی خاصی از‬
‫شیء دیگری(والد) می باشد‪.‬‬
‫مثلا انسان نمونه ای از یک جاندار است‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪‬‬
‫‪Realization .4‬‬
‫که از آن برای برقراری ارتباط بین مجموعه ای از ‪classifier‬ها استفاده می کنیم‪ .‬به طور‬
‫کلی از این نوع ارتباط برای مقاصد زیر استفاده می کنیم‪:‬‬
‫برای نشان دادن ارتباط بین ‪class‬ها یا ‪component‬ها با ‪interface‬ها‬
‫برای نشان دادن ارتباط بین ‪Usecse‬ها با ‪collaboration‬ها‬
‫جزء سوم و بسیار مهم زبان ‪ UML‬نمودارها هستند که در فصل آتی با تک تک آنها آشنا می‬
‫شویم‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪ Usecase‬مشخص کننده ی رفتاری از سیستم و یا بخشی از سیستم است و شامل مجموعه ای‬
‫از عملیات است که سیستم برای رسیدن به یک نتیجه ی خاص و ارائه ی آن نتیجه به یک‬
‫‪ actor‬انجام می دهد‪.‬‬
‫‪Actor‬ها در خارج از سیستم قرار دارند و با سیستم در ارتباطند سرویسی ارائه داده یا‬
‫سرویسی می گیرند ‪.‬‬
‫از ‪Usecase‬ها برای نشان دادن رفتار سیستم بدون در نظر گرفتن چگونگی آن رفتار استفاده‬
‫می کنیم‪.‬‬
‫در ‪Usecase‬ها نگرش ما با نگرش پیاده سازی فاصله دارد و در آن اصلا به پیاده سازی و‬
‫چگونگی آن رفتار فکر نمی شود‪.‬‬
‫‪Usecase‬ها به تولیدکنندگان و استفاده کنندگان از نرم افزار دید واحد و مشترکی در رابطه با‬
‫امکانات نرم افزاری که قرار است ساخته شود می دهد‪.‬‬
‫یک ‪ Usecase‬شامل مجموعه ی فعل و انفعالتی است که بین سیستم و محیط بیرونی‬
‫آن(‪actor‬ها) انجام می شود‪.‬‬
‫عوامل بیرونی(‪actor‬ها) می توانند انسان ‪ ،‬سیستم های نرم افزاری‪ ،‬سخت افزاری و حتی‬
‫زمان هم باشد‪ .‬یک ‪ Usecase‬نشان دهنده ی حجم مشخصی از کارهایی است که یک سیستم‬
‫انجام می دهد‪.‬‬
: ‫ها‬usecase ‫ها و‬Actor 
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪: Ac tor‬‬
‫‪Actor‬ها معرّف نقشهایی هستند که این نقشها می توانند با سیستم ارتباط برقرار کنند‪ .‬به‬
‫صورت نمونه ‪Actor ،‬ها شامل انسان ها‪،‬سایر سیستم های نرم افزاری و یا سخت افزاری می‬
‫باشند و نکته ی بسیار مهم در ارتباط با آنها این است که آنها در خارج از سیستم زندگی می‬
‫کنند‪ Actor(.‬موجودیتی است در خارج از سیستم که با عناصر سیستم ارتباط برقرار می کند‪.‬‬
‫برای معرفی ‪Actor‬ها از نماد آدمک استفاده می کنیم و بین ‪Actor‬ها می تواند ارتباطی از‬
‫جنس ‪(generation‬ارث بری) وجود داشته باشد‪.‬‬
‫ارتباط بین ‪Actor‬ها و ‪usecace‬ها توسط ارتباطی است به نام ‪ association‬یعنی بین‬
‫‪ Actor‬و ‪ usecase‬وابستگی وجود ندارد بلکه تنها می توانند با هم ارتباط برقرار کنند‪.‬‬
‫(با هم مرتبطند ولی به هم وابسته نیستند‪).‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪Usecase‬ها و جریان های وقایع‪:‬‬
‫یک ‪ usecase‬نشان می دهد که یک سیستم یا زیرسیستم یا ‪ interface‬چه کاری انجام می‬
‫دهد بدون آنکه وارد جزئیات تفصیلی آن شود‪ usecase(.‬می تواند در سطوح ‪abstraction‬‬
‫‪ ،‬سیستم ‪،‬زیرسیستم یا ‪ interface‬اجرا شود‪).‬‬
‫یعنی یک شمای کلی از سرویس قابل ارائه توسط آن سیستم را به نمایش می گذارد و وارد‬
‫جزئیات آن نمی شود‪.‬‬
‫در کنار یک نمودار ‪ usecase‬نیاز داریم شرح یا توضیح اضافه ای داشته باشیم که عملکرد‬
‫‪ usecase‬را به شفافی نشان می دهد‪(.‬عملیات ذکر شده را به صورت ریزتر و جزئی تر بیان‬
‫کند‪).‬‬
‫با ذکر جریان های اطلعاتی می توان عملیات یک ‪ usecase‬را تشریح کرد‪.‬‬
‫هر ‪ usecase‬دارای یک جریان اصلی و احتمالا تعدادی جریان فرعی می باشد‪.‬‬
‫جریان اصلی انجام کلیه ی فرایندها در داخل ‪ usecase‬به صورت ایده آل می باشد‪.‬‬
‫جریان فرعی ‪ :‬جریانی است که به هر علت نحوه ی انجام کار یا رفتار سیستم را از حالت ایده‬
‫آل یا صحیح خارج می کند‪.‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬
‫‪.8‬‬
‫‪.9‬‬
‫‪.10‬‬
‫‪.11‬‬
‫برای بیان یا نشان دادن جریان ها در ساده ترین حالت می توان از متون(‪ )context‬استفاده‬
‫کرد‪ .‬جریان اصلی برداشت پول از سیستم ‪:ATM‬‬
‫کاربر کارت را وارد دستگاه ‪ ATM‬می نماید‪.‬‬
‫پیغام خوش آمد ظاهر می شود‪.‬‬
‫انتخاب زبان مورد نظر ‪.‬‬
‫صفحه ی ورود رمز ظاهر می شود‪.‬‬
‫کاربر رمز را وارد می کند‪.‬‬
‫رمز به سرور ارسال شده و پیغام خوش آمد ورود به سیستم ظاهر می شود‪.‬‬
‫کاربر عملیات مورد درخواست خود را انتخاب کرده و مبلغ مورد نظر را انتخاب می کند‪.‬‬
‫مبلغ درخواستی با موجودی چک می شود‪.‬‬
‫مبلغ درخواستی از موجودی کسر می شود‪.‬‬
‫‪ ATM‬پول را به کاربر پرداخت کرده و رسید ارائه می دهد‪.‬‬
‫‪ ATM‬کارت را به کاربر برمی گرداند‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫هر گونه اتفاقی که سیستم را از روال صحیح انجام آن رفتار بازدارد جریان فرعی است مثل‬
‫صحیح نبودن رمز ‪،‬عدم اتصال به سیستم شتاب‪ ،‬کسر موجودی‪.‬‬
‫برای بیان جریان اصلی یا جریانات فرعی می توان از شبه کد(‪ )sudeo code‬هم استفاده کرد‪.‬‬
‫ترتیب توالی جریانات می تواند در کیفیت سیستم تأثیرگذار باشد‪.‬‬
‫مراحل مدل کردن رفتار یک سیستم(سیستم‪،‬زیرسیستم‪: )interface ، class ،‬‬
‫مدل کردن (‪) requirement، business model‬‬
‫‪ .1‬مشخص کردن ‪actor‬هایی که با آن عنصر (سیستم‪،‬زیرسیستم‪)interface،actor،‬‬
‫ارتباط برقرار می کند‪Actor .‬های نمونه می تواند شامل گروهی باشد که نیاز به برقراری‬
‫ارتباط متقابل با سیستم برای ارائه ی سرویس های سیستم دارد‪.‬‬
‫‪Actor‬ها و سیستم نیاز متقابل یا دوطرفه به هم دارند‪.‬‬
‫‪ .2‬سازماندهی ‪actor‬ها با مشخص کردن نقش های عمومی و نقش های خاص (‪ admin‬و‬
‫‪ user‬که ‪ admin‬خود نوعی از نوعی از ‪ user‬است‪).‬‬
‫باعث می شود ارث بری درست پیاده سازی شود‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫دیدن وراثت باعث می شود حجم کدی که تولید می شود کم شود‪ user(.‬پودمانی و ‪ user‬ترمی‬
‫ثبت نام یکسان و انتخاب واحد جداگانه دارند‪ .‬می توان از یک کد ثبت نام برای هر دو استفاده‬
‫کرد به جای تکرار کد‪).‬‬
‫‪ .3‬برای هر ‪ ،actor‬راه هایی که آن ‪ actor‬با آن جزء یا قسمت ارتباط برقرار می کند را‬
‫مشخص می کنیم و ارتباطاتی که باعث تغییر حالت آن عنصر یا جزء می شود را می بینیم‪ .‬و یا‬
‫ارتباطاتی که در پاسخ به وقایع خارجی می تواند اتفاق بیفتد را نیز در نظر می گیریم‪( .‬ورود به‬
‫یک سیستم با لگین ‪ user‬یا ‪)admin‬‬
‫‪ .4‬علوه بر این راه های خاصی که ‪ actor‬با آن جزء ارتباط برقرار می کند را در صورت‬
‫لزوم در نظر می گیرد‪(.‬مثال یک ‪actor‬ی به نام ‪ user‬قصد ‪ login‬شدن به سیستم را دارد‬
‫راه اول ورود ‪ username‬و ‪ password‬است ‪ .‬راه دیگر استفاده از اثرانگشت و راه دیگر‬
‫استفاده از سیستم تشخیص چهره می باشد‪.‬‬
‫‪ Actor‬دانشجو و ‪ usecase‬انتخاب واحد‪:‬‬
‫انتخاب واحد اینترنتی‬
‫انتخاب واحد دستی‬
‫واگذاری آن به مدتی بعد‬
‫همه ی آنها باید به طور همزمان دیده شوند‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫سازمان دهی رفتارها به صورت ‪usecase‬ها و برقراری ارتباطات بین ‪ usecase‬ها که‬
‫عمدتا ا شامل ارتباطات ‪ include‬و ‪ extend‬هستند‪.‬‬
‫به طور خلصه در ارتباط ‪ include‬ما انجام یک رفتار را در داخل رفتارهای دیگر تکرار‬
‫می شود را شناخته و آن را بصورت یک رفتار مج ّزا انتخاب می کند و در ارتباط ‪extend‬‬
‫حالتهای مختلفی که یک رفتار می تواند صورت پذیرد را بررسی می کنیم‪.‬‬
‫‪(Extend‬خرید کال یا خودمان برای خرید کال برویم یا سفارش بدهیم کالی مورد نظرمان را‬
‫با پیک به ما برسانند‪ .‬عمل خریدن در هر دو مورد اتفاق میفتد اما به طرق مختلف‪).‬‬