طراحی نرمافزار: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
Golgoli1507 (بحث | مشارکتها) بدون خلاصۀ ویرایش برچسب: متن دارای ویکیمتن نامتناظر |
FreshmanBot (بحث | مشارکتها) جز اصلاح فاصله مجازی + اصلاح نویسه با ویرایشگر خودکار فارسی |
||
خط ۱:
{{Software development process}}
'''طراحی نرمافزار''' فرایند [[حل مسئله]] و برنامهریزی در راستای ساختن یک [[نرمافزار]] است.
طراحی نرمافزار فرایندی است که توسط آن یک عامل ،مشخصه یی از نرمافزار را طراحی
طراحی نرمافزار معمولاً شامل حل مسئله و برنامه ریزی یک راه حل نرمافزاری است که شامل طراحی جزئی اجزا و طراحی الگوریتم و طراحی معماری سطح بالا می باشد."<ref>{{cite journal|last=Freeman|first=Peter|author2=David Hart |title=A Science of design for software-intensive systems|journal=Communications of the ACM|year=2004|volume=47|issue=8|pages=19–21 [20]|doi=10.1145/1012037.1012054}}</ref>
== بررسی اجمالی ==
طراحی نرمافزار فرایند
تفاوت اصلی بین تجزیه و تحلیل نرمافزار و طراحی نرمافزار این است که خروجی یک تجزیه و تحلیل نرمافزاری از مشکلات کوچکتر برای حل مسئله تشکیل
طراحی نرمافزار هم یک فرایند و هم یک مدل است. فرایند طراحی یک دنباله ای از مراحل است که طراح را قادر
* '''فرایند طراحی نباید از "دید تونلی" رنج ببرد.''' یک طراح خوب باید
* '''طراحی باید قابل تبدیل به
* '''طراحی نباید چرخ را دوباره اختراع کند. '''
* '''طراحی باید فاصله فکری بین نرمافزار و مشکلی را که به عنوان آن را در دنیای واقعی وجود دارد،به حداقل برساند.'''
* '''طراحی باید یکنواخت و یکپارچه شود. '''
* '''طراحی باید متناسب با تغییر باشد.'''
* '''طراحی باید طوری ساختاریافته باشد که به راحتی تخریب شود، حتی هنگامی که با
* '''طراحی
*'''طراحی باید براساس کیفیت درهنگام یه وجود آمدنش ارزیابی شود، نه بعد از تمام شدنش.'''
*'''طراحی باید بررسی شود تا خطاهای مفهومی (معنایی)، به حداقل برسد. '''
== مفهوم طراحی ==
مفاهیم طراحی ارائه دهنده طراح نرمافزار بر اساسی است که از
#[[چکیده]]-چکیده فرایند یا نتیجه تعمیم با کاهش محتوای اطلاعاتی یک مفهوم یا یک پدیده قابل مشاهده است،
#[[اصلاح]]-این روند تکامل است. یک سلسله مراتب
#پیمانه ایی-معماری نرمافزار به اجزای به نام ماژول تقسیم
#[[معماری نرمافزار]]-این مورد به ساختار کلی نرمافزار اشاره دارد و
#سلسله مراتب کنترل-یک ساختار برنامه ای که نشان دهنده سازمان یک جزء برنامه است و یک سلسله مراتب کنترل را نشان
#تقسیم سازه-ساختار برنامه را
#[[ساختار داده ها]]-این مورد نشان دهنده ارتباط منطقی میان عناصر داده ای است.
#رویکرد نرمافزار-در این مورد تمرکز بر پردازش هر یک از
#مخفی کردن اطلاعات-
Grady Booch در مدل شیء خود، Abstraction، Encapsulation، Modularisation و سلسله مراتب را به عنوان اصول طراحی نرمافزار معرفی
== ملاحظات طراحی ==
در طراحی یک قطعه نرمافزاری،
*'''سازگاری'''- نرمافزار قادر به کار با سایر محصولات است که برای قابلیت همکاری با یک محصول دیگر طراحی
*'''توسعه پذیری'''-
*'''ماجول بودن'''-نرمافزار در نتیجه مستقل از اجزای مستقل است که منجر به بهبود قابلیت نگهداری
*'''[[تحمل خطا]]'''-نرمافزار مقاوم است و قادر به بازیابی
*'''قابلیت نگهداری'''-
*'''قابلیت اطمینان'''(دوام نرمافزار)- نرمافزار قادر به انجام یک تابع مورد نیاز در شرایط مشخص شده برای یک دوره مشخص از زمان است.
* '''قابل استفاده مجدد'''-توانایی استفاده از برخی یا تمام
* '''نیرومندی'''-این نرمافزار قادر به اجرا تحت فشار است و یا تحمل ورودی
* '''[[امنیت]]'''-این نرمافزار قادر به مقاومت در برابر اقدامات خصمانه است.
* '''قابلیت استفاده'''-نرمافزار [[رابط کاربر]] باید برای کاربر و مخاطب هدف مورد استفاده قرار گیرد. مقادیر پیش فرض برای پارامترها باید انتخاب شوند به طوری که برای اکثریت کاربران انتخاب خوبی باشد.
* '''[[کارایی]]'''- نرمافزار وظایف خود را در یک فریم زمان که برای کاربر قابل قبول است انجام
* '''قابل حمل بودن'''-نرمافزار باید در شرایط مختلف و
* '''[[مقیاس پذیری]]'''- نرمافزار به خوبی به افزایش
== زبان مدل سازی ==
زبان
* [[زبان توصیف معماری]] (ADL) زبان مورد استفاده برای توصیف و نمایندگی [[معماری نرمافزار]] یک سیستم نرمافزاری است.
* نشانه گذاری
* EXPRESS و (EXPRESS-G (ISO 10303-1 یک استاندارد همه منظوره بینالملللی برای
* زبان
* [[فلوچارت]] نمایش شماتیک از الگوریتم یا فرایند محاسبات است.
* مفاهیم اساسی مدلسازی (FMC) زبان مدلسازی برای سیستم فشرده نرمافزار است.
* IDEF خانواده ایی از
(Service-oriented modeling framework (SOMF <ref name="Bell">{{cite book |last=Bell |first=Michael|title=Service-Oriented Modeling: Service Analysis, Design, and Architecture|year= 2008 |publisher=Wiley & Sons|isbn=978-0-470-14111-3 |chapter=Introduction to Service-Oriented Modeling}}</ref>
== الگوهای طراحی ==
طراح نرمافزار یا معمار ممکن است به مشکلی برخورد کنند که قبلاً توسط افراد دیگری دید شده و حل
.<ref>{{cite web
| url = http://msdn.microsoft.com/en-us/vstudio/ff729657
خط ۶۸:
}}</ref>
== استفاده ==
سند طراحی نرمافزار ممکن است مورد بررسی قرارگیرد و اجازه
== جستارهای وابسته ==
* [[طراحی تعامل]]
* [[توسعه نرمافزار]]
== منابع ==
|