لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 48
فصل اول
1- 1 مقدمهusecase ها
با توجه به مفاهیم کلاسها مورد مهمی در uml را بررسی میکنیم که همان usecase ها هستند. دراین فصل موضوعات زیر مطرح میشوند :
usecase چیست
ساختن یک usecase
محتویات یک usecase
extend یک usecase
تحلیل یک usecase
در گذشته با دیاگرامهایی برخورد کردیم که دیدگاه ثابتی در مورد کلاسهای سیستم ارائه میکرد. به سراغ دیاگرامهایی میرویم که دیدگاهی پویا ارائه میکند ونشان میدهد چگونه سیستم و کلاسهایش با گذشت زمان تغییر میکنند .دیدگاه ثابت به روابط بین تحلیلگر و طراحان سیستم کمک میکند و دیدگاه پویا به روابط بین تحلیلگر وگروه طراحان کمک میکند و به طراحان اجازه میدهد که برنامه بنویسند .
مشتری و تیم طراحان یک مجموعه مهم از امینان سیستم را تشکیل می دهند. نه دیدگاه ثابت و نه دیدگاه پویا، کارکرد سیستم را از نقطه نظر کاربر نشان نمیدهند. فهمیدن این دیدگاه کلیدی است برای ساختن سیستمی که مفید وقابل استفاده باشد. این دیدگاه تقاضاها را بررسی میکند وکار کردن با آن آسان (و حتی جالب است) است.
مدل کردن سیستم از دیدگاه کاربر آن، کار usecase است . در این فصل درباره اینکه usecase چیست و چه کاری انجام میدهد صحبت میکنیم و همچنین درباره چگونگی استفاده از دیاگرام usecase در تصویرسازی در UML بحث میکنیم .
2- 1 usecase ها چه هستند ؟
چندین سال قبل من یک فاکس خریدم. وقتی که برای خرید به دفتر تهیهکننده رفته بودم با سطح وسیعی از انتخاب ها برخورد کردم. چگونه باید تصمیم خوبی میگرفتم؟ از خودم پرسیدم میخواهم با فاکس چه کاری انجام بدهم؟ چه مواردی را نیاز دارم، چه اعمالی را میخواهم با فاکس انجام بدهم؟ آیا میخواهم کپی بگیرم؟ به کامپیوتر متصلش کنم؟ به عنوان scanner از آن استفاده کنم؟ میخواهم فاکسها را به سرعت بفرستم، که به سرعت شمارهگیر احتیاج داشته باشم؟میخواهم تشخیص بدهم که fax آمده یا کسی تلفن کرده است ؟
از مراحل یک پردازش مانند مراحل بالا وقتیکه یک خرید بدون انگیزه را ترتیب دادیم گذشتیم. در تحلیل یک فرم از usecase چه کاری انجام میدهیم ؟ از خود میپرسیم چگونه از یک محصول یا سیستم استفاده میکنیم، تا پول خود را به خوبی خرج کنیم. بنابراین مهمترین چیز این است که نیازها را بشناسیم .
این نوع پردازش مخصوصاً برای بخش آنالیز سیستم طراحی شده است .چگونه کاربرها از درایور سیستم از همان راهی که شما طراحی کردهاید و سیستم را ساختهاید استفاده می کنند ؟
usecase یک ساختار است که به تحلیلگر سیستم که با کاربر کار میکند، کمک میکند تا سیستم کاربردیی را طراحی کند .
اصطلاح جدید : usecase مجموعهای از سناریوها است که سیستم از آنها استفاده میکند. هر سناریو یک ترتیب زمانی از وقایع را شرح میدهد. هر ترتیب زمانی به وسیله شخصی یا سیستمی دیگر یا یک قطعهای از سختافزار و یا بهوسیله گذر زمان بنا نهاده میشود. موجودیتهای که ترتیب زمانی را شروع میکنند actor نامیده میشوند. ترتیب زمانی باعث میشود که استفادههای دیگری از actor توسط کسانی که actor را بنا گذاشتهاند و یا توسط دیگر actor ها بشود .
3- 1 چراusecase ها مهم هستند ؟
تنها یک راه با ارزش برای تحریک مشتری به صحبت در مورد دیدگاهش درباره سیستم وجود دارد. usecase یک ابزار عالی برای تحریک مشتری است. معمولاً تحریک مشتری برای صحبت مفصل در مورد چگونگی استفادهاش از سیستم کار آسانی نیست. چراکه توسعه سیستمهای قدیمی اغلب یک پردازش اتفاقی است، که در تحلیل بسیار کوتاه است. کاربرها برخی مواقع وقتی در مورد ورودیهایشان از آنها سوال میشود، گیج میشوند . ایدهای موجود این است که سیستمی که کاربرها با آن کار میکنند را در مراحل اولیه آنالیز و تحلیل سیستم در نظر بگیریم. این کار احتمال اینکه سیستم در نهایت برای کاربر بهتر شود را بالا میبرد ، مثل تعویض مفاهیم محاسباتی یک سیستم قدیمی که باعث گیج شدن کاربران برای کار با آن میشود.
4- 1 یک مثال : ماشین نوشابه
فرض کنید که میخواهیم یک ماشین نوشابه طراحی کنیم. برای بدست آوردن دیدگاه کاربران باید با چند نفر از کاربران برای دانستن نحوه برخوردشان باسیستم مصاحبه کنیم. زیرا عمل اصلی ماشین این است که به مشتری اجازه میدهد یک قوطی نوشابه بخرد ، بنابراین کاربران سریعاً به ما میگویند که مجموعهای از سناریوها(به عبارتیusecase ها)را داریم که احتمالاً عنوان ”خرید نوشابه“ را دارند. بنابراین هر سناریو ممکن را بررسی میکنیم. توجه داریم که در طراحی سیستم معمولی سناریوها در اثر صحبت با کاربر به وجود میآیند.
1-4- 1 usecase خرید نوشابه
actor این usecaseمشتری است، که میخواهد یک قوطی نوشابه بخرد. مشتری سناریو را با انداختن پول آغاز میکند. سپس او امکان انتخاب دارد. اگر همه چیز به خوبی پیش برود دست کم یک قوطی نوشابه به مشتری تحویل داده میشود.
با توجه به مراحل ترتیب زمانی باید به تصویر دیگری از سناریو توجه شود. چه پیش زمینهای باعث تحریک مشتری برای آغاز کردنusecase خرید نوشابه میشود؟ تشنگی یکی از شرایط آشکار است. چه شرایط بعدی لازمه مراحل سناریو است؟ دوباره آشکارترین مورد این است که مشتری یک نوشابه دارد. آیا سناریویی که تعریف کردیم تنها سناریو ممکن برای این مسئله است؟ موارد دیگری هم سریعاً به ذهن میآین . ممکن است نوشابه دیگری غیر از آنچه مشتری خواسته تحویل داده شود. ممکن است مشتری پول کافی برای قیمت نوشابه را وارد نکرده باشد. چگونه میتوان ماشین را با این سناریو طراحی کرد؟
به مرحله دیگر از usecase خرید نوشابه میرویم. به سراغ سناریو alternative میرویم. مشتری usecase را با انداختن پول به داخل ماشین آغاز میکند. سپس امکان انتخاب دارد، اما ماشین در انتها قوطی نوشابهای که انتخاب شده را تحویل نمیدهد و به مشتری پیام میدهد که پول خارج از محدوده ماشین است. پیام باید به گونهای باشد که مشتری را برای انتخاب دیگر تحریک کند. همچنین ماشین باید پیشنهادی برای پس دادن پول به مشتری بدهد. در این جا، مشتری نوشابه دیگری را انتخاب میکند و ماشین آن را تحویل میدهد (اگر انتخاب جدیدی صورت نگیرد نوشابه نیز فروخته نمیشود) و یا عمل تحویل پول اتفاق میافت . شرایط بعدی، تحویل یک قوطی نوشابه یا تحویل پول است.
سناریو دیگری نیز ممکن است اتفاق بیفتد. ”خارج از محدوده“ پیامی است که زمانیکه ماشین موجودی نداشته باشد نمایان میشود و در این مرحله باقی میماند تا زمانی که دوباره پر شود و بتواند نوشابه را تحویل دهد. در این مرحله ممکن است که مشتری پول را نیانداخته باشد. مشتری که ما ماشین را برایش طراحی کردهایم ممکن است سناریو اول را ترجیح بدهد. اگر مشتری پول را وارد ماشین کرده ممکن است مایل باشد انتخاب دیگری انجام بدهد، تا اینکه در مورد پس دادن پول از او سوال شود.
سناریوی دیگری را بررسی میکنیم که مقدار پول به اندازه قیمت نوشابه نباشد. دوباره مشتری usecase را آغاز میکند، که مراحل معمولی را تکرار میکند و یک انتخاب میکن . فرض میکنیم نوشابه انتخابی موجود باشد. اگر ماشین اندوخته پولی داشته باشد تا بتوند پول را خرد کند، بقیه پول را پس میدهد و نوشابه را هم تحویل میدهد. حال اگر اندوخته پول نداشته باشد، پول را برمیگرداند و پیامی میدهد که از مشتری میخواهد پول کافی را وارد کند. شرایط قبلی حالات معمولی است. شرایط بعدی تحویل نوشابه با مابقی پول است و هم ماشین کل پول را پس میدهد، میباشد.
امکان دیگر این است که اندوخته پول ماشین تمام شده باشد. یک پیام از مشتری میخواهد که پول کافی را وارد کند. ممکن است این پیام تا هنگامی که اندوخته ماشین پر شود نمایان باشد.
2-4- 1 Usecaseهای اضافی
ماشین خرید نوشابه را از دیدگاه مشتری بررسی کردیم. علاوه بر مشتری کاربران دیگری هم وجود دارند . یکی از آنها تهیهکننده است که در ماشین نوشابه میگذارد و دیگری تحصیلدار است، (ممکن است همان تهیهکننده باشد) که پولهای جمع شده در ماشین را جمع آوری میکن .
این مورد روشن میکند که حداقل دو usecase ،اضافهتر باید ساخته شود. موجودی داخل ماشین گذاشتن وجمعآوری پول ماشین که جزئیات آنها در اثر صحبت با تهیهکننده و تحصیلدار روشن میشود.
usecase گذاشتن نوشابه داخل ماشین را بررسی میکنیم. تهیهکننده یک usecaseرا آغاز میکند، زیرا مدتی از کارکرد ماشین گذشته است. تهیهکننده قفل ماشین را باز میکند (که پیادهسازی نمیشود)، قسمت جلویی ماشین باز میکند و ظرفیت ماشین را پر میکند. تهیهکننده اغلب اندوخته پول را هم خالی میکند. سپس قسمت جلویی ماشین را میبندد و ماشین را قفل میکند. شرایط قبلی در مدت قبلی اجرا میشود، شرایط بعدی این است که تهیهکننده مجموعه جدیدی از اجناس را داشته باشد.
برای usecase جمعآوری پول، تحصیلدار یک usecase را آغاز میکند، زیرا مدتی از کار ماشین گذشته است. تحصیلدار مراحلی را که برای موجودی گذاشتن داخل ماشین وجود داشت را با باز کردن قفل و قسمت جلویی ماشین طی میکند. سپس تحصیلدار پول را برمیدارد و مراحل بستن قسمت جلویی ماشین و قفل کردن آن را مانند مراحل usecase گذاشتن نوشابه داخل ماشین طی میکند. شرایط قبلی گذشتن مدتی از کار ماشین و شرایط بعدی برداشتن پول توسط تحصیلدار است.
توجه داریم که هنگامیکه یک usecase را میسازیم نباید نگران تکمیل آن باشیم. در مثالی که زدیم به داخل ماشین توجهی نکردیم. به اینکه یخچال ماشین چگونه کار میکند توجهی نداشتیم، یا در جریان پول داخل ماشین نبودیم. ما فقط تلاش کردیم که ببینیم یک ماشین نوشابه با فردی که میخواهد از آن استفاده کند چگونه رفتار میکند. هدف گرفتن مجموعهای از usecaseها است که سرانجام به افرادی که میخواهند ماشین را طراحی کنند و افرادی که می خواهند ماشین را بسازند ارائه میشود. گسترش دادن usecaseها برآنچه مشتری، تهیهکننده و تحصیلدار میخواهند تاثیر میگذارد و نتیجه ماشینی است که تمام این گروهها به راحتی میتوانند از آن استفاده کنند.
5- 1 Include یک usecase
در usecase قرار دادن نوشابه در ماشین وusecase جمعآوری پول باید به یک سری مراحل عمومی توجه شود.
هر دو با باز کردن قفل و در ماشین آغاز میشوند و با بستن قفل و در ماشین پایان مییابند. آیا میشود یکی از دو نسخه مراحل را از یکی از دو usecase حذف کرد؟ راه ممکن برای انجام این کار این است که هر کدام از مراحل زمانی عمومی را گرفته و یک usecase اضافی برای هر کدام بگیریم. سپس مراحل باز کردن قفل و در ماشین را در یک usecase با نام نمایش داخل ماشین ترکیب کرده و مراحل بستن در و قفل ماشین را در یک usecase با نام پنهان کردن داخل ماشین ترکیب میکنی .
با این usecaseهای جدید گذاشتن نوشابه داخل ماشین با usecase نمایش داخل ماشین آغاز میشود. تهیهکننده مراحل قبل را طی کرده و با usecase پنهان کردن داخل ماشین به انتها میرسد. همچنین usecase جمعآوری پول با usecase نمایش داخل ماشین آغاز شده و مراحل قبلی را طی میکند و با usecase پنهان کردن داخل ماشین تمام میشود. همانطور که دیدیم قرار دادن نوشابه و جمعآوری پول در یک usecase جمع شدهاند، بنابراین با این روش استفاده دوباره از usecase به محتویات آن برمیگردد.
نسخه جدید uml به include،usecase به عنوان usecase استفاده شده تعبیر میکند. ممکن است هنوز روش قدیمی موجود باشد. including دو مزیت دارد . اول : واضحتر است. مراحل usecase اول شامل مراحل دیگری هم هست. دوم : از آشفتگی و شلوغی جلوگیری میکند. این راه را نباید به عنوان استفاده دوباره از usecase به وسیله خودش تلقی کرد.
6- 1 توسعه دادن usecase
میتوان از usecase در روش دیگری غیر از include استفاده کرد. بعضی اوقات میتوان یک usecase جدید را با اضافه کردن بعضی مراحل به usecase موجود ساخت. به usecase قرار دادن نوشابه برمیگردیم. قبل از قرار دادن قوطیها در ماشین، فرض میکنیم تهیهکننده به نوشابهای که خوب فروش میرود و نوشابهای که خوب
لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 53
آموزش توسعه نرم افزار های شیء گرا توسط UML
فصل اول: مفاهیم شیء گرایی
مقدمه
شئ گرایی برای توسعه نرم افزار اولین بار در سال 1960 پیشنهاد شد، این روش پس از 20 سال به طور گسترده مورد استفادة جامعه نرم افزاری قرار گرفت. توسعه دهندگان نرم افزار در دهه 1980 توجه جدی خو د را روی شئ گرایی معطوف کردند. تکنولوژی شئ، قابلیت استفاده مجدد را برای مؤلفه های نرم افزاری به ارمغان آورد و این نیز به نوبه خود در تسریع توسعه نرم افزار و تولید محصول با کارایی بالا تاثیر بسزایی دارد؛ بعلاوه سیستمهای شئ گرا، براحتی قابل توسعه و به سهولت با محیط سازگار- از نظر تعامل با سیستمهای موجود در محیط استفاده از نرم افزار- می شوند . دیدگاه شئ گرایی یک سیر تکاملی دارد؛ همچنانکه در بخشهای بعدی خواهیم دید، تعیین همه کلاسهای لازم برای یک سیستم دریک تکرار تا اندازه ای غیرممکن است و به محض تکمیل مدلهای تحلیل و طراحی نیاز به کلاسهای جدید در سیستم نمایان می شود.
درک سیستمهای پیچیده وتولید نرم افزار برای چنین سیستمهایی توسط افرادی که در این زمینه تجربه کافی ندارند، کاری بس مشکل است . همچنین محصولی که این افراد تولید می کنند کارایی لازم را نخواهد داشت، در اینجا مهندسی نرم افزار به کمک افراد آمده و با مطالعه روشها و فنون مختلف مسیر توسعه و تولید نرم افزار را هموار می- سازد. تجربیات بدست آمده در این زمینه، متدها و فرآیندهای متنوعی را برای توسعه نرم افزار در اختیار توسعه دهندگان قرار داده و ابزارهای مناسبی نیز این روشها را پشتیبانی می کنند.
درتوسعه یا ساخت نرم افزار برای یک سیستم، مشتری باید تعریف دقیقی از سیستم را در اختیار توسعه دهنده قرار دهد. در توصیف سیستم، زبان طبیعی تا آن اندازه دقیق نیست که بتوان همه نیازمندیها، ساختار و رفتار سیستم را با آن بیان کرد و کد نویسی نیز چنان وارد جزئیات می شود که به یکباره نمی توان سیستم را در این سطح تشریح کرد. لذا برای درک سیستم دست به مدل سازی می زنیم و مؤلفه های سیستم ، زیر سیستمها و رفتار سیستم را به صورت نمودارهای گرافیکی ترسیم می نماییم تا موارد قابل کاربرد و مهم به صورت برجسته به چشم بخورد و هیچ موردی در حوزة سیستم از قلم نیافتد .
در متد شئ گرا از زبان مدلسازی استانداردUML که در فصل چهارم به تفصیل خواهدآمد، استفاده می شود. این زبان به وسیله ابزارهای مختلفی نظیر Rational Rose ، visio و … پشتیبانی می شود، میتوان ازUML در فرآیندهای مختلف استفاده کرد.
مفاهیم اساسی
در این بخش مفاهیم اساسی توسعة نرم افزار شئ گرا را معرفی می کنیم. در بالا به متد و فرآیند اشاره شد اما هیچ تعریفی از آنها ارائه نشد، حال این دو مفهوم کلی را بصورت زیر تعریف می کنیم.
متد، متدلوژی و اشیاء
متد مجموعه ای از وظایف را جهت تعیین نیازمندیها، تحلیل، طراحی، برنامه ریزی، تست و پشتیبانی مشخص می کند. از نظر فنی فرآیند توسعه نرم افزار- متدلوژی- یک قالب کاری برای وظایف لازم جهت ساختن یک نرم افزار با کیفیت بالاست. در واقع متدلوژی، فرآیندی ساختارمند جهت توسعه نرم افزار است که به وسیله فنون و ابزارها حمایت می شود.
متد شئ گرا برپایه شئ استوار است، دیدگاه شئ گرا دنیای واقعی مسئله را بصورت مجموعه ای از اشیاء مرتبط به هم می بیند. شئ یک موجودیت است که در دامنة مسئله نقش تعریف شده ای دارد و دارای حالت، رفتار و شناسة خاص خودش است. شئ می تواند یک ساختار ، نقش ، مکان و ... باشد؛ شئ داده و رفتار را در خود کپسوله میکند و از دسترسی اشیاء دیگر به داده های خود جلوگیری و همچنین تا ثیر تغییرات محیطی بر این داده ها را کاهش می دهد و تنها راه دسترسی به این داده ها استفاده از اعمال یا سرویس های خود شئ می باشد. کلاس نوع اشیاء را نشان می دهد و شامل ویژگی های مشترک مجموعه ای از اشیاء می باشد، شئ نمونه ای از کلاس است . داده های شئ تحت عنوان صفات در کلاس شناخته می شوند و مقادیر این صفات است که شئ را از دیگر اشیای همنوع متمایز می نمایند. اعمال به دستکاری تعداد محدودی از صفات می پردازند و ارتباط بین کلاس ها و دیگر عناصرسیستم نیز از طریق همین سرویسها- اعمال – صورت می گیرد. به عبارت دیگر کلاس یک مشخصه کلی (قالب ، الگو یا طرح اولیه )است که مجموعه ای ازاشیاء مشابه را نشان می- دهد.نماد گرافیکی کلاس در شکل زیر نشان داده شده است، این نماد شامل سه قسمت است که بترتیب نام کلاس ، لیست صفات و لیست اعمال را نشان می دهند.
------------------------ نام کلاس
------------------------ لیست صفات
------------------------ لیست اعمال
------------------------
با تعریف کردن اشیاء موجود در سیستم از نوع یک کلاس خاص، این اشیاء همه صفات، اعمال و روابط کلاس مربوطه را به ارث می برند. یک فوق کلاس شامل ویژگی های مشترک صفات و اعمال جمعی از کلاسهاست و زیرکلاس یک حالت خاص ازفوق کلاس است که به آن تخصیص نیزگفته می شود. این تعاریف از وجود یک سلسله مراتب نشان می دهد که در آن کلاسهای تعمیم(فوق کلاس) توسط کلاسهای تخصیص به ارث برده می شوند، ممکن است که هر کدام ازکلاس های تخصیص دارای یکسری صفات و اعمال اختصاصی اضافی باشند. مجموعه مقادیر موجود برای یک صفت در یک کلاس، دامنه مقادیر آن صفت را نشان می دهد.
پیامها وسیله برقراری ارتباط و تعامل بین اشیاء می باشند ، این پیامها شئ مقصد را تحریک می کنند تا یک کار خاص را انجام دهد. سرویسی که در شیء فرستنده پیام تولید می کند، یک پیام با قالب message:[destination, operation, parameters] ارسال میکند که در آن destination شیء گیرنده و operation سرویسی از شیء گیرنده است که پیام را دریافت می کند و parameters شامل اطلاعات لازم جهت انجام موفق سرویس خواسته شده است. شکل 1-2 مثالی از کلاسهای تعمیم و تخصیص را نشان می دهد که در آن برای دانشجو یک فوق کلاس دانشجو داریم که شامل داده ها و اعمال مشترک بین دانشجویان دورة لیسانس و فوق لیسانس است، همچنین دو زیر کلاس تخصیص جداگانه برای دانشجویان لیسانس و فوق لیسانس نشان داده شده است که حالات خاصی از کلاس دانشجو هستند. در عمل ما شیئی از نوع فوق کلاس دانشجو نخواهیم داشت، در این حالت به کلاسstudent یک کلاس مجرد گفته می- شود . کلاس مجرد کلاسی است که هیچ شیئی از آن نوع نداشته باشیم.
کپسوله سازی، ارث بری و چند ریختی
با توجه به مطالب ذکر شده در بالا، شیء گرایی به واسطه سه خاصیت مهم کپسوله سازی، ارث بری و چند ریختی یک روش منحصر بفرد است . بطور کلی کپسوله سازی تکنیکی است که
لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 48
فصل اول
1- 1 مقدمهusecase ها
با توجه به مفاهیم کلاسها مورد مهمی در uml را بررسی میکنیم که همان usecase ها هستند. دراین فصل موضوعات زیر مطرح میشوند :
usecase چیست
ساختن یک usecase
محتویات یک usecase
extend یک usecase
تحلیل یک usecase
در گذشته با دیاگرامهایی برخورد کردیم که دیدگاه ثابتی در مورد کلاسهای سیستم ارائه میکرد. به سراغ دیاگرامهایی میرویم که دیدگاهی پویا ارائه میکند ونشان میدهد چگونه سیستم و کلاسهایش با گذشت زمان تغییر میکنند .دیدگاه ثابت به روابط بین تحلیلگر و طراحان سیستم کمک میکند و دیدگاه پویا به روابط بین تحلیلگر وگروه طراحان کمک میکند و به طراحان اجازه میدهد که برنامه بنویسند .
مشتری و تیم طراحان یک مجموعه مهم از امینان سیستم را تشکیل می دهند. نه دیدگاه ثابت و نه دیدگاه پویا، کارکرد سیستم را از نقطه نظر کاربر نشان نمیدهند. فهمیدن این دیدگاه کلیدی است برای ساختن سیستمی که مفید وقابل استفاده باشد. این دیدگاه تقاضاها را بررسی میکند وکار کردن با آن آسان (و حتی جالب است) است.
مدل کردن سیستم از دیدگاه کاربر آن، کار usecase است . در این فصل درباره اینکه usecase چیست و چه کاری انجام میدهد صحبت میکنیم و همچنین درباره چگونگی استفاده از دیاگرام usecase در تصویرسازی در UML بحث میکنیم .
2- 1 usecase ها چه هستند ؟
چندین سال قبل من یک فاکس خریدم. وقتی که برای خرید به دفتر تهیهکننده رفته بودم با سطح وسیعی از انتخاب ها برخورد کردم. چگونه باید تصمیم خوبی میگرفتم؟ از خودم پرسیدم میخواهم با فاکس چه کاری انجام بدهم؟ چه مواردی را نیاز دارم، چه اعمالی را میخواهم با فاکس انجام بدهم؟ آیا میخواهم کپی بگیرم؟ به کامپیوتر متصلش کنم؟ به عنوان scanner از آن استفاده کنم؟ میخواهم فاکسها را به سرعت بفرستم، که به سرعت شمارهگیر احتیاج داشته باشم؟میخواهم تشخیص بدهم که fax آمده یا کسی تلفن کرده است ؟
از مراحل یک پردازش مانند مراحل بالا وقتیکه یک خرید بدون انگیزه را ترتیب دادیم گذشتیم. در تحلیل یک فرم از usecase چه کاری انجام میدهیم ؟ از خود میپرسیم چگونه از یک محصول یا سیستم استفاده میکنیم، تا پول خود را به خوبی خرج کنیم. بنابراین مهمترین چیز این است که نیازها را بشناسیم .
این نوع پردازش مخصوصاً برای بخش آنالیز سیستم طراحی شده است .چگونه کاربرها از درایور سیستم از همان راهی که شما طراحی کردهاید و سیستم را ساختهاید استفاده می کنند ؟
usecase یک ساختار است که به تحلیلگر سیستم که با کاربر کار میکند، کمک میکند تا سیستم کاربردیی را طراحی کند .
اصطلاح جدید : usecase مجموعهای از سناریوها است که سیستم از آنها استفاده میکند. هر سناریو یک ترتیب زمانی از وقایع را شرح میدهد. هر ترتیب زمانی به وسیله شخصی یا سیستمی دیگر یا یک قطعهای از سختافزار و یا بهوسیله گذر زمان بنا نهاده میشود. موجودیتهای که ترتیب زمانی را شروع میکنند actor نامیده میشوند. ترتیب زمانی باعث میشود که استفادههای دیگری از actor توسط کسانی که actor را بنا گذاشتهاند و یا توسط دیگر actor ها بشود .
3- 1 چراusecase ها مهم هستند ؟
تنها یک راه با ارزش برای تحریک مشتری به صحبت در مورد دیدگاهش درباره سیستم وجود دارد. usecase یک ابزار عالی برای تحریک مشتری است. معمولاً تحریک مشتری برای صحبت مفصل در مورد چگونگی استفادهاش از سیستم کار آسانی نیست. چراکه توسعه سیستمهای قدیمی اغلب یک پردازش اتفاقی است، که در تحلیل بسیار کوتاه است. کاربرها برخی مواقع وقتی در مورد ورودیهایشان از آنها سوال میشود، گیج میشوند . ایدهای موجود این است که سیستمی که کاربرها با آن کار میکنند را در مراحل اولیه آنالیز و تحلیل سیستم در نظر بگیریم. این کار احتمال اینکه سیستم در نهایت برای کاربر بهتر شود را بالا میبرد ، مثل تعویض مفاهیم محاسباتی یک سیستم قدیمی که باعث گیج شدن کاربران برای کار با آن میشود.
4- 1 یک مثال : ماشین نوشابه
فرض کنید که میخواهیم یک ماشین نوشابه طراحی کنیم. برای بدست آوردن دیدگاه کاربران باید با چند نفر از کاربران برای دانستن نحوه برخوردشان باسیستم مصاحبه کنیم. زیرا عمل اصلی ماشین این است که به مشتری اجازه میدهد یک قوطی نوشابه بخرد ، بنابراین کاربران سریعاً به ما میگویند که مجموعهای از سناریوها(به عبارتیusecase ها)را داریم که احتمالاً عنوان ”خرید نوشابه“ را دارند. بنابراین هر سناریو ممکن را بررسی میکنیم. توجه داریم که در طراحی سیستم معمولی سناریوها در اثر صحبت با کاربر به وجود میآیند.
1-4- 1 usecase خرید نوشابه
actor این usecaseمشتری است، که میخواهد یک قوطی نوشابه بخرد. مشتری سناریو را با انداختن پول آغاز میکند. سپس او امکان انتخاب دارد. اگر همه چیز به خوبی پیش برود دست کم یک قوطی نوشابه به مشتری تحویل داده میشود.
با توجه به مراحل ترتیب زمانی باید به تصویر دیگری از سناریو توجه شود. چه پیش زمینهای باعث تحریک مشتری برای آغاز کردنusecase خرید نوشابه میشود؟ تشنگی یکی از شرایط آشکار است. چه شرایط بعدی لازمه مراحل سناریو است؟ دوباره آشکارترین مورد این است که مشتری یک نوشابه دارد. آیا سناریویی که تعریف کردیم تنها سناریو ممکن برای این مسئله است؟ موارد دیگری هم سریعاً به ذهن میآین . ممکن است نوشابه دیگری غیر از آنچه مشتری خواسته تحویل داده شود. ممکن است مشتری پول کافی برای قیمت نوشابه را وارد نکرده باشد. چگونه میتوان ماشین را با این سناریو طراحی کرد؟
به مرحله دیگر از usecase خرید نوشابه میرویم. به سراغ سناریو alternative میرویم. مشتری usecase را با انداختن پول به داخل ماشین آغاز میکند. سپس امکان انتخاب دارد، اما ماشین در انتها قوطی نوشابهای که انتخاب شده را تحویل نمیدهد و به مشتری پیام میدهد که پول خارج از محدوده ماشین است. پیام باید به گونهای باشد که مشتری را برای انتخاب دیگر تحریک کند. همچنین ماشین باید پیشنهادی برای پس دادن پول به مشتری بدهد. در این جا، مشتری نوشابه دیگری را انتخاب میکند و ماشین آن را تحویل میدهد (اگر انتخاب جدیدی صورت نگیرد نوشابه نیز فروخته نمیشود) و یا عمل تحویل پول اتفاق میافت . شرایط بعدی، تحویل یک قوطی نوشابه یا تحویل پول است.
سناریو دیگری نیز ممکن است اتفاق بیفتد. ”خارج از محدوده“ پیامی است که زمانیکه ماشین موجودی نداشته باشد نمایان میشود و در این مرحله باقی میماند تا زمانی که دوباره پر شود و بتواند نوشابه را تحویل دهد. در این مرحله ممکن است که مشتری پول را نیانداخته باشد. مشتری که ما ماشین را برایش طراحی کردهایم ممکن است سناریو اول را ترجیح بدهد. اگر مشتری پول را وارد ماشین کرده ممکن است مایل باشد انتخاب دیگری انجام بدهد، تا اینکه در مورد پس دادن پول از او سوال شود.
سناریوی دیگری را بررسی میکنیم که مقدار پول به اندازه قیمت نوشابه نباشد. دوباره مشتری usecase را آغاز میکند، که مراحل معمولی را تکرار میکند و یک انتخاب میکن . فرض میکنیم نوشابه انتخابی موجود باشد. اگر ماشین اندوخته پولی داشته باشد تا بتوند پول را خرد کند، بقیه پول را پس میدهد و نوشابه را هم تحویل میدهد. حال اگر اندوخته پول نداشته باشد، پول را برمیگرداند و پیامی میدهد که از مشتری میخواهد پول کافی را وارد کند. شرایط قبلی حالات معمولی است. شرایط بعدی تحویل نوشابه با مابقی پول است و هم ماشین کل پول را پس میدهد، میباشد.
امکان دیگر این است که اندوخته پول ماشین تمام شده باشد. یک پیام از مشتری میخواهد که پول کافی را وارد کند. ممکن است این پیام تا هنگامی که اندوخته ماشین پر شود نمایان باشد.
2-4- 1 Usecaseهای اضافی
ماشین خرید نوشابه را از دیدگاه مشتری بررسی کردیم. علاوه بر مشتری کاربران دیگری هم وجود دارند . یکی از آنها تهیهکننده است که در ماشین نوشابه میگذارد و دیگری تحصیلدار است، (ممکن است همان تهیهکننده باشد) که پولهای جمع شده در ماشین را جمع آوری میکن .
این مورد روشن میکند که حداقل دو usecase ،اضافهتر باید ساخته شود. موجودی داخل ماشین گذاشتن وجمعآوری پول ماشین که جزئیات آنها در اثر صحبت با تهیهکننده و تحصیلدار روشن میشود.
usecase گذاشتن نوشابه داخل ماشین را بررسی میکنیم. تهیهکننده یک usecaseرا آغاز میکند، زیرا مدتی از کارکرد ماشین گذشته است. تهیهکننده قفل ماشین را باز میکند (که پیادهسازی نمیشود)، قسمت جلویی ماشین باز میکند و ظرفیت ماشین را پر میکند. تهیهکننده اغلب اندوخته پول را هم خالی میکند. سپس قسمت جلویی ماشین را میبندد و ماشین را قفل میکند. شرایط قبلی در مدت قبلی اجرا میشود، شرایط بعدی این است که تهیهکننده مجموعه جدیدی از اجناس را داشته باشد.
برای usecase جمعآوری پول، تحصیلدار یک usecase را آغاز میکند، زیرا مدتی از کار ماشین گذشته است. تحصیلدار مراحلی را که برای موجودی گذاشتن داخل ماشین وجود داشت را با باز کردن قفل و قسمت جلویی ماشین طی میکند. سپس تحصیلدار پول را برمیدارد و مراحل بستن قسمت جلویی ماشین و قفل کردن آن را مانند مراحل usecase گذاشتن نوشابه داخل ماشین طی میکند. شرایط قبلی گذشتن مدتی از کار ماشین و شرایط بعدی برداشتن پول توسط تحصیلدار است.
توجه داریم که هنگامیکه یک usecase را میسازیم نباید نگران تکمیل آن باشیم. در مثالی که زدیم به داخل ماشین توجهی نکردیم. به اینکه یخچال ماشین چگونه کار میکند توجهی نداشتیم، یا در جریان پول داخل ماشین نبودیم. ما فقط تلاش کردیم که ببینیم یک ماشین نوشابه با فردی که میخواهد از آن استفاده کند چگونه رفتار میکند. هدف گرفتن مجموعهای از usecaseها است که سرانجام به افرادی که میخواهند ماشین را طراحی کنند و افرادی که می خواهند ماشین را بسازند ارائه میشود. گسترش دادن usecaseها برآنچه مشتری، تهیهکننده و تحصیلدار میخواهند تاثیر میگذارد و نتیجه ماشینی است که تمام این گروهها به راحتی میتوانند از آن استفاده کنند.
5- 1 Include یک usecase
در usecase قرار دادن نوشابه در ماشین وusecase جمعآوری پول باید به یک سری مراحل عمومی توجه شود.
هر دو با باز کردن قفل و در ماشین آغاز میشوند و با بستن قفل و در ماشین پایان مییابند. آیا میشود یکی از دو نسخه مراحل را از یکی از دو usecase حذف کرد؟ راه ممکن برای انجام این کار این است که هر کدام از مراحل زمانی عمومی را گرفته و یک usecase اضافی برای هر کدام بگیریم. سپس مراحل باز کردن قفل و در ماشین را در یک usecase با نام نمایش داخل ماشین ترکیب کرده و مراحل بستن در و قفل ماشین را در یک usecase با نام پنهان کردن داخل ماشین ترکیب میکنی .
با این usecaseهای جدید گذاشتن نوشابه داخل ماشین با usecase نمایش داخل ماشین آغاز میشود. تهیهکننده مراحل قبل را طی کرده و با usecase پنهان کردن داخل ماشین به انتها میرسد. همچنین usecase جمعآوری پول با usecase نمایش داخل ماشین آغاز شده و مراحل قبلی را طی میکند و با usecase پنهان کردن داخل ماشین تمام میشود. همانطور که دیدیم قرار دادن نوشابه و جمعآوری پول در یک usecase جمع شدهاند، بنابراین با این روش استفاده دوباره از usecase به محتویات آن برمیگردد.
نسخه جدید uml به include،usecase به عنوان usecase استفاده شده تعبیر میکند. ممکن است هنوز روش قدیمی موجود باشد. including دو مزیت دارد . اول : واضحتر است. مراحل usecase اول شامل مراحل دیگری هم هست. دوم : از آشفتگی و شلوغی جلوگیری میکند. این راه را نباید به عنوان استفاده دوباره از usecase به وسیله خودش تلقی کرد.
6- 1 توسعه دادن usecase
میتوان از usecase در روش دیگری غیر از include استفاده کرد. بعضی اوقات میتوان یک usecase جدید را با اضافه کردن بعضی مراحل به usecase موجود ساخت. به usecase قرار دادن نوشابه برمیگردیم. قبل از قرار دادن قوطیها در ماشین، فرض میکنیم تهیهکننده به نوشابهای که خوب فروش میرود و نوشابهای که خوب
لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 53
آموزش توسعه نرم افزار های شیء گرا توسط UML
فصل اول: مفاهیم شیء گرایی
مقدمه
شئ گرایی برای توسعه نرم افزار اولین بار در سال 1960 پیشنهاد شد، این روش پس از 20 سال به طور گسترده مورد استفادة جامعه نرم افزاری قرار گرفت. توسعه دهندگان نرم افزار در دهه 1980 توجه جدی خو د را روی شئ گرایی معطوف کردند. تکنولوژی شئ، قابلیت استفاده مجدد را برای مؤلفه های نرم افزاری به ارمغان آورد و این نیز به نوبه خود در تسریع توسعه نرم افزار و تولید محصول با کارایی بالا تاثیر بسزایی دارد؛ بعلاوه سیستمهای شئ گرا، براحتی قابل توسعه و به سهولت با محیط سازگار- از نظر تعامل با سیستمهای موجود در محیط استفاده از نرم افزار- می شوند . دیدگاه شئ گرایی یک سیر تکاملی دارد؛ همچنانکه در بخشهای بعدی خواهیم دید، تعیین همه کلاسهای لازم برای یک سیستم دریک تکرار تا اندازه ای غیرممکن است و به محض تکمیل مدلهای تحلیل و طراحی نیاز به کلاسهای جدید در سیستم نمایان می شود.
درک سیستمهای پیچیده وتولید نرم افزار برای چنین سیستمهایی توسط افرادی که در این زمینه تجربه کافی ندارند، کاری بس مشکل است . همچنین محصولی که این افراد تولید می کنند کارایی لازم را نخواهد داشت، در اینجا مهندسی نرم افزار به کمک افراد آمده و با مطالعه روشها و فنون مختلف مسیر توسعه و تولید نرم افزار را هموار می- سازد. تجربیات بدست آمده در این زمینه، متدها و فرآیندهای متنوعی را برای توسعه نرم افزار در اختیار توسعه دهندگان قرار داده و ابزارهای مناسبی نیز این روشها را پشتیبانی می کنند.
درتوسعه یا ساخت نرم افزار برای یک سیستم، مشتری باید تعریف دقیقی از سیستم را در اختیار توسعه دهنده قرار دهد. در توصیف سیستم، زبان طبیعی تا آن اندازه دقیق نیست که بتوان همه نیازمندیها، ساختار و رفتار سیستم را با آن بیان کرد و کد نویسی نیز چنان وارد جزئیات می شود که به یکباره نمی توان سیستم را در این سطح تشریح کرد. لذا برای درک سیستم دست به مدل سازی می زنیم و مؤلفه های سیستم ، زیر سیستمها و رفتار سیستم را به صورت نمودارهای گرافیکی ترسیم می نماییم تا موارد قابل کاربرد و مهم به صورت برجسته به چشم بخورد و هیچ موردی در حوزة سیستم از قلم نیافتد .
در متد شئ گرا از زبان مدلسازی استانداردUML که در فصل چهارم به تفصیل خواهدآمد، استفاده می شود. این زبان به وسیله ابزارهای مختلفی نظیر Rational Rose ، visio و … پشتیبانی می شود، میتوان ازUML در فرآیندهای مختلف استفاده کرد.
مفاهیم اساسی
در این بخش مفاهیم اساسی توسعة نرم افزار شئ گرا را معرفی می کنیم. در بالا به متد و فرآیند اشاره شد اما هیچ تعریفی از آنها ارائه نشد، حال این دو مفهوم کلی را بصورت زیر تعریف می کنیم.
متد، متدلوژی و اشیاء
متد مجموعه ای از وظایف را جهت تعیین نیازمندیها، تحلیل، طراحی، برنامه ریزی، تست و پشتیبانی مشخص می کند. از نظر فنی فرآیند توسعه نرم افزار- متدلوژی- یک قالب کاری برای وظایف لازم جهت ساختن یک نرم افزار با کیفیت بالاست. در واقع متدلوژی، فرآیندی ساختارمند جهت توسعه نرم افزار است که به وسیله فنون و ابزارها حمایت می شود.
متد شئ گرا برپایه شئ استوار است، دیدگاه شئ گرا دنیای واقعی مسئله را بصورت مجموعه ای از اشیاء مرتبط به هم می بیند. شئ یک موجودیت است که در دامنة مسئله نقش تعریف شده ای دارد و دارای حالت، رفتار و شناسة خاص خودش است. شئ می تواند یک ساختار ، نقش ، مکان و ... باشد؛ شئ داده و رفتار را در خود کپسوله میکند و از دسترسی اشیاء دیگر به داده های خود جلوگیری و همچنین تا ثیر تغییرات محیطی بر این داده ها را کاهش می دهد و تنها راه دسترسی به این داده ها استفاده از اعمال یا سرویس های خود شئ می باشد. کلاس نوع اشیاء را نشان می دهد و شامل ویژگی های مشترک مجموعه ای از اشیاء می باشد، شئ نمونه ای از کلاس است . داده های شئ تحت عنوان صفات در کلاس شناخته می شوند و مقادیر این صفات است که شئ را از دیگر اشیای همنوع متمایز می نمایند. اعمال به دستکاری تعداد محدودی از صفات می پردازند و ارتباط بین کلاس ها و دیگر عناصرسیستم نیز از طریق همین سرویسها- اعمال – صورت می گیرد. به عبارت دیگر کلاس یک مشخصه کلی (قالب ، الگو یا طرح اولیه )است که مجموعه ای ازاشیاء مشابه را نشان می- دهد.نماد گرافیکی کلاس در شکل زیر نشان داده شده است، این نماد شامل سه قسمت است که بترتیب نام کلاس ، لیست صفات و لیست اعمال را نشان می دهند.
------------------------ نام کلاس
------------------------ لیست صفات
------------------------ لیست اعمال
------------------------
با تعریف کردن اشیاء موجود در سیستم از نوع یک کلاس خاص، این اشیاء همه صفات، اعمال و روابط کلاس مربوطه را به ارث می برند. یک فوق کلاس شامل ویژگی های مشترک صفات و اعمال جمعی از کلاسهاست و زیرکلاس یک حالت خاص ازفوق کلاس است که به آن تخصیص نیزگفته می شود. این تعاریف از وجود یک سلسله مراتب نشان می دهد که در آن کلاسهای تعمیم(فوق کلاس) توسط کلاسهای تخصیص به ارث برده می شوند، ممکن است که هر کدام ازکلاس های تخصیص دارای یکسری صفات و اعمال اختصاصی اضافی باشند. مجموعه مقادیر موجود برای یک صفت در یک کلاس، دامنه مقادیر آن صفت را نشان می دهد.
پیامها وسیله برقراری ارتباط و تعامل بین اشیاء می باشند ، این پیامها شئ مقصد را تحریک می کنند تا یک کار خاص را انجام دهد. سرویسی که در شیء فرستنده پیام تولید می کند، یک پیام با قالب message:[destination, operation, parameters] ارسال میکند که در آن destination شیء گیرنده و operation سرویسی از شیء گیرنده است که پیام را دریافت می کند و parameters شامل اطلاعات لازم جهت انجام موفق سرویس خواسته شده است. شکل 1-2 مثالی از کلاسهای تعمیم و تخصیص را نشان می دهد که در آن برای دانشجو یک فوق کلاس دانشجو داریم که شامل داده ها و اعمال مشترک بین دانشجویان دورة لیسانس و فوق لیسانس است، همچنین دو زیر کلاس تخصیص جداگانه برای دانشجویان لیسانس و فوق لیسانس نشان داده شده است که حالات خاصی از کلاس دانشجو هستند. در عمل ما شیئی از نوع فوق کلاس دانشجو نخواهیم داشت، در این حالت به کلاسstudent یک کلاس مجرد گفته می- شود . کلاس مجرد کلاسی است که هیچ شیئی از آن نوع نداشته باشیم.
کپسوله سازی، ارث بری و چند ریختی
با توجه به مطالب ذکر شده در بالا، شیء گرایی به واسطه سه خاصیت مهم کپسوله سازی، ارث بری و چند ریختی یک روش منحصر بفرد است . بطور کلی کپسوله سازی تکنیکی است که
لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 80
نمودارهای UML
UML به افراد اجازه می دهد تا چندین نوع مختلف از نمودارهای بصری را به وجود آورند که جنبه های مختلف سیستم را نمایش می دهد . Rational Rose از ایجاد اکثر این مدلها ، همانطور که در زیر آمده ، پشتیبانی می کند .
- نمودار Use Case
- نمودارهای Sequence(توالی)
- نمودار Collabration(همکاری)
- نمودار Class (کلاس)
- نمودار State Transition (حالت)
- نمودار Deployment
این نمودارهای مدل ، جنبه های مختلف سیستم را نشان می دهند . مثلاً نمودار Collaboration (همکاری محاورات ضروری میان آبجکت ها را نشان می دهد ، به این منظور که تعدادی از توابع سیستم را به انجام برساند . هر نمودار یک هدف و یک شنوندة در نظر گرفته شده دارد .
نمودارهای Use Case :
نمودارهای Use Case محاورات میان Use Case ها را نشان میدهند ، که عملیات سیستمی و عامل ها (Actor) که نشان دهندة افراد یا سیستم هایی که اطلاعات را برای سیستم فراهم کرده و یا از آن دریافت می کنند را نمایش می دهند . مثلاً نمودار Use Case سیستم Automated Teller Machine در شکل نشان داده شده است .
نمودار Use Case محاورات میان Use Case ها و عامل ها را نشان می دهند ، Use Caseها درخواستهای سیستم را از دید کاربرد نشان می دهند ، بنابراین Use Case ها عملیاتی هستند که سیستم فراهم می کند . عامل در واقع نگهدارنده پول (بانکدار) یک سیستم هستند . این نمودارها نشان می دهند که چه عامل هایی به Use Case ها مقدار اولیه می دهند . همچنین آنها نشان می دهند که چه موقع یک عامل ، اطلاعات را از یک Use Case دریافت می کند .
نمودار Use Case محاورات میان Use Case ها و عامل های یک سیستم Automate Teller (ATM)Machine را نشان می دهد . بر این اساس ، نمودار Use Case میتواند درخواستهای سیستم را نشان دهد . در این مثال مشتری بانک تعدادی از Use Case ها را مقداردهی می کند : برداشت پول (withdraw Money) ، واریز (Deposit Fands) ، انتقال از حساب (Transfer Fands) ، پرداخت (Make Payment) ، مشاهده تراز (موجودی) (View Balance) و تغییر PIN (Change PIN) .
تعدادی از ارتباطات این ارزش را دارند که بیشتر به آنها اشاره شود . کارمند بانک همچنین به Use Case تغییر PIN مقدار اولیه می دهد . Use Case پرداخت ، فلشی را نشان می دهد که به سیستم اعتباری می رود . سیستم های خارجی ممکن است عامل هایی باشند و در این مورد ، سیستم اعتباری بعنوان یک عامل نشان داده شده است ، زیرا خارج از سیستم ATM ، است . فلشی که از یک Use Case به یک عامل می رود نشان می دهد که Use Case اطلاعاتی را تولید می کند که یک عامل از آن استفاده می کند . در این مورد Use Case پرداخت ، اطلاعات پرداختی کارت اعتباری را برای سیستم اعتباری آماده می کند . اکثر اطلاعات از دیدن نمودارهای Use Case قابل فهم می باشد زیرا این نمودار همة عملیات سیستم را نشان می دهد . کاربران ، مدیران پروژه ، تحلیلگران ، برنامه نویسان ، مهندسین تضمین کیفیت و هر شخص دیگری که به سیستم وابسته است ، می تواند مانند همه ، این نمودارها را ببیند و بفهمد که چه سیستم قرار است به انجام برسد .
ایجاد نمودارهای Use Case
در Rose ، نمودارهای Use Case در نمای Use Case ساخته می شوند . Rose یک نمودار Use Case پیش فرض به نام Main را برای شما می سازد . می توانید هر تعداد نمودارهای اضافی که برای مدل دهی به سیستم خود نیاز دارید را بسازید .
برای دستیابی به نمودار Main Use Case ، مراحل زیر را انجام دهید :