Presentation is loading. Please wait.

Presentation is loading. Please wait.

Frameworks And Patterns

Similar presentations


Presentation on theme: "Frameworks And Patterns"— Presentation transcript:

1 Frameworks And Patterns
آزمايشگاه سيستم های هوشمند (

2 بالا بردن قابليت استفاده مجدد (Reuse)
هدف اصلي مهندسي نرم افزار استفاده مجدد از طراحي و محصولات مرتبط است: چارچوب ها (Frameworks) الگوها (Patterns) آزمايشگاه سيستم های هوشمند (

3 آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab)
Framework چيست؟ يک Domain specific skeleton شامل: Plug-ins points or hooks: براي افزودن و يا اتصال برنامه و اجزاي مختلف توسط طراح. آزمايشگاه سيستم های هوشمند (

4 تعريف framework از ديدگاه OO
براساس Gang-of-Four يک framework عبارت است از مجموعه اي از class هايي که با ترکيب و کار در کنار هم، يک طراحي با قابليت استفاده مجدد براي يک کلاس خاص از نرم افزار ايجاد مي کنند. (set of cooperating classes that make up a reusable design for a specific class of software.) مثال: طراحي يک کامپايلر آزمايشگاه سيستم های هوشمند (

5 مزاياي استفاده از frameworkها
استفاده از application framework هزينه تشخيص و تعيين ساختار و روابط متقابل (interrelationship) ميان اجزاي آن را کاهش مي دهد. Framework ها براي طراحي هاي موجود امکان گسترش پذيري (Extensibility) را مهيا مي کنند. آزمايشگاه سيستم های هوشمند (

6 دسته بندي (Classification) framework ها
زيرساختي (Infrastructure frameworks) با هدف ساده سازي فرايند توليد نرم افزار ميان افزاري (Middleware framework) با هدف يکپارچه سازي برنامه هاي کاربردي موجود. Enterprise application frameworks با هدف استفاده در کاربردهاي کسب و کار آزمايشگاه سيستم های هوشمند (

7 يک الگو (pattern) چيست؟
يک abstraction قابل تشخيص است که در موقعيت ها و برنامه هاي کاربردي مختلف تکرار شده و متناوبا استفاده مي شود. اين موقعيت مي تواند مربوط به ساختار (Structure) و يا رفتار (behavior) نرم افزار باشد. برنامه هاي کاربردي که از الگو هاي استفاده مي کنند: Architecture of building, towns, road works, dams etc Manufacturing: metal and plastic die casting and moulding Drawings Textiles آزمايشگاه سيستم های هوشمند (

8 آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab)
تعريف الگوها يک طرح کلي (outline) از يک راه حل با قابليت استفاده مجدد براي يک مسئله کلي است. الگوي طراحي (design patterns): ايجاد templateهايي براي تسهيل و تسريع فرايند طراحي نرم افزار. OO: يک الگوي طراحي مجموعه اي از کلاس هايي است که با يکديگر تعامل (Interacting) دارند و با customize کردن آن مي توان يک طراحي مخصوص را ايجاد نمود. آزمايشگاه سيستم های هوشمند (

9 الگوهاي طراحي در مقايسه با Framework ها
هر دو ابزاري براي استفاده مجدد (reuse) در فرايند هاي توليد نرم افزار RAD هستند. الگوهاي طراحي در مقايسه با frameworkها کلي تر و انتزاعي تر (abstract) هستند. يک framework داراي معماري بزرگتري است و ممکن است در معماري خود از چندين الگوي طراحي استفاده کند. Framework يک پياده سازي واقعي (virtual realization) از يک يا گروهي از الگوهاي طراحي است. در واقع framework داراي ويژگي هاي مخصوص بيشتري نسبت به الگوهاي طراحي است. (it is more specific than a pattern) Framework امکان استفاده مجدد از طراحي هاي مشخص (Concrete)، الگوريتم ها و پياده سازي ها در يک زبان برنامه نويسي معين يا محيط OS را فراهم مي آورد. الگوها روي طراحي هاي abstract و ترکيب پيشنهادي از کلاس ها تمرکز مي کند که مي تواند توسط تيم طراحي پياده شود. يک framework از الگوهاي طراحي براي کامل کردن طراحي و پياده سازي تکه هاي پياده سازي نشده خود استفاده مي کند. آزمايشگاه سيستم های هوشمند (

10 رابطه الگوهاي طراحي با framework
آزمايشگاه سيستم های هوشمند (

11 آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab)
چرا الگوهاي طراحي مفيد هستند؟ راه حلي براي مسايلي که در گذشته به بهترين راه حل شده اند، ارائه مي دهد. الگوها ساختارها و روش (methodology) هاي کلي ايجاد مي کنند. با استفاده مجدد از طراحي ها، امکان طراحي نکردن يک راه حل را از ابتدا مهيا مي سازد. به راحتي امکان سازگاري (adaptable) با نيازمندي هاي مخصوص نرم افزار هاي مختلف را دارد. الگوها خلاصه اي از راه حل هايي که در گذشته به خوبي کار کرده اند، ارائه مي دهد. آزمايشگاه سيستم های هوشمند (

12 الگوهاي طراحي Design Patterns
آزمايشگاه سيستم های هوشمند (

13 چگونه از الگوهاي طراحي استفاده کنيم؟
تعريف مسئله شناسايي و بررسي زمينه، سابقه (context) و راه حل هاي مسئله. تعيين بهترين راه حل از بين راه حل هاي موجود. آزمايشگاه سيستم های هوشمند (

14 آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab)
سطوح الگوها الگوهاي معماري (Architectural patterns) الگوهاي طراحي (Design patterns) الگوهاي زبان (Language related idioms) آزمايشگاه سيستم های هوشمند (

15 الگوهاي معماري (Architectural patterns)
يک ترکيب ساختاري (Structural Arrangement) براي سيستم نرم افزاري شامل: زيرسيستم ها و مشخصات هر يک. قوانين ارتباطي بين زير سيستم ها آزمايشگاه سيستم های هوشمند (

16 الگوهاي طراحي (Design Patterns)
ارائه شده پس از سطح معماري استفاده در طراحي زيرسيستم ها، بسته ها (packages) و اجزا (components). ارائه راه حل هايي براي مشکلات معمول و تکراري. مديريت حافظه مديرت اشاره گرها. synchronization and mutual exclusion جلوگيري از بن بست (deadlock avoidance) نمايش با استفاده از UML Objects، Classes Inheritance، Aggregation Uses، extends، relationship آزمايشگاه سيستم های هوشمند (

17 آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab)
Idioms پايين ترين سطح الگوها که مربوط به يک زبان برنامه نويسي خاص مي شود. يک Idiom چگونگي پياده سازي بخش خاصي را با استفاده از يک زبان توصيف مي کند. تخصيص حافظه (Memory allocation) De-allocation ناحيه هاي بحراني (Critical regions) ... آزمايشگاه سيستم های هوشمند (

18 انواع الگوها و مثال هايي از هريک
Behavioral Observer Player-role Immutable Read-Only Architectural Multi-Layer Client-Server Broker Pipe-and-Filter Model-View-Controller Creational Abstract-factory Singleton Abstraction-occurrence Structural General hierarchy Adaptor Façade Proxy Delegation آزمايشگاه سيستم های هوشمند (

19 Creational: Abstract-Factory
زمينه: واسطي (Interface) براي عملياتي که يک abstract product object ايجاد مي کند، مهيا مي سازد. راه حل: Concrete Factory subclass creates concrete objects آزمايشگاه سيستم های هوشمند (

20 Creational: Singleton
زمينه: اطمينان مي دهد که تنها يک موجوديت (Instance) از يک کلاس وجود دارد. راه حل: يک سازنده خصوصي (Private Constructor) وجود دارد که اطمينان مي دهد هيچ کلاس ديگري قادر به ايجاد مجدد (Recreate) يک موجوديت ديگر نيست. آزمايشگاه سيستم های هوشمند (

21 Creational: Abstraction-Occurrence
زمينه: پروازهاي هوايي با يک شماره ولي در روزهاي متفاوت و با خدمه و مسافران متفاوت. راه حل: ايجاد يک کلاس abstract شامل اطلاعات مشترک. ايجاد يک کلاس occurrence. (ايجاد رابطه 1:n) آزمايشگاه سيستم های هوشمند (

22 Structural: General-Hierarchy
زمينه: ارتباط بين کارمندان و مديران راه حل: ايجاد يک abstract node class که نشان دهنده ويژگي هاي مشترک است. ايجاد حداقل دو subclass، SuperiorNode و Non-SuperiorNode. آزمايشگاه سيستم های هوشمند (

23 آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab)
Singleton Pattern وقتي مي خواهيد که از يک کلاس تنها يک instance در کل برنامه وجود داشته باشد. مثال: Print Spooler Accounting System براي يک شرکت. Library Loan policy Taxation Grades مزاياي استفاده از اين الگو: نيازي به استفاده از متغير هاي سراسري نيست. Single Access Point (Functional Cohesion) کنترل تعداد موجوديت هاي از يک کلاس. مجاز بودن ايجاد Sub-Class آزمايشگاه سيستم های هوشمند (

24 آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab)
Proxy pattern کاربردهاي الگوي Proxy: Remote proxy: يک نماينده محلي (Local Representative) براي remote Object ها تهيه مي کند. Virtual proxy: creates expensive objects whenever needed Document Editor downloading text and image from a disk Protection proxy: براي object هاي مهم (precious) حفاظت (protection) و کنترل دسترسي (access control) ايجاد مي کند. Database Tables Implementing smart pointer: جايگزيني براي conventional pointer است که عمليات اضافي را مي تواند انجام دهد مانند: شمارش تعداد reference ها به يک object واقعي. اين object مادامي که تعداد reference ها برابر صفر نشده باشد نمي تواند delete شود. کنترل lock شدن object براي update شدن.(Checking that the object is locked prior to update) آزمايشگاه سيستم های هوشمند (

25 آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab)
Proxy Pattern Diagram آزمايشگاه سيستم های هوشمند (

26 پنج لايه الگوهاي معماري (Architectural Pattern)...
1. Application Layer Package: مديريت کاربران و profile آنها. ايجاد فضاي کاري (Work Space) براي کاربران. کنترل شبکه OS Functions HW Functions توابع مديريتي (Administrative Functions) هشدارها و پيام ها. 2. User Interface Package: Workspace elements: Scroll bar، windows، progress bar و … نمايش فضاي کاري (Workspace Presentation) نمايش و پنجره ها. Logon/Logoff تعامل با کاربر آزمايشگاه سيستم های هوشمند (

27 ...پنج لايه الگوهاي معماري (Architectural Pattern)
3. Communication Package: مديريت data link (مدارها و پروتکل ها) Name Server Access انتقال داده (Data Transport) Data Conversation 4. Abstract OS Package: Information Hiding Virtual API Manage Memory Manage Tasks and threads 5. Abstract HW Package: API for virtual devices (sensors, actuators) Device Deriver Bus Interface Virtual Processors آزمايشگاه سيستم های هوشمند (


Download ppt "Frameworks And Patterns"

Similar presentations


Ads by Google