طراحی نرم افزار
طراحی نرم افزار مهم ترین مرحله چرخه توسعه نرم افزار است. فکر کردن درباره نحوه ساختن
کد قبل از شروع به نوشتن، بسیار مهم است. تغییرات و به روز رسانی ها ناگزیر خواهد شد.
برنامه های طراحی نرم افزار خوب و امکان اضافه کردن ویژگی های اضافه شده، تغییرات
الگوریتم و ادغام جدید را ایجاد می کند.
با برنامه ریزی پیش رو، صرف زمان باارزش، سردرد و هزینه های نگهداری، نگهداری و گسترش
نرم افزار اصلی را ذخیره کنید. نرم افزار طراحی یک تمرین در حل مسئله است. این به شما
کمک می کند تا یک کار را به قسمت های آن بسپارید، تصمیم بگیرید که چگونه به هر قسمت
و هر اجزای با هم برای تولید عملکرد دلخواه می پردازید.

طراحی نرم افزار
به همین ترتیب، طراحی خوب بر پایه ترکیبی از تفکر سیستمی سطح بالا و دانش جزء سطح
پایین متکی است. در طراحی نرم افزارهای مدرن، بهترین روش در اطراف ایجاد اجزای مدولار
است که می توانید به صورت صحیح تماس بگیرید و به آن اعمال کنید. این نرم افزاری را ایجاد
می کند که قابل استفاده مجدد، قابل گسترش و آزمایش آسان است. اما قبل از اینکه بتوانید
این اجزا را ایجاد کنید، باید در نظر بگیرید که چه عملکردی (یا سایر نرم افزار) از نرم افزاری
که در حال ایجاد است نیاز دارید.
نمودار جریان و داستان های تجربه کاربر
نرم افزار عموما به سه دسته تقسیم می شود: کاربر محور، نیمه خودکار یا کاملا خودکار.
نرم افزار متمرکز بر کاربر شامل یک رابط کاربری است که کاربران با نرم افزار برای تولید
نتایج دلخواه در تعامل هستند. در مواردی که شما در حال ایجاد نرم افزار متمرکز بر کاربر
هستید، می خواهید تجربه کاربر را به عنوان اولین گام در فرآیند طراحی نرم افزار خود در
نظر بگیرید. درک اینکه چگونه کاربران با نرم افزار ارتباط برقرار می کنند، به شما کمک
می کند که چه عملکردی را ایجاد کنید و چگونه این عملکرد باید با رابط و ورودی کاربر
ارتباط برقرار کند.
به طور معمول، طراحی مبتنی بر محتوا، شامل مواردی است که چرا کاربر از نرم افزار شما
استفاده می کند و چگونه انتظار می رود با نرم افزار ارتباط برقرار کند. در انتهای دیگر طیف،
نرم افزار به طور کاملا خودکار هیچ کاربر یا رابطی ندارد. این نرم افزار است که با نرم افزار دیگر
صحبت می کند. در این موارد، شما نیاز به یک صفحه نمایش اسکن ندارید، اما شما می خواهید
همه اجزا را در یک نمودار جریان به منظور سازماندهی اجزای مختلف نقشه داشته باشید. نمودار
های توالی نیز یک روش مفید برای مستند سازی ارتباطات مختلف بین سیستم ها هستند.
یک قطعه نیمه مستقل از نرم افزار در میان است. شما باید هر دو تعامل کاربر را با نرم افزار و
فرآیندهای اتفاقی که در حال ساخت یک راه حل هستند، در نظر بگیرید.
الزامات همیشه تغییر می کند
یکی از دلایلی که طراحی خوب نرم افزار بسیار مهم است تقاضای نرم افزار همیشه در حال
تغییر است. در نتیجه، الزامات نیز به طور مداوم تغییر می کنند. گاهی اوقات مشتری نیاز به
ویژگی های جدید دارد. بار دیگر ممکن است بخواهید کتابخانه ها یا ابزارهایی را که برای انجام
یک کار مشخص استفاده می کنید، تغییر دهید. در حقیقت، در دنیای چالاک ما متعهد به ارائه
یک مجموعه کوچک از ویژگی ها و قابلیت های تکرارشده ما به ما اجازه می دهد تا الزامات
را تغییر دهیم اگر این تغییرات با تعهد فعلی Sprint ما در تعارض نباشد. در نهایت، در طول زمان،
تمام نرم افزارها میراث می شوند و نیازمند به روز رسانی هستند تا با نیازهای کسب و کار جدید
و یا بهترین شیوه های فناوری در ارتباط باشند.

