SlideShare a Scribd company logo
1 of 11
1
Workflow Pattern
‫فرایند‬ ‫طراحی‬ ‫الگوهای‬
‫ان‬‫ز‬‫پردا‬ ‫داده‬ ‫شرکت‬‫اهداف‬ ‫نوین‬
‫کسرا‬ ‫واحد‬
‫الگو‬(Patterns)
•‫الگوها‬‫نشات‬‫گرفته‬‫از‬‫ی‬‫معمار‬‫می‬‫باشند‬
•‫الگو‬=‫توصیف‬‫مساله‬+‫بهترین‬‫مساله‬
•‫تعریف‬‫الگو‬
•‫الگو‬‫توصیفی‬‫از‬‫مساله‬‫و‬‫اساس‬‫اه‬‫ر‬‫حل‬‫آن‬،‫است‬‫به‬‫ي‬‫ر‬‫طو‬‫که‬‫این‬‫اه‬‫ر‬‫حل‬‫می‬‫تواند‬‫به‬‫شکل‬‫هاي‬‫مختلفی‬‫ر‬‫مو‬‫د‬‫استفاده‬
‫ار‬‫ر‬‫ق‬‫گیرد‬
•‫است‬ ‫الگوها‬ ‫و‬ ‫ها‬ ‫طرح‬‫از‬‫است‬‫ممکن‬ ‫نیز‬‫صنایع‬ ‫برخی‬‫در‬ ‫و‬ ‫ند‬‫ر‬‫ندا‬‫ار‬‫ز‬‫اف‬ ‫نرم‬ ‫دنیاي‬ ‫به‬‫اختصاص‬ ‫احی‬‫ر‬‫ط‬ ‫الگوهاي‬‫کنند‬‫فاده‬:
‫ي‬‫الگو‬‫خیاطی‬
2
‫طراحی‬‫الگوهای‬(Design Patterns)
•‫تعریف‬‫الگو‬
•‫الگو‬‫توصیفی‬‫از‬‫مساله‬‫و‬‫اساس‬‫اه‬‫ر‬‫حل‬‫آن‬،‫است‬‫به‬‫ي‬‫ر‬‫طو‬‫که‬‫این‬‫اه‬‫ر‬‫حل‬‫می‬‫تواند‬‫به‬‫شکل‬‫هاي‬‫مختلفی‬‫ر‬‫مو‬‫د‬‫استفاده‬
‫ار‬‫ر‬‫ق‬‫گیرد‬
•‫ی‬‫الگو‬‫احی‬‫ر‬‫ط‬‫ل‬‫مقبو‬
•‫نت‬‫مشابه‬ ‫مساله‬ ‫ت‬‫ر‬‫صو‬ ‫یک‬‫از‬‫د‬‫ر‬‫مو‬ ‫سه‬ ‫در‬ ‫کم‬‫دست‬ ‫که‬ ‫کند‬ ‫می‬ ‫پیدا‬ ‫عمومی‬ ‫مقبولیت‬ ‫احی‬‫ر‬‫ط‬ ‫ي‬‫الگو‬ ‫یک‬ ‫مانی‬‫ز‬‫بخش‬ ‫یجه‬
‫باشد‬.
•‫تعداد‬‫الگوهاي‬‫احی‬‫ر‬‫ط‬‫بسیار‬‫یاد‬‫ز‬‫است‬‫ولی‬‫تنها‬‫تعداد‬‫کمی‬‫از‬‫این‬‫الگوها‬‫شهرت‬‫جهانی‬‫پیدا‬‫کرده‬‫اند‬.‫ا‬‫ر‬‫ی‬‫ز‬‫دی‬‫گر‬‫الگوها‬‫یا‬
‫بسیار‬‫ساده‬‫اند‬‫که‬‫نمی‬‫توان‬‫نام‬‫ي‬‫الگو‬‫احی‬‫ر‬‫ط‬‫ا‬‫ر‬‫بر‬‫آن‬‫ها‬‫گذاشت‬‫و‬‫یا‬‫بسیار‬‫گ‬‫ر‬‫بز‬‫و‬‫خاص‬‫هستند‬.
•‫انواع‬‫الگوهای‬‫احی‬‫ر‬‫ط‬
3
‫الگو‬‫د‬‫ر‬‫استاندا‬ ‫فرمت‬
4
‫احی‬‫ر‬‫ط‬‫الگوهای‬ ‫انواع‬
•‫ی‬ ‫آفرینش‬ ‫الگوهاي‬(Creational)
•‫الگوها‬‫آیندهاي‬‫ر‬‫ف‬‫در‬‫اشیاء‬‫ایجاد‬‫می‬‫استفاده‬‫شوند‬.
•‫ي‬‫ساختار‬ ‫الگوهاي‬(Structural)
•‫الگوها‬‫در‬‫اشیاء‬‫و‬‫ها‬ ‫کالس‬ ‫ترکیب‬‫استفاده‬‫د‬‫ر‬‫مو‬‫گیرند‬ ‫می‬ ‫ار‬‫ر‬‫ق‬.
•‫الگوهاي‬‫ي‬‫فتار‬‫ر‬(Behavioral)
•‫به‬‫اشیاء‬ ‫یا‬ ‫ها‬ ‫کالس‬ ‫میان‬ ‫تعامل‬ ‫چگونگی‬‫نیز‬‫و‬‫آن‬ ‫میان‬ ‫مسئولیت‬ ‫یع‬‫ز‬‫تو‬‫نحوه‬‫ها‬‫د‬‫ز‬‫پردا‬ ‫می‬
5
‫آن‬‫های‬ ‫بندی‬ ‫دسته‬‫و‬ ‫احی‬‫ر‬‫ط‬‫الگوهای‬
6
‫ی‬‫الگو‬ ‫نمونه‬‫احی‬‫ر‬‫ط‬:‫ی‬‫الگو‬Observer‫گر‬ ‫مشاهده‬‫یا‬
•‫یک‬‫الگو‬ ‫این‬‫وابستگی‬‫یک‬‫چند‬ ‫به‬‫اشیاء‬ ‫بین‬‫باشد‬ ‫می‬‫ئ‬ ‫ش‬‫هنگامیکه‬ ،‫یک‬‫طرف‬‫وضعیتش‬ ،‫تغییر‬‫ا‬ ،‫کند‬‫مطلع‬ ‫وابسته‬‫شیاء‬
‫شوند‬ ‫می‬‫وضعیت‬ ‫و‬‫طرف‬ ‫وضعیت‬ ‫به‬ ‫توجه‬‫با‬‫ا‬‫ر‬ ‫خودشان‬‫یک‬‫سانی‬‫ر‬‫ز‬‫و‬‫بر‬‫کنند‬ ‫می‬.
•،‫دیگر‬‫ت‬‫ر‬‫عبا‬ ‫به‬‫از‬ ‫ا‬‫ر‬‫ئ‬ ‫ش‬‫نمایش‬ ‫بیننده‬‫ي‬‫الگو‬‫خود‬‫جدا‬‫ئ‬ ‫ش‬‫میکند‬
7
‫کار‬‫گردش‬ ‫طراحی‬‫الگوهای‬(Workflow Design Patterns)
•‫تعریف‬
•‫فرم‬‫ی‬ ‫خاص‬‫از‬‫الگوهای‬‫احی‬‫ر‬‫ط‬‫مطرح‬‫در‬‫ه‬‫ز‬‫حو‬‫ی‬‫ی‬ ‫مهندس‬‫نرم‬‫ار‬‫ز‬‫اف‬‫یا‬‫ی‬ ‫مهندس‬‫ایند‬‫ر‬‫ف‬‫های‬‫ی‬‫کار‬‫تعریف‬‫می‬‫شود‬‫ا‬‫ست‬
[‫ویکی‬‫پدیا‬].
•‫نوعی‬‫از‬‫مسائل‬‫ار‬‫ر‬‫تک‬‫شده‬‫و‬‫اه‬‫ر‬‫حل‬‫های‬‫آنها‬‫در‬‫توسعه‬‫ی‬‫برنامه‬‫های‬‫گردش‬‫کار‬‫و‬‫یا‬‫برنامه‬‫های‬‫آیند‬‫ر‬‫ف‬
‫ا‬‫ر‬‫گ‬(process-oriented)
•‫برد‬‫ر‬‫کا‬‫و‬‫مزایا‬
•‫استفاده‬‫ی‬‫مجدد‬‫در‬‫سطح‬‫ی‬‫مدلساز‬‫و‬‫احی‬‫ر‬‫ط‬‫ایند‬‫ر‬‫ف‬
•‫ی‬‫دساز‬‫ر‬‫استاندا‬‫احی‬‫ر‬‫ط‬‫ایند‬‫ر‬‫ف‬
•‫استفاده‬‫از‬‫بهترین‬‫ب‬‫ر‬‫تجا‬‫در‬‫ه‬‫ز‬‫حو‬‫احی‬‫ر‬‫ط‬‫ایند‬‫ر‬‫ف‬
•‫صرفه‬‫جویی‬‫در‬‫توسعه‬
8
‫برتر‬‫ایند‬‫ر‬‫ف‬ ‫احی‬‫ر‬‫ط‬‫الگوهای‬
•‫ان‬ ‫ام‬‫پی‬‫بی‬ ‫ی‬‫جامعه‬‫سایت‬‫در‬ ‫گونترت‬‫مارکوس‬ ‫ش‬‫ر‬‫گزا‬
•‫ش‬‫ر‬‫ا‬‫ز‬‫گ‬‫این‬20‫الگو‬‫است‬ ‫کرده‬ ‫ائه‬‫ر‬‫ا‬ ‫ا‬‫ر‬‫تر‬ ‫مهم‬‫ی‬
•‫آنه‬ ‫مقایسه‬‫و‬ ‫مختلف‬ ‫های‬ ‫سیستم‬ ‫امکانات‬ ‫ن‬‫مو‬‫ز‬‫آ‬‫همچنین‬‫و‬ ‫ی‬‫گذار‬ ‫نشانه‬ ‫یک‬ ‫ائه‬‫ر‬‫ا‬ ‫هدف‬‫بوده‬ ‫ا‬
‫است‬
•‫است‬ ‫آمده‬ ‫اکسل‬ ‫فایل‬‫در‬‫موجود‬ ‫ل‬‫جدو‬‫در‬ ‫د‬‫ر‬‫موا‬ ‫لیست‬
•‫آمده‬‫شکل‬‫با‬ ‫و‬ ‫مثال‬‫با‬ ‫مورد‬‫هر‬‫است‬
•‫ش‬‫ر‬‫گزا‬Workflow Patterns with BPMN 2.0‫ویشال‬‫از‬
‫و‬‫یوبر‬‫ر‬‫سایت‬‫در‬‫ساکسنا‬
•‫ن‬ ‫ائه‬‫ر‬‫ا‬ ‫بخش‬ ‫این‬ ‫در‬‫ا‬‫ر‬‫نیستند‬ ‫ایج‬‫ر‬‫که‬ ‫الگوهای‬ ‫برخی‬ ‫که‬ ‫است‬ ‫کرده‬ ‫ه‬‫ر‬‫اشا‬ ‫ش‬‫ر‬‫ا‬‫ز‬‫گ‬‫این‬‫کند‬‫می‬
•‫در‬‫الگوها‬ ‫ی‬‫ساز‬ ‫مدل‬‫با‬ ‫آشنایی‬ ‫هدف‬BPMN 2.0‫نیاز‬‫صورت‬ ‫در‬‫آنها‬ ‫گسترش‬‫امکان‬ ‫و‬
•‫این‬‫آن‬ ‫شکل‬‫و‬‫د‬‫ر‬‫دا‬‫واقعی‬ ‫دنیای‬‫از‬ ‫مثالهایی‬ ‫ش‬‫ر‬‫ا‬‫ز‬‫گ‬
•‫ش‬‫ر‬‫گزا‬Modeling Worflow Patterns‫از‬Bizagi
•‫است‬ ‫ده‬‫ر‬‫آو‬ ‫ا‬‫ر‬ ‫ی‬‫تجار‬ ‫های‬ ‫ایند‬‫ر‬‫ف‬‫واقعی‬ ‫موقعیتهای‬‫کردن‬ ‫مدل‬ ‫ای‬‫ر‬‫ب‬ ‫مفید‬ ‫بسیار‬ ‫الگوهای‬
•‫است‬ ‫کار‬ ‫گردش‬‫جریان‬ ‫الگوهای‬ ‫کردن‬ ‫مدل‬ ‫با‬ ‫آشنایی‬ ‫ش‬‫ر‬‫ا‬‫ز‬‫گ‬ ‫هدف‬
•‫این‬‫مثالهایی‬‫و‬ ‫داده‬‫توضیح‬ ‫ا‬‫ر‬‫الگوهایی‬ ‫ش‬‫ر‬‫ا‬‫ز‬‫گ‬‫د‬‫ر‬‫دا‬
•‫با‬ ‫نمایش‬‫نحوه‬‫به‬‫مربوط‬ ‫ش‬‫ر‬‫گزا‬BPMI‫و‬UML‫ترند‬‫پی‬ ‫بی‬‫سایت‬‫در‬
•21‫ی‬‫الگو‬‫معرفی‬‫برتر‬‫است‬ ‫بوده‬ ‫شده‬
•‫های‬‫بانمودار‬ ‫ها‬‫الگو‬ ‫این‬ ‫کردن‬ ‫مدل‬ ‫امکان‬ ‫توضیح‬ ‫هدف‬UML‫فعالیت‬‫نمودار‬ ‫بخصوص‬
‫است‬ ‫شده‬‫گفته‬‫ی‬ ‫نمایش‬ ‫دیگر‬ ‫روشهای‬‫در‬‫ها‬ ‫الگو‬ ‫نمایش‬ ‫نحوه‬ ‫اه‬‫ر‬‫هم‬‫به‬ ‫که‬‫است‬.
•‫ش‬‫ر‬‫گزا‬‫ام‬ ‫بی‬ ‫آی‬
•43‫ک‬ ‫ی‬ ‫بررس‬ ‫ا‬‫ر‬‫است‬ ‫انگیز‬ ‫بر‬ ‫چالش‬ ‫های‬ ‫کننده‬ ‫تولید‬ ‫ای‬‫ر‬‫ب‬ ‫بیشتر‬ ‫که‬‫الگوهایی‬ ‫از‬ ‫تا‬‫و‬ ‫است‬ ‫رده‬
‫ی‬ ‫شده‬ ‫کامل‬ ‫لیست‬ ‫این‬ ‫که‬‫است‬ ‫کرده‬ ‫ه‬‫ر‬‫اشا‬21‫سال‬ ‫ی‬‫الگو‬2003‫است‬.
•‫در‬ ‫ها‬ ‫الگو‬‫این‬ ‫از‬ ‫استفاده‬ ‫ی‬‫نحوه‬ ‫دقیق‬‫توضیح‬ ‫هدف‬WID v7.0 and WPS
v7.0‫است‬ ‫کد‬‫و‬ ‫افیکی‬‫ر‬‫گ‬‫صورت‬ ‫به‬
•‫د‬‫ر‬‫موا‬‫توضی‬ ‫مختلف‬‫حاالت‬‫در‬‫کار‬ ‫گردش‬‫ی‬ ‫ا‬‫ر‬‫اج‬ ‫روند‬‫تحلیل‬ ‫همچنین‬‫و‬‫کد‬‫و‬‫شکل‬‫سم‬‫ر‬‫با‬‫داده‬‫ح‬
‫می‬‫شود‬
9
‫بندی‬ ‫دسته‬Van der Aalst‫فرایند‬ ‫طراحی‬‫الگوهای‬ ‫ای‬‫ر‬‫ب‬(140‫ایند‬‫ر‬‫ف‬ ‫احی‬‫ر‬‫ط‬ ‫ی‬‫الگو‬)
‫فرایند‬‫ل‬‫کنتر‬ ‫الگوهای‬(
(Control-Flow
Patterns
•‫پایه‬‫جریان‬‫ل‬‫کنتر‬ ‫الگوهای‬
(Basic Control-
Flow Patterns)
•‫همزمانی‬‫و‬‫انشعاب‬ ‫الگوهای‬
(Branching and
Synchronization
Patterns)
•‫های‬‫نمونه‬‫الگوهای‬
‫چندتایی‬(Multiple
Instance)
•‫بر‬‫مبتنی‬ ‫الگوهای‬
‫حالت‬(State-based)
•‫الگوهای‬
‫انصراف‬(Cancellation)
•‫تکرار‬ ‫الگوهای‬(Iteration)
•‫الگوهای‬
‫خاتمه‬(Termination)
•‫الگوهای‬trigger
‫منبع‬ ‫الگوهای‬(Resource)
•‫ایجاد‬ ‫ی‬‫الگو‬(Creation
Patterns)
•‫الگوهای‬Push
•‫الگوهای‬Pull
•‫مسیرهای‬ ‫الگوهای‬
‫جایگزین‬(Detour
Patterns)
•‫خودکار‬‫شروع‬ ‫الگوهای‬(Auto-
Start Patterns)
•‫دید‬ ‫الگوهای‬(Visibility
Patterns)
•‫چند‬ ‫الگوهای‬
‫منبعی‬(Multiple
Resource Patterns)
‫داده‬ ‫الگوهای‬
‫فرایند‬(Workflow Data
Patterns)
•‫داده‬‫دید‬ ‫الگوهای‬(Data
Visibility)
•‫داده‬‫تعامل‬ ‫الگوهای‬(Data
Interaction)
‫داخلی‬(internal)‫و‬
‫بیرونی‬(External)
•‫داده‬‫انتقال‬ ‫الگوهای‬(Data
Transfer)
•‫الگ‬.‫بر‬‫مبتنی‬‫مسیردهی‬‫های‬
‫داده‬(Data-based
Routing)
‫هندل‬‫الگوهای‬
‫خطا‬(Exception
Handling Patterns)
•‫سطح‬‫در‬‫خطا‬‫هندل‬ ‫ی‬‫الگو‬
Work
•‫سطح‬‫در‬‫خطا‬‫هندل‬ ‫ی‬‫الگو‬
Case
•‫عملیات‬ ‫ی‬‫الگو‬
‫بازیابی‬(Recovery
Action)
‫الگوهای‬
‫ارائه‬(Presentation
Patterns)
•‫یا‬‫انتزاعی‬ ‫الگوهای‬abstract
•‫الگوهای‬Concrete
10
‫دسته‬ ‫سه‬‫بندی‬‫الگوهای‬‫از‬ ‫اسل‬‫ر‬‫ایند‬‫ر‬‫ف‬ ‫طراحی‬
‫کار‬‫گردش‬ ‫جریان‬‫ل‬‫کنتر‬ ‫الگوهای‬‫گروه‬
•Sequence
•Parallel Split
•Synchronization
•Exclusive Choice
•Simple Merge
•Multi-Choice
•Arbitrary Cycles
•Implicit Termination
•Multiple Instances without
Synchronization
•Cancel Activity
•Cancel Case
•Structured Loop
•Persistent Trigger
•Recursion
‫کار‬‫گردش‬ ‫جریان‬‫در‬ ‫منابع‬ ‫الگوهای‬‫گروه‬
•Direct Allocation
•Role-Based Allocation
•Deferred Allocation
•Seperation of Duties*
•Retain Familiar
•Automatic Execution
•Distribution by Offer - Multiple
Resources
•Distribution by Allocation - Single
Resource
•Distribution on Enablement
•Selection Autonomy
•Escalation
•Resource-Initated Execution -
Allocated Work Item
•Resource-Initiated Execution -
Offered Work Item
•Simultaneous Execution
‫کار‬ ‫گردش‬‫جریان‬‫در‬ ‫ها‬ ‫داده‬ ‫الگوهای‬‫گروه‬
•Block Data
•Multiple Instance Data
•Environment Data
•Task to Task
•Block Task to SubWorkflow
Decomposition
•SubWorkflow Decomposition to
Block Task
•Task to Environment - Push-
Oriented
•Environment to Task - Pull-
Oriented
•Environment to Case - Push-
Oriented *
•Data Transfer by Reference -
Unlocked
•Task Precondition - Data
Existence
•Task Precondition - Data Value
•Data-Based Routing
•Task Data
11

More Related Content

Similar to الگوهای طراحی فرایند - workflow pattern

پروسه mcp & mcs-2
پروسه mcp & mcs-2پروسه mcp & mcs-2
پروسه mcp & mcs-2
naghash mahdi
 
مدل فرایند (Process Model)
مدل فرایند (Process Model)مدل فرایند (Process Model)
مدل فرایند (Process Model)
RayBPMS
 

Similar to الگوهای طراحی فرایند - workflow pattern (20)

Oracle ADF Presentation
Oracle ADF PresentationOracle ADF Presentation
Oracle ADF Presentation
 
چارچوب متن باز جهت توسعه سیستم های نرم افزاری
چارچوب متن باز جهت توسعه سیستم های نرم افزاریچارچوب متن باز جهت توسعه سیستم های نرم افزاری
چارچوب متن باز جهت توسعه سیستم های نرم افزاری
 
oop in php - Persian
oop in php - Persianoop in php - Persian
oop in php - Persian
 
Scrum based methodology for distributed software development
Scrum based methodology for distributed software developmentScrum based methodology for distributed software development
Scrum based methodology for distributed software development
 
آموزش ورکینگ مدل
آموزش ورکینگ مدلآموزش ورکینگ مدل
آموزش ورکینگ مدل
 
ورودی خروجی Hadoop
ورودی خروجی Hadoopورودی خروجی Hadoop
ورودی خروجی Hadoop
 
Verilog
VerilogVerilog
Verilog
 
Software Requirements Analysis - course overview
Software Requirements Analysis - course overviewSoftware Requirements Analysis - course overview
Software Requirements Analysis - course overview
 
Reza fotohi, access control
Reza fotohi, access controlReza fotohi, access control
Reza fotohi, access control
 
Database Model
Database ModelDatabase Model
Database Model
 
Scrum doc
Scrum docScrum doc
Scrum doc
 
پروسه mcp & mcs-2
پروسه mcp & mcs-2پروسه mcp & mcs-2
پروسه mcp & mcs-2
 
Sql tuning
Sql tuningSql tuning
Sql tuning
 
Sharding
ShardingSharding
Sharding
 
oCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_PatternsoCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_Patterns
 
مدل فرایند (Process Model)
مدل فرایند (Process Model)مدل فرایند (Process Model)
مدل فرایند (Process Model)
 
توسعه نرم‌افزارهای مقیاس‌پذیر بر اساس معماری ریزسرویسها (Microservices) و اجر...
توسعه نرم‌افزارهای مقیاس‌پذیر بر اساس معماری ریزسرویسها (Microservices) و اجر...توسعه نرم‌افزارهای مقیاس‌پذیر بر اساس معماری ریزسرویسها (Microservices) و اجر...
توسعه نرم‌افزارهای مقیاس‌پذیر بر اساس معماری ریزسرویسها (Microservices) و اجر...
 
Introduction to SOA
Introduction to SOAIntroduction to SOA
Introduction to SOA
 
مدیریت زمان پروژه با بهتایم
مدیریت زمان پروژه با بهتایممدیریت زمان پروژه با بهتایم
مدیریت زمان پروژه با بهتایم
 
مدل دستیابی به بانکداری باز در ایران
مدل دستیابی به بانکداری باز در ایرانمدل دستیابی به بانکداری باز در ایران
مدل دستیابی به بانکداری باز در ایران
 

الگوهای طراحی فرایند - workflow pattern

  • 1. 1 Workflow Pattern ‫فرایند‬ ‫طراحی‬ ‫الگوهای‬ ‫ان‬‫ز‬‫پردا‬ ‫داده‬ ‫شرکت‬‫اهداف‬ ‫نوین‬ ‫کسرا‬ ‫واحد‬
  • 2. ‫الگو‬(Patterns) •‫الگوها‬‫نشات‬‫گرفته‬‫از‬‫ی‬‫معمار‬‫می‬‫باشند‬ •‫الگو‬=‫توصیف‬‫مساله‬+‫بهترین‬‫مساله‬ •‫تعریف‬‫الگو‬ •‫الگو‬‫توصیفی‬‫از‬‫مساله‬‫و‬‫اساس‬‫اه‬‫ر‬‫حل‬‫آن‬،‫است‬‫به‬‫ي‬‫ر‬‫طو‬‫که‬‫این‬‫اه‬‫ر‬‫حل‬‫می‬‫تواند‬‫به‬‫شکل‬‫هاي‬‫مختلفی‬‫ر‬‫مو‬‫د‬‫استفاده‬ ‫ار‬‫ر‬‫ق‬‫گیرد‬ •‫است‬ ‫الگوها‬ ‫و‬ ‫ها‬ ‫طرح‬‫از‬‫است‬‫ممکن‬ ‫نیز‬‫صنایع‬ ‫برخی‬‫در‬ ‫و‬ ‫ند‬‫ر‬‫ندا‬‫ار‬‫ز‬‫اف‬ ‫نرم‬ ‫دنیاي‬ ‫به‬‫اختصاص‬ ‫احی‬‫ر‬‫ط‬ ‫الگوهاي‬‫کنند‬‫فاده‬: ‫ي‬‫الگو‬‫خیاطی‬ 2
  • 3. ‫طراحی‬‫الگوهای‬(Design Patterns) •‫تعریف‬‫الگو‬ •‫الگو‬‫توصیفی‬‫از‬‫مساله‬‫و‬‫اساس‬‫اه‬‫ر‬‫حل‬‫آن‬،‫است‬‫به‬‫ي‬‫ر‬‫طو‬‫که‬‫این‬‫اه‬‫ر‬‫حل‬‫می‬‫تواند‬‫به‬‫شکل‬‫هاي‬‫مختلفی‬‫ر‬‫مو‬‫د‬‫استفاده‬ ‫ار‬‫ر‬‫ق‬‫گیرد‬ •‫ی‬‫الگو‬‫احی‬‫ر‬‫ط‬‫ل‬‫مقبو‬ •‫نت‬‫مشابه‬ ‫مساله‬ ‫ت‬‫ر‬‫صو‬ ‫یک‬‫از‬‫د‬‫ر‬‫مو‬ ‫سه‬ ‫در‬ ‫کم‬‫دست‬ ‫که‬ ‫کند‬ ‫می‬ ‫پیدا‬ ‫عمومی‬ ‫مقبولیت‬ ‫احی‬‫ر‬‫ط‬ ‫ي‬‫الگو‬ ‫یک‬ ‫مانی‬‫ز‬‫بخش‬ ‫یجه‬ ‫باشد‬. •‫تعداد‬‫الگوهاي‬‫احی‬‫ر‬‫ط‬‫بسیار‬‫یاد‬‫ز‬‫است‬‫ولی‬‫تنها‬‫تعداد‬‫کمی‬‫از‬‫این‬‫الگوها‬‫شهرت‬‫جهانی‬‫پیدا‬‫کرده‬‫اند‬.‫ا‬‫ر‬‫ی‬‫ز‬‫دی‬‫گر‬‫الگوها‬‫یا‬ ‫بسیار‬‫ساده‬‫اند‬‫که‬‫نمی‬‫توان‬‫نام‬‫ي‬‫الگو‬‫احی‬‫ر‬‫ط‬‫ا‬‫ر‬‫بر‬‫آن‬‫ها‬‫گذاشت‬‫و‬‫یا‬‫بسیار‬‫گ‬‫ر‬‫بز‬‫و‬‫خاص‬‫هستند‬. •‫انواع‬‫الگوهای‬‫احی‬‫ر‬‫ط‬ 3
  • 5. ‫احی‬‫ر‬‫ط‬‫الگوهای‬ ‫انواع‬ •‫ی‬ ‫آفرینش‬ ‫الگوهاي‬(Creational) •‫الگوها‬‫آیندهاي‬‫ر‬‫ف‬‫در‬‫اشیاء‬‫ایجاد‬‫می‬‫استفاده‬‫شوند‬. •‫ي‬‫ساختار‬ ‫الگوهاي‬(Structural) •‫الگوها‬‫در‬‫اشیاء‬‫و‬‫ها‬ ‫کالس‬ ‫ترکیب‬‫استفاده‬‫د‬‫ر‬‫مو‬‫گیرند‬ ‫می‬ ‫ار‬‫ر‬‫ق‬. •‫الگوهاي‬‫ي‬‫فتار‬‫ر‬(Behavioral) •‫به‬‫اشیاء‬ ‫یا‬ ‫ها‬ ‫کالس‬ ‫میان‬ ‫تعامل‬ ‫چگونگی‬‫نیز‬‫و‬‫آن‬ ‫میان‬ ‫مسئولیت‬ ‫یع‬‫ز‬‫تو‬‫نحوه‬‫ها‬‫د‬‫ز‬‫پردا‬ ‫می‬ 5
  • 6. ‫آن‬‫های‬ ‫بندی‬ ‫دسته‬‫و‬ ‫احی‬‫ر‬‫ط‬‫الگوهای‬ 6
  • 7. ‫ی‬‫الگو‬ ‫نمونه‬‫احی‬‫ر‬‫ط‬:‫ی‬‫الگو‬Observer‫گر‬ ‫مشاهده‬‫یا‬ •‫یک‬‫الگو‬ ‫این‬‫وابستگی‬‫یک‬‫چند‬ ‫به‬‫اشیاء‬ ‫بین‬‫باشد‬ ‫می‬‫ئ‬ ‫ش‬‫هنگامیکه‬ ،‫یک‬‫طرف‬‫وضعیتش‬ ،‫تغییر‬‫ا‬ ،‫کند‬‫مطلع‬ ‫وابسته‬‫شیاء‬ ‫شوند‬ ‫می‬‫وضعیت‬ ‫و‬‫طرف‬ ‫وضعیت‬ ‫به‬ ‫توجه‬‫با‬‫ا‬‫ر‬ ‫خودشان‬‫یک‬‫سانی‬‫ر‬‫ز‬‫و‬‫بر‬‫کنند‬ ‫می‬. •،‫دیگر‬‫ت‬‫ر‬‫عبا‬ ‫به‬‫از‬ ‫ا‬‫ر‬‫ئ‬ ‫ش‬‫نمایش‬ ‫بیننده‬‫ي‬‫الگو‬‫خود‬‫جدا‬‫ئ‬ ‫ش‬‫میکند‬ 7
  • 8. ‫کار‬‫گردش‬ ‫طراحی‬‫الگوهای‬(Workflow Design Patterns) •‫تعریف‬ •‫فرم‬‫ی‬ ‫خاص‬‫از‬‫الگوهای‬‫احی‬‫ر‬‫ط‬‫مطرح‬‫در‬‫ه‬‫ز‬‫حو‬‫ی‬‫ی‬ ‫مهندس‬‫نرم‬‫ار‬‫ز‬‫اف‬‫یا‬‫ی‬ ‫مهندس‬‫ایند‬‫ر‬‫ف‬‫های‬‫ی‬‫کار‬‫تعریف‬‫می‬‫شود‬‫ا‬‫ست‬ [‫ویکی‬‫پدیا‬]. •‫نوعی‬‫از‬‫مسائل‬‫ار‬‫ر‬‫تک‬‫شده‬‫و‬‫اه‬‫ر‬‫حل‬‫های‬‫آنها‬‫در‬‫توسعه‬‫ی‬‫برنامه‬‫های‬‫گردش‬‫کار‬‫و‬‫یا‬‫برنامه‬‫های‬‫آیند‬‫ر‬‫ف‬ ‫ا‬‫ر‬‫گ‬(process-oriented) •‫برد‬‫ر‬‫کا‬‫و‬‫مزایا‬ •‫استفاده‬‫ی‬‫مجدد‬‫در‬‫سطح‬‫ی‬‫مدلساز‬‫و‬‫احی‬‫ر‬‫ط‬‫ایند‬‫ر‬‫ف‬ •‫ی‬‫دساز‬‫ر‬‫استاندا‬‫احی‬‫ر‬‫ط‬‫ایند‬‫ر‬‫ف‬ •‫استفاده‬‫از‬‫بهترین‬‫ب‬‫ر‬‫تجا‬‫در‬‫ه‬‫ز‬‫حو‬‫احی‬‫ر‬‫ط‬‫ایند‬‫ر‬‫ف‬ •‫صرفه‬‫جویی‬‫در‬‫توسعه‬ 8
  • 9. ‫برتر‬‫ایند‬‫ر‬‫ف‬ ‫احی‬‫ر‬‫ط‬‫الگوهای‬ •‫ان‬ ‫ام‬‫پی‬‫بی‬ ‫ی‬‫جامعه‬‫سایت‬‫در‬ ‫گونترت‬‫مارکوس‬ ‫ش‬‫ر‬‫گزا‬ •‫ش‬‫ر‬‫ا‬‫ز‬‫گ‬‫این‬20‫الگو‬‫است‬ ‫کرده‬ ‫ائه‬‫ر‬‫ا‬ ‫ا‬‫ر‬‫تر‬ ‫مهم‬‫ی‬ •‫آنه‬ ‫مقایسه‬‫و‬ ‫مختلف‬ ‫های‬ ‫سیستم‬ ‫امکانات‬ ‫ن‬‫مو‬‫ز‬‫آ‬‫همچنین‬‫و‬ ‫ی‬‫گذار‬ ‫نشانه‬ ‫یک‬ ‫ائه‬‫ر‬‫ا‬ ‫هدف‬‫بوده‬ ‫ا‬ ‫است‬ •‫است‬ ‫آمده‬ ‫اکسل‬ ‫فایل‬‫در‬‫موجود‬ ‫ل‬‫جدو‬‫در‬ ‫د‬‫ر‬‫موا‬ ‫لیست‬ •‫آمده‬‫شکل‬‫با‬ ‫و‬ ‫مثال‬‫با‬ ‫مورد‬‫هر‬‫است‬ •‫ش‬‫ر‬‫گزا‬Workflow Patterns with BPMN 2.0‫ویشال‬‫از‬ ‫و‬‫یوبر‬‫ر‬‫سایت‬‫در‬‫ساکسنا‬ •‫ن‬ ‫ائه‬‫ر‬‫ا‬ ‫بخش‬ ‫این‬ ‫در‬‫ا‬‫ر‬‫نیستند‬ ‫ایج‬‫ر‬‫که‬ ‫الگوهای‬ ‫برخی‬ ‫که‬ ‫است‬ ‫کرده‬ ‫ه‬‫ر‬‫اشا‬ ‫ش‬‫ر‬‫ا‬‫ز‬‫گ‬‫این‬‫کند‬‫می‬ •‫در‬‫الگوها‬ ‫ی‬‫ساز‬ ‫مدل‬‫با‬ ‫آشنایی‬ ‫هدف‬BPMN 2.0‫نیاز‬‫صورت‬ ‫در‬‫آنها‬ ‫گسترش‬‫امکان‬ ‫و‬ •‫این‬‫آن‬ ‫شکل‬‫و‬‫د‬‫ر‬‫دا‬‫واقعی‬ ‫دنیای‬‫از‬ ‫مثالهایی‬ ‫ش‬‫ر‬‫ا‬‫ز‬‫گ‬ •‫ش‬‫ر‬‫گزا‬Modeling Worflow Patterns‫از‬Bizagi •‫است‬ ‫ده‬‫ر‬‫آو‬ ‫ا‬‫ر‬ ‫ی‬‫تجار‬ ‫های‬ ‫ایند‬‫ر‬‫ف‬‫واقعی‬ ‫موقعیتهای‬‫کردن‬ ‫مدل‬ ‫ای‬‫ر‬‫ب‬ ‫مفید‬ ‫بسیار‬ ‫الگوهای‬ •‫است‬ ‫کار‬ ‫گردش‬‫جریان‬ ‫الگوهای‬ ‫کردن‬ ‫مدل‬ ‫با‬ ‫آشنایی‬ ‫ش‬‫ر‬‫ا‬‫ز‬‫گ‬ ‫هدف‬ •‫این‬‫مثالهایی‬‫و‬ ‫داده‬‫توضیح‬ ‫ا‬‫ر‬‫الگوهایی‬ ‫ش‬‫ر‬‫ا‬‫ز‬‫گ‬‫د‬‫ر‬‫دا‬ •‫با‬ ‫نمایش‬‫نحوه‬‫به‬‫مربوط‬ ‫ش‬‫ر‬‫گزا‬BPMI‫و‬UML‫ترند‬‫پی‬ ‫بی‬‫سایت‬‫در‬ •21‫ی‬‫الگو‬‫معرفی‬‫برتر‬‫است‬ ‫بوده‬ ‫شده‬ •‫های‬‫بانمودار‬ ‫ها‬‫الگو‬ ‫این‬ ‫کردن‬ ‫مدل‬ ‫امکان‬ ‫توضیح‬ ‫هدف‬UML‫فعالیت‬‫نمودار‬ ‫بخصوص‬ ‫است‬ ‫شده‬‫گفته‬‫ی‬ ‫نمایش‬ ‫دیگر‬ ‫روشهای‬‫در‬‫ها‬ ‫الگو‬ ‫نمایش‬ ‫نحوه‬ ‫اه‬‫ر‬‫هم‬‫به‬ ‫که‬‫است‬. •‫ش‬‫ر‬‫گزا‬‫ام‬ ‫بی‬ ‫آی‬ •43‫ک‬ ‫ی‬ ‫بررس‬ ‫ا‬‫ر‬‫است‬ ‫انگیز‬ ‫بر‬ ‫چالش‬ ‫های‬ ‫کننده‬ ‫تولید‬ ‫ای‬‫ر‬‫ب‬ ‫بیشتر‬ ‫که‬‫الگوهایی‬ ‫از‬ ‫تا‬‫و‬ ‫است‬ ‫رده‬ ‫ی‬ ‫شده‬ ‫کامل‬ ‫لیست‬ ‫این‬ ‫که‬‫است‬ ‫کرده‬ ‫ه‬‫ر‬‫اشا‬21‫سال‬ ‫ی‬‫الگو‬2003‫است‬. •‫در‬ ‫ها‬ ‫الگو‬‫این‬ ‫از‬ ‫استفاده‬ ‫ی‬‫نحوه‬ ‫دقیق‬‫توضیح‬ ‫هدف‬WID v7.0 and WPS v7.0‫است‬ ‫کد‬‫و‬ ‫افیکی‬‫ر‬‫گ‬‫صورت‬ ‫به‬ •‫د‬‫ر‬‫موا‬‫توضی‬ ‫مختلف‬‫حاالت‬‫در‬‫کار‬ ‫گردش‬‫ی‬ ‫ا‬‫ر‬‫اج‬ ‫روند‬‫تحلیل‬ ‫همچنین‬‫و‬‫کد‬‫و‬‫شکل‬‫سم‬‫ر‬‫با‬‫داده‬‫ح‬ ‫می‬‫شود‬ 9
  • 10. ‫بندی‬ ‫دسته‬Van der Aalst‫فرایند‬ ‫طراحی‬‫الگوهای‬ ‫ای‬‫ر‬‫ب‬(140‫ایند‬‫ر‬‫ف‬ ‫احی‬‫ر‬‫ط‬ ‫ی‬‫الگو‬) ‫فرایند‬‫ل‬‫کنتر‬ ‫الگوهای‬( (Control-Flow Patterns •‫پایه‬‫جریان‬‫ل‬‫کنتر‬ ‫الگوهای‬ (Basic Control- Flow Patterns) •‫همزمانی‬‫و‬‫انشعاب‬ ‫الگوهای‬ (Branching and Synchronization Patterns) •‫های‬‫نمونه‬‫الگوهای‬ ‫چندتایی‬(Multiple Instance) •‫بر‬‫مبتنی‬ ‫الگوهای‬ ‫حالت‬(State-based) •‫الگوهای‬ ‫انصراف‬(Cancellation) •‫تکرار‬ ‫الگوهای‬(Iteration) •‫الگوهای‬ ‫خاتمه‬(Termination) •‫الگوهای‬trigger ‫منبع‬ ‫الگوهای‬(Resource) •‫ایجاد‬ ‫ی‬‫الگو‬(Creation Patterns) •‫الگوهای‬Push •‫الگوهای‬Pull •‫مسیرهای‬ ‫الگوهای‬ ‫جایگزین‬(Detour Patterns) •‫خودکار‬‫شروع‬ ‫الگوهای‬(Auto- Start Patterns) •‫دید‬ ‫الگوهای‬(Visibility Patterns) •‫چند‬ ‫الگوهای‬ ‫منبعی‬(Multiple Resource Patterns) ‫داده‬ ‫الگوهای‬ ‫فرایند‬(Workflow Data Patterns) •‫داده‬‫دید‬ ‫الگوهای‬(Data Visibility) •‫داده‬‫تعامل‬ ‫الگوهای‬(Data Interaction) ‫داخلی‬(internal)‫و‬ ‫بیرونی‬(External) •‫داده‬‫انتقال‬ ‫الگوهای‬(Data Transfer) •‫الگ‬.‫بر‬‫مبتنی‬‫مسیردهی‬‫های‬ ‫داده‬(Data-based Routing) ‫هندل‬‫الگوهای‬ ‫خطا‬(Exception Handling Patterns) •‫سطح‬‫در‬‫خطا‬‫هندل‬ ‫ی‬‫الگو‬ Work •‫سطح‬‫در‬‫خطا‬‫هندل‬ ‫ی‬‫الگو‬ Case •‫عملیات‬ ‫ی‬‫الگو‬ ‫بازیابی‬(Recovery Action) ‫الگوهای‬ ‫ارائه‬(Presentation Patterns) •‫یا‬‫انتزاعی‬ ‫الگوهای‬abstract •‫الگوهای‬Concrete 10
  • 11. ‫دسته‬ ‫سه‬‫بندی‬‫الگوهای‬‫از‬ ‫اسل‬‫ر‬‫ایند‬‫ر‬‫ف‬ ‫طراحی‬ ‫کار‬‫گردش‬ ‫جریان‬‫ل‬‫کنتر‬ ‫الگوهای‬‫گروه‬ •Sequence •Parallel Split •Synchronization •Exclusive Choice •Simple Merge •Multi-Choice •Arbitrary Cycles •Implicit Termination •Multiple Instances without Synchronization •Cancel Activity •Cancel Case •Structured Loop •Persistent Trigger •Recursion ‫کار‬‫گردش‬ ‫جریان‬‫در‬ ‫منابع‬ ‫الگوهای‬‫گروه‬ •Direct Allocation •Role-Based Allocation •Deferred Allocation •Seperation of Duties* •Retain Familiar •Automatic Execution •Distribution by Offer - Multiple Resources •Distribution by Allocation - Single Resource •Distribution on Enablement •Selection Autonomy •Escalation •Resource-Initated Execution - Allocated Work Item •Resource-Initiated Execution - Offered Work Item •Simultaneous Execution ‫کار‬ ‫گردش‬‫جریان‬‫در‬ ‫ها‬ ‫داده‬ ‫الگوهای‬‫گروه‬ •Block Data •Multiple Instance Data •Environment Data •Task to Task •Block Task to SubWorkflow Decomposition •SubWorkflow Decomposition to Block Task •Task to Environment - Push- Oriented •Environment to Task - Pull- Oriented •Environment to Case - Push- Oriented * •Data Transfer by Reference - Unlocked •Task Precondition - Data Existence •Task Precondition - Data Value •Data-Based Routing •Task Data 11