SlideShare une entreprise Scribd logo
1  sur  48
Télécharger pour lire hors ligne
‫سال‬ ‫تابستان‬1394‫خو‬ ‫هجری‬‫رشیدی‬
‫کابل‬ ‫دانشگاه‬
‫ساینس‬ ‫کمپیوتر‬ ‫دانشکدهء‬
Guidelines for Making Software
"‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬
"‫"باهز‬ ‫رفیع‬ ‫محمد‬ ‫استاد‬ :‫نظر‬ ‫تحت‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
1 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
‫ومهربان‬ ‫بخشاینده‬ ‫خداوند‬ ‫نام‬ ‫به‬
‫بجای‬‫مقدمه‬‫کمی‬‫از‬‫درد‬‫برای‬‫تان‬‫قصه‬‫میکنم‬!‫دردی‬‫که‬‫کشنده‬‫است‬.‫دردی‬‫که‬‫تلخ‬،‫رنج‬‫آورو‬‫دردناک‬‫است‬.‫دردی‬‫که‬‫امروز‬‫درد‬
‫است‬‫ولی‬‫درآینده‬‫دردها‬‫میشود‬‫وهمچون‬‫بیماری‬‫العالجی‬‫به‬‫استخوان‬‫ها‬‫سر‬‫ایت‬‫میکند‬.
‫دوستان‬‫عزیز‬!‫تجاوز‬‫تنها‬‫بدین‬‫معنی‬‫نیست‬‫که‬‫متجاوزین‬‫استفاده‬‫ازحریم‬‫خصوصی‬،‫کشور‬‫ویا‬‫مال‬‫ودارایی‬‫شخصی‬‫را‬‫باالی‬‫خود‬
‫جایزدانسته‬‫وازآن‬‫استفادهء‬‫غیر‬‫مشروع‬‫نماید‬‫بلکه‬‫تجاوزدرشرایط‬‫مختلف‬‫میتواند‬‫باالی‬‫مال‬‫باشد‬،‫باالی‬‫حریم‬‫شخص‬‫ویا‬‫قشری‬‫از‬
‫جامعه‬‫باشد‬،‫باالی‬‫ناموس‬‫باشد،باالی‬‫فرهنگ‬،‫باشد‬‫باالی‬‫رسوم‬،‫باشد‬‫باالی‬‫شخصیت‬،‫باشد‬‫وصدها‬‫مورد‬‫دیگر‬.‫که‬‫در‬‫هرصورت‬
‫تجاوز‬،‫تجاوز‬،‫است‬‫حرام‬،‫نابخشودنی‬‫و‬‫گناه‬‫کبیره‬.‫ومتجاوزین‬‫با‬‫توجه‬‫به‬‫قول‬‫حضرت‬‫محمد‬‫مصطفی‬‫ص‬(ُ‫ر‬‫ِّی‬‫ی‬َ‫غ‬ُ‫ت‬ ‫تى‬َّ‫ل‬‫ا‬ ُ‫نوب‬ُّ‫لذ‬َ‫ا‬
ُ‫ى‬‫َغ‬‫ب‬‫ال‬ َ‫م‬َ‫ع‬ِّ‫ن‬‫ال‬)‫گناهکارشمرده‬‫ش‬‫ده‬‫و‬‫مستحق‬‫عذاب‬‫دوزخ‬‫است‬.‫ودفاع‬‫از‬‫داشته‬‫های‬‫موارد‬‫فوق‬‫الذکر‬‫در‬‫مقابل‬‫متجاوزین‬‫وظیفهء‬
‫فردی‬‫ودینی‬‫هرمسلمان‬‫است‬.
‫واقعا‬‫برایم‬‫درد‬‫آور‬‫است‬‫زمانی‬‫که‬‫فکر‬‫میکنم‬‫لسان‬‫که‬‫به‬‫آن‬‫تکلم‬‫میکنم‬‫مورد‬‫تجاوز‬‫انسان‬‫های‬‫متعصب‬،‫افراطی‬‫و‬‫لسان‬‫های‬‫غیر‬
‫قرار‬‫گرفته‬‫است‬.‫لسانیکه‬‫با‬‫بیش‬0555‫سال‬‫قدامت‬‫تاریخی‬‫یکی‬‫از‬‫زبان‬‫های‬‫ناب‬‫و‬‫شیرین‬‫نه‬‫تنها‬‫آسیای‬‫میانه‬‫بلکه‬‫سراسر‬‫کره‬
‫خاکی‬‫به‬‫شمار‬‫میرود‬.‫زبانیکه‬‫شاعران‬‫شیرین‬‫کالم‬‫واحساس‬‫سرایان‬‫تکرارنشدنی‬‫همچون‬‫فردوسی‬‫بزرگ‬،‫بیدل‬،،‫بیتاب‬‫طرزی‬،
،‫حافظ‬‫رودکی‬‫وغیره‬‫که‬‫حتی‬‫ذکر‬‫همهء‬‫آنها‬‫از‬‫عهده‬‫این‬‫صفح‬‫ه‬‫برآمده‬‫نیست‬‫را‬‫باخود‬‫داشته‬‫وآثار‬‫فراوان‬‫ودرخشان‬‫را‬‫دردل‬
‫تاریخ‬‫دفن‬‫کرده‬‫است‬.
‫نمی‬‫خواهم‬‫احساس‬‫کنید‬‫که‬‫متعصبانه‬‫مینویسم‬‫و‬‫این‬‫نوشته‬‫هایم‬‫از‬‫روی‬‫تعصب‬‫است‬‫بلکه‬‫با‬‫آگاهی‬‫کامل‬‫از‬‫قول‬‫بهترینی‬‫عالم‬“‫کسی‬
‫که‬‫متعصب‬‫است‬‫از‬‫امت‬‫من‬‫به‬‫حساب‬‫نمی‬‫آید‬”‫وبرای‬‫اینکه‬‫تا‬‫حد‬‫تو‬‫ان‬‫از‬‫تجاوزی‬‫که‬‫برلسانم‬‫صورت‬‫گرفته‬‫است‬‫دفاع‬‫کنم‬‫این‬
‫نوشته‬‫هارا‬‫می‬‫نویسم‬.‫وهم‬‫نمیخواهم‬‫لسان‬‫دیگری‬‫ولو‬‫کامل‬‫نباشد‬‫را‬‫مورد‬‫تمسخر‬‫ویاهم‬‫تجاوز‬‫قرار‬‫دهم‬‫چون‬‫وجیبهء‬‫اسالمی‬‫ام‬‫به‬
‫من‬‫این‬‫اجازه‬‫را‬‫نمی‬‫دهد‬.‫اما‬‫کدام‬‫اسالم؟‬!
‫آی‬‫مسلمان‬!‫آیا‬‫اسالم‬‫همین‬‫است؟‬‫آیا‬‫اسالمیت‬‫همینه؟‬‫این‬‫کدام‬‫وجه‬‫اسالم‬‫است؟‬‫این‬‫چه‬‫نوع‬‫اسالمیته‬‫؟‬‫آیا‬‫ما‬‫بی‬‫خبریم؟‬‫یااینکه‬‫شما‬
‫با‬‫نام‬‫اسالم‬‫بازی‬‫میکنید؟‬‫آیا‬‫این‬‫سنت‬‫پیامبری‬‫است‬‫که‬‫از‬‫روی‬‫تعصب‬‫و‬‫لسان‬‫گرایی‬‫زبان‬‫اصیل‬‫و‬‫کامل‬‫قشری‬‫را‬‫مورد‬‫تجاوز‬
‫قرار‬‫میدهید؟‬‫آیا‬‫به‬‫آخرت‬‫ایمان‬‫ندارید؟‬‫آیا‬‫با‬‫تجاوز‬‫صریح‬‫خوی‬‫ش‬‫باالی‬‫لسان‬‫قشری‬‫از‬‫جامعه‬‫خودرا‬‫نزد‬‫پیامبر‬‫گرامی‬‫اسالم‬
‫شرمنده‬‫حس‬‫نمیکنید؟‬‫آیا‬‫ما‬‫بی‬‫خبریم؟‬‫یااینکه‬‫شما‬‫کودنید؟‬
‫اسالم‬‫راکه‬‫من‬‫میشناسم‬،‫بوی‬‫صلح‬‫میدهد‬‫بوی‬،‫صفا‬‫آرامی‬،‫محبت‬،‫دوستی‬،‫برادری‬،‫همدلی‬،‫همدردی‬،‫همکاری‬‫و‬‫صداقت‬
‫میدهد‬.‫نه‬‫اینکه‬‫بوی‬،‫تجاوز‬‫بوی‬‫چو‬‫ر‬،‫چپاول‬‫،ظلم‬،،‫انتحار‬‫افراط‬،‫تعصب‬‫و‬‫اجداد‬‫پرستی‬.
‫لطف‬‫میکنید‬‫اگر‬‫واژه‬‫های‬‫خاص‬‫لسان‬‫شیرین‬‫تانرا‬‫در‬‫لسان‬‫تان‬‫بگذارید‬‫باتوجه‬‫به‬‫قول‬‫اجدادمان‬“‫گل‬‫در‬‫گلبته‬‫بهتر‬‫تماشاییست‬”‫وبا‬
‫تحمیل‬‫این‬‫واژه‬‫ها‬‫باالی‬‫لسان‬‫دیگر‬،‫نه‬‫زیبایی‬‫لسان‬‫تانرا‬‫کمرنگ‬‫کنید‬‫و‬‫نه‬‫لسان‬‫های‬‫دیگری‬‫را‬‫به‬‫لجن‬‫بکشانید‬.‫آخر‬‫یعنی‬‫چی؟‬
‫چی‬‫را‬‫میخواهید‬‫ثابت‬‫کنید؟‬‫قدرت‬‫تانرا؟‬‫یا‬‫مظلومیت‬‫مانرا؟‬‫ویاهم‬‫متجاوزبودن‬‫تانرا‬!
‫به‬‫دوستان‬‫که‬‫نوشته‬‫هایم‬‫برایشان‬‫زهر‬‫دار‬‫است‬‫هم‬‫توصیه‬‫میکنم‬‫لطف‬‫کنند‬‫نه‬‫بخاطر‬‫من‬‫بلکه‬‫یکبار‬‫به‬‫خاطر‬‫رضای‬،‫خداوند‬
‫بخاطر‬‫انسانیت‬،‫بخاطر‬‫مسل‬‫مان‬‫بودن‬‫شان‬‫سردرگریبان‬‫خود‬‫کرده‬‫و‬‫عادالنه‬‫قضاوت‬‫کنند‬‫آیا‬‫من‬‫اشتباه‬‫گفته‬‫ام‬‫ویا‬‫اینکه‬‫بعضی‬‫ها‬
‫متجاوزبه‬‫حساب‬‫می‬‫آید‬.‫و‬‫ما‬‫چه‬‫موقفی‬‫باید‬‫در‬‫مقابل‬‫شان‬‫داشته‬‫باشیم‬.‫با‬‫توجه‬‫به‬‫اینکه‬‫درنخست‬‫فرمودم‬‫امروز‬‫این‬‫درد‬‫است‬‫ولی‬
‫ممکن‬‫در‬‫آینده‬‫ها‬‫به‬‫دردها‬‫تبدیل‬‫شود‬‫و‬‫همچن‬‫ین‬‫به‬‫قول‬‫ضرب‬‫المثل‬‫معروف‬“‫چون‬‫می‬‫بینی‬‫که‬‫نابینا‬‫و‬‫چاه‬‫است‬‫اگر‬‫خاموش‬
‫بنشینی‬‫گناه‬‫است‬” .__
‫عزیزم‬ ‫همصنفان‬ ‫تمام‬ ‫از‬ ‫هم‬ ‫اخیر‬ ‫ودر‬‫مخلصانه‬‫مجموعه‬ ‫این‬ ‫محتویات‬ ‫دربهبودی‬ ‫مرا‬ ‫شان‬ ‫نیک‬ ‫نظریات‬ ‫و‬ ‫ها‬ ‫پیشنهاد‬ ، ‫ها‬ ‫انتفاد‬ ‫با‬ ‫که‬ ‫تقاضامندم‬
‫پروگ‬ ‫جامعهء‬ ‫برای‬ ‫باشد‬ ‫تا‬ .‫بخشند‬ ‫یاری‬.‫باشیم‬ ‫کرده‬ ‫خدمتی‬ ‫افغانستان‬ ‫نویسی‬ ‫رام‬
‫احترام‬ ‫با‬"‫"امان‬ ‫هللا‬ ‫محب‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
2 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
‫چیست؟‬ ‫انجنیرینگ‬ ‫ویر‬ ‫سافت‬
‫خاص‬ ‫افزارهای‬ ‫نرم‬ ‫از‬ ‫آنان‬ ‫استفادهء‬ ‫و‬ ‫ها‬ ‫ارگان‬ ‫تمام‬ ‫شدن‬ ‫کمپیوتری‬ ‫به‬ ‫توجه‬ ‫با‬، ‫ومغلق‬ ‫پیچیده‬ ‫حال‬ ‫ودرعین‬‫ومدیریت‬ ‫تنظیم‬ ‫برای‬
‫قسمی‬ ‫ها‬ ‫افزار‬ ‫نرم‬ ‫تا‬ ‫است‬ ‫نیاز‬ ‫شان‬ ‫معلومات‬ ‫بهتر‬‫بسازد‬ ‫برآورده‬ ‫احسن‬ ‫وجه‬ ‫به‬ ‫را‬ ‫شان‬ ‫نیازهای‬ ‫ازاینکه‬ ‫برعالوهء‬ ‫که‬ ‫گردد‬ ‫ایجاد‬
، ‫سهولت‬ ، ‫اعتماد‬ ‫قابلیت‬، ‫مؤثریت‬.‫آورد‬ ‫بوجود‬ ‫را‬ ‫وغیره‬ ‫امنیت‬‫که‬ ‫توانیم‬ ‫می‬ ‫گفته‬ ‫ازاینرو‬software developer‫دارای‬ ‫ها‬
‫سنگین‬ ‫مسؤلیت‬‫سافت‬ ‫با‬ ‫کار‬ ‫و‬ ‫نگهداری‬ ‫زمان‬ ‫در‬ ‫چه‬ ‫و‬ ‫سافت‬ ‫ایجاد‬ ‫زمان‬ ‫در‬ ‫چه‬، ‫ویر‬‫مسؤلیت‬ ‫نوع‬ ‫این‬ ‫ازپس‬ ‫اینکه‬ ‫وبرای‬ ‫باشد‬ ‫می‬
.‫دارد‬ ‫ها‬ ‫وروش‬ ‫دستورالعملها‬ ، ‫قوانین‬ ‫سلسله‬ ‫یک‬ ‫نیازبه‬ ‫برآید‬ ‫ها‬
، ‫پراسه‬ ‫هم‬ ‫انجنیرینگ‬ ‫ویر‬ ‫سافت‬Framework‫از‬ ‫مجموعهء‬ ‫یا‬ ‫و‬technical discipline‫ویر‬ ‫سافت‬ ‫یک‬ ‫ساختن‬ ‫برای‬ ‫که‬ ‫باشد‬ ‫می‬
‫دری‬ ‫از‬ ‫ویر‬ ‫سافت‬ ‫ساختن‬ ‫واین‬ .‫رود‬ ‫بکارمی‬‫دیزاین‬ ، ‫نیازها‬ ‫برای‬ ‫حل‬ ‫راه‬ ‫دریافت‬ ، ‫تحلیل‬ ‫تا‬ ‫شروع‬ ‫مشتری‬ ‫نیازهای‬ ‫تشخیص‬ ‫و‬ ‫افت‬
، ‫مدیریت‬marketing‫نگهداری‬ ،‫ساختن‬ ‫زمان‬ ‫در‬ ‫چه‬ ‫ویر‬ ‫سافت‬ ‫ابعاد‬ ‫تمام‬ ‫با‬ ‫انجنیرینگ‬ ‫ویر‬ ‫سافت‬ ‫یعنی‬ .‫است‬ ‫شامل‬ ‫را‬ ‫وغیره‬
، ‫نیازمندی‬ ‫(تحلیل‬ ‫ویر‬ ‫سافت‬‫(مار‬ ‫آن‬ ‫نگهداری‬ ‫درقسمت‬ ‫وچه‬ )‫وغیره‬ ‫دیزاین‬، ‫کتینگ‬s/w project management‫ارتباط‬ ‫در‬ )
.‫آید‬ ‫بمیان‬ ... ‫و‬ ‫اعتماد‬ ‫قابل‬ ، ‫خوب‬ ‫ویر‬ ‫سافت‬ ‫یک‬ ‫نتیجه‬ ‫در‬ ‫تا‬ .‫است‬
‫که‬ ‫است‬ ‫تخنیکی‬ ‫دستورالعملهای‬ ‫از‬ ‫عبارت‬ ‫انجنیرینگ‬ ‫ویر‬ ‫سافت‬ ‫که‬ ‫توانیم‬ ‫می‬ ‫گفته‬ ‫اختصار‬ ‫بطور‬‫شامل‬:
‫آن‬ ‫تشخیص‬ ‫و‬ ‫مشتری‬ ‫های‬ ‫نیاز‬ ‫دریافت‬
‫دریافت‬‫رفع‬ ‫برای‬ ‫حل‬ ‫راه‬‫روش‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫مشتری‬ ‫های‬ ‫نیاز‬‫ونظریات‬ ‫ها‬‫شده‬ ‫شناخته‬‫وموجود‬
.‫نباشد‬ ‫موجود‬ ‫نظریات‬ ‫و‬ ‫ها‬ ‫روش‬ ‫درصورتیکه‬ ‫مشتری‬ ‫های‬ ‫نیاز‬ ‫رفع‬ ‫برای‬ ‫حل‬ ‫راه‬ ‫دریافت‬
‫پروژه‬ ‫مدیریت‬
‫ویرها‬ ‫سافت‬ ‫در‬ ‫آمدن‬ ‫تغییرات‬ ‫قبول‬ ‫و‬ ‫کنترول‬‫وغیره‬.‫باشد‬
‫مفهوم‬ ‫درک‬ ‫با‬software engineering‫پی‬ ‫نکته‬ ‫بدین‬ ‫ما‬( ‫برنامه‬ ‫یک‬ ‫تنها‬ ‫ویر‬ ‫سافت‬ ‫که‬ ‫میبریم‬program‫ازبرنامه‬ ‫مجموعهء‬ ‫ویا‬ )
( ‫ها‬programs‫بلکه‬ ‫نیست‬ ):‫ازقبیل‬ ‫دیگری‬ ‫ودستورالعملهای‬ ‫ها‬ ‫ویژگی‬ ، ‫قوانین‬ ‫شامل‬
Documentation
‫ویر‬ ‫سافت‬ ‫نگهداری‬ ‫و‬ ‫ویر‬ ‫سافت‬ ‫برای‬ ‫الزمی‬ ‫ومشخصات‬ ‫خواص‬
Dependability
Efficiency
Security.‫میباشد‬ ‫وغیره‬
Software Process
Software process‫مجموعهء‬ ‫از‬ ‫عبارت‬( ‫ها‬ ‫فعالیت‬activities.‫میگردد‬ ‫ایجاد‬ ‫ویر‬ ‫سافت‬ ‫یک‬ ‫آن‬ ‫درنتیجهء‬ ‫که‬ ‫باشد‬ ‫می‬ )
‫و‬activity( ‫ابتدا‬ ‫از‬ ‫ویر‬ ‫سافت‬ ‫ایجاد‬ ‫مراحل‬ ‫شامل‬ ‫تواند‬ ‫می‬ ‫ها‬scratch‫وهم‬ ‫باشد‬ ‫جاوا‬ ‫مثل‬ ‫نویسی‬ ‫پروگرام‬ ‫های‬ ‫لسان‬ ‫از‬ ‫استفاده‬ ‫با‬ )
‫شا‬ ‫تواند‬ ‫می‬.‫باشد‬ ‫جدید‬ ‫ویر‬ ‫سافت‬ ‫یک‬ ‫ساختن‬ ‫ودرنتیجه‬ ‫موجودی‬ ‫های‬ ‫ویر‬ ‫سافت‬ ‫در‬ ‫آوردن‬ ‫تغییرات‬ ‫و‬ ‫دادن‬ ‫توسعه‬ ‫مل‬
‫است‬ ‫ممکن‬activity‫ملحوظ‬ ‫بدین‬ ‫درآید‬ ‫اجرا‬ ‫به‬ ،‫مختلف‬ ‫وانواع‬ ‫اشکال‬ ‫به‬ ‫مذکور‬ ‫هایی‬software process model‫آمده‬ ‫بمیان‬ ‫ها‬
‫هر‬ ‫ولی‬ ‫است‬software process‫چهار‬ ‫باید‬activity‫ذیل‬.‫باشد‬ ‫شامل‬ ‫را‬ ، ‫باشد‬ ‫می‬ ‫سازی‬ ‫ویر‬ ‫سافت‬ ‫اساس‬ ‫که‬
Software Specification‫انجام‬ ‫باید‬ ‫را‬ ‫کارهایی‬ ‫چه‬ ‫ویر‬ ‫سافت‬ ، ‫مشتری‬ ‫درخواست‬ ‫نظربه‬ ‫اینکه‬ ‫ویا‬ ‫ویر‬ ‫سافت‬ ‫تعریف‬ :
‫دهد‬‫کارهایی‬ ‫وازچه‬user( ‫بازدارد‬ ‫را‬constraint)‫دراین‬ ،activity.‫میگردد‬ ‫مشخص‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
3 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
Software Design and implementation‫این‬ :activity‫به‬ ‫مطابق‬ ‫طوریکه‬ ‫ویر‬ ‫سافت‬ ‫وایجاد‬ ‫دیزاین‬ ‫شامل‬
software specification.‫باشد‬
Software Validation‫این‬ ‫در‬ ‫یعنی‬ :activity‫باید‬ ‫ویر‬ ‫سافت‬validate(‫تایید‬)‫وتثبیت‬‫تا‬ ‫گردد‬‫را‬ ‫مشتری‬ ‫های‬ ‫نیاز‬
.‫ویاخیر‬ ‫سازد‬ ‫می‬ ‫مرفوع‬
Software Evaluation:‫این‬activity‫از‬ ‫پس‬ ‫ویر‬ ‫سافت‬ ‫تکامل‬ ‫بخاطر‬ ‫مشتری‬ ‫که‬ ‫باشد‬ ‫می‬ ‫تغییرات‬ ‫شامل‬validation
.‫میکنند‬ ‫پیشنهاد‬
‫نیازهای‬ ‫به‬ ‫مطابق‬ ‫آنرا‬ ‫و‬ ‫بیاوریم‬ ‫شده‬ ‫ساخته‬ ‫وازقبل‬ ‫موجودی‬ ‫های‬ ‫ویر‬ ‫سافت‬ ‫در‬ ‫تغییرات‬ ‫که‬ ‫درصورت‬ ‫استاد‬ ‫گفتهء‬ ‫وبنابر‬
‫شامل‬ ‫بخشیم‬ ‫تکامل‬ ‫خود‬ ‫جدید‬ ‫مشتری‬software evaluation.‫باشد‬ ‫می‬
‫ی‬‫به‬ ‫ومشابه‬ ‫باشد‬ ‫داشته‬ ‫سازی‬ ‫ویر‬ ‫سافت‬ ‫عرصهء‬ ‫در‬ ‫ساله‬ ‫چندین‬ ‫تجربهء‬ ‫سازی‬ ‫ویر‬ ‫سافت‬ ‫تیم‬ ‫یک‬ ‫است‬ ‫ممکن‬ ‫عنی‬
Software Definition‫موجو‬ ‫هم‬ ‫قبل‬ ‫از‬ ،‫شده‬ ‫خواسته‬‫ابتدا‬ ‫از‬ ‫سافت‬ ‫این‬ ‫ساختن‬ ‫برای‬ ‫که‬ ‫نداریم‬ ‫نیاز‬ ‫دراینصورت‬ ‫باشد‬ ‫د‬
(scratch‫سا‬ ، ‫ناچیز‬ ‫تغییرات‬ ‫تعریف‬ ‫با‬ ‫بلکه‬ ‫کنیم‬ ‫شروع‬ )‫تکامل‬ ‫جدید‬ ‫مشتری‬ ‫ودرخواست‬ ‫میل‬ ‫بنابر‬ ‫موجودرا‬ ‫ویر‬ ‫فت‬
(extend).‫بخشیم‬ ‫می‬
‫هر‬Activity‫چندین‬ ‫شامل‬ ‫فوق‬sub activities.‫باشد‬ ‫می‬‫درذیل‬ ‫که‬sub activity‫هر‬activity.‫میکنیم‬ ‫تعریف‬ ‫را‬ ‫فوق‬
.‫الف‬Software Specification
( ‫نیازمندیها‬ ‫درآن‬ ‫که‬ ‫است‬ ‫مرحلهء‬requirements‫ت‬ ‫مشتری‬ )‫یک‬ ‫پراسه‬ ‫ودراین‬ .‫میشود‬ ‫داده‬ ‫شخیص‬software
engineer‫تا‬ ‫کند‬ ‫سعی‬Functional Requirements‫و‬Non Functional Requirements.‫کند‬ ‫مشخص‬ ‫را‬
Functional Requirements‫ودرصورت‬ ‫باشد‬ ‫موجود‬ ‫باید‬ ‫سیستم‬ ‫ویر‬ ‫درسافت‬ ‫که‬ ‫شود‬ ‫می‬ ‫گفته‬ ‫خدمات‬ ‫و‬ ‫نیازمندیها‬ ‫به‬
‫نیازمندی‬ ‫ویر‬ ‫سافت‬ ‫آن‬ ‫نبود‬‫وهمچنین‬ .‫شود‬ ‫اطالق‬ ‫وناقص‬ ‫نساخته‬ ‫مرفوع‬ ‫را‬ ‫ها‬functional requirement
.‫باشد‬ ‫می‬ ‫نیز‬ ‫ندهد‬ ‫انجام‬ ‫آنرا‬ ‫باید‬ ‫سیستم‬ ‫که‬ ‫کارهایی‬ ‫دربرگیرندهء‬
Nonfunctional Requirement‫شو‬ ‫می‬ ‫گفته‬ ‫نیازمندیهای‬ ‫به‬‫وویژگی‬ ‫قابلیت‬ ، ‫موثریت‬ ‫درسیستم‬ ‫آن‬ ‫موجودیت‬ ‫که‬ ‫د‬
‫ول‬ ‫داده‬ ‫افزایش‬ ‫ویرهارا‬ ‫سافت‬‫مختلف‬ ‫انواع‬ ‫مثال‬ ‫شوند‬ ‫نمی‬ ‫شمرده‬ ‫ناقص‬ ‫سیستم‬ ‫آن‬ ‫نبود‬ ‫در‬ ‫ی‬constraint.‫وغیره‬ ‫ها‬
‫تکمیل‬ ‫برای‬software specification‫باید‬sub activity.‫کنیم‬ ‫تکمیل‬ ‫را‬ ‫ذیل‬ ‫های‬
Feasibility Study( ‫نیازمندی‬ :requirement‫میتواند‬ ‫مشتری‬ ‫نیازهای‬ ‫آیا‬ ‫که‬ ‫گردد‬ ‫تشخیص‬ ‫و‬ ‫گردد‬ ‫درک‬ )
‫شو‬ ‫کمپیوتری‬‫سافت‬ ‫آیا‬ ‫دارد؟‬ ‫را‬ ‫فعلی‬ ‫تکنالوژی‬ ‫و‬ ‫افزاری‬ ‫سخت‬ ‫منابع‬ ‫با‬ ‫مطابقت‬ ‫مشتری‬ ‫درخواست‬ ‫آیا‬ ‫د؟‬
‫ویر‬‫چنین‬ ‫ایجاد‬ ‫توانایی‬ ‫ما‬ ‫آیا‬ ‫نیست؟‬ ‫باال‬ ‫مشتری‬ ‫مالی‬ ‫توان‬ ‫از‬ ‫ویر‬ ‫سافت‬ ‫هزینهء‬ ‫آیا‬ ‫رادارد؟‬ ‫ساختن‬ ‫ارزش‬
.... ‫و‬ ‫داریم؟‬ ‫را‬ ‫سیستمی‬
.‫میگذاریم‬ ‫ذیل‬ ‫بعدی‬ ‫مراحل‬ ‫پابه‬ ‫امکان‬ ‫درصورت‬
Requirement elicitation and analysis‫مشتری‬ ‫نبودن‬ ‫مسلکی‬ ‫به‬ ‫توجه‬ ‫با‬ :)‫نیازمندیها‬ ‫تحلیل‬ ‫و‬ ‫(استخراج‬
‫بهترین‬ ‫ولی‬ ‫است‬ ‫موجود‬ ‫مشتری‬ ‫نیازمندیهای‬ ‫وگرفتن‬ ‫استخراج‬ ‫برای‬ ‫مختلفی‬ ‫هایی‬ ‫طریقه‬ ، ‫سازی‬ ‫ویر‬ ‫سافت‬ ‫در‬
‫یک‬ ‫ایجاد‬ ‫روش‬prototype‫شبیه‬ ‫کاغذ‬ ‫روی‬ ‫مشتری‬ ‫درخواست‬ ‫که‬ ‫باشد‬ ‫می‬ )‫نمونه‬ ‫(پیش‬‫وبه‬ .‫میگردد‬ ‫سازی‬
.‫شود‬ ‫می‬ ‫گرفته‬ ‫مشتری‬ ‫معلومات‬ ‫و‬ ‫ونظریات‬ .‫شود‬ ‫می‬ ‫داده‬ ‫نشان‬ ‫مشتری‬
Requirement Specification‫دراین‬ :activity( ‫ویر‬ ‫سافت‬ ‫تعریف‬software definition.‫میگردد‬ ‫تعیین‬ )
‫و‬software definition‫و‬ ‫برروی‬ ‫که‬ ‫باشد‬ ‫می‬ ‫شده‬ ‫تحلیل‬ ‫و‬ ‫شده‬ ‫استخراج‬ ‫نیازمندیهای‬ ‫درحقیقت‬‫داده‬ ‫نشان‬ ‫رق‬
‫نام‬ ‫به‬ ‫و‬ ‫شود‬ ‫می‬documentation.‫یادمیگردد‬‫آید‬ ‫بوجود‬ ‫مشتری‬ ‫برنیازهای‬ ‫مبنی‬ ‫ثبوت‬ ‫ویا‬ ‫سند‬ ‫یک‬ ‫منحیث‬ ‫تا‬
‫تا‬‫سازی‬ ‫ویر‬ ‫سافت‬ ‫تیم‬‫تغییر‬ ‫درصورت‬.‫نشود‬ ‫شناخته‬ ‫مقصر‬ ‫مشتری‬ ‫افکار‬ ‫و‬ ‫نیازمندیها‬
Requirement Validation( ‫داکمنتیشن‬ :documentation‫شده‬ ‫ساخته‬ )‫ن‬ ‫مشتری‬ ‫به‬‫تکمیل‬ ‫تا‬ ‫شود‬ ‫داده‬ ‫شان‬
‫بررسی‬ ‫آن‬ ‫بودن‬‫وتایید‬.‫گردد‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
4 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
( ‫ویر‬ ‫سافت‬ ‫تطبیق‬ ‫و‬ ‫دیزاین‬ .‫ب‬Software Design and Implementation)
‫در‬ ‫شده‬ ‫مشخص‬ ‫وتعریفات‬ ‫نیازمندیها‬ ‫پراسه‬ ‫دراین‬software specification‫یعنی‬ ‫آوریم‬ ‫درمی‬ ‫ها‬ ‫درسیستم‬ ‫اجرا‬ ‫قابل‬ ‫شکل‬ ‫به‬ ‫را‬
‫میک‬ ‫طراحی‬ ‫و‬ ‫دیزاین‬ ‫را‬ ‫سیستم‬.‫میکنند‬ ‫فرق‬ ‫ها‬ ‫ویر‬ ‫سافت‬ ‫نوع‬ ‫به‬ ‫نظر‬ ‫ها‬ ‫ویر‬ ‫سافت‬ ‫وتطبیقات‬ ‫دیزاین‬ ‫چگونگی‬ ‫که‬ .‫نیم‬
Architectural Design‫دراین‬ :activity‫یک‬General view‫یا‬block diagram‫و‬ ‫گردیده‬ ‫ایجاد‬ ‫ویر‬ ‫سافت‬ ‫یک‬‫تمام‬
‫ها‬ ‫مادیول‬(sub System)‫شان‬ ‫بین‬ ‫ارتباطات‬ ‫با‬ ‫همراه‬.‫میگردد‬ ‫مشخص‬
Interface Design‫دراین‬ :activity‫بین‬ ‫انترفس‬component‫همچنین‬ ‫و‬ ‫ویر‬ ‫سافت‬ ‫یک‬ ‫در‬ ‫موجود‬ ‫های‬‫بین‬ ‫انترفس‬
user‫و‬system‫میگردد‬ ‫دیزاین‬‫شودکه‬ ‫مدنظرگرفته‬ ‫باید‬ ‫که‬ ‫است‬ ‫فکتورهایی‬ ‫ها‬ ‫انترفس‬ ‫دیزاین‬ ‫در‬ ‫البته‬ .‫آن‬ ‫مهمترین‬‫ها‬
، ‫استفاده‬ ‫در‬ ‫آسانی‬user friendly‫آن‬ ‫بودن‬‫آن‬ ‫بودن‬ ‫مشتری‬ ‫میل‬ ‫ومطابق‬.‫باشد‬ ‫می‬
Component Design‫هر‬ ‫موقعیت‬ ‫مرحله‬ ‫دراین‬ :component‫مشخص‬ ‫آن‬ ‫عملکرد‬ ‫وچگونگی‬ ‫درسیستم‬ ‫موجود‬
.‫میگردد‬
Database Design‫دیزاین‬ ‫را‬ ‫گردد‬ ‫ذخیره‬ ‫ها‬ ‫دیتابس‬ ‫در‬ ‫شکلی‬ ‫چه‬ ‫به‬ ‫واینکه‬ ‫را‬ ‫سیستم‬ ‫دیتای‬ ‫ساختار‬ ‫مرحله‬ ‫دراین‬ :
.‫میکنیم‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
5 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
‫دیزا‬ ‫درمرحله‬ ‫میبینید‬ ‫فوق‬ ‫درشکل‬ ‫قسمیکه‬‫ما‬ ‫ین‬activity‫اول‬ ‫بخش‬ .‫میکنیم‬ ‫رادیزاین‬ ‫بخش‬ ‫سه‬ ‫های‬input design‫که‬ ‫باشد‬ ‫می‬
‫دیزاین‬ ‫شامل‬platform، ‫ها‬requirement specification‫دوم‬ ‫قسمت‬ .‫باشد‬ ‫می‬ ‫دیتا‬ ‫وتشریحات‬ ،Design activities‫باشد‬ ‫می‬
، ‫ساختار‬ ، ‫ها‬ ‫انترفس‬ ‫درآن‬ ‫که‬component‫وقس‬ .‫میگردد‬ ‫دیزاین‬ ‫ودیتابس‬ ‫ها‬‫هم‬ ‫سوم‬ ‫مت‬Design output‫درآن‬ ‫باشدکه‬ ‫می‬
.‫میکنیم‬ ‫دیزاین‬ ‫را‬ ‫دیتا‬ ‫خروجی‬ ‫اشکال‬
.‫ج‬Software Validation
‫دراین‬ ‫کردیم‬ ‫ذکر‬ ‫قبال‬ ‫قسمیکه‬activity‫ودرصورت‬ ‫ویاخیر؟‬ ‫آید‬ ‫برمی‬ ‫نیازمندیها‬ ‫تمام‬ ‫پس‬ ‫از‬ ‫سیستم‬ ‫آیا‬ ‫که‬ ‫شود‬ ‫می‬ ‫وتایید‬ ‫مشخص‬
‫مشتری‬ ‫دیتای‬ ‫با‬ ‫را‬ ‫سیستم‬ ‫ممکن‬test.‫کنیم‬ ‫می‬‫سه‬ ‫وشامل‬activity.‫باشد‬ ‫می‬ ‫ذیل‬
Development Test‫هر‬ ‫وعملکرد‬ ‫کارکرد‬ :component‫توسط‬ ‫جداگانه‬ ‫شکل‬ ‫به‬developer‫وبررسی‬ ‫آزمایش‬ ،
(test.‫میگردد‬ )‫هر‬component.‫باشند‬ ‫وغیره‬ ‫ها‬ ‫مادیول‬ ‫ها‬ ‫فنکشن‬ ، ‫ها‬ ‫کالس‬ ‫تواند‬ ‫می‬
System Testing‫تمام‬ ‫وعملکرد‬ ‫کارکرد‬ :component‫شکل‬ ‫به‬ ‫ها‬( ‫یکجایی‬integrated.‫میگردد‬ ‫بررسی‬ ،)
‫بین‬ ‫وانفعال‬ ‫درفعل‬ ‫موجود‬ ‫ومشکالت‬component.‫میشود‬ ‫داده‬ ‫تشخیص‬ ‫ها‬
Acceptance Testing‫از‬ ‫مرحلهء‬ ‫آخرین‬ :testing‫باشدکه‬ ‫می‬‫مشتری‬ ‫نیازمندی‬ ‫رفع‬ ‫وقابلیت‬ ، ‫عملکرد‬‫توسط‬
product owner.‫میگردد‬ ‫آزمایش‬ ‫مشتری‬ ‫دیتای‬ ‫با‬ ‫و‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
6 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
.‫د‬Software Evaluation:
‫به‬ ‫مشابه‬ ‫است‬ ‫ممکن‬software definition‫یک‬ ‫ساختن‬ ‫برای‬ ‫اوقات‬ ‫بعضی‬ ‫ویاهم‬ ‫باشد‬ ‫موجود‬ ‫های‬ ‫ویر‬ ‫سافت‬ ‫نیز‬ ‫ازقبل‬ ‫فعلی‬
( ‫متحد‬ ‫را‬ ‫ویرموجودی‬ ‫سافت‬ ‫دو‬ ‫تراز‬ ‫اضافه‬ ‫ویا‬ ‫دو‬ ‫ممکن‬ ‫ویر‬ ‫سافت‬incorporate( ‫پذیری‬ ‫انعطاف‬ ‫ازاینرو‬ .‫کنیم‬ )flexibility)
‫اص‬ ‫ترین‬ ‫مهم‬ ‫ویر‬ ‫سافت‬ ‫یک‬‫برای‬ ‫ل‬software developer‫مشابه‬ ‫پذیر‬ ‫انعطاف‬ ‫های‬ ‫ویر‬ ‫سافت‬ ‫که‬ ‫صورت‬ ‫ودر‬ .‫باشد‬ ‫می‬ ‫ها‬
‫فعلی‬ ‫مشتری‬ ‫نیازمندیهای‬‫تمام‬ ‫دوباره‬ ‫نیست‬ ‫نیازی‬ ‫باشیم‬ ‫داشته‬ ‫آماده‬ ‫شکل‬ ‫به‬ ‫ازقبل‬activity‫های‬software process‫تکمیل‬ ‫را‬
‫نیازمن‬ ‫میتوانیم‬ ‫موجودی‬ ‫سیستم‬ ‫در‬ ‫آوردن‬ ‫تغییرات‬ ‫با‬ ‫بلکه‬ .‫کنیم‬‫تضاد‬ ‫در‬ ‫بدلیل‬ ‫ممکن‬ ‫هم‬ ‫تغییرات‬ ‫واین‬ ‫سازیم‬ ‫مرفوع‬ ‫را‬ ‫مشتری‬ ‫دی‬
‫بودن‬platform،‫موجود‬ ‫ویر‬ ‫وسافت‬ ‫هاردویر‬ ‫های‬.‫بیاید‬ ‫ویر‬ ‫درسافت‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
7 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
Prototyping
‫برای‬‫ها‬ ‫فهمی‬ ‫غلط‬ ‫رفع‬‫و‬ ‫مشتری‬ ‫بین‬developer،‫تثبیت‬‫بهتر‬ ‫واستخراج‬‫مشتری‬ ‫های‬ ‫نیازمندی‬‫تشخیص‬ ،problem، ‫ها‬‫دریافت‬
‫حل‬ ‫های‬ ‫راه‬‫بر‬ ‫غلبه‬ ‫برای‬problem،‫ویر‬ ‫سافت‬ ‫دیزاین‬ ‫وهمچنین‬ ، ‫ها‬‫وموقعیت‬ ‫ها‬ ‫انترفس‬ ‫شکل‬ ‫اکثرا‬component‫هارا‬
‫نام‬ ‫به‬ ‫که‬ ‫میکنند‬ ‫سازی‬ ‫شبیه‬ ‫ورق‬ ‫برروی‬prototype.‫میگردد‬ ‫یاد‬ ‫نمونه‬ ‫پیش‬ ‫یا‬‫این‬ ‫که‬prototype‫و‬ ‫معلومات‬ ‫حاوی‬
functionality‫مرحلهء‬ ‫در‬ ‫هم‬ ‫که‬ ‫باشد‬ ‫می‬ ‫سیستم‬ ‫ابتدایی‬ ‫های‬software specification‫مرحلهء‬ ‫در‬ ‫وهم‬software design‫از‬
.‫میگردد‬ ‫استفاده‬ ‫آن‬
Prototype.‫باشد‬ ‫ذیل‬ ‫مفاهیم‬ ‫شامل‬ ‫باید‬
Technical issue‫ایجاد‬ ‫درزمان‬ ‫که‬ ‫تخنیکی‬ ‫موضوعات‬ :documentation.‫گردد‬ ‫بینی‬ ‫پیش‬
Work Flow and Task Flow‫و‬ ‫ارتباط‬ ‫چگونگی‬ ‫یعنی‬ :interactions‫ما‬ ‫بین‬ ‫ها‬‫نیازکه‬ ‫یک‬ ‫تکمیل‬ ‫بخاطر‬ ‫ها‬ ‫دیول‬
‫شود‬ ‫گرفته‬ ‫مدنظر‬ ‫ویر‬ ‫سافت‬ ‫دیزاین‬ ‫درمرحله‬
‫شکل‬Screen‫اطالعات‬ ‫نمایش‬ ‫طریق‬ ‫و‬
‫خدمت‬ ‫بینم‬ ‫نمی‬ ‫الزم‬ ‫را‬ ‫نامشان‬ ‫ذکر‬ ‫که‬ ‫همکالسیم‬ ‫سه‬ ‫ویا‬ ‫دو‬ ‫همکاری‬ ‫به‬ ‫درصنف‬ ‫که‬ ‫را‬ ‫صنفی‬ ‫فعالیت‬ ‫که‬ ‫بینم‬ ‫می‬ ‫الزم‬ ‫قسمت‬ ‫دراین‬
.‫کنیم‬ ‫ارایه‬ ‫شما‬
‫هرعضو‬ ‫فعالیت‬ ‫درین‬‫ونوشته‬ ‫میکرد‬ ‫پیشنهاد‬ ‫داشت‬ ‫دوست‬ ‫ویااینکه‬ ‫میکرد‬ ‫خطور‬ ‫شان‬ ‫ذهن‬ ‫در‬ ‫که‬ ‫را‬ ‫ویری‬ ‫سافت‬ ‫نوع‬ ‫هر‬ ‫گروپ‬
‫الی‬ ‫صفر‬ ‫از‬ ‫گروپ‬ ‫عضو‬ ‫هر‬ ، ‫شده‬ ‫پیشنهاد‬ ‫ویر‬ ‫سافت‬ ‫هر‬ ‫برای‬ ‫سپس‬ ‫و‬ ‫میشد‬15‫هر‬ ‫شده‬ ‫داده‬ ‫امتیازات‬ ‫وسپس‬ ‫دادند‬ ‫می‬ ‫امتیاز‬
‫ویر‬ ‫سافت‬.‫میشود‬ ‫جمع‬‫ش‬ ‫داده‬ ‫امتیازات‬ ‫مجموع‬ ‫که‬ ‫ویر‬ ‫سافت‬ ‫هر‬‫یک‬ ‫آن‬ ‫برای‬ ‫سپس‬ ‫و‬ ‫گردیده‬ ‫انتخاب‬ ‫شد‬ ‫بیشتر‬ ‫آن‬ ‫به‬ ‫ده‬
prototype‫نوشته‬ ‫نبود‬ ‫من‬ ‫به‬ ‫متعلق‬ ‫که‬ ‫ورق‬ ‫در‬ ‫چون‬ ‫ندارم‬ ‫دردسترس‬ ‫را‬ ‫موجود‬ ‫ویرهای‬ ‫سافت‬ ‫لیست‬ ‫بدبختانه‬ ‫که‬ .‫شود‬ ‫می‬ ‫ساخته‬
‫فارس‬ ‫به‬ ‫آن‬ ‫جزییات‬ ‫با‬ ‫را‬ ‫کمپیوتری‬ ‫اصطالح‬ ‫هر‬ ‫که‬ ‫شود‬ ‫ساخته‬ ‫دیکشنری‬ ‫یک‬ ‫که‬ ‫شد‬ ‫براین‬ ‫اتفاق‬ ‫ولی‬ ‫بودیم‬‫ب‬ ‫و‬ ‫کند‬ ‫بیان‬ ‫ی‬‫همین‬ ‫ه‬
‫حقوق‬ ، ‫اقتصاد‬ ، ‫زراعت‬ ‫ازقبیل‬ ‫ها‬ ‫رشته‬ ‫سایر‬ ‫موجودی‬ ‫اصطالحات‬ ‫ترتیب‬‫خاص‬ ‫اصطالحات‬ ‫دارای‬ ‫رشته‬ ‫هر‬ ‫اینکه‬ ‫به‬ ‫توجه‬ ‫(با‬
.‫کند‬ ‫بیان‬ ‫جزییات‬ ‫با‬ ‫را‬ ) ‫میباشد‬ ‫خودش‬‫و‬‫دراینجا‬prototype‫تشکیل‬ ‫همگروپان‬ ‫کمک‬ ‫به‬ ‫خانگی‬ ‫وظیفهء‬ ‫عنوان‬ ‫به‬ ‫خانه‬ ‫در‬ ‫که‬ ‫هایی‬
‫ذ‬ ‫در‬ ‫دادیم‬.‫بینید‬ ‫می‬ ‫یل‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
8 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
9 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
10 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
.‫باشد‬ ‫می‬ ‫ها‬ ‫انترفس‬ ‫رسم‬ ‫تنها‬ ‫فوق‬ ‫اشکال‬ ‫البته‬.‫است‬ ‫گرفته‬ ‫صورت‬ ‫فوتوشاپ‬ ‫پروگرام‬ ‫کمک‬ ‫به‬ ‫که‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
11 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
Software Process Models
‫چهار‬ ‫تکمیل‬ ‫برای‬ ‫کردیم‬ ‫اشاره‬ ‫قبال‬ ‫همانطوریکه‬activity‫مهم‬‫یعنی‬Software Specification،Software Design and
implementation،Software Validation‫و‬Software Evaluation‫که‬ ‫شود‬ ‫عمل‬ ‫گوناگون‬ ‫های‬ ‫طریقه‬ ‫به‬ ‫ممکن‬‫روش‬
‫وطریقهء‬‫دادن‬ ‫نمایش‬activity‫ها‬‫نام‬ ‫به‬Software process model.‫میشود‬ ‫نامیده‬‫که‬ ‫گفت‬ ‫میتوان‬ ‫دیگر‬ ‫عبارت‬ ‫به‬software
process model‫ها‬ ‫پراسس‬ ‫برای‬ ‫چوب‬ ‫چهار‬ ‫ازیک‬ ‫عبارت‬(process framework)‫میتوانیم‬ ‫که‬ ‫باشد‬ ‫می‬Activity‫روش‬ ‫هارابه‬
.‫دهیم‬ ‫نشان‬ ‫درآن‬ ‫بهتر‬‫که‬ ‫دهیم‬ ‫نشان‬ ‫آسانی‬ ‫بسیار‬ ‫به‬ ‫میتوانیم‬ ‫وهمچنین‬user‫ارتباط‬ ‫فعلی‬ ‫سیستم‬ ‫با‬ ‫چگونه‬ ‫دیگری‬ ‫سیستمی‬ ‫یک‬ ‫ویا‬
.‫میکند‬ ‫برقرار‬
‫در‬ ‫یعنی‬software process model‫ها‬‫و‬ ‫ویرها‬ ‫سافت‬ ‫تعریف‬ ‫در‬ ‫شده‬ ‫وتشخیص‬ ‫موجود‬ ‫عمومیات‬‫این‬ ‫وچگونه‬ ‫چطور‬ ‫اینکه‬
‫عمومیات‬، ‫داشته‬ ‫ارتباط‬ ‫باهم‬‫تعیین‬ ، ‫شود‬ ‫داده‬ ‫ترتیب‬ ‫کارها‬ ‫شکلی‬ ‫چه‬ ‫به‬ ‫ویر‬ ‫سافت‬ ‫تکمیل‬ ‫وبرای‬ ‫کنند‬ ‫عمل‬ ‫شکل‬ ‫چه‬ ‫به‬
.‫میگردد‬.‫میکنیم‬ ‫اشاره‬ ‫مشهور‬ ‫های‬ ‫مادل‬ ‫پراسس‬ ‫ویر‬ ‫سافت‬ ‫به‬ ‫قسمت‬ ‫دراین‬
Water Fall Model
‫مادل‬ ‫دراین‬activity‫یک‬ ‫اساسی‬ ‫های‬software process‫از‬ ‫عبارت‬ ‫که‬ ‫را‬Specification،Design and implementation
،Validation،Evaluation‫پراسه‬ ‫یک‬ ‫نشدن‬ ‫تکمیل‬ ‫تا‬ ‫که‬ ‫میشود‬ ‫عمل‬ ‫طوری‬ ‫ودرآن‬ ‫نموده‬ ‫تقسیم‬ ‫جداگانه‬ ‫های‬ ‫بخش‬ ‫به‬ ‫باشد‬ ‫می‬
‫وارد‬ ‫نگردد‬ ‫جمع‬ ‫کامل‬ ‫طور‬ ‫به‬ ‫نیازمندیها‬ ‫زمانیکه‬ ‫تا‬ ‫مثال‬ .‫نمیگردد‬ ‫دیگر‬ ‫پراسهء‬ ‫شامل‬.‫شویم‬ ‫نمی‬ ‫دیزاین‬ ‫مرحلهء‬
‫جلو‬ ‫به‬ ‫و‬ ‫شده‬ ‫گرفته‬ ‫مدنظر‬ ‫واحتماالت‬ ‫عواقب‬ ‫تمام‬ ‫و‬ ‫شده‬ ‫جمع‬ ‫کامل‬ ‫بطور‬ ‫نیازمندیها‬ ‫که‬ ‫است‬ ‫موثر‬ ‫زمانی‬ ‫مادل‬ ‫این‬ ‫از‬ ‫استفاده‬
‫آنصورت‬ ‫درغیر‬ ‫کنیم‬ ‫حرکت‬‫وقوع‬ ‫هم‬ ‫ویا‬ ‫نیازمندی‬ ‫در‬ ‫تغییر‬ ‫اندکی‬ ‫با‬problem‫شروع‬ ‫از‬ ‫دوباره‬ ‫را‬ ‫سیستم‬ ‫تا‬ ‫هستیم‬ ‫مجبور‬ ‫ها‬
‫دیزا‬.‫کنیم‬ ‫ین‬
‫میدهد‬ ‫نشان‬ ‫را‬ ‫فوق‬ ‫مادل‬ ‫در‬ ‫هزینه‬ ‫بررسی‬ ‫ذیل‬ ‫دیاگرام‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
12 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
Incremental Model
‫یک‬ ‫مادل‬ ‫دراین‬activity، ‫تشخیص‬ ‫کوچک‬‫به‬ ‫شروع‬ ‫سپس‬ ‫و‬ ‫گردیده‬ ‫بررسی‬ ‫و‬ ‫تکمیل‬activity‫وبدین‬ ‫کنیم‬ ‫می‬ ‫دیگری‬
‫هر‬ ‫تکمیل‬ ‫با‬ ‫ترتیب‬activity( ‫ها‬ ‫نمونه‬versions.‫آید‬ ‫می‬ ‫بدست‬ ‫ویر‬ ‫سافت‬ ‫از‬ )‫یع‬‫هر‬ ‫در‬ ‫نی‬version، ‫خصوصیات‬
‫و‬ ‫کرده‬ ‫اضافه‬ ‫را‬ ‫جدیدی‬ ‫های‬ ‫قابلیت‬ ‫و‬ ‫ویژگیها‬version.‫میاوریم‬ ‫بدست‬ ‫را‬ ‫جدیدی‬‫است‬ ‫موثر‬ ‫زمانی‬ ‫مادل‬ ‫این‬ ‫از‬ ‫استفاده‬
‫یک‬ ‫شدن‬ ‫تکمیل‬ ‫مجرد‬ ‫به‬ ‫تا‬ ‫باشد‬ ‫فعال‬ ‫شخص‬ ‫مشتری‬ ‫که‬activity‫آنرا‬test.‫دهد‬ ‫ارایه‬ ‫خودرا‬ ‫بعدی‬ ‫نیازمندی‬ ‫و‬
‫هز‬ ‫ارزیابی‬ ‫ذیل‬ ‫جدول‬.‫میدهد‬ ‫نشان‬ ‫بخش‬ ‫هر‬ ‫تکمیل‬ ‫برای‬ ‫را‬ ‫ینه‬
Reuse-oriented software engineering
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
13 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
‫و‬ ‫ها‬ ‫ویر‬ ‫سافت‬ ‫اساس‬ ‫به‬ ‫ویر‬ ‫سافت‬ ‫تا‬ ‫شود‬ ‫می‬ ‫کوشش‬ ‫مادل‬ ‫دراین‬component‫مادل‬ ‫درین‬ ‫یعنی‬ ‫شود‬ ‫ساخته‬ ‫موجودی‬ ‫هایی‬
component‫و‬ ‫ها‬activity‫دیگر‬ ‫باهم‬ ‫را‬ ‫مختلف‬ ‫های‬integrate‫جدید‬ ‫مادل‬ ‫وسپس‬ ‫نموده‬.‫آوریم‬ ‫می‬ ‫دست‬ ‫به‬ ‫آن‬ ‫از‬ ‫را‬
.‫میدهد‬ ‫نشان‬ ‫مادل‬ ‫درین‬ ‫را‬ ‫هزینه‬ ‫بررسی‬ ‫ذیل‬ ‫جدول‬
Agile Software Development & Project Management
‫بخش‬ ‫برعالوهء‬ ‫و‬ ‫است‬ ‫نموده‬ ‫جمع‬ ‫را‬ ‫فوق‬ ‫های‬ ‫مادل‬ ‫تمام‬ ‫های‬ ‫خوبی‬ ‫حقیقت‬ ‫در‬ ‫مادل‬ ‫این‬software process‫بخش‬ ‫درآن‬
project management‫شامل‬ ‫نیز‬.‫است‬‫با‬ ‫تر‬ ‫زیاد‬ ‫شباهت‬ ‫که‬ ‫مادل‬ ‫دراین‬incremental model‫منظم‬ ‫غیر‬ ‫و‬ ‫منظم‬ ‫بطور‬ ‫دارد‬
.‫میگردد‬ ‫باخبر‬ ‫کامال‬ ‫آن‬ ‫نتیجهء‬ ‫و‬ ‫کار‬ ‫پیشرفت‬ ‫از‬ ‫مشتری‬ ‫که‬ ‫میگردد‬ ‫دایر‬ ‫مشتری‬ ‫با‬ ‫رسمی‬ ‫غیر‬ ‫هایی‬ ‫مالقات‬‫اک‬ ‫مشتری‬ ‫ازاینرو‬‫ثرا‬
.‫میگردد‬ ‫محسوب‬ ‫سازی‬ ‫ویر‬ ‫سافت‬ ‫تیم‬ ‫از‬ ‫عضو‬ ‫یک‬ ‫منحیث‬‫اکثرا‬software developer‫می‬ ‫استفاده‬ ‫روش‬ ‫ازاین‬ ‫معاصر‬ ‫هایی‬
‫برای‬ ‫را‬ ‫جدید‬ ‫قوانین‬ ‫روش‬ ‫این‬ .‫کنند‬project management‫و‬software development:‫از‬ ‫عبارتند‬ ‫که‬ ‫است‬ ‫نموده‬ ‫معرفی‬
‫ا‬ ‫بخش‬ ‫یک‬ ‫عنوان‬ ‫به‬ ‫مشتری‬ ‫ازاینرو‬ .‫شود‬ ‫نگهداشته‬ ‫راضی‬ ‫باید‬ ‫که‬ ‫میشود‬ ‫داده‬ ‫اولویت‬ ‫بلندترین‬ ‫مشتری‬ ‫به‬ ‫مادل‬ ‫درین‬‫ز‬‫تیم‬
.‫میشود‬ ‫شمرده‬
.‫شود‬ ‫ویر‬ ‫سافت‬ ‫ساختن‬ ‫در‬ ‫تأخیر‬ ‫باعث‬ ‫اینکه‬ ‫ولو‬ ‫باشید‬ ‫خوشروی‬ ‫مشتری‬ ‫از‬ ‫تغییرات‬ ‫پذیرفتن‬ ‫در‬
‫که‬ ‫بخشهای‬ ‫تنها‬ ‫مشتری‬ ‫نبودن‬ ‫مسلکی‬ ‫به‬ ‫توجه‬ ‫با‬output‫هایی‬ ‫بخش‬ ‫دادن‬ ‫نشان‬ ‫از‬ ‫و‬ .‫دهید‬ ‫نشان‬ ‫مشتری‬ ‫به‬ ‫باشد‬ ‫داشته‬
‫که‬output‫ق‬ ‫هر‬ ‫ولو‬ ‫کنید‬ ‫خودداری‬ ‫مشتری‬ ‫به‬ ‫ندارد‬.‫باشید‬ ‫شده‬ ‫متحمل‬ ‫را‬ ‫زحمات‬ ‫در‬
‫تحصیل‬ ‫مختلف‬ ‫هایی‬ ‫دررشته‬ ‫که‬ ‫باشند‬ ‫افرادی‬ ‫از‬ ‫متشکل‬ ‫باید‬ ‫میکنند‬ ‫کار‬ ‫مادل‬ ‫دراین‬ ‫سازی‬ ‫ویر‬ ‫سافت‬ ‫درتیم‬ ‫که‬ ‫افرادی‬
.‫باشند‬ ‫کرده‬
.‫نمایند‬ ‫کار‬ ‫میخواهند‬ ‫که‬ ‫بخش‬ ‫هر‬ ‫در‬ ‫شان‬ ‫وخواستار‬ ‫میل‬ ‫اساس‬ ‫به‬ ‫باید‬ ‫تیم‬ ‫اعضای‬
‫حضوری‬ ‫مالقات‬ ‫که‬ ‫شود‬ ‫کوشش‬ ‫حدتوان‬ ‫تا‬.‫شود‬ ‫برگزار‬ ‫تر‬ ‫زیاد‬ ‫تیم‬ ‫اعضای‬ ‫و‬ ‫مشتری‬ ‫با‬ ‫وغیررسمی‬
.‫گردد‬ ‫بررسی‬ ‫باید‬ ‫آن‬ ‫پیشرفت‬ ‫و‬ ‫کار‬ ‫جریان‬
.‫باشد‬ ‫ثابت‬ ‫باید‬ ‫هستید‬ ‫ساختن‬ ‫حال‬ ‫در‬ ‫راکه‬ ‫محصول‬
‫ویا‬ ‫ها‬ ‫پراسه‬ ‫تمام‬activity‫ازروی‬ ‫منظم‬ ‫و‬ ‫مسلسل‬ ‫شکل‬ ‫به‬ ‫باید‬ ‫شود‬ ‫می‬ ‫انجام‬ ‫که‬ ‫هایی‬assembly line.‫گیرد‬ ‫صورت‬
Simplicity‫باید‬ :.‫دهند‬ ‫انجام‬ ‫آنرا‬ ‫و‬ ‫دانسته‬ ‫خودرا‬ ‫وظیفهء‬ ‫بخوبی‬ ‫هریک‬ ‫تیم‬ ‫افراد‬ ‫که‬ ‫شود‬ ‫ساده‬ ‫طوری‬ ‫ها‬ ‫پراسه‬
‫خودرا‬ ‫باید‬ ‫تیم‬ ‫اعضای‬organize.‫کنند‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
14 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
.‫شوند‬ ‫تقدیر‬ ‫نمایند‬ ‫می‬ ‫تکمیل‬ ‫احسن‬ ‫وجه‬ ‫به‬ ‫خودرا‬ ‫وظیفه‬ ‫که‬ ‫وافرادی‬ ‫داشته‬ ‫وجود‬ ‫تیم‬ ‫اعضای‬ ‫بین‬ ‫همکاری‬ ‫حس‬
‫تیم‬agile‫باشن‬ ‫می‬ ‫ذیل‬ ‫افراد‬ ‫از‬ ‫متشکل‬.‫باشند‬ ‫تیم‬ ‫یک‬ ‫تواند‬ ‫می‬ ‫فرد‬ ‫هر‬ ‫که‬ ‫د‬
Product Owner (customer):‫عمدهء‬ ‫فرق‬agile model‫از‬ ‫عضو‬ ‫یک‬ ‫مشتری‬ ‫مادل‬ ‫درین‬ ‫که‬ ‫است‬ ‫دراین‬ ‫ها‬ ‫مادل‬ ‫باسایر‬
.‫آید‬ ‫می‬ ‫حساب‬ ‫به‬ ‫سازی‬ ‫ویر‬ ‫سافت‬ ‫تیم‬‫و‬ ‫نیازمندیها‬ ‫به‬ ‫دهی‬ ‫واولویت‬ ‫انتخاب‬ ، ‫دستورسازی‬ ‫از‬ ‫عبارت‬ ‫آن‬ ‫های‬ ‫ومسؤلیت‬
‫ساف‬ ‫خصوصیات‬.‫میباشد‬ ‫ویر‬ ‫ت‬
Manager (SCRUM Master):‫منحیث‬ ‫که‬ ‫است‬ ‫شخصی‬product owner‫یعنی‬ .‫باشد‬ ‫می‬ ‫ها‬ ‫تیم‬ ‫برای‬requirement
‫سافت‬ ‫های‬ ‫تیم‬ ‫بین‬ ‫انترفس‬ ‫یک‬ ‫منحیث‬ ‫ودرحقیقت‬ .‫میکند‬ ‫مدیریت‬ ‫را‬ ‫دیگر‬ ‫های‬ ‫تیم‬ ‫و‬ ‫گرفته‬ ‫مدنظر‬ ‫را‬ ‫مشتری‬ ‫ونظریات‬
‫و‬ ‫ویرسازی‬product owner‫تخنیک‬ ‫باید‬ ‫که‬ ‫میباشد‬.‫باشد‬ ‫ی‬
‫در‬ ‫هارا‬ ‫پراسه‬ ‫تکمیل‬ ‫طریق‬ ‫ذیل‬ ‫مراحل‬Agile software development.‫میدهند‬ ‫نشان‬
Product Backlog
‫ساختن‬ ‫از‬ ‫عبارت‬ ‫دهد‬ ‫می‬ ‫انجام‬ ‫سازی‬ ‫ویر‬ ‫سافت‬ ‫تیم‬ ‫که‬ ‫کاری‬ ‫اولین‬backlog‫عبارت‬ ‫درحقیقت‬ ‫سفارشات‬ ‫این‬ ‫که‬ ‫است‬ ‫سفارشات‬ ‫یا‬
‫تک‬ ‫تک‬ ‫توسط‬ ‫که‬ ‫باشد‬ ‫می‬ ‫ویر‬ ‫سافت‬ ‫نیازمندیهای‬ ‫از‬‫نسخه‬ ‫تا‬ ‫شوند‬ ‫می‬ ‫تعریف‬ ‫سازی‬ ‫ویر‬ ‫سافت‬ ‫تیم‬ ‫افراد‬‫ا‬ ‫تمام‬ ‫سیستم‬ ‫آخری‬ ‫ء‬‫ین‬
‫در‬ ‫بسازد.یعنی‬ ‫برآورده‬ ‫را‬ ‫نیازمندیها‬product backlog‫تمام‬functional Requirement‫و‬Non functional requirement
.‫میگردد‬ ‫مشخص‬
Sprint Planning
‫تمام‬ ‫مرحله‬ ‫دراین‬activity‫به‬ ‫موجود‬ ‫های‬ ‫پراسه‬ ‫و‬ ‫ها‬phase‫نظر‬ ‫در‬ ‫مناسب‬ ‫وقت‬ ‫مذکور‬ ‫بخش‬ ‫هر‬ ‫وبه‬ ‫میگردد‬ ‫تقسیم‬ ‫ها‬ ‫وبخش‬ ‫ها‬
.‫شود‬ ‫می‬ ‫گرفته‬
Sprint Backlog
، ‫فازها‬ ‫در‬ ‫شده‬ ‫تقسیم‬ ‫نیازمندیهای‬ ‫انبوه‬ ‫بین‬ ‫از‬ ‫مرحله‬ ‫درین‬‫و‬ ‫ها‬ ‫پراسه‬ ‫فاز‬ ‫هر‬ ‫در‬activity‫نام‬ ‫به‬ ‫کدام‬ ‫هر‬ ‫که‬ ‫میگردد‬ ‫مشخص‬ ‫ها‬
sprint‫هر‬ ‫وبرای‬ ‫میگردد‬ ‫یاد‬sprint‫وقت‬‫(مع‬‫موال‬1)‫دوهفته‬ ‫الی‬‫انتخاب‬ ‫البته‬ ‫میگیریم‬ ‫مدنظر‬ ‫را‬sprint‫گردد‬ ‫تکمیل‬ ‫باید‬ ‫اول‬ ‫که‬
‫توسط‬product owner.‫میگیرد‬ ‫صورت‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
15 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
Daily Scrum
‫باید‬ ‫پروژه‬ ‫افراد‬ ‫تمام‬ ‫ناگزیر‬ ‫میگرددکه‬ ‫برگزار‬ ‫یی‬ ‫دقیقه‬ ‫پانزده‬ ‫جلسه‬ ‫روزه‬ ‫همه‬ ‫مشکالت‬ ‫رفع‬ ‫همچنین‬ ‫و‬ ‫تیم‬ ‫افراد‬ ‫بین‬ ‫هماهنگی‬ ‫برای‬
‫بگ‬ ‫سهم‬ ‫درآن‬.‫یرد‬‫تیم‬ ‫ویاهر‬ ‫عضو‬ ‫هر‬ ‫درآن‬ ‫که‬:
‫ازآخرین‬ ‫بعد‬ ‫که‬ ‫را‬ ‫کاری‬ ‫مقدار‬daily scrum.‫میکنند‬ ‫بیان‬ ‫داد‬ ‫انجام‬
‫تا‬ ‫راکه‬ ‫کاری‬ ‫مقدار‬daily scrum.‫میکنند‬ ‫بیان‬ ‫داد‬ ‫خواهند‬ ‫انجام‬ ‫بعدی‬
.‫میکنند‬ ‫بیان‬ ‫را‬ ‫فعلی‬ ‫وموانع‬ ‫مشکالت‬
Born Down Chart
‫وبررسی‬ ‫مانیتورینگ‬ ‫برای‬ ‫که‬ ‫است‬ ‫چارت‬ ‫از‬ ‫عبارت‬.‫میگردد‬ ‫استفاده‬ ‫باقیمانده‬ ‫وقت‬ ‫به‬ ‫نظر‬ ‫شده‬ ‫نداده‬ ‫انجام‬ ‫کار‬ ‫مقدار‬‫به‬ ‫یعنی‬‫اساس‬
.‫اند‬ ‫رفته‬ ‫پیش‬ ‫به‬ ‫ویا‬ ‫اند‬ ‫افتیده‬ ‫عقب‬ ‫پالن‬ ‫از‬ ‫وآیا‬ ‫اند‬ ‫نموده‬ ‫پیشرفت‬ ‫حد‬ ‫چه‬ ‫تا‬ ‫میدانندکه‬ ‫سازی‬ ‫ویر‬ ‫سافت‬ ‫تیم‬ ‫چارت‬ ‫این‬
Sprint Review
‫هر‬ ‫درختم‬ ‫که‬ ‫میگردد‬ ‫استفاده‬ ‫میکانیزمی‬ ‫از‬ ‫مرحله‬ ‫دراین‬sprint‫را‬ ‫گرفته‬ ‫صورت‬ ‫کارهای‬review‫نموده‬analyze.‫میکنیم‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
16 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
Requirement Engineering
Requirement‫یا‬ ‫پراسه‬ ‫یک‬ ‫تشریح‬ ‫و‬ ‫ازتعریف‬ ‫عبارت‬activity‫همچنین‬ ‫و‬ .‫دهد‬ ‫انجام‬ ‫آنرا‬ ‫باید‬ ‫سیستم‬ ‫ویر‬ ‫سافت‬ ‫یک‬ ‫که‬ ‫باشد‬ ‫می‬
( ‫محدودیات‬ ‫تعریف‬constraints.‫ندهد‬ ‫انجام‬ ‫مذکور‬ ‫پراسه‬ ‫که‬ )‫وی‬‫و‬ ‫پراسه‬ ‫یک‬ ‫ومتنی‬ ‫نظری‬ ‫دیگرشکل‬ ‫عبارت‬ ‫ابه‬service‫را‬
‫نام‬ ‫به‬ ‫آن‬ ‫محدودیات‬ ‫درنظرداشت‬ ‫با‬ ‫همراه‬requirement.‫میکنند‬ ‫یاد‬
‫درآن‬ ‫که‬ ‫وپراسهء‬Requirement، ‫تحلیل‬ ، ‫تشخیص‬ ‫ها‬documenting‫نام‬ ‫به‬ ‫میگردد‬ ‫بررسی‬ ‫و‬Requirement Engineering
.‫میگردد‬ ‫یاد‬‫ضروریا‬ ‫درآن‬ ‫که‬ ‫پراسهء‬ ‫یعنی‬‫دهد‬ ‫انجام‬ ‫را‬ ‫کارهایی‬ ‫چه‬ ‫باید‬ ‫سیستم‬ ‫که‬ ‫میگردد‬ ‫تشخیص‬ ‫و‬ ‫شده‬ ‫آوری‬ ‫جمع‬ ‫ونیازمندیها‬ ‫ت‬
‫نام‬ ‫به‬ ‫سازیم‬ ‫می‬ ‫مال‬ ‫خودرا‬ ‫مذکور‬ ‫ویر‬ ‫درسافت‬ ‫استاد‬ ‫اصطالح‬ ‫به‬ ‫و‬Requirement Engineering‫میگردد‬ ‫یاد‬.
‫در‬software engineering( ‫مشکالت‬ ‫کاهش‬ ‫بخاطر‬problems‫خور‬ ‫هایی‬ ‫بخش‬ ‫به‬ ‫نیازمندیها‬ )‫بخش‬ ‫درهر‬ ‫و‬ ‫گردیده‬ ‫تقسیم‬ ‫د‬
.‫ندهد‬ ‫انجام‬ ‫هارا‬ ‫پراسه‬ ‫کدام‬ ‫و‬ ‫دهد‬ ‫انجام‬ ‫هارا‬ ‫پراسه‬ ‫کدام‬ ‫ویر‬ ‫سافت‬ ‫که‬ ‫میگردد‬ ‫مشخص‬
‫در‬Requirement Engineering‫دوبخش‬ ‫به‬ ‫نیازمندیها‬User Requirement‫و‬System Requirement.‫میگردد‬ ‫تقسیم‬
User Requirement‫نیازمندیهای‬ ‫به‬High Level‫گفت‬ ‫وکلی‬‫به‬ ‫باید‬ ‫سیستم‬ ‫که‬ ‫شود‬ ‫می‬ ‫ه‬user‫واین‬ ‫بدهد‬ ‫ها‬user‫یک‬ ‫تواند‬ ‫می‬
‫نمی‬ ‫جزییات‬ ‫به‬ ‫زیاد‬ ‫نیازمندیها‬ ‫دراین‬ ‫یعنی‬ .‫است‬ ‫ارتباط‬ ‫در‬ ‫ما‬ ‫سیستم‬ ‫ویر‬ ‫سافت‬ ‫به‬ ‫که‬ ‫باشد‬ ‫دیگر‬ ‫سیستم‬ ‫یک‬ ‫هم‬ ‫ویا‬ ‫باشد‬ ‫شخص‬
.‫پردازیم‬
‫نیازمندی‬ ‫از‬ ‫(هدف‬high level‫ها‬ ‫دیاگرام‬ ‫و‬ ‫انسانها‬ ‫زبان‬ ‫شکل‬ ‫به‬ ‫که‬ ‫است‬ ‫این‬‫برای‬ ‫را‬ ‫ها‬ ‫پراسه‬ ‫و‬ .‫باشد‬ ‫شده‬ ‫مشخص‬user‫ها‬
).‫کند‬ ‫مشخص‬
System Requirement‫تطبیق‬ ‫مو‬ ‫موبه‬ ‫عملکرد‬ ‫و‬ ‫خدمات‬ ، ‫ها‬ ‫پراسه‬ ‫چطور‬ ‫کند‬ ‫می‬ ‫مشخص‬ ‫که‬ ‫شود‬ ‫می‬ ‫گفته‬ ‫نیازمندیهای‬ ‫به‬
.‫باشد‬ ‫می‬ ‫آنها‬ ‫دربارهء‬ ‫مکمل‬ ‫معلومات‬ ‫وحاوی‬ .‫گردد‬
‫بخش‬ ‫دو‬ ‫به‬ ‫نیز‬ ‫اولویت‬ ‫لحاظ‬ ‫از‬ ‫ها‬ ‫پراسه‬Functional Requirement‫و‬Non Functional Requirement.‫میگردد‬ ‫تقسیم‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
17 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
Functional Requirements.‫شود‬ ‫می‬ ‫پنداشته‬ ‫ناقص‬ ‫سیستم‬ ‫ویر‬ ‫سافت‬ ‫آن‬ ‫نبود‬ ‫صورت‬ ‫در‬ ‫که‬ ‫میگردد‬ ‫اطالق‬ ‫نیازمندیهای‬ ‫به‬
‫درحالیکه‬nonfunctional Requirements‫موجودیت‬ ‫درصورت‬ ‫که‬ ‫شود‬ ‫می‬ ‫گفته‬ ‫وخصوصیات‬ ‫اضافی‬ ‫ویژگیهای‬ ‫به‬‫کارایی‬ ‫آن‬
.‫دهد‬ ‫انجام‬ ‫خودرا‬ ‫اصلی‬ ‫وظیفهء‬ ‫سیستم‬ ‫هم‬ ‫آن‬ ‫نبود‬ ‫صورت‬ ‫در‬ ‫ولی‬ ‫رفته‬ ‫باال‬ ‫سیستم‬ ‫عملکرد‬ ‫و‬‫بدهیم‬ ‫مثال‬ ‫را‬ ‫اگربایسکل‬ ‫مثال‬ ‫بطور‬
، ‫تایر‬ ‫داشتن‬handle‫یک‬Functional Requirement‫وغیره‬ ‫بریک‬ ، ‫هارن‬ ‫قبیل‬ ‫از‬ ‫دیگری‬ ‫اضافی‬ ‫خصوصیات‬ ‫درحالیکه‬ ‫است‬
Nonfunctional Requirement‫شده‬ ‫آورده‬ ‫مثال‬ ‫این‬ ‫موضوع‬ ‫بهتر‬ ‫درک‬ ‫برای‬ ‫ولی‬ ‫ندارد‬ ‫ویر‬ ‫سافت‬ ‫با‬ ‫ربطی‬ ‫بایسکل‬ ‫البته‬ ( ‫است‬
).‫است‬
Functional Requirement‫میگردد‬ ‫تقسیم‬ ‫بخش‬ ‫دو‬ ‫به‬ ‫هم‬
Functional User Requirements‫به‬ ‫که‬ ‫اساسی‬ ‫نیازمندیهای‬ :user.‫کند‬ ‫درک‬ ‫را‬ ‫سیستم‬ ‫کارآیی‬ ‫تا‬ ‫کند‬ ‫می‬ ‫کمک‬
Functional System Requirement.‫دارد‬ ‫نیاز‬ ‫آن‬ ‫به‬ ‫بودنش‬ ‫کامل‬ ‫برای‬ ‫ویر‬ ‫سافت‬ ‫که‬ ‫اساسی‬ ‫نیازمندیهای‬ :
Nonfunctional Requirement:‫میگردد‬ ‫تقسیم‬ ‫بخش‬ ‫سه‬ ‫به‬
Product Requirement‫که‬ ‫ونیازمندیهای‬ ‫ویژگیها‬ :Behavior‫سازد‬ ‫می‬ ‫خوبتر‬ ‫را‬ ‫ویر‬ ‫سافت‬‫عملکرد‬ ‫سرعت‬ ‫قبیل‬ ‫از‬
، ‫سیستم‬‫نیا‬ ‫مورد‬ ‫حافظه‬ ‫مقدار‬‫اطمینان‬ ‫قابلیت‬ ،‫ز‬.‫وغیره‬‫که‬ ‫دارد‬ ‫دیگری‬ ‫مختلفی‬ ‫انوع‬ ‫نیازمندیها‬ ‫این‬:‫عبارتنداز‬
oUsability Requirements:‫شدن‬ ‫بهتر‬ ‫برای‬ ‫که‬ ‫ومعلوماتی‬ ‫نیازها‬usability.‫است‬ ‫ویر‬ ‫سافت‬
oEfficiency Requirement:.‫دهد‬ ‫انجام‬ ‫کارخودرا‬ ‫تر‬ ‫موثر‬ ‫شکل‬ ‫به‬ ‫تا‬ ‫میکند‬ ‫کمک‬ ‫ویر‬ ‫سافت‬ ‫به‬ ‫که‬ ‫معلومات‬
‫وب‬‫میگردد‬ ‫تقسیم‬ ‫زیر‬ ‫دوبخش‬ ‫ه‬
Performance Requirement:.‫میکند‬ ‫تعریف‬ ‫را‬ ‫ویر‬ ‫سافت‬ ‫بهتر‬ ‫عملکرد‬ ‫که‬ ‫معلومات‬
Space Requirement‫معلومات‬ :‫از‬ ‫تا‬ ‫میکند‬ ‫کمک‬ ‫ویر‬ ‫سافت‬ ‫به‬ ‫که‬space‫استفاده‬ ‫کمتر‬ ‫ومنابع‬
‫ودرمیموری‬ .‫کنند‬RAM.‫بگیرد‬ ‫کمتر‬ ‫فضای‬
oDependability Requirement‫حاوی‬ :‫معلوم‬‫که‬ ‫باشد‬ ‫می‬ ‫ات‬user‫معلومات‬ ‫دادن‬ ‫دست‬ ‫از‬ ‫نگرانی‬ ‫از‬ ‫هارا‬
‫با‬ ‫ولو‬ ‫شان‬fail.‫میکند‬ ‫بیرون‬ ، ‫هایشان‬ ‫سیستم‬ ‫شدن‬
oSecurity Requirement:.‫باشد‬ ‫می‬ ‫میسازد‬ ‫رفع‬ ‫را‬ ‫ویر‬ ‫سافت‬ ‫امنیتی‬ ‫مشکالت‬ ‫که‬ ‫نیازمندیهای‬ ‫شامل‬
Organizational Requirement:‫و‬ ‫سافت‬ ‫سیستم‬ ‫وگسترده‬ ‫وسیع‬ ‫نیازمندیهای‬‫دستورالعملهای‬ ‫و‬ ‫ها‬ ‫پالیسی‬ ‫از‬ ‫که‬ ‫یر‬
‫و‬ ‫مشتری‬developer.‫باشد‬ ‫می‬ ‫شامل‬ ‫را‬ ‫آید‬ ‫می‬ ‫دست‬ ‫به‬ ‫شان‬ ‫کاری‬ ‫محیط‬ ‫از‬:‫است‬ ‫نوع‬ ‫سه‬ ‫به‬ ‫نیازمندیها‬ ‫واین‬
oEnvironmental Requirement:
oOperational requirement.‫میکند‬ ‫مشخص‬ ‫را‬ ‫ویر‬ ‫سافت‬ ‫از‬ ‫استفاده‬ ‫چگونگی‬ ‫که‬ ‫هایی‬ ‫نیازمندی‬ :
oDevelopment Requirement‫محیط‬ ‫و‬ ‫نویسی‬ ‫پروگرام‬ ‫لسان‬ :development‫مشخص‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫یک‬
.‫میکند‬
External Requirement:.‫باشد‬ ‫می‬ ‫میگذارند‬ ‫اثر‬ ‫سیستم‬ ‫باالی‬ ‫خارجی‬ ‫های‬ ‫فکتور‬ ‫از‬ ‫که‬ ‫نیازمندیهای‬ ‫تمام‬ ‫شامل‬‫وشامل‬
.‫باشد‬ ‫می‬ ‫ذیل‬ ‫انواع‬
oRegulatory Requirement‫سیستم‬ ‫کننده‬ ‫تنظیم‬ ‫که‬ ‫شود‬ ‫مشخص‬ :‫چه‬ ‫ویر‬ ‫سافت‬ ‫از‬ ‫واستفاده‬ ‫تنظیم‬ ‫برای‬ ‫باید‬
.‫دهد‬ ‫انجام‬ ‫باید‬ ‫کارهایی‬
oEthical Requirement.‫باشدویاخیر‬ ‫می‬ ‫مشتری‬ ‫برای‬ ‫قبول‬ ‫قابل‬ ‫سیستم‬ ‫آیا‬ ‫که‬ ‫میکند‬ ‫مشخص‬ :
oLegislative Requirement:.‫کند‬ ‫عمل‬ )‫(قانونی‬ ‫حقوقی‬ ‫شده‬ ‫ساخته‬ ‫ویر‬ ‫سافت‬ ‫که‬ ‫شود‬ ‫مشخص‬ ‫باید‬
Accounting Requirement
Safety/Security Requirement
‫های‬ ‫بندی‬ ‫تقسیم‬ ‫این‬ ‫تمام‬ ‫ذیل‬ ‫دیاگرام‬Nonfunctional Requirement.‫میدهد‬ ‫رانشان‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
18 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
‫در‬ ‫شده‬ ‫فراموشم‬ ‫نامش‬ ‫که‬ ‫دیگرم‬ ‫عزیز‬ ‫همصنفی‬ ‫ویک‬ ‫الرحمن‬ ‫مجیب‬ ، ‫جان‬ ‫شکیب‬ ‫کمک‬ ‫به‬ ‫که‬ ‫را‬ ‫صنفی‬ ‫فعالیت‬ ‫قسمت‬ ‫درین‬
.‫میکنم‬ ‫ارایه‬ ‫تان‬ ‫خدمت‬ ‫نمودیم‬ ‫تکمیل‬ ‫صنف‬
‫شاگردان‬ ‫از‬ ‫بخش‬ ‫ویک‬ ‫شوند‬ ‫تقسیم‬ ‫حصه‬ ‫دو‬ ‫به‬ ‫شاگردان‬ ‫که‬ ‫شد‬ ‫می‬ ‫تکمیل‬ ‫روشی‬ ‫به‬ ‫باید‬ ‫فعالیت‬ ‫این‬functional requirement
‫سیستم‬ATM (Automatic teller machine)‫شاگردان‬ ‫از‬ ‫دیگری‬ ‫بخش‬ ‫و‬ ‫کنند‬ ‫آوری‬ ‫جمع‬ ‫را‬Nonfunctional Requirement
.‫کنند‬ ‫آوری‬ ‫جمع‬ ‫را‬ ‫مذکور‬ ‫سیستم‬
‫بخش‬ ‫که‬Functional Requirement‫عبارت‬ ‫گردید‬ ‫تایید‬ ‫استاد‬ ‫توسط‬ ‫و‬ ‫شد‬ ‫داده‬ ‫ارایه‬ ‫شاگردان‬ ‫دیگر‬ ‫گروپ‬ ‫توسط‬ ‫که‬ ‫سیستم‬ ‫این‬
:‫از‬ ‫است‬
Withdraw
Check Balance
Security
Count money‫وغیره‬
‫وبخش‬NonFunctional Requirement: ‫از‬ ‫اند‬ ‫عبارت‬ ‫آن‬
Secure Screen
Billing
Manual or Help
Voice System
Alarm during Security problem
Changeable Language
Taking ATM Cart before receiving money
Additional battery or UPS
Report if many is less than 2000$
‫وغیره‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
19 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
Architectural Design and System Modeling
Architectural Design
‫سیستم‬ ‫یک‬ ‫ساختارکلی‬(Overall Structure)‫از‬ ‫استفاده‬ ‫با‬architectural design‫یعنی‬ ‫میگردد‬ ‫تعیین‬architectural design
‫دهندهء‬ ‫ارتباط‬Requirement Engineering‫و‬Design( ‫تنظیم‬ ‫باید‬ ‫چگونه‬ ‫سیستم‬ ‫یک‬ ‫که‬ ‫میکند‬ ‫تعیین‬ ‫که‬ ‫میبااشد‬organize‫شود‬ )
‫ب‬ ‫و‬( ‫به‬ ‫توجه‬ ‫با‬ ‫آن‬ ‫دیزاین‬ ‫رای‬requirements)‫کدام‬component‫ها‬‫اس‬ ‫نیاز‬‫بین‬ ‫ارتباط‬ ‫وهمچنین‬ ‫ت‬component‫چه‬ ‫به‬ ‫باید‬ ‫ها‬
.‫باشد‬ ‫شکل‬‫مرحله‬ ‫این‬ ‫تکمیل‬ ‫نتیجهء‬ ‫که‬(architectural Model)‫مجموعهء‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫سیستم‬ ‫یک‬ ‫چگونه‬ ‫که‬ ‫کند‬ ‫مشخص‬ ‫باید‬
component.‫است‬ ‫شده‬ ‫تنظیم‬ ‫یافته‬ ‫ارتباط‬ ‫های‬
Architectural Design‫بهتر‬ ‫گرفتن‬ ‫برای‬requirement‫از‬ ‫جدید‬‫کننده‬ ‫استفاده‬ ‫با‬ ‫نظر‬ ‫وتبادل‬ ‫مذاکره‬ ‫منظور‬ ‫به‬ ‫وهمچنین‬ ‫مشتری‬
، ‫گان‬.‫دارد‬ ‫اهمیت‬ ‫مشتریان‬ ‫و‬ ‫طراحان‬
‫ذیل‬ ‫دیاگرام‬ ‫شکل‬ ‫مثال‬ ‫بطور‬architectural design‫میتواند‬ ‫که‬ ‫رباط‬ ‫سیستم‬ ‫یک‬ ‫برای‬ ‫را‬Object، ‫دیده‬ ‫را‬ ‫مختلف‬ ‫هایی‬‫اندازه‬
‫آنرا‬‫دهد‬ ‫حمل‬ ‫وآنرا‬ ‫کرده‬ ‫بندی‬ ‫بسته‬ ، ‫داده‬ ‫تشخیص‬.‫میدهد‬ ‫رانشان‬
‫رباط‬ ‫اوال‬ ‫میبینید‬ ‫فوق‬ ‫شکل‬ ‫در‬ ‫همانطوریکه‬object‫آم‬ ‫آنرا‬ ، ‫آن‬ ‫بندی‬ ‫بسته‬ ‫بعداز‬ ‫و‬ ‫نموده‬ ‫وشناسایی‬ ‫تشخیص‬ ‫آنرا‬ ‫و‬ ‫دیده‬ ‫هارا‬‫اده‬
‫انتق‬ ‫آنرا‬ ‫سپس‬ ‫و‬ ‫نموده‬ ‫انتقال‬.‫میدهد‬ ‫ال‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
20 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
System Modeling
‫قالب‬ ‫در‬ ‫میتوان‬ ‫را‬ ‫کمپیوتری‬ ‫سیستم‬ ‫هر‬ ‫عادی‬ ‫بصورت‬inputProcessing  Output‫اینکه‬ ‫یعنی‬ .‫داد‬ ‫نمایش‬ ‫و‬ ‫انداخت‬
‫یا‬ ‫و‬ ‫شود‬ ‫می‬ ‫سیستم‬ ‫داخل‬ ‫نحو‬ ‫کدام‬ ‫به‬ ‫معلومات‬user‫سیستم‬ ‫به‬ ‫را‬ ‫الزم‬ ‫دستورات‬ ‫و‬ ‫میکنند‬ ‫برقرار‬ ‫ارتباط‬ ‫نحو‬ ‫کدام‬ ‫به‬ ‫سیستم‬ ‫با‬ ‫ها‬
( ‫نتیجهء‬ ‫و‬ ‫میگردد‬ ‫پراسس‬ ‫نحوی‬ ‫چه‬ ‫به‬ ‫شده‬ ‫وارد‬ ‫معلومات‬ ‫و‬ ‫دستورات‬ ‫سپس‬ ‫و‬ ‫میدهند‬output.‫باشد‬ ‫می‬ ‫چی‬ ‫آن‬ )
‫ه‬‫ضمیمهء‬ ‫میتوان‬ ‫نیز‬ ‫را‬ ‫دیگری‬ ‫ویژگیهای‬ ‫از‬ ‫بعضی‬ ‫مچنین‬:‫از‬ ‫اند‬ ‫عبارت‬ ‫که‬ ‫نمود‬ ‫قالب‬ ‫این‬
User Interface
Maintenance
Self-Testing Process
( ‫الذکر‬ ‫فوق‬ ‫موارد‬ ‫تمام‬ ‫نظرداشت‬ ‫در‬ ‫با‬input،process،output،user Interface،self-Testing Process‫میتوانیم‬ )
‫مادل‬system component.‫میرود‬ ‫کار‬ ‫به‬ ‫بعدی‬ ‫مراحل‬ ‫در‬ ‫ویر‬ ‫سافت‬ ‫اساسات‬ ‫از‬ ‫مجموعهء‬ ‫منحیث‬ ‫که‬ ‫کنیم‬ ‫دیزاین‬ ‫را‬
‫بخش‬ ‫نمبر‬ ‫درآن‬ ‫که‬ ‫بارکود‬ ‫توسط‬ ‫هرباکس‬ ‫کند‬ ‫می‬ ‫تنظیم‬ ‫مسیر‬ ‫یک‬ ‫روی‬ ‫را‬ ‫ها‬ ‫باکس‬ ‫که‬ ‫میدهیم‬ ‫مثال‬ ‫را‬ ‫سیستمی‬ :‫مثال‬ ‫بطور‬
‫قف‬ ‫شش‬ ‫مسیر‬ ‫این‬ ‫درپایان‬ ‫و‬ ‫میگردد‬ ‫شناسایی‬ ‫است‬ ‫نصب‬ ‫آن‬ ‫مربوطهء‬‫از‬ ‫استفاده‬ ‫با‬ ‫ها‬ ‫باکس‬ ‫که‬ ‫دارد‬ ‫وجود‬ ‫ها‬ ‫باکس‬ ‫جابجایی‬ ‫برای‬ ‫سه‬
‫یک‬bar code reader‫و‬PC.‫میگیرند‬ ‫قرار‬ ‫مشخص‬ ‫های‬ ‫قفسه‬ ‫به‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
21 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
‫ذیل‬ ‫جدول‬system model.‫میدهد‬ ‫نشان‬ ‫الذکر‬ ‫فوق‬ ‫ویر‬ ‫سافت‬ ‫برای‬ ‫را‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
22 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
System Design Using UML
Model‫چیست؟‬
‫ت‬ ‫که‬ ‫باشد‬ ‫می‬ ‫طرحی‬ ‫ویا‬ ‫نمونه‬ ‫از‬ ‫عبارت‬ ‫مادل‬‫یک‬ ‫منحیث‬ ‫تا‬ ‫میکشد‬ ‫تصویر‬ ‫به‬ ‫آنرا‬ ‫افعال‬ ‫و‬ ‫سیستم‬ ‫یک‬ ‫ومشخصات‬ ‫خواص‬ ‫مام‬
‫یعنی‬ .‫نیست‬ ‫واقعی‬ ‫سیستم‬ ‫هیچوجه‬ ‫به‬ ‫ولی‬ ‫میگیرد‬ ‫صورت‬ ‫استفاده‬ ‫آن‬ ‫از‬ ‫واقعی‬ ‫سیستم‬ ‫بهتر‬ ‫درک‬ ‫و‬ ‫راهنما‬‫ی‬ ‫نمونه‬ ‫از‬ ‫عبارت‬ ‫مادل‬‫ا‬
‫شامل‬ ‫که‬ ‫باشد‬ ‫می‬ ‫طرح‬behavior،state‫م‬ ‫آن‬ ‫در‬ ‫باید‬ ‫که‬ ‫باشد‬ ‫می‬ ‫سیستم‬ ‫یک‬ ‫های‬.‫شود‬ ‫شخص‬
‫که‬ ‫گفت‬ ‫میتوان‬coding‫به‬ ‫تر‬ ‫زود‬ ‫تحقیق‬ ‫بدون‬ ‫که‬ ‫وهرقدری‬ .‫باشد‬ ‫می‬ ‫ویر‬ ‫سافت‬ ‫یک‬ ‫ساخت‬ ‫و‬ ‫طراحی‬ ‫از‬ ‫کوچک‬ ‫بخش‬ ‫یک‬ ‫تنها‬
coding.‫گردد‬ ‫تکمیل‬ ‫تر‬ ‫دیر‬ ‫ویر‬ ‫سافت‬ ‫و‬ ‫شویم‬ ‫روبرو‬ ‫شده‬ ‫ناسنجیده‬ ‫عواقب‬ ‫با‬ ‫اندازه‬ ‫همان‬ ‫به‬ ‫ممکن‬ ‫کنیم‬ ‫شروع‬‫اهمیت‬ ً‫ا‬‫بن‬
‫را‬ ‫وغیره‬ ‫مادلینگ‬ ، ‫داکمنتیشن‬.‫گرفت‬ ‫کم‬ ‫دست‬ ‫نباید‬
Modeling language‫چیست؟‬
Modeling language، ‫معلومات‬ ‫که‬ ‫است‬ ‫مصنوعی‬ ‫لسان‬ ‫از‬ ‫عبارت‬knowledge‫از‬ ‫استفاده‬ ‫با‬ ‫که‬ ‫ساختار‬ ‫دریک‬ ‫را‬ ‫ها‬ ‫وسیستم‬
.‫میدهد‬ ‫ونمایش‬ ‫ارایه‬ ‫باشد‬ ‫شده‬ ‫معرفی‬ ‫وستاندارد‬ ‫ثابت‬ ‫قوانین‬‫ق‬ ‫لسان‬ ‫این‬‫ابل‬
‫ویر‬ ‫سافت‬ ‫تیم‬ ‫تمام‬ ‫برای‬ ‫فهم‬‫م‬ ‫سازی‬.‫باشد‬ ‫ی‬
‫از‬UML (Unified Modeling Language)‫به‬ ‫ستاندارد‬ ‫لسان‬ ‫عنوان‬ ‫به‬
‫منظور‬modeling‫قابل‬ ‫ویرها‬ ‫سافت‬ ‫از‬ ‫نوع‬ ‫هر‬ ‫باالی‬ ‫که‬ ‫میشود‬ ‫برده‬ ‫نام‬
‫کدام‬ ‫هر‬ ‫که‬ ‫باشد‬ ‫می‬ ‫مختلفی‬ ‫های‬ ‫دیاگرام‬ ‫شامل‬ ‫لسان‬ ‫این‬ .‫باشد‬ ‫می‬ ‫تطبیق‬
‫پروگرامر‬ ‫به‬ ‫ساه‬ ‫شکل‬ ‫به‬ ‫بسیار‬ ‫را‬ ‫خاصی‬ ‫پیامهای‬‫م‬ ‫ارایه‬ ‫ها‬.‫یدارند‬‫یعنی‬
‫نشان‬ ‫را‬ ‫ویر‬ ‫سافت‬ ‫یک‬ ‫مختلف‬ ‫ابعاد‬ ‫میتوانیم‬ ‫ها‬ ‫دیاگرام‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫با‬
.‫دهیم‬‫مختلف‬ ‫مقاصد‬ ‫به‬ ‫که‬ ‫مختلفی‬ ‫های‬ ‫کالس‬ ‫شامل‬ ‫آن‬ ‫دیاگرام‬ ‫وهر‬
.‫باشد‬ ‫می‬ ‫میگردد‬ ‫استفاده‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
23 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
‫انواع‬ ‫از‬ ‫بعضی‬ ‫به‬ ‫درذیل‬UML Diagram.‫میکنیم‬ ‫اشاره‬
1.Class Diagram
‫ثاب‬ ‫ساختار‬ ‫دیاگرام‬ ‫این‬( ‫ت‬static structure)‫تمام‬ ‫برای‬ ‫فقرات‬ ‫ستون‬ ‫یک‬ ‫همانند‬ ‫دیاگرام‬ ‫واین‬ ‫میدهد‬ ‫نمایش‬ ‫را‬ ‫سیستم‬ ‫یک‬
( ‫گرا‬ ‫شی‬ ‫ویرهای‬ ‫سافت‬object oriented).‫باشد‬ ‫می‬‫برای‬ ‫را‬ ‫کاری‬ ‫طرح‬ ‫یک‬ ‫درآن‬ ‫کالس‬ ‫هر‬ ‫که‬object‫مشخص‬
‫مجموعهء‬ ‫از‬ ‫ومتشکل‬ .‫میکند‬attributes‫و‬ ‫ها‬method.‫میباشند‬ ‫ها‬‫دیاگ‬ ‫ودراین‬‫تشخیص‬ ‫شان‬ ‫بین‬ ‫ارتباط‬ ‫و‬ ‫ها‬ ‫کالس‬ ‫رام‬
.‫میگیرد‬ ‫قرار‬ ‫مطالعه‬ ‫مورد‬ ‫تفصیل‬ ‫به‬ ْ‫ا‬‫بعد‬ ‫که‬ ‫میگردد‬
‫آن‬ ‫ازروی‬ ‫سپس‬ ‫و‬ ‫نمایید‬ ‫ترسیم‬ ‫را‬ ‫دیاگرام‬ ‫کالس‬ ‫اوال‬ ‫که‬ ‫کنید‬ ‫کوشش‬ ‫همیشه‬ :‫نوت‬coding‫درینصورت‬ ‫که‬ .‫نمایید‬
(forward engineering‫واگراوال‬ ‫میشود‬ ‫نامیده‬ )coding‫ر‬ ‫دیاگرام‬ ‫وسپس‬ ‫شود‬‫نام‬ ‫به‬ ‫عملیه‬ ‫این‬ ‫گردد‬ ‫سم‬reverse
engineering.‫یادمیگردد‬
2.Package Diagram
‫از‬ ‫بخش‬ ‫یک‬ ‫حقیقت‬ ‫در‬ ‫دیاگرام‬ ‫این‬class diagram‫که‬ ‫باشد‬ ‫می‬‫مورد‬ ‫عمل‬ ‫یک‬ ‫تکمیل‬ ‫منظور‬ ‫به‬ ‫که‬ ‫کالسی‬ ‫چندین‬
‫بسته‬ ‫یک‬ ‫در‬ ‫میگیرند‬ ‫قرار‬ ‫استفاده‬(package‫که‬ .‫میگیرند‬ ‫قرار‬ )‫بعضا‬developer‫ساد‬ ‫برای‬ ‫ها‬‫بهتر‬ ‫وارایه‬ ‫سازی‬ ‫ه‬
‫سیستم‬ ‫عناصر‬ ‫بین‬ ‫ارتباطات‬‫؛‬‫عن‬‫ا‬( ‫صر‬element( ‫ها‬ ‫بسته‬ ‫شکل‬ ‫وبه‬ ‫وبندی‬ ‫دسته‬ ‫را‬ )package)‫میدهند.قرار‬ ‫نمایش‬ ‫ها‬
:‫ذیل‬ ‫شکل‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
24 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
3.Use Case Diagram
‫یک‬ ‫استفاده‬ ‫طرق‬ ‫و‬ ‫کار‬ ‫روش‬ ‫چگونگی‬ ‫دیاگرام‬ ‫این‬actor‫که‬ ‫میسازد‬ ‫واضح‬ ‫دیاگرام‬ ‫این‬ ‫یعنی‬ .‫میدهد‬ ‫نشان‬ ‫را‬ ‫سیستم‬ ‫از‬
actor‫و‬ ‫شده‬ ‫تماس‬ ‫به‬ ‫سیستم‬ ‫با‬ ‫چگونه‬functionality‫وانفعال‬ ‫فعل‬ ‫به‬ ‫نظر‬ ‫سیستم‬user.‫میباشد‬ ‫چی‬‫از‬ ‫ومتشکل‬actor
‫و‬ ‫ها‬use case.‫باشد‬ ‫می‬ ‫ها‬
‫که‬ ‫میتوانیم‬ ‫گفته‬ ‫فوق‬ ‫شکل‬ ‫به‬ ‫نظر‬use case‫نام‬ ‫از‬ ‫عبارت‬ ‫دیاگرام‬actors‫نام‬ ‫همرای‬interaction‫میخواهد‬ ‫که‬ ‫یاعمل‬
‫و‬ ‫دهد‬ ‫انجام‬interaction type.‫میباشد‬
4.State chart Diagram
state chart diagram‫نام‬ ‫به‬ ‫که‬sequence diagram‫در‬ ‫هارا‬ ‫کالس‬ ‫بین‬ ‫ارتباط‬ ‫که‬ ‫است‬ ‫دیاگرام‬ ‫میگردد‬ ‫یاد‬ ‫نیز‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
25 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
‫دیاگرام‬ ‫این‬ ‫یعنی‬ .‫میدهد‬ ‫نشان‬ ‫مختلف‬ ‫مراحل‬state‫به‬ ‫نظر‬ ‫را‬ ‫سیستم‬ ‫مختلف‬ ‫حاالت‬ ‫یا‬ ‫ها‬interaction‫های‬user
‫میک‬ ‫تشریح‬.‫بگیرد‬ ‫بخود‬ ‫را‬ ‫حالتی‬ ‫چه‬ ‫باید‬ ‫سیستم‬ ‫وقت‬ ‫چه‬ ‫واینکه‬ .‫ند‬
0.Activity diagram
‫ف‬ ‫از‬ ‫عبارت‬ ‫دیاگرام‬ ‫این‬‫ل‬‫یک‬ ‫از‬ ‫رفتن‬ ‫جریان‬ ‫که‬ ‫است‬ ‫وچارتی‬activity‫به‬activity.‫میگذارد‬ ‫نمایش‬ ‫به‬ ‫سیستم‬ ‫در‬ ‫دیگررا‬
‫دینامیک‬ ‫جنبهء‬ ‫دیاگرام‬ ‫این‬ ‫در‬ ‫یعنی‬‫شده‬ ‫ترسیم‬ ‫ویررا‬ ‫سافت‬ ‫یک‬ ‫ی‬‫درآن‬( ‫عملیات‬operation)‫در‬‫بررسی‬ ‫هایی‬ ‫کالس‬
( ‫کاری‬ ‫جریان‬ ‫دادن‬ ‫نشان‬ ‫برای‬ ‫دیاگرام‬ ‫این‬ ‫عادی‬ ‫بصورت‬ .‫میگردد‬ ‫سیستم‬ ‫حالت‬ ‫تغییر‬ ‫باعث‬ ‫که‬ ‫میگردد‬work flow، )
business process( ‫سیستم‬ ‫یک‬ ‫داخلی‬ ‫عملیات‬ ‫و‬internal operation).‫میگردد‬ ‫استفاده‬
‫این‬‫انواع‬ ‫از‬ ‫مختصری‬ ‫شرح‬ ‫بود‬UML Diagram‫که‬ ،.‫میدهیم‬ ‫قرار‬ ‫مطالعه‬ ‫مورد‬ ‫تفصیل‬ ‫به‬ ‫آنرا‬ ‫نوع‬ ‫هر‬ ‫ما‬
UML Drawing tools
‫ترسیم‬ ‫برای‬ ‫زیادی‬ ‫های‬ ‫پروگرام‬UML Diagrams:‫از‬ ‫اند‬ ‫عبارت‬ ‫آن‬ ‫مشهور‬ ‫نوع‬ ‫چند‬ ‫که‬ ‫میگردد‬ ‫استفاده‬
UMLet
http://www.umlet.com
LucidChart
https://www.lucidchart.com
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
26 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
ArgoUML
http://argouml.tigris.org/
Use Case Diagram
‫کردیم‬ ‫اشاره‬ ‫هم‬ ‫قبال‬ ‫همانطوریکه‬use case diagram‫مهم‬ ‫بسیار‬ ‫های‬ ‫دیاگرام‬ ‫از‬ ‫یکی‬UML‫ونمایش‬ ‫ه‬ٔ‫ی‬‫ارا‬ ‫منظور‬ ‫به‬ ‫که‬ ‫باشد‬ ‫می‬
dynamic behavior( .‫میگیرد‬ ‫قرار‬ ‫استفاده‬ ‫مورد‬ ‫سیستم‬ ‫یک‬dynamic behavior‫ا‬ ‫عبارت‬‫ز‬behavior‫درحالت‬ ‫سیستم‬ ‫هایی‬
‫نمایش‬ ‫و‬ )‫باشد‬ ‫می‬ ‫اجرا‬dynamic behavior‫به‬ ‫نسبت‬static behavior‫از‬ ‫مختلفی‬ ‫مقاصد‬ ‫به‬ ‫آن‬ ‫از‬ ‫که‬ ‫است‬ ‫وحیاتی‬ ‫مهم‬ ‫بسیار‬
:‫قبیل‬
‫سیستم‬ ‫یک‬ ‫ضروریات‬ ‫آوری‬ ‫جمع‬
( ‫بیرونی‬ ‫نمای‬ ‫یک‬ ‫دیزاین‬outside view‫سیستم‬ ‫یک‬ )
‫با‬ ‫که‬ ‫وداخلی‬ ‫خارجی‬ ‫های‬ ‫فکتور‬ ‫شناسایی‬.‫میکنند‬ ‫اثر‬ ‫سیستم‬ ‫الی‬
‫نمایش‬interaction‫یاهم‬ ‫و‬ ‫ضروریات‬ ‫بین‬ ‫انفعال‬ ‫فعل‬ ‫و‬actors.‫ها‬
Part of Use Case
Use case Diagram‫از‬ ‫متشکل‬actor, use case‫و‬association.‫باشد‬ ‫می‬‫که‬actor‫سیستم‬ ‫یا‬ ‫و‬ ‫اشخاص‬ ‫شامل‬ ‫میتواند‬ ‫ها‬
‫وبه‬ ‫میکند‬ ‫برقرار‬ ‫ارتباط‬ ‫سیستم‬ ‫با‬ ‫که‬ ‫باشد‬ ‫دیگری‬‫ترتیب‬ ‫همین‬use case‫از‬ ‫عبارت‬functionality‫و‬association‫و‬ ‫ارتباط‬ ‫نحو‬
communication‫با‬ ‫را‬ ‫اکتور‬use case.‫میدهد‬ ‫نشان‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
27 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
‫ترسیم‬ ‫طریقهء‬use case diagrams
‫ترسیم‬ ‫برای‬use case diagram‫باید‬ ‫اوال‬actor، ‫ها‬functionality‫و‬ ‫ها‬association‫ستاندارد‬ ‫از‬ ‫وسپس‬ .‫گردد‬ ‫مشخص‬‫ها‬
.‫کنیم‬ ‫استفاده‬ ‫باید‬ ‫ارتباط‬ ‫نوع‬ ‫هر‬ ‫و‬ ‫هرکدام‬ ‫نمایش‬ ‫برای‬
Type of relationships
1.Generalization (inheritance):‫شده‬ ‫اضافه‬ ‫اصلی‬ ‫سیستم‬ ‫از‬ ‫بخش‬ ‫یک‬ ‫به‬ ‫اضافی‬ ‫ویژگیهای‬ ‫و‬ ‫ها‬ ‫بخش‬ ‫که‬ ‫معنی‬ ‫بدین‬
‫یعنی‬ .‫باشد‬case‫درآن‬ ‫که‬ ‫عمومی‬feature‫در‬ ‫وباید‬ .‫میگردد‬ ‫اضافه‬ ‫جدید‬ ‫هایی‬use case diagram‫نشان‬ ‫ذیل‬ ‫شکل‬ ‫به‬
.‫شود‬ ‫داده‬
2.Extends‫ارتباط‬ ‫هم‬ ‫بین‬ ‫ندرت‬ ‫به‬ ‫بسیار‬ ‫که‬ ‫است‬ ‫دوپراسهء‬ ‫بین‬ ‫ارتباط‬ :‫ودر‬ .‫میکنند‬ ‫برقرار‬use case diagram‫شکل‬ ‫به‬
.‫میشود‬ ‫داده‬ ‫نمایش‬ ‫ذیل‬
3.Include‫ویاچندین‬ ‫دو‬ ‫زمانیکه‬ :use case‫دارای‬behavior‫این‬ ‫باشند‬ ‫مشابه‬ ‫های‬behavior‫های‬‫یک‬ ‫به‬ ‫را‬ ‫مشابه‬
use case‫تمام‬ ‫سپس‬ ‫و‬ ‫میکنیم‬ ‫تبدیل‬ ‫جدید‬use case‫همان‬ ‫ها‬use case‫را‬ ‫مشترک‬include‫آن‬ ‫پهلوی‬ ‫در‬ ‫و‬ ‫میکنند‬
‫و‬ ‫خواص‬ ‫میتوانند‬behavior.‫باشند‬ ‫داشته‬ ‫نیز‬ ‫را‬ ‫خودشان‬ ‫خاص‬ ‫های‬‫و‬use case‫با‬ ‫مشترک‬ ‫های‬use case‫اصلی‬ ‫های‬
.‫نماید‬ ‫می‬ ‫کار‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
28 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
‫یک‬ ‫در‬ ‫ممکنه‬ ‫حاالت‬use case diagram.‫است‬ ‫شده‬ ‫واضح‬ ‫ذیل‬ ‫اشکال‬ ‫در‬
1.‫یک‬ ‫ارتباط‬user‫یک‬ ‫با‬ ‫همراه‬use case.‫میشود‬ ‫داده‬ ‫نمایش‬ ‫ذیل‬ ‫طور‬
2.‫یک‬ ‫ارتباط‬user‫باچندین‬use case.‫میشود‬ ‫داده‬ ‫نمایش‬ ‫ذیل‬ ‫طور‬
3.Generalization‫بین‬Cms Admin‫و‬User‫هر‬ ‫میدانیم‬ ‫طوریکه‬Admin‫بازهم‬user.‫میشود‬ ‫شمرده‬
4.Generalization‫بین‬Cms admin،Customer‫و‬Agent‫با‬ ‫همراه‬User‫هر‬ ‫میدانیم‬ ‫طوریکه‬customer, agent‫و‬
Cms admin‫یک‬user‫حقیقت‬ ‫در‬ ‫درینجا‬ ‫شود‬ ‫می‬ ‫شمرده‬User‫یک‬general case‫و‬ ‫مشخصات‬ ‫که‬ ‫میشود‬ ‫شمرده‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
29 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
behavior‫سه‬case.‫میباشد‬ ‫دارا‬ ‫را‬ ‫دیگر‬
0.‫رابطهء‬extends‫سه‬ ‫در‬use case‫نام‬ ‫به‬login, reminder‫و‬register‫پراسهء‬ ‫در‬ ‫اینکه‬ ‫به‬ ‫توجه‬ ‫با‬Login‫کم‬ ‫بسیار‬
‫بخواهیم‬ ‫که‬ ‫افتد‬ ‫می‬ ‫اتفاق‬‫های‬ ‫پراسه‬ ‫از‬ ‫که‬request password reminder‫هم‬ ‫ویا‬register.‫کنیم‬ ‫استفاده‬
6.‫رابطهء‬include‫بین‬register‫و‬confirm register.
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
30 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
7.‫است‬ ‫قابل‬ ‫اجزای‬ ‫تمام‬ ‫هم‬ ‫ذیل‬ ‫وشلک‬‫در‬ ‫فاده‬use case diagram.‫میدهد‬ ‫نشان‬ ‫را‬
‫ذیل‬ ‫شکل‬ ‫قرار‬use case diagram‫یک‬ATM Machine.‫است‬ ‫گردیده‬ ‫ترسیم‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
31 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
32 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
Class Diagram
‫نام‬ ‫به‬ ‫که‬ ‫دیاگرام‬ ‫کالس‬structural diagram‫که‬ ‫است‬ ‫ازدیاگرام‬ ‫عبارت‬ ‫میشود‬ ‫نامیده‬ ‫نیز‬static view‫نشان‬ ‫را‬ ‫ویر‬ ‫سافت‬ ‫یک‬
‫مید‬ ‫نشان‬ ‫یعنی‬ ‫میدهد‬‫کدام‬ ‫شامل‬ ‫ها‬ ‫کالس‬ ‫که‬ ‫هد‬attributes‫و‬ ‫ها‬behavior‫دیاگرام‬ ‫این‬ .‫دارند‬ ‫ارتباط‬ ‫هم‬ ‫بین‬ ‫وچطور‬ ‫باشند‬ ‫می‬ ‫ها‬
:‫قبیل‬ ‫از‬ ‫مختلفی‬ ‫مقاصد‬ ‫به‬
Visualize‫ویر‬ ‫سافت‬ ‫یک‬ ‫ثابت‬ ‫شکل‬ ‫کردن‬
( ‫تشریح‬describe‫ویر‬ ‫سافت‬ ‫مختلف‬ ‫های‬ ‫قسمت‬ )
Document‫ویر‬ ‫سافت‬ ‫کردن‬
‫ساختن‬executable code‫اپلیک‬ ‫یک‬.‫میشود‬ ‫استفاده‬ ‫وغیره‬ ‫یشن‬
( ‫مشخصات‬ ‫دیاگرام‬ ‫این‬Attribute( ‫اعمال‬ ‫و‬ )behavior)‫بسیار‬ ‫به‬ ‫ها‬ ‫کالس‬ ‫دیاگرام‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫که‬ ‫نموده‬ ‫واضح‬ ‫را‬ ‫ها‬ ‫کالس‬
( ‫گرا‬ ‫شی‬ ‫نویسی‬ ‫پروگرام‬ ‫های‬ ‫لسان‬ ‫به‬ ‫آسانی‬Object Oriented Programming language)( ‫تطبیق‬map).‫میگردد‬‫وهمچنان‬
‫کال‬ ‫در‬( ‫محدودیات‬ ‫دیاگرام‬ ‫س‬constraints.‫است‬ ‫شامل‬ ‫نیز‬ ‫ها‬ )
:‫از‬ ‫عبارتند‬ ‫که‬ ‫اند‬ ‫شامل‬ ‫مختلفی‬ ‫اجزای‬ ‫دیاگرام‬ ‫کالس‬ ‫ترسیم‬ ‫در‬ ‫که‬ ‫میتوانیم‬ ‫گفته‬ ‫پس‬
‫ها‬ ‫کالس‬
‫ها‬ ‫انترفس‬
Association‫(ارتباطات‬)
Collaboration)‫ها‬ ‫کالس‬ ‫بین‬ ‫ها‬ ‫همکاری‬ (
Constraints) ‫(محدودیات‬
‫دیاگرام‬ ‫کالس‬ ‫اهداف‬
‫د‬‫تحلیل‬ ‫و‬ ‫یزاین‬static view‫تنها‬ ‫یعنی‬ .‫ویر‬ ‫سافت‬ ‫یک‬component‫نشان‬ ‫دیاگرام‬ ‫کالس‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫میتوانیم‬ ‫هارا‬
.‫دهیم‬
‫سیستم‬ ‫مسئولیات‬ ‫تشریح‬
Forward engineering and reverse engineering‫را‬ ‫ویر‬ ‫سافت‬ ‫یک‬ ‫دیاگرام‬ ‫کالس‬ ‫روی‬ ‫از‬ ‫میتوانیم‬ ‫اینکه‬ ‫یعنی‬
develop‫حالت‬ ‫درین‬ ‫که‬ ‫کنیم‬forward engineering‫روی‬ ‫از‬ ‫میتوانیم‬ ‫وهم‬ ‫یادمیگردد‬code‫را‬ ‫دیاگرام‬ ‫کالس‬ ‫ها‬
‫نام‬ ‫به‬ ‫حالت‬ ‫این‬ ‫که‬ ‫کنیم‬ ‫ترسیم‬reverse engineering.‫یادمیگردد‬
.‫بگیریم‬ ‫نظر‬ ‫مد‬ ‫را‬ ‫ذیل‬ ‫نکات‬ ‫باید‬ ‫دیاگرام‬ ‫کالس‬ ‫ترسیم‬ ‫درزمان‬
‫ب‬ ‫یعنی‬ ‫باشند‬ ‫میکنند‬ ‫که‬ ‫کارهای‬ ‫کنندهء‬ ‫واضح‬ ‫باید‬ ‫ها‬ ‫کالس‬ ‫های‬ ‫نام‬.‫باشند‬ ‫مفهوم‬ ‫با‬ ‫و‬ ‫معنی‬ ‫ا‬
.‫شود‬ ‫مشخص‬ ‫باید‬ ‫کالس‬ ‫اجزای‬ ‫و‬ ‫کالس‬ ‫ارتباطات‬
( ‫سیستم‬ ‫مسؤلیات‬attributes‫و‬methods).‫گردند‬ ‫معرفی‬ ‫واضح‬ ‫شکل‬ ‫به‬ ‫هاباید‬
‫تنها‬ ‫دیاگرام‬ ‫شدن‬ ‫پیچیده‬ ‫از‬ ‫جلوگیری‬ ‫برای‬properties‫و‬method‫نشان‬ ‫واز‬ ‫میدهیم‬ ‫نشان‬ ‫را‬ ‫کالس‬ ‫یک‬ ‫اساسی‬ ‫های‬
‫افعا‬ ‫و‬ ‫مشخصات‬ ‫دادن‬‫میکنیم‬ ‫نظر‬ ‫صرف‬ ‫دیاگرام‬ ‫در‬ ‫اضافی‬ ‫ل‬
.‫شود‬ ‫مشخص‬ ‫باید‬ ‫کالس‬ ‫وظیفهء‬ ‫و‬ ‫هدف‬ ، ‫نوع‬
.‫شود‬ ‫آورده‬ ‫الزم‬ ‫اصالحات‬ ‫تا‬ ‫گیرد‬ ‫صورت‬ ‫کار‬ ‫بار‬ ‫چندین‬ ‫آن‬ ‫باالی‬ ‫طوریکه‬ ‫گردد‬ ‫ترسیم‬ ‫ورق‬ ‫روی‬ ‫به‬ ‫باید‬ ‫دیاگرام‬
‫میتوانیم؟‬ ‫نموده‬ ‫ترسیم‬ ‫را‬ ‫دیاگرام‬ ‫کالس‬ ‫چگونه‬
‫ا‬ ‫که‬ ‫است‬ ‫الزم‬ ‫دیاگرام‬ ‫کالس‬ ‫ترسیم‬ ‫برای‬.‫بدانیم‬ ‫آنهارا‬ ‫نمایش‬ ‫وطرز‬ ‫دیاگرام‬ ‫کالس‬ ‫اجزای‬ ‫تمام‬ ‫وال‬
:‫از‬ ‫متشکل‬ ‫هرکالس‬ ‫که‬ ‫باشد‬ ‫می‬ ‫دیاگرام‬ ‫کالس‬ ‫از‬ ‫مهم‬ ‫بخش‬ ‫یک‬ :‫ها‬ ‫کالس‬
‫کالس‬ ‫نام‬
( ‫مشخصات‬attributes‫نام‬ ‫به‬ ‫درجاوا‬ ‫که‬ :)field.‫میشود‬ ‫یاد‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
33 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
( ‫افعال‬operation or behavior).‫یادمیگردد‬ ‫ها‬ ‫متود‬ ‫نام‬ ‫به‬ ‫جاوا‬ ‫در‬ ‫که‬
Association:‫طورذیل‬ ‫باشد‬ ‫می‬ ‫دوکالس‬ ‫بین‬ ‫ارتباط‬ ‫نشاندهندهء‬ ‫دیاگرام‬ ‫کالس‬ ‫در‬ :
Role‫یک‬ ‫فوقانی‬ ‫قسمت‬ ‫به‬ ‫که‬ ‫است‬ ‫متنی‬ :association‫میتوانیم‬ ‫آن‬ ‫از‬ ‫استفاده‬ ‫وبا‬ .‫میسازد‬ ‫واضح‬ ‫را‬ ‫ارتباط‬ ‫وهدف‬ ‫میگردد‬ ‫نوشته‬
association.‫کنیم‬ ‫فرق‬ ‫را‬ ‫کالس‬ ‫یک‬ ‫های‬
Multiplicity‫شود‬ ‫واضح‬ ‫باید‬ :‫چند‬ ‫کالس‬ ‫یک‬ ‫که‬object‫های‬ ‫انجام‬ ‫در‬ ‫ها‬ ‫نمبر‬ ‫توسط‬ ‫واین‬ ‫داشته؟‬ ‫میتواند‬ ‫را‬ ‫دومی‬ ‫کالس‬
association‫چند‬ ‫همزمان‬ ‫یعنی‬ .‫میگردد‬ ‫واضح‬object‫منحیث‬ ‫میتواند‬ ‫کالس‬ ‫یک‬instance field‫استفاده‬ ‫دیگری‬ ‫کالس‬ ‫در‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
34 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
‫یک‬ ‫تنها‬ ‫که‬ ‫درصورت‬ .‫گردد‬instance‫انجام‬ ‫در‬ ‫میتوانست‬ ‫داشته‬association(1‫بینهایت‬ ‫درصورتیکه‬ ‫و‬ )instance‫داشته‬
‫درانجام‬ ‫میتوانست‬association( ‫از‬*:‫مثال‬ .‫میکنیم‬ ‫استفاده‬ )‫هر‬ ‫که‬ ‫میدهد‬ ‫نشان‬ ‫ذیل‬ ‫دیاگرام‬ ‫در‬flight‫یک‬ ‫تنها‬plane‫داشته‬
‫چندین‬ ‫میتواند‬ ‫پرواز‬ ‫هر‬ ‫برعکس‬ ‫و‬ ‫میتواند‬flight.‫باشد‬ ‫داشته‬
‫که‬ ‫ممکنهء‬ ‫های‬ ‫قیمت‬ ‫از‬ ‫بعضی‬ ‫ذیل‬ ‫جدول‬multiplicity.‫باشد‬ ‫می‬ ‫میکند‬ ‫واضح‬ ‫را‬
Association type in class diagram
Inheritance‫بعضی‬ ‫کالس‬ ‫یک‬ ‫که‬ ‫است‬ ‫حالت‬ :attribute‫و‬ ‫ها‬operation‫ارث‬ ‫دیگربه‬ ‫کالس‬ ‫از‬ ‫خودرا‬ ‫های‬
‫میگیرند‬.( ‫نام‬ ‫به‬ ‫را‬ ‫اولی‬ ‫کالس‬ ‫حالت‬ ‫درین‬ ‫که‬sub class or child class‫نام‬ ‫به‬ ‫را‬ ‫دومی‬ ‫کالس‬ ‫و‬ )(super class or
parent class)‫البته‬ .‫میکنند‬ ‫یاد‬child class‫را‬ ‫خودش‬ ‫خاص‬ ‫خصوصیات‬ ‫میتواند‬ ‫گرفته‬ ‫ارث‬ ‫به‬ ‫خصوصیات‬ ‫پهلوی‬ ‫در‬
.‫باشد‬ ‫داشته‬ ‫نیز‬‫کلیدی‬ ‫کلمهء‬ ‫استعمال‬ ‫با‬ ‫درجاوا‬extends‫کالس‬ ‫دو‬ ‫رابین‬ ‫رابطه‬ ‫این‬ ‫میتوانیم‬ ‫کالس‬ ‫تعریف‬ ‫زمان‬ ‫در‬
.‫کنیم‬ ‫برقرار‬‫دیاگرام‬ ‫کالس‬ ‫ودر‬inheritance:‫میشود.مثال‬ ‫داده‬ ‫نمایش‬ ‫ذیل‬ ‫طور‬
‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬
35 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
‫که‬ ‫میتوانیم‬ ‫گفته‬BMW‫و‬ ‫مشخصات‬Operation‫کالس‬ ‫های‬car.‫است‬ ‫گرفته‬ ‫ارث‬ ‫به‬ ‫را‬
Aggregation:‫یاچندین‬ ‫و‬ ‫یک‬ ‫زمانیکه‬Object‫نام‬ ‫به‬ ‫حالت‬ ‫این‬ ‫شود‬ ‫استفاده‬ ‫دومی‬ ‫کالس‬ ‫در‬ ‫فیلد‬ ‫منحیث‬ ‫کالس‬ ‫یک‬
aggregation.‫میگردد‬ ‫یاد‬‫کلی‬ ‫کالس‬ ‫یک‬ ‫یعنی‬(whole)‫چندین‬ ‫میتاند‬object.‫باشد‬ ‫داشته‬ ‫را‬ ‫دیگری‬ ‫کالس‬ ‫از‬
Composition aggregation‫از‬ ‫شکل‬ ‫یک‬ ‫درحقیقت‬ ‫هم‬ ‫رابطه‬ ‫این‬ :aggregation‫یک‬ ‫میتواند‬ ‫کالس‬ ‫یک‬ ‫که‬ ‫میباشد‬
‫ایجاد‬ ‫با‬ ‫که‬ ‫است‬ ‫طوری‬ ‫آنها‬ ‫ارتباط‬ ‫ولی‬ ‫باشد‬ ‫داشته‬ ‫درخود‬ ‫را‬ ‫دیگر‬ ‫کالس‬object، ‫اولی‬ ‫کالس‬object‫دو‬ ‫کالس‬‫نیز‬ ‫می‬
‫شدن‬ ‫ایجاد‬ ‫یعنی‬ .‫میگردد‬ ‫ایجاد‬ ‫بخود‬ ‫خود‬object‫شدن‬ ‫ایجاد‬ ‫به‬ ‫وابسته‬ ‫کالس‬ ‫یک‬object‫درجاوا‬ ‫و‬ .‫است‬ ‫دیگری‬ ‫کالس‬
‫باید‬ ‫ارتباط‬ ‫نوع‬ ‫این‬ ‫برقراری‬ ‫برای‬object‫در‬ ‫کالس‬ ‫یک‬constructor‫ایجاد‬ ‫محض‬ ‫به‬ ‫تا‬ ‫گردد‬ ‫ایجاد‬ ‫دومی‬ ‫کالس‬
object‫دومی‬ ‫کالس‬constructor‫نیز‬ ‫آن‬call‫شده‬‫و‬object‫کمپنی‬ ‫هر‬ ‫میدانیم‬ ‫مثال‬ ‫بطور‬ .‫گردد‬ ‫ایجاد‬ ‫نیز‬ ‫دومی‬ ‫کالس‬
.‫باشد‬ ‫می‬ ‫دیپارتمنت‬ ‫یک‬ ‫حداقل‬ ‫دارای‬ ‫افتیدن‬ ‫کار‬ ‫به‬ ‫و‬ ‫شدن‬ ‫ایجاد‬ ‫محض‬ ‫به‬
راهکارهای طراحی نرم افزار ها   محب الله امان
راهکارهای طراحی نرم افزار ها   محب الله امان
راهکارهای طراحی نرم افزار ها   محب الله امان
راهکارهای طراحی نرم افزار ها   محب الله امان
راهکارهای طراحی نرم افزار ها   محب الله امان
راهکارهای طراحی نرم افزار ها   محب الله امان
راهکارهای طراحی نرم افزار ها   محب الله امان
راهکارهای طراحی نرم افزار ها   محب الله امان
راهکارهای طراحی نرم افزار ها   محب الله امان
راهکارهای طراحی نرم افزار ها   محب الله امان
راهکارهای طراحی نرم افزار ها   محب الله امان
راهکارهای طراحی نرم افزار ها   محب الله امان

Contenu connexe

Similaire à راهکارهای طراحی نرم افزار ها محب الله امان

Scalable javascript application - طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
Scalable javascript application -  طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپتScalable javascript application -  طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
Scalable javascript application - طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپتefazati
 
cloud computing , رایانش ابری
cloud computing , رایانش ابریcloud computing , رایانش ابری
cloud computing , رایانش ابریvhd-abdarbashi
 
نرم افزار تابلو اعلانات اتوماسیون اداری
نرم افزار تابلو اعلانات اتوماسیون ادارینرم افزار تابلو اعلانات اتوماسیون اداری
نرم افزار تابلو اعلانات اتوماسیون اداریchargoon
 
مهاجرت به متن باز در شرکت توزیع برق مشهد
مهاجرت به متن باز در شرکت توزیع برق مشهدمهاجرت به متن باز در شرکت توزیع برق مشهد
مهاجرت به متن باز در شرکت توزیع برق مشهدعباس بني اسدي مقدم
 
The role of formal method in reaching dependable software (farsi)
The role of formal method in reaching dependable software (farsi)The role of formal method in reaching dependable software (farsi)
The role of formal method in reaching dependable software (farsi)Ali Bahrani
 
مجموعه برنامه‌های دیدگاه در بستر همراه
مجموعه برنامه‌های دیدگاه در بستر همراهمجموعه برنامه‌های دیدگاه در بستر همراه
مجموعه برنامه‌های دیدگاه در بستر همراهchargoon
 
آموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEW
آموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEWآموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEW
آموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEWfaradars
 
آشنایی با چابکی و اسکرام (Agile & scrum)
آشنایی با چابکی و اسکرام (Agile & scrum)آشنایی با چابکی و اسکرام (Agile & scrum)
آشنایی با چابکی و اسکرام (Agile & scrum)Neda Ansari
 
Digital Publisher
Digital PublisherDigital Publisher
Digital PublisherShad Far
 
How to choose appropriate technology for product development - Persian Version
How to choose appropriate technology for product development - Persian VersionHow to choose appropriate technology for product development - Persian Version
How to choose appropriate technology for product development - Persian Versionaminmesbahi
 
انفجار تجربه‌کاربری
انفجار تجربه‌کاربریانفجار تجربه‌کاربری
انفجار تجربه‌کاربریWeb Standards School
 
agil software managment by scrunm in tfs
agil software managment by scrunm in tfsagil software managment by scrunm in tfs
agil software managment by scrunm in tfsReza Rahimy
 

Similaire à راهکارهای طراحی نرم افزار ها محب الله امان (20)

Scalable javascript application - طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
Scalable javascript application -  طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپتScalable javascript application -  طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
Scalable javascript application - طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
 
cloud computing , رایانش ابری
cloud computing , رایانش ابریcloud computing , رایانش ابری
cloud computing , رایانش ابری
 
نرم افزار تابلو اعلانات اتوماسیون اداری
نرم افزار تابلو اعلانات اتوماسیون ادارینرم افزار تابلو اعلانات اتوماسیون اداری
نرم افزار تابلو اعلانات اتوماسیون اداری
 
Proxmox
ProxmoxProxmox
Proxmox
 
مهاجرت به متن باز در شرکت توزیع برق مشهد
مهاجرت به متن باز در شرکت توزیع برق مشهدمهاجرت به متن باز در شرکت توزیع برق مشهد
مهاجرت به متن باز در شرکت توزیع برق مشهد
 
The role of formal method in reaching dependable software (farsi)
The role of formal method in reaching dependable software (farsi)The role of formal method in reaching dependable software (farsi)
The role of formal method in reaching dependable software (farsi)
 
مجموعه برنامه‌های دیدگاه در بستر همراه
مجموعه برنامه‌های دیدگاه در بستر همراهمجموعه برنامه‌های دیدگاه در بستر همراه
مجموعه برنامه‌های دیدگاه در بستر همراه
 
آموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEW
آموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEWآموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEW
آموزش نرم افزار صنعتی کنترل و مانیتورینگ LabVIEW
 
آشنایی با چابکی و اسکرام (Agile & scrum)
آشنایی با چابکی و اسکرام (Agile & scrum)آشنایی با چابکی و اسکرام (Agile & scrum)
آشنایی با چابکی و اسکرام (Agile & scrum)
 
Digital Publisher
Digital PublisherDigital Publisher
Digital Publisher
 
How to choose appropriate technology for product development - Persian Version
How to choose appropriate technology for product development - Persian VersionHow to choose appropriate technology for product development - Persian Version
How to choose appropriate technology for product development - Persian Version
 
بکتوری
بکتوریبکتوری
بکتوری
 
Liara
LiaraLiara
Liara
 
انفجار تجربه‌کاربری
انفجار تجربه‌کاربریانفجار تجربه‌کاربری
انفجار تجربه‌کاربری
 
Scrum Presentation
Scrum PresentationScrum Presentation
Scrum Presentation
 
94.10.18
94.10.1894.10.18
94.10.18
 
agil software managment by scrunm in tfs
agil software managment by scrunm in tfsagil software managment by scrunm in tfs
agil software managment by scrunm in tfs
 
Service_Management_1
Service_Management_1Service_Management_1
Service_Management_1
 
Scrum
ScrumScrum
Scrum
 
OpenStack and its service
OpenStack and its serviceOpenStack and its service
OpenStack and its service
 

Plus de Muhibullah Aman

Forth exploration dari note-muhibullah aman اکسپلوریشن چهارم- شبکه های کمپیور...
Forth exploration dari note-muhibullah aman اکسپلوریشن چهارم- شبکه های کمپیور...Forth exploration dari note-muhibullah aman اکسپلوریشن چهارم- شبکه های کمپیور...
Forth exploration dari note-muhibullah aman اکسپلوریشن چهارم- شبکه های کمپیور...Muhibullah Aman
 
(Linux Ubuntu Guide in Persian- Basic)رهنمود سیستم عامل اوبنتو فارسی- محب ال...
 (Linux Ubuntu Guide in Persian- Basic)رهنمود سیستم عامل اوبنتو فارسی- محب ال... (Linux Ubuntu Guide in Persian- Basic)رهنمود سیستم عامل اوبنتو فارسی- محب ال...
(Linux Ubuntu Guide in Persian- Basic)رهنمود سیستم عامل اوبنتو فارسی- محب ال...Muhibullah Aman
 
Spoofing Attacks حملات جعل هویت
Spoofing Attacks حملات جعل هویت Spoofing Attacks حملات جعل هویت
Spoofing Attacks حملات جعل هویت Muhibullah Aman
 
Lecture 07 cabling device
Lecture 07 cabling deviceLecture 07 cabling device
Lecture 07 cabling deviceMuhibullah Aman
 
02th week 01t day lecture cabling history
02th week 01t day lecture cabling history02th week 01t day lecture cabling history
02th week 01t day lecture cabling historyMuhibullah Aman
 
02th week 03th day lecture digital & anolog signal
02th week 03th day lecture digital & anolog signal02th week 03th day lecture digital & anolog signal
02th week 03th day lecture digital & anolog signalMuhibullah Aman
 
1th week 04th day lecture golden rule of cabling
1th week 04th day lecture golden rule of cabling1th week 04th day lecture golden rule of cabling
1th week 04th day lecture golden rule of cablingMuhibullah Aman
 
Lecture 02 cabling system
Lecture 02 cabling systemLecture 02 cabling system
Lecture 02 cabling systemMuhibullah Aman
 
Cisco Exploration 2 In Persion-Muhibullah Aman
Cisco Exploration 2 In Persion-Muhibullah AmanCisco Exploration 2 In Persion-Muhibullah Aman
Cisco Exploration 2 In Persion-Muhibullah AmanMuhibullah Aman
 

Plus de Muhibullah Aman (9)

Forth exploration dari note-muhibullah aman اکسپلوریشن چهارم- شبکه های کمپیور...
Forth exploration dari note-muhibullah aman اکسپلوریشن چهارم- شبکه های کمپیور...Forth exploration dari note-muhibullah aman اکسپلوریشن چهارم- شبکه های کمپیور...
Forth exploration dari note-muhibullah aman اکسپلوریشن چهارم- شبکه های کمپیور...
 
(Linux Ubuntu Guide in Persian- Basic)رهنمود سیستم عامل اوبنتو فارسی- محب ال...
 (Linux Ubuntu Guide in Persian- Basic)رهنمود سیستم عامل اوبنتو فارسی- محب ال... (Linux Ubuntu Guide in Persian- Basic)رهنمود سیستم عامل اوبنتو فارسی- محب ال...
(Linux Ubuntu Guide in Persian- Basic)رهنمود سیستم عامل اوبنتو فارسی- محب ال...
 
Spoofing Attacks حملات جعل هویت
Spoofing Attacks حملات جعل هویت Spoofing Attacks حملات جعل هویت
Spoofing Attacks حملات جعل هویت
 
Lecture 07 cabling device
Lecture 07 cabling deviceLecture 07 cabling device
Lecture 07 cabling device
 
02th week 01t day lecture cabling history
02th week 01t day lecture cabling history02th week 01t day lecture cabling history
02th week 01t day lecture cabling history
 
02th week 03th day lecture digital & anolog signal
02th week 03th day lecture digital & anolog signal02th week 03th day lecture digital & anolog signal
02th week 03th day lecture digital & anolog signal
 
1th week 04th day lecture golden rule of cabling
1th week 04th day lecture golden rule of cabling1th week 04th day lecture golden rule of cabling
1th week 04th day lecture golden rule of cabling
 
Lecture 02 cabling system
Lecture 02 cabling systemLecture 02 cabling system
Lecture 02 cabling system
 
Cisco Exploration 2 In Persion-Muhibullah Aman
Cisco Exploration 2 In Persion-Muhibullah AmanCisco Exploration 2 In Persion-Muhibullah Aman
Cisco Exploration 2 In Persion-Muhibullah Aman
 

راهکارهای طراحی نرم افزار ها محب الله امان

  • 1. ‫سال‬ ‫تابستان‬1394‫خو‬ ‫هجری‬‫رشیدی‬ ‫کابل‬ ‫دانشگاه‬ ‫ساینس‬ ‫کمپیوتر‬ ‫دانشکدهء‬ Guidelines for Making Software "‫"امان‬ ‫هللا‬ ‫محب‬ :‫وترتیب‬ ‫تهیه‬ "‫"باهز‬ ‫رفیع‬ ‫محمد‬ ‫استاد‬ :‫نظر‬ ‫تحت‬
  • 2. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 1 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ ‫ومهربان‬ ‫بخشاینده‬ ‫خداوند‬ ‫نام‬ ‫به‬ ‫بجای‬‫مقدمه‬‫کمی‬‫از‬‫درد‬‫برای‬‫تان‬‫قصه‬‫میکنم‬!‫دردی‬‫که‬‫کشنده‬‫است‬.‫دردی‬‫که‬‫تلخ‬،‫رنج‬‫آورو‬‫دردناک‬‫است‬.‫دردی‬‫که‬‫امروز‬‫درد‬ ‫است‬‫ولی‬‫درآینده‬‫دردها‬‫میشود‬‫وهمچون‬‫بیماری‬‫العالجی‬‫به‬‫استخوان‬‫ها‬‫سر‬‫ایت‬‫میکند‬. ‫دوستان‬‫عزیز‬!‫تجاوز‬‫تنها‬‫بدین‬‫معنی‬‫نیست‬‫که‬‫متجاوزین‬‫استفاده‬‫ازحریم‬‫خصوصی‬،‫کشور‬‫ویا‬‫مال‬‫ودارایی‬‫شخصی‬‫را‬‫باالی‬‫خود‬ ‫جایزدانسته‬‫وازآن‬‫استفادهء‬‫غیر‬‫مشروع‬‫نماید‬‫بلکه‬‫تجاوزدرشرایط‬‫مختلف‬‫میتواند‬‫باالی‬‫مال‬‫باشد‬،‫باالی‬‫حریم‬‫شخص‬‫ویا‬‫قشری‬‫از‬ ‫جامعه‬‫باشد‬،‫باالی‬‫ناموس‬‫باشد،باالی‬‫فرهنگ‬،‫باشد‬‫باالی‬‫رسوم‬،‫باشد‬‫باالی‬‫شخصیت‬،‫باشد‬‫وصدها‬‫مورد‬‫دیگر‬.‫که‬‫در‬‫هرصورت‬ ‫تجاوز‬،‫تجاوز‬،‫است‬‫حرام‬،‫نابخشودنی‬‫و‬‫گناه‬‫کبیره‬.‫ومتجاوزین‬‫با‬‫توجه‬‫به‬‫قول‬‫حضرت‬‫محمد‬‫مصطفی‬‫ص‬(ُ‫ر‬‫ِّی‬‫ی‬َ‫غ‬ُ‫ت‬ ‫تى‬َّ‫ل‬‫ا‬ ُ‫نوب‬ُّ‫لذ‬َ‫ا‬ ُ‫ى‬‫َغ‬‫ب‬‫ال‬ َ‫م‬َ‫ع‬ِّ‫ن‬‫ال‬)‫گناهکارشمرده‬‫ش‬‫ده‬‫و‬‫مستحق‬‫عذاب‬‫دوزخ‬‫است‬.‫ودفاع‬‫از‬‫داشته‬‫های‬‫موارد‬‫فوق‬‫الذکر‬‫در‬‫مقابل‬‫متجاوزین‬‫وظیفهء‬ ‫فردی‬‫ودینی‬‫هرمسلمان‬‫است‬. ‫واقعا‬‫برایم‬‫درد‬‫آور‬‫است‬‫زمانی‬‫که‬‫فکر‬‫میکنم‬‫لسان‬‫که‬‫به‬‫آن‬‫تکلم‬‫میکنم‬‫مورد‬‫تجاوز‬‫انسان‬‫های‬‫متعصب‬،‫افراطی‬‫و‬‫لسان‬‫های‬‫غیر‬ ‫قرار‬‫گرفته‬‫است‬.‫لسانیکه‬‫با‬‫بیش‬0555‫سال‬‫قدامت‬‫تاریخی‬‫یکی‬‫از‬‫زبان‬‫های‬‫ناب‬‫و‬‫شیرین‬‫نه‬‫تنها‬‫آسیای‬‫میانه‬‫بلکه‬‫سراسر‬‫کره‬ ‫خاکی‬‫به‬‫شمار‬‫میرود‬.‫زبانیکه‬‫شاعران‬‫شیرین‬‫کالم‬‫واحساس‬‫سرایان‬‫تکرارنشدنی‬‫همچون‬‫فردوسی‬‫بزرگ‬،‫بیدل‬،،‫بیتاب‬‫طرزی‬، ،‫حافظ‬‫رودکی‬‫وغیره‬‫که‬‫حتی‬‫ذکر‬‫همهء‬‫آنها‬‫از‬‫عهده‬‫این‬‫صفح‬‫ه‬‫برآمده‬‫نیست‬‫را‬‫باخود‬‫داشته‬‫وآثار‬‫فراوان‬‫ودرخشان‬‫را‬‫دردل‬ ‫تاریخ‬‫دفن‬‫کرده‬‫است‬. ‫نمی‬‫خواهم‬‫احساس‬‫کنید‬‫که‬‫متعصبانه‬‫مینویسم‬‫و‬‫این‬‫نوشته‬‫هایم‬‫از‬‫روی‬‫تعصب‬‫است‬‫بلکه‬‫با‬‫آگاهی‬‫کامل‬‫از‬‫قول‬‫بهترینی‬‫عالم‬“‫کسی‬ ‫که‬‫متعصب‬‫است‬‫از‬‫امت‬‫من‬‫به‬‫حساب‬‫نمی‬‫آید‬”‫وبرای‬‫اینکه‬‫تا‬‫حد‬‫تو‬‫ان‬‫از‬‫تجاوزی‬‫که‬‫برلسانم‬‫صورت‬‫گرفته‬‫است‬‫دفاع‬‫کنم‬‫این‬ ‫نوشته‬‫هارا‬‫می‬‫نویسم‬.‫وهم‬‫نمیخواهم‬‫لسان‬‫دیگری‬‫ولو‬‫کامل‬‫نباشد‬‫را‬‫مورد‬‫تمسخر‬‫ویاهم‬‫تجاوز‬‫قرار‬‫دهم‬‫چون‬‫وجیبهء‬‫اسالمی‬‫ام‬‫به‬ ‫من‬‫این‬‫اجازه‬‫را‬‫نمی‬‫دهد‬.‫اما‬‫کدام‬‫اسالم؟‬! ‫آی‬‫مسلمان‬!‫آیا‬‫اسالم‬‫همین‬‫است؟‬‫آیا‬‫اسالمیت‬‫همینه؟‬‫این‬‫کدام‬‫وجه‬‫اسالم‬‫است؟‬‫این‬‫چه‬‫نوع‬‫اسالمیته‬‫؟‬‫آیا‬‫ما‬‫بی‬‫خبریم؟‬‫یااینکه‬‫شما‬ ‫با‬‫نام‬‫اسالم‬‫بازی‬‫میکنید؟‬‫آیا‬‫این‬‫سنت‬‫پیامبری‬‫است‬‫که‬‫از‬‫روی‬‫تعصب‬‫و‬‫لسان‬‫گرایی‬‫زبان‬‫اصیل‬‫و‬‫کامل‬‫قشری‬‫را‬‫مورد‬‫تجاوز‬ ‫قرار‬‫میدهید؟‬‫آیا‬‫به‬‫آخرت‬‫ایمان‬‫ندارید؟‬‫آیا‬‫با‬‫تجاوز‬‫صریح‬‫خوی‬‫ش‬‫باالی‬‫لسان‬‫قشری‬‫از‬‫جامعه‬‫خودرا‬‫نزد‬‫پیامبر‬‫گرامی‬‫اسالم‬ ‫شرمنده‬‫حس‬‫نمیکنید؟‬‫آیا‬‫ما‬‫بی‬‫خبریم؟‬‫یااینکه‬‫شما‬‫کودنید؟‬ ‫اسالم‬‫راکه‬‫من‬‫میشناسم‬،‫بوی‬‫صلح‬‫میدهد‬‫بوی‬،‫صفا‬‫آرامی‬،‫محبت‬،‫دوستی‬،‫برادری‬،‫همدلی‬،‫همدردی‬،‫همکاری‬‫و‬‫صداقت‬ ‫میدهد‬.‫نه‬‫اینکه‬‫بوی‬،‫تجاوز‬‫بوی‬‫چو‬‫ر‬،‫چپاول‬‫،ظلم‬،،‫انتحار‬‫افراط‬،‫تعصب‬‫و‬‫اجداد‬‫پرستی‬. ‫لطف‬‫میکنید‬‫اگر‬‫واژه‬‫های‬‫خاص‬‫لسان‬‫شیرین‬‫تانرا‬‫در‬‫لسان‬‫تان‬‫بگذارید‬‫باتوجه‬‫به‬‫قول‬‫اجدادمان‬“‫گل‬‫در‬‫گلبته‬‫بهتر‬‫تماشاییست‬”‫وبا‬ ‫تحمیل‬‫این‬‫واژه‬‫ها‬‫باالی‬‫لسان‬‫دیگر‬،‫نه‬‫زیبایی‬‫لسان‬‫تانرا‬‫کمرنگ‬‫کنید‬‫و‬‫نه‬‫لسان‬‫های‬‫دیگری‬‫را‬‫به‬‫لجن‬‫بکشانید‬.‫آخر‬‫یعنی‬‫چی؟‬ ‫چی‬‫را‬‫میخواهید‬‫ثابت‬‫کنید؟‬‫قدرت‬‫تانرا؟‬‫یا‬‫مظلومیت‬‫مانرا؟‬‫ویاهم‬‫متجاوزبودن‬‫تانرا‬! ‫به‬‫دوستان‬‫که‬‫نوشته‬‫هایم‬‫برایشان‬‫زهر‬‫دار‬‫است‬‫هم‬‫توصیه‬‫میکنم‬‫لطف‬‫کنند‬‫نه‬‫بخاطر‬‫من‬‫بلکه‬‫یکبار‬‫به‬‫خاطر‬‫رضای‬،‫خداوند‬ ‫بخاطر‬‫انسانیت‬،‫بخاطر‬‫مسل‬‫مان‬‫بودن‬‫شان‬‫سردرگریبان‬‫خود‬‫کرده‬‫و‬‫عادالنه‬‫قضاوت‬‫کنند‬‫آیا‬‫من‬‫اشتباه‬‫گفته‬‫ام‬‫ویا‬‫اینکه‬‫بعضی‬‫ها‬ ‫متجاوزبه‬‫حساب‬‫می‬‫آید‬.‫و‬‫ما‬‫چه‬‫موقفی‬‫باید‬‫در‬‫مقابل‬‫شان‬‫داشته‬‫باشیم‬.‫با‬‫توجه‬‫به‬‫اینکه‬‫درنخست‬‫فرمودم‬‫امروز‬‫این‬‫درد‬‫است‬‫ولی‬ ‫ممکن‬‫در‬‫آینده‬‫ها‬‫به‬‫دردها‬‫تبدیل‬‫شود‬‫و‬‫همچن‬‫ین‬‫به‬‫قول‬‫ضرب‬‫المثل‬‫معروف‬“‫چون‬‫می‬‫بینی‬‫که‬‫نابینا‬‫و‬‫چاه‬‫است‬‫اگر‬‫خاموش‬ ‫بنشینی‬‫گناه‬‫است‬” .__ ‫عزیزم‬ ‫همصنفان‬ ‫تمام‬ ‫از‬ ‫هم‬ ‫اخیر‬ ‫ودر‬‫مخلصانه‬‫مجموعه‬ ‫این‬ ‫محتویات‬ ‫دربهبودی‬ ‫مرا‬ ‫شان‬ ‫نیک‬ ‫نظریات‬ ‫و‬ ‫ها‬ ‫پیشنهاد‬ ، ‫ها‬ ‫انتفاد‬ ‫با‬ ‫که‬ ‫تقاضامندم‬ ‫پروگ‬ ‫جامعهء‬ ‫برای‬ ‫باشد‬ ‫تا‬ .‫بخشند‬ ‫یاری‬.‫باشیم‬ ‫کرده‬ ‫خدمتی‬ ‫افغانستان‬ ‫نویسی‬ ‫رام‬ ‫احترام‬ ‫با‬"‫"امان‬ ‫هللا‬ ‫محب‬
  • 3. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 2 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ ‫چیست؟‬ ‫انجنیرینگ‬ ‫ویر‬ ‫سافت‬ ‫خاص‬ ‫افزارهای‬ ‫نرم‬ ‫از‬ ‫آنان‬ ‫استفادهء‬ ‫و‬ ‫ها‬ ‫ارگان‬ ‫تمام‬ ‫شدن‬ ‫کمپیوتری‬ ‫به‬ ‫توجه‬ ‫با‬، ‫ومغلق‬ ‫پیچیده‬ ‫حال‬ ‫ودرعین‬‫ومدیریت‬ ‫تنظیم‬ ‫برای‬ ‫قسمی‬ ‫ها‬ ‫افزار‬ ‫نرم‬ ‫تا‬ ‫است‬ ‫نیاز‬ ‫شان‬ ‫معلومات‬ ‫بهتر‬‫بسازد‬ ‫برآورده‬ ‫احسن‬ ‫وجه‬ ‫به‬ ‫را‬ ‫شان‬ ‫نیازهای‬ ‫ازاینکه‬ ‫برعالوهء‬ ‫که‬ ‫گردد‬ ‫ایجاد‬ ، ‫سهولت‬ ، ‫اعتماد‬ ‫قابلیت‬، ‫مؤثریت‬.‫آورد‬ ‫بوجود‬ ‫را‬ ‫وغیره‬ ‫امنیت‬‫که‬ ‫توانیم‬ ‫می‬ ‫گفته‬ ‫ازاینرو‬software developer‫دارای‬ ‫ها‬ ‫سنگین‬ ‫مسؤلیت‬‫سافت‬ ‫با‬ ‫کار‬ ‫و‬ ‫نگهداری‬ ‫زمان‬ ‫در‬ ‫چه‬ ‫و‬ ‫سافت‬ ‫ایجاد‬ ‫زمان‬ ‫در‬ ‫چه‬، ‫ویر‬‫مسؤلیت‬ ‫نوع‬ ‫این‬ ‫ازپس‬ ‫اینکه‬ ‫وبرای‬ ‫باشد‬ ‫می‬ .‫دارد‬ ‫ها‬ ‫وروش‬ ‫دستورالعملها‬ ، ‫قوانین‬ ‫سلسله‬ ‫یک‬ ‫نیازبه‬ ‫برآید‬ ‫ها‬ ، ‫پراسه‬ ‫هم‬ ‫انجنیرینگ‬ ‫ویر‬ ‫سافت‬Framework‫از‬ ‫مجموعهء‬ ‫یا‬ ‫و‬technical discipline‫ویر‬ ‫سافت‬ ‫یک‬ ‫ساختن‬ ‫برای‬ ‫که‬ ‫باشد‬ ‫می‬ ‫دری‬ ‫از‬ ‫ویر‬ ‫سافت‬ ‫ساختن‬ ‫واین‬ .‫رود‬ ‫بکارمی‬‫دیزاین‬ ، ‫نیازها‬ ‫برای‬ ‫حل‬ ‫راه‬ ‫دریافت‬ ، ‫تحلیل‬ ‫تا‬ ‫شروع‬ ‫مشتری‬ ‫نیازهای‬ ‫تشخیص‬ ‫و‬ ‫افت‬ ، ‫مدیریت‬marketing‫نگهداری‬ ،‫ساختن‬ ‫زمان‬ ‫در‬ ‫چه‬ ‫ویر‬ ‫سافت‬ ‫ابعاد‬ ‫تمام‬ ‫با‬ ‫انجنیرینگ‬ ‫ویر‬ ‫سافت‬ ‫یعنی‬ .‫است‬ ‫شامل‬ ‫را‬ ‫وغیره‬ ، ‫نیازمندی‬ ‫(تحلیل‬ ‫ویر‬ ‫سافت‬‫(مار‬ ‫آن‬ ‫نگهداری‬ ‫درقسمت‬ ‫وچه‬ )‫وغیره‬ ‫دیزاین‬، ‫کتینگ‬s/w project management‫ارتباط‬ ‫در‬ ) .‫آید‬ ‫بمیان‬ ... ‫و‬ ‫اعتماد‬ ‫قابل‬ ، ‫خوب‬ ‫ویر‬ ‫سافت‬ ‫یک‬ ‫نتیجه‬ ‫در‬ ‫تا‬ .‫است‬ ‫که‬ ‫است‬ ‫تخنیکی‬ ‫دستورالعملهای‬ ‫از‬ ‫عبارت‬ ‫انجنیرینگ‬ ‫ویر‬ ‫سافت‬ ‫که‬ ‫توانیم‬ ‫می‬ ‫گفته‬ ‫اختصار‬ ‫بطور‬‫شامل‬: ‫آن‬ ‫تشخیص‬ ‫و‬ ‫مشتری‬ ‫های‬ ‫نیاز‬ ‫دریافت‬ ‫دریافت‬‫رفع‬ ‫برای‬ ‫حل‬ ‫راه‬‫روش‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫مشتری‬ ‫های‬ ‫نیاز‬‫ونظریات‬ ‫ها‬‫شده‬ ‫شناخته‬‫وموجود‬ .‫نباشد‬ ‫موجود‬ ‫نظریات‬ ‫و‬ ‫ها‬ ‫روش‬ ‫درصورتیکه‬ ‫مشتری‬ ‫های‬ ‫نیاز‬ ‫رفع‬ ‫برای‬ ‫حل‬ ‫راه‬ ‫دریافت‬ ‫پروژه‬ ‫مدیریت‬ ‫ویرها‬ ‫سافت‬ ‫در‬ ‫آمدن‬ ‫تغییرات‬ ‫قبول‬ ‫و‬ ‫کنترول‬‫وغیره‬.‫باشد‬ ‫مفهوم‬ ‫درک‬ ‫با‬software engineering‫پی‬ ‫نکته‬ ‫بدین‬ ‫ما‬( ‫برنامه‬ ‫یک‬ ‫تنها‬ ‫ویر‬ ‫سافت‬ ‫که‬ ‫میبریم‬program‫ازبرنامه‬ ‫مجموعهء‬ ‫ویا‬ ) ( ‫ها‬programs‫بلکه‬ ‫نیست‬ ):‫ازقبیل‬ ‫دیگری‬ ‫ودستورالعملهای‬ ‫ها‬ ‫ویژگی‬ ، ‫قوانین‬ ‫شامل‬ Documentation ‫ویر‬ ‫سافت‬ ‫نگهداری‬ ‫و‬ ‫ویر‬ ‫سافت‬ ‫برای‬ ‫الزمی‬ ‫ومشخصات‬ ‫خواص‬ Dependability Efficiency Security.‫میباشد‬ ‫وغیره‬ Software Process Software process‫مجموعهء‬ ‫از‬ ‫عبارت‬( ‫ها‬ ‫فعالیت‬activities.‫میگردد‬ ‫ایجاد‬ ‫ویر‬ ‫سافت‬ ‫یک‬ ‫آن‬ ‫درنتیجهء‬ ‫که‬ ‫باشد‬ ‫می‬ ) ‫و‬activity( ‫ابتدا‬ ‫از‬ ‫ویر‬ ‫سافت‬ ‫ایجاد‬ ‫مراحل‬ ‫شامل‬ ‫تواند‬ ‫می‬ ‫ها‬scratch‫وهم‬ ‫باشد‬ ‫جاوا‬ ‫مثل‬ ‫نویسی‬ ‫پروگرام‬ ‫های‬ ‫لسان‬ ‫از‬ ‫استفاده‬ ‫با‬ ) ‫شا‬ ‫تواند‬ ‫می‬.‫باشد‬ ‫جدید‬ ‫ویر‬ ‫سافت‬ ‫یک‬ ‫ساختن‬ ‫ودرنتیجه‬ ‫موجودی‬ ‫های‬ ‫ویر‬ ‫سافت‬ ‫در‬ ‫آوردن‬ ‫تغییرات‬ ‫و‬ ‫دادن‬ ‫توسعه‬ ‫مل‬ ‫است‬ ‫ممکن‬activity‫ملحوظ‬ ‫بدین‬ ‫درآید‬ ‫اجرا‬ ‫به‬ ،‫مختلف‬ ‫وانواع‬ ‫اشکال‬ ‫به‬ ‫مذکور‬ ‫هایی‬software process model‫آمده‬ ‫بمیان‬ ‫ها‬ ‫هر‬ ‫ولی‬ ‫است‬software process‫چهار‬ ‫باید‬activity‫ذیل‬.‫باشد‬ ‫شامل‬ ‫را‬ ، ‫باشد‬ ‫می‬ ‫سازی‬ ‫ویر‬ ‫سافت‬ ‫اساس‬ ‫که‬ Software Specification‫انجام‬ ‫باید‬ ‫را‬ ‫کارهایی‬ ‫چه‬ ‫ویر‬ ‫سافت‬ ، ‫مشتری‬ ‫درخواست‬ ‫نظربه‬ ‫اینکه‬ ‫ویا‬ ‫ویر‬ ‫سافت‬ ‫تعریف‬ : ‫دهد‬‫کارهایی‬ ‫وازچه‬user( ‫بازدارد‬ ‫را‬constraint)‫دراین‬ ،activity.‫میگردد‬ ‫مشخص‬
  • 4. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 3 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ Software Design and implementation‫این‬ :activity‫به‬ ‫مطابق‬ ‫طوریکه‬ ‫ویر‬ ‫سافت‬ ‫وایجاد‬ ‫دیزاین‬ ‫شامل‬ software specification.‫باشد‬ Software Validation‫این‬ ‫در‬ ‫یعنی‬ :activity‫باید‬ ‫ویر‬ ‫سافت‬validate(‫تایید‬)‫وتثبیت‬‫تا‬ ‫گردد‬‫را‬ ‫مشتری‬ ‫های‬ ‫نیاز‬ .‫ویاخیر‬ ‫سازد‬ ‫می‬ ‫مرفوع‬ Software Evaluation:‫این‬activity‫از‬ ‫پس‬ ‫ویر‬ ‫سافت‬ ‫تکامل‬ ‫بخاطر‬ ‫مشتری‬ ‫که‬ ‫باشد‬ ‫می‬ ‫تغییرات‬ ‫شامل‬validation .‫میکنند‬ ‫پیشنهاد‬ ‫نیازهای‬ ‫به‬ ‫مطابق‬ ‫آنرا‬ ‫و‬ ‫بیاوریم‬ ‫شده‬ ‫ساخته‬ ‫وازقبل‬ ‫موجودی‬ ‫های‬ ‫ویر‬ ‫سافت‬ ‫در‬ ‫تغییرات‬ ‫که‬ ‫درصورت‬ ‫استاد‬ ‫گفتهء‬ ‫وبنابر‬ ‫شامل‬ ‫بخشیم‬ ‫تکامل‬ ‫خود‬ ‫جدید‬ ‫مشتری‬software evaluation.‫باشد‬ ‫می‬ ‫ی‬‫به‬ ‫ومشابه‬ ‫باشد‬ ‫داشته‬ ‫سازی‬ ‫ویر‬ ‫سافت‬ ‫عرصهء‬ ‫در‬ ‫ساله‬ ‫چندین‬ ‫تجربهء‬ ‫سازی‬ ‫ویر‬ ‫سافت‬ ‫تیم‬ ‫یک‬ ‫است‬ ‫ممکن‬ ‫عنی‬ Software Definition‫موجو‬ ‫هم‬ ‫قبل‬ ‫از‬ ،‫شده‬ ‫خواسته‬‫ابتدا‬ ‫از‬ ‫سافت‬ ‫این‬ ‫ساختن‬ ‫برای‬ ‫که‬ ‫نداریم‬ ‫نیاز‬ ‫دراینصورت‬ ‫باشد‬ ‫د‬ (scratch‫سا‬ ، ‫ناچیز‬ ‫تغییرات‬ ‫تعریف‬ ‫با‬ ‫بلکه‬ ‫کنیم‬ ‫شروع‬ )‫تکامل‬ ‫جدید‬ ‫مشتری‬ ‫ودرخواست‬ ‫میل‬ ‫بنابر‬ ‫موجودرا‬ ‫ویر‬ ‫فت‬ (extend).‫بخشیم‬ ‫می‬ ‫هر‬Activity‫چندین‬ ‫شامل‬ ‫فوق‬sub activities.‫باشد‬ ‫می‬‫درذیل‬ ‫که‬sub activity‫هر‬activity.‫میکنیم‬ ‫تعریف‬ ‫را‬ ‫فوق‬ .‫الف‬Software Specification ( ‫نیازمندیها‬ ‫درآن‬ ‫که‬ ‫است‬ ‫مرحلهء‬requirements‫ت‬ ‫مشتری‬ )‫یک‬ ‫پراسه‬ ‫ودراین‬ .‫میشود‬ ‫داده‬ ‫شخیص‬software engineer‫تا‬ ‫کند‬ ‫سعی‬Functional Requirements‫و‬Non Functional Requirements.‫کند‬ ‫مشخص‬ ‫را‬ Functional Requirements‫ودرصورت‬ ‫باشد‬ ‫موجود‬ ‫باید‬ ‫سیستم‬ ‫ویر‬ ‫درسافت‬ ‫که‬ ‫شود‬ ‫می‬ ‫گفته‬ ‫خدمات‬ ‫و‬ ‫نیازمندیها‬ ‫به‬ ‫نیازمندی‬ ‫ویر‬ ‫سافت‬ ‫آن‬ ‫نبود‬‫وهمچنین‬ .‫شود‬ ‫اطالق‬ ‫وناقص‬ ‫نساخته‬ ‫مرفوع‬ ‫را‬ ‫ها‬functional requirement .‫باشد‬ ‫می‬ ‫نیز‬ ‫ندهد‬ ‫انجام‬ ‫آنرا‬ ‫باید‬ ‫سیستم‬ ‫که‬ ‫کارهایی‬ ‫دربرگیرندهء‬ Nonfunctional Requirement‫شو‬ ‫می‬ ‫گفته‬ ‫نیازمندیهای‬ ‫به‬‫وویژگی‬ ‫قابلیت‬ ، ‫موثریت‬ ‫درسیستم‬ ‫آن‬ ‫موجودیت‬ ‫که‬ ‫د‬ ‫ول‬ ‫داده‬ ‫افزایش‬ ‫ویرهارا‬ ‫سافت‬‫مختلف‬ ‫انواع‬ ‫مثال‬ ‫شوند‬ ‫نمی‬ ‫شمرده‬ ‫ناقص‬ ‫سیستم‬ ‫آن‬ ‫نبود‬ ‫در‬ ‫ی‬constraint.‫وغیره‬ ‫ها‬ ‫تکمیل‬ ‫برای‬software specification‫باید‬sub activity.‫کنیم‬ ‫تکمیل‬ ‫را‬ ‫ذیل‬ ‫های‬ Feasibility Study( ‫نیازمندی‬ :requirement‫میتواند‬ ‫مشتری‬ ‫نیازهای‬ ‫آیا‬ ‫که‬ ‫گردد‬ ‫تشخیص‬ ‫و‬ ‫گردد‬ ‫درک‬ ) ‫شو‬ ‫کمپیوتری‬‫سافت‬ ‫آیا‬ ‫دارد؟‬ ‫را‬ ‫فعلی‬ ‫تکنالوژی‬ ‫و‬ ‫افزاری‬ ‫سخت‬ ‫منابع‬ ‫با‬ ‫مطابقت‬ ‫مشتری‬ ‫درخواست‬ ‫آیا‬ ‫د؟‬ ‫ویر‬‫چنین‬ ‫ایجاد‬ ‫توانایی‬ ‫ما‬ ‫آیا‬ ‫نیست؟‬ ‫باال‬ ‫مشتری‬ ‫مالی‬ ‫توان‬ ‫از‬ ‫ویر‬ ‫سافت‬ ‫هزینهء‬ ‫آیا‬ ‫رادارد؟‬ ‫ساختن‬ ‫ارزش‬ .... ‫و‬ ‫داریم؟‬ ‫را‬ ‫سیستمی‬ .‫میگذاریم‬ ‫ذیل‬ ‫بعدی‬ ‫مراحل‬ ‫پابه‬ ‫امکان‬ ‫درصورت‬ Requirement elicitation and analysis‫مشتری‬ ‫نبودن‬ ‫مسلکی‬ ‫به‬ ‫توجه‬ ‫با‬ :)‫نیازمندیها‬ ‫تحلیل‬ ‫و‬ ‫(استخراج‬ ‫بهترین‬ ‫ولی‬ ‫است‬ ‫موجود‬ ‫مشتری‬ ‫نیازمندیهای‬ ‫وگرفتن‬ ‫استخراج‬ ‫برای‬ ‫مختلفی‬ ‫هایی‬ ‫طریقه‬ ، ‫سازی‬ ‫ویر‬ ‫سافت‬ ‫در‬ ‫یک‬ ‫ایجاد‬ ‫روش‬prototype‫شبیه‬ ‫کاغذ‬ ‫روی‬ ‫مشتری‬ ‫درخواست‬ ‫که‬ ‫باشد‬ ‫می‬ )‫نمونه‬ ‫(پیش‬‫وبه‬ .‫میگردد‬ ‫سازی‬ .‫شود‬ ‫می‬ ‫گرفته‬ ‫مشتری‬ ‫معلومات‬ ‫و‬ ‫ونظریات‬ .‫شود‬ ‫می‬ ‫داده‬ ‫نشان‬ ‫مشتری‬ Requirement Specification‫دراین‬ :activity( ‫ویر‬ ‫سافت‬ ‫تعریف‬software definition.‫میگردد‬ ‫تعیین‬ ) ‫و‬software definition‫و‬ ‫برروی‬ ‫که‬ ‫باشد‬ ‫می‬ ‫شده‬ ‫تحلیل‬ ‫و‬ ‫شده‬ ‫استخراج‬ ‫نیازمندیهای‬ ‫درحقیقت‬‫داده‬ ‫نشان‬ ‫رق‬ ‫نام‬ ‫به‬ ‫و‬ ‫شود‬ ‫می‬documentation.‫یادمیگردد‬‫آید‬ ‫بوجود‬ ‫مشتری‬ ‫برنیازهای‬ ‫مبنی‬ ‫ثبوت‬ ‫ویا‬ ‫سند‬ ‫یک‬ ‫منحیث‬ ‫تا‬ ‫تا‬‫سازی‬ ‫ویر‬ ‫سافت‬ ‫تیم‬‫تغییر‬ ‫درصورت‬.‫نشود‬ ‫شناخته‬ ‫مقصر‬ ‫مشتری‬ ‫افکار‬ ‫و‬ ‫نیازمندیها‬ Requirement Validation( ‫داکمنتیشن‬ :documentation‫شده‬ ‫ساخته‬ )‫ن‬ ‫مشتری‬ ‫به‬‫تکمیل‬ ‫تا‬ ‫شود‬ ‫داده‬ ‫شان‬ ‫بررسی‬ ‫آن‬ ‫بودن‬‫وتایید‬.‫گردد‬
  • 5. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 4 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ ( ‫ویر‬ ‫سافت‬ ‫تطبیق‬ ‫و‬ ‫دیزاین‬ .‫ب‬Software Design and Implementation) ‫در‬ ‫شده‬ ‫مشخص‬ ‫وتعریفات‬ ‫نیازمندیها‬ ‫پراسه‬ ‫دراین‬software specification‫یعنی‬ ‫آوریم‬ ‫درمی‬ ‫ها‬ ‫درسیستم‬ ‫اجرا‬ ‫قابل‬ ‫شکل‬ ‫به‬ ‫را‬ ‫میک‬ ‫طراحی‬ ‫و‬ ‫دیزاین‬ ‫را‬ ‫سیستم‬.‫میکنند‬ ‫فرق‬ ‫ها‬ ‫ویر‬ ‫سافت‬ ‫نوع‬ ‫به‬ ‫نظر‬ ‫ها‬ ‫ویر‬ ‫سافت‬ ‫وتطبیقات‬ ‫دیزاین‬ ‫چگونگی‬ ‫که‬ .‫نیم‬ Architectural Design‫دراین‬ :activity‫یک‬General view‫یا‬block diagram‫و‬ ‫گردیده‬ ‫ایجاد‬ ‫ویر‬ ‫سافت‬ ‫یک‬‫تمام‬ ‫ها‬ ‫مادیول‬(sub System)‫شان‬ ‫بین‬ ‫ارتباطات‬ ‫با‬ ‫همراه‬.‫میگردد‬ ‫مشخص‬ Interface Design‫دراین‬ :activity‫بین‬ ‫انترفس‬component‫همچنین‬ ‫و‬ ‫ویر‬ ‫سافت‬ ‫یک‬ ‫در‬ ‫موجود‬ ‫های‬‫بین‬ ‫انترفس‬ user‫و‬system‫میگردد‬ ‫دیزاین‬‫شودکه‬ ‫مدنظرگرفته‬ ‫باید‬ ‫که‬ ‫است‬ ‫فکتورهایی‬ ‫ها‬ ‫انترفس‬ ‫دیزاین‬ ‫در‬ ‫البته‬ .‫آن‬ ‫مهمترین‬‫ها‬ ، ‫استفاده‬ ‫در‬ ‫آسانی‬user friendly‫آن‬ ‫بودن‬‫آن‬ ‫بودن‬ ‫مشتری‬ ‫میل‬ ‫ومطابق‬.‫باشد‬ ‫می‬ Component Design‫هر‬ ‫موقعیت‬ ‫مرحله‬ ‫دراین‬ :component‫مشخص‬ ‫آن‬ ‫عملکرد‬ ‫وچگونگی‬ ‫درسیستم‬ ‫موجود‬ .‫میگردد‬ Database Design‫دیزاین‬ ‫را‬ ‫گردد‬ ‫ذخیره‬ ‫ها‬ ‫دیتابس‬ ‫در‬ ‫شکلی‬ ‫چه‬ ‫به‬ ‫واینکه‬ ‫را‬ ‫سیستم‬ ‫دیتای‬ ‫ساختار‬ ‫مرحله‬ ‫دراین‬ : .‫میکنیم‬
  • 6. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 5 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ ‫دیزا‬ ‫درمرحله‬ ‫میبینید‬ ‫فوق‬ ‫درشکل‬ ‫قسمیکه‬‫ما‬ ‫ین‬activity‫اول‬ ‫بخش‬ .‫میکنیم‬ ‫رادیزاین‬ ‫بخش‬ ‫سه‬ ‫های‬input design‫که‬ ‫باشد‬ ‫می‬ ‫دیزاین‬ ‫شامل‬platform، ‫ها‬requirement specification‫دوم‬ ‫قسمت‬ .‫باشد‬ ‫می‬ ‫دیتا‬ ‫وتشریحات‬ ،Design activities‫باشد‬ ‫می‬ ، ‫ساختار‬ ، ‫ها‬ ‫انترفس‬ ‫درآن‬ ‫که‬component‫وقس‬ .‫میگردد‬ ‫دیزاین‬ ‫ودیتابس‬ ‫ها‬‫هم‬ ‫سوم‬ ‫مت‬Design output‫درآن‬ ‫باشدکه‬ ‫می‬ .‫میکنیم‬ ‫دیزاین‬ ‫را‬ ‫دیتا‬ ‫خروجی‬ ‫اشکال‬ .‫ج‬Software Validation ‫دراین‬ ‫کردیم‬ ‫ذکر‬ ‫قبال‬ ‫قسمیکه‬activity‫ودرصورت‬ ‫ویاخیر؟‬ ‫آید‬ ‫برمی‬ ‫نیازمندیها‬ ‫تمام‬ ‫پس‬ ‫از‬ ‫سیستم‬ ‫آیا‬ ‫که‬ ‫شود‬ ‫می‬ ‫وتایید‬ ‫مشخص‬ ‫مشتری‬ ‫دیتای‬ ‫با‬ ‫را‬ ‫سیستم‬ ‫ممکن‬test.‫کنیم‬ ‫می‬‫سه‬ ‫وشامل‬activity.‫باشد‬ ‫می‬ ‫ذیل‬ Development Test‫هر‬ ‫وعملکرد‬ ‫کارکرد‬ :component‫توسط‬ ‫جداگانه‬ ‫شکل‬ ‫به‬developer‫وبررسی‬ ‫آزمایش‬ ، (test.‫میگردد‬ )‫هر‬component.‫باشند‬ ‫وغیره‬ ‫ها‬ ‫مادیول‬ ‫ها‬ ‫فنکشن‬ ، ‫ها‬ ‫کالس‬ ‫تواند‬ ‫می‬ System Testing‫تمام‬ ‫وعملکرد‬ ‫کارکرد‬ :component‫شکل‬ ‫به‬ ‫ها‬( ‫یکجایی‬integrated.‫میگردد‬ ‫بررسی‬ ،) ‫بین‬ ‫وانفعال‬ ‫درفعل‬ ‫موجود‬ ‫ومشکالت‬component.‫میشود‬ ‫داده‬ ‫تشخیص‬ ‫ها‬ Acceptance Testing‫از‬ ‫مرحلهء‬ ‫آخرین‬ :testing‫باشدکه‬ ‫می‬‫مشتری‬ ‫نیازمندی‬ ‫رفع‬ ‫وقابلیت‬ ، ‫عملکرد‬‫توسط‬ product owner.‫میگردد‬ ‫آزمایش‬ ‫مشتری‬ ‫دیتای‬ ‫با‬ ‫و‬
  • 7. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 6 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ .‫د‬Software Evaluation: ‫به‬ ‫مشابه‬ ‫است‬ ‫ممکن‬software definition‫یک‬ ‫ساختن‬ ‫برای‬ ‫اوقات‬ ‫بعضی‬ ‫ویاهم‬ ‫باشد‬ ‫موجود‬ ‫های‬ ‫ویر‬ ‫سافت‬ ‫نیز‬ ‫ازقبل‬ ‫فعلی‬ ( ‫متحد‬ ‫را‬ ‫ویرموجودی‬ ‫سافت‬ ‫دو‬ ‫تراز‬ ‫اضافه‬ ‫ویا‬ ‫دو‬ ‫ممکن‬ ‫ویر‬ ‫سافت‬incorporate( ‫پذیری‬ ‫انعطاف‬ ‫ازاینرو‬ .‫کنیم‬ )flexibility) ‫اص‬ ‫ترین‬ ‫مهم‬ ‫ویر‬ ‫سافت‬ ‫یک‬‫برای‬ ‫ل‬software developer‫مشابه‬ ‫پذیر‬ ‫انعطاف‬ ‫های‬ ‫ویر‬ ‫سافت‬ ‫که‬ ‫صورت‬ ‫ودر‬ .‫باشد‬ ‫می‬ ‫ها‬ ‫فعلی‬ ‫مشتری‬ ‫نیازمندیهای‬‫تمام‬ ‫دوباره‬ ‫نیست‬ ‫نیازی‬ ‫باشیم‬ ‫داشته‬ ‫آماده‬ ‫شکل‬ ‫به‬ ‫ازقبل‬activity‫های‬software process‫تکمیل‬ ‫را‬ ‫نیازمن‬ ‫میتوانیم‬ ‫موجودی‬ ‫سیستم‬ ‫در‬ ‫آوردن‬ ‫تغییرات‬ ‫با‬ ‫بلکه‬ .‫کنیم‬‫تضاد‬ ‫در‬ ‫بدلیل‬ ‫ممکن‬ ‫هم‬ ‫تغییرات‬ ‫واین‬ ‫سازیم‬ ‫مرفوع‬ ‫را‬ ‫مشتری‬ ‫دی‬ ‫بودن‬platform،‫موجود‬ ‫ویر‬ ‫وسافت‬ ‫هاردویر‬ ‫های‬.‫بیاید‬ ‫ویر‬ ‫درسافت‬
  • 8. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 7 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ Prototyping ‫برای‬‫ها‬ ‫فهمی‬ ‫غلط‬ ‫رفع‬‫و‬ ‫مشتری‬ ‫بین‬developer،‫تثبیت‬‫بهتر‬ ‫واستخراج‬‫مشتری‬ ‫های‬ ‫نیازمندی‬‫تشخیص‬ ،problem، ‫ها‬‫دریافت‬ ‫حل‬ ‫های‬ ‫راه‬‫بر‬ ‫غلبه‬ ‫برای‬problem،‫ویر‬ ‫سافت‬ ‫دیزاین‬ ‫وهمچنین‬ ، ‫ها‬‫وموقعیت‬ ‫ها‬ ‫انترفس‬ ‫شکل‬ ‫اکثرا‬component‫هارا‬ ‫نام‬ ‫به‬ ‫که‬ ‫میکنند‬ ‫سازی‬ ‫شبیه‬ ‫ورق‬ ‫برروی‬prototype.‫میگردد‬ ‫یاد‬ ‫نمونه‬ ‫پیش‬ ‫یا‬‫این‬ ‫که‬prototype‫و‬ ‫معلومات‬ ‫حاوی‬ functionality‫مرحلهء‬ ‫در‬ ‫هم‬ ‫که‬ ‫باشد‬ ‫می‬ ‫سیستم‬ ‫ابتدایی‬ ‫های‬software specification‫مرحلهء‬ ‫در‬ ‫وهم‬software design‫از‬ .‫میگردد‬ ‫استفاده‬ ‫آن‬ Prototype.‫باشد‬ ‫ذیل‬ ‫مفاهیم‬ ‫شامل‬ ‫باید‬ Technical issue‫ایجاد‬ ‫درزمان‬ ‫که‬ ‫تخنیکی‬ ‫موضوعات‬ :documentation.‫گردد‬ ‫بینی‬ ‫پیش‬ Work Flow and Task Flow‫و‬ ‫ارتباط‬ ‫چگونگی‬ ‫یعنی‬ :interactions‫ما‬ ‫بین‬ ‫ها‬‫نیازکه‬ ‫یک‬ ‫تکمیل‬ ‫بخاطر‬ ‫ها‬ ‫دیول‬ ‫شود‬ ‫گرفته‬ ‫مدنظر‬ ‫ویر‬ ‫سافت‬ ‫دیزاین‬ ‫درمرحله‬ ‫شکل‬Screen‫اطالعات‬ ‫نمایش‬ ‫طریق‬ ‫و‬ ‫خدمت‬ ‫بینم‬ ‫نمی‬ ‫الزم‬ ‫را‬ ‫نامشان‬ ‫ذکر‬ ‫که‬ ‫همکالسیم‬ ‫سه‬ ‫ویا‬ ‫دو‬ ‫همکاری‬ ‫به‬ ‫درصنف‬ ‫که‬ ‫را‬ ‫صنفی‬ ‫فعالیت‬ ‫که‬ ‫بینم‬ ‫می‬ ‫الزم‬ ‫قسمت‬ ‫دراین‬ .‫کنیم‬ ‫ارایه‬ ‫شما‬ ‫هرعضو‬ ‫فعالیت‬ ‫درین‬‫ونوشته‬ ‫میکرد‬ ‫پیشنهاد‬ ‫داشت‬ ‫دوست‬ ‫ویااینکه‬ ‫میکرد‬ ‫خطور‬ ‫شان‬ ‫ذهن‬ ‫در‬ ‫که‬ ‫را‬ ‫ویری‬ ‫سافت‬ ‫نوع‬ ‫هر‬ ‫گروپ‬ ‫الی‬ ‫صفر‬ ‫از‬ ‫گروپ‬ ‫عضو‬ ‫هر‬ ، ‫شده‬ ‫پیشنهاد‬ ‫ویر‬ ‫سافت‬ ‫هر‬ ‫برای‬ ‫سپس‬ ‫و‬ ‫میشد‬15‫هر‬ ‫شده‬ ‫داده‬ ‫امتیازات‬ ‫وسپس‬ ‫دادند‬ ‫می‬ ‫امتیاز‬ ‫ویر‬ ‫سافت‬.‫میشود‬ ‫جمع‬‫ش‬ ‫داده‬ ‫امتیازات‬ ‫مجموع‬ ‫که‬ ‫ویر‬ ‫سافت‬ ‫هر‬‫یک‬ ‫آن‬ ‫برای‬ ‫سپس‬ ‫و‬ ‫گردیده‬ ‫انتخاب‬ ‫شد‬ ‫بیشتر‬ ‫آن‬ ‫به‬ ‫ده‬ prototype‫نوشته‬ ‫نبود‬ ‫من‬ ‫به‬ ‫متعلق‬ ‫که‬ ‫ورق‬ ‫در‬ ‫چون‬ ‫ندارم‬ ‫دردسترس‬ ‫را‬ ‫موجود‬ ‫ویرهای‬ ‫سافت‬ ‫لیست‬ ‫بدبختانه‬ ‫که‬ .‫شود‬ ‫می‬ ‫ساخته‬ ‫فارس‬ ‫به‬ ‫آن‬ ‫جزییات‬ ‫با‬ ‫را‬ ‫کمپیوتری‬ ‫اصطالح‬ ‫هر‬ ‫که‬ ‫شود‬ ‫ساخته‬ ‫دیکشنری‬ ‫یک‬ ‫که‬ ‫شد‬ ‫براین‬ ‫اتفاق‬ ‫ولی‬ ‫بودیم‬‫ب‬ ‫و‬ ‫کند‬ ‫بیان‬ ‫ی‬‫همین‬ ‫ه‬ ‫حقوق‬ ، ‫اقتصاد‬ ، ‫زراعت‬ ‫ازقبیل‬ ‫ها‬ ‫رشته‬ ‫سایر‬ ‫موجودی‬ ‫اصطالحات‬ ‫ترتیب‬‫خاص‬ ‫اصطالحات‬ ‫دارای‬ ‫رشته‬ ‫هر‬ ‫اینکه‬ ‫به‬ ‫توجه‬ ‫(با‬ .‫کند‬ ‫بیان‬ ‫جزییات‬ ‫با‬ ‫را‬ ) ‫میباشد‬ ‫خودش‬‫و‬‫دراینجا‬prototype‫تشکیل‬ ‫همگروپان‬ ‫کمک‬ ‫به‬ ‫خانگی‬ ‫وظیفهء‬ ‫عنوان‬ ‫به‬ ‫خانه‬ ‫در‬ ‫که‬ ‫هایی‬ ‫ذ‬ ‫در‬ ‫دادیم‬.‫بینید‬ ‫می‬ ‫یل‬
  • 9. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 8 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
  • 10. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 9 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
  • 11. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 10 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ .‫باشد‬ ‫می‬ ‫ها‬ ‫انترفس‬ ‫رسم‬ ‫تنها‬ ‫فوق‬ ‫اشکال‬ ‫البته‬.‫است‬ ‫گرفته‬ ‫صورت‬ ‫فوتوشاپ‬ ‫پروگرام‬ ‫کمک‬ ‫به‬ ‫که‬
  • 12. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 11 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ Software Process Models ‫چهار‬ ‫تکمیل‬ ‫برای‬ ‫کردیم‬ ‫اشاره‬ ‫قبال‬ ‫همانطوریکه‬activity‫مهم‬‫یعنی‬Software Specification،Software Design and implementation،Software Validation‫و‬Software Evaluation‫که‬ ‫شود‬ ‫عمل‬ ‫گوناگون‬ ‫های‬ ‫طریقه‬ ‫به‬ ‫ممکن‬‫روش‬ ‫وطریقهء‬‫دادن‬ ‫نمایش‬activity‫ها‬‫نام‬ ‫به‬Software process model.‫میشود‬ ‫نامیده‬‫که‬ ‫گفت‬ ‫میتوان‬ ‫دیگر‬ ‫عبارت‬ ‫به‬software process model‫ها‬ ‫پراسس‬ ‫برای‬ ‫چوب‬ ‫چهار‬ ‫ازیک‬ ‫عبارت‬(process framework)‫میتوانیم‬ ‫که‬ ‫باشد‬ ‫می‬Activity‫روش‬ ‫هارابه‬ .‫دهیم‬ ‫نشان‬ ‫درآن‬ ‫بهتر‬‫که‬ ‫دهیم‬ ‫نشان‬ ‫آسانی‬ ‫بسیار‬ ‫به‬ ‫میتوانیم‬ ‫وهمچنین‬user‫ارتباط‬ ‫فعلی‬ ‫سیستم‬ ‫با‬ ‫چگونه‬ ‫دیگری‬ ‫سیستمی‬ ‫یک‬ ‫ویا‬ .‫میکند‬ ‫برقرار‬ ‫در‬ ‫یعنی‬software process model‫ها‬‫و‬ ‫ویرها‬ ‫سافت‬ ‫تعریف‬ ‫در‬ ‫شده‬ ‫وتشخیص‬ ‫موجود‬ ‫عمومیات‬‫این‬ ‫وچگونه‬ ‫چطور‬ ‫اینکه‬ ‫عمومیات‬، ‫داشته‬ ‫ارتباط‬ ‫باهم‬‫تعیین‬ ، ‫شود‬ ‫داده‬ ‫ترتیب‬ ‫کارها‬ ‫شکلی‬ ‫چه‬ ‫به‬ ‫ویر‬ ‫سافت‬ ‫تکمیل‬ ‫وبرای‬ ‫کنند‬ ‫عمل‬ ‫شکل‬ ‫چه‬ ‫به‬ .‫میگردد‬.‫میکنیم‬ ‫اشاره‬ ‫مشهور‬ ‫های‬ ‫مادل‬ ‫پراسس‬ ‫ویر‬ ‫سافت‬ ‫به‬ ‫قسمت‬ ‫دراین‬ Water Fall Model ‫مادل‬ ‫دراین‬activity‫یک‬ ‫اساسی‬ ‫های‬software process‫از‬ ‫عبارت‬ ‫که‬ ‫را‬Specification،Design and implementation ،Validation،Evaluation‫پراسه‬ ‫یک‬ ‫نشدن‬ ‫تکمیل‬ ‫تا‬ ‫که‬ ‫میشود‬ ‫عمل‬ ‫طوری‬ ‫ودرآن‬ ‫نموده‬ ‫تقسیم‬ ‫جداگانه‬ ‫های‬ ‫بخش‬ ‫به‬ ‫باشد‬ ‫می‬ ‫وارد‬ ‫نگردد‬ ‫جمع‬ ‫کامل‬ ‫طور‬ ‫به‬ ‫نیازمندیها‬ ‫زمانیکه‬ ‫تا‬ ‫مثال‬ .‫نمیگردد‬ ‫دیگر‬ ‫پراسهء‬ ‫شامل‬.‫شویم‬ ‫نمی‬ ‫دیزاین‬ ‫مرحلهء‬ ‫جلو‬ ‫به‬ ‫و‬ ‫شده‬ ‫گرفته‬ ‫مدنظر‬ ‫واحتماالت‬ ‫عواقب‬ ‫تمام‬ ‫و‬ ‫شده‬ ‫جمع‬ ‫کامل‬ ‫بطور‬ ‫نیازمندیها‬ ‫که‬ ‫است‬ ‫موثر‬ ‫زمانی‬ ‫مادل‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫آنصورت‬ ‫درغیر‬ ‫کنیم‬ ‫حرکت‬‫وقوع‬ ‫هم‬ ‫ویا‬ ‫نیازمندی‬ ‫در‬ ‫تغییر‬ ‫اندکی‬ ‫با‬problem‫شروع‬ ‫از‬ ‫دوباره‬ ‫را‬ ‫سیستم‬ ‫تا‬ ‫هستیم‬ ‫مجبور‬ ‫ها‬ ‫دیزا‬.‫کنیم‬ ‫ین‬ ‫میدهد‬ ‫نشان‬ ‫را‬ ‫فوق‬ ‫مادل‬ ‫در‬ ‫هزینه‬ ‫بررسی‬ ‫ذیل‬ ‫دیاگرام‬
  • 13. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 12 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ Incremental Model ‫یک‬ ‫مادل‬ ‫دراین‬activity، ‫تشخیص‬ ‫کوچک‬‫به‬ ‫شروع‬ ‫سپس‬ ‫و‬ ‫گردیده‬ ‫بررسی‬ ‫و‬ ‫تکمیل‬activity‫وبدین‬ ‫کنیم‬ ‫می‬ ‫دیگری‬ ‫هر‬ ‫تکمیل‬ ‫با‬ ‫ترتیب‬activity( ‫ها‬ ‫نمونه‬versions.‫آید‬ ‫می‬ ‫بدست‬ ‫ویر‬ ‫سافت‬ ‫از‬ )‫یع‬‫هر‬ ‫در‬ ‫نی‬version، ‫خصوصیات‬ ‫و‬ ‫کرده‬ ‫اضافه‬ ‫را‬ ‫جدیدی‬ ‫های‬ ‫قابلیت‬ ‫و‬ ‫ویژگیها‬version.‫میاوریم‬ ‫بدست‬ ‫را‬ ‫جدیدی‬‫است‬ ‫موثر‬ ‫زمانی‬ ‫مادل‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫یک‬ ‫شدن‬ ‫تکمیل‬ ‫مجرد‬ ‫به‬ ‫تا‬ ‫باشد‬ ‫فعال‬ ‫شخص‬ ‫مشتری‬ ‫که‬activity‫آنرا‬test.‫دهد‬ ‫ارایه‬ ‫خودرا‬ ‫بعدی‬ ‫نیازمندی‬ ‫و‬ ‫هز‬ ‫ارزیابی‬ ‫ذیل‬ ‫جدول‬.‫میدهد‬ ‫نشان‬ ‫بخش‬ ‫هر‬ ‫تکمیل‬ ‫برای‬ ‫را‬ ‫ینه‬ Reuse-oriented software engineering
  • 14. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 13 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ ‫و‬ ‫ها‬ ‫ویر‬ ‫سافت‬ ‫اساس‬ ‫به‬ ‫ویر‬ ‫سافت‬ ‫تا‬ ‫شود‬ ‫می‬ ‫کوشش‬ ‫مادل‬ ‫دراین‬component‫مادل‬ ‫درین‬ ‫یعنی‬ ‫شود‬ ‫ساخته‬ ‫موجودی‬ ‫هایی‬ component‫و‬ ‫ها‬activity‫دیگر‬ ‫باهم‬ ‫را‬ ‫مختلف‬ ‫های‬integrate‫جدید‬ ‫مادل‬ ‫وسپس‬ ‫نموده‬.‫آوریم‬ ‫می‬ ‫دست‬ ‫به‬ ‫آن‬ ‫از‬ ‫را‬ .‫میدهد‬ ‫نشان‬ ‫مادل‬ ‫درین‬ ‫را‬ ‫هزینه‬ ‫بررسی‬ ‫ذیل‬ ‫جدول‬ Agile Software Development & Project Management ‫بخش‬ ‫برعالوهء‬ ‫و‬ ‫است‬ ‫نموده‬ ‫جمع‬ ‫را‬ ‫فوق‬ ‫های‬ ‫مادل‬ ‫تمام‬ ‫های‬ ‫خوبی‬ ‫حقیقت‬ ‫در‬ ‫مادل‬ ‫این‬software process‫بخش‬ ‫درآن‬ project management‫شامل‬ ‫نیز‬.‫است‬‫با‬ ‫تر‬ ‫زیاد‬ ‫شباهت‬ ‫که‬ ‫مادل‬ ‫دراین‬incremental model‫منظم‬ ‫غیر‬ ‫و‬ ‫منظم‬ ‫بطور‬ ‫دارد‬ .‫میگردد‬ ‫باخبر‬ ‫کامال‬ ‫آن‬ ‫نتیجهء‬ ‫و‬ ‫کار‬ ‫پیشرفت‬ ‫از‬ ‫مشتری‬ ‫که‬ ‫میگردد‬ ‫دایر‬ ‫مشتری‬ ‫با‬ ‫رسمی‬ ‫غیر‬ ‫هایی‬ ‫مالقات‬‫اک‬ ‫مشتری‬ ‫ازاینرو‬‫ثرا‬ .‫میگردد‬ ‫محسوب‬ ‫سازی‬ ‫ویر‬ ‫سافت‬ ‫تیم‬ ‫از‬ ‫عضو‬ ‫یک‬ ‫منحیث‬‫اکثرا‬software developer‫می‬ ‫استفاده‬ ‫روش‬ ‫ازاین‬ ‫معاصر‬ ‫هایی‬ ‫برای‬ ‫را‬ ‫جدید‬ ‫قوانین‬ ‫روش‬ ‫این‬ .‫کنند‬project management‫و‬software development:‫از‬ ‫عبارتند‬ ‫که‬ ‫است‬ ‫نموده‬ ‫معرفی‬ ‫ا‬ ‫بخش‬ ‫یک‬ ‫عنوان‬ ‫به‬ ‫مشتری‬ ‫ازاینرو‬ .‫شود‬ ‫نگهداشته‬ ‫راضی‬ ‫باید‬ ‫که‬ ‫میشود‬ ‫داده‬ ‫اولویت‬ ‫بلندترین‬ ‫مشتری‬ ‫به‬ ‫مادل‬ ‫درین‬‫ز‬‫تیم‬ .‫میشود‬ ‫شمرده‬ .‫شود‬ ‫ویر‬ ‫سافت‬ ‫ساختن‬ ‫در‬ ‫تأخیر‬ ‫باعث‬ ‫اینکه‬ ‫ولو‬ ‫باشید‬ ‫خوشروی‬ ‫مشتری‬ ‫از‬ ‫تغییرات‬ ‫پذیرفتن‬ ‫در‬ ‫که‬ ‫بخشهای‬ ‫تنها‬ ‫مشتری‬ ‫نبودن‬ ‫مسلکی‬ ‫به‬ ‫توجه‬ ‫با‬output‫هایی‬ ‫بخش‬ ‫دادن‬ ‫نشان‬ ‫از‬ ‫و‬ .‫دهید‬ ‫نشان‬ ‫مشتری‬ ‫به‬ ‫باشد‬ ‫داشته‬ ‫که‬output‫ق‬ ‫هر‬ ‫ولو‬ ‫کنید‬ ‫خودداری‬ ‫مشتری‬ ‫به‬ ‫ندارد‬.‫باشید‬ ‫شده‬ ‫متحمل‬ ‫را‬ ‫زحمات‬ ‫در‬ ‫تحصیل‬ ‫مختلف‬ ‫هایی‬ ‫دررشته‬ ‫که‬ ‫باشند‬ ‫افرادی‬ ‫از‬ ‫متشکل‬ ‫باید‬ ‫میکنند‬ ‫کار‬ ‫مادل‬ ‫دراین‬ ‫سازی‬ ‫ویر‬ ‫سافت‬ ‫درتیم‬ ‫که‬ ‫افرادی‬ .‫باشند‬ ‫کرده‬ .‫نمایند‬ ‫کار‬ ‫میخواهند‬ ‫که‬ ‫بخش‬ ‫هر‬ ‫در‬ ‫شان‬ ‫وخواستار‬ ‫میل‬ ‫اساس‬ ‫به‬ ‫باید‬ ‫تیم‬ ‫اعضای‬ ‫حضوری‬ ‫مالقات‬ ‫که‬ ‫شود‬ ‫کوشش‬ ‫حدتوان‬ ‫تا‬.‫شود‬ ‫برگزار‬ ‫تر‬ ‫زیاد‬ ‫تیم‬ ‫اعضای‬ ‫و‬ ‫مشتری‬ ‫با‬ ‫وغیررسمی‬ .‫گردد‬ ‫بررسی‬ ‫باید‬ ‫آن‬ ‫پیشرفت‬ ‫و‬ ‫کار‬ ‫جریان‬ .‫باشد‬ ‫ثابت‬ ‫باید‬ ‫هستید‬ ‫ساختن‬ ‫حال‬ ‫در‬ ‫راکه‬ ‫محصول‬ ‫ویا‬ ‫ها‬ ‫پراسه‬ ‫تمام‬activity‫ازروی‬ ‫منظم‬ ‫و‬ ‫مسلسل‬ ‫شکل‬ ‫به‬ ‫باید‬ ‫شود‬ ‫می‬ ‫انجام‬ ‫که‬ ‫هایی‬assembly line.‫گیرد‬ ‫صورت‬ Simplicity‫باید‬ :.‫دهند‬ ‫انجام‬ ‫آنرا‬ ‫و‬ ‫دانسته‬ ‫خودرا‬ ‫وظیفهء‬ ‫بخوبی‬ ‫هریک‬ ‫تیم‬ ‫افراد‬ ‫که‬ ‫شود‬ ‫ساده‬ ‫طوری‬ ‫ها‬ ‫پراسه‬ ‫خودرا‬ ‫باید‬ ‫تیم‬ ‫اعضای‬organize.‫کنند‬
  • 15. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 14 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ .‫شوند‬ ‫تقدیر‬ ‫نمایند‬ ‫می‬ ‫تکمیل‬ ‫احسن‬ ‫وجه‬ ‫به‬ ‫خودرا‬ ‫وظیفه‬ ‫که‬ ‫وافرادی‬ ‫داشته‬ ‫وجود‬ ‫تیم‬ ‫اعضای‬ ‫بین‬ ‫همکاری‬ ‫حس‬ ‫تیم‬agile‫باشن‬ ‫می‬ ‫ذیل‬ ‫افراد‬ ‫از‬ ‫متشکل‬.‫باشند‬ ‫تیم‬ ‫یک‬ ‫تواند‬ ‫می‬ ‫فرد‬ ‫هر‬ ‫که‬ ‫د‬ Product Owner (customer):‫عمدهء‬ ‫فرق‬agile model‫از‬ ‫عضو‬ ‫یک‬ ‫مشتری‬ ‫مادل‬ ‫درین‬ ‫که‬ ‫است‬ ‫دراین‬ ‫ها‬ ‫مادل‬ ‫باسایر‬ .‫آید‬ ‫می‬ ‫حساب‬ ‫به‬ ‫سازی‬ ‫ویر‬ ‫سافت‬ ‫تیم‬‫و‬ ‫نیازمندیها‬ ‫به‬ ‫دهی‬ ‫واولویت‬ ‫انتخاب‬ ، ‫دستورسازی‬ ‫از‬ ‫عبارت‬ ‫آن‬ ‫های‬ ‫ومسؤلیت‬ ‫ساف‬ ‫خصوصیات‬.‫میباشد‬ ‫ویر‬ ‫ت‬ Manager (SCRUM Master):‫منحیث‬ ‫که‬ ‫است‬ ‫شخصی‬product owner‫یعنی‬ .‫باشد‬ ‫می‬ ‫ها‬ ‫تیم‬ ‫برای‬requirement ‫سافت‬ ‫های‬ ‫تیم‬ ‫بین‬ ‫انترفس‬ ‫یک‬ ‫منحیث‬ ‫ودرحقیقت‬ .‫میکند‬ ‫مدیریت‬ ‫را‬ ‫دیگر‬ ‫های‬ ‫تیم‬ ‫و‬ ‫گرفته‬ ‫مدنظر‬ ‫را‬ ‫مشتری‬ ‫ونظریات‬ ‫و‬ ‫ویرسازی‬product owner‫تخنیک‬ ‫باید‬ ‫که‬ ‫میباشد‬.‫باشد‬ ‫ی‬ ‫در‬ ‫هارا‬ ‫پراسه‬ ‫تکمیل‬ ‫طریق‬ ‫ذیل‬ ‫مراحل‬Agile software development.‫میدهند‬ ‫نشان‬ Product Backlog ‫ساختن‬ ‫از‬ ‫عبارت‬ ‫دهد‬ ‫می‬ ‫انجام‬ ‫سازی‬ ‫ویر‬ ‫سافت‬ ‫تیم‬ ‫که‬ ‫کاری‬ ‫اولین‬backlog‫عبارت‬ ‫درحقیقت‬ ‫سفارشات‬ ‫این‬ ‫که‬ ‫است‬ ‫سفارشات‬ ‫یا‬ ‫تک‬ ‫تک‬ ‫توسط‬ ‫که‬ ‫باشد‬ ‫می‬ ‫ویر‬ ‫سافت‬ ‫نیازمندیهای‬ ‫از‬‫نسخه‬ ‫تا‬ ‫شوند‬ ‫می‬ ‫تعریف‬ ‫سازی‬ ‫ویر‬ ‫سافت‬ ‫تیم‬ ‫افراد‬‫ا‬ ‫تمام‬ ‫سیستم‬ ‫آخری‬ ‫ء‬‫ین‬ ‫در‬ ‫بسازد.یعنی‬ ‫برآورده‬ ‫را‬ ‫نیازمندیها‬product backlog‫تمام‬functional Requirement‫و‬Non functional requirement .‫میگردد‬ ‫مشخص‬ Sprint Planning ‫تمام‬ ‫مرحله‬ ‫دراین‬activity‫به‬ ‫موجود‬ ‫های‬ ‫پراسه‬ ‫و‬ ‫ها‬phase‫نظر‬ ‫در‬ ‫مناسب‬ ‫وقت‬ ‫مذکور‬ ‫بخش‬ ‫هر‬ ‫وبه‬ ‫میگردد‬ ‫تقسیم‬ ‫ها‬ ‫وبخش‬ ‫ها‬ .‫شود‬ ‫می‬ ‫گرفته‬ Sprint Backlog ، ‫فازها‬ ‫در‬ ‫شده‬ ‫تقسیم‬ ‫نیازمندیهای‬ ‫انبوه‬ ‫بین‬ ‫از‬ ‫مرحله‬ ‫درین‬‫و‬ ‫ها‬ ‫پراسه‬ ‫فاز‬ ‫هر‬ ‫در‬activity‫نام‬ ‫به‬ ‫کدام‬ ‫هر‬ ‫که‬ ‫میگردد‬ ‫مشخص‬ ‫ها‬ sprint‫هر‬ ‫وبرای‬ ‫میگردد‬ ‫یاد‬sprint‫وقت‬‫(مع‬‫موال‬1)‫دوهفته‬ ‫الی‬‫انتخاب‬ ‫البته‬ ‫میگیریم‬ ‫مدنظر‬ ‫را‬sprint‫گردد‬ ‫تکمیل‬ ‫باید‬ ‫اول‬ ‫که‬ ‫توسط‬product owner.‫میگیرد‬ ‫صورت‬
  • 16. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 15 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ Daily Scrum ‫باید‬ ‫پروژه‬ ‫افراد‬ ‫تمام‬ ‫ناگزیر‬ ‫میگرددکه‬ ‫برگزار‬ ‫یی‬ ‫دقیقه‬ ‫پانزده‬ ‫جلسه‬ ‫روزه‬ ‫همه‬ ‫مشکالت‬ ‫رفع‬ ‫همچنین‬ ‫و‬ ‫تیم‬ ‫افراد‬ ‫بین‬ ‫هماهنگی‬ ‫برای‬ ‫بگ‬ ‫سهم‬ ‫درآن‬.‫یرد‬‫تیم‬ ‫ویاهر‬ ‫عضو‬ ‫هر‬ ‫درآن‬ ‫که‬: ‫ازآخرین‬ ‫بعد‬ ‫که‬ ‫را‬ ‫کاری‬ ‫مقدار‬daily scrum.‫میکنند‬ ‫بیان‬ ‫داد‬ ‫انجام‬ ‫تا‬ ‫راکه‬ ‫کاری‬ ‫مقدار‬daily scrum.‫میکنند‬ ‫بیان‬ ‫داد‬ ‫خواهند‬ ‫انجام‬ ‫بعدی‬ .‫میکنند‬ ‫بیان‬ ‫را‬ ‫فعلی‬ ‫وموانع‬ ‫مشکالت‬ Born Down Chart ‫وبررسی‬ ‫مانیتورینگ‬ ‫برای‬ ‫که‬ ‫است‬ ‫چارت‬ ‫از‬ ‫عبارت‬.‫میگردد‬ ‫استفاده‬ ‫باقیمانده‬ ‫وقت‬ ‫به‬ ‫نظر‬ ‫شده‬ ‫نداده‬ ‫انجام‬ ‫کار‬ ‫مقدار‬‫به‬ ‫یعنی‬‫اساس‬ .‫اند‬ ‫رفته‬ ‫پیش‬ ‫به‬ ‫ویا‬ ‫اند‬ ‫افتیده‬ ‫عقب‬ ‫پالن‬ ‫از‬ ‫وآیا‬ ‫اند‬ ‫نموده‬ ‫پیشرفت‬ ‫حد‬ ‫چه‬ ‫تا‬ ‫میدانندکه‬ ‫سازی‬ ‫ویر‬ ‫سافت‬ ‫تیم‬ ‫چارت‬ ‫این‬ Sprint Review ‫هر‬ ‫درختم‬ ‫که‬ ‫میگردد‬ ‫استفاده‬ ‫میکانیزمی‬ ‫از‬ ‫مرحله‬ ‫دراین‬sprint‫را‬ ‫گرفته‬ ‫صورت‬ ‫کارهای‬review‫نموده‬analyze.‫میکنیم‬
  • 17. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 16 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ Requirement Engineering Requirement‫یا‬ ‫پراسه‬ ‫یک‬ ‫تشریح‬ ‫و‬ ‫ازتعریف‬ ‫عبارت‬activity‫همچنین‬ ‫و‬ .‫دهد‬ ‫انجام‬ ‫آنرا‬ ‫باید‬ ‫سیستم‬ ‫ویر‬ ‫سافت‬ ‫یک‬ ‫که‬ ‫باشد‬ ‫می‬ ( ‫محدودیات‬ ‫تعریف‬constraints.‫ندهد‬ ‫انجام‬ ‫مذکور‬ ‫پراسه‬ ‫که‬ )‫وی‬‫و‬ ‫پراسه‬ ‫یک‬ ‫ومتنی‬ ‫نظری‬ ‫دیگرشکل‬ ‫عبارت‬ ‫ابه‬service‫را‬ ‫نام‬ ‫به‬ ‫آن‬ ‫محدودیات‬ ‫درنظرداشت‬ ‫با‬ ‫همراه‬requirement.‫میکنند‬ ‫یاد‬ ‫درآن‬ ‫که‬ ‫وپراسهء‬Requirement، ‫تحلیل‬ ، ‫تشخیص‬ ‫ها‬documenting‫نام‬ ‫به‬ ‫میگردد‬ ‫بررسی‬ ‫و‬Requirement Engineering .‫میگردد‬ ‫یاد‬‫ضروریا‬ ‫درآن‬ ‫که‬ ‫پراسهء‬ ‫یعنی‬‫دهد‬ ‫انجام‬ ‫را‬ ‫کارهایی‬ ‫چه‬ ‫باید‬ ‫سیستم‬ ‫که‬ ‫میگردد‬ ‫تشخیص‬ ‫و‬ ‫شده‬ ‫آوری‬ ‫جمع‬ ‫ونیازمندیها‬ ‫ت‬ ‫نام‬ ‫به‬ ‫سازیم‬ ‫می‬ ‫مال‬ ‫خودرا‬ ‫مذکور‬ ‫ویر‬ ‫درسافت‬ ‫استاد‬ ‫اصطالح‬ ‫به‬ ‫و‬Requirement Engineering‫میگردد‬ ‫یاد‬. ‫در‬software engineering( ‫مشکالت‬ ‫کاهش‬ ‫بخاطر‬problems‫خور‬ ‫هایی‬ ‫بخش‬ ‫به‬ ‫نیازمندیها‬ )‫بخش‬ ‫درهر‬ ‫و‬ ‫گردیده‬ ‫تقسیم‬ ‫د‬ .‫ندهد‬ ‫انجام‬ ‫هارا‬ ‫پراسه‬ ‫کدام‬ ‫و‬ ‫دهد‬ ‫انجام‬ ‫هارا‬ ‫پراسه‬ ‫کدام‬ ‫ویر‬ ‫سافت‬ ‫که‬ ‫میگردد‬ ‫مشخص‬ ‫در‬Requirement Engineering‫دوبخش‬ ‫به‬ ‫نیازمندیها‬User Requirement‫و‬System Requirement.‫میگردد‬ ‫تقسیم‬ User Requirement‫نیازمندیهای‬ ‫به‬High Level‫گفت‬ ‫وکلی‬‫به‬ ‫باید‬ ‫سیستم‬ ‫که‬ ‫شود‬ ‫می‬ ‫ه‬user‫واین‬ ‫بدهد‬ ‫ها‬user‫یک‬ ‫تواند‬ ‫می‬ ‫نمی‬ ‫جزییات‬ ‫به‬ ‫زیاد‬ ‫نیازمندیها‬ ‫دراین‬ ‫یعنی‬ .‫است‬ ‫ارتباط‬ ‫در‬ ‫ما‬ ‫سیستم‬ ‫ویر‬ ‫سافت‬ ‫به‬ ‫که‬ ‫باشد‬ ‫دیگر‬ ‫سیستم‬ ‫یک‬ ‫هم‬ ‫ویا‬ ‫باشد‬ ‫شخص‬ .‫پردازیم‬ ‫نیازمندی‬ ‫از‬ ‫(هدف‬high level‫ها‬ ‫دیاگرام‬ ‫و‬ ‫انسانها‬ ‫زبان‬ ‫شکل‬ ‫به‬ ‫که‬ ‫است‬ ‫این‬‫برای‬ ‫را‬ ‫ها‬ ‫پراسه‬ ‫و‬ .‫باشد‬ ‫شده‬ ‫مشخص‬user‫ها‬ ).‫کند‬ ‫مشخص‬ System Requirement‫تطبیق‬ ‫مو‬ ‫موبه‬ ‫عملکرد‬ ‫و‬ ‫خدمات‬ ، ‫ها‬ ‫پراسه‬ ‫چطور‬ ‫کند‬ ‫می‬ ‫مشخص‬ ‫که‬ ‫شود‬ ‫می‬ ‫گفته‬ ‫نیازمندیهای‬ ‫به‬ .‫باشد‬ ‫می‬ ‫آنها‬ ‫دربارهء‬ ‫مکمل‬ ‫معلومات‬ ‫وحاوی‬ .‫گردد‬ ‫بخش‬ ‫دو‬ ‫به‬ ‫نیز‬ ‫اولویت‬ ‫لحاظ‬ ‫از‬ ‫ها‬ ‫پراسه‬Functional Requirement‫و‬Non Functional Requirement.‫میگردد‬ ‫تقسیم‬
  • 18. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 17 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ Functional Requirements.‫شود‬ ‫می‬ ‫پنداشته‬ ‫ناقص‬ ‫سیستم‬ ‫ویر‬ ‫سافت‬ ‫آن‬ ‫نبود‬ ‫صورت‬ ‫در‬ ‫که‬ ‫میگردد‬ ‫اطالق‬ ‫نیازمندیهای‬ ‫به‬ ‫درحالیکه‬nonfunctional Requirements‫موجودیت‬ ‫درصورت‬ ‫که‬ ‫شود‬ ‫می‬ ‫گفته‬ ‫وخصوصیات‬ ‫اضافی‬ ‫ویژگیهای‬ ‫به‬‫کارایی‬ ‫آن‬ .‫دهد‬ ‫انجام‬ ‫خودرا‬ ‫اصلی‬ ‫وظیفهء‬ ‫سیستم‬ ‫هم‬ ‫آن‬ ‫نبود‬ ‫صورت‬ ‫در‬ ‫ولی‬ ‫رفته‬ ‫باال‬ ‫سیستم‬ ‫عملکرد‬ ‫و‬‫بدهیم‬ ‫مثال‬ ‫را‬ ‫اگربایسکل‬ ‫مثال‬ ‫بطور‬ ، ‫تایر‬ ‫داشتن‬handle‫یک‬Functional Requirement‫وغیره‬ ‫بریک‬ ، ‫هارن‬ ‫قبیل‬ ‫از‬ ‫دیگری‬ ‫اضافی‬ ‫خصوصیات‬ ‫درحالیکه‬ ‫است‬ Nonfunctional Requirement‫شده‬ ‫آورده‬ ‫مثال‬ ‫این‬ ‫موضوع‬ ‫بهتر‬ ‫درک‬ ‫برای‬ ‫ولی‬ ‫ندارد‬ ‫ویر‬ ‫سافت‬ ‫با‬ ‫ربطی‬ ‫بایسکل‬ ‫البته‬ ( ‫است‬ ).‫است‬ Functional Requirement‫میگردد‬ ‫تقسیم‬ ‫بخش‬ ‫دو‬ ‫به‬ ‫هم‬ Functional User Requirements‫به‬ ‫که‬ ‫اساسی‬ ‫نیازمندیهای‬ :user.‫کند‬ ‫درک‬ ‫را‬ ‫سیستم‬ ‫کارآیی‬ ‫تا‬ ‫کند‬ ‫می‬ ‫کمک‬ Functional System Requirement.‫دارد‬ ‫نیاز‬ ‫آن‬ ‫به‬ ‫بودنش‬ ‫کامل‬ ‫برای‬ ‫ویر‬ ‫سافت‬ ‫که‬ ‫اساسی‬ ‫نیازمندیهای‬ : Nonfunctional Requirement:‫میگردد‬ ‫تقسیم‬ ‫بخش‬ ‫سه‬ ‫به‬ Product Requirement‫که‬ ‫ونیازمندیهای‬ ‫ویژگیها‬ :Behavior‫سازد‬ ‫می‬ ‫خوبتر‬ ‫را‬ ‫ویر‬ ‫سافت‬‫عملکرد‬ ‫سرعت‬ ‫قبیل‬ ‫از‬ ، ‫سیستم‬‫نیا‬ ‫مورد‬ ‫حافظه‬ ‫مقدار‬‫اطمینان‬ ‫قابلیت‬ ،‫ز‬.‫وغیره‬‫که‬ ‫دارد‬ ‫دیگری‬ ‫مختلفی‬ ‫انوع‬ ‫نیازمندیها‬ ‫این‬:‫عبارتنداز‬ oUsability Requirements:‫شدن‬ ‫بهتر‬ ‫برای‬ ‫که‬ ‫ومعلوماتی‬ ‫نیازها‬usability.‫است‬ ‫ویر‬ ‫سافت‬ oEfficiency Requirement:.‫دهد‬ ‫انجام‬ ‫کارخودرا‬ ‫تر‬ ‫موثر‬ ‫شکل‬ ‫به‬ ‫تا‬ ‫میکند‬ ‫کمک‬ ‫ویر‬ ‫سافت‬ ‫به‬ ‫که‬ ‫معلومات‬ ‫وب‬‫میگردد‬ ‫تقسیم‬ ‫زیر‬ ‫دوبخش‬ ‫ه‬ Performance Requirement:.‫میکند‬ ‫تعریف‬ ‫را‬ ‫ویر‬ ‫سافت‬ ‫بهتر‬ ‫عملکرد‬ ‫که‬ ‫معلومات‬ Space Requirement‫معلومات‬ :‫از‬ ‫تا‬ ‫میکند‬ ‫کمک‬ ‫ویر‬ ‫سافت‬ ‫به‬ ‫که‬space‫استفاده‬ ‫کمتر‬ ‫ومنابع‬ ‫ودرمیموری‬ .‫کنند‬RAM.‫بگیرد‬ ‫کمتر‬ ‫فضای‬ oDependability Requirement‫حاوی‬ :‫معلوم‬‫که‬ ‫باشد‬ ‫می‬ ‫ات‬user‫معلومات‬ ‫دادن‬ ‫دست‬ ‫از‬ ‫نگرانی‬ ‫از‬ ‫هارا‬ ‫با‬ ‫ولو‬ ‫شان‬fail.‫میکند‬ ‫بیرون‬ ، ‫هایشان‬ ‫سیستم‬ ‫شدن‬ oSecurity Requirement:.‫باشد‬ ‫می‬ ‫میسازد‬ ‫رفع‬ ‫را‬ ‫ویر‬ ‫سافت‬ ‫امنیتی‬ ‫مشکالت‬ ‫که‬ ‫نیازمندیهای‬ ‫شامل‬ Organizational Requirement:‫و‬ ‫سافت‬ ‫سیستم‬ ‫وگسترده‬ ‫وسیع‬ ‫نیازمندیهای‬‫دستورالعملهای‬ ‫و‬ ‫ها‬ ‫پالیسی‬ ‫از‬ ‫که‬ ‫یر‬ ‫و‬ ‫مشتری‬developer.‫باشد‬ ‫می‬ ‫شامل‬ ‫را‬ ‫آید‬ ‫می‬ ‫دست‬ ‫به‬ ‫شان‬ ‫کاری‬ ‫محیط‬ ‫از‬:‫است‬ ‫نوع‬ ‫سه‬ ‫به‬ ‫نیازمندیها‬ ‫واین‬ oEnvironmental Requirement: oOperational requirement.‫میکند‬ ‫مشخص‬ ‫را‬ ‫ویر‬ ‫سافت‬ ‫از‬ ‫استفاده‬ ‫چگونگی‬ ‫که‬ ‫هایی‬ ‫نیازمندی‬ : oDevelopment Requirement‫محیط‬ ‫و‬ ‫نویسی‬ ‫پروگرام‬ ‫لسان‬ :development‫مشخص‬ ‫را‬ ‫افزار‬ ‫نرم‬ ‫یک‬ .‫میکند‬ External Requirement:.‫باشد‬ ‫می‬ ‫میگذارند‬ ‫اثر‬ ‫سیستم‬ ‫باالی‬ ‫خارجی‬ ‫های‬ ‫فکتور‬ ‫از‬ ‫که‬ ‫نیازمندیهای‬ ‫تمام‬ ‫شامل‬‫وشامل‬ .‫باشد‬ ‫می‬ ‫ذیل‬ ‫انواع‬ oRegulatory Requirement‫سیستم‬ ‫کننده‬ ‫تنظیم‬ ‫که‬ ‫شود‬ ‫مشخص‬ :‫چه‬ ‫ویر‬ ‫سافت‬ ‫از‬ ‫واستفاده‬ ‫تنظیم‬ ‫برای‬ ‫باید‬ .‫دهد‬ ‫انجام‬ ‫باید‬ ‫کارهایی‬ oEthical Requirement.‫باشدویاخیر‬ ‫می‬ ‫مشتری‬ ‫برای‬ ‫قبول‬ ‫قابل‬ ‫سیستم‬ ‫آیا‬ ‫که‬ ‫میکند‬ ‫مشخص‬ : oLegislative Requirement:.‫کند‬ ‫عمل‬ )‫(قانونی‬ ‫حقوقی‬ ‫شده‬ ‫ساخته‬ ‫ویر‬ ‫سافت‬ ‫که‬ ‫شود‬ ‫مشخص‬ ‫باید‬ Accounting Requirement Safety/Security Requirement ‫های‬ ‫بندی‬ ‫تقسیم‬ ‫این‬ ‫تمام‬ ‫ذیل‬ ‫دیاگرام‬Nonfunctional Requirement.‫میدهد‬ ‫رانشان‬
  • 19. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 18 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ ‫در‬ ‫شده‬ ‫فراموشم‬ ‫نامش‬ ‫که‬ ‫دیگرم‬ ‫عزیز‬ ‫همصنفی‬ ‫ویک‬ ‫الرحمن‬ ‫مجیب‬ ، ‫جان‬ ‫شکیب‬ ‫کمک‬ ‫به‬ ‫که‬ ‫را‬ ‫صنفی‬ ‫فعالیت‬ ‫قسمت‬ ‫درین‬ .‫میکنم‬ ‫ارایه‬ ‫تان‬ ‫خدمت‬ ‫نمودیم‬ ‫تکمیل‬ ‫صنف‬ ‫شاگردان‬ ‫از‬ ‫بخش‬ ‫ویک‬ ‫شوند‬ ‫تقسیم‬ ‫حصه‬ ‫دو‬ ‫به‬ ‫شاگردان‬ ‫که‬ ‫شد‬ ‫می‬ ‫تکمیل‬ ‫روشی‬ ‫به‬ ‫باید‬ ‫فعالیت‬ ‫این‬functional requirement ‫سیستم‬ATM (Automatic teller machine)‫شاگردان‬ ‫از‬ ‫دیگری‬ ‫بخش‬ ‫و‬ ‫کنند‬ ‫آوری‬ ‫جمع‬ ‫را‬Nonfunctional Requirement .‫کنند‬ ‫آوری‬ ‫جمع‬ ‫را‬ ‫مذکور‬ ‫سیستم‬ ‫بخش‬ ‫که‬Functional Requirement‫عبارت‬ ‫گردید‬ ‫تایید‬ ‫استاد‬ ‫توسط‬ ‫و‬ ‫شد‬ ‫داده‬ ‫ارایه‬ ‫شاگردان‬ ‫دیگر‬ ‫گروپ‬ ‫توسط‬ ‫که‬ ‫سیستم‬ ‫این‬ :‫از‬ ‫است‬ Withdraw Check Balance Security Count money‫وغیره‬ ‫وبخش‬NonFunctional Requirement: ‫از‬ ‫اند‬ ‫عبارت‬ ‫آن‬ Secure Screen Billing Manual or Help Voice System Alarm during Security problem Changeable Language Taking ATM Cart before receiving money Additional battery or UPS Report if many is less than 2000$ ‫وغیره‬
  • 20. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 19 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ Architectural Design and System Modeling Architectural Design ‫سیستم‬ ‫یک‬ ‫ساختارکلی‬(Overall Structure)‫از‬ ‫استفاده‬ ‫با‬architectural design‫یعنی‬ ‫میگردد‬ ‫تعیین‬architectural design ‫دهندهء‬ ‫ارتباط‬Requirement Engineering‫و‬Design( ‫تنظیم‬ ‫باید‬ ‫چگونه‬ ‫سیستم‬ ‫یک‬ ‫که‬ ‫میکند‬ ‫تعیین‬ ‫که‬ ‫میبااشد‬organize‫شود‬ ) ‫ب‬ ‫و‬( ‫به‬ ‫توجه‬ ‫با‬ ‫آن‬ ‫دیزاین‬ ‫رای‬requirements)‫کدام‬component‫ها‬‫اس‬ ‫نیاز‬‫بین‬ ‫ارتباط‬ ‫وهمچنین‬ ‫ت‬component‫چه‬ ‫به‬ ‫باید‬ ‫ها‬ .‫باشد‬ ‫شکل‬‫مرحله‬ ‫این‬ ‫تکمیل‬ ‫نتیجهء‬ ‫که‬(architectural Model)‫مجموعهء‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫سیستم‬ ‫یک‬ ‫چگونه‬ ‫که‬ ‫کند‬ ‫مشخص‬ ‫باید‬ component.‫است‬ ‫شده‬ ‫تنظیم‬ ‫یافته‬ ‫ارتباط‬ ‫های‬ Architectural Design‫بهتر‬ ‫گرفتن‬ ‫برای‬requirement‫از‬ ‫جدید‬‫کننده‬ ‫استفاده‬ ‫با‬ ‫نظر‬ ‫وتبادل‬ ‫مذاکره‬ ‫منظور‬ ‫به‬ ‫وهمچنین‬ ‫مشتری‬ ، ‫گان‬.‫دارد‬ ‫اهمیت‬ ‫مشتریان‬ ‫و‬ ‫طراحان‬ ‫ذیل‬ ‫دیاگرام‬ ‫شکل‬ ‫مثال‬ ‫بطور‬architectural design‫میتواند‬ ‫که‬ ‫رباط‬ ‫سیستم‬ ‫یک‬ ‫برای‬ ‫را‬Object، ‫دیده‬ ‫را‬ ‫مختلف‬ ‫هایی‬‫اندازه‬ ‫آنرا‬‫دهد‬ ‫حمل‬ ‫وآنرا‬ ‫کرده‬ ‫بندی‬ ‫بسته‬ ، ‫داده‬ ‫تشخیص‬.‫میدهد‬ ‫رانشان‬ ‫رباط‬ ‫اوال‬ ‫میبینید‬ ‫فوق‬ ‫شکل‬ ‫در‬ ‫همانطوریکه‬object‫آم‬ ‫آنرا‬ ، ‫آن‬ ‫بندی‬ ‫بسته‬ ‫بعداز‬ ‫و‬ ‫نموده‬ ‫وشناسایی‬ ‫تشخیص‬ ‫آنرا‬ ‫و‬ ‫دیده‬ ‫هارا‬‫اده‬ ‫انتق‬ ‫آنرا‬ ‫سپس‬ ‫و‬ ‫نموده‬ ‫انتقال‬.‫میدهد‬ ‫ال‬
  • 21. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 20 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ System Modeling ‫قالب‬ ‫در‬ ‫میتوان‬ ‫را‬ ‫کمپیوتری‬ ‫سیستم‬ ‫هر‬ ‫عادی‬ ‫بصورت‬inputProcessing  Output‫اینکه‬ ‫یعنی‬ .‫داد‬ ‫نمایش‬ ‫و‬ ‫انداخت‬ ‫یا‬ ‫و‬ ‫شود‬ ‫می‬ ‫سیستم‬ ‫داخل‬ ‫نحو‬ ‫کدام‬ ‫به‬ ‫معلومات‬user‫سیستم‬ ‫به‬ ‫را‬ ‫الزم‬ ‫دستورات‬ ‫و‬ ‫میکنند‬ ‫برقرار‬ ‫ارتباط‬ ‫نحو‬ ‫کدام‬ ‫به‬ ‫سیستم‬ ‫با‬ ‫ها‬ ( ‫نتیجهء‬ ‫و‬ ‫میگردد‬ ‫پراسس‬ ‫نحوی‬ ‫چه‬ ‫به‬ ‫شده‬ ‫وارد‬ ‫معلومات‬ ‫و‬ ‫دستورات‬ ‫سپس‬ ‫و‬ ‫میدهند‬output.‫باشد‬ ‫می‬ ‫چی‬ ‫آن‬ ) ‫ه‬‫ضمیمهء‬ ‫میتوان‬ ‫نیز‬ ‫را‬ ‫دیگری‬ ‫ویژگیهای‬ ‫از‬ ‫بعضی‬ ‫مچنین‬:‫از‬ ‫اند‬ ‫عبارت‬ ‫که‬ ‫نمود‬ ‫قالب‬ ‫این‬ User Interface Maintenance Self-Testing Process ( ‫الذکر‬ ‫فوق‬ ‫موارد‬ ‫تمام‬ ‫نظرداشت‬ ‫در‬ ‫با‬input،process،output،user Interface،self-Testing Process‫میتوانیم‬ ) ‫مادل‬system component.‫میرود‬ ‫کار‬ ‫به‬ ‫بعدی‬ ‫مراحل‬ ‫در‬ ‫ویر‬ ‫سافت‬ ‫اساسات‬ ‫از‬ ‫مجموعهء‬ ‫منحیث‬ ‫که‬ ‫کنیم‬ ‫دیزاین‬ ‫را‬ ‫بخش‬ ‫نمبر‬ ‫درآن‬ ‫که‬ ‫بارکود‬ ‫توسط‬ ‫هرباکس‬ ‫کند‬ ‫می‬ ‫تنظیم‬ ‫مسیر‬ ‫یک‬ ‫روی‬ ‫را‬ ‫ها‬ ‫باکس‬ ‫که‬ ‫میدهیم‬ ‫مثال‬ ‫را‬ ‫سیستمی‬ :‫مثال‬ ‫بطور‬ ‫قف‬ ‫شش‬ ‫مسیر‬ ‫این‬ ‫درپایان‬ ‫و‬ ‫میگردد‬ ‫شناسایی‬ ‫است‬ ‫نصب‬ ‫آن‬ ‫مربوطهء‬‫از‬ ‫استفاده‬ ‫با‬ ‫ها‬ ‫باکس‬ ‫که‬ ‫دارد‬ ‫وجود‬ ‫ها‬ ‫باکس‬ ‫جابجایی‬ ‫برای‬ ‫سه‬ ‫یک‬bar code reader‫و‬PC.‫میگیرند‬ ‫قرار‬ ‫مشخص‬ ‫های‬ ‫قفسه‬ ‫به‬
  • 22. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 21 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ ‫ذیل‬ ‫جدول‬system model.‫میدهد‬ ‫نشان‬ ‫الذکر‬ ‫فوق‬ ‫ویر‬ ‫سافت‬ ‫برای‬ ‫را‬
  • 23. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 22 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ System Design Using UML Model‫چیست؟‬ ‫ت‬ ‫که‬ ‫باشد‬ ‫می‬ ‫طرحی‬ ‫ویا‬ ‫نمونه‬ ‫از‬ ‫عبارت‬ ‫مادل‬‫یک‬ ‫منحیث‬ ‫تا‬ ‫میکشد‬ ‫تصویر‬ ‫به‬ ‫آنرا‬ ‫افعال‬ ‫و‬ ‫سیستم‬ ‫یک‬ ‫ومشخصات‬ ‫خواص‬ ‫مام‬ ‫یعنی‬ .‫نیست‬ ‫واقعی‬ ‫سیستم‬ ‫هیچوجه‬ ‫به‬ ‫ولی‬ ‫میگیرد‬ ‫صورت‬ ‫استفاده‬ ‫آن‬ ‫از‬ ‫واقعی‬ ‫سیستم‬ ‫بهتر‬ ‫درک‬ ‫و‬ ‫راهنما‬‫ی‬ ‫نمونه‬ ‫از‬ ‫عبارت‬ ‫مادل‬‫ا‬ ‫شامل‬ ‫که‬ ‫باشد‬ ‫می‬ ‫طرح‬behavior،state‫م‬ ‫آن‬ ‫در‬ ‫باید‬ ‫که‬ ‫باشد‬ ‫می‬ ‫سیستم‬ ‫یک‬ ‫های‬.‫شود‬ ‫شخص‬ ‫که‬ ‫گفت‬ ‫میتوان‬coding‫به‬ ‫تر‬ ‫زود‬ ‫تحقیق‬ ‫بدون‬ ‫که‬ ‫وهرقدری‬ .‫باشد‬ ‫می‬ ‫ویر‬ ‫سافت‬ ‫یک‬ ‫ساخت‬ ‫و‬ ‫طراحی‬ ‫از‬ ‫کوچک‬ ‫بخش‬ ‫یک‬ ‫تنها‬ coding.‫گردد‬ ‫تکمیل‬ ‫تر‬ ‫دیر‬ ‫ویر‬ ‫سافت‬ ‫و‬ ‫شویم‬ ‫روبرو‬ ‫شده‬ ‫ناسنجیده‬ ‫عواقب‬ ‫با‬ ‫اندازه‬ ‫همان‬ ‫به‬ ‫ممکن‬ ‫کنیم‬ ‫شروع‬‫اهمیت‬ ً‫ا‬‫بن‬ ‫را‬ ‫وغیره‬ ‫مادلینگ‬ ، ‫داکمنتیشن‬.‫گرفت‬ ‫کم‬ ‫دست‬ ‫نباید‬ Modeling language‫چیست؟‬ Modeling language، ‫معلومات‬ ‫که‬ ‫است‬ ‫مصنوعی‬ ‫لسان‬ ‫از‬ ‫عبارت‬knowledge‫از‬ ‫استفاده‬ ‫با‬ ‫که‬ ‫ساختار‬ ‫دریک‬ ‫را‬ ‫ها‬ ‫وسیستم‬ .‫میدهد‬ ‫ونمایش‬ ‫ارایه‬ ‫باشد‬ ‫شده‬ ‫معرفی‬ ‫وستاندارد‬ ‫ثابت‬ ‫قوانین‬‫ق‬ ‫لسان‬ ‫این‬‫ابل‬ ‫ویر‬ ‫سافت‬ ‫تیم‬ ‫تمام‬ ‫برای‬ ‫فهم‬‫م‬ ‫سازی‬.‫باشد‬ ‫ی‬ ‫از‬UML (Unified Modeling Language)‫به‬ ‫ستاندارد‬ ‫لسان‬ ‫عنوان‬ ‫به‬ ‫منظور‬modeling‫قابل‬ ‫ویرها‬ ‫سافت‬ ‫از‬ ‫نوع‬ ‫هر‬ ‫باالی‬ ‫که‬ ‫میشود‬ ‫برده‬ ‫نام‬ ‫کدام‬ ‫هر‬ ‫که‬ ‫باشد‬ ‫می‬ ‫مختلفی‬ ‫های‬ ‫دیاگرام‬ ‫شامل‬ ‫لسان‬ ‫این‬ .‫باشد‬ ‫می‬ ‫تطبیق‬ ‫پروگرامر‬ ‫به‬ ‫ساه‬ ‫شکل‬ ‫به‬ ‫بسیار‬ ‫را‬ ‫خاصی‬ ‫پیامهای‬‫م‬ ‫ارایه‬ ‫ها‬.‫یدارند‬‫یعنی‬ ‫نشان‬ ‫را‬ ‫ویر‬ ‫سافت‬ ‫یک‬ ‫مختلف‬ ‫ابعاد‬ ‫میتوانیم‬ ‫ها‬ ‫دیاگرام‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫با‬ .‫دهیم‬‫مختلف‬ ‫مقاصد‬ ‫به‬ ‫که‬ ‫مختلفی‬ ‫های‬ ‫کالس‬ ‫شامل‬ ‫آن‬ ‫دیاگرام‬ ‫وهر‬ .‫باشد‬ ‫می‬ ‫میگردد‬ ‫استفاده‬
  • 24. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 23 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ ‫انواع‬ ‫از‬ ‫بعضی‬ ‫به‬ ‫درذیل‬UML Diagram.‫میکنیم‬ ‫اشاره‬ 1.Class Diagram ‫ثاب‬ ‫ساختار‬ ‫دیاگرام‬ ‫این‬( ‫ت‬static structure)‫تمام‬ ‫برای‬ ‫فقرات‬ ‫ستون‬ ‫یک‬ ‫همانند‬ ‫دیاگرام‬ ‫واین‬ ‫میدهد‬ ‫نمایش‬ ‫را‬ ‫سیستم‬ ‫یک‬ ( ‫گرا‬ ‫شی‬ ‫ویرهای‬ ‫سافت‬object oriented).‫باشد‬ ‫می‬‫برای‬ ‫را‬ ‫کاری‬ ‫طرح‬ ‫یک‬ ‫درآن‬ ‫کالس‬ ‫هر‬ ‫که‬object‫مشخص‬ ‫مجموعهء‬ ‫از‬ ‫ومتشکل‬ .‫میکند‬attributes‫و‬ ‫ها‬method.‫میباشند‬ ‫ها‬‫دیاگ‬ ‫ودراین‬‫تشخیص‬ ‫شان‬ ‫بین‬ ‫ارتباط‬ ‫و‬ ‫ها‬ ‫کالس‬ ‫رام‬ .‫میگیرد‬ ‫قرار‬ ‫مطالعه‬ ‫مورد‬ ‫تفصیل‬ ‫به‬ ْ‫ا‬‫بعد‬ ‫که‬ ‫میگردد‬ ‫آن‬ ‫ازروی‬ ‫سپس‬ ‫و‬ ‫نمایید‬ ‫ترسیم‬ ‫را‬ ‫دیاگرام‬ ‫کالس‬ ‫اوال‬ ‫که‬ ‫کنید‬ ‫کوشش‬ ‫همیشه‬ :‫نوت‬coding‫درینصورت‬ ‫که‬ .‫نمایید‬ (forward engineering‫واگراوال‬ ‫میشود‬ ‫نامیده‬ )coding‫ر‬ ‫دیاگرام‬ ‫وسپس‬ ‫شود‬‫نام‬ ‫به‬ ‫عملیه‬ ‫این‬ ‫گردد‬ ‫سم‬reverse engineering.‫یادمیگردد‬ 2.Package Diagram ‫از‬ ‫بخش‬ ‫یک‬ ‫حقیقت‬ ‫در‬ ‫دیاگرام‬ ‫این‬class diagram‫که‬ ‫باشد‬ ‫می‬‫مورد‬ ‫عمل‬ ‫یک‬ ‫تکمیل‬ ‫منظور‬ ‫به‬ ‫که‬ ‫کالسی‬ ‫چندین‬ ‫بسته‬ ‫یک‬ ‫در‬ ‫میگیرند‬ ‫قرار‬ ‫استفاده‬(package‫که‬ .‫میگیرند‬ ‫قرار‬ )‫بعضا‬developer‫ساد‬ ‫برای‬ ‫ها‬‫بهتر‬ ‫وارایه‬ ‫سازی‬ ‫ه‬ ‫سیستم‬ ‫عناصر‬ ‫بین‬ ‫ارتباطات‬‫؛‬‫عن‬‫ا‬( ‫صر‬element( ‫ها‬ ‫بسته‬ ‫شکل‬ ‫وبه‬ ‫وبندی‬ ‫دسته‬ ‫را‬ )package)‫میدهند.قرار‬ ‫نمایش‬ ‫ها‬ :‫ذیل‬ ‫شکل‬
  • 25. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 24 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ 3.Use Case Diagram ‫یک‬ ‫استفاده‬ ‫طرق‬ ‫و‬ ‫کار‬ ‫روش‬ ‫چگونگی‬ ‫دیاگرام‬ ‫این‬actor‫که‬ ‫میسازد‬ ‫واضح‬ ‫دیاگرام‬ ‫این‬ ‫یعنی‬ .‫میدهد‬ ‫نشان‬ ‫را‬ ‫سیستم‬ ‫از‬ actor‫و‬ ‫شده‬ ‫تماس‬ ‫به‬ ‫سیستم‬ ‫با‬ ‫چگونه‬functionality‫وانفعال‬ ‫فعل‬ ‫به‬ ‫نظر‬ ‫سیستم‬user.‫میباشد‬ ‫چی‬‫از‬ ‫ومتشکل‬actor ‫و‬ ‫ها‬use case.‫باشد‬ ‫می‬ ‫ها‬ ‫که‬ ‫میتوانیم‬ ‫گفته‬ ‫فوق‬ ‫شکل‬ ‫به‬ ‫نظر‬use case‫نام‬ ‫از‬ ‫عبارت‬ ‫دیاگرام‬actors‫نام‬ ‫همرای‬interaction‫میخواهد‬ ‫که‬ ‫یاعمل‬ ‫و‬ ‫دهد‬ ‫انجام‬interaction type.‫میباشد‬ 4.State chart Diagram state chart diagram‫نام‬ ‫به‬ ‫که‬sequence diagram‫در‬ ‫هارا‬ ‫کالس‬ ‫بین‬ ‫ارتباط‬ ‫که‬ ‫است‬ ‫دیاگرام‬ ‫میگردد‬ ‫یاد‬ ‫نیز‬
  • 26. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 25 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ ‫دیاگرام‬ ‫این‬ ‫یعنی‬ .‫میدهد‬ ‫نشان‬ ‫مختلف‬ ‫مراحل‬state‫به‬ ‫نظر‬ ‫را‬ ‫سیستم‬ ‫مختلف‬ ‫حاالت‬ ‫یا‬ ‫ها‬interaction‫های‬user ‫میک‬ ‫تشریح‬.‫بگیرد‬ ‫بخود‬ ‫را‬ ‫حالتی‬ ‫چه‬ ‫باید‬ ‫سیستم‬ ‫وقت‬ ‫چه‬ ‫واینکه‬ .‫ند‬ 0.Activity diagram ‫ف‬ ‫از‬ ‫عبارت‬ ‫دیاگرام‬ ‫این‬‫ل‬‫یک‬ ‫از‬ ‫رفتن‬ ‫جریان‬ ‫که‬ ‫است‬ ‫وچارتی‬activity‫به‬activity.‫میگذارد‬ ‫نمایش‬ ‫به‬ ‫سیستم‬ ‫در‬ ‫دیگررا‬ ‫دینامیک‬ ‫جنبهء‬ ‫دیاگرام‬ ‫این‬ ‫در‬ ‫یعنی‬‫شده‬ ‫ترسیم‬ ‫ویررا‬ ‫سافت‬ ‫یک‬ ‫ی‬‫درآن‬( ‫عملیات‬operation)‫در‬‫بررسی‬ ‫هایی‬ ‫کالس‬ ( ‫کاری‬ ‫جریان‬ ‫دادن‬ ‫نشان‬ ‫برای‬ ‫دیاگرام‬ ‫این‬ ‫عادی‬ ‫بصورت‬ .‫میگردد‬ ‫سیستم‬ ‫حالت‬ ‫تغییر‬ ‫باعث‬ ‫که‬ ‫میگردد‬work flow، ) business process( ‫سیستم‬ ‫یک‬ ‫داخلی‬ ‫عملیات‬ ‫و‬internal operation).‫میگردد‬ ‫استفاده‬ ‫این‬‫انواع‬ ‫از‬ ‫مختصری‬ ‫شرح‬ ‫بود‬UML Diagram‫که‬ ،.‫میدهیم‬ ‫قرار‬ ‫مطالعه‬ ‫مورد‬ ‫تفصیل‬ ‫به‬ ‫آنرا‬ ‫نوع‬ ‫هر‬ ‫ما‬ UML Drawing tools ‫ترسیم‬ ‫برای‬ ‫زیادی‬ ‫های‬ ‫پروگرام‬UML Diagrams:‫از‬ ‫اند‬ ‫عبارت‬ ‫آن‬ ‫مشهور‬ ‫نوع‬ ‫چند‬ ‫که‬ ‫میگردد‬ ‫استفاده‬ UMLet http://www.umlet.com LucidChart https://www.lucidchart.com
  • 27. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 26 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ ArgoUML http://argouml.tigris.org/ Use Case Diagram ‫کردیم‬ ‫اشاره‬ ‫هم‬ ‫قبال‬ ‫همانطوریکه‬use case diagram‫مهم‬ ‫بسیار‬ ‫های‬ ‫دیاگرام‬ ‫از‬ ‫یکی‬UML‫ونمایش‬ ‫ه‬ٔ‫ی‬‫ارا‬ ‫منظور‬ ‫به‬ ‫که‬ ‫باشد‬ ‫می‬ dynamic behavior( .‫میگیرد‬ ‫قرار‬ ‫استفاده‬ ‫مورد‬ ‫سیستم‬ ‫یک‬dynamic behavior‫ا‬ ‫عبارت‬‫ز‬behavior‫درحالت‬ ‫سیستم‬ ‫هایی‬ ‫نمایش‬ ‫و‬ )‫باشد‬ ‫می‬ ‫اجرا‬dynamic behavior‫به‬ ‫نسبت‬static behavior‫از‬ ‫مختلفی‬ ‫مقاصد‬ ‫به‬ ‫آن‬ ‫از‬ ‫که‬ ‫است‬ ‫وحیاتی‬ ‫مهم‬ ‫بسیار‬ :‫قبیل‬ ‫سیستم‬ ‫یک‬ ‫ضروریات‬ ‫آوری‬ ‫جمع‬ ( ‫بیرونی‬ ‫نمای‬ ‫یک‬ ‫دیزاین‬outside view‫سیستم‬ ‫یک‬ ) ‫با‬ ‫که‬ ‫وداخلی‬ ‫خارجی‬ ‫های‬ ‫فکتور‬ ‫شناسایی‬.‫میکنند‬ ‫اثر‬ ‫سیستم‬ ‫الی‬ ‫نمایش‬interaction‫یاهم‬ ‫و‬ ‫ضروریات‬ ‫بین‬ ‫انفعال‬ ‫فعل‬ ‫و‬actors.‫ها‬ Part of Use Case Use case Diagram‫از‬ ‫متشکل‬actor, use case‫و‬association.‫باشد‬ ‫می‬‫که‬actor‫سیستم‬ ‫یا‬ ‫و‬ ‫اشخاص‬ ‫شامل‬ ‫میتواند‬ ‫ها‬ ‫وبه‬ ‫میکند‬ ‫برقرار‬ ‫ارتباط‬ ‫سیستم‬ ‫با‬ ‫که‬ ‫باشد‬ ‫دیگری‬‫ترتیب‬ ‫همین‬use case‫از‬ ‫عبارت‬functionality‫و‬association‫و‬ ‫ارتباط‬ ‫نحو‬ communication‫با‬ ‫را‬ ‫اکتور‬use case.‫میدهد‬ ‫نشان‬
  • 28. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 27 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ ‫ترسیم‬ ‫طریقهء‬use case diagrams ‫ترسیم‬ ‫برای‬use case diagram‫باید‬ ‫اوال‬actor، ‫ها‬functionality‫و‬ ‫ها‬association‫ستاندارد‬ ‫از‬ ‫وسپس‬ .‫گردد‬ ‫مشخص‬‫ها‬ .‫کنیم‬ ‫استفاده‬ ‫باید‬ ‫ارتباط‬ ‫نوع‬ ‫هر‬ ‫و‬ ‫هرکدام‬ ‫نمایش‬ ‫برای‬ Type of relationships 1.Generalization (inheritance):‫شده‬ ‫اضافه‬ ‫اصلی‬ ‫سیستم‬ ‫از‬ ‫بخش‬ ‫یک‬ ‫به‬ ‫اضافی‬ ‫ویژگیهای‬ ‫و‬ ‫ها‬ ‫بخش‬ ‫که‬ ‫معنی‬ ‫بدین‬ ‫یعنی‬ .‫باشد‬case‫درآن‬ ‫که‬ ‫عمومی‬feature‫در‬ ‫وباید‬ .‫میگردد‬ ‫اضافه‬ ‫جدید‬ ‫هایی‬use case diagram‫نشان‬ ‫ذیل‬ ‫شکل‬ ‫به‬ .‫شود‬ ‫داده‬ 2.Extends‫ارتباط‬ ‫هم‬ ‫بین‬ ‫ندرت‬ ‫به‬ ‫بسیار‬ ‫که‬ ‫است‬ ‫دوپراسهء‬ ‫بین‬ ‫ارتباط‬ :‫ودر‬ .‫میکنند‬ ‫برقرار‬use case diagram‫شکل‬ ‫به‬ .‫میشود‬ ‫داده‬ ‫نمایش‬ ‫ذیل‬ 3.Include‫ویاچندین‬ ‫دو‬ ‫زمانیکه‬ :use case‫دارای‬behavior‫این‬ ‫باشند‬ ‫مشابه‬ ‫های‬behavior‫های‬‫یک‬ ‫به‬ ‫را‬ ‫مشابه‬ use case‫تمام‬ ‫سپس‬ ‫و‬ ‫میکنیم‬ ‫تبدیل‬ ‫جدید‬use case‫همان‬ ‫ها‬use case‫را‬ ‫مشترک‬include‫آن‬ ‫پهلوی‬ ‫در‬ ‫و‬ ‫میکنند‬ ‫و‬ ‫خواص‬ ‫میتوانند‬behavior.‫باشند‬ ‫داشته‬ ‫نیز‬ ‫را‬ ‫خودشان‬ ‫خاص‬ ‫های‬‫و‬use case‫با‬ ‫مشترک‬ ‫های‬use case‫اصلی‬ ‫های‬ .‫نماید‬ ‫می‬ ‫کار‬
  • 29. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 28 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ ‫یک‬ ‫در‬ ‫ممکنه‬ ‫حاالت‬use case diagram.‫است‬ ‫شده‬ ‫واضح‬ ‫ذیل‬ ‫اشکال‬ ‫در‬ 1.‫یک‬ ‫ارتباط‬user‫یک‬ ‫با‬ ‫همراه‬use case.‫میشود‬ ‫داده‬ ‫نمایش‬ ‫ذیل‬ ‫طور‬ 2.‫یک‬ ‫ارتباط‬user‫باچندین‬use case.‫میشود‬ ‫داده‬ ‫نمایش‬ ‫ذیل‬ ‫طور‬ 3.Generalization‫بین‬Cms Admin‫و‬User‫هر‬ ‫میدانیم‬ ‫طوریکه‬Admin‫بازهم‬user.‫میشود‬ ‫شمرده‬ 4.Generalization‫بین‬Cms admin،Customer‫و‬Agent‫با‬ ‫همراه‬User‫هر‬ ‫میدانیم‬ ‫طوریکه‬customer, agent‫و‬ Cms admin‫یک‬user‫حقیقت‬ ‫در‬ ‫درینجا‬ ‫شود‬ ‫می‬ ‫شمرده‬User‫یک‬general case‫و‬ ‫مشخصات‬ ‫که‬ ‫میشود‬ ‫شمرده‬
  • 30. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 29 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ behavior‫سه‬case.‫میباشد‬ ‫دارا‬ ‫را‬ ‫دیگر‬ 0.‫رابطهء‬extends‫سه‬ ‫در‬use case‫نام‬ ‫به‬login, reminder‫و‬register‫پراسهء‬ ‫در‬ ‫اینکه‬ ‫به‬ ‫توجه‬ ‫با‬Login‫کم‬ ‫بسیار‬ ‫بخواهیم‬ ‫که‬ ‫افتد‬ ‫می‬ ‫اتفاق‬‫های‬ ‫پراسه‬ ‫از‬ ‫که‬request password reminder‫هم‬ ‫ویا‬register.‫کنیم‬ ‫استفاده‬ 6.‫رابطهء‬include‫بین‬register‫و‬confirm register.
  • 31. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 30 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ 7.‫است‬ ‫قابل‬ ‫اجزای‬ ‫تمام‬ ‫هم‬ ‫ذیل‬ ‫وشلک‬‫در‬ ‫فاده‬use case diagram.‫میدهد‬ ‫نشان‬ ‫را‬ ‫ذیل‬ ‫شکل‬ ‫قرار‬use case diagram‫یک‬ATM Machine.‫است‬ ‫گردیده‬ ‫ترسیم‬
  • 32. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 31 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬
  • 33. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 32 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ Class Diagram ‫نام‬ ‫به‬ ‫که‬ ‫دیاگرام‬ ‫کالس‬structural diagram‫که‬ ‫است‬ ‫ازدیاگرام‬ ‫عبارت‬ ‫میشود‬ ‫نامیده‬ ‫نیز‬static view‫نشان‬ ‫را‬ ‫ویر‬ ‫سافت‬ ‫یک‬ ‫مید‬ ‫نشان‬ ‫یعنی‬ ‫میدهد‬‫کدام‬ ‫شامل‬ ‫ها‬ ‫کالس‬ ‫که‬ ‫هد‬attributes‫و‬ ‫ها‬behavior‫دیاگرام‬ ‫این‬ .‫دارند‬ ‫ارتباط‬ ‫هم‬ ‫بین‬ ‫وچطور‬ ‫باشند‬ ‫می‬ ‫ها‬ :‫قبیل‬ ‫از‬ ‫مختلفی‬ ‫مقاصد‬ ‫به‬ Visualize‫ویر‬ ‫سافت‬ ‫یک‬ ‫ثابت‬ ‫شکل‬ ‫کردن‬ ( ‫تشریح‬describe‫ویر‬ ‫سافت‬ ‫مختلف‬ ‫های‬ ‫قسمت‬ ) Document‫ویر‬ ‫سافت‬ ‫کردن‬ ‫ساختن‬executable code‫اپلیک‬ ‫یک‬.‫میشود‬ ‫استفاده‬ ‫وغیره‬ ‫یشن‬ ( ‫مشخصات‬ ‫دیاگرام‬ ‫این‬Attribute( ‫اعمال‬ ‫و‬ )behavior)‫بسیار‬ ‫به‬ ‫ها‬ ‫کالس‬ ‫دیاگرام‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫که‬ ‫نموده‬ ‫واضح‬ ‫را‬ ‫ها‬ ‫کالس‬ ( ‫گرا‬ ‫شی‬ ‫نویسی‬ ‫پروگرام‬ ‫های‬ ‫لسان‬ ‫به‬ ‫آسانی‬Object Oriented Programming language)( ‫تطبیق‬map).‫میگردد‬‫وهمچنان‬ ‫کال‬ ‫در‬( ‫محدودیات‬ ‫دیاگرام‬ ‫س‬constraints.‫است‬ ‫شامل‬ ‫نیز‬ ‫ها‬ ) :‫از‬ ‫عبارتند‬ ‫که‬ ‫اند‬ ‫شامل‬ ‫مختلفی‬ ‫اجزای‬ ‫دیاگرام‬ ‫کالس‬ ‫ترسیم‬ ‫در‬ ‫که‬ ‫میتوانیم‬ ‫گفته‬ ‫پس‬ ‫ها‬ ‫کالس‬ ‫ها‬ ‫انترفس‬ Association‫(ارتباطات‬) Collaboration)‫ها‬ ‫کالس‬ ‫بین‬ ‫ها‬ ‫همکاری‬ ( Constraints) ‫(محدودیات‬ ‫دیاگرام‬ ‫کالس‬ ‫اهداف‬ ‫د‬‫تحلیل‬ ‫و‬ ‫یزاین‬static view‫تنها‬ ‫یعنی‬ .‫ویر‬ ‫سافت‬ ‫یک‬component‫نشان‬ ‫دیاگرام‬ ‫کالس‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫میتوانیم‬ ‫هارا‬ .‫دهیم‬ ‫سیستم‬ ‫مسئولیات‬ ‫تشریح‬ Forward engineering and reverse engineering‫را‬ ‫ویر‬ ‫سافت‬ ‫یک‬ ‫دیاگرام‬ ‫کالس‬ ‫روی‬ ‫از‬ ‫میتوانیم‬ ‫اینکه‬ ‫یعنی‬ develop‫حالت‬ ‫درین‬ ‫که‬ ‫کنیم‬forward engineering‫روی‬ ‫از‬ ‫میتوانیم‬ ‫وهم‬ ‫یادمیگردد‬code‫را‬ ‫دیاگرام‬ ‫کالس‬ ‫ها‬ ‫نام‬ ‫به‬ ‫حالت‬ ‫این‬ ‫که‬ ‫کنیم‬ ‫ترسیم‬reverse engineering.‫یادمیگردد‬ .‫بگیریم‬ ‫نظر‬ ‫مد‬ ‫را‬ ‫ذیل‬ ‫نکات‬ ‫باید‬ ‫دیاگرام‬ ‫کالس‬ ‫ترسیم‬ ‫درزمان‬ ‫ب‬ ‫یعنی‬ ‫باشند‬ ‫میکنند‬ ‫که‬ ‫کارهای‬ ‫کنندهء‬ ‫واضح‬ ‫باید‬ ‫ها‬ ‫کالس‬ ‫های‬ ‫نام‬.‫باشند‬ ‫مفهوم‬ ‫با‬ ‫و‬ ‫معنی‬ ‫ا‬ .‫شود‬ ‫مشخص‬ ‫باید‬ ‫کالس‬ ‫اجزای‬ ‫و‬ ‫کالس‬ ‫ارتباطات‬ ( ‫سیستم‬ ‫مسؤلیات‬attributes‫و‬methods).‫گردند‬ ‫معرفی‬ ‫واضح‬ ‫شکل‬ ‫به‬ ‫هاباید‬ ‫تنها‬ ‫دیاگرام‬ ‫شدن‬ ‫پیچیده‬ ‫از‬ ‫جلوگیری‬ ‫برای‬properties‫و‬method‫نشان‬ ‫واز‬ ‫میدهیم‬ ‫نشان‬ ‫را‬ ‫کالس‬ ‫یک‬ ‫اساسی‬ ‫های‬ ‫افعا‬ ‫و‬ ‫مشخصات‬ ‫دادن‬‫میکنیم‬ ‫نظر‬ ‫صرف‬ ‫دیاگرام‬ ‫در‬ ‫اضافی‬ ‫ل‬ .‫شود‬ ‫مشخص‬ ‫باید‬ ‫کالس‬ ‫وظیفهء‬ ‫و‬ ‫هدف‬ ، ‫نوع‬ .‫شود‬ ‫آورده‬ ‫الزم‬ ‫اصالحات‬ ‫تا‬ ‫گیرد‬ ‫صورت‬ ‫کار‬ ‫بار‬ ‫چندین‬ ‫آن‬ ‫باالی‬ ‫طوریکه‬ ‫گردد‬ ‫ترسیم‬ ‫ورق‬ ‫روی‬ ‫به‬ ‫باید‬ ‫دیاگرام‬ ‫میتوانیم؟‬ ‫نموده‬ ‫ترسیم‬ ‫را‬ ‫دیاگرام‬ ‫کالس‬ ‫چگونه‬ ‫ا‬ ‫که‬ ‫است‬ ‫الزم‬ ‫دیاگرام‬ ‫کالس‬ ‫ترسیم‬ ‫برای‬.‫بدانیم‬ ‫آنهارا‬ ‫نمایش‬ ‫وطرز‬ ‫دیاگرام‬ ‫کالس‬ ‫اجزای‬ ‫تمام‬ ‫وال‬ :‫از‬ ‫متشکل‬ ‫هرکالس‬ ‫که‬ ‫باشد‬ ‫می‬ ‫دیاگرام‬ ‫کالس‬ ‫از‬ ‫مهم‬ ‫بخش‬ ‫یک‬ :‫ها‬ ‫کالس‬ ‫کالس‬ ‫نام‬ ( ‫مشخصات‬attributes‫نام‬ ‫به‬ ‫درجاوا‬ ‫که‬ :)field.‫میشود‬ ‫یاد‬
  • 34. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 33 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ ( ‫افعال‬operation or behavior).‫یادمیگردد‬ ‫ها‬ ‫متود‬ ‫نام‬ ‫به‬ ‫جاوا‬ ‫در‬ ‫که‬ Association:‫طورذیل‬ ‫باشد‬ ‫می‬ ‫دوکالس‬ ‫بین‬ ‫ارتباط‬ ‫نشاندهندهء‬ ‫دیاگرام‬ ‫کالس‬ ‫در‬ : Role‫یک‬ ‫فوقانی‬ ‫قسمت‬ ‫به‬ ‫که‬ ‫است‬ ‫متنی‬ :association‫میتوانیم‬ ‫آن‬ ‫از‬ ‫استفاده‬ ‫وبا‬ .‫میسازد‬ ‫واضح‬ ‫را‬ ‫ارتباط‬ ‫وهدف‬ ‫میگردد‬ ‫نوشته‬ association.‫کنیم‬ ‫فرق‬ ‫را‬ ‫کالس‬ ‫یک‬ ‫های‬ Multiplicity‫شود‬ ‫واضح‬ ‫باید‬ :‫چند‬ ‫کالس‬ ‫یک‬ ‫که‬object‫های‬ ‫انجام‬ ‫در‬ ‫ها‬ ‫نمبر‬ ‫توسط‬ ‫واین‬ ‫داشته؟‬ ‫میتواند‬ ‫را‬ ‫دومی‬ ‫کالس‬ association‫چند‬ ‫همزمان‬ ‫یعنی‬ .‫میگردد‬ ‫واضح‬object‫منحیث‬ ‫میتواند‬ ‫کالس‬ ‫یک‬instance field‫استفاده‬ ‫دیگری‬ ‫کالس‬ ‫در‬
  • 35. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 34 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ ‫یک‬ ‫تنها‬ ‫که‬ ‫درصورت‬ .‫گردد‬instance‫انجام‬ ‫در‬ ‫میتوانست‬ ‫داشته‬association(1‫بینهایت‬ ‫درصورتیکه‬ ‫و‬ )instance‫داشته‬ ‫درانجام‬ ‫میتوانست‬association( ‫از‬*:‫مثال‬ .‫میکنیم‬ ‫استفاده‬ )‫هر‬ ‫که‬ ‫میدهد‬ ‫نشان‬ ‫ذیل‬ ‫دیاگرام‬ ‫در‬flight‫یک‬ ‫تنها‬plane‫داشته‬ ‫چندین‬ ‫میتواند‬ ‫پرواز‬ ‫هر‬ ‫برعکس‬ ‫و‬ ‫میتواند‬flight.‫باشد‬ ‫داشته‬ ‫که‬ ‫ممکنهء‬ ‫های‬ ‫قیمت‬ ‫از‬ ‫بعضی‬ ‫ذیل‬ ‫جدول‬multiplicity.‫باشد‬ ‫می‬ ‫میکند‬ ‫واضح‬ ‫را‬ Association type in class diagram Inheritance‫بعضی‬ ‫کالس‬ ‫یک‬ ‫که‬ ‫است‬ ‫حالت‬ :attribute‫و‬ ‫ها‬operation‫ارث‬ ‫دیگربه‬ ‫کالس‬ ‫از‬ ‫خودرا‬ ‫های‬ ‫میگیرند‬.( ‫نام‬ ‫به‬ ‫را‬ ‫اولی‬ ‫کالس‬ ‫حالت‬ ‫درین‬ ‫که‬sub class or child class‫نام‬ ‫به‬ ‫را‬ ‫دومی‬ ‫کالس‬ ‫و‬ )(super class or parent class)‫البته‬ .‫میکنند‬ ‫یاد‬child class‫را‬ ‫خودش‬ ‫خاص‬ ‫خصوصیات‬ ‫میتواند‬ ‫گرفته‬ ‫ارث‬ ‫به‬ ‫خصوصیات‬ ‫پهلوی‬ ‫در‬ .‫باشد‬ ‫داشته‬ ‫نیز‬‫کلیدی‬ ‫کلمهء‬ ‫استعمال‬ ‫با‬ ‫درجاوا‬extends‫کالس‬ ‫دو‬ ‫رابین‬ ‫رابطه‬ ‫این‬ ‫میتوانیم‬ ‫کالس‬ ‫تعریف‬ ‫زمان‬ ‫در‬ .‫کنیم‬ ‫برقرار‬‫دیاگرام‬ ‫کالس‬ ‫ودر‬inheritance:‫میشود.مثال‬ ‫داده‬ ‫نمایش‬ ‫ذیل‬ ‫طور‬
  • 36. ‫ها‬ ‫افزار‬ ‫نرم‬ ‫طراحی‬ ‫راهکارهای‬ 35 "‫"امان‬ ‫هللا‬ ‫محب‬ : ‫وترتیب‬ ‫تهیه‬ ‫که‬ ‫میتوانیم‬ ‫گفته‬BMW‫و‬ ‫مشخصات‬Operation‫کالس‬ ‫های‬car.‫است‬ ‫گرفته‬ ‫ارث‬ ‫به‬ ‫را‬ Aggregation:‫یاچندین‬ ‫و‬ ‫یک‬ ‫زمانیکه‬Object‫نام‬ ‫به‬ ‫حالت‬ ‫این‬ ‫شود‬ ‫استفاده‬ ‫دومی‬ ‫کالس‬ ‫در‬ ‫فیلد‬ ‫منحیث‬ ‫کالس‬ ‫یک‬ aggregation.‫میگردد‬ ‫یاد‬‫کلی‬ ‫کالس‬ ‫یک‬ ‫یعنی‬(whole)‫چندین‬ ‫میتاند‬object.‫باشد‬ ‫داشته‬ ‫را‬ ‫دیگری‬ ‫کالس‬ ‫از‬ Composition aggregation‫از‬ ‫شکل‬ ‫یک‬ ‫درحقیقت‬ ‫هم‬ ‫رابطه‬ ‫این‬ :aggregation‫یک‬ ‫میتواند‬ ‫کالس‬ ‫یک‬ ‫که‬ ‫میباشد‬ ‫ایجاد‬ ‫با‬ ‫که‬ ‫است‬ ‫طوری‬ ‫آنها‬ ‫ارتباط‬ ‫ولی‬ ‫باشد‬ ‫داشته‬ ‫درخود‬ ‫را‬ ‫دیگر‬ ‫کالس‬object، ‫اولی‬ ‫کالس‬object‫دو‬ ‫کالس‬‫نیز‬ ‫می‬ ‫شدن‬ ‫ایجاد‬ ‫یعنی‬ .‫میگردد‬ ‫ایجاد‬ ‫بخود‬ ‫خود‬object‫شدن‬ ‫ایجاد‬ ‫به‬ ‫وابسته‬ ‫کالس‬ ‫یک‬object‫درجاوا‬ ‫و‬ .‫است‬ ‫دیگری‬ ‫کالس‬ ‫باید‬ ‫ارتباط‬ ‫نوع‬ ‫این‬ ‫برقراری‬ ‫برای‬object‫در‬ ‫کالس‬ ‫یک‬constructor‫ایجاد‬ ‫محض‬ ‫به‬ ‫تا‬ ‫گردد‬ ‫ایجاد‬ ‫دومی‬ ‫کالس‬ object‫دومی‬ ‫کالس‬constructor‫نیز‬ ‫آن‬call‫شده‬‫و‬object‫کمپنی‬ ‫هر‬ ‫میدانیم‬ ‫مثال‬ ‫بطور‬ .‫گردد‬ ‫ایجاد‬ ‫نیز‬ ‫دومی‬ ‫کالس‬ .‫باشد‬ ‫می‬ ‫دیپارتمنت‬ ‫یک‬ ‫حداقل‬ ‫دارای‬ ‫افتیدن‬ ‫کار‬ ‫به‬ ‫و‬ ‫شدن‬ ‫ایجاد‬ ‫محض‬ ‫به‬