طراحی نرم افزار
چالش در مورد طراحی نرم افزار از ابتدای پروژه نیازهای آینده ممکن است در ابتدا روشن نباشد.
بهترین شیوه های طراحی نرم افزار انواع نیازهای آینده را پیش بینی می کند. هر زمان که یک
مشکل جدید ایجاد می شود، از ابتدا بهترین شیوه ها را اجرا می کند، به جای هک کردن یک راه حل.
تفکیک نگرانی ها: مدولار دوست شماست
پایه و اساس طراحی نرم افزار خوب جدایی نگرانی است. این به این معنی است که نرم افزار خود
را به قطعات اجزاء تقسیم می کنید و یک قسمت از هر قسمت را بسازید. اجتناب از تکرار کد.
همیشه کدی را که احتمالا دوباره در کلاس ابزار کاربردی استفاده می کنید قرار دهید و آن را در
سراسر برنامه در دسترس قرار دهید. هنگامی که شما نیاز دارید این کد را در آینده به روز کنید،
فقط باید آن را در یک مکان ویرایش کنید، به جای جستجوی مکان های مختلف که کد آن را تکرار کردید.
هنگامی که شما به یک مولفه مشخص نیاز دارید، می توانید آن را فراخوانی کنید و از آن در یک لایه
انتزاعی استفاده کنید. این جدایی مدولار نامیده می شود و این یک کلید برای معماری نرم افزار
مقیاس پذیر و قابل نگهداری است. مدولار چندین مزیت کلیدی دارد:
تست و اشکال زدایی
از آنجا که هر مولفه ای مستقل است، شما مسائل وابستگی را کاهش می دهید. با استفاده از یک
چارچوب فریبنده یا انزوای خود، هر جزء را به صورت جداگانه تست کنید. این به ما کمک می کند تا
مشکلات و مشکلات دیگر را سریعتر ردیابی کنیم. همچنین به شما اجازه می دهد که کار را در میان
توسعه دهندگان تقسیم کنید، زیرا هر جزء به خودی خود سخت است.
قابل استفاده مجدد
یکی دیگر از مزایای مدولار بودن استفاده مجدد از کد آسان است. اگر شما کشف کنید که در یک پروژه
جدید نیاز به همان قابلیت دارید، می توانید قابلیت های موجود را به چیزی که چندین پروژه قابل استفاده
مجدد را بدون کپی کردن و چسباندن کد بسته می کنید بسته بندی کنید. برای مثال می توان با استفاده
از سرویس وب یا بسته ی nuget این کار را انجام داد.
توسعه پذیری
نرم افزار شما در حال حاضر به عنوان مجموعه ای از اجزای مستقل متصل توسط یک لایه انتزاعی اجرا
می شود. این بدان معنی است که اضافه کردن قابلیت های جدید به همان اندازه ایجاد یک جزء جدید
و اتصال آن به لایه انتزاع آسان است. اگر برنامه های کاربردی را به خوبی طراحی کرده اید، شامل
ویژگی های جدید بی اهمیت است.
چکیده رابط از الگوریتم ها
اگر هر مولفه در یک ظرف مدولار اجرا شود، شما باید یک لایه انتزاعی کلی که کاربر می تواند
با آن ارتباط برقرار کند را داشته باشید. بر اساس ورودی کاربر، لایه انتزاعی تصمیم می گیرد
که کدام اجزاء برای انجام کار مورد نیاز است. به عبارت ساده، کدی که کار می کند باید از کد
جداگانه ای باشد که به ویژگی های کاربر متکی است.
ما از این رویکرد استفاده می کنیم به طوری که تغییر در یک مکان لزوما بخش های دیگر را
نمی شکند. لایه انتزاعی به احتمال زیاد به عنوان ماژول های سطح پایین تغییر نمی کند.
آنها به روزرسانی، افزوده شدن و تجدید نظر بسیار بیشتر می شوند. از آنجا که آنها موجود است،
یک اشتباه در به روز رسانی لزوما تمام برنامه را، فقط یک ماژول شکسته است. هر ماژول درباره
دیگر ماژول ها در برنامه می داند و چه کاری انجام می دهد. با این حال، نمی داند چگونه ماژول
های دیگر کار خود را انجام می دهند.
سادگی

طراحی نرم افزار
هدف از طراحی نرم افزار سادگی است. هر کلاس، روش و ماژول در کد شما باید یک هدف واحد
داشته باشد. در هر کار جدید باید ماژول خود را که می توانیم مستقل از آن استفاده کنیم و تغییر
دهیم، دریافت کنیم. این رگرسیون ها را به حداقل می رساند و کد را ساده تر می کند.
سادگی در آغوش گرفتن، پیچیدگی را اضافه نکنید که در آن یک راه حل ساده تر کار خواهد کرد.
اغلب، وسوسه انگیز است که شما یک راه حل عالی داشته باشید، اما اگر راه ساده ای برای انجام
یک کار ساده وجود داشته باشد، همیشه باید راه حل ساده ای را انتخاب کنید.
نتیجه

طراحی نرم افزار
بدیهی است که یادگیری نرم افزار طراحی پیچیده تر از قوانین ساده ای است که در این مقاله ارائه
شده است. با این حال، این اصول در تمام پروژه های بزرگ یا کوچک اعمال خواهد شد. اگر شما
فقط شروع به سفر خود را به عنوان یک توسعه، شما باید انتظار داشته باشید که این اصول طراحی
در بررسی کد شما ظاهر می شود. حتی توسعه دهندگان ارشد که بر روی پروژه های پیچیده کار
می کنند اغلب می توانند از یادآوری بر اصول طراحی نرم افزار استفاده کنند.
برای مشاهده سایر مقالات سایت اینجا کلیک کنید.
برای مطالعه مقاله نکات طراحی برای ایجاد لوگو وب سایت کلیک کنید.