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

                    <item>
                <title>ارزیابی معماري نرم افزار و مدلهاي بلوغ معماري فنی نرم افزار</title>
                <link>https://virgool.io/@rayhanehal/%D8%A7%D8%B1%D8%B2%DB%8C%D8%A7%D8%A8%DB%8C-%D9%85%D8%B9%D9%85%D8%A7%D8%B1%D9%8A-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D9%88-%D9%85%D8%AF%D9%84%D9%87%D8%A7%D9%8A-%D8%A8%D9%84%D9%88%D8%BA-%D9%85%D8%B9%D9%85%D8%A7%D8%B1%D9%8A-%D9%81%D9%86%DB%8C-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-qtsbfujjxbrs</link>
                <description>چکیدهارزیابی معماری نرم افزار تکنیکی است که ویژگی ها، کاستی ها و کیفیت سبک معماری نرم افزار یا طرح چارچوب را ارزیابی می کند. همچنین به سازندگان اطمینان میدهد که معماری انتخابی پاسخگوی نیازمندی های کیفیت عملکردی و غیرعملکردی است. چنین ارزیابی، درک و مستندسازی گسترده ساختار، تصدیق مسائل مربوط به معماری موجود را تضمین می‌کند و یادگیری سلسله مراتبی مختلف را افزایش می‌دهد. در این تحقیق قصد داریم مقایسه جامعی از تکنیکهاي ارزیابی معماري نرم افزار را ارائه کنیم. سپس مدل ArchCaMo را برای دسترسی به سطح بلوغ معماری با استفاده از ISO/IEC/IEEE 42010 توصیف خواهیم کرد و در نهایت، SQME را به عنوان چارچوبی برای ارزیابی معماری نرم افزار با توجه به ویژگی های کیفی مختلف معرفی می کنیم.کلمات کلیدی: ارزیابی معماری نرم افزار، مدلهای بلوغ، معماری فنی نرم افزار۱. مقدمههدف از ارزیابی معماری نرم افزار، مطالعه توانایی های معماری انتخاب شده در برآوردن نیازهای کیفی مورد نیاز و شناسایی هرگونه ریسک بالقوه است. علاوه بر این، تشخیص و حل و فصل اشتباهات طرح کلی در دوره‌های اولیه توسعه نرم‌افزار کم هزینه تر و کم ریسکتر است. این تنها دلیلی است که یک روش ارزیابی معماری نرم افزار موثر برای تجزیه و تحلیل معماری های بالقوه از اهمیت تجاری فوق العاده ای برخوردار است.پیش نیازهای کیفیتی از اهمیت زیادی برخوردارند. طبقه‌بندی تکنیک‌های ارزیابی با استفاده از روش‌های مبتنی بر سناریو یک رویکرد توسعه‌یافته در نظر گرفته می‌شود [4، 5]. از سوی دیگر، مدل‌های کمی و مدل‌های ویژگی نیز به همان اندازه مهم هستند. با ظهور تکنیک های جدید و اشغال جایگاه تکنیک های قدیمی، تکنیک های موجود در حال از بین رفتن هستند. به این ترتیب، یافتن شباهت ها و تضادها در میان تکنیک های مختلف دشوار می شود. مقایسه روش‌های ارزیابی معماری نرم‌افزار می‌تواند درک روش‌های موجود را افزایش دهد که جهت‌های پژوهشی بالقوه را به محققان ارائه می‌دهد [6، 7]نرم افزار پیچیده معماری پیچیده ای دارد [8] و گاهی اوقات اجرای نکات محصور شده در معماری دشوار است. بنابراین، معماری نرم افزار باید قبل از تخصیص منابع به آن، ارزیابی شود. تکنیک‌هایی برای ارزیابی معماری نرم‌افزار با متدولوژی‌های مختلف توسعه یافته‌اند. استراتژی‌های ارزیابی معماری بر ویژگی‌های کیفی مختلفی مانند قابلیت استفاده مجدد، قابلیت تغییر، دسترسی، عملی بودن، امنیت و آزمایش‌پذیری تمرکز می‌کنند، [9، 10]علاوه بر این، با وجود اهمیت فرآیند معماری نرم افزار، فرآیند، ارزیابی و حتی تأثیر اجتماعی بر معماری نرم افزار در یک سازمان هنوز در توسعه نرم افزار نادیده گرفته می شود. ایجاد یک معماری نرم افزار قابل اعتماد و قوی نیازمند تلاش است که در صورتی که معماری به خوبی توسط ذینفعان فنی توصیف و درک نشود تقریباً بی فایده خواهد بود. معماران نرم افزار باید آن را در سطح لازم از جزئیات توصیف کنند، سعی کنند مسائل مبهم را حل کنند و معماری را به گونه ای سازماندهی کنند که قابل درک و با اطلاعاتی باشد که به راحتی بازیابی شود. مستندات معماری ناکافی، ناقص یا قدیمی یکی از موارد بدهی فنی است.از راه حل‌های ممکن برای توصیف معماری نرم‌افزار، تکیه بر مدل‌ها و استانداردهایی مانند مدل 4+1 یا ISO/IEC/IEEE 42010 است. البته مسئله این است که در عمل درک چنین استانداردهایی دشوار است، زیرا آنها بسیار سطح بالا برای استفاده در عمل هستند یا انقدر پیچیده اند که به راحتی توسط تیم توسعه نرم افزار قابل درک نیستند.۲. گام های قبلی۱.۲. گام یکدر فاز یک به تکنیک های ارزیابی معماری نرم افزار پرداختیم و در نهایت به این جدول رسیدیم که مقایسه ای از روش های ارزیابی متفاوت را با استفاده از فاکتورهای ارزیابی معماری ارائه میدهد.۲.۲. گام دودر فاز دو، مدل ArchCaMo را برای دسترسی به سطح بلوغ معماری با استفاده از ISO/IEC/IEEE 42010 توصیف کردیم. هدفArchCaMo دوگانه است. مدلArchCaMo می تواند برای ارزیابی معماری های فعلی مورد استفاده قرار گیرد و به تیم توسعه نشان دهد که معماری آنها در چه سطحی از بلوغ قرارر دارد. علاوه بر این، برای آن دسته از سازمان‌هایی که با سازمان‌دهی، توصیف و برقراری ارتباط معماری نرم‌افزار برای ذینفعان متعدد درگیر هستند، مفید است. با استفاده از این مدل، سازمان برای هر سطح از بلوغ معماری می داند که دقیقاً چه فعالیت ها و محصولاتی انتظار دارد.تقریباً تمام 5 سطح ArchCaMO بر اساس قوانین استانداردISO/IEC/IEEE 42010:2011 هستند. سطح اولیه یا سطح 1، به تمام سازمان هایی اشاره دارد که روشی رسمی برای تعریف معماری نرم افزار ندارند. سطوح 2 و 3 از بیشتر جنبه های مرتبطی تشکیل شده اند که برای توصیف معماری نرم افزار ضروری هستند. سطوح 4 و 5 مربوط به جنبه هایی است که برای بهبود وضعیت معماری نرم افزار در چرخه حیاتی که قبلاً ساختار یافته، مورد نیاز است.پس از توضیحات سطوح، نحوه عملکرد سطوح در طول فرآیند توضیح داده شد.متوجه شدیم که مدل بلوغ ArchCaMO معماری‌های نرم‌افزار را ارزیابی می‌کند و تیم معماری نرم‌افزار را راهنمایی می‌کند که چگونه توصیفی از معماری‌های نرم‌افزار را از سیستم‌های جدید و موروثی مدیریت کند.۳. کارهای گذشتهتعدادی از کارهای گذشته در زمینه ارزیابی معماری نرم افزار در جدول زیر أورده شده است.۱.۳. نقص کارهای گذشتههیچ اثری مدل بلوغ معماری نرم افزار را بر اساس ISO/IEC/IEEE 42010 که استانداردی برای توصیف نرم افزار و معماری سیستم است، توصیف نکرده است.۴. چارچوبSQMEدر این مرحله SQME را به عنوان چارچوبی برای ارزیابی معماری نرم افزار با توجه به ویژگی های کیفی مختلف معرفی می کنیم. از ویژگی های متمایز این چارچوب می توان به موارد زیر اشاره کرد:• پشتیبانی از استانداردهای شناخته شده برای مدل سازی نرم افزار و توصیف کیفی: SQME برای مدل سازی معماری نرم افزار، از  UMLپشتیبانی می کند. UML به عنوان یک زبان استاندارد برای مدل‌سازی نرم‌افزار شناخته می‌شود و مکانیسم پروفایل آن به ما اجازه می‌دهد اطلاعات با کیفیت را به مدل‌های معماری اضافه کنیم.  SQME از پروفایل[13] MARTE و مشتقات آن برای توصیفهای کیفی پشتیبانی می کند.  MARTE یک نمایه استاندارد است که افزودن اطلاعات زمان و عملکرد به مدل‌های UML را تسهیل می‌کند. از این اطلاعات می توان برای ارزیابی عملکرد معماری نرم افزار استفاده کرد.  DAM [14] مشتق MARTE برای حوزه قابلیت اطمینان وSecAM  [14] مشتقMARTE برای حوزه امنیت هستند.• بهینه سازی تکاملی مدل های معماری نرم افزار: با استفاده از الگوریتم های تکاملی چند معیاره موجود، فرآیند ارزیابی پیشنهاد شده توسط SQME مدل معماری اولیه را تا زمانی که مدل های بهینه پرتو پیدا شود، به طور مکرر اصلاح و ارزیابی می کند.• مدیریت عدم قطعیت پارامتر با استفاده از نظریه شواهد: در SQME، عدم قطعیت در پارامترهای مدل از طریق فواصل مقادیر ممکن بیان می شود. اثرات این عدم قطعیت بر معیارهای کیفیت و تصمیمات معماری با استفاده از معیارهای باور و معقول بودن نظریه شواهد تجزیه و تحلیل می شود [15].• تجزیه و تحلیل trade offکیفیت با استفاده از:EV/TOPSIS برای انتخاب بهترین مدل از مجموعه پرتو، یک روش مبتنی برEV/TOPSIS پیشنهاد شده که در ادامه بیان خواهد شد. مطمئناً بهترین مدل مدلی است که بهترینtrade off را در بین ترجیحات کیفی ذینفعان نشان دهد.• فرآیند ارزیابی خودکار: یک ابزار نرم افزاری توسعه یافته که تمام مراحل فرآیند ارزیابی پیشنهادی توسط چارچوب SQME را خودکار می کند. این ابزار از تولید مدل‌های رسمی از مدل‌های معماری نرم‌افزار، و بهینه‌سازی تکاملی و تجزیه و تحلیل trade off کیفیت آن‌ها نیز پشتیبانی می‌کند.شکل زیر یک نمای کلی از چارچوب پیشنهادی را نشان می دهد. در این شکل،SQME  توسط یک مستطیل نشان داده شده که توسط ذینفعان، ورودی ها و خروجی های چارچوب احاطه شده است. این موارد به طور خلاصه در ادامه توضیح داده شده است:• ذینفعان: کسانی که در موفقیت سیستم سهیم هستند، از جمله معماران، طراحان، مهندسین نیازمندی ها و ...• ورودی ها: نهادهای مورد استفاده در فرآیند ارزیابی، از جمله مدل معماری اولیه، ترجیحات کیفی ذینفعان، و درجات آزادی برای اصلاح معماری.• خروجی ها: موجودیت های تولید شده توسط فرآیند ارزیابی، از جمله مدل معماری بهینه، و نتایج تحلیل آن.نمای کلی چارچوب SQMEمدل معماری اولیه با مجموعه ای از نمودارهای UML نشان داده می شود. به عنوان مثال، مدل UML در شکل زیر شامل سه نمودار مورد کاربری (UCD)، فعالیت (AD)، و استقرار (DD)است.نمونه ای از مدل  UML۱.۴. عناصر چارچوبچارچوب SQME از عناصر زیر تشکیل شده است:– مدل معماری اولیه: مدل اولیه UML معماری که بر اساس الزامات عملکردی توسعه یافته است.– مدل آگاه از کیفیت: یک مدل UML حاشیه نویسی شده با پارامترهای کیفیت (مانند یک مدل UML/MARTE )– مدل رسمی: یک مدل رسمی ( مانند زنجیره مارکوف) که برای ارزیابی معیارهای کمی در مدل آگاه از کیفیت استفاده می شود.– روش تحلیل رسمی: روشی که برای تجزیه و تحلیل مدل رسمی استفاده می شود (به عنوان مثال، تحلیل عددی)– روش تحلیل عدم قطعیت: معیارهای باور/معقول بودن که بر اساس نتایج تحلیل ارزیابی می شوند.– عملگر انتخاب: عملگری که برای مقایسه و رتبه بندی نامزدهای معماری استفاده می شود. این رتبه بندی مبنای انتخاب نامزدهای والد برای نامزدهای نسل بعدی است.– عملگرهای نسل: اپراتورهایی که برای تولید نامزدهای جدید از نسل فعلی استفاده می‌شوند (به عنوان مثال، جهش، متقاطع، تاکتیک‌های معماری و ...).– روش تجزیه و تحلیل مبادله: گسترش روش EV/TOPSIS که برای انتخاب بهترین نامزد از مجموعه نهایی پرتو استفاده می شود. منظور از بهترین، نامزدی است که بیشترین تطابق را با اولویت های کیفی ذینفعان دارد.۲.۴. فرآیند ارزیابیفرآیند ارائه شده توسط چارچوب SQME برای ارزیابی مدل های معماری نرم افزار در شکل زیر ارائه شده است. این فرآیند شامل هشت مرحله است که در بخش‌های بعدی توضیح داده شده است.فرایند بهینه سازی معماری در چارچوب SQME۱.۲.۴. گسترش مدل UML با حاشیه نویسی کیفیاطلاعات موجود در مدل اولیه UML فقط جنبه های عملکردی سیستم را پوشش می دهد. این اطلاعات برای تجزیه و تحلیل ویژگی های کیفی کافی نیست. در این مرحله از نمایه MARTE و پسوندهای آن برای جاسازی اطلاعات کیفی در مدل UMLاستفاده می شود.۲.۲.۴. برآورد پارامترهای نامشخصممکن است مقدار دقیق برخی از پارامترها در طول طراحی معماری ناشناخته باشد. در این مرحله، تحلیلگر باید اطلاعاتی را از منابع موجود جمع آوری کند تا مقادیر احتمالی پارامترهای نامشخص را تخمین بزند. به عنوان مثال، او می‌تواند داده‌های تاریخی را در مورد سیستم‌های مشابه جمع‌آوری کند و مجموعه‌ای از فواصل زمانی را به متخصصان حوزه پیشنهاد دهد و درجات باور آنها را برای هر بازه بپرسد. پس از مشورت با کارشناسان، او باید فواصل تخمینی را جمع آوری کرده و به مدل UML اضافه کند.۳.۲.۴. تبدیل به مدل های رسمیدر این مرحله، مدل UML حاشیه نویسی شده به مدل‌های رسمی و ریاضی برای تجزیه و تحلیل معیارهای کیفیت تبدیل می‌شود. الگوریتم‌هایی در [11،12] ارائه شده است که مدل‌های UML/DAM و UML/SecAM را به ترتیب به درخت‌های خطا و درخت‌های حمله تبدیل می کنند. در این بخش، مجموعه‌ای از قوانین را برای تبدیل مدل‌های UML/MARTE به شبکه‌های پتری زمانی (TPNs) تعریف می‌کنیم [16،17]. در ابتدا، نحوه مدل‌سازی سه مفهوم عملکرد اصلی، یعنی حجم کار، سناریو و منبع را با TPN توضیح می‌دهیم. سپس مدل‌های TPN ساخته‌شده بر روی انتقال‌های برچسب رایج خود ترکیب می‌شوند تا یک مدل TPN قابل تجزیه و تحلیل به دست آید.۴.۲.۴. تجزیه و تحلیل مدل های رسمیمدل‌های رسمی تولید شده باید با استفاده از تکنیک‌های راه‌حل و ابزارهای موجود برای آن‌ها تحلیل شوند. خروجی این تحلیل‌ها شامل مجموعه‌ای از فواصل و احتمالات مرتبط با آنها برای معیارهای کیفیت است. بر این اساس، ما به راحتی می توانیم مرزهای توان عملیاتی را برای هر ترکیبی از بازه های ورودی تخمین بزنیم. بسته به تعداد پارامترهای نامشخص و فواصل مرتبط با آنها، این تجزیه و تحلیل ممکن است چندین بار تکرار شود.۵.۲.۴. تجزیه و تحلیل عدم قطعیتخروجی مرحله قبل شامل مجموعه ای از فواصل و احتمالات مربوط به آنها برای هر معیار کیفیت است. به جای خود فواصل، تحلیلگر علاقه مند است که احتمال این که معیارهای ارزیابی شده بالاتر یا کمتر از مقادیر آستانه مشخص شده به عنوان الزامات کیفیت برای سیستم هستند را بداند.در این مرحله از معیارهای باور و معقولیت برای برآورد احتمال تحقق نیاز استفاده می شود.۶.۲.۴. انتخاب مدل های والددر الگوریتم‌های تکاملی، نسل‌های جدیدی از راه‌حل‌های کاندید به طور مکرر تولید می‌شوند تا زمانی که نامزدهای بهینه پیدا شوند. در SQME، فرآیند ارزیابی از مدل معماری اولیه شروع می شود. از این رو، نسل اول شامل یک مدل است. با این حال، مدل های بیشتری در تکرارهای بعدی تولید خواهند شد.در این مرحله، مدل‌های معماری موجود بر اساس انطباق آن‌ها با الزامات کیفی مقایسه می‌شوند. سپس مدل‌های پرتو بهینه [18] به‌عنوان والدین برای مدل‌های نسل بعدی انتخاب می‌شوند. تعریف اصلی رابطه تسلط پارتو مبتنی بر مقایسه مقادیر واضح است. با توجه به عدم قطعیت در نتایج ارزیابی، ما باید یک تعریف جدید ارائه دهیم که امکان مقایسه مقادیر فاصله را فراهم می کند.اکنون می‌توانیم به راحتی مدل‌های معماری را با هم مقایسه کنیم و مشخص کنیم که کدام مدل‌ها متعلق به مجموعه پارتو هستند.۷.۲.۴. ایجاد نامزدهای جدیددر این مرحله با اصلاح مدل های انتخاب شده در مرحله قبل، مدل های جدید تولید می شوند. تغییرات بر اساس درجات آزادی تعریف شده برای سیستم انجام می شود.عملگرهایی که برای اصلاح استفاده می‌شوند ممکن است شامل عملگرهای متقاطع و جهش الگوریتم ژنتیک یا هر عملگر خاص ویژگی باشند. در این مقاله فقط عملگرهای جهش و متقاطع در نظر گرفته شده است. متقاطع فرآیندی است که در آن دو نامزد طراحی برای ایجاد یک راه حل جدید ادغام می شوند. جهش یک یا چند گزینه طراحی را در یک نامزد تغییر می دهد تا یک گزینه جدید ایجاد کند.۸.۲.۴. انتخاب بهترین مدلمراحل 1 تا 7 فرآیند ارزیابی ممکن است چندین بار تکرار شود تا زمانی که مجموعه پارتو دیگر تغییر نکند. در این لحظه، مدل‌های معماری در مجموعه پارتو باید با هم مقایسه شوند، به طوری که مدلی که حداکثر مطابقت را با ترجیحات ذینفعان دارد به عنوان مدل خروجی انتخاب شود.بدیهی است که مشکل انتخاب بهترین مدل یک مسئله MCDM با ویژگی های کیفی Q A j , j = 1, . . . n به عنوان معیارهای تصمیم گیری، مدل های معماری Mi , i = 1, . . . , n به عنوان گزینه های موجود و سهامداران S Hk , k = 1, . . . , p ، به عنوان تصمیم گیرندگان هر عنصر Belij, Plij از این ماتریس نشان دهنده نتیجه ارزیابی Q A j بر روی Mi است. به هر Q A j یک وزن Wk j اختصاص داده می شود که نشان دهنده اهمیت این ویژگی کیفیت برای ذینفع S Hk است.۵. پشتیبانی از ابزارچارچوب SQME توسط SQMETool [19] پشتیبانی می شود. این ابزار نرم افزاری با استفاده از زبان برنامه نویسی جاوا برای ارائه حداکثر قابلیت حمل و استقلال پلت فرم توسعه یافته است و به عنوان یک پلاگین برای Eclipse IDE قابل استفاده است. Eclipse یک محیط توسعه نرم افزار شناخته شده است و در حال حاضر از توسعه مدل UML و حاشیه نویسی MARTE پشتیبانی می کند. این پشتیبانی توسط پلاگین پاپیروس [20] ارائه می شود. اخیراً پشتیبانی از پروفیل DAM به این افزونه اضافه شده است [21]. SQMETool قادر به ارزیابی نمایش XMI از مدل های UML/MARTE یا UML/DAM است که با استفاده از پلاگین پاپیروس بر اساس فرآیند ارزیابی SQME توسعه یافته اند. معماری این ابزار در شکل زیر ارائه شده است. بر این اساس، این ابزار شامل ماژول های زیر است:- رابط کاربری گرافیکی: این ماژول کاربر را قادر می سازد تا با ابزار تعامل داشته باشد، به عنوان مثال، مدل های UML را وارد کند، آنها را تجزیه و تحلیل کند، و گزارش های تجزیه و تحلیل تولید کند.- ماژول تبدیل مدل: این ماژول مدل های رسمی را از مدل های ورودی UML تولید می کند.- ماژول تجزیه و تحلیل TPN: این ماژول با تجزیه و تحلیل مدل TPN تولید شده توسط ماژول تبدیل مدل، معیارهای باور و معقول بودن عملکرد سیستم را ارزیابی می کند.- کنترلر: این ماژول تعاملات بین رابط کاربری گرافیکی و سایر ماژول ها را مدیریت می کند.- ماژول تجزیه و تحلیل FT:این ماژول معیارهای باور و قابل قبول بودن قابلیت اطمینان سیستم را با تجزیه و تحلیل مدل FT تولید شده توسط ماژول تبدیل مدل ارزیابی می کند.- ماژول I-MOEA : این ماژول چارچوب MOEA را گسترش می دهد [22]. MOEA یک کتابخانه معروف جاوا برای الگوریتم های تکاملی چند هدفه است.- ماژول I-EV/TOPSIS: این ماژول روشی را برای انتخاب بهترین مدل معماری پیاده سازی می کند.معماری ابزار SQME۶. نتیجه گیری و کار آیندهدر این تحقیق، SQME را به عنوان چارچوبی برای ارزیابی کمی ویژگی‌های کیفیت مدل‌های معماری نرم‌افزار معرفی کردیم. هدف از این چارچوب حمایت از معماران نرم افزار در یافتن راه حل های معماری بهینه در موقعیت های طراحی پیچیده با بسیاری از ویژگی های کیفیت بالقوه متناقض است. این چارچوب از الگوریتم‌های تکاملی چند هدفه برای اکتشاف فضای طراحی، EV/TOPSIS برای تجزیه و تحلیل معاوضه با کیفیت و نظریه شواهد برای مدیریت عدم قطعیت پارامتر در طول فرآیند ارزیابی استفاده می‌کند.مطمئناً، خودکار کردن فرآیند ارزیابی، تلاش انسان را کاهش می‌دهد، که ممکن است زمان ورود به بازار و هزینه‌های توسعه را کاهش دهد. آزمایش‌های اولیه و اجرای نمونه اولیه نشان داده‌اند که فرآیند ارزیابی SQME برای سیستم‌های واقعی قابل اجرا است.«این مطلب، بخشی از تمرین‌های درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است.»منابع[1] Ahmed, F., Capretz, L.F.: An Architecture Process Maturity Model of Software Product Line Engineering. Innov. Syst. Softw. Eng. 7(3), 191–207 (Sep 2011)[2] Ostadzadeh, S.S., Shams, F.: Towards a Software Architecture Maturity Model for Improving Ultra-Large-Scale Systems Interoperability. CoRR abs/1401.5752 (2014)[3] Meyer, M., Helfert, M., O’Brien, C.: An Analysis of Enterprise Architecture Maturity Frameworks. In: Grabis, J., Kirikova, M. (eds.) Perspectives in Business Informatics Research. pp. 167–177. Springer Berlin Heidelberg, Berlin, Heidelberg (2011)[4] S. Mahmood, A. Ullah, and A. K. Kayani, &quot;Fog Computing Trust based Architecture for Internet of Things Devices,&quot; International Journal of Computing Communication Networks, vol. 1, no. 1, pp. 18-25, 2019.[5] K. N. Qureshi, A. H. Abdullah, F. Ullah, and Informatics, &quot;Beaconless Packet Forwarding Approach for Vehicular Urban Environment,&quot; Bulletin of Electrical Engineering Informatics, vol. 5, no. 2, pp. 253-262, 2016.[6] H. Nafea, K. Kifayat, Q. Shi, K. N. Qureshi, and B. Askwith, &quot;Efficient Non-Linear Covert Channel Detection in TCP Data Streams,&quot; IEEE Access, 2019.[7] S. Iqbal, A. H. Abdullah, and K. N. Qureshi, &quot;An adaptive interference‐aware and traffic‐aware channel assignment strategy for backhaul networks,&quot; Concurrency Computation: Practice Experience, p. e5650, 2019.[8] E. Anjos and M. Zenha-Rela, &quot;A framework for classifying and comparing software architecture tools for quality evaluation,&quot; in International Conference on Computational Science and Its Applications, 2011, pp. 270-282: Springer.[9] M. S. Aliero, I. Ghani, K. N. Qureshi, and M. F. a. Rohani, &quot;An algorithm for detecting SQL injection vulnerability using black-box testing,&quot; Journal of Ambient Intelligence Humanized Computing, pp. 1-18, 2019.[10] K. N. Qureshi, F. Bashir, and A. H. Abdullah, &quot;Provision of Security in Vehicular Ad hoc Networks through An Intelligent Secure Routing Scheme,&quot; in 2017 International Conference on Frontiers of Information Technology (FIT), 2017, pp. 200-205: IEEE.[11] Sedaghatbaf, A., Azgomi, M.A.: Quantitative evaluation of soft- ware security: an approach based on UML/SecAM and evidence theory. ISC. Int. J. Inf. Secur. 8(2), 137–149 (2016)[12] Sedaghatbaf, A., Azgomi, M.A.: Reliability evaluation of UML- DAM models under unertainty. IET Softw. (2018). https://doi.org/ 10.1049/iet-sen.2017.0077[13] Group, O.M.: UML Profile for MARTE: Modeling and Analysis of Real-Time Embedded Systems v.1.0 (2009)[14] Bernardi, S., Merseguer, J., Petriu, D.C.: A dependability profile within MARTE. Softw. Syst. Model. 10(3), 313–336 (2011)[15] Shafer, G.: A Mathematical Theory of Evidence. Princeton University Press, Princeton (1976)[16] Merlin, P.M., Farber, D.J.: Recoverability of communication pro- tocols: implications of a theoretical study. IEEE Trans. Commun. 24(9), 1036–1043 (1976)[17] Bernardi, S., Campos, J.: Computation of performance bounds for real-time systems using time Petri nets. IEEE Trans. Ind. Informat- ics 5(2), 168–180 (2009)[18] Coello Coello, C.A., Dhaenens, C., Jourdan, L.: Multi-objective combinatorial optimization: problematic and context. Stud. Com- put. Intell. 272, 1–21 (2010)[19] Sedaghatbaf, A.: SQME Tool Web Page (2018). [Online]. Avail- able: http://webpages.iust.ac.ir/azgomi/TwCL/sqme.htm[20] Gérard, S., Dumoulin, C., Tessier, P., Selic, B.: 19 Papyrus: a UML2 tool for domain-specific language modeling. In: Model- Based Engineering of Embedded Real-Time Systems, pp. 361–368. Springer, Berlin Heidelberg (2010)[21] DICE Profiles 2016. [Online]. Available: http://dice-project. github.io/DICE-Profiles/[22] MOEA Framework. [Online]. Available: http://moeaframework.org/</description>
                <category>ریحانه علیمرادی</category>
                <author>ریحانه علیمرادی</author>
                <pubDate>Fri, 10 Feb 2023 13:19:10 +0330</pubDate>
            </item>
                    <item>
                <title>BPMS in Detail</title>
                <link>https://virgool.io/@rayhanehal/bpms-in-detail-xguxtcrdjftr</link>
                <description>مدل‌سازی فرایند چیست؟مدل‌سازی فرایند کسب و کار، نمایش گرافیکی و تحلیلی فرایندهای تجاری یک شرکت است. این مدل‌سازی به کسب و کارها کمک می کند تا فرآیندهای موجود یک شرکت را درک کرده و به صورت بصری مستند کنند. همچنین تحلیل می کند که چه فرآیندهایی در حال حاضر وجود دارند و بینشی برای افزودن فرآیندهای جدید ارائه می دهد. به دستیابی به مزیت رقابتی، منطبق شدن با مقررات و اطمینان از رسمی شدن فرآیندهای موجود نیز کمک می کند. مدل سازی فرآیند کسب و کار مجموع موارد زیر است:نقشه برداری فرآیندکشف فرآیندشبیه سازی فرآیندتجزیه و تحلیل فرآیندمهندسی مجدد فرآیندبهبود فرایندچرا کسب و کارها به نرم افزار BPM نیاز دارند؟فعالیت های تجاری بسیار پیچیده هستند و نرم افزار BPM کار را آسان می کند.نرم افزار BPM خطاها و هزینه ها را کاهش می دهد. اکثر کسب و کارهایی که مقدار زیادی پول، اعتبار یا کسب و کار کلی خود را از دست دادند، یک ویژگی مشترک داشتند. همه آنها به دلیل یک گرایش مشترک (عادی سازی انحراف) ضربه خوردند. عادی سازی انحراف به پدیده ای اطلاق می شود که کسب و کارها فرآیندهای معیوب را اتخاذ می کنند و همه کسانی که درگیر هستند آن را زیر سوال نمی برند. خطا از درون کسب و کار بیشتر به دلیل اشتباه در قضاوت از سوی کارمندان، ناآگاهی یا حتی بی دقتی ایجاد می شود. ناسا 7 نفر از خدمه خود را در فضا به دلیل خطاهای انسانی و فرآیندهای معیوب از دست داد. حادثه هسته‌ای چرنوبیل به دلیل نقص در فرآیند خنک سازی راکتور هسته ای به دلیل خطای قضاوت انسانی رخ داد. یک نرم افزار BPM به ریشه کن کردن چنین خطاهای انسانی کمک می کند. همچنین به عنوان یک سیستم نظارتی برای فرآیندهای دستی عمل می کند که در آن احتمال خطا و شکست بیشتر است.اشکالات عملیاتی را برطرف می کند.به ساده سازی فرآیندها از ابتدا تا انتها کمک می کند.به جای جایگزینی به بهبود فرآیندهای موجود کمک می کند.به تقویت فرآیندهای BPM موجود کمک می کند.با نرم افزار BPM، شرکت ها می توانند فرآیندها را در تمام بخش ها استاندارد کنند.با BPM می‌توان فرآیندها را برای اطمینان از اجرای کارآمد خودکار کرد.سیستم مدیریت فرآیند کسب و کار، پلتفرمی است که فرآیندها را اجرا می کند.این سیستم ها، ابزارهایی را برای مدیریت و خودکارسازی فرآیندهای تجاری ارائه می دهند و این امکان را می دهند که از مزایای BPM استفاده کنیم.سیستم مدیریت فرآیند کسب و کار یک ابزار نیست، بلکه سکویی برای مدیریت فرآیند کسب و کار است. BPMS مسئول ارائه زیرساختی است که از BPM و ابزارهای مرتبط پشتیبانی می کند. یک BPMS قوی از موارد زیر پشتیبانی می کند:مدل‌سازی فرآیند: توانایی ایجاد و اصلاح فرآیندها در نرم‌افزار، که شامل وظایفی مانند شناسایی عناصر گردش کار و تخصیص ویژگی‌ها به آن‌ها است.خودکارسازی گردش کار: توانایی اجرای خودکار وظایف در یک فرآیند بر اساس قوانین یا محرک های خاص.پردازش رویداد پیچیده (CEP): توانایی نظارت بر رویدادها و انجام اقدامات بر اساس معیارهای خاصی که برآورده می شوند.سکوی BPMS فرآیندهای کسب و کار را بهینه و خودکار می کند.فرآیندهای کسب و کار را بهینه و خودکار می‌کند.از خودکارسازی گردش کار و مهندسی مجدد فرآیند استفاده می‌کند.ناکارآمدی ها یا تنگناها را قبل از تبدیل شدن به یک مشکل شناسایی می کند.یکپارچگی را بهبود می‌بخشد چون می تواند سیستم های مختلف را به هم متصل کند تا اطلاعات در سراسر سازمان قابل دسترسی باشد. این امر باعث می شود افراد نسبت به کار خود و همچنین آنچه که همکارانشان در هر لحظه انجام می دهند دید بیشتری داشته باشند.انواع راه حل های BPMS:هنگام انتخاب ابزار مناسب برای سازمان خود، انواع راه حل  را در نظر بگیرید:سیستم مدیریت فرآیند کسب و کار سازمانی: یک راه حل داخلی که معمولاً توسط سازمان های بزرگ با فرآیندها و الزامات تجاری پیچیده در سطح سازمانی استفاده می شود. این راه حل از انعطاف پذیری و سفارشی سازی بالایی برخوردار است و به زمان و تلاش بیشتری برای پیاده سازی و نگهداری نیاز دارد.سیستم مدیریت فرآیند کسب و کار منبع باز: جایگزینی منبع باز برای محصولات تجاری، که در صورت خرید مستقیم آن به جای پرداخت هزینه های مجوز سالانه یا ماهانه به ازای هر کاربر، می تواند کمتر از نصف هزینه داشته باشد. راه‌حل‌های منبع باز اغلب نسبت به همتایان تجاری‌شان قابل تنظیم‌تر هستند، زیرا به جای اینکه از اجزای از پیش ساخته‌شده‌ای مانند مواردی که در سکوهای نرم‌افزاری اختصاصی استفاده می‌شوند، مشتق شوند، از صفر ساخته شده‌اند.چرا BPMS می‌تواند مفید باشد؟مزایای BPMS عبارتند از:افزایش کارایی: BPMS می تواند به مدیریت موثرتر فرآیندها کمک کند و درک و پیاده سازی آنها را آسان‌تر کند.کاهش هزینه ها: با پیاده سازی BPMS، می توان مدت زمانی را که کارکنان  برای مدیریت فرآیند کسب و کار صرف می کنند، کاهش داد. این امر به این دلیل که اجرای یک فرآیند خودکار بسیار کمتر از فرآیند دستی طول می‌کشد، منجر به صرفه جویی کلی در هزینه های سازمان می شود.افزایش سودآوری: پیاده‌سازی BPMS در شرکت‌هایی که به دلیل روابط ضعیف با مشتری یا عملیات ناکارآمد، حاشیه سود کم دارد، می‌تواند دقیقاً همان چیزی باشد که برای دستیابی به سود بالاتر از طریق بهبود کارایی و هزینه‌های عملیاتی کمتر و بدون قربانی کردن کیفیت، نیاز دارند!نحوه انتخاب سیستم BPMS مناسب برای سازمان:تعدادی از ویژگی‌ها برای ارزیابی عبارتند از:مدل سازی: با این ویژگی می‌توان مدلی برای تعریف اهداف و فرآیندهای کسب و کار ایجاد کرد.ارزیابی:  با این ویژگی می‌توان فرآیندها را ارزیابی، اندازه گیری و بهینه کرد.مانیتورینگ: با این ویژگی می‌توان فرآیندها را در زمان واقعی نظارت کرد و عملکرد ان‌ها را پیگیری کرد.ردیابی و اندازه‌گیری: با این ویژگی می‌توان شاخص‌های کلیدی عملکرد (KPI) مانند زمان چرخه، زمان هدایت و هزینه هر واحد را ردیابی و اندازه‌گیری کرد و در عین حال کیفیت ارائه خدمات به مشتریان را بهبود بخشید.مدیریت گردش کار داخلی: با این ویژگی می‌توان از BPMS برای مدیریت گردش کار داخلی با مراحل تأیید یا دروازه‌های تأیید استفاده کرد که به افراد خاصی در سازمان اجازه می‌دهد تا درخواست‌های تغییرات را قبل از پیاده‌سازی در سیستم‌های تولید یا انتشار در سرورها، تأیید یا رد کنند.تعدادی از بهترین نرم افزارهای رایگان و متن باز BPM در سال ۲۰۲۲نرم افزار Red Hat Process Automation Manager:این نرم‌افزار به کسب‌وکارها کمک می‌کند تا برنامه‌های اتوماسیون خودکار مبتنی بر ابر و میکروسرویس‌ها را ایجاد کنند. همچنین به کاربران تجاری این امکان را می دهد که فرآیندها و تصمیمات تجاری را مستند، مدیریت و خودکار کنند و بر ان‌ها نظارت کنند. Red Hat Process Automation Manager برای همکاری آسان کاربران تجاری طراحی شده است، تا اصلاح برنامه های تجاری به سرعت انجام شود.برخی از ویژگی های این نرم‌افزار عبارتند از:مدل‌سازی کسب‌وکار: این نرم‌افزار به کسب‌وکارها کمک می‌کند تا جریان‌های کاری و خط‌مشی‌ها را مدل‌سازی کنند.توسعه Cloud-Native: نرم افزار Red Hat Process Automation Manager در فضای ابری و برای کسب و کارهای ابری توسعه یافته است.موتور قواعد قدرتمند: این نرم افزار کمک می کند تا از پتانسیل کامل Drools، که یک موتور قوانین منبع باز پرکاربرد و بسیار توانمند است، استفاده کنیم.بهینه سازی منابع: نرم افزار Red Hat Process Automation Manager به کسب و کارها کمک می کند تا مسائل پیچیده بهینه سازی را با حل کننده داخلی خود حل کنند.نرم‌افزار Alfresco Process Services:نرم‌افزار Alfresco Business Process Management Services، یک نرم افزار مدیریت فرآیند کسب و کار است که برای استفاده سازمانی و توسعه دهندگان توسعه یافته است. همچنین یک راه حل منبع باز با عملکرد بالا است که انعطاف پذیری و مقیاس پذیری را برای مدیریت فرآیندهای مختلف حیاتی فراهم می کند. Alfresco مجموعه ای قدرتمند را ارائه می دهد که با طیف وسیعی از راه حل های سازمانی ادغام می شود و ایجاد، استقرار و نظارت بر فرآیندهای مهم تجاری را آسان می کند.ویژگی های Alfresco عبارتند از:سهولت در توسعه و استقرار برنامه های کاربردی تجاریمدیریت پرونده و کار قدرتمندقابلیت یکپارچه سازی آسان با برنامه های کاربردی مختلف مستقر در یک سازمانرسیدگی راحت به انطباق فرآیندنرم‌افزار Modelio:راهکار مدل‌سازی bpm منبع باز Modelio برای شرکت‌هایی که تیم‌های فناوری اطلاعات و متخصصان کدنویسی دارند، به نحو احسن طراحی شده است. این نرم افزار از html ،uml، زبان اسکریپت و bpmn برای اثبات راه حل های پیشرفته به متخصصانی مانند معماران سیستم، توسعه دهندگان، مدیران اجرایی، تحلیلگران و ... پشتیبانی می کند.با استفاده از Modelio، کاربران می توانند ماژول های خود را مطابق با نیازهایشان پیکربندی کنند. نرم افزار نیز با روشی که کاربران آن را سفارشی می کنند سازگار می شود. Modelio بسیار انعطاف پذیر و مقیاس پذیر است و با طیف گسترده ای از ماژول های از پیش برنامه ریزی شده مانند WSDL Designer، JavaDesigner، Togaf Architect و UML Testing profile ارائه می شود. کاربران می‌توانند افزونه‌های مدل و سایر افزونه‌ها را اضافه کنند تا نیازهای مدیریت فرآیند کسب‌وکار خود را برطرف کنند.برخی از ویژگی های کلیدی Modelio عبارتند از:یکپارچه سازی چند سکو: از نمایه های UML2 برای XSD، WSDL و BPEL پشتیبانی می کند.مدل سازی سرویس: از SoaML برای مدل سازی خدمات در محیط های توزیع شده پشتیبانی می کند.استفاده از BPMN: از BPMN برای مدل سازی فرآیند کسب و کار استفاده می کند.نرم‌افزار Camunda:کاموندا یک گردش کار منبع باز و سکوی خودکارسازی تصمیم گیری است که به ذینفعان و توسعه دهندگان کمک می کند تا برای دستیابی به اهداف تجاری با یکدیگر همکاری کنند. کاموندا BPMN 2.0 بسیار مقیاس پذیر است و قابلیت انطباق با نیازهای SME ها، MSME ها و شرکت های بزرگ را دارد. با Camunda BPMN، کسب‌وکارها می‌توانند به راحتی گردش‌های کاری BPMN و همچنین جداول تصمیم DMN را مدل‌ و ایجاد کنند.برخی از ویژگی های اصلی نرم افزار کاموندا BPM عبارتند از:موتور گردش کار BPMN: کاموندا می تواند به عنوان یک سرویس REST ریموت استفاده شود یا در برنامه جاوا تعبیه شود.موتور تصمیم DMN: نرم افزار BPML می تواند جداول تصمیم گیری مبتنی بر کسب و کار را اجرا کند و از قبل با موتور گردش کار کاربر یکپارچه می‌شود.مدل ساز: استفاده از مدلساز Camunda، آسان است و در ویرایش نمودارهای فرآیند BPMN و جداول تصمیم DMN کمک می کند.قابلیت Cockpit: این قابلیت به مدیران، توسعه دهندگان و مدیران کسب و کار کمک می کند تا جریان کار را برای کشف، تحلیل و حل مشکلات نظارت کنند.نرم‌افزار RunaWFE:نرم‌افزار RunaWFE، یک سیستم مدیریت فرآیند کسب و کار منبع باز است که تحت مجوز LGPL ارائه می شود. RunaWFE دارای یک رابط وب است که می تواند به راحتی با پایگاه داده‌های منطقه ای ادغام شود. همچنین می‌تواند با نرم افزار Alfresco BPM ادغام شود و از سیستم های عملیاتی Windows، Linux، Solaris و FreeBSD پشتیبانی می‌کند.ویژگی های اصلی RunaWFE عبارتند از:رابط کاربری تعاملی: یک رابط وب راحت و شهودی برای کاربر فراهم می کند.طراح فرآیندهای تجاری گرافیکی: با کمک طراح فرآیندهای تجاری گرافیکی RunaWFE، کاربران می توانند به راحتی فرآیندهای تجاری را در نمودارها نمایش دهند.استفاده از ربات های خودکار: یکی از ویژگی های منحصر به فرد این نرم‌افزار، استفاده از ربات‌ها برای اجرای خودکار وظایف است.نرم‌افزارهای BPMS ایرانینرم افزار مدیریت فرایند و BPMS پیوندنرم افزار مدیریت کسب و کار و BPMS پیوند متشکل از فرم ساز، گردش فرم و گزارش ساز می باشد. این سامانه برای الکترونیکی کردن فرآیندهای سازمانی طراحی شده است. نرم افزار مدیریت کسب و کار پیوند به شما این امکان را می دهد که بتوانید انواع فرم های سازمانی را بدون حتی یک خط کدنویسی ایجاد نموده و در سازمان خود انتشار دهید. با استفاده از این سامانه کاربر قادر خواهد بود انواع فیلدهای اطلاعاتی، نظیر فیلد تاریخ، فیلد متنی، عکس امضا و … را تنها با استفاده از drag &amp; drop موس، برروی محیط طراحی خود کشیده و انواع فرم های اطلاعاتی خود را طراحی کنید. سپس با تعریف انواع گردش برروی این فرم ها با استفاده از سامانه گردش فرم، آنها را در سازمان خود به گردش در آورده و با تولید انواع گزارشات پویا با بهره گیری از سامانه گزارش ساز، چرخه فرایند خود را تکمیل نمایید.BPMS پیوندسامانه گردش فرم، زیر سیستم نرم افزار BPMS پیوندشما می توانيد فرمهایی که ایجاد می کنيد به صورت خودکار به گردش درآورید تا حتما به صورت استاندارد، افراد با توجه به اولویت آنرا تایيد نمایند. با استفاده از سامانه گردش فرم پيوند، کاربران قادر خواهند بود تا انواع روال های گردش فرم را برای فرم های مختلف تعریف نمایند. همچنين امكان تعریف رویداد های مختلف نظير ارجاع نيز می باشد. به این معنا که اگر اتفاق مشخصی، مثل عمل امضا کردن رخ داد، سيستم به صورت خودکار اکشن مشخصی مثل ارجاع را اعمال مي نماید.زیر سیستم های نرم افزار BPMS پیوند:ابزار طراحی فرایند و روند تاییدکنندگانموتور مدیریت فرایندابزار پیگیری فرایندها و ثبت تاریخچهابزار طراحی فرم هاابزار مدیریت فرم هاابزار طراحی چارت سازمانیابزار تعریف گزارشاتموتور مدیریت گزارشاترابط متمرکز مبتنی بر وب جهت دسترسی به فرایندها و گزارشاتمهمترین مزایای نرم افزار BPMS و مدیریت کسب و کار پیوند:مبتنی بر تکنولوژی‌های متن بازسرعت بسیار بالامبتنی بر وب و مستقل از سکودارای گواهی امنیت آزمایشگاه آپا دانشگاه فردوسی مشهدواسط کاربر ساده و کاربر پسندامکان طراحی و پیاده سازی انواع فرم های سازمانی بدون محدودیت تعداد فرمپشتیبانی از کنترل نسخهتعریف انواع مجوزهای دسترسی برروی تک تک فیلدهای اطلاعاتی فرم هاگزارش ساز پویایکپارچگی کامل با سامانه گردش مکاتباتو ...امکانات و قابلیت های نرم افزار مدیریت کسب و کار پیوند:تولید انواع فرایندهای سازمانی در قالب یک سیستم گردش مکاتبات یکپارچهمدیریت و اجرای چندین فرایند همزمانامکان تعریف انواع فرم های سازمانیامکان تعریف انواع فیلدهای اطلاعاتی نظیر جدول، تصویر امضا، فایل، تکرار شوندهامکان تعریف نسخه های گوناگون برروی فرم هاامکان تعریف اعتبار سنجی ها و انواع مجوزهاامکان تعریف انواع گردش بروی فرم هاامکان معرفی چارت سازمانی و جایگاه های سازمانی به موتور گردش کارمشاهده مراحل گردش کاری انجام شده به صورت گرافیکیامکان تعریف انواع شرطهای تصمیم گیری در مراحل مختلف گردش کارامکان انتشار فرم با استفاده از یک کلیکامکان اتصال به منابع داده ای مختلفامکان مدیریت فرم ها با استفاده از وب سرویس های سیستم های خارجیامکان گزارش گیری های متنوع با استفاده از سامانه گزارش ساز پیوندنمونه فرایند طراحی شده با BPMS پیوندنرم‌افزار BPMS یا فرم‌ساز مدیریت فرایندهای فراگسترنرم‌افزار BPMS فراگستر نسخه بومی شده نرم‌افزار جهانی و قدرتمند پروسس‌میکر (ProcessMaker) است که یکی از بهترین نرم‌افزارهای BPMS متن باز دنیاست که در اختیار عموم قرار گرفته است.فراگستر با تکیه بر دانش تیم تولید و توسعه خود، اقدام به گسترش و بومی‌سازی این نرم‌افزار کرده است و در این راستا به جهت استفاده راحت‌تر کاربران، کارتابل گردش کار این نرم‌افزار را بازنویسی کرده و برخی ماژول‌های کاربردی و مهم از جمله تقویم شمسی را در این نرم‌افزار توسعه داده و با یکپارچه سازی آن با کارتابل اتوماسیون اداری تحت وب فراگستر محیطی را فراهم کرده تا کاربران در حین کار جهت اداره امور مربوط به مکاتبات و ‌نامه‌نگاری‌های خود بتوانند همزمان فرایندها و روال‌های کاری خود را نیز مدیریت و کنترل نمایند.قابلیتهای نرم‌افزار فرم‌ساز مدیریت فرایندهای فراگستربهره‌گیری از نرم‌افزار مدیریت فرآیندهای کسب و کار (BPMS) در کنار نسخه پایه سیستم اتوماسیون اداری تحت وب، امکان تعریف و طراحی فرم‌ها، مدیریت و کنترل جریان گردش آنها در سازمان را با حداقل دانش برنامه نویسی، بصورت کاملا تحت وب و بدون نیاز به نصب نرم‌افزار سمت کلاینت به راحتی در اختیار کاربران قرار می‌دهد.برخی از قابلیتهای فرم‌ساز فراگستر عبارت است از:یکپارچگی کامل با کارتابل اتوماسیون اداری فراگسترقابلیت طراحی و مدل‌سازی فرآیندهای سازمانی در محیط کاملا گرافیکی و مطابق با استاندارد BPMN2محیط طراحی فرآیند و فرم‌ها به صورت (Dragable)قابلیت طراحی انواع فرم‌های سازمانامکان تعریف فرایندها بصورت نامحدودامکان سفارشی‌سازی ساختار گرافیکی فرم‌هاامکان دسته‌بندی گروه‌های مختلف فرایندهاامکان تعریف زیرفرآیندتعریف متغیر برای دریافت اطلاعات در فرم‌ها با پشتیبانی از انواع داده رشته‌ای، عددی، پولی، فایلفراخوانی کاربران و چارت سازمانی تعریف شده در اتوماسیون اداری و تعیین سطح دسترسی آنها به فرایندهاامکان تعریف جانشین برای کارتابل مدیریت جریان کار در سیستم اتوماسیون اداریپشتیبانی کامل از معماری سرویس‌گرا SOAامکان فراخوانی یا درج اطلاعات در سایر پایگاه داده‌ها از طریق فراخوانی وب سرویسقابلیت تعریف انواع شرط‌ها، انتساب‌ها در مدل فرایندقابلیت پشتیبانی از JavaScript برای برنامه‌نویسی‌های پیشرفتهامکان بارگذاری و استفاده از کتابخانه‌های JavaScript در فرم‌هاپشتیبانی از Sub-forms درون یک فرمامکان شروع خودکار فرایند براساس زمانبندی تعیین شده درTimerقابلیت Import و Export کردن فرم‌هاقابلیت Import و Export کردن فرایندهاامکان یکپارچگی کاربران با LDAP و Active Directory از طریق اتوماسیون اداریپشتیبانی از زبان فارسی و تقویم فارسی در طراحی فرایندواکنش‌گرا بودن نرم‌افزار (Responsive)عدم محدود کردن کاربر به سیستم عامل ویندوز و یا حتی به کامپیوتر و همچنین عدم محدودسازی سرویس‌دهنده به ویندوز یا لینوکسعدم وابستگی به مرورگر خاصامکان افزودن قابلیتهای جدید در قالب افزونه (پلاگین)امکان بهره‌گیری از نرم‌‎افزار گزارش‌ساز جهت ساخت گزارش‌های تخصصی و بسیار کاربردیدسته‌بندی و مدیریت آسان کاربران، گروه‌ها ودپارتمان‌هاامکان ارسال و دریافت پیامک و ایمیل در طی اجرای فرایند با استفاده از سرویس پیامک و ایمیل سیستم اتوماسیون اداریچند زبانه بودن نرم‌افزار….مراحل ساخت فرایند در نرم‌افزار BPMS فراگستر در یک نگاه۱- طراحی مدل فرایند(Process Model)بطور گرافیکی و برمبنای استاندارد BPMN2.0 فرایند انجام کار را طراحی کنید.۲- تعریف متغیرها(Variables)انواع متغیرهای مختلف در یک فرایند به همراه مدل ذخیره سازی اطلاعات را تعریف کنید. ۳- طراحی فرم(Dynamic Forms)بصورت بصری و با قابلیت Drag &amp; Drop فرمهای خود را به‌سادگی طراحی کنید.۴- تعریف قوانین تجاری(Routing Rules)بدون نیاز به برنامه‌نویسی، قوانین کسب و کار را تعیین کنید.۵- تخصیص کاربران به فعالیت‌ها(Assignment Rules)مشخص کنید چه کسی، هر فعالیت از فرآیند را اجرا خواهد کرد؟۶- یکپارچه‌سازی(Integrations)اطلاعات فرایندها را با سایر نرم‌افزارهای موجود در سازمان یکپارچه کنید.۷- اجرای فرایند(Execute)فرمهای آماده شده را بصورت تحت وب در سطح کل سازمان اجرا و در کارتابل اتوماسیون اداری به گردش دربیاورید.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»[1] https://kissflow.com/workflow/bpm/what-is-bpms/[2] https://solutionsreview.com/business-process-management/the-top-free-and-open-source-bpm-software/[3] https://samatoos.ir/[4] https://www.faragostar.net/why-faragostar/</description>
                <category>ریحانه علیمرادی</category>
                <author>ریحانه علیمرادی</author>
                <pubDate>Fri, 30 Dec 2022 17:32:07 +0330</pubDate>
            </item>
                    <item>
                <title>Event Sourcing</title>
                <link>https://virgool.io/@rayhanehal/event-sourcing-skscmdkxn6lq</link>
                <description>ایونت سورسینگ روشی متفاوت برای ذخیره داده هاست.برنامه‌ زیر را در نظر بگیرید که هیچ وابستگی خارجی ندارد و مانند اکثر برنامه‌ها داده‌ها و وضعیت فعلی را ذخیره می کند.فرض کنید یک پایگاه داده رابطه‌ای داریم و می‌خواهیم رکورد جدیدی را وارد کنیم، مثلا امروز 10 عدد از محصول جدیدی را در انبار دریافت کرده‌ایم. پس این رکورد را ایجاد و درج می‌کنیم.بعد از مدتی پنج عدد دیگر از آن محصول را وارد انبار می‌کنیم. بنابراین اتفاقی در سیستم رخ می‌دهد، و سیستم یک عملیات به روز رسانی را انجام می‌دهد.سپس یک سفارش شش عددی از آن کالا را ارسال می‌کنیم و حالا باید مقدار آن را کاهش دهیم.اتفاقات دیگری نیز در سیستم رخ می‌دهد مانند شمارش موجودی انبار، که انباردار موجودی انبار را دوباره محاسبه می‌کند. فرض کنیم بعد شمارش دوباره موجودی، 50 عدد از این محصول خاص را پیدا کردیم، پس اکنون 59 عدد از آن داریم.اکثر برنامه‌ها با پیگیری وضعیت فعلی، وضعیت و داده‌ها را ذخیره می‌کنند.تفاوت ایونت سورسینگ این است که به جای وضعیت فعلی، رویدادها را به عنوان حقایق ثبت می‌کند. این بدان معنا است که می‌توان از رویدادها برای استخراج وضعیت فعلی یا هر نقطه دیگری از زمان استفاده کرد.در مثال مذکور، رویدادهای زیر را داشتیم:ذخیره کردن رویدادها اساساً با ذخیره وضعیت فعلی متفاوت است زیرا با وضعیت فعلی نمی دانیم چگونه به تعداد 59 رسیده‌ایم. اما با ایونت سورسینگ، می‌توان با رویدادها به وضعیت فعلی رسید و هیچ داده‌ای از دست نمی‌رود.&lt;رویدادها حقایقی از اتفاقات رخ داده درون سیستم هستند، نه آن چیز که قرار است رخ دهد.&gt;اکنون ممکن است این سوال برایتان ایجاد شده باشد که تفاوت بین ایونت سورسینگ و لاگ تراکنش (transaction log) چیست؟لاگ تراکنش انتقال وضعیت را نشان می دهد، و نه دلیل وقوع آن را. برای مثال، در لاگ تراکنش می‌توان مشاهده کرد که یک عملیات به روز رسانی برای محصولی خاص وجود دارد که در آن محصول 5 عدد افزایش یافته است، اما نمی‌توان فهمید که چرا این اتفاق رخ داده است.رویدادها علاوه بر اینکه شامل داده‌های انتقال حالت، نام و سایر فراداده‌ها هستند، جزئیات بیشتری را هم در مورد آنچه در سیستم رخ داده ارائه می‌دهند.معماری ایونت سورسینگ«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»[1]https://learn.microsoft.com/en-us/azure/architecture/patterns/event-sourcing</description>
                <category>ریحانه علیمرادی</category>
                <author>ریحانه علیمرادی</author>
                <pubDate>Sun, 27 Nov 2022 12:58:23 +0330</pubDate>
            </item>
                    <item>
                <title>Service Mesh</title>
                <link>https://virgool.io/@rayhanehal/service-mesh-lgitwnawleuq</link>
                <description>&quot;مش سرویس&quot; چیست؟مش سرویس یک فناوری عالی است که نحوه ارتباط سرویس ها در معماری میکروسرویس را بهبود می بخشد. برای مشاهده و بینش بهتر در مورد میکروسرویس، می‌توان از مش سرویس استفاده کرد.مش سرویس یک لایه زیرساخت اختصاصی برای تسهیل ارتباط سرویس به سرویس است.مش سرویس ارتباطات را هوشمندتر می کند زیرا عوامل زیر را مدیریت می کند:• منطق تلاش مجدد• تقسیم ترافیک• منطق احراز هویت• مدیریت گواهی• لایه مشاهده پذیریدر واقع ایده اصلی &quot;قرار دادن تمام ارتباطات&quot; در یک پروکسی sidecar است.اگر فقط روی ایجاد منطق مربوط به سرویس خود تمرکز کنیم، پروکسی sidecar لایه ارتباطی را برای ما مدیریت خواهد کرد.پروکسی sidecar چیست؟ مش سرویس دارای چندین جزء معماری است که یکی از آنها یک صفحه کنترلی است که وظیفه مدیریت ارتباطات سرویس را بر عهده دارد. این مکانیسم &quot;پراکسی sidecar&quot; نامیده می شود.پس از نصب پراکسی، سرویس ما دیگر مستقیماً با سایر سرویس‌ها ارتباط برقرار نمی‌کند.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»[1] https://www.nginx.com/blog/what-is-a-service-mesh/</description>
                <category>ریحانه علیمرادی</category>
                <author>ریحانه علیمرادی</author>
                <pubDate>Sun, 27 Nov 2022 11:06:35 +0330</pubDate>
            </item>
                    <item>
                <title>Single Sign on &amp; Identity Management</title>
                <link>https://virgool.io/@rayhanehal/single-sign-on-sso-and-identity-management-nduips7uwjdj</link>
                <description>مدیریت هویت چارچوبی است که برای احراز هویت و امتیازات کاربر استفاده می شود و بررسی می کند که آیا کاربر به فایل ها، شبکه ها و سایر منابعی که درخواست کرده دسترسی دارد یا خیر. همچنین با استفاده از مدیریت اطلاعات توصیفی کاربران بررسی می کند که اطلاعات چگونه و توسط چه کسی می تواند مورد دسترسی قرار گیرد و اصلاح شود. سیستم‌های IAM(Identity  Access Management) ابزارها و برخی فناوری‌ها را برای تغییر نقش کاربر، پیگیری فعالیت‌های کاربر و ... در اختیار مدیران قرار می‌دهند.احراز هویت یکپارچه (Single sign-on/SSO) یک ویژگی کنترل دسترسی برای چندین سیستم نرم افزاری مرتبط و مستقل است که در آن کاربر با شناسه و رمز عبور واحد وارد می شود تا به یک یا چند سیستم متصل بدون نام کاربری یا رمز عبور مختلف دسترسی پیدا کند. SSO معمولاً روی Lightweight Directory Access Protocol (LDAP) و پایگاه‌های داده LDAP ذخیره شده در سرورها انجام می‌شود. (SSO را می‌توان از طریق شبکه‌های IP با استفاده از کوکی‌ها به دست آورد، اما این تنها در صورتی است که سایت‌ها یک دامنه اصلی DNS مشترک داشته باشند.) طرح های احراز هویت مشترک شامل OAuth، OpenID، OpenID Connect و Facebook Connect میشود. همه طرح‌های احراز هویتی که استفاده می‌شوند نیاز دارند تا کاربر هر بار که به سایت یا برنامه‌ای دسترسی پیدا می‌کند، اعتبار خود را وارد کند، اما نباید این را با SSO اشتباه بگیریم چون با استفاده از SSO کاربران می توانند اعتبار خود را یک بار اما همیشه در هنگام ورود وارد کنند.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»[1] https://www.techtarget.com/searchsecurity/definition/single-sign-on</description>
                <category>ریحانه علیمرادی</category>
                <author>ریحانه علیمرادی</author>
                <pubDate>Sun, 27 Nov 2022 11:06:19 +0330</pubDate>
            </item>
                    <item>
                <title>Continuous Delivery</title>
                <link>https://virgool.io/@rayhanehal/continuous-delivery-texvov5xiycj</link>
                <description>تحویل مستمر (CD) به تغییر کد کاربردی نرم افزار در زمان توزیع و پیاده سازی نرم افزار اشاره دارد.قبل از تحویل مداوم، یکپارچگی مداوم (CI) انجام می شود که به نوبه خود مسئول یکپارچگی مداوم در پیاده سازی یا فرآیند تست است. فرآیندهای تستی که قبلاً با موفقیت اجرا شده اند، از طریق تحویل مداوم به نسخه نرم افزار منتقل می شوند.مزیت اصلی تحویل مداوم این است که کد را برای پذیرش کاربر بررسی میکند. همچنین محیط توسعه و تولید را نیز بررسی می کند. در محیط توسعه، عملکرد کد نرم افزار، از جمله منطق حرفه، تست می شود.تحویل مستمر فرآیندی است که تکمیل نشده، اما به توسعه‌دهندگان بازخورد منظمی در مورد فرآیندهای در حال انجام می‌دهد تا بتوانند قبل از اینکه سایر جنبه‌ها در توسعه فرآیندها لحاظ شود، در کوتاه‌مدت اصلاحات را انجام دهند. در نتیجه، بهره‌وری افزایش می‌یابد و توسعه‌دهندگان می‌توانند بر روی وظایفی که در خدمت فرآیند توسعه هستند تمرکز کنند. تحویل مداوم همچنین زمانی که فرآیند توسعه تکراری به دلیل افزایش پیچیدگی پروژه دشوار می شود، بسیار کمک کننده است. در این مورد، تحویل مستمر به توسعه دهندگان این امکان را می دهد که پروژه را ساده کرده و نسخه های بیشتری را ارائه دهند. این امر پروژه را قابل مدیریت تر، قابل پیش بینی تر، قابل اعتمادتر و انعطاف پذیرتر می کند.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»[1] https://continuousdelivery.com/</description>
                <category>ریحانه علیمرادی</category>
                <author>ریحانه علیمرادی</author>
                <pubDate>Sun, 27 Nov 2022 11:05:58 +0330</pubDate>
            </item>
                    <item>
                <title>Static Code Analysis</title>
                <link>https://virgool.io/@rayhanehal/static-code-analysis-such-as-sonarqube-kuh94imfsecz</link>
                <description>تجزیه و تحلیل ایستا چیست؟تجزیه و تحلیل ایستا روشی برای اشکال زدایی است که با بررسی خودکار کد منبع بدون نیاز به اجرای برنامه انجام می شود. این به توسعه دهندگان درک درستی از پایه کدشان را می دهد و به اطمینان از سازگاری، ایمن بودن و امنیت آن کمک می کند.تحلیل کد ایستا چیست؟تجزیه و تحلیل کد ایستا به عملیات انجام شده توسط یک ابزار تجزیه و تحلیل ایستا اشاره دارد که تجزیه و تحلیل مجموعه ای از کدها در برابر یک مجموعه (یا مجموعه های متعدد) از قوانین کدگذاری است.تجزیه و تحلیل کد ایستا و تجزیه و تحلیل ایستا اغلب به جای هم به همراه تجزیه و تحلیل کد منبع استفاده می شود.این نوع تجزیه و تحلیل به نقاط ضعف در کد منبع می پردازد که ممکن است منجر به آسیب پذیری شود. البته، ممکن است از طریق بررسی دستی کد نیز به این امر برسید. اما استفاده از ابزارهای خودکار بسیار موثرتر است.آنالیز ایستا چه زمانی انجام می شود؟تجزیه و تحلیل کد ایستا در اوایل توسعه، و قبل از شروع تست نرم افزار انجام می شود. برای سازمان هایی که DevOps را تمرین می کنند، تجزیه و تحلیل کد ایستا در مرحله &quot;ایجاد&quot; انجام می شود.تجزیه و تحلیل کد ایستا با ایجاد یک حلقه بازخورد خودکار، از DevOps پشتیبانی می کند. به این ترتیب توسعه دهندگان زودتر متوجه مشکلات کدشان می شوند و رفع این مشکلات آسان تر خواهد بود.تفاوت بین تحلیل ایستا و تحلیل پویا چیست؟هر دو نوع عیوب را تشخیص می دهند. تفاوت در جایی از چرخه عمر توسعه است که نقص ها را در ان پیدا می کنند.تجزیه و تحلیل ایستا قبل از اجرای یک برنامه، نقص ها را شناسایی می کند.تجزیه و تحلیل کد پویا پس از اجرای یک برنامه، نقص ها را شناسایی می کند.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»[1] https://owasp.org/www-community/controls/Static_Code_Analysis</description>
                <category>ریحانه علیمرادی</category>
                <author>ریحانه علیمرادی</author>
                <pubDate>Sun, 27 Nov 2022 11:05:40 +0330</pubDate>
            </item>
                    <item>
                <title>Monitoring Tools</title>
                <link>https://virgool.io/@rayhanehal/monitoring-tools-such-as-prometheus-nsttegq3lunp</link>
                <description>نظارت بر نرم افزار منتشر شده بخش اساسی از چرخه حیات آن است. ابزارهای مختلفی برای نظارت بر نرم افزار وجود دارد، اما Prometheus قطعا یک ابزار کاربردی برای نظارت بر معیارهای مختلف برنامه است. پرومتئوس:ابزار Prometheus این امکان را می دهد که معیارها را جمع آوری، پردازش، فیلتر، و تجمیع کنیم و در نهایت آنها را در قالبی قابل خواندن برای انسان نمایش دهیم. در Prometheus، کل پروژه متمرکز است و می توانید برنامه را از یک سرور واحد کنترل کنید و معیارها را در یک نقطه پایانی HTTP در مرورگر وب خود مشاهده کنید.اگرچه می توان از Prometheus برای هر برنامه ای استفاده کرد، اما عمدتاً از آن برای Kubernetes استفاده می شود زیرا بسیاری از ویژگی های Prometheus کاملاً با Kubernetes مطابقت دارد. به عنوان مثال، داده های چند بعدی، فرمت سنجه ها و کشف خدمات. از این رو برنامه Kubernetes بیشتر با استفاده از Prometheus نظارت می شود.افراد جامعه توسعه دهندگان، Prometheus را به عنوان یک ابزار نظارتی عالی برای نظارت بر عملکرد، نظارت ابری، نظارت بر اینترنت اشیا و ... می شناسند. سهولت استفاده و تطبیق پذیری آن، آن را برای بسیاری از انواع برنامه ها مناسب کرده است و تقریباً می تواند هر نوع سنجه ای را کنترل کند.پرومتئوس  برای ثبت داده های زمان عددی بسیار مناسب است. با نظارت ماشین محور و همچنین بسیار پویا و سرویس گرا به خوبی کار می کند. پشتیبانی از پرس و جوی داده های چند بعدی نیز از تخصص های آن است.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»[1] http://tryqa.com/what-is-monitoring-tools-in-software-testing/</description>
                <category>ریحانه علیمرادی</category>
                <author>ریحانه علیمرادی</author>
                <pubDate>Sun, 27 Nov 2022 11:05:20 +0330</pubDate>
            </item>
                    <item>
                <title>Log Management Tools</title>
                <link>https://virgool.io/@rayhanehal/log-management-tools-such-as-elk-fyb1hrfba03y</link>
                <description>معماری سطح بالای ابزارهای مدیریت لاگابزارهای مدیریت لاگ عمدتاً لاگها را از سرورهای مختلف از جمله برنامه‌های کاربردی، پایگاه داده، سرورهای پیام‌رسان و ... جمع‌آوری می‌کنند و انها را به یک سرور متمرکز ارسال می‌کنند تا بعدا لاگها را در پایگاه داده تجزیه و تحلیل و فهرست‌بندی کند. سپس کاربر نهایی می تواند وارد کنسول این ابزارها شود و گزارش های ایجاد شده از  لاگ ها را تجزیه و تحلیل کند. نمودار زیر یک معماری بسیار سطح بالا را به همراه طبقه بندی کاربران نهایی نشان می دهد:در زیر به برخی از عناصر مختلف چنین ابزارهایی اشاره شده است:عوامل(agent) لاگ به سیستم که لاگ ها را جمع می کنندموتور نمایه سازی که لاگ ها را نمایه می کندسرور مدیریت لاگ که درخواست کاربران را برای گزارش ها پردازش می کندموتور استقرار که برای نصب عوامل لاگ استفاده می شودطبقه بندی مختلف گزارش هادر سطح بالا، ابزارهای تحلیل گزارش مانند SPLUNK، Logstash، SumoLogic و ... می توانند به تولید انواع گزارش ها از فایل های لاگ جمع آوری شده از منابع مختلف (سرورها) کمک کنند:گزارش های فنی که می تواند اطلاعاتی در مورد خطاهای مربوط به برنامه/سرور، عملکرد برنامه و ... ارائه دهد.گزارش‌های حرفه مشتق شده ای که می‌توانند به تحلیل‌گران کسب‌وکار/ صاحبان محصول کمک کنند.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»[1] https://www.softwareadvice.com/log-management/</description>
                <category>ریحانه علیمرادی</category>
                <author>ریحانه علیمرادی</author>
                <pubDate>Sun, 27 Nov 2022 11:04:53 +0330</pubDate>
            </item>
                    <item>
                <title>Container Orchestration</title>
                <link>https://virgool.io/@rayhanehal/container-orchestration-such-as-kubernetes-hytnrfh88mdz</link>
                <description>تعریف هم‌نواسازی کانتینر(Container Orchestration)هم‌نواسازی کانتینر فرآیند خودکار مدیریت یا زمان‌بندی کار کانتینرهای جداگانه برای برنامه‌های کاربردی بر اساس میکروسرویس‌ها در چندین خوشه است.هم‌نواسازی کانتینر، خودکارسازی تمام جنبه های هماهنگی و مدیریت کانتینرها است. هم‌نواسازی کانتینر بر مدیریت چرخه زندگی کانتینرها و محیط های پویای آنها متمرکز است.چرا به هم‌نواسازی کانتینر نیاز داریم؟هم‌نواسازی کانتینر برای خودکارسازی وظایف زیر در مقیاس بالا استفاده می‌شود: - پیکربندی و زمان‌بندی کانتینرها- تهیه و استقرار کانتینرها- در دسترس بودن کانتینرها - پیکربندی برنامه‌ها از نظر کانتینرهایی که در آنها اجرا می‌شوند- مقیاس‌بندی کانتینرها برای متعادل کردن بار کاری برنامه‌ها در سراسر زیرساخت- تخصیص منابع بین کانتینرها- تعادل بار، مسیریابی ترافیک و کشف سرویس کانتینرها- نظارت بر سلامت کانتینرها- ایمن سازی تعاملات بین کانتینرهاابزارهای هم‌نواسازی برای Kubernetes شامل ویژگی های زیر است: استقرار و تکرار خودکار کانتینرهامقیاس آنلاین یا کوچک کردن خوشه های کانتینرمتعادل کننده بار گروه های کانتینربرنامه ریزی مجدد خودکار کانتینرهای ناموفقدر معرض قرار گرفتن کنترل شده پورت های شبکه به سیستم های خارج از خوشههم‌نواسازی کانتینر کوبرنتیزهم‌نواسازی در خدمات کانتینر برای Kubernetes، امکان خوشه بندی کانتینر را از طریق موتور هماهنگ سازی کانتینر فراهم می کند. Kubernetes دارای مدیریت اعلامی است که پیچیدگی را پنهان می کند و منبع باز است بنابراین می توانید آن را در هر جایی اجرا کنید.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»[1] https://www.vmware.com/topics/glossary/content/container-orchestration.html#:~:text=Container%20orchestration%20is%20the%20automation,networking%2C%20load%20balancing%20and%20more.</description>
                <category>ریحانه علیمرادی</category>
                <author>ریحانه علیمرادی</author>
                <pubDate>Sun, 27 Nov 2022 11:04:34 +0330</pubDate>
            </item>
                    <item>
                <title>Docker &amp; Containerization</title>
                <link>https://virgool.io/@rayhanehal/docker-and-containerization-xsrwqjloiyqu</link>
                <description>فناوری Docker مفهومی به نام &quot;Containerization&quot; را ارائه می دهد. Containerization کمک می‌کند تا برنامه‌های کاربردی را در محیط‌هایی که از سخت‌افزار اصلی جدا شده‌اند، مستقر کنیم.کانتینر (Container) بسته ای است که یک برنامه کاربردی با تمام قسمت هایی که نیاز دارد را (مانند کتابخانه ها و وابستگی ها) تشکیل می دهد. به جای میزبانی هر سیستم عامل در هر برنامه، لایه دیگری به نام &quot;موتور کانتینر&quot; بین سیستم عامل و برنامه ها اضافه می شود. این به سیستم عامل اجازه می دهد تا در بین همه کانتینرها به اشتراک گذاشته شود. در نتیجه کانتینرها که نیازی به تعبیه سیستم عامل کامل ندارند، بسیار سبک وزن هستند(معمولاً حدود 5 تا 100 مگابایت).داکر چیست؟یک مشکل کلاسیک در صنعت حمل و نقل را در نظر بگیرید:آیتم هایی با اشکال و ویژگی های مختلف داریم. برخی شکننده و برخی سخت هستند و هیچ راه استانداردی برای بسته بندی این اقلام وجود ندارد. در این مورد چه باید کرد؟اینجا جایی است که یک کانتینر می تواند کمک کند!هر کالایی که باشد، می توان آن را در این کانتینر بسته بندی و بدون هیچ تغییری از مبدا به مقصد منتقل کرد. اکنون همان سناریو را به صنعت نرم افزار نگاشت کنید. هر برنامه دارای تفاوت هایی در اجزای فرانت اند، بک اند و پایگاه داده است.ما به یک روش استاندارد برای بسته بندی برنامه با وابستگی های آن و استقرار آن در هر محیطی نیاز داریم. داکر با کانتینرهایش دقیقاً همین نیاز را براورده می کند. داکر ابزاری است که برای آسان‌تر ساختن، استقرار و اجرای برنامه‌ها با استفاده از کانتینرها طراحی شده است.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»[1] https://enable.com/blog/introduction-to-docker-and-containerization</description>
                <category>ریحانه علیمرادی</category>
                <author>ریحانه علیمرادی</author>
                <pubDate>Sun, 27 Nov 2022 11:04:19 +0330</pubDate>
            </item>
                    <item>
                <title>Message Queue</title>
                <link>https://virgool.io/@rayhanehal/message-queue-such-as-kafka-and-rabbitmq-ypmmwhou8szm</link>
                <description>اغلب با بزرگتر شدن سیستم و برای جلوگیری از هر گونه شکست، از معماری یکپارچه قدیمی به معماری میکرو سرویس رو می‌آوریم. با تقسیم برنامه به واحدهای مستقل کوچکتر نیز، تعداد تعامل بین هر واحد به طور قابل توجهی افزایش می یابد.* صف پیام(Messaging queue) راه دیگری برای برقراری ارتباط و هماهنگی به طور ناهمزمان به ویژه در واحد جدا شده ارائه می دهد و در عین حال عملکرد، قابلیت اطمینان و مقیاس پذیری را بهبود می بخشد. * مؤلفه ای که پیام را به صف اضافه می کند تولید کننده نامیده می شود و مؤلفه ای که پیام را بازیابی و پردازش می کند مصرف کننده نامیده می شود. * مصرف کننده و تولیدکننده مستقیماً با هم تعامل ندارند و از کارگزار(broker) به عنوان کسی که معمولاً صف را مدیریت می کند استفاده می کند.صف پیام به عنوان ارتباط نقطه به نقطه نیز شناخته می شود. نمونه ای از مبادله نقطه به نقطه در دنیای واقعی می تواند تحویل بسته باشد. تصور کنید که شما 3 محصول را در یک بازار سفارش داده اید و هر یک از آنها توسط فروشنده متفاوتی فروخته می شود. شما انتظار دارید 3 بسته دریافت کنید. این یک ارتباط نقطه به نقطه است زیرا یک پیام (بسته های شما) توسط تولیدکنندگان (فروشندگان) مستقیماً برای یک مصرف کننده خاص (شما) ارسال می شود. البته، این یک مقایسه ابتدایی بود زیرا یک صف پیام می تواند یک یا چند مصرف کننده داشته باشد. در چنین حالتی، کارگزار سعی می کند پیام ها را به طور مساوی بین آنها توزیع کند. تنها تضمین این است که هر پیام منفرد فقط یک بار به یکی از مصرف کنندگان در دسترس تحویل داده می شود.صف های پیام با دو ویژگی دوام و ماندگاری نیز شناخته می شوند. هنگامی که هیچ مصرف کننده فعالی وجود ندارد، کارگزار پیام ها را قبل از حذف آنها از صف نگه می دارد. به این ترتیب پیام ها بادوام هستند. اما اگر کارگزار از کار بیفتد و در این مدت دوباره راه اندازی شود، ممکن است پیام های بافر را از حافظه حذف کند. برای جلوگیری از حذف، باید پیام ها را با افزودن آنها به یک فایل لاگ ماندگار حفظ کنیم.کافکا آپاچی(Apache Kafka) و RabbitMQ نمونه‌هایی از صف پیام‌رسانی هستند.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»[1] https://www.dynatrace.com/news/blog/what-is-a-message-queue/</description>
                <category>ریحانه علیمرادی</category>
                <author>ریحانه علیمرادی</author>
                <pubDate>Sun, 27 Nov 2022 11:04:03 +0330</pubDate>
            </item>
                    <item>
                <title>Business Rules Management Systems (BRMS)</title>
                <link>https://virgool.io/@rayhanehal/business-rules-management-systems-brms-ksranqwpic6d</link>
                <description>یک سیستم مدیریت قوانین کسب و کار (BRMS) اغلب بهترین انتخاب برای مدیریت قوانین کسب و کار در تصمیم گیری با حجم بالا و تاخیر کم (تصمیم گیری های سریع، آنی و تکراری) است.یک BRMS از قوانین تجاری برای تعریف، استقرار، مدیریت و حفظ انواع منطق تصمیم گیری مورد استفاده توسط سیستم های عملیاتی استفاده می کند. در این زمینه، قوانین کسب و کار عبارت‌های منطقی هستند که شامل سیاست‌ها، نیازمندی‌ها و عبارات شرطی برای تعیین اقداماتی هستند که در برنامه‌ها انجام می‌شوند.نرم‌افزار موروثی معمولاً شامل قوانین تجاری تعبیه‌شده است که قدیمی، نامعتبر، غیرقابل استفاده یا در تضاد با تغییرات بازار یا صنعت است. طبق معمول، نرم افزارهای موروثی مشکل ساز هستند و گاهی اوقات یک مانع جدی برای نیازمندی‌های فعلی در تصمیم گیری هستند.ابزارهای BRMSای وجود دارند که می‌توانند قوانین تجاری تعبیه‌شده در برنامه‌های موروثی را استخراج کرده و آنها را به‌عنوان سرویس‌های تصمیم‌گیری با همبستگی کم در BRMS پیاده‌سازی کنند. داشتن تمام قوانین تجاری خارج از همه برنامه ها و ذخیره شده در یک مخزن، حداکثر کنترل و انعطاف پذیری مخصوصا از نظر انطباق ها و تغییرات بلادرنگ را می دهد. با داشتن قوانین کسب و کار خارجی و قابل دسترسی برای کارکنان عملیاتی (نه تنها توسعه دهندگان)، BRMS چابکی و بهره وری کسب و کار را افزایش می دهد و باعث صرفه جویی در هزینه و تغییرات منطقی سریعتر می شود. با این حال، در جایی که سرعت و تأخیر نگرانی اصلی نیست، عاقلانه است که از نرم افزار مدل سازی تصمیم برای مدیریت منطق از تصمیمات تجاری تا خودکارسازی استفاده شود.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»[1] https://www.progress.com/faqs/corticon-faqs/what-is-a-business-rules-management-system</description>
                <category>ریحانه علیمرادی</category>
                <author>ریحانه علیمرادی</author>
                <pubDate>Sun, 27 Nov 2022 11:03:46 +0330</pubDate>
            </item>
                    <item>
                <title>Business Process Management Systems (BPMS)</title>
                <link>https://virgool.io/@rayhanehal/business-process-management-systems-bpms-tjis4vmb4tkq</link>
                <description>به راه حل های نرم افزاری یکپارچه ای که به سازمان اجازه می دهند تا فرآیندها را در تمام مراحل به صورت خودکار نظارت و مدیریت کنند، BPMS میگوییم.با BPMS، نقشه‌برداری، مدل‌سازی، اجرا و نظارت بر فرآیندها در سیستمی که برای همه کارکنان، مشتریان و تامین‌کنندگان درگیر قابل مشاهده و قابل درک است، ممکن می‌شود.چگونگی پیاده سازی BPMSبرای آگاهی از نحوه پیاده سازی BPMS، در ابتدا لازم است یک استراتژی منطبق با برنامه ریزی شرکت تعریف شود.اولین قدم شناسایی نیاز واقعی به پیاده سازی یک سیستم مدیریتی است. باید بدانیم مشکلاتی که کسب و کار با آن مواجه است چیست و نتایج مورد انتظار چیست؟ برنامه ریزی برای اطمینان از حرکت پروژه به سمت اهداف استراتژیک امری کلیدی است.وقتی به یک پروژه BPM فکر می کنیم، باید:محدوده ای که قرار است با آن کار کنیم را مشخص کنیم.هزینه هایی را که این تغییر در پی دارد مشخص کنیم.مهلت پیاده سازی و اجرا را به وسیله جدول زمانی مشخص کنیم.جزئیات معیارهای کیفیتی که انتظار می رود توسط BPMS مورد استفاده قرار گیرد را مشخص کنیم.برای تعریف محدوده، باید امور زیر را برنامه ریزی کنیم:توالی مراحلی که برای اجرا ضروری خواهد بود.استاندارد علامتگذاری که برای نمایش فرآیندها استفاده خواهد شد (آیا BPMN خواهد بود؟).مدل؛ نوع نموداری که اعمال خواهد شد و اطلاعاتی که مدلسازی خواهد شد.کدام ابزار مدل سازی استفاده خواهد شد.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»[1] https://www.processmaker.com/blog/what-is-a-bpms-a-guide-to-business-process-management-systems/</description>
                <category>ریحانه علیمرادی</category>
                <author>ریحانه علیمرادی</author>
                <pubDate>Sun, 27 Nov 2022 11:03:31 +0330</pubDate>
            </item>
                    <item>
                <title>API Gateway</title>
                <link>https://virgool.io/@rayhanehal/api-gateway-rfqani5xdrnf</link>
                <description>رابطهای برنامه نویسی کاربردی (APIها)، بلوک های سازنده کسب و کار مدرن هستند، اما یک API واحد به ندرت تنها بخشی از داستان است. شرکت ها یک معماری پیرامون APIهای خود ایجاد می کنند تا از کیفیت و ثبات آنها اطمینان حاصل کنند.گیتوی API چیست؟گیتوی های API، پروکسی های API هستند که بین ارائه دهنده و مصرف کننده API قرار می گیرند. در واقع، گیتوی API یک نما(facade) است که یک رابط API را برای زیرسیستمی پیچیده فراهم می کند.یک گیتوی API، کدی است که در مقابل یک API قرار می‌گیرد و یک نقطه ورودی برای APIهای Back-end و میکروسرویس‌های تعریف شده (که می‌توانند داخلی و خارجی باشند) است. گیتوی به عنوان یک محافظ عمل می کند، امنیت را اعمال می کند و مقیاس پذیری و در دسترس بودن بالا را تضمین می کند. گیتوی API تمام درخواست‌های API را از یک کلاینت دریافت می‌کند، تعیین می‌کند که کدام خدمات مورد نیاز است، و آنها را در قالب یک تجربه یکپارچه به کاربر ارائه می‌دهد.علاوه بر این، اگر یک API با کیفیت ثابت ارائه نشود و کسی  از آن استفاده نکند، کاملا بی فایده خواهد بود. یک گیتوی برای کمک به اطمینان از عملکرد عالی، در دسترس بودن بالا و مقیاس پذیری الاستیک APIها از طریق ایجاد این امکان که سازمان ها بتوانند شروع تحویل با خدمات پشتیبانی یکسان، از جمله مدیریت ترافیک، تحول و یکپارچه سازی سیستم داشته باشند، حیاتی است.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»[1] https://www.redhat.com/en/topics/api/what-does-an-api-gateway-do#:~:text=An%20API%20gateway%20is%20an,and%20return%20the%20appropriate%20result.</description>
                <category>ریحانه علیمرادی</category>
                <author>ریحانه علیمرادی</author>
                <pubDate>Sun, 27 Nov 2022 11:03:12 +0330</pubDate>
            </item>
                    <item>
                <title>ESB</title>
                <link>https://virgool.io/@rayhanehal/esb-doe5vipiqcab</link>
                <description>گذرگاه سرویس سازمانی (ESB) یک سیستم ارتباطی بین برنامه‌های نرم‌افزاری در حال تعامل، در معماری سرویس‌گرا (SOA) را پیاده‌سازی می‌کند.گذرگاه سرویس سازمانی یک ابزار میان‌افزار است که برای توزیع کار بین اجزای متصل یک برنامه استفاده می‌شود. ESBها برای ارائه روشی یکنواخت برای جابجایی کار طراحی شده‌اند و به برنامه‌ها امکان اتصال به گذرگاه و اطلاع از پیام‌ها بر اساس قوانین ساده ساختاری و حرفه  را ارائه می‌دهند.گذرگاه سرویس سازمانی از یک گذرگاه پیام برای تبادل اطلاعات بین برنامه ها استفاده می کند. گذرگاه پیام به عنوان یک مترجم بین برنامه‌ها عمل می‌کند و برنامه‌ها را قادر می‌سازد تا از طریق گذرگاه ارتباط برقرار کنند. ESB سیستم‌ها را جدا می‌کند و به آن‌ها اجازه می‌دهد بدون وابستگی یا حتی اطلاع از سایر سیستم‌های موجود در گذرگاه، ارتباط برقرار کنند.گذرگاه سرویس سازمانی، معماري یک نرم افزار را براي محاسبات توزيع شده نمايش مي دهد و نوع خاصي از مدل كلاينت-سرور است كه در آن هر برنامه اي ممكن است به عنوان سرور يا كلاينت عمل كند. ESB چابکی و انعطاف پذیری را با توجه به ارتباطات پروتکل سطح بالا بین برنامه ها ارتقا می دهد. کاربرد اصلی آن در یکپارچه سازی برنامه های سازمانی (EAI) خدمات ناهمگن و پیچیده است.مزایای ESB عبارتند از:برنامه ها جدا شده اند.می توان از آنها برای هماهنگ کردن منطق حرفه با استفاده از جریانهای پیام استفاده کرد.فناوری ESB بالغ است و توسط وندورهای معتبر پشتیبانی می شود.گذرگاه سرویس سازمانی می تواند سناریوهای عملیاتی را با استفاده از پیام ها و شروع رویدادها مدیریت کند.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»[1] https://www.mulesoft.com/resources/esb/what-esb</description>
                <category>ریحانه علیمرادی</category>
                <author>ریحانه علیمرادی</author>
                <pubDate>Sun, 27 Nov 2022 11:02:53 +0330</pubDate>
            </item>
                    <item>
                <title>Low Code Platforms</title>
                <link>https://virgool.io/@rayhanehal/low-code-platforms-o8glgzbbxqqg</link>
                <description>به نرم افزاری low-code می‌گوییم که برای توسعه و تحویل سریع برنامه ها، گردش کار یا اتوماسیون طراحی شده است. نرم افزار low-code به کاربران بدون تجربه کدنویسی اجازه می دهد تا راه حل های مورد نیاز خود را با استفاده از یک رابط بصری بسازند. این پلتفرم‌ها به‌عنوان «low-code» توصیف می‌شوند، زیرا نسبت به روش‌های توسعه نرم‌افزار مرسوم به کدنویسی کمتری نیاز دارند. پلتفرم‌های low-code گاها به عنوان نرم‌افزار no-code نیز شناخته می‌شوند.پلتفرم‌های low-code به گونه‌ای طراحی شده‌اند که به کاربران غیر فنی اجازه می‌دهند برخی از برنامه‌ها، فرآیندها و گردش‌های کاری خود را بسازند و تغییر دهند. به این ترتیب چرخه توسعه سرعت می گیرد و تیم های حرفه چابک نگه داشته می شود. تیم‌های IT نیز کنترل پلتفرم را حفظ می‌کنند تا امنیت، انطباق و الزامات حاکمیتی را اعمال کنند. پلتفرم‌های low-code به کدنویسی کمتری و در نیجه توسعه‌دهنده کمتری نسبت به چرخه‌های توسعه معمولی نیاز دارند.برخی از انواع پلتفرم‌های low-code مانند خودکارسازی low-code فرآیند کسب‌وکار، برنامه‌ها و سیستم‌های پشته موجود را بهبود می‌بخشند. این امر به عنوان توسعه پذیری پشته شناخته می شود.نرم افزار low-code با پشته فناوری موجود ادغام می شود تا به هماهنگ کردن گردش کار و پر کردن شکاف های فرآیند کمک کند. خودکارسازی low-code همچنین می تواند به عنوان یک سیستم یکپارچه تعامل عمل کند.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»[1] https://www.mendix.com/low-code-guide/</description>
                <category>ریحانه علیمرادی</category>
                <author>ریحانه علیمرادی</author>
                <pubDate>Sun, 27 Nov 2022 11:02:25 +0330</pubDate>
            </item>
                    <item>
                <title>Micro Frontends</title>
                <link>https://virgool.io/@rayhanehal/micro-frontends-g8qbdzgsl60s</link>
                <description>اخیراً شاهد ظهور الگوهایی برای تجزیه frontend monolithها به تکه‌های کوچکتر و ساده‌تر هستیم که به طور مستقل توسعه، تست و مستقر شوند، ولی همچنان به عنوان یک محصول منسجم برای کاربران ظاهر شوند. این تکنیک فرانت‌اندهای میکرو(Micro Frontends) نام دارد و به صورت زیر تعریف می‌شود:&quot;یک سبک معماری که در آن برنامه های کاربردی مستقل قابل تحویل در یک کل بزرگتر ترکیب می شوند&quot;برخی از مزایای کلیدی micro frontendها عبارتند از:پایگاه های کد کوچکتر، منسجم تر و قابل نگهداری سازمان های مقیاس پذیرتر با تیم های جدا و مستقلتوانایی ارتقاء، به روز رسانی، یا حتی بازنویسی بخش هایی از frontend به روشی افزایشی تر از آنچه قبلا ممکن بودتوجه کنید که این مزیت ها برخی از همان مواردی است که میکروسرویس ها می توانند ارائه دهند.وقتی صحبت از معماری نرم‌افزار به میان می‌آید، همه چیز با هزینه همراه است. برخی از پیاده‌سازی‌های micro frontend می‌توانند به تکرار وابستگی‌ها منجر شوند و تعداد بایت‌هایی را که کاربران باید دانلود کنند افزای دهند. علاوه بر این، افزایش چشمگیر استقلال تیم می تواند باعث پراکندگی در نحوه کار تیم  شود. با این وجود، معتقدیم که می توان این خطرات را مدیریت کرد و مزایای استفاده از micro frontendها اغلب از هزینه هایش بیشتر است.به طور خلاصه، micro frontendها چیزهای بزرگ و ترسناک را به قطعات کوچک‌تر و قابل کنترل‌تر تقسیم می‌کنند و وابستگی‌های بین آن‌ها را به صراحت بیان می‌کنند. انتخاب‌های فناوری، پایگاه‌های کد، تیم‌ها، و فرآیندهای انتشار، همگی باید بتوانند مستقل از یکدیگر و بدون هماهنگی بیش از حد، عمل کرده و تکامل یابند.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»[1] https://micro-frontends.org/</description>
                <category>ریحانه علیمرادی</category>
                <author>ریحانه علیمرادی</author>
                <pubDate>Sun, 27 Nov 2022 11:01:55 +0330</pubDate>
            </item>
                    <item>
                <title>MVVM</title>
                <link>https://virgool.io/@rayhanehal/mvvm-r3dmcq3h2ggr</link>
                <description>هرچه نرم‌افزار بزرگ‌تر شود، حفظ نمای کلی سخت‌تر می‌شود. بنابراین ساختار پروژه‌ها بسیار مهم است که این به   معنای جداسازی نگرانی‌ها است. درواقع می‌خواهیم رابط کاربری، کسب‌وکار و منبع داده را از هم جدا کنیم تا درک نرم افزار به راحتی و با سرعت امکان پذیر باشد و بتوان به سادگی آن را با ویژگی های بیشتر گسترش داد و آزمایش کرد. اینجاست که الگوهای طراحی معماری وارد عمل می شوند. در برنامه های اندرویدی، MVVM محبوب ترین و مخفف مدل، نما،و نمای مدل (view ،model، و view model) است.به عنوان مثال، برنامه دستور آشپزی زیر را در نظر بگیرید.مدل، منبع داده را نشان می‌دهد که اغلب توسط یک مخزن نشان داده می‌شود و تمام داده‌ها را در یک مکان مرکزی جمع‌آوری می‌کند. این داده‌ها می‌توانند داده‌های یک پایگاه داده، یک API راه دور یا هر دو باشند. نمای مدل حاوی منطق کسب‌وکار است. منطق کسب‌وکار، منطق برنامه واقعی است که عناصر رابط کاربری را به‌روز نمی کند (به عنوان مثال، فیلتر کردن یک لیست یا اعتبارسنجی ورودی کاربر). نمای مدل برای دسترسی به داده های مورد نیاز، در ارتباط مستقیم با مدل است. نما قسمت قابل مشاهده برنامه است و شامل تمام عناصر رابط کاربری است. نما زمانی که باید نماهای خود را به روز کند، رویدادها را از نمای مدل دریافت می کند. نکته مهم این است که نما نباید حاوی هیچ منطق کسب‌وکار باشد و فقط باید حاوی منطق برای دستکاری مستقیم نماها باشد. این یک الگوی قدرتمند است که نرم افزار را مقیاس پذیر، به راحتی قابل درک و قابل آزمایش می‌کند.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»[1] https://www.techtarget.com/whatis/definition/Model-View-ViewModel#:~:text=Model%2DView%2DViewModel%20(MVVM)%20is%20a%20software%20design,Ken%20Cooper%20and%20John%20Gossman.</description>
                <category>ریحانه علیمرادی</category>
                <author>ریحانه علیمرادی</author>
                <pubDate>Sun, 27 Nov 2022 10:59:00 +0330</pubDate>
            </item>
                    <item>
                <title>CQRS</title>
                <link>https://virgool.io/@rayhanehal/cqrs-vrydzdkwm339</link>
                <description>تفکیک مسئولیت پرس و جو و دستور (Command Query Responsibility Segregation) یک الگوی معماری است که خواندن و نوشتن را به دو مدل مختلف جدا می‌کند. در واقع هر متد یا باید یک دستور باشد که عملی را انجام می‌دهد یا یک Query که داده‌ای را برمی‌گرداند. یک دستور نمی تواند داده‌ها را برگرداند و یک Query نمی‌تواند داده‌ها یا وضعیت داده‌ها را تغییر دهد. از Query فقط می‌توان برای خواندن داده‌ها استفاده کرد در حالی که از دستور می‌توان برای تغییر وضعیت داده‌ها استفاده کرد.CQRSدر سمت چپ تصویر بالا، واسط کاربری و کنترلر را داریم؛ که کنترلر، واسط کاربری را کنترل می‌کند. در برنامه ممکن است نیاز به خواندن و نوشتن داده‌ها در پایگاه داده باشد و برای این کار ممکن است چندین متود مثل «getById» ،«getAll» ،«create» ،«update» و «delete» داشته باشیم. متودهای «getAll» و«getById» در دسته query قرار می‌گیرند و متودهای «create»، «update» و «delete» در دسته دستور قرار می‌گیرند. بنابراین با CQRS می‌توان پردازش برنامه‌، خواندن و نوشتن را به دو بخش مختلف تفکیک کرد و حتی می‌توان از چندین منبع ذخیره داده در برنامه‌های مشابه استفاده کرد. با انجام این کار، عملکرد خواندن و نوشتن به شدت بهبود داده می‌شود.برای رسیدن به CQRS می‌توان از الگوی واسطه استفاده کرد.«این مطلب، بخشی از تمرینهای درس معماری نرم‌افزار در دانشگاه شهیدبهشتی است»[1] https://learn.microsoft.com/en-us/azure/architecture/patterns/cqrs</description>
                <category>ریحانه علیمرادی</category>
                <author>ریحانه علیمرادی</author>
                <pubDate>Wed, 23 Nov 2022 17:43:24 +0330</pubDate>
            </item>
            </channel>
</rss>