صفحه 1:
Frameworks And Patterns 52

صفحه 2:
هدف اصلي مهندسي نرم افزار استفاده مجدد از طراحي و محصولات مرتبط استه بالا بردن قابليت استفاده مجدد (©186135) ©جارجوب ها (171310650701715) “الكوها (2231:16115) أزمايشكاء سيستم هاى هوشمند. ‎ne eet trey‏

صفحه 3:
چیسه Domain specific ‏يى‎ © :ls skeleton [۱ Plug-ins points or hooks ° [0 ST cage e pen cerry أزمايشكاء سيستم هاى هوشمند. ‎ne eet trey‏

صفحه 4:
تعريف 57311261870116 از ديدكاه 0000 0 ‏ل ا ل‎ RE eS nee a a Roe Sea CPO) C-SI ‏ل‎ Aen ‏ا‎ set of cooperating classes that make up a) reusable design for a specific class of (software ‎٩‏ مثال: طراحي یک کامپایلر ‏أزمايشكاء سيستم هاى هوشمند. ‎ne eet trey‏ ‎5

صفحه 5:
‎apie econ ele pes‏ لين 1ك ‎ed‏ ت1۱ ل ل ل ل كاهش مى دهد. ‎ROS ‏ا‎ Peale tala] ab ac8 8c (0) 8 aS ۱۱۳ ۱۳۱ ‏ولاك‎ ‏أزمايشكاء سيستم هاى هو ‎ne eet trey‏

صفحه 6:
دسته بندي (129618681108)) ‎al‏ ع1تده تع درج" ها ا لا ا 1ل Se eae ates ees Pees eRe ۱ ‏وان‎ na با هدف یکپارچه سازي برنامه هاي كاربردي موجود. Enterprise application frameworks .3 are ‏ل‎ أزمايشكاء سيستم هاى هو ‎ne eet trey‏

صفحه 7:
Ed STOWE G wes w HDC ee) كال ا ا ‎ESSN ree Rory‏ مختلف تكرار شده و متناوبا استفاده مي شود. اين موقعيت مي تواند مربوط به ساختار (©1111 6102 5) ويا رفتار 006123571017 نرم افزار باشد. 0 برنامه هاي كاربردي که از الگو هاي استفاده مي کنند: ‎Architecture of building, towns, 020 Vola er Ronen‏ ‎Manufacturing: metal and plastic die casting and *‏ ‎moulding‏ ‎stile twas‏ وله لفيا أزمايشكاء سيستم هاى هون ‎ne eet trey‏

صفحه 8:
© يك طرح كلى (©01161111) از يك راه حل با قابليت استفاده مجدد براي يك 0-0 تعريف الكوها © الكوي طراحى (221:16617125 16516122): ايجاد ©612[2131]هايى براي ‎aed‏ ا ل ا لك لك ‎Recep en etna cena Gms es eee ete‏ (وطتا 61اه دایند و با 6۱250۳0126 ک ردرآنمیتولن ی کطرلحی ‎pe ene‏ أزمايشكاء سيستم هاى هوشمند. ‎ne eet trey 2‏

صفحه 9:
ل ا ا هر دو ابزاري براي استفاده مجدد (©115©]) در فرايند هاي توليد نرم افزار 18/410 هستئد. الگوهاي طراحی در مقایسه اا 000 يك 881281170116 داراي معماري بزركتري است و ممكن است در معماري خود از جندين الكوي طراحی استفاده کند. 6 ی کپیاده ساریولقعی( 1101 ۲6۵112 ۷1۳1181 از ییکیا گروهیاز ‎framework «il, Froe en a‏ دارلي‌ميژگي‌هايمخصوصب_یشتری:_سبنبسه اسلگوهاي طرلحولست ‎ ‎(it is more specific than a pattern) ‏اسلگوریتم ها و پسیادد‎ (O10) 110) 2] 6 ‏لنمکارستفادم مجدد از طرلحی‌هایمشخص(‎ 6 0 ar Oca Sean cere Parte OL ‏ا‎ eee Tema RU Ce CC gee ee Cr ‏ا ا ل‎ ol ae Ces meen : 1 ‏توسط تیم طراحي پیاده شود‎ ‏یک 1۳017161۷7016 از الگوهاي طراحي براي کامل کردن طراحي و پیاده سازي تکه هاي پیاده سازي‎ ۳ ‏أزمايشكاء سيستم هاى هون ‎eceacce eo)‏ 00

