Frameworks And Patterns

Slides:



Advertisements
Similar presentations
Queue theory.
Advertisements

Logic Block Architectures. 2 Crosspoint Solution  Requires the use of large amounts of programmable interconnect −  suffer from area-inefficiency 
در جامعه، افرادي که موقعيت و مسؤليت خود را مي‌دانند از راحتي و امنيت بيشتري برخوردارند هر کلاس از جامعه، مجموعه‌اي از امکانات و تواناييهاي مجاز برخوردار.
طراحي و ساخت سيستم‌هاي تجارت الکترونيک چارچوب و الگوي سازمان‌هاي تجاري.
1 آزمايشگاه سيستم های هوشمند ( Domain-specific Architecture.
به نام خدا 1 آزمايشگاه سيستم هاي هوشمند ( تمرينهاي سري سوم طراحي و پياده سازي سيستمهاي نرم افزاري بزرگ الناز دل پيشه آقاي دکتر.
طراحي و مدل کردن مؤلفه ها فصل 7 معماري نرم افزار هاي بزرگ دانيال مؤذن استاد : دکتر عبدالله زاده.
طراحي و ساخت سيستم ‌ هاي تجارت الکترونيک چارچوب و الگوي سازمان ‌ هاي تجاري.
مهندسی نرم افزار مبتنی بر عامل
ارائه روشي براي شناسايي کاراکترهاي دستنويس، برپايه شبکه LVQ.
معماری سيستمهای با مقياس بزرگ
طراحي و ساخت سيستم‌هاي تجارت الکترونيک
Amirkabir University of Technology Department of Computer engineering & IT Software Engineering II Unified modeling Language (UML) April 2006 In the Name.
ارائه درس روباتيکز Extended Kalman Filter فريد ملازم استاد مربوطه دکتر شيري دانشگاه امير کبير – دانشکده کامپيوتر و فناوري اطلاعات.
مديريت پروژه‌هاي فناوري اطلاعات
نام و نام خانوادگي : فريد ملازم 1 آزمايشکاه سيستم هاي هوشمند ( موضوع ارائه ارتباط بين component ها.
طراحي و ساخت سيستم‌هاي تجارت الکترونيک ساخت سيستم‌هاي تجارت الکترونيک ECSE.
1 فصل 8 - طراحي زيرسيستم ها برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony فرنوش گلشن آزمايشگاه سيستم هاي هوشمند بهار.
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي.
نام و نام خانوادگي : فريد ملازم 1 آزمايشکاه سيستم هاي هوشمند ( موضوع ارائه Process and Deployment Design.
برنامه سازی کامپيوتری 1 نرم افزار در کامپيوتر. برنامه سازی کامپيوتری 2 نرم افزارها سخت افزار کامپيوتر بدون نرم افزار ان غير قابل استفاده است نرم افزار.
مقدمه فصل 1 درس مهندسي نرم‌افزار 2 دكتر احمد عبداله زاده بارفروش
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي.
1 فصل 9 - طراحي ساختار داده و تراکنش ها برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony فرنوش گلشن آزمايشگاه سيستم هاي.
1 آزمايشگاه سيستم های هوشمند ( ارزيابي معماري نرم افزار.
فصل 5 - مرور سريع UML برگرفته از کتاب
1 فصل 5 - مرور سريع UML برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony افشين لامعی بهار 87.
1 آزمايشگاه سيستم های هوشمند ( انواع Architectural Styles.
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي تخصيص منابع.
اصول و مفاهيم جلب حمايت همه جانبه Mohsen Shams, MD. PhD Candidate in Health Education, School of Public Health, Tehran University of Medical Sciences.
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي.
نقشه‌برداري و مكان‌يابي همزمان به کمک الگوريتم ژنتيک
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي.
Artificial Intelligent Systems Laboratory 1 الگو‌هاي فرايند (Process Patterns) فصل 2 درس مهندسي نرم‌افزار 2 دكتر احمد عبداله زاده بارفروش تهيه كننده :
مديريت پروژه‌هاي فناوري اطلاعات راه‌حل‌هاي مبتني بر فناوري اطلاعات.
In the name of God Sharif University of Technology, International Branch, Kish Island Dr. Mohsen Sadighi Moshkenani Chapter 12.
مهندسی سيستم ‌ هاي تجارت الکترونيکی هفته ( چهارم ) – جلسه ( اول )
انواع Middleware و معرفی دو نمونه
1 مرتضي صاحب الزماني 1 کاربردها. 2 مرتضي صاحب الزماني 2 کاربردهاي کلي Emulation: براي debug کردن مدار و اطمينان از صحت عملکرد. سرعت چندان مهم نيست ( تست.
ساختارهاي تقسيم كار پروژه
برنامه نويسي پيشرفته مقدمه By: Ali Bazghandi. C++ Programming: Ali Bazghandi2 نکات مهم مراجع C++ FOR DUMMIES 5TH EDITION by Stephen Randy Davis PROGRAMMING.
Solving problems by searching Chapter 3 Modified by Vali Derhami.
1 فصل دوم تبديلات. 2 فصل دوم سرفصل مطالب مقدمه ضرب بردارها دستگاه ‌ هاي مختصات دوران ‌ ها مختصات همگن دوران ‌ ها و انتقال ‌ ها تبديلات تركيبي همگن تبديل.
سيستم خبره مرکب ( ترکيب پيشرو و پسرو ) زماني که يک فرضيه احتمالي براي جواب داشته باشيم، روش backward مي تواند خيلي کاراتر و مناسبتر باشد. اگر هيچ احتمال.
1 فصل سوم سينماتيك مستقيم. 2 محتواي فصل   تعريف مجموعه فازي   تابع عضويت   نمايش مجموعه هاي فازي   برش آلفا   متغيرهاي زباني   ساخت مجموعه.
نظریه رفتار برنامه ريزي شده Theory of Planned Behavior
“Unified Modeling Languge“
ANOVA: Analysis Of Variance
ارائه دهندگان : محسن قلعه نوئي سيد مجتبي شاکري
ANOVA: Analysis Of Variance
معماری سيستمهای با مقياس بزرگ
بسم الله الرحمن الرحيم.
دستورات کنترل و تکرار- 2 اصول كامپيوتر 1.
دکترمنصور اميني لاري ، فرناز مستوفي، امين
پردازنده هاي چند هسته اي
تبدیل فوریه (Fourier Transform)
نمايش اعداد در کامپيوتر چهار عمل اصلي
نرم افزار گمبيت Gambit Software Features
فصل 1: مفاهيم پايه.
Frameworks And Patterns
انواع Architectural Styles
سيستمهاي اطلاعات مديريت
هیدرولیک جریان در کانالهای باز
نظریه رفتار برنامه ريزي شده Theory of Planned Behavior
Ontology and Ontology Generation
آشنايي با نرم افزار.
نرم افزار عملي دوره كارداني كامپيوتر دانشگاه کردستان دانشكده فني
آزمايشگاه مهندسي نرم افزار
سيستمهاي اطلاعات مديريت
گروه كارشناسي ارشد مديريت فنآوري اطلاعات(واحد الكترونيكي تهران)
Presentation transcript:

Frameworks And Patterns آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab)

بالا بردن قابليت استفاده مجدد (Reuse) هدف اصلي مهندسي نرم افزار استفاده مجدد از طراحي و محصولات مرتبط است: چارچوب ها (Frameworks) الگوها (Patterns) آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab)

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

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

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

دسته بندي (Classification) framework ها زيرساختي (Infrastructure frameworks) با هدف ساده سازي فرايند توليد نرم افزار ميان افزاري (Middleware framework) با هدف يکپارچه سازي برنامه هاي کاربردي موجود. Enterprise application frameworks با هدف استفاده در کاربردهاي کسب و کار آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab)

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

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

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

رابطه الگوهاي طراحي با framework آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab)

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

الگوهاي طراحي Design Patterns آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab)

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

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

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

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

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

انواع الگوها و مثال هايي از هريک 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 آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab)

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

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

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

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

آزمايشگاه سيستم های هوشمند (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 آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab)

آزمايشگاه سيستم های هوشمند (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) آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab)

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

پنج لايه الگوهاي معماري (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 تعامل با کاربر آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab)

...پنج لايه الگوهاي معماري (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 آزمايشگاه سيستم های هوشمند (http://ce.aut.ac.ir/islab)