<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های عدی الحمود نصر</title>
        <link>https://virgool.io/feed/@oudaynasser3</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-16 14:10:05</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>عدی الحمود نصر</title>
            <link>https://virgool.io/@oudaynasser3</link>
        </image>

                    <item>
                <title>software Product Line</title>
                <link>https://virgool.io/@oudaynasser3/software-product-line-txvqs3sapciy</link>
                <description>                                                          بسم الله الرحمن الرحیمچکیده:خط تولید نرم افزاری مجموعه ای از محصولات نرم افزاری متفاوت است که مشترکات را به اشتراک می گذارد. برای انتخاب ویژگی ها ، محصولات تخصصی یک دامنه را می توان به طور خودکار از مصنوعات دامنه تولید کرد. با این حال، تجزیه و تحلیل خطوط تولید نرم افزاری نیاز به کنترل تعداد زیادی از محصولات دارد که می توانند در تعداد ویژگی ها نمایی باشند. در دهه گذشته ، رویکردهای زیادی برای تجزیه و تحلیل کارآمد خطوط تولید نرم افزار ارائه شده است.ما در این پروژه  درباره خط تولید نرم‌افزار به طور کلی صحبت کرده بودیم، و درباره انگیزه‌های خط تولید نرم‌افزار وبه فرایندها، روشها وابزارهای ایجاد خط تولید نرم‌افزار می‌پردازیم.در ابتدا معرفه کلی از خط تولید نرم‌افزار می آوریم وبعد درباره نکات که در فوق صحبت کردیم به طور مفصل می‌پردازیم.مقدمه:راهی برای بهبود قابلیت استفاده مجدد و قابلیت حفظ یک خانواده از محصولات نرم‌افزاری از طریق استفاده از رویکرد خط تولید نرم‌افزار (SPL) است.طبق تمام مقالاتی که من خوانده ام، یک تعریف مشترک در مورد خط تولید نرم‌افزار وجود دارد: مجموعه‌ای از سيستم‌های مبتنی بر نرم‌افزار که دارای يک سری ويژگی‌های عمومی و مديريت شده مشترک بوده، نيازهای مشخصی از بازار يا ماموريت خاصی را برآورده می نمايند و براساس مجموعه مشتركی از دارايی‌های اصلی به صورت تجويزی توسعه داده شده‌اند.خط تولید نرم‌افزار[1]: مجموعه‌ای از محصولات نرم‌افزاری مرتبط است که از دارایی‌های قابل استفاده مجدد تولید می‌شود. محصولات به این معنا مرتبط هستند که عملکردی مشترکی دارند. دارایی‌ها با مؤلفه‌ها، کلاس‌ها، پرونده‌های خاصیت و سایر مصنوعات که به روش‌های مختلفی برای مشخص کردن یا ساخت محصولات مختلف انجام می‌شود، مطابقت دارد.برخی از دارایی‌های اصلی عبارتند از:· نیازهای نرم‌افزار· نمونه‌های اولیه نرم‌افزار· معماری نرم‌افزار· طراحی نرم‌افزار· کد منبع نرم‌افزار و موارد تست نرم‌افزار· مستندات نرم‌افزار و موارد دیگرمثال:یک شرکت تولید یخچال در نظر بگیرید، که این شرکت مدل‌های مختلفی از یخچال تولید می‌کند.خود یخچال ویژگی‌های مشخصی دارد واین ویژگی‌ها به صورت تکراری در هر محصول انجام میشوند، مثلا درب، موتور و موارد دیگر که سازنده به جای اینکه برای هر محصول بیاد از صفر شروع بکند به ساختن، میاد و یک خط تولید برای کارهای تکراری درست می‌کند که دارای چند مرحله است ودر هر مرحله یک کاری انجام میشود.ویژگی خط تولید این که قابل تغییر هست و می‌توان برخی مراحل را اضافه یا حذف کرد، که این خاصیت بستگی دارد به نیازها و آپدیت‌ها است.مهندسی خط تولید نرم‌افزارخط تولید نرم‌افزار یکی از روش‌های مهندسی نرم‌افزار است، به این معناست که مهندسی خط تولید نرم‌افزار عبارت است از پارادایمی برای توسعه برنامه‌های كاربردی نرم‌افزاری با استفاده از پلتفرم و سفارشی‌سازی انبوه (تولید چیزی در مقیاس بزرگ که به تناسب نیازهای مشتری تنظیم شده باشد).انگیزه‌های ایجاد خط تولید نرم‌افزار1. بهبود تخمین هزینه‌ها:یک خانه نرم‌افزاری می تواند تلاش های بازاریابی خود را متمرکز شود بر روی آن دسته از محصولاتی که می تواند به راحتی در خط تولید متمرکز کند. علاوه بر این، تخمین هزینه برای محصولات تحقق یافته در خط تولید نسبتاً ساده است و چالش زیادی را شامل نمی‌شود[5].2. کاهش در تلاش برای نگهداری: وقتي فرآورده‌ای تغيير می‌كند، يك بار تغيير كرده و در همه محصولات استفاده می‌شود، كاهش نياز به آموزش، و حتی اگر نياز باشد به ازای محصولات منفرد، تغيير، تست، يا بررسی اتفاق بيفتد، روال‌های قابل استفاده مجدد داريم.3. افزایش به موقع به بازار/تحویل:استفاده از مهندسی خط تولید در ابتدا زمان بیشتری برای بازاریابی دارد زیرا در حالی که مصنوعات مشترک ساخته می‌شوند، محصولات مرتبط با آن در این خط قرار می گیرند. پس از این در حالی که زمان بازار به طور قابل توجهی و به طرز چشمگیری کاهش می‌یابد، زیرا بسیاری از مصنوعات مهندسی شده یا تولیدی اکنون به راحتی قابل استفاده مجدد برای هر محصول جدید هستند.4. بهبود کیفیت محصولات:فرآورده‌های برای محصولات مختلفی بارها و بارها بازبينی و تست می‌شوند.5. کاهش هزینه‌های توسعه:مصنوعات به دست آمده به عنوان دارایی‌های اصلی به طور گسترده در چندین نوع سیستم مورد استفاده مجدد قرار می‌گیرند که به طور چشمگیری به معنای کاهش قابل توجه در هزینه تولید بسیاری از سیستم‌های فردی است.فرایندهای اصلی مهندسی خط تولید نرم‌افزار· مهندسی دامنه[2]: هدف اصلی شناسایی و تعیین ویژگی‌های مشترک و تغییرپذیری یک خط تولید، مشتق معماری مرجع و تحقق اجزای عمومی و تضمین کیفیت مرتبط است. دارایی‌های اصلی از طریق تجزیه و تحلیل دامنه، طراحی دامنه و فرآیندهای اجرای دامنه طراحی می‌شوند.· مهندسی کاربرد[3]: فرايندی كه در آن برنامه‌های كاربردی خط توليد با استفاده مجدد از فرآورده‌های دامنه و با استفاده از تنوع پذيری خط توليد ساخته می‌شوند. این مرحله از سه فرآیند تشکیل شده است:o نیازهای برنامهo طراحی برنامهo برنامه‌نویسی برنامهروشهای ایجاد خط تولید نرم‌افزار:در این بخش، روشهای مختلف ایجاد خط تولید نرم‌افزار را توضیح میدهیم، که عبارتند از سه تا روش به ترتیب: برنامه نویسی مبتنی بر ویژگی[4]برنامه نویسی مبتنی بر جنبه[5]برنامه نویسی مبتنی بر شکست[6]که به هر کدوم از آن سه تا روش به طور مفصل می‌پردازیم.برنامه نویسی مبتنی بر ویژگی (FOP):یا feature-oriented software development (FOSD) است. FOSD یک الگوی توسعه است که می تواند برای توسعه خطوط محصول و انجام مهندسی دامنه مورد استفاده قرار گیرد. و هدف FOSD در تولید خودکار محصولات نرم افزاری است، وبرای این کار از چهار تا فرایند استفاچئ میکند که عبارتند از:· تجزیه و تحلیل دامنه:مدل سازی ویژگی فعالیت اصلی در تجزیه و تحلیل دامنه است. هدف این است که در مورد FOSD، در قالب یک مدل ویژگی ، شناسایی و ضبط متغیرها و مشترکات یک دامنه ، در مورد FOSD باشد. FODA اولین روش تجزیه و تحلیل بود که با نوع مدل ویژگی خود همراه بود [1].· طراحی و مشخصات دامنه:طراحی و مشخصات دامنه فرایند تعریف معماری یک خط تولید نرم افزار است. در زمینه FOSD ، این بدان معنی است که خصوصیات ساختاری و رفتاری اساسی ویژگی های درگیر با استفاده از مشخصات رسمی یا غیر رسمی و/یا زبان مدل سازی مشخص می شود.· پیاده سازی دامنه:پس از شناسایی و نگاشت نیازمندی‌ها نوبت به پیاده‌سازی آن‌ها به شکلی می‌رسد که قابلیت استفاده مجدد را داشته باشند. در این فرایند از کلمات توسعه‌دهندگان برای پیاده‌سازی راه‌حل‌ها نیازمندی‌های یک مشتری استفاده می‌شود. در این فرایند دو کار انجام می‌شود. ابتدا یک چارچوبی انتخاب می‌شود که قابلیت استفاده مجدد را فراهم نماید. سپس با توجه به چارچوب و راهبرد انتخاب شده ممکن است که نیاز به آماده‌سازی طراحی و کد به گونه‌ای باشد که بتوان پیاده‌سازی را تکرار کرد. به عنوان مثال ما طراحی می‌کنیم چگونه اجزای مشترک پیاده‌سازی ساختار بندی شوند و نقاط گسترش در کجا قرار گیرند و ویژگی‌های گسترش‌ها چگونه فعال و غیرفعال شوند.· پیکربندی[7] و تولید محصول:در FOSD، نسل نقش اساسی را ایفا می کند. چشم انداز این است که ، به دنبال انتخاب ویژگی کاربر ، یک سیستم نرم افزاری کارآمد به طور خودکار تولید می شود.این متفاوت از رویکرد سنتی دامنه و مهندسی برنامه است ، که در آن کاربر مسئول مونتاژ ، تطبیق و ادغام دارایی های قابل استفاده مجدد توسط مهندسی دامنه است. اتوماسیون کامل یکی از اهداف اصلی FOSD است.چندین مرحله برای تولید یک سیستم نرم افزاری کارآمد از انتخاب ویژگی کاربر لازم است.اول ، برای کمک به کاربر در انتخاب مجموعه ای از ویژگی های مورد نظر ، ابزارها باید ویژگی های موجود و همچنین محدودیت ها و روابط آنها را به وضوح ارائه دهند. در حالت ایده آل ، انتخاب ویژگی های نامعتبر گزارش می شود و در طی فرایند انتخاب ویژگی به صورت تعاملی رد می شود.مرحله بعدی محاسبه یک انتخاب کامل و معتبر بر اساس انتخاب ویژگی جزئی با ارزیابی ترکیبات کامل ویژگی و قضاوت مناسب بودن آنها است. پیش زمینه این است که خطوط تولید در دنیای واقعی صدها یا حتی هزاران ویژگی دارند که تعداد آنها مطمئناً کاربر متوسط را بارگذاری می کند. ساده ترین رویکرد ارائه همه انتخاب های ویژگی به کاربر ممکن است.برنامه نویسی مبتنی بر جنبه (AOP):برنامه نویسی جنبه گرا (AOP) یک الگوی برنامه نویسی است که با جدا کردن نگرانی های یک نرم افزار برای بهبود مدولار[8] ، برنامه نویسی شی گرا (OOP) را تکمیل می کند[2]. جدایی نگرانی ها (SOC) با هدف آسانتر کردن نرم افزار با گروه بندی ویژگی ها و رفتار به بخش های قابل کنترل که همه آنها یک هدف و تجارت خاص برای مراقبت از آنها دارند ، آسانتر می شود.برنامه نویسی جنبه گرا برای مدتی است که در سایر زبان های برنامه نویسی وجود دارد و راه حل های پیشرفته ای با استفاده از AOP وجود دارد. چارچوب AOP Flow به شما امکان می دهد از محبوب ترین تکنیک های AOP در برنامه PHP خود استفاده کنید. در مقابل با رویکردهای دیگر ، نیازی به برنامه های خاص PHP یا مراحل کامپایل دستی ندارد - و این یک نسیم برای پیکربندی است.مثال: ورود به سیستم بدون AOP:ورود به سیستم بدون AOPاگر مجبور شوید این کار را در بسیاری از مکان ها انجام دهید ، ورود به سیستم به بخشی از منطق مدل دامنه شما تبدیل می شود. شما باید تمام وابستگی های ورود به سیستم را در مدل های خود تزریق کنید. از آنجا که ورود به سیستم چیزی نیست که یک مدل دامنه باید به آن اهمیت دهد ، این نمونه ای از یک نیاز غیر کاربردی و یک نگرانی به اصطلاح متقابل است.مثال: ورود به سیستم با AOP (your class):ورود به سیستم با AOP (your class)اکنون ورود به سیستم از جنبه AOP انجام شده است. این فقط یک کلاس است که با aspectبرچسب گذاری شده است و روشی که عملکرد خاص را اجرا می کند ، قبل از مشاوره. عبارت پس از برچسب Before به چارچوب AOP می گوید که این روش باید این عمل را اعمال کند. آن را بیان Pointcut می نامند و حتی برای سناریوهای پیچیده امکانات زیادی نیز دارد.مثال: ورود به سیستم با AOP (جنبه):ورود به سیستم با AOP (جنبه)همانطور که می بینید مشاوره با اطلاعات مربوط به کلاس ، آرگومان های روش و روش ، دسترسی کامل به تماس روش واقعی ، نقطه پیوستن ، با اطلاعات در مورد کلاس دارد.برنامه نویسی مبتنی بر شکست (FragOP):FragOP چارچوبی است که برای طراحی و اجرای اجزای دامنه SPL استفاده می شود. این ترکیبی بین رویکردهای ترکیبی و حاشیه نویسی است و براساس تعریف (i) مؤلفه های دامنه ، (ب) نقاط تکه تکه شدن ، که حاشیه نویسی بر روی کد اجزای دامنه هستند.و (iii) قطعات ، نوع جدیدی از پرونده که کد اجزای دامنه را تغییر می دهد. این سه مفهوم مربوط به شش فعالیت است که فرآیند فرایند را تشکیل می دهند : (1) مدل سازی الزامات PL ، (2) اجزای دامنه مدل سازی ، (3) اجزای دامنه ، (4) الزامات الزامات دامنه و اجزای دامنه ، (5) پیکربندی محصولات و (6) محصولات مشتق شده.ابزارهای ایجاد خط تولید نرم افزار:· Gears: Gears ابزار خط تولید نرم افزاری است که توسط Biglever Software Inc[9] توسعه شده. Gears چارچوب چرخه زندگی نرم افزار(SPL) خطوط چرخه زندگی است که تمام قابلیت های ابزار SPL را در طول چرخه عمر توسعه نرم افزار فراهم می کند. زبان مدل Gears Language به معماران نرم افزاری دسترسی می دهد تا ویژگی های مشابه و متفاوت را در قالب یک مدل نشان دهند که محصولات موجود در نمونه کارها را متمایز می کند. برای هر محصول مشخصات ویژگی به طور جداگانه در نمونه کارها ایجاد می شود.· VariaMos:یک افزونه Eclipse برای مشخصات ، تأیید خودکار ، تجزیه و تحلیل ، پیکربندی و ادغام مدل های خط تولید چند منظوره است. از دیدگاه استقرار ، Variamos یک افزونه Eclipse است که با استفاده از سوکت با GNU Prolog [3] ارتباط برقرار می کند. ابزار Variamos ، مستندات آن و آموزش ویدیویی بصورت آنلاین در دسترس است.عملکرد:o ادغام مدلهای تنوع با استفاده از برنامه های محدودیتo تأیید مدل های تنوعo اجرای عملیات تجزیه و تحلیلVariamos در سالهای اخیر در چندین پروژه و رویکرد SPLمورد استفاده قرار گرفته است. این ابزار شامل یک زبان برای نمایندگی و شبیه سازی خانواده های سیستم ها و (خود) سیستم های سازگار است. ما از برخی از قابلیت های Variamos مانند: مدل سازی نیاز به خط محصول و شبیه سازی محصول استفاده کردیم. و ما با قابلیت های جدید برای پشتیبانی از فرآیند FragOP ، Variamos را بهبود بخشیدیم: (1) مدل سازی اجزای دامنه ، (2) مدل مورد نیاز خط تولید (یا بافته) مدل مورد نیاز خط تولید و مدل کامپوننت دامنه ، (3) محصولات جدید را از مدل های دامنه پیکربندی می کند ، (4) محصولات پیکربندی شده را استخراج کنید ، و (5) مدل های دامنه و محصولات مشتق شده را تأیید کنید. فعالیت های فرآیند FragOP در دو بخش بعدی توضیح داده شده و نمونه ای از آنها در یک لباس ساده است.· Variant:توسط سیستم های خالص GMBH توسعه یافته است و از تمام مراحل توسعه نرم افزار از مشخصات الزامات تا آزمایش موارد و نگهداری پشتیبانی می کند. ماژول های این ابزار برای برآورده کردن نیازهای سیستم های تعبیه شده طراحی شده اند. الزامات در قالب مدل های ویژگی ای که محصولات فردی را در SPL نشان می دهد بیان شده است. نمایش مدلهای ویژگی به توسعه دهنده ذینفع ، کاربر ، مشتری و غیره بستگی دارد. راه حل طراحی مدل ویژگی انجام می شود و در خانواده مدل ها گنجانده می شود که می توانند به طور خودکار پردازش شوند. چندین سطح برای مدلهای خانوادگی وجود دارد و بالاترین سطح توسط مؤلفه ها ساخته شده است که راه حل یک یا چند ویژگی کاربردی را به شکل قطعات منطقی محصول (کلاس ها ، توابع و غیره) ارائه می دهد.برخی از شرکت‌های که از خط تولید نرم‌افزار استفاده می‌کنند:· BoTree Technologies· Cognizant· TechMahindra· HTD Health· Techahead· HCL Technologies· Fingent· Capgemini· Saigon Technology· Railswareنتیجه گیریدر دنیای فناوری محور ما اکنون زندگی می کنیم ، اندازه و پیچیدگی سیستم های نرم افزاری به همراه زمان بحرانی بازار نیاز به تقاضای رویکردهای جدید مهندسی نرم افزار برای توسعه نرم افزار دارد. قابل توجه در بین این رویکردها ، استفاده از مهندسی خط تولید نرم افزار (SPLE) است که به طور گسترده مورد مطالعه و پذیرش در تحقیق و عمل قرار می گیرد. انگیزه های پشت سر هم ، استفاده مجدد از دانش و عناصر نرم افزاری در هنگام توسعه نرم افزار بتونی برای سیستم های جدید و در نتیجه برداشت از پس انداز بالقوه از طریق کاهش زمان چرخه ، هزینه ، ریسک و افزایش کیفیت برای کمک به تکامل مجموعه ای از سیستم ها و دستیابی به استاندارد سازی محصول است. واد اگرچه پذیرش طحال ممکن است برای یک سازمان فواید زیادی داشته باشد ، اما این امر به معنای چندین چالش است. از جمله آنها نیاز به سرمایه گذاری اولیه هزینه است. طرحی در تلاش برای از بین بردن کپی کردن نقص ها بسیار طولانی است زیرا مورد با رویکرد سنتی مهندسی نرم افزار است (بیشتر مواقعی که یک جزء کپی می شود هر نقص موجود در امتداد کپی می شود).منابع:1. Adekola Olubukola Daniel, Omotosho Olawale J., Olaniyan Oluwabunmi Omobolanle. “economic impact of software product line engineering method– a survey”. International Journal of Advanced Research in Computer Science, Volume 11, No. 5, September-October 20202. Apel, Sven, Don Batory, Christian Kästner, and Gunter Saake. Feature-oriented software product lines. Springer-Verlag Berlin An, 20163. Paulo Borba, Leopoldo Teixeira, Rohit Gheyi. “a theory of software product line refinement”. theoretical computer science, 12 october 2012volume 455pages 2-304. Gabriella Castro B. Costaa, Regina Bragaa, José Maria N. Davida, Fernanda Camposa, Wagner Arbexb. “Pl-science: a scientific software product line”. Procedia Computer Science 2013, volume 18, pages 759-7685. https://t4tutorials.com/software-product-line-examples/6. https://resources.sei.cmu.edu/library/asset-view.cfm?assetid=5138197. https://www.redalyc.org/journal/496/49658894010/html/8. https://flowframework.readthedocs.io/en/stable/TheDefinitiveGuide/PartIII/AspectOrientedProgramming.html9. https://biglever.com/10. Jens Meinicke, Thomas Thüm, Reimar Schröter, Fabian Benduhn, Gunter Saake, “An Overview on Analysis Tools for Software Product Lines”, University of Magdeburg, Germany11. Sven Apel, Christian Kastner, “An Overview of Feature-Oriented Software Development”. Jounal of object technology, Vol. 8, No. 4, July-August 2009.12. Qaiser Munir, Muhammad Shahid, “Software Product Line: Survey of Tools”. Department of Computer and Information Science, LIU-IDA/LITH-EX-A—10/026—SE, 2010-06-0713. Mikoláš Janota, Joseph Kiniry, Goetz Botterweck, “Formal Methods in Software Product Lines: Concepts, Survey, and Guidelines”. 12 March 2008.14. Alves, V., Niu, N., Alves, C., Valença, G., 2010. Requirements engineering for software product lines: a systematic literature review. Inf. Softw. Technol. 52 (8), 806–820.15. Bano, M., Zowghi, D., Ikram, N., 2014. Systematic reviews in requirements engineer- ing: atertiary study. In: International Workshop on Empirical Requirements En- gineering, pp. 9–16.16. Ali, M., Babar, M., Schmid, K. (2009). A comparative survey of economic models for software product lines. In: Software Engineering and Advanced Applications. pp. 275-278.17. Michael Weiss (2011), Economics of Software Product Development Collectives. Technology Innovation Management Review. October 2011: 13-18.18. H. Lee, H. Choi, K. Kang, D. Kim, and Z. Lee, ‘‘Experience Report on Using a Domain Model-Based Extractive Approach to Software Product Line Asset Development’’, in Formal Foundations of Reuse and Domain Engineering (ICSR 2009), 2009, vol. 5791, pp. 137–149.19. X. Peng, Y. Yu, and W. Zhao, ‘‘Analyzing evolution of variability in a software product line: From contexts and requirements to features’’, Information and Software Technology, vol. 53, no. 7, pp. 707–721, Jan. 2011.[1] Software product line[2] Domain Engineering[3] Application Engineering[4] Feature Oriented Programming[5] Aspect Oriented Programming[6] Fragment Oriented Programming[7]Configuration[8]modularاین مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است#معماری_نرم_افزار_بهشتی</description>
                <category>عدی الحمود نصر</category>
                <author>عدی الحمود نصر</author>
                <pubDate>Wed, 08 Feb 2023 15:41:21 +0330</pubDate>
            </item>
                    <item>
                <title>BRMS</title>
                <link>https://virgool.io/@oudaynasser3/brms-fa3unadhlxyb</link>
                <description>Business Rule Management System BRMSمدیریت قوانین کسب و کار خلاصه ای از تلاش های انجام شده برای ایجاد، مدیریت و خودکارسازی قوانین کسب و کار با هدف دستیابی سریعتر و با منابع کمتر به اهداف سازمان است. قوانین کسب و کار، در همین راستا، بیانیه هایی هستند که خط مشی یک کسب و کار/سازمان را به بلوک های ساختمانی اساسی مورد نیاز برای دستیابی به هدفشان ساده می کنند. قوانین تجاری نحوه انجام وظایف و به طور کلی نحوه اجرای بخش ها و عملکردهای خاص در یک سازمان را مشخص می کند. مدیریت قوانین کسب و کار نحوه اداره سازمان ها را تعریف می کند و دستیابی به اهداف در مقیاس را بدون نیاز به ارتباط با مقامات مربوطه در سازمان هر بار ممکن می سازد. در اصل، مدیریت قوانین کسب‌وکار سیاست‌هایی را اتخاذ می‌کند و آن را در خلبان خودکار اجرا می‌کند، بنابراین در صورت لزوم استفاده از آن آسان‌تر است. در این مقاله، ما بررسی می‌کنیم که مدیریت قوانین کسب‌وکار و BRMS (سیستم مدیریت قوانین کسب‌وکار) دقیقاً چه معنایی برای سازمان شما دارند، چگونه می‌توانند به شما کمک کنند تا نتایج بهتری را سریع‌تر به دست آورید، و چگونه با فرآیندهای شما برای نتایج بهتر همگام‌سازی می‌شوند.قوانین تجارت چیست؟قوانین تجاری یک سازمان، اقدامات آن را تعریف و/یا محدود می کند. قوانین تجاری یک سازمان اهداف آن را مشخص می کند و دستورالعمل هایی را برای چگونگی انجام فرآیندها ارائه می دهد. قوانین کسب و کار اغلب در بسیاری از سازمان ها غیر رسمی و غیر رسمی هستند. کارکنان در این سازمان ها وظایف شغلی خود را درک می کنند و آن را بر اساس درک ریشه ای خود انجام می دهند.مورد مشتری را در نظر بگیرید که می خواهد محصولی را برگرداند. در اینجا چند نمونه از قوانین تجاری وجود دارد که نحوه پردازش بازده را تعیین می کند:سناریوی اول به شرح زیر است:مشتری ظرف 30 روز محصول را سفارش داده است.بازپرداخت کامل را به مشتری ارائه دهید.سناریوی دوم به شرح زیر است:مشتری این محصول را بیش از 30 روز پیش سفارش داده است.اعتبار فروشگاه را به مشتری ارائه دهید.ناکارآمدی ها و ناهماهنگی ها توسط قوانین تجاری غیرمستند ایجاد می شود. فرآیندهای تجاری یک سازمان به طور رسمی از طریق مدیریت قوانین تجاری تعریف می شود. مدیریت قوانین کسب و کار تضمین می کند که همه اعضای یک سازمان از اهداف و فرآیندهای تجاری آگاه هستند. به این ترتیب، سازمان‌ها می‌توانند عملیات خود را افزایش دهند و در عین حال سطح بالایی از استقلال را برای کارکنان فراهم کنند.سیستم مدیریت قوانین کسب و کار (BRMS) چیست؟BRMS ها راه حل های نرم افزاری هستند که قوانین تجاری و منطق تصمیم را تعریف، استقرار، اجرا، نظارت و مدیریت می کنند. فرآیندهای تجاری یک سازمان با یکBRMS خودکار می شوند. قوانین کسب و کار را می توان با راه حل های تکنولوژیکی مرتبط کرد که عملکردهای مورد نیاز را از طریق یک BRMS انجام می دهد، که می تواند بین روابط بین قوانین تجاری تمایز قائل شود.اجزای یک BRMSسه جزء اصلی یک BRMSوجود دارد:یک محیط توسعهقوانین تجاری باید در یک زبان برنامه نویسی شرطی بیان شوند تا توسط برنامه های کاربردی خودکار قابل خواندن باشند. واجد شرایط منطقی مورد استفاده در پروژه های کدنویسی عبارتند از: &quot;IF-THEN&quot;، &quot;IF-ELSE&quot;، &quot;ONLY IF&quot;، &quot;WHEN&quot; و غیره.قوانین کسب و کار را می توان به زبان شرطی با استفاده از محیط توسعه کم کد یا بدون کد BRMS نوشت. دوباره درخواست بازپرداخت مشتری که در بالا ذکر شد را در نظر بگیرید. در اینجا مثالی از نحوه بیان این قانون به صورت مشروط آورده شده است:اگر مشتری کمتر از 30 روز قبل محصولی را سفارش داده باشد، محصول باید مسترد شود. از طرف دیگر، می توانید اعتبار فروشگاه را ارائه دهید.Translation is too long to be savedBRMSچگونه کار می کند؟ ابزارهای مختلف BRMSعملکردهای متفاوتی را ارائه می دهند، اما سه جزء اصلی یک BRMS وجود دارد: محیط توسعه قوانین کسب و کار که به کاربران فنی و غیر فنی امکان ایجاد یا به روز رسانی قوانین تجاری را می دهد. مخزن قوانین کسب و کار که قوانین کسب و کار ایجاد شده را ذخیره می کند و به برنامه های سازمانی اجازه دسترسی به آنها را می دهد. موتور قوانین کسب و کار که درخواست‌های برنامه‌های کاربردی سازمانی را با داده‌های مرتبط دریافت می‌کند تا به قوانین تجاری مورد نیاز دسترسی پیدا کند، تصمیمی را بر اساس درخواست و قوانین تجاری مربوطه ارائه دهد و تصمیم را در یک محیط زمان اجرا اجرا کند. مقاله ما در مورد موتورهای قوانین کسب و کار را برای توضیح جامع تر از آنها بررسی کنید. به عنوان مثال، کاربران تجاری می توانند قوانین تجاری را تعیین کنند که بر نحوه قیمت گذاری یک محصول حاکم است و آنها را در انبار قوانین تجاری یک BRMS ذخیره کنند. این قوانین می توانند قیمت محصول را بسته به عوامل خارجی مانند قیمت رقبا و رفتار مشتری یا اصول داخلی مانند &quot;اگر قیمت محصول در 10 دقیقه گذشته تغییر کرده است، آن را تغییر ندهید&quot; تنظیم می کند. سپس، یک سیستم قیمت‌گذاری پویا می‌تواند داده‌های قیمت‌گذاری دریافتی را به BRMSارسال کند، که درخواست و داده‌های دریافتی را بر اساس قوانین تجاری مرتبط ارزیابی می‌کند و با استفاده از موتور قوانین تجاری خود، قیمت محصول را تعیین می‌کند. این ویژگی‌های سیستم‌های مدیریت قوانین کسب‌وکار به کسب‌وکارها اجازه می‌دهد تا منطق کسب‌وکار را از کد منبع سایر برنامه‌های کاربردی سازمانی جدا کنند. این به کاربران تجاری در سراسر بخش‌ها امکان می‌دهد قوانین کسب‌وکار مرتبط با عملکرد خود را ایجاد، تغییر و اجرا کنند و تصمیم‌گیری را بدون نیاز به نوشتن کد یا درگیر کردن IT خودکار کنند. از موارد BRMS استفاده کنید پردازش درخواست وام با استفاده از BRMS، وام دهندگان می توانند قوانین تجاری را ایجاد کنند که بر جنبه های مختلف فرآیند درخواست وام، از معیارهای واجد شرایط بودن گرفته تا آستانه امتیاز اعتبار، حاکم است. این رویکرد ساده به کاهش زمان پردازش و بهبود کارایی کلی کمک می کند و در نتیجه تجربه مشتری بهتری را به همراه دارد. انطباق با مقررات کسب و کارها می توانند از BRMSبرای موارد زیر استفاده کنند: استانداردهای داخلی و خارجی را که باید به عنوان قوانین تجاری رعایت کنند، تعریف و ذخیره کنید. در صورت نیاز تغییراتی در قوانین آنها ایجاد کنید، ردیابی معیارهای مربوط به قوانین، اطمینان حاصل کنید که آنها همیشه به روز هستند. یک BRMS می‌تواند به کسب‌وکارها کمک کند تا استانداردهای انطباق را با خودکارسازی فرآیندهای انطباق، ارائه دید کاربران به قوانین خود، و کمک به آنها در شناسایی سریع هر گونه مشکلی که ممکن است ایجاد شود، برآورده کنند. برای اطلاعات بیشتر در مورد اتوماسیون حسابرسی، مقالات ما را در مورد اتوماسیون هوشمند در حسابرسی و هوش مصنوعی در حسابرسی بررسی کنید. تشخیص تقلب با استفاده از BRMS و الگوریتم‌های تشخیص تقلب، کسب‌وکارها می‌توانند به طور خودکار داده‌های دریافتی را ارزیابی کنند، موارد بالقوه کلاهبرداری را شناسایی کرده و بر اساس آن اقدام کنند. این امر به کسب‌وکارها امکان می‌دهد تا فعالیت‌های متقلبانه را به طور مؤثرتری شناسایی و از آن جلوگیری کنند و زیان‌های مالی ناشی از تقلب را کاهش دهند. صلاحیت رهبری تیم‌های فروش می‌توانند ابزارهای صلاحیت سرنخ خود را با یک سیستم مدیریت قوانین کسب‌وکار یکپارچه کنند تا امتیاز هر سرنخ را به‌طور خودکار محاسبه کنند، مشخص کنند که آیا واجد شرایط هستند یا نه، و روشی را برای دستیابی به سرنخ‌های واجد شرایط با توجه به امتیازاتشان مشخص کنند. استخدام یک BRMS می تواند پرسنل منابع انسانی را قادر به ایجاد و مدیریت قوانین تجاری کند که بر نحوه ارزیابی، انتخاب و استخدام نامزدها نظارت می کند. یک سیستم ردیابی متقاضی می تواند از مخزن BRMS به قوانین تجاری حاکم بر فرآیند استخدام دسترسی داشته باشد و درخواست های شغلی را به صورت خودکار پردازش کند.Translation is too long to be savedمزایای BRMS یک سیستم مدیریت قوانین کسب و کار به مشاغل کمک می کند: دستیابی به اتوماسیون تصمیم گیری، زیرا به کاربران فنی و غیر فنی اجازه می دهد تا قوانین تجاری را در یک چارچوب واحد بنویسند و آنها را برای خودکارسازی فرآیندهای تجاری که نیاز به تصمیم گیری دارند، به کار گیرند. ثبات در تصمیم گیری در سراسر شرکت را بهبود بخشید زیرا منطق تجاری بیان شده در قوانین تجاری را متمرکز می کند. چابکی کسب و کار را افزایش دهید زیرا به متخصصان موضوع غیر فنی (SMEs) اجازه می دهد قوانین تجاری را در حوزه عملکرد تجاری خود بدون دخالت فناوری اطلاعات ایجاد و مدیریت کنند. پیچیدگی را کاهش دهید زیرا منطق تجاری را از کد برنامه های کاربردی سازمانی جدا می کند.موتور قوانین کسب و کاردر هسته BRMS، همانطور که پایگاه داده در هسته یک سیستم مدیریت پایگاه داده (DBMS) قرار دارد، یک موتور قوانین تجاری است. موتور قوانین کسب و کار که به عنوان موتور استنتاج نیز شناخته می شود، جزء یک سیستم خبره است. سیستم های خبره و موتورهای استنتاج زیربنایی آنها، اولین اشکال هوش مصنوعی (AI) بودند.یک موتور قوانین کسب و کار ممکن است به عنوان یک سیستم مستقل وجود داشته باشد، که ممکن است با یک BRMS یکپارچه شود، همانطور که یک پایگاه داده ممکن است به عنوان یک برنامه کاربردی مستقل وجود داشته باشد که می تواند با یک یا چند DBMS یکپارچه شود.موتورهای قوانین کسب و کار، از جمله موارد دیگر، امکان تعریف، مدیریت و اجرای قوانین تجاری را فراهم می کنند. یک موتور قوانین حاوی قوانینی است که خارج از برنامه کاربردی که از آنها استفاده می کند.یک مثال شبه کد از یک قانون تجاری:اگر کاربر عضو باشگاه پلاتینیوم باشدسپس 20 درصد تخفیف اعمال کنیدیا یه چیز دیگه5 درصد تخفیف اعمال کنیدموتورهای قوانین کسب و کار به طور کلی یکی از روش‌های استنتاج زیر را پیاده‌سازی می‌کنند: زنجیره‌سازی به عقب یا زنجیره‌ای رو به جلو.استنباط زنجیره ای عقبگردزنجیره‌سازی به عقب با فهرستی از اهداف (یا یک فرضیه) شروع می‌شود و برعکس نتیجه بند IF کار می‌کند تا ببیند آیا داده‌هایی برای پشتیبانی از پیامد بند IFوجود دارد یا خیر.استنتاج زنجیره‌ای رو به جلوبا زنجیره‌سازی رو به جلو، موتور قواعد کسب‌وکار از طریق یک فرآیند تا رسیدن به هدف تکرار می‌شود. در میان حقایق شناخته شده جستجو می کند تا زمانی که بند IF درست شناخته شود. هنگامی که چنین قاعده ای یافت می شود، موتور می تواند نتیجه را استنباط کند و در نتیجه اطلاعات جدیدی به داده های خود اضافه می کند.به عنوان مثال، فرض کنید هدف نتیجه گیری تعداد پاهای حیوان خانگی به نام فرانک است، با توجه به اینکه او پارس می کند و استخوان های شیر را می خورد. و فرض کنید پایه قانون شامل چهار قانون زیر باشد:اگر X پارس کند و استخوان شیر بخورد، X سگ است.اگر X  جیغ بزند و X  کرم بخورد، پس X پرنده است.اگر X یک سگ است، X دارای چهار پا است.اگر X پرنده است، X است که دو پا دارد.حقایق زیر را فرض کنید:فرانک پارس می کندفرانک استخوان های شیر را می خوردبا زنجیره‌سازی رو به جلو، موتور قوانین کسب‌وکار می‌تواند به این نتیجه برسد که فرانک دارای چهار پا در یک سری مراحل است. از آنجایی که حقایق پایه نشان می‌دهند که «فرانک پارس می‌کند» و «فرانک استخوان‌های شیر را می‌خورد»، پیش‌فرض (بند IF) قانون شماره 1 با جایگزینی فرانک به جای X برآورده می‌شود و موتور استنتاج نتیجه می‌گیرد: فرانک یک سگ است. و علاوه بر این، نتیجه قانون سه، جایگزینی فرانک با X، این است که فرانک چهار پا دارد.اکثر موتورهای قوانینی که توسط کسب و کارها استفاده می شود، زنجیره جلو هستند، که بیشتر به دو دسته تقسیم می شوند:موتورهای قوانینی که قوانین تولید/استنتاج را پردازش می کنند. این نوع قوانین رفتارهای شرایط پیشین/نتیجه (IF-THEN) را نشان می دهند. به عنوان مثال، یک قانون می تواند به این صورت اعمال شود: &quot;آیا این مشتری باید کارت اعتباری داشته باشد؟&quot; با اجرای قانونی به شکل «اگر امتیاز اعتبار مشتری &gt; 700 باشد، به مشتری کارت اعتباری اجازه دهید».نوع دیگر موتور استنتاج آنچه را که به عنوان قواعد کنش شرایط واکنش/رویداد نامیده می شود پردازش می کند. موتور قواعد واکنشی رویدادهای ورودی را شناسایی کرده و به آنها واکنش نشان می دهد و الگوهای رویداد را پردازش می کند. به عنوان مثال، یک موتور قانون واکنشی می تواند برای هشدار به پزشک استفاده شود، زمانی که یک بیمار خاص در حال مصرف داروی خاصی است که به دلیل آلودگی توسط یک سازنده فراخوان شده است.الگوریتم Reteالگوریتم Rete یک الگوریتم تطبیق الگو است که با اجرای سیستم قوانین تولید استفاده می شود. با استفاده از ذخیره‌سازی داده‌های سیستم، برای تعیین اینکه کدام قانون باید اجرا شود، استفاده می‌شود. حتی یک مجموعه قوانین با اندازه متوسط، از عبارات IF-THEN و یک پایگاه دانش مربوطه، می تواند در مقیاس بسیار کند عمل کند. الگوریتم Rete که برای اولین بار در یک مقاله کاری در سال 1974 در دانشگاه کارنگی ملون منتشر شد، مبنایی را برای اجرای کارآمد فراهم می‌کند و زیربنای بسیاری از پیاده‌سازی‌های مدرن موتورهای قوانین تجاری است.چالش ها و فرصت های پیاده سازیقوانین تجاری در این شرایط جمع آوری می شوند:وقتی توسط قانون یا سازمان نظارتی دیکته می شوددر طی یک تحلیل تجاریبه عنوان کمکی به مهندسانیک رویکرد ثابت اغلب در تعریف و مستندسازی قوانین تجاری وجود ندارد. این ممکن است به دلایل مختلفی رخ دهد، از جمله، اما نه محدود به:نیاز به رویکرد چند رشته ای برای تعریف فرآیند کسب و کارتلاش زیادی که برای حفظ فهرست قوانین لازم استهزینه نگهداری لیست در شرایطی که قوانین به سرعت در حال تغییر هستند افزایش می یابددر حال حاضر هیچ استاندارد پذیرفته شده در سطح صنعت برای کمک به جمع آوری و مستندسازی قوانین تجاری وجود ندارد. اما در حال حاضر چندین رویکرد مدلسازی وجود دارد، مانند:زبان مدلسازی یکپارچهنماد Zزبان اجرای فرآیند کسب و کارنماد مدل سازی فرآیند کسب و کارمدل تصمیم گیری و نمادگذاریمعناشناسی واژگان تجاری و قوانین تجارتفرصت‌های تحقیقاتی UX و فرصت‌های طراحی UI در سه حوزه خاص در حوزه سیستم‌های مدیریت قوانین تجاری وجود خواهد داشت.تعریف قانون و نگهداری: فرآیندهای کسب و کار اغلب تجربیات کاربر هستند. پزشک UXTranslation is too long to be savedمزایای سیستم مدیریت قوانین کسب و کار (BRMS)با یک BRMS، قوانین در یک مخزن مرکزی جدا از کدهای برنامه ذخیره می شوند. مخزن یک منبع واحد از حقیقت را برای قوانین تجاری ایجاد می کند که برای همه برنامه های کاربردی در سراسر سازمان قابل دسترسی است. در نتیجه، قوانین تجاری مقیاس پذیر هستند و تصمیمات تجاری همیشه به روز، سازگار و قابل اعتماد هستند. اتوماسیون کارآمد: BRMS ها برای اتوماسیون کارآمد گردش کار سازمانی ضروری هستند. گردش کار چندگانه را می توان با استفاده از یک مخزن منفرد از منطق تصمیم گیری در سطح شرکت خودکار کرد. به این ترتیب، IT مجبور نیست برای هر برنامه برنامه ریزی منطقی تصمیم گیری متفاوتی بنویسد. نتایج سازگارتر: زمانی که تصمیمات تجاری بر اساس یک سیستم مجموعه ای از قوانین تجاری در سطح سازمانی خودکار می شوند، همه تصمیمات بر اساس منطق یکسان گرفته می شوند. این منجر به نتایج منسجم تری می شود، زیرا تصمیمات تجاری دیگر تحت تأثیر اختیارات انسانی قرار نمی گیرند مگر در موارد ضروری. کاهش پیچیدگی: هنگام مواجهه با تصمیمات تجاری، کارگران انسانی مجبور نیستند عوامل متعددی را بسنجید یا از رعایت هر قانون اطمینان حاصل کنند. در عوض، برنامه ها می توانند با BRMSبررسی کنند، که از پایگاه داده قوانین تجاری برای تعیین نتیجه مناسب استفاده می کند. تصمیم‌گیری‌ها سریع‌تر اتفاق می‌افتند و کارمندان آزاد می‌شوند تا کارهای با ارزش بیشتری انجام دهند. کاهش وابستگی به IT: ابزارهای بدون کد در BRMS به تحلیلگران کسب و کار و سایر کارکنان غیر فنی اجازه می دهد تا قوانین تجاری را با استفاده از واژگان تجاری خود ایجاد کنند. این بدان معناست که تیم‌ها می‌توانند قوانین را در صورت نیاز ایجاد و تنظیم کنند و نیازی به دخالت فناوری اطلاعات در هر به‌روزرسانی ندارند. تصمیمات پاسخگوتر: قوانین را می توان به راحتی در مخزن BRMS به روز کرد زیرا مدیریت قوانین نیازی به تغییر کد برنامه های موجود ندارد. بنابراین، قوانین را می توان به راحتی در پاسخ به مقررات جدید، تحولات بازار، تقاضای مشتری و سایر عوامل تغییر داد. انطباق خودکار: خط‌مشی‌ها و مقررات مربوطه را می‌توان در قوانین کسب‌وکار گنجاند و اطمینان حاصل کرد که تصمیم‌گیرندگان خودکار از همه قوانین و دستورالعمل‌های مربوطه پیروی می‌کنند. این همچنین یک مسیر حسابرسی ایجاد می کند، زیرا قوانین منتهی به هر تصمیم تجاری خاص همیشه قابل بررسی هستند. قوانین کسب و کار بهتر به طور کلی: به لطف توانایی اجرای شبیه‌سازی‌های پیش‌بینی قوانین قبل از اجرای آن‌ها، تیم‌ها می‌توانند اطمینان حاصل کنند که قوانین کسب‌وکار که ایجاد می‌کنند، نتایجی را که می‌خواهند، قبل از اجرا دارند.ابزارهابسیاری از ابزارهای BRMS در دسترس است:IBM’s ODMبه شما کمک می کند تا تصمیمات تجاری مبتنی بر قوانین را تجزیه و تحلیل ، خودکار و اداره کنید. این راه حل می تواند وام را مجاز کند ، در مورد پیشنهادات تبلیغاتی تصمیم بگیرد یا یک فرصت متقابل فروش را با دقت و سفارشی سازی بالا تشخیص دهد.Blaze Adivsorکنترل تصمیمات عملیاتی با حجم بالا را به حداکثر می رساند. Blaze Adivsor با یک راه حل مقیاس پذیر ، مشاغل مختلفی را در صنایع مختلف فراهم می کند که چابکی و عمل بی سابقه ای را برای تصمیمات باهوش تر ، شفاف و بهتر در تجارت ارائه می دهد. Blaze Advisor به کاربران مشاغل با روش های مختلف برای نویسندگی قانون ، آزمایش ، استقرار و مدیریت - از جمله درختان تصمیم گیری ، کارت امتیازی ، جداول تصمیم گیری ، جریان تصمیم گیری گرافیکی و الگوهای سفارشی ، توانمند می کند.JBoss Droolsیک راه حل سیستم مدیریت قوانین تجاری (BRMS) است. این یک موتور اصلی قوانین کسب و کار (BRE) ، یک برنامه مدیریت و مدیریت قوانین (Drools Workbench) ، پشتیبانی کامل از زمان برای مدل تصمیم گیری و نماد (DMN) در سطح سازگاری سطح 3 و یک افزونه ECLIPSE IDE برای توسعه هسته را فراهم می کند. Drools نرم افزار منبع باز است که تحت مجوز Apache 2.0 منتشر شده است. این در 100 ٪ جاوا خالص نوشته شده است ، در هر JVM اجرا می شود و در مخزن مرکزی Maven نیز موجود است.Progress Corticonبرنامه های موجود خود را با خودکار کردن فرآیندهای تصمیم گیری پیشرفته ، کاهش توسعه و تغییر چرخه تا 90 ٪ تکمیل می کند. Corticon می تواند با سفارشی کردن سریع منطق کسب و کار ، چابکی و انعطاف پذیری را در پیشنهادات شما فعال کند ، به علاوه این قابلیت ها را سریعتر به بازار عرضه می کند.منابع:· https://www.quora.com/What-are-the-different-BRMS-Business-Rules-Management-System-tools-What-are-the-most-widely-used-BRMS-tool-amongst-by-business· https://www.fortra.com/resources/videos/brms-for-beginners· https://www.progress.com/faqs/corticon-faqs/what-is-a-business-rules-management-system· https://www.brmsonline.com/این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است#معماری_نرم_افزار_بهشتی</description>
                <category>عدی الحمود نصر</category>
                <author>عدی الحمود نصر</author>
                <pubDate>Fri, 30 Dec 2022 22:04:04 +0330</pubDate>
            </item>
                    <item>
                <title>Log management tools</title>
                <link>https://virgool.io/@oudaynasser3/log-management-tools-am0mgddjp2je</link>
                <description>log management toolsچیست؟ابزارهای مدیریت logمحصولاتی هستند که داده های ورود به سیستم را متمرکز ، تجزیه و تحلیل ، تجسم و دفع می کنند. ابزارهای مدیریت ورود به سیستم مدیریت هشدار در زمان واقعی و نظارت بر عملکرد پویا را فراهم می کند تا سازمان ها باعث افزایش دید و بینش در مورد سلامت ، کارآیی و امنیت سیستم های خود شوند. همچنین می توان از نرم افزار مدیریت ورود به سیستم برای تمیز کردن ، تبدیل یا در غیر این صورت تنظیم داده های ورود به سیستم استفاده کرد.انواع log management tools:1. Application logs2. System logs3. Security logsفایده‌ها:· Resource Management· Application Troubleshooting· Regulatory Compliance and SIEM· Business Analytics· Marketing InsightsELKچیست؟یک راه حل تجزیه و تحلیل ورود به سیستم با سه مؤلفه نرم افزاری است: Elasticsearch ، Logstash وKibana  با هم همکاری ، این فناوری ها به تیم های DevOps و SecOpsاجازه می دهند تا داده های ورود به سیستم را در ابر جمع آوری ، جمع ، تجزیه و تحلیل و تجسم کنند و از عملکردهای مهم مانند نظارت بر برنامه و تجزیه و تحلیل امنیتی پشتیبانی کنند.مزایا ELK:· Free· Multiple Hosting Options· Centralized Logging Capabilities· Real-Time Data Analysis &amp; Visualizationمعایب ELK:· High Cost· Complex Management Requirements· Stability &amp; Uptime Issues· Data Retention Tradeoffs· Scaling Challengesمنابع:· https://www.tibco.com/blog/2013/08/02/pros-and-cons-of-4-log-management-strategies/· https://www.missioncloud.com/blog/log-management-use-cases-the-benefits-of-log-data· https://www.elastic.co/what-is/elk-stack#تکلیف درس معماری نرم افزار در دانشگاه شهید بهشتی</description>
                <category>عدی الحمود نصر</category>
                <author>عدی الحمود نصر</author>
                <pubDate>Mon, 28 Nov 2022 23:29:58 +0330</pubDate>
            </item>
                    <item>
                <title>container orchestration</title>
                <link>https://virgool.io/@oudaynasser3/container-orchestration-syhuwbdtcycj</link>
                <description>container orchestration چیست؟اتوماسیون بسیاری از تلاشهای عملیاتی مورد نیاز برای اجرای بارهای کاری و خدمات کانتینر شده است. این شامل طیف گسترده ای از مواردی است که تیم های نرم افزاری برای مدیریت چرخه عمر یک کانتینر ، از جمله تأمین ، استقرار ، مقیاس گذاری (بالا و پایین) ، شبکه سازی ، تعادل بار و موارد دیگر نیاز دارند.container orchestration چرا؟از آنجا که ظروف از نظر طبیعت سبک و زودگذر هستند ، اجرای آنها در تولید به سرعت می تواند به یک تلاش گسترده تبدیل شود.فایده‌ها:1. Simplified operations2. Resilience3. Added securityمزایا:· Flexibility· Ease of Management· Speed of Transportation· Economies of Scale· Durability· Safety and Security· Standardizationمعایب:· Space Constraints· Infrastructure Costs· Container Management Failure· Re-positioning of Empty Containers· SmugglingKubernetes چیست؟Kubernetes یک بستر منبع باز محبوب برای ارکستراسیون کانتینر است. این برنامه نویسان را قادر می سازد تا به راحتی برنامه ها و خدمات کانتینر شده و همچنین مقیاس ، برنامه ریزی و نظارت بر آن ظروف را به راحتی بسازند.مولفه‌های اصلی Kubernetes:1. Cluster2. Control plane3. Kubelet4. Podمنابع:· https://www.vmware.com/topics/glossary/content/container-orchestration.html· https://www.capitalone.com/tech/cloud/what-is-container-orchestration/· https://www.redhat.com/en/topics/containers/what-is-container-orchestration· https://middleware.io/blog/what-is-container-orchestration/#تکلیف درس معماری نرم افزار در دانشگاه شهید بهشتی</description>
                <category>عدی الحمود نصر</category>
                <author>عدی الحمود نصر</author>
                <pubDate>Mon, 28 Nov 2022 22:11:52 +0330</pubDate>
            </item>
                    <item>
                <title>Docker</title>
                <link>https://virgool.io/@oudaynasser3/docker-lqy4v5razp8i</link>
                <description>Docker چیست؟یک بستر نرم افزاری است که به شما امکان می دهد برنامه ها را به سرعت بسازید ، آزمایش و مستقر کنید. Docker نرم افزار را در واحدهای استاندارد به نام ظروف بسته بندی می کند که همه چیز را برای اجرای نرم افزار از جمله کتابخانه ها ، ابزارهای سیستم ، کد و زمان اجرا دارند.چگونه کار میکند؟Docker با ارائه یک روش استاندارد برای اجرای کد شما کار می کند. Docker یک سیستم عامل برای ظروف است. مشابه نحوه مجازی سازی یک ماشین مجازی (نیاز به مدیریت مستقیم) سخت افزار سرور ، ظروف مجازی سیستم عامل یک سرور را مجازی می کند. Docker روی هر سرور نصب شده است و دستورات ساده ای را که می توانید برای ساخت ، شروع یا متوقف کردن ظروف استفاده کنید ، ارائه می دهد.Docker چرا؟· Ship More Software Faster· Standardize Operations· Seamlessly Move· Save Moneyمزایا:· بازده سرمایه گذاری و پس انداز هزینه· استقرار سریع· امنیت· سادگی و تنظیمات سریعتر· کارایی CI· ادغام مداوممعایب:· ویژگی های گمشده· داده های موجود در ظرف· برنامه های کاربردی را به سرعت به عنوان یک سرویس فلزی لخت اجرا کنید· سازگاری متقاطع را فراهم کنید· برنامه ها را با رابط های گرافیکی اجرا کنید· تمام مشکلات امنیتی خود را حل کنیدمنابع:· https://www.techtarget.com/searchitoperations/definition/Docker· https://data-flair.training#تکلیف درس معماری نرم افزار در دانشگاه شهید بهشتی</description>
                <category>عدی الحمود نصر</category>
                <author>عدی الحمود نصر</author>
                <pubDate>Mon, 28 Nov 2022 21:57:58 +0330</pubDate>
            </item>
                    <item>
                <title>Message Queue</title>
                <link>https://virgool.io/@oudaynasser3/message-queue-hrwe3kleh6db</link>
                <description>Message queue چیست؟صف پیام نوعی از ارتباطات سرویس به سرویس ناهمزمان است که در معماری های بدون سرور و میکروسرویس استفاده می شود. پیام ها تا زمان پردازش و حذف آنها در صف ذخیره می شوند. هر پیام فقط یک بار توسط یک مصرف کننده واحد پردازش می شود. از صف پیام می توان برای جدا کردن پردازش سنگین وزن ، برای بافر یا کار دسته ای استفاده کرد و بارهای کاری سنبله را صاف کرد.سبک‌های مختلف  Message queue:1. Point-to-point2. Publish/Subscribeانواع مختلف Message queue:Ø workstation message queueØ user profile message queueØ job message queueØ system operator message queueØ and history log message queue.مزایا:· پشتیبانی از بازیابی.· یکپارچگی داده.· امنیت.· برنامه ها می توانند اولویت را به یک پیام اختصاص دهند.· ارتباطات را می توان با وقایع هدایت کرد.· کار را می توان با برنامه های کوچک و خودمختار انجام داد.· ارتباط بین برنامه ها می تواند مستقل از زمان باشد.· هیچ ارتباط مستقیمی بین برنامه ها وجود ندارد.معایب:· Reduced system availability· Increased system complexity· Consistency problemمنابع:· https://blog.actorsfit.com/a?ID=01400-3cc2a873-d196-4d53-b750-cb29dc0013f0· https://www.ibm.com/docs/en/ibm-mq/7.5?topic=overview-introduction-message-queuing#تکلیف درس معماری نرم افزار در دانشگاه شهید بهشتی</description>
                <category>عدی الحمود نصر</category>
                <author>عدی الحمود نصر</author>
                <pubDate>Mon, 28 Nov 2022 21:41:30 +0330</pubDate>
            </item>
                    <item>
                <title>BRMS</title>
                <link>https://virgool.io/@oudaynasser3/brms-uibjdxll601y</link>
                <description>Business Rule Management Systemچیست؟یک سیستم فناوری است که برای ضبط منطق تصمیم گیری به عنوان یک قانون تجاری استفاده می شود ، که در آن زمان به صورت خودکار در برنامه ها می شود. به جای تعبیه قوانین به عنوان کد در چندین برنامه ، با BRMS ، قوانین خارج شده و به دور از کد برنامه مدیریت می شوند.Business Rule Management System چرا؟BRMS به شرکتها این امکان را می دهد تا قوانینی را برای هدایت گردش کار یک سیستم تعریف و حفظ کنند تا تعیین کنند که چه اقداماتی در هر شرایط مشخصی امکان پذیر است. این سیستم ها با منطق خارج از کد برنامه نویسی ، افزایش عمیقی را به چابکی تجارت ، بهره وری و دقت منطق ارائه می دهند - و با این کار ، پس انداز هزینه قابل اعتماد و قوانین سریعتر را در صورت لزوم تحویل می دهند.مولفه‌های Business Rule Management System:1. A development environment for defining and creating business rules2. A repository where rules are stored3. A business rules engineمزایا Business Rule Management System:· Efficient automation· More consistent outcomes· Reduced complexity· Reduced dependency on IT· Automated compliance· Better business rules overallمعایب Business Rule Management System:· کمبود منابع موجود در اجرای یک سیستم موفق BRMS ، یافتن پاسخ در وبلاگ ها ، آموزش های ویدئویی یا سرریز پشته دشوار است.· محبوب ترین BRMS اختصاصی است ، که به یک شرکت نیاز به خرید مجوز دارد و آزمایش آن را سخت می کند.· به توسعه دهندگان نیاز دارد تا آن را تنظیم کنند ، راه حل را برای پیروی از محدودیت های امنیتی ، مهاجرت قانون و ادغام آن با سیستم موجود ، سفارشی کنند.منابع:· https://en.wikipedia.org/wiki/Business_rule_management_system· https://www.processmaker.com/blog/what-is-a-business-rules-management-system-brms/#تكليف درس معماری نرم افزار در دانشگاه شهید بهشتی</description>
                <category>عدی الحمود نصر</category>
                <author>عدی الحمود نصر</author>
                <pubDate>Mon, 28 Nov 2022 21:23:50 +0330</pubDate>
            </item>
                    <item>
                <title>BPMS</title>
                <link>https://virgool.io/@oudaynasser3/bpms-hkjf7urlpkao</link>
                <description>BPMS چیست؟Business Process Management System یا Business Process Management Software ابزاری برای اجرای روش مدیریت برای بهبود فرآیندهای تجاری سازمان از طریق شناسایی، مدل سازی، اتوماسیون، تجزیه و تحلیل و اندازه گیری عملکرد است.چگونه کار میکند؟چند مرحله طی میکند وانها عبارتند از:1. Process definition and analysis2. Process design3. Automation4. AnalyticsBPMSچرا؟مشاغل برای حفظ مطالبات مدرن و تغییر محیط های تجاری باید فرایندها را خودکار کنند. BPMS به تعریف گردش کار و ایجاد فرآیندهای مربوط به هرگونه پیچیدگی برای خودکارسازی عملیات در چندین بخش کمک می کند. سیستم عامل های BPM فناوری اصلی را برای سازمانهایی که در حال تحول دیجیتالی هستند ، فراهم می کند و به آنها در تسریع در چرخه تحول ، نوآوری و سازگاری سریعتر کمک می کند.ویژگی‌های BPMS:· Process step prediction· Dynamic case management· Ready-to-use process library· Process monitoringمنابع:· https://en.wikipedia.org/wiki/Business_process_management#تکلیف معماری نرم‌افزار در دانشگاه شهید بهشتی</description>
                <category>عدی الحمود نصر</category>
                <author>عدی الحمود نصر</author>
                <pubDate>Mon, 28 Nov 2022 18:38:45 +0330</pubDate>
            </item>
                    <item>
                <title>API Gateway</title>
                <link>https://virgool.io/@oudaynasser3/api-gateway-fnsryggrsnal</link>
                <description>API Gateway چیست؟یک ابزار مدیریت API است که بین مشتری و مجموعه ای از خدمات backend قرار دارد.به عنوان یک پروکسی معکوس عمل می کند تا تمام تماس های رابط برنامه نویسی برنامه (API) را بپذیرد ، خدمات مختلف مورد نیاز برای تحقق آنها را جمع کند و نتیجه مناسب را برگرداند.چگونه کار می‌کند؟تمام تماس های API را از مشتری می گیرد ، سپس آنها را با مسیریابی درخواست ، ترکیب و ترجمه پروتکل به میکروسرویس مناسب هدایت می کند. به طور معمول با استناد به چندین سرویس دهنده و جمع آوری نتایج ، برای تعیین بهترین مسیر ، یک درخواست را انجام می دهد. این می تواند بین پروتکل های وب و پروتکل های وب دوستانه که در داخل مورد استفاده قرار می گیرند ، ترجمه شود.تفاوت بین API Gateway و Gateway API:API gateway یک ابزار مدیریت ترافیک است اما Gateway API یک تکامل مفهومی از API Ingressاست که توسط جامعه Kubernetes در دست توسعه است.API Gateway چرا؟چون بساری از اهداف را حل میکند از جمله:1. Authentication2. Different protocol3. Load-balancing4. Request dispatching5. Response transformation6. Circuit breakerمزایا:· میکروسرویس می تواند روی منطق تجارت تمرکز کند.· مشتریان می توانند تمام داده ها را در یک ضربه دریافت کنند.· احراز هویت ، ورود به سیستم و نظارت را می توان توسط دروازه APIانجام داد.· می تواند مطابق نیاز مشتری ، نتایج متناسب به دست آورد.· می تواند شکست جزئی را تحمل کند.معایب:· این می تواند به دلیل اتفاقات زیاد در دروازه API باعث تخریب عملکرد شود.· با این کار ، سرویس Discovery باید اجرا شود.· یک نقطه شکست.· Overhead از الگو.· افزودن hop شبکه اضافی در تماس.· پیچیدگی سیستم را افزایش می دهد.منابع:· https://www.redhat.com/en/topics/api/what-does-an-api-gateway-do· https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-overview-developer-experience.html· https://www.techtarget.com/whatis/definition/API-gateway-application-programming-interface-gateway· https://thenewstack.io/api-gateways-age-microservices/#تکلیف درس معماری نرم افزار در دانشگاه شهید بهشتی</description>
                <category>عدی الحمود نصر</category>
                <author>عدی الحمود نصر</author>
                <pubDate>Mon, 28 Nov 2022 18:16:38 +0330</pubDate>
            </item>
                    <item>
                <title>ESB</title>
                <link>https://virgool.io/@oudaynasser3/esb-gq2wud4qdrit</link>
                <description>ESB چیست؟Enterprise Service Bus نوعی از بسترهای نرم افزاری است که به عنوان Middleware شناخته می شود، که در پشت صحنه کار می کند تا به ارتباطات برنامه به کار کمک کند، و اطلاعات را از یک سیستم جمع می کند و آن را به دیگری تحویل می دهد. Enterprise Service Bus یک بستر ادغام استاندارد است که ترکیبی از پیام رسانی ، خدمات وب ، تحول داده ها و مسیریابی هوشمند است تا بتواند با اطمینان و هماهنگی تعامل تعداد قابل توجهی از برنامه های ناهمگن با یکپارچگی تراکنش ارتباط برقرار و هماهنگ کند.Enterprise Service Bus یک مدل معماری نرم افزاری که برای طراحی و اجرای ارتباط بین برنامه های نرم افزاری متقابل در یک معماری سرویس گرا (SOA) استفاده می شود.چرا ESB؟افزایش چابکی سازمانی با کاهش زمان برای بازاریابی برای ابتکارات جدید یکی از مهمترین دلایلی است که شرکت ها ESB را به عنوان ستون فقرات زیرساخت های فناوری اطلاعات خود پیاده سازی می کنند. یک معماری ESB با ارائه یک سیستم ساده و خوب تعریف شده &quot;Pluggable&quot; که واقعاً خوب است ، این کار را تسهیل می کند. علاوه بر این ، ESBراهی برای استفاده از سیستم های موجود شما و در معرض برنامه های جدید با استفاده از قابلیت های ارتباطی و تحول آن فراهم می کند.معروف‌ترین پیاده سازی های ESB؟1. Jboss ESB2. Open ESB3. Apache Servicemix4. JBoss Fuse5. Mule ESBمزایا ESB:· Message Bus· Message bridge· Connectors· Message translation· Monitoring· Business rule engine· Security· Quicker time to marketمعایب ESB:· Failure· Reduce performance· Inflexible Deployment· Risk of Regression· Need for Experienced Developersمنابع:· https://www.hcltech.com/blogs/everything-you-need-know-about-enterprise-service-bus-esb· https://www.techtarget.com/searchapparchitecture/definition/Enterprise-Service-Bus-ESB· https://arc.cdata.com/blog/20200114-modern-esb?kw=&amp;amp;cpn=13964179334&amp;amp;utm_source=google&amp;amp;utm_medium=cpc&amp;amp;utm_campaign=ArcESB_-_Search_-_DSA&amp;amp;utm_content=Website_Content&amp;amp;utm_term=|&amp;amp;kw=&amp;amp;cpn=13964179334&amp;amp;gclid=Cj0KCQiA1ZGcBhCoARIsAGQ0kkobXZebM-JjwL11BGHCXObJGkpGKGVmAzpbiNbKlp4W2kE2LHUobm8aAlFxEALw_wcB· https://www.cetdigit.com/blog/enterprise-integration-pros-and-cons-of-enterprise-service-bus#تکلیف درس معماری نرم افزار در دانشگاه شهید بهشتی</description>
                <category>عدی الحمود نصر</category>
                <author>عدی الحمود نصر</author>
                <pubDate>Mon, 28 Nov 2022 15:07:11 +0330</pubDate>
            </item>
                    <item>
                <title>Low code platforms</title>
                <link>https://virgool.io/@oudaynasser3/low-code-platforms-s9ej85e246k7</link>
                <description>Low code platforms چیست؟LCDP یک محیط توسعه را فراهم می کند که برای ایجاد نرم افزار برنامه از طریق یک رابط کاربری گرافیکی استفاده می شود، ممکن است برنامه های کاملاً عملیاتی تولید کند ، یا برای شرایط خاص به کد نویسی اضافی نیاز داشته باشد.یک روش توسعه کاربرد است که کدگذاری را از متن به بصری بالا می برد.چگونه کار میکند؟در یک مدل محور عمل می کند.ابزارهای گرافیکی برای طراحی یک برنامه یا سیستم ، همراه با ورودی های مورد نیاز ، خروجی ها ، منطق تجارت و جنبه های دیگر ارائه می دهند.ویژگی‌های Low code:1. Reusable components2. Scalable environments3. Collaboration tools4. Visual modeling5. Application lifecycle management6. Data integrationمزایا:· ارتباطات سازمانی بهتری را ارتقا دهید.· در صورت لزوم ویژگی های برنامه را به سرعت گسترش دهید.· برنامه هایی را با قوام و مقیاس پذیری بیشتر بسازید.· راه حل های متنوعی را بدون تحمل هزینه های سنگین ایجاد کنید.· بخش های خارج از آن را برای شرکت در توسعه توانمندسازی کنید.· سازمان خود را در مواجهه با اختلال چابک نگه دارید.· در صورت لزوم تغییرات فوری را تسهیل کنید.· تیم های خود را فعال کنید تا به صورت تکراری و مستقل کار کنند.· سیستم ها را در مقیاس بزرگتر بسازید و مدیریت کنید.best low code platformsمنابع:· https://www.spaceotechnologies.com/blog/low-code-mobile-app-development-platforms/· https://www.energysys.com/low-code/?gclid=Cj0KCQiA1ZGcBhCoARIsAGQ0kkolmeOPkmgPJuf2OIpYpJUgoftyUx36OArn1cqbCkmurjR71YAzJ4AaAmQ5EALw_wcB· https://appian.com/low-code-basics/introduction.html· https://www.softwaretestinghelp.com/low-code-development-platforms/· https://www.creatio.com/low-code· https://www.spaceotechnologies.com/blog/low-code-mobile-app-development-platforms/#تکلیف درس معماری نرم افزار در دانشگاه شهید بهشتی</description>
                <category>عدی الحمود نصر</category>
                <author>عدی الحمود نصر</author>
                <pubDate>Mon, 28 Nov 2022 13:54:46 +0330</pubDate>
            </item>
                    <item>
                <title>Micro front-ends</title>
                <link>https://virgool.io/@oudaynasser3/micro-front-ends-dlhsekqd4l0g</link>
                <description>Micro frontends چیست؟معماری Micro frontends یک روش طراحی است که در آن یک برنامه جلویی به &quot;میکروآپ های نیمه مستقل&quot; فردی که با هم کار می کنند تجزیه می شود.ممکن است ساده تر باشد و در نتیجه استدلال و مدیریت آن آسان تر است.کجا استفاده می‌شود؟هنگامی که ما پروژه هایی با ده ها توسعه دهنده داریم که در یک حوزه بزرگ تجاری با هم کار می کنند و می خواهیم با تقسیم به زیر دامنه های مختلف ، پیچیدگی را کاهش دهیم ، به طور مستقل بخش های مختلف برنامه ها را بدون بارگذاری بیش از حد ارتباط و هماهنگی بین تیم ها مستقر کنیم.مزایا:1. به روزرسانی های افزایشی.2. کد های ساده و جدا شده.3. استقرار مستقل.4. تیم های خودمختار.5. In a nutshell.مقایسه بین Micro frontends و Front-end monolith:1. از نظر Codebase: Micro frontends تقسیم به ماژول های کوچک قابل کنترل ولی Front-end monolith بزرگ و حجیم.2. از نظر Stability: Micro frontends عالی ولی Front-end monolith ناکافی.3. از نظر Updates: Micro frontends می توان به سرعت هل داد ولی Front-end monolith طولانی.4. از نظر Testing: Micro frontends سریع و آسان ولی Front-end monolith طولانی و سخت.5. از نظر Team: Micro frontends چندین تیم روی یک پروژه کار میکنند ولی Front-end monolith یک تیم روی یک پروژه کار میکند.6. از نظر Maintenance: Micro frontends نسبتا آسان ولی Front-end monolith سخت.منابع:· https://konghq.com/solutions/decentralize-applications-and-services?utm_source=google&amp;amp;utm_medium=cpc&amp;amp;utm_campaign=&amp;amp;gclid=Cj0KCQiA1ZGcBhCoARIsAGQ0kkrBqYvdRXQB5hg19AonST_WzEmxQfat5M5oZ_Lj6Z7fn0IN1aFxekAaArp-EALw_wcB· https://micro-frontends.org/· https://martinfowler.com/articles/micro-frontends.html· https://www.altexsoft.com/blog/micro-frontend/· https://www.xenonstack.com/insights/micro-frontend-architecture#این تکلیف درس معماری نرم افزار در دانشگاه شهید بهشتی</description>
                <category>عدی الحمود نصر</category>
                <author>عدی الحمود نصر</author>
                <pubDate>Mon, 28 Nov 2022 12:22:33 +0330</pubDate>
            </item>
                    <item>
                <title>Event Sourcing</title>
                <link>https://virgool.io/@oudaynasser3/event-sourcing-tkc0tsqemnms</link>
                <description>Event Sourcingچیست؟تهیه منابع یا Event Sourcing یک رویکرد متفاوت برای ذخیره داده ها است. به جای ذخیره وضعیت فعلی، در عوض رویدادها را ذخیره کند. رویدادها نمایانگر انتقال حالت چیزهایی است که در سیستم رخ داده است.تهیه منابع یک راه عالی برای به روزرسانی اتمی حالت و انتشار رویدادها است.تهیه منابع یک روش جایگزین برای ادامه داده ها است.الگوی تهیه منابع، رویکردی را برای انجام عملیات بر روی داده‌هایی که توسط دنباله‌ای از رویدادها هدایت می شوند، تعریف می کند که هر یک از آنها در یک مخزن فقط ضمیمه ثبت می شود.الگوی منابع رویداد شامل ارسال جریان مداوم پیام ها به یک هدف ذخیره معتبر است، هر پیام یک رویداد در سیستم را توصیف می کند.کجا استفاده می‌شود؟· وقتی از رویدادها استفاده می کنید.· هنگامی که می خواهید رویدادهایی را که اتفاق می افتد ضبط کنید ، آنها را دوباره پخش کنید تا وضعیت یک سیستم را بازیابی کنید ، تغییرات را به عقب برگردانید ، یا تاریخچه و ثبت حسابرسی را حفظ کنید.· هنگامی که به حداقل رساندن یا به طور کامل از بروزرسانی های متناقض به داده ها بسیار مهم است.· هنگامی که می خواهید قصد ، هدف یا عقل را در داده ها ضبط کنید.در چی شرایطی مفید نیست؟· دامنه های کوچک یا ساده.· سیستم هایی که فقط در مورد به روزرسانی های متناقض به داده های اساسی وجود دارد.· سیستمهایی که مسیرهای حسابرسی ، تاریخ و قابلیت های لازم برای عقب نشینی و بازپرداخت اقدامات لازم نیست.· سیستمهایی که در آن به روزرسانی در زمان واقعی به نماهای داده ها مورد نیاز است.مزایا:· عالی برای ایمنی ناکامی.· بسیار انعطاف پذیر.· عالی برای گزارش داده های زمان واقعی.· گسترش آینده ساده است.منابع:· https://martinfowler.com/eaaDev/EventSourcing.html· https://www.redhat.com/architect· https://www.eventstore.com/blog/what-is-event-sourcing· https://www.sitepen.com/blog/architecture-spotlight-event-sourcing</description>
                <category>عدی الحمود نصر</category>
                <author>عدی الحمود نصر</author>
                <pubDate>Sun, 27 Nov 2022 06:23:19 +0330</pubDate>
            </item>
                    <item>
                <title>MVVM</title>
                <link>https://virgool.io/@oudaynasser3/mvvm-uawwuuubeeul</link>
                <description>MVVM چیست؟Model-View-ViewModelیک الگوی طراحی نرم افزاری است که برای جدا کردن منطق برنامه و کنترل رابط کاربری ساخته شده است.MVVM همچنین به عنوان model-view-binder شناخته می شود.کجا استفاده می‌شود؟- Windows Presentation Foundation (WPF)- Microsoft WPF internet equivalent multimedia plug-in- AndroidMVVMتشکیل می‌شود از:1. View: مجموعه عناصر قابل مشاهده است که ورودی کاربر را نیز دریافت می کند.2. ViewModel: بین لایه های View و Modelقرار دارد.3. Model: منطق برنامه را در خود جای داده است.مزایا:· کاهش پیچیدگی.· جداسازی طراحی و توسعه.· تزریق وابستگی.· کار مشترک.· استفاده مجدد از کد.· سهولت آزمایش.معایب:· برخی فکر می کنند که برای UI های ساده ، MVVM می تواند بیش از حد باشد.· به طور مشابه در موارد بزرگتر ، طراحی ViewModelدشوار است.· اشکال زدایی هنگامی که اتصالات داده پیچیده ای داریم، کمی دشوار خواهد بود.تفاوت های کلیدی بین MVC و MVVM:1. در MVC، controller نقطه ورود به برنامه است، در حالی که در MVVM، view نقطه ورود به برنامه است.2. مؤلفه مدل MVC می تواند به طور جداگانه از کاربر آزمایش شود، در حالی که MVVM برای آزمایش واحد جداگانه آسان است و کد دارای رویداد محور است.منابع:· https://www.guru99.com· https://www.tutorialspoint.com/mvvm/mvvm_advantages.htm· https://stackoverflow.com/questions/883895/what-are-the-problems-of-the-mvvm-pattern· https://www.tutorialspoint.com/mvvm/mvvm_advantages.htm#تکلیف درس معماری نرم افزار در دانشگاه شهید بهشتی</description>
                <category>عدی الحمود نصر</category>
                <author>عدی الحمود نصر</author>
                <pubDate>Sat, 26 Nov 2022 09:07:43 +0330</pubDate>
            </item>
                    <item>
                <title>CQRS</title>
                <link>https://virgool.io/@oudaynasser3/cqrs-rqorktbu00b9</link>
                <description>CQRS چیست؟یک الگوی معماری محبوب است زیرا برای اکثر برنامه های سازمانی یک مشکل مشترک را برطرف می کند. جدا کردن رفتار نوشتن از رفتار خواندن، که جوهر الگوی معماری CQRS، ثبات و مقیاس پذیری را در برنامه های سازمانی فراهم می کند و در عین حال عملکرد کلی را نیز بهبود می بخشد.تفکیک مسئولیت های دستورات و نمایش داده ها در یک سیستم است.چگونه کار می کند؟الگوی تفکیک مسئولیت پرس و جو(CQRS) وظایف نوشتن یک سرویس را از وظایف خوانده شده خود جدا می کند.جوانب مثبت الگوی CQRS:· جدا کردن فعالیت نوشتن از فعالیتهای خواندن به شما امکان می دهد از بهترین فناوری پایگاه داده برای کار مورد نظر استفاده کنید.مثال: یک پایگاه داده SQL برای نوشتن و یک پایگاه داده no SQL برای خواندن.· فعالیت خواندن بیشتر از نوشتن است ، بنابراین می توانید با قرار دادن منابع داده خوانده شده در strategic geolocations برای عملکرد بهتر، response latency را کاهش دهید.· جدا کردن نوشتن از فعالیت خواندن منجر به مقیاس بندی کارآمدتر ظرفیت ذخیره سازی بر اساس استفاده از دنیای واقعی می شود.جوانب منفی الگوی CQRS:· نیاز به تخصص در انواع فن آوری های پایگاه داده دارد.· فن آوری های پایگاه داده بیشتری لازم است از این رو هزینه ذاتی تر یا از نظر سخت افزار یا در صورت استفاده از ارائه دهنده ابر، هزینه استفاده وجود دارد.· تضمین سازگاری داده ها از نظر توافق های سطح خدمات نیاز به توجه ویژه دارد.· استفاده از تعداد زیادی از بانکهای اطلاعاتی به معنای نقاط بیشتر شکست است.منابع:· https://martinfowler.com/bliki/CQRS.html· https://www.geeksforgeeks.org/what-is-cqrs/?ref=gcse· https://www.eventstore.com/cqrs-pattern#تکلیف درس معماری نرم افزار در دانشگاه شهید بهشتی</description>
                <category>عدی الحمود نصر</category>
                <author>عدی الحمود نصر</author>
                <pubDate>Sat, 26 Nov 2022 07:37:03 +0330</pubDate>
            </item>
                    <item>
                <title>Hexagonal architecture</title>
                <link>https://virgool.io/@oudaynasser3/hexagonal-architecture-erbmzfcm2q4n</link>
                <description>Hexagonal architectureچیست؟Hexagonal architecture یا ports and adapters architecture بهش گفته میشود. معماری شش ضلعی یک سبک معماری با هدف کلی است که هدف آن ایجاد نرم افزار جدا شده است.دکتر آلیستر کاکبورن اظهار داشت:این اجازه می دهد تا یک برنامه به همان اندازه توسط کاربران ، برنامه ها ، تست های خودکار یا اسکریپت های دسته ای هدایت شود و از دستگاه ها و پایگاه داده های نهایی زمان اجرا شده در انزوا تهیه و آزمایش شود.باید اشاره کرد که درگاه ها و آداپتورها ویژگی های اصلی این الگوی هستند.مولفه‌های معماری شش ضلعی:· مدل دامنه (Domain Model): نمایشی از مفاهیم معنی دار به دامنه که باید در نرم افزار مدل سازی شود. این مفاهیم شامل داده های درگیر در تجارت و قوانینی است که مشاغل در رابطه با آن داده ها استفاده می کنند.· درگاه (Ports):1. درگاهای اولیه (Primary Ports):API اصلی برنامه هستند.مثال: توابعی که به شما امکان می دهد اشیاء، ویژگی ها و روابط را در منطق اصلی تغییر دهید.2. درگاهای ثانویه (Secondary Ports): رابط های آداپتورهای ثانویه هستند.مثال: یک رابط برای ذخیره اشیاء منفرد است.· آداپتورها (Adapters):پلی بین برنامه و خدماتی است که توسط برنامه مورد نیاز است.1. آداپتور اولیه (Primary Adapter):یک قطعه کد بین کاربر و منطق اصلی است.مثال: تابع تست واحد، کنترل کننده2. آداپتور ثانویه (Secondary Adapter):اجرای درگاه ثانویه است.مثال: کلاس کوچکمزایا و معایب معماری شش ضلعی:در یک شکل نشان می‌دهم جوانب منفی ومثبت معماری شش ضلعی.منابع:· https://alistair.cockburn.us/hexagonal-architecture/· https://jeffreypalermo.com/2008/07/the-onion-architecture-part-1/· https://www.cybermedian.com/what-is-hexagonal-architecture-diagram/· https://apiumhub.com/tech-blog-barcelona/hexagonal-architecture· https://en.wikipedia.org/wiki/Hexagonal_architecture_(software)#تکلیف درس معماری نرم افزار در دانشگاه شهید بهشتی</description>
                <category>عدی الحمود نصر</category>
                <author>عدی الحمود نصر</author>
                <pubDate>Fri, 25 Nov 2022 12:38:14 +0330</pubDate>
            </item>
                    <item>
                <title>Domain Driven Design</title>
                <link>https://virgool.io/@oudaynasser3/domain-driven-design-dvphqrn0fjmz</link>
                <description>Domain Driven Design چیست؟بر اساس کتاب Domain Driven Design که توسط Eric Evansنوشته شده، به این شکل تعریف شده:مقابله با پیچیدگی در قلب نرم افزار ، طراحی دامنه مبتنی بر گسترش و کاربرد مفهوم دامنه همانطور که در مورد توسعه نرم افزار اعمال می شود. DDD قصد دارد با اتصال قطعات مربوط به نرم افزار به یک مدل همیشه در حال تحول ، ایجاد برنامه های پیچیده را آسان کند.تعریف دیگری برای طراحی محور دامنه این است که یک رویکرد برای توسعه نرم افزار که در آن مدل دامنه اپلیکیشن منعکس کننده مدل تجاری واقعی است و دامنه اصلی تمرکز اصلی پروژه است.مزایای طراحی دامنه محور:· ارتباطات را آسان می کند:ارتباط بین توسعه دهندگان پروژه و ذینفعان را آسان میکند.· انعطاف پذیری را بهبود می بخشد:تغییرات لازم را به راحتی انجام میشوند.· بر دامنه بیش از رابط تأکید می کند:تمرکز روی دامنه به این معنی است که یک رویکرد DDD می تواند محصولی را تولید کند که به خوبی با مخاطبان مرتبط با آن دامنه طنین انداز باشد.· قابلیت نگهداری: زیرا نحوه ساخت مدل‌های دامنه با کپسوله کردن شفافیت و تجزیه خوب مدل است.معایب طراحی دامنه محور:· به تخصص دامنه قوی نیاز دارد:در بعضی موارد ، طراحی دامنه محور ممکن است نیاز به ادغام یک یا چند عضو تیم خارج از کشور داشته باشد که می توانند به عنوان کارشناسان دامنه در طول چرخه زندگی توسعه عمل کنند.· شیوه های تکراری را تشویق می کند:اگر تجربه گذشته سازمان‌ها در درجه اول با مدل های توسعه کمتر انعطاف پذیر مانند.· مناسب برای پروژه های بسیار فنی:برای برنامه های دارای پیچیدگی دامنه حاشیه ای بسیار مناسب نیست.· هزینه:استفاده از DDD اغلب منجر به توسعه و مدت زمان طولانی تر می شود که به هزینه‌های بالاتر منجر میشود.منابع:· https://codezup.com/what-is-domain-driven-design-ddd-pros-cons· https://www.slideshare.net/eduardsi/introduction-to-ddd· https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/microservice-domain-model· Eric Evans’s book: Domain Driven Design#تکلیف درس معماری نرم افزار در دانشگاه شهید بهشتی</description>
                <category>عدی الحمود نصر</category>
                <author>عدی الحمود نصر</author>
                <pubDate>Fri, 25 Nov 2022 10:56:44 +0330</pubDate>
            </item>
            </channel>
</rss>