صفحه 10:
رابطه الگوهاي طراحي با 11۵106170116

صفحه 11:
۳ طراحي مفید هستند؟ ‎El‏ | RUSTE Ne ea Con nee eee knee CHO Ore eS ‏هاي كلي ایجاد مي کنند.‎ ۹۹ olen peo ‎٩‏ با استفاده مجدد از طراحي هاء امکان طراحي نکردن یک راه حل را از ابتدا مهیا مي سازد. ‏© به راحتي امكان سازكاري (©3202718116) با نيازمندي هاي مخصوص نرم افزار هاي مختلف ا ۷ ‏أزمايشكاء سيستم هاى هون ‎ne eet trey‏

صفحه 12:
الكوهاي طراحي ‎Design Patterns‏

صفحه 13:
0 تعریف مسئله 1 9 تعيين بهترين راه حل از بين راه حل هاي موجود. أزمايشكاء سيستم هاى هو ‎ne eet trey‏

صفحه 14:
07 ی الکو ‎sles ©‏ نفك ‎nS‏ ل الات نا تق ‏© الكوهاي زبان (1010125 16131660 ©32611361آ) ‏أزمايشكاء سيستم هاى هوشمند. ‎ne eet trey‏

صفحه 15:
al PNA i Lo Alte) SRE MNES CS| 32 ۹ ‎wl» Structural Arrangement) .¢,bst. us 5%‏ سيستم نرم افزاري شامل: رس ارس ابر رک ‏* قوانین ارتباطي بین زیر سیستم ها ‏أزمايشكاء سيستم هاى هو ‎ne eet trey‏

صفحه 16:
Q 5 2 ۳ ‎pee TCS‏ ا 0 2 ارائه شده پس از سطح معماري استفاده در طراحي زيرسيستم هاء بسته ها (16266©5© 002 و اجزا (0120116121:5©). ‎ere erat nn IEC)‏ 1۱ ؟ مدیریت حافظه و ور ۹ ‎ICE ES‏ ا ل ان 0 ا ‎Objects. Classes *‏ ‎Inheritance. Aggregation °‏ ‎Uses. extends. relationship *‏ oo أزمايشكاء سيستم هاى هو ‎ne eet trey 1۷۳‏

صفحه 17:
و ۱ 9 يك 1010111 جكونكي يياده سازي بخش خاصي را با استفاده از ‎OL Sa‏ ل (Memory allocation) PE eager De-allocation ® Idioms e (Critical regions) i> cle a>b® ۰ أزمايشكاء سيستم هاى هو ‎ne eet trey‏

صفحه 18:
انواع الكوها و مثال هابي از هريىك Behavioral © Creational © Oa aie Abstract-factory ° Player-role ° Singleton ° ‏عاطم ص1‎ * Abstraction- * Read-Only °® occurrence ‎Architectural © Structural ©‏ 0 لع اننا ‎Adaptor ®‏ لاله ‎Broker ® Facade ®‏ © بوتمرط لل ةا ‎۱۵۱۰ ‏ات‎ Delegation ° ‏أزمايشكاء سيستم هاى هوشمند. ‎ne eet trey‏

صفحه 19:
al 6 ‏ا ل‎ Factory ay 3 8 زمینه: * واسطي (122]61]866) براي عملیاتی که یک ‎abstract‏ ‎ste! product object‏ =« کند. مهیا مي سازد. 0 راه حل: ‎Concrete Factory‏ ‎subclass creates‏ ‎concrete objects‏ 0

