صفحه 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