صفحه 20:
Creational: Singleton ep eee Ke belsicatelel rors co ema cic Ile oe ۳۳9 ‏راه حل:‎ 0 45 9,0 2325 Private Constructor) 250+ ojl ‏یک‎ ۴ 1 Foe OURS eR EORR SE SONOCN? 512100 0-1-1 2)) ==aul) [۹ 10

صفحه 21:
4 Creational: Abstraction-Occurrence ۵ ۳ ‎a}‏ ‏* پروازهاي هوايي با یک شماره ولي در روزهاي متفاوت و با خدمه و مسافران رت 0 راه حل: * ايجاد يك كلاس 21511201 شامل اطلاعات مشترك. ل ا ا 0ك لك -senes(awe Dawber -producer tithe ree eect ony

صفحه 22:
Structural: General- ۸ OE eS trie ia ۵ راه حل: ۱ ‎er‏ ‏و۳ سس ‎Non-‏ ‎SuperiorNode‏ ‎ol‏ ] =| ۱ a Pre eet 5

صفحه 23:
Ed ۱ ® Singleton Pattern Rated card SIRE STI ‏ا ل ا ا‎ ECC. so Print Spooler °* ocgee ‏لالت “الا‎ 1 Library Loan policy * Taxation Grades * ‏استفاده از این الگو:‎ ‏ي به استفاده از متغیر هاي سراسري نیست.‎ Single Access Point (Functional Cohesion) ® Mcrae es ror ver eg Rec Fees tt wel ‏ل‎ © مرایا 8 00 eer ne eet trey

صفحه 24:
Proxy pattern :7061 ‏کاربردهاي الگوي‎ ٩ wi Local Representative) t...s..is. Remote proxy ° 1 Virtual proxy: creates expensive objects whenever needed ° PLLA eset oat ue teme scan BTC Min NE Mt ato <blis (precious) .;b object<!|_. Protection proxy ° ea GENT lool CMe rc ae) Oar ent ame a0 K-1015 (0) ‏ل اها‎ ‏الات‎ smart pointer ° Pir Pavey ear Uae gd ‏و‎ ‎RECN NaC Nae ess te ene ea) ‏یت و‎ اا ا ا 0 أزمايشكاء سيستم هاى هون ‎ne eet trey‏

صفحه 25:
8 Wy ٠. 1 Proxy Pattern Diagram Pre eet

صفحه 26:
ج لایه الگوهاي معماري نان ات۸۵۲6 ۷ ‎es‏ Application Layer Package .1 Pee ry مديريت كاربران و 210816 آنها. ايجاد فضاي كاري (©5126 1/1/01:1) براي كاربران. ‎See‏ OS Functions HW Functions (Administrative Functions) + ,o als ‏هشدارها و پیام ها‎ ‘User ees Package 2 ; Workspace elements: Scroll bar. windows. progress bar ماس ‎(Workspace Presentation) «Js (tai‏ نمایش و پتجره هار Logon/Logoff تعامل با كارير 00 eer ne eet trey

صفحه 27:
...ينج لايه الكوهاي معماري ‎(Architectural Pattern)‏ Communication Package 3 CONC eve BT) come Name Server Access ‏ماو‎ acta) lame eee ‏ةا‎ ‎‘Abstract OS Package 4 Information Hiding ° ‏الا اكنافيا‎ Manage Memory ° Manage Tasks and threads ° ‘Abstract HW Package 5 API for virtual devices (sensors, actuators) ۴ Device Deriver ° Bus Interface ° Virtual Processors * 35-10 00 eer ne eet trey

Frameworks And Patterns آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab( 1 باال بردن قابليت استفاده مجدد ()Reuse هدف اصلي مهندسي نرم افزار استفاده مجدد از طراحي و محصوالت مرتبط است: ‏چارچوب ها ()Frameworks ‏الگوها ()Patterns 2 آزمايشگاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab چيست؟Framework Domain specific يک : شاملskeleton Fra mewo rk Fill i n Fill i n براي افزودن:Plug-ins points or hooks .و يا اتصال برنامه و اجزاي مختلف توسط طراح   Ho o ks Fill i n آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab( 3 تعريف framework ‏ از ديدگاه OO براساس Gang-of-Fourيک frameworkعبارت است از مجموعه اي از classهايي که با ترکيب و کار در کنار هم ،يک طراحي با قابليت استفاده مجدد براي يک کالس خاص از نرم افزار ايجاد مي کنند. (set of cooperating classes that make up a ‏reusable design for a specific class of ).software ‏ 4 مثال :طراحي يک کامپايلر آزمايشگاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab مزاياي استفاده از frameworkها 5 ‏ استفاده از application frameworkهزينه تشخيص و تعيين ساختار و روابط متقابل ( )interrelationshipميان اجزاي آن را کاهش مي دهد. ‏ Frameworkها براي طراحي هاي موجود امکان گسترش پذيري ( )Extensibilityرا مهيا مي کنند. آزمايشگاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab دسته بندي ()Classification frameworkها .1 زيرساختي ()Infrastructure frameworks .2 ميان افزاري ()Middleware framework .3 ‏Enterprise application frameworks با هدف ساده سازي فرايند توليد نرم افزار با هدف يکپارچه سازي برنامه هاي کاربردي موجود. با هدف استفاده در کاربردهاي کسب و کار 6 آزمايشگاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab يک الگو ( )patternچيست؟ ‏ يک abstractionقابل تشخيص است که در موقعيت ها و برنامه هاي کاربردي مختلف تکرار شده و متناوبا استفاده مي شود .اين موقعيت مي تواند مربوط به ساختار ( )Structureو يا رفتار ( )behaviorنرم افزار باشد. ‏ برنامه هاي کاربردي که از الگو هاي استفاده مي کنند: ‏ ‏ ‏ ‏ 7 ‏Architecture of building, towns, road works, dams etc ‏Manufacturing: metal and plastic die casting and ‏moulding ‏Drawings ‏Textiles آزمايشگاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab تعريف الگوها ‏ يک طرح کلي ( )outlineاز يک راه حل با قابليت استفاده مجدد براي يک مسئله کلي است. ‏ الگوي طراحي ( :)design patternsايجاد templateهايي براي تسهيل و تسريع فرايند طراحي نرم افزار. ‏ 8 :OOيک الگوي طراحي مجموعه اي از کالس هايي است که با يکديگر تعامل ( )Interactingدارند و با customizeکردن آن مي توان يک طراحي مخصوص را ايجاد نمود. آزمايشگاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab الگوهاي طراحي در مقايسه با Frameworkها ‏ هر دو ابزاري براي استفاده مجدد ( )reuseدر فرايند هاي توليد نرم افزار RADهستند. الگوهاي طراحي در مقايسه با frameworkها کلي تر و انتزاعي تر ( )abstractهستند. يک frameworkداراي معماري بزرگتري است و ممکن است در معماري خود از چندين الگوي طراحي استفاده کند. Frameworkيک پياده سازي واقعي ( )virtual realizationاز يک يا گروهي از الگوهاي طراحي است .در واقع frameworkداراي ويژگي هاي مخصوص بيشتري نسبت به الگوهاي طراحي است. ‏ Frameworkامکان استفاده مجدد از طراحي هاي مشخص ( ،)Concreteالگوريتم ها و پياده سازي ها در يک زبان برنامه نويسي معين يا محيط OSرا فراهم مي آورد. الگوها روي طراحي هاي abstractو ترکيب پيشنهادي از کالس ها تمرکز مي کند که مي تواند توسط تيم طراحي پياده شود. يک frameworkاز الگوهاي طراحي براي کامل کردن طراحي و پياده سازي تکه هاي پياده سازي نشده خود استفاده مي کند. ‏ ‏ ‏ ‏ ‏ 9 ()it is more specific than a pattern آزمايشگاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab framework رابطه الگوهاي طراحي با Framework Fill in Design Pat t erns Implement at ion Fill in Fill in آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab( 10 چرا الگوهاي طراحي مفيد هستند؟ 11 ‏ راه حلي براي مسايلي که در گذشته به بهترين راه حل شده اند ،ارائه مي دهد .الگوها ساختارها و روش ( )methodologyهاي کلي ايجاد مي کنند. ‏ با استفاده مجدد از طراحي ها ،امکان طراحي نکردن يک راه حل را از ابتدا مهيا مي سازد. ‏ به راحتي امکان سازگاري ( )adaptableبا نيازمندي هاي مخصوص نرم افزار هاي مختلف را دارد .الگوها خالصه اي از راه حل هايي که در گذشته به خوبي کار کرده اند ،ارائه مي دهد. آزمايشگاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab الگوهاي طراحي ‏Design Patterns 12 آزمايشگاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab چگونه از الگوهاي طراحي استفاده کنيم؟ 13 ‏ تعريف مسئله ‏ شناسايي و بررسي زمينه ،سابقه ( )contextو راه حل هاي مسئله. ‏ تعيين بهترين راه حل از بين راه حل هاي موجود. آزمايشگاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab سطوح الگوها )Architectural patterns( الگوهاي معماري  )Design patterns( الگوهاي طراحي  )Language related idioms( الگوهاي زبان  آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab( 14 الگوهاي معماري (Architectural )patterns يک ترکيب ساختاري ( )Structural Arrangementبراي سيستم نرم افزاري شامل: زيرسيستم ها و مشخصات هر يک. قوانين ارتباطي بين زير سيستم ها 15 آزمايشگاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab الگوهاي طراحي ()Design Patterns ‏ ‏ ‏ ارائه شده پس از سطح معماري استفاده در طراحي زيرسيستم ها ،بسته ها ( )packagesو اجزا (.)components ارائه راه حل هايي براي مشکالت معمول و تکراري. ‏ ‏ ‏ ‏ ‏ نمايش با استفاده از UML ‏ ‏ ‏ 16 مديريت حافظه مديرت اشاره گرها. ‏synchronization and mutual exclusion جلوگيري از بن بست ()deadlock avoidance ‏Objects، Classes ‏Inheritance، Aggregation ‏Uses، extends، relationship آزمايشگاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab Idioms ‏ ‏ پايين ترين سطح الگوها که مربوط به يک زبان برنامه نويسي خاص مي شود. يک Idiomچگونگي پياده سازي بخش خاصي را با استفاده از يک زبان توصيف مي کند. تخصيص حافظه ()Memory allocation ‏De-allocation  ناحيه هاي بحراني ()Critical regions ...  17 آزمايشگاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab انواع الگوها و مثال هايي از هريک Behavioral Observer Player-role Immutable Read-Only         Creational Abstract-factory Singleton Abstractionoccurrence  Architectural Multi-Layer Client-Server Broker Pipe-and-Filter Model-View-Controller     Structural  General hierarchy Adaptor Façade Proxy Delegation آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab(        18 Creational: AbstractFactory :زمينه  :راه حل  ) برايInterface( واسطي abstract عملياتي که يک ايجاد ميproduct object . مهيا مي سازد،کند  Concrete Factory subclass creates concrete objects آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab( 19 Creational: Singleton ‏ زمينه: ‏ راه حل: ‏ ‏ اطمينان مي دهد که تنها يک موجوديت ( )Instanceاز يک کالس وجود دارد. يک سازنده خصوصي ( )Private Constructorوجود دارد که اطمينان مي دهد هيچ کالس ديگري قادر به ايجاد مجدد ( )Recreateيک موجوديت ديگر نيست. ) If (t his ==null ;)( t his= new Sing let on 20 آزمايشگاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab ‏Si n g l et o n )( +get Inst a nce Creational: Abstraction-Occurrence ‏ زمينه: ‏ راه حل: ‏ ‏ ‏ 21 پروازهاي هوايي با يک شماره ولي در روزهاي متفاوت و با خدمه و مسافران متفاوت. ايجاد يک کالس abstractشامل اطالعات مشترک. ايجاد يک کالس ( .occurrenceايجاد رابطه )n :1 ‏Occu rren ce : Ep i so d e ‏Ab st ra ct i o n : TV Seri es -Number -t i t le -seri esNa me -p ro ducer * آزمايشگاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab Structural: GeneralHierarchy :زمينه  :راه حل  ارتباط بين کارمندان و مديران که نشان دهنده ويژگي هاي مشترکabstract node class ايجاد يک .است Non- وsubclass، ايجاد حداقل دو Emp l o ySuperiorNode ee .SuperiorNode -supervises    0..1 Secret ary Te ch n i ci a n آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab( Ma n a g er 22 Singleton Pattern ‏ ‏ وقتي مي خواهيد که از يک کالس تنها يک instanceدر کل برنامه وجود داشته باشد. مثال: ‏ ‏ ‏ ‏ ‏ مزاياي استفاده از اين الگو: ‏ ‏ ‏ ‏ 23 ‏Print Spooler Accounting Systemبراي يک شرکت. ‏Library Loan policy ‏Taxation Grades نيازي به استفاده از متغير هاي سراسري نيست. )Single Access Point (Functional Cohesion کنترل تعداد موجوديت هاي از يک کالس. مجاز بودن ايجاد Sub-Class آزمايشگاه سيستم های هوشمند ()http://ce.aut.ac.ir/islab Proxy pattern :Proxy کاربردهاي الگوي remote ) برايLocal Representative( يک نماينده محلي:Remote proxy  . ها تهيه مي کندObject Virtual proxy: creates expensive objects whenever needed Document Editor downloading text and image from a disk آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab(   conventional جايگزيني براي:Implementing smart pointer : است که عمليات اضافي را مي تواند انجام دهد مانندpointer مادامي که تعدادobject اين. واقعيobject ها به يکreference شمارش تعداد . شودdelete ها برابر صفر نشده باشد نمي تواندreference Checking that the object is(. شدنupdate برايobject شدنlock کنترل )locked prior to update   ) حفاظتprecious( هاي مهمobject براي:Protection proxy .) ايجاد مي کندaccess control( ) و کنترل دسترسيprotection( Database Tables     24 Proxy Pattern Diagram آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab( 25 Architectural( پنج اليه الگوهاي معماري ...)Pattern :Application Layer Package .1 . آنهاprofile مديريت کاربران و .) براي کاربرانWork Space( ايجاد فضاي کاري کنترل شبکه OS Functions HW Functions )Administrative Functions( توابع مديريتي .هشدارها و پيام ها  وWorkspace elements: Scroll bar، windows، progress bar … )Workspace Presentation( نمايش فضاي کاري .نمايش و پنجره ها Logon/Logoff تعامل با کاربر        :User Interface Package .2 آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab(     26 پنج اليه الگوهاي معماري... )Architectural Pattern( :Communication Package .3 ) (مدارها و پروتکل هاdata link مديريت Name Server Access )Data Transport( انتقال داده Data Conversation     :Abstract OS Package .4 Information Hiding Virtual API Manage Memory Manage Tasks and threads     :Abstract HW Package .5 API for virtual devices (sensors, actuators) Device Deriver Bus Interface Virtual Processors آزمايشگاه سيستم های هوشمند )http://ce.aut.ac.ir/islab(     27

51,000 تومان