روش‌هاي شناسائي و يافتن كلاس‌ها

Slides:



Advertisements
Similar presentations
Queue theory.
Advertisements

سازگاري فرايندهاي يادگيري Consistency of Learning Processes ارائه دهنده : الهام باوفای حقیقی استاد درس : آقای دکتر شيري دانشگاه امير كبير دانشكده ‌ مهندسي.
طراحي و ساخت سيستم‌هاي تجارت الکترونيک چارچوب و الگوي سازمان‌هاي تجاري.
مديريت پروژه‌هاي فناوري اطلاعات سيستم‌هاي و استانداردهاي مديريت پروژه.
1 آزمايشگاه سيستم های هوشمند ( Domain-specific Architecture.
برنامه‌ريزي استراتژيک پيشرفته چارچوب کلي تجزيه و تحليل راهبردي (استراتژيک) سيستم‌ها.
طراحي و مدل کردن مؤلفه ها فصل 7 معماري نرم افزار هاي بزرگ دانيال مؤذن استاد : دکتر عبدالله زاده.
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي.
برنامه‌ريزي استراتژيک پيشرفته مدل و فرآيند کلان برنامه‌ريزي راهبردي سيستم های تجارت الکترونيک.
مهندسی نرم افزار مبتنی بر عامل
Artificial Intelligent Systems Laboratory 1 مديريت ريسك درس مهندسي نرم‌افزار 2 فصل 25 دكتر احمد عبداله زاده بارفروش تهيه كننده : پويا جافريان.
برنامه‌ريزي استراتژيک
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي تخصيص منابع.
Artificial Intelligent Systems Labratory 1 eXtreme Programming فصل 4 درس مهندسي نرم‌افزار 2 دكتر احمد عبداله زاده بارفروش تهيه كننده : پويا جافريان.
سيستمهاي اطلاعات مديريت ارائه كننده : محسن كاهاني.
مديريت پروژه‌هاي فناوري اطلاعات
طراحي و ساخت سيستم‌هاي تجارت الکترونيک ساخت سيستم‌هاي تجارت الکترونيک ECSE.
1 فصل 8 - طراحي زيرسيستم ها برگرفته از کتاب Large-Scale Software Architecture – Jeff Garland, Richard Anthony فرنوش گلشن آزمايشگاه سيستم هاي هوشمند بهار.
نام و نام خانوادگي : فريد ملازم 1 آزمايشکاه سيستم هاي هوشمند ( موضوع ارائه Process and Deployment Design.
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي.
طراحي و ساخت سيستم‌هاي تجارت الکترونيک سيستم‌هاي تجارت الکترونيک (ECS)
شاخص هاي فرايند و پروژه درس مهندسي نرم‌افزار 2
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي.
RUP فرآيند شيئ گراي توسعه نرم افزار Rational. RUP عناوين مورد بررسي n مقدمه n بهترين تجارب n نگاهي كلي به فرآيند n فرآيند مبتني بر موارد كاربرد n فرآيند.
شهرهاي اينترنتي و مراكز داده (Data Center) دكترمحسن كاهانيمحسن كاهاني دانشگاه فردوسي مشهد
مديريت پروژه‌هاي فناوري اطلاعات
Artificial Intelligent Systems Laboratory 1 مديريت پروژه فصل 21 درس مهندسي نرم‌افزار 2 دكتر احمد عبداله زاده بارفروش تهيه كننده : پويا جافريان.
سيستمهاي اطلاعات مديريت ارائه كننده : محسن كاهاني جلسه اول.
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي تخصيص منابع.
Artificial Intelligent Systems Laboratory 1 توسعه Agile فصل 4 درس مهندسي نرم‌افزار 2 دكتر احمد عبداله زاده بارفروش تهيه كننده : پويا جافريان.
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي.
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي تعيين تقدم و تاخر انجام فعاليت‌هاي پروژه.
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي.
مديريت پروژه‌هاي فناوري اطلاعات فرآيند مديريت پروژه-مرحله برنامه‌ريزي.
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.
ساختارهاي تقسيم كار پروژه
Solving problems by searching Chapter 3 Modified by Vali Derhami.
چه وقايعي در حال رخ دادن است؟  انحصار دولتي  تحميل ضرر و زيان  رشد % 9 ترافيك پست نامه ها  استفاده از سرويس هاي ساده محيط پستي انتخاب بهترين روشها.
به نام خدا دانشگاه علمي كاربردي واحد 11 تهران محيط‌هاي چند رسانه‌اي ) اسلايد سوم ) E.Javanmard Website:
1 فصل دوم تبديلات. 2 فصل دوم سرفصل مطالب مقدمه ضرب بردارها دستگاه ‌ هاي مختصات دوران ‌ ها مختصات همگن دوران ‌ ها و انتقال ‌ ها تبديلات تركيبي همگن تبديل.
ERP چيست؟ شركت پردازش سيستم‌هاي مجازي روند شكل‌گيري سيستم‌هاي برنامه‌ريزي منابع سازمان يكپارچگي سيستم‌هاي توليدي.
حوزه فعاليت ايران فاوا گسترش نه تنها گروه صنعتي ايران خودرو و صنعت خودرو، بلكه صنايع بزرگ ديگر از جمله مخابرات، نفت و پتروشيمي را نيز در‌ بر مي‌گيرد. در.
مديريت پروژه هاي فناوري اطلاعات نويسنده : Jack T. Marchewka ترجمه پاورپوينت فصل سه مترجم : محمد صادق كسلخه ايميل :
دانشكده مهندسي كامپيوتر ارائه كننده : محمد ابراهيمي
ANOVA: Analysis Of Variance
ANOVA: Analysis Of Variance
سيستمهاي اطلاعات مديريت
بسمه‌تعالي فصل سيزدهم الگوهاي طراحي.
آشنايي با برنامه نويسي به زبان C++
دکتر حسين بلندي/ دکتر سید مجید اسماعیل زاده / دکتر بهمن قربانی واقعی
تبدیل فوریه (Fourier Transform)
نمايش اعداد در کامپيوتر چهار عمل اصلي
Similarity transformation
دروازه‌هاي داده‌اي Application Gateways (Citrix)
اولین همایش فناوری اطلاعات بیرجند
كارگاه آموزشي معماري نرم‌افزار
سيستمهاي اطلاعات مديريت
هیدرولیک جریان در کانالهای باز
مديريت پروژه‌هاي فناوري اطلاعات
فيلتر كالمن معرفي : فيلتر كالمن تخمين بهينه حالت‌ها است كه براي سيستم‌هاي ديناميكي با اختلال تصادفي در سال 1960 بزاي سيستم‌هاي گسسته و در سال 1961 براي.
آشنايي با درخت هاي تصميم گيري
Test آزمون نرم افزار Mansooreh Jalalyazdi.
تحليل عملكرد يك سيستم تصويربرداري ديجيتال
گزارش نمونه‌گيري، تكميل فرم‌ها و اشتباه‌هاي رايج در تكميل پرسشنامه‌ها
مثال : فلوچارتي رسم كنيد كه دو عدد از ورودي دريافت كرده بزرگترين عدد
Petri Nets: Properties, Analysis and Application
Stem cell Transplantation
آزمايشگاه مهندسي نرم افزار
Presentation transcript:

روش‌هاي شناسائي و يافتن كلاس‌ها بسمه‌تعالي فصل چهارم روش‌هاي شناسائي و يافتن كلاس‌ها

اهداف جلسه درك اهميت طبقه‌بندي در OOAD آشنائي با روش‌هاي يافتن كلاس‌ها درك تفاوت بين روش‌هاي مبتني بر داده و مبتني بر وظيفه آشنائي با مدلسازي بوسيله كارت‌هاي CRC آشنائي با لايه‌بندي و نقش آن آشنائي با مقوله‌بندي و نقش آن كارت‌هاي CRC و مقوله‌بندي

فهرست مطالب طبقه‌بندي (Classification) روش‌هاي مبتني بر داده (Data-Driven) روش‌هاي مبتني بر وظيفه (Responsibility-Driven) روش‌هاي شناسائي كلاس‌هاي اوليه روشCRC لايه‌بندي (Layering) مقوله‌بندي (Stereotyping)

طبقه‌بندي (Classification) طبقه‌بندي ابزاري است كه بوسيله آن دانش خود را مرتب مي‌نماييم مسئله طبقه‌بندي در همه رشته‌هاي علوم محض، كاربردي و مهندسي مطرح است كلاس‌هاي مطرح براي مدلسازي يك سيستم بوسيله طبقه‌بندي 1) كلاس‌هاي مناسب يا كليدي 2) غير مناسب يا كم اهميت

طبقه‌بندي - ويژگيها 1) هر طبقه‌بندي با توجه به معياري(معيارهايي) انجام مي‌گيرد معيارهاي متفاوت منجر به طبقه‌بندي‌هاي مختلف خواهد شد 2) طبقه‌بندي ايده‌آل (يعني بهترين طبقه‌بندي بدون توجه به شرايط موجود) وجود ندارد! 3) فرآيند طبقه‌بندي يك فرآيند افزايشي و تكراري

ويژگيهاي طبقه‌بندي در OOAD 1) كلاس‌هايي بايد انتخاب شوند كه با توجه به معيارها و محدوديت‌هاي موجود (اقتصادي، تكنولوژي و ...) سازگار باشند 2) نبايد دنبال راه‌حل طلائي بلكه بايد بدنبال راه‌حل مناسبتر باشيم!

ويژگيهاي طبقه‌بندي در OOAD (ادامه) 3) طبيعت افزايشي و تكراري فرآيند طبقه‌بندي به صورت زير خود را نشان مي دهد: تعدادي كلاس كانديدا (اوليه) افزايش درك مسئله+ تلاش براي تشريح ساختار و رفتار كلاس‌ها شناسائي كلاس‌هاي ديگر بهبود كلاس‌هاي اوليه تقسيم يك كلاس بزرگتر به تعدادي كلاس كوچكتر تركيب تعدادي كلاس كوچكتر براي تشكيل دادن يك كلاس بزرگتر ايجاد زيركلاس‌هاي جديد

منابع تشخيص کلاس‌ها دو منبع اصلي براي تشخيص كلاس‌ها فضاي مسئله (Problem Space) فضاي راه‌حل (Solution Space) مدل تحليل توصيف فضاي مسئله مدل طراحي مفصل توصيف فضاي راه‌حل

فرآيند شناسايي کلاس‌ها فرآيند شناسائي كلاس‌ها شامل دو فعاليت اكتشاف (Discovery) و ابداع (Invention) است ابداع كلاس‌هايي براي پياده‌سازي كلاس‌هاي موجود اكتشاف كلاس‌هاي موجود مثال: ساختمان داده‌ها (ليست، آرايه، درخت،...)، ارتباط با پايگاه داده‌ها، كلاس‌هاي كنترلي و هماهنگ كننده، ...

يافتن كلاس‌ها رهيافت‌ها 1) روش‌هاي مبتني بر داده (Data Driven Approach) 2) روش‌هاي مبتني بر رفتار (Responsibility Driven Approach) Responsibilities Data اولويت با وظايف اولويت با داده‌ها

روش‌هاي مبتني بر داده در اين روش‌ها مبناي شناسائي كلاس‌هاي مناسب سيستم، شناسائي ساختار داده‌هاي مورد نياز هر كلاس است فرآيند تعيين كلاس‌ها با پرسيدن دو سوال صورت مي‌گيرد 1-   ساختار هر كلاس چيست؟ 2-   چه عملياتي بوسيله هر كلاس انجام مي گيرد؟ مزيت سهولت يادگيري مخصوصاً براي كساني كه پيش زمينه‌اي در روش‌هاي ساخت‌يافته و طراحي مبتني بر داده‌ها را دارند

روش‌هاي مبتني بر داده (ادامه) نقض اصل محصورسازي و هدف از واسط گام 2: عمليات مورد نياز بر اساس ساختار داده‌هاي پيشنهادي را معين كنيد گام 1: داده‌هاي مورد نياز را تعيين كنيد سرويس‌گيرندگان به ساختار داخلي كلاس وابسته خواهند شد سرويس‌هاي كلاس به ساختار داخلي آن وابسته خواهند بود

روش‌هاي مبتني بر وظيفه در اين روش‌ها مبناي شناسائي كلاس‌هاي مناسب سيستم، شناسائي مسئوليت‌هاي (Responsibilities) مورد نياز هر كلاس است فرآيند تعيين كلاس‌ها با پرسيدن دو سوال صورت مي‌گيرد 1-  هر كلاس چه مسئوليتي دارد؟ (چه عملياتي بوسيله اين كلاس انجام مي‌گيرد؟) 2- اين شي، چه اطلاعاتي با بقيه اشياء به اشتراك مي‌گذارد؟

روش‌هاي مبتني بر وظيفه (ادامه) گام 1: عمليات مورد نياز را تعيين كنيد گام 2: ساختار داده‌اي مورد نياز را تعيين كنيد روش‌هاي مبتني بر وظيفه الگوي Client/Server سرويس گيرندگان، مستقل از ساختار داخلي كلاس خواهند شد سرويس‌هاي كلاس به ساختار داخلي آن وابسته نخواهند بود

روش‌هاي مبتني بر وظيفه (ادامه) نگاه اصلي اين روش به هر كلاس عبارت از موجوديتي است كه در هر آن مي‌تواند نقش سرويس‌دهنده يا نقش سرويس گيرنده را ايفا نمايد هر كلاس در نقش سرويس‌دهنده مي‌تواند فراهم‌كننده خدمات براي 3 نوع سرويس‌گيرنده باشد 1-  سرويس‌گيرندگان خارجي (External Clients) 2- سرويس‌گيرندگان مشتق شده (Derived Clients) 3- خود كلاس (Self Client)

روش‌هاي مبتني بر وظيفه (ادامه) مزيت بزرگترين مزيت اين روش به حداكثر رساندن محصورسازي در سطح طراحي است كه باعث افزايش قابليت نگهداري و انعطاف‌پذيري سيستم نسبت به تغييرات آتي خواهد گرديد

روش‌هاي شناسائي كلاس‌هاي اوليه 1) طبقه‌بندي‌هاي پيشنهاد شده بوسيله متدولوژي‌هايOO 2) تحليل دامنه (Domain Analysis) 3) تحليل موارد كاربري (Use Case Analysis) 4) تحليل لغوي صورت مساله (Problem Statement Analysis) 5) استفاده از الگوها (Patterns) 6) كارت‌هاي CRC

طبقه‌بندي‌هاي پيشنهاد شده... منابع بالقوه زير براي شناسائي كلاس‌ها پيشنهاد مي‌شوند 1) دستگاه‌ها(Devices): دستگاه‌هايي كه برنامه با آنها تعامل دارد 2) نقش‌ها: نقش‌هاي گوناگون كه كاربر در تعامل با سيستم ايفا مي‌نمايد 3) محل‌هاي فيزيكي (مانند دفاتر، سايت‌ها،...) كه براي سيستم مهم هستند 4) سازمان‌ها: مجموعه‌هاي سازماندهي شده (مردم، منابع، ابزار، ...) كه داراي ماموريت‌هاي مشخصند

طبقه‌بندي‌هاي پيشنهاد شده... 5) مفاهيم منطقي: اصول و ايده‌هاي منطقي كه در منطق كاري سازمان بكار گرفته مي‌شوند 6) ساختار: همان روابط IS-A و PART-OF 7)  ديگر سيستم‌ها: سيستم‌هاي خارجي كه برنامه با آنها تعامل دارد

تحليل دامنه (Domain Analysis) عبارتست از شناسائي كلاس‌ها و اشياء مشترك در همه برنامه‌هاي كاربردي (Applications) متعلق به يك دامنه مشخص (مانند كامپايلرها، سيستم‌هاي اطلاعاتي جغرافيايي، ...) در اين روش، با ديدن سيستم‌هاي مرتبط و اسناد آنها و با صحبت با كارشناسان خبره در زمينه سيستم مورد نظر مي‌توان كلاس‌هاي كليدي يك سيستم را حدس زد

تحليل موارد كاربري دنباله‌اي از عمليات است كه يك سيستم انجام مي‌دهد تا يك نتيجه قابل مشاهده و ارزشمند براي كاربر فراهم نمايد كلاس‌هاي كليدي موارد كاربري تجزيه و تحليل

تحليل لغوي صورت مساله با تحليل صورت مكتوب مساله مي‌توان كلاس‌هاي اوليه را بدست آورد گام 2: حذف نام‌ها و فعل‌هاي غيرضروري گام 1: تعيين نام‌ها و فعل‌هاي موجود فعل‌ها: عمليات كانديدا نام‌ها: كلاس‌هاي كانديدا

كاتالوگي از الگوهاي استاندارد استفاده از الگوها يك الگو، يك مساله طراحي كه در يك زمينه مشخص مرتباً تكرار مي‌گردد را توصيف كرده و سپس يك راه‌حل كلي و تكرارپذير براي آن ارائه مي‌كند كاتالوگي از الگوهاي استاندارد كلاس‌هاي كليدي گزينش

كلاس(رده) مسئوليت‌ها همكاران كارت‌هاي CRC روشي غيررسمي(Informal) براي شناسائي و توصيف كلاس‌ها، رفتار و مسئوليت‌هاي آنها و همكاراني (كلاس‌هاي ديگر) كه به كمك آنها وظايف خود را انجام مي‌دهند كلاس(رده) مسئوليت‌ها همكاران كلمه Class Responsibilities Collaborators CRC

كارت‌هاي CRC (ادامه) كارت‌هاي “2×3” اسم كلاس : مسئوليت‌ها : همكاران : Class Name Collaborators Responsibilities كارت‌هاي “2×3” اسم كلاس : مسئوليت‌ها : همكاران : دارا بودن مجموعه‌اي از اطلاعات لازم و كافي (به صورت Abstract) از هر عنصر در يك سيستم در چه رده‌اي ؟ (Class) با چه وظايفي؟(Responsibilities) با چه همكاراني ؟(Collaborators)

كارت‌هاي CRC (ادامه) هدف فراهم نمودن روشي براي آموزش مفاهيم شي‌گرا (كمك به پياده نمودن شيوه‌اي كه در آن اشياء محور مي‌باشند) حل مشكل شناسايي اشياء براي مسائلي كه آشنايي زيادي در مورد آنها نداريم

كارت‌هاي CRC - ويژگيها سادگي روش: بر اساس يك بازي ساده با كارت‌ها طبيعي بودن روند كار و نمايش سناريوهاي واقعي فرايندگرايي براساس كار گروهي What if …

فرآيند مدلسازي بوسيله كارت‌هاي CRC 1- موارد كاربري كليدي سيستم را مرور كنيد 2- در صورت نياز يكي (يا تركيبي) از تكنيك‌هاي يافتن كلاس‌هاي اوليه را براي شناسائي مجموعه‌اي از كلاس‌هاي كانديدا بكار ببريد 3- به ازاي هر مورد كاربري گام‌هاي زير را انجام دهيد الف) از كلاس‌هاي موجود، كلاس‌هايي كه مناسب اين مورد كاربري است را مشخص نماييد ب) اگر كلاس مناسبي وجود نداشته باشد پس كلاس جديدي را ايجاد نماييد

فرآيند مدلسازي بوسيله ... (ادامه) ج) مسئوليت‌هاي كلاس را تشخيص دهيد: اين كلاس بايد چه وظيفه‌اي را انجام دهد؟ اگر وظيفه‌اي را در اختيار داريد، اين وظيفه متعلق به كدام كلاس است؟ بعضي از مسئوليت‌ها بوسيله همكاري كلاس با ديگر كلاس‌ها انجام مي‌پذيرند، بنابراين عجله نكنيد.

فرآيند مدلسازي بوسيله ... (ادامه) د) همكاران كلاس را تشخيص دهيد: سناريوي “What if…?” را اجرا كنيد همكاري هنگامي رخ مي‌دهد كه يك كلاس نيازمند اطلاعاتي باشد كه در اختيار ندارد همكاري هنگامي رخ مي‌دهد كه يك كلاس نيازمند به روزرساني اطلاعاتي باشد كه در اختيار ندارد در هر همكاري، حداقل يك كلاس آغازكننده بايد وجود داشته باشد

فرآيند مدلسازي بوسيله ... (ادامه) هـ) كارت‌هاي CRC را دور ميز چرخش دهيد: كارت‌هاي كلاس‌هايي كه با يكديگر همكاري دارند نزديك هم قرار دهيد هرچه همكاري قويتر باشد نزديكي دو كلاس به يكديگر مي‌بايست بيشتر باشد كارت‌هاي پر(شلوغ) را در وسط ميز قرار دهيد كارت‌ها را دور ميز بچرخانيد از كساني كه در جلسه شركت دارند بخواهيد كه به كارت‌هاي در حال چرخش توجه نمايند حاضرين در جلسه ارتباطات جديدي بين كلاس‌ها تشخيص خواهند داد سناريوي «چه مي‌شود اگر...؟» را اجرا نماييد

مثال: مسئله Producer/Consumer

نمونه نرم‌افزار کارت‌هاي CRC

کارت‌هاي CRC - مزايا نقطه مناسبي براي شروع تحليل (جرقه ذهني) قابليت شبيه‌سازي رفتار سيستم (مرور سناريو) با نمودار كلاس‌ها سازگار است امکان کارگروهي

کارت‌هاي CRC – مزايا (ادامه) نداشتن مشكل سيم‌بندي (Wire Syndrome) مقوله‌بندي (Stereotyping) رضايت كاربران تحليل بوسيله خبرگان

کارت‌هاي CRC – معايب مشكل برقراري ارتباط با كاربران

لايه‌بندي و مقوله‌بندي يك سيستم پيچيده ابعاد گوناگوني دارد لذا بايد از زواياي متفاوتي به آن نگريست مثال: ساختمان يك ساختمان معمولاً از ديد مشتري داراي يك بعد مي‌باشد. اما معمار، ساختمان را از يك يا چند زاويه مختلف براي مشتري تصوير مي‌كند

لايه‌بندي و مقوله‌بندي (ادامه) يك سيستم نرم‌افزاري نيز همانند يك ساختمان يك موجوديت واحد است، اما براي توليد و توسعه آن، توصيف كاملي از سيستم نياز است كه آن را از زواياي گوناگون مورد بررسي قرار مي‌دهد هركدام از سهامداران به سيستم از يك زاويه ديد معين مي‌نگرند كاربر نهائي، مشتري، مدير پروژه، تحليلگر، طراح، معمار، برنامه‌نويس، ...

لايه‌بندي و مقوله‌بندي (ادامه) در توصيف يك سيستم نرم‌افزاري دو اصل وجود دارد: 1) از ديد چه كسي اين سيستم توصيف مي‌گردد؟ 2) ميزان پرداختن به جزئيات چه قدر است؟ لايه‌بندي مقوله‌بندي

لايه‌بندي و مقوله‌بندي (ادامه) در اين لايه چه گروه‌هايي از كلاس‌ها را مي‌توان يافت؟‌ مقوله‌بندي سيستم Layer 3 لايه‌بندي Layer 2 Layer 1

لايه‌بندي (Layering) در لايه‌بندي يك سيستم نرم‌افزاري به صورت تعدادي از لايه‌ها تقسيم‌بندي مي‌گردد لايه‌بندي وابستگي‌ها را كاهش مي‌دهد بطوريكه لايه‌هاي پايين‌تر از جزئيات و واسط‌هاي لايه‌هاي بالاتر اطلاعي ندارند

لايه‌بندي (ادامه) يك برنامه كاربردي از نظر منطقي به سه لايه كلي تقسيم مي‌شود 1) واسط كاربر (User Interface) 2) منطق حرفه (Business Logic) 3) سرويس‌هاي داده‌اي (Data Services)

لايه‌بندي (ادامه) با توجه به تقسيم‌بندي قبل سه معماري وجود دارد: 1) معماري متمركز 2) معماري Client/Server 3) معماري 3-Tier

معماري متمركز در اين معماري بخش‌هاي سه‌گانه برنامه شديداً با يكديگر آميخته‌اند. در واقع، تنها يك لايه وجود دارد. مزايا 1) سادگي در طراحي و پياده‌سازي معايب 1) عدم قابليت استفاده مجدد 2) عدم انعطاف‌پذيري و قابليت تغيير پائين 3) قابليت توسعه‌پذيري و مقياس‌پذيري پائين در صورت نياز به قدرت محاسباتي بيشتر پديده جزاير برنامه‌هاي كاربردي (Applications Islands) به وجود مي‌آيد

معماري متمركز (ادامه) User Interface + Business Logic + Data Management Mainframe Terminal 1 Terminal 2 Terminal 3

معماري Client/Server در اين معماري بخش‌هاي سه‌گانه برنامه در دو لايه اصلي قرار مي‌گيرند لايه‌ها 1) سرويس‌گيرنده: واسط كاربر + بخشي از منطق حرفه 2) سرويس‌دهنده: سرويس‌هاي داده‌اي + قسمت اعظم منطق حرفه

معماري Client/Server (ادامه) Tier 1 Business Logic + Data Management Server Tier 2 User Interface + Business Logic Client 1 Client 2 Client 3

معماري Client/Server (ادامه) مزايا واسط كاربر قابل استفاده مجدد است وجود محيط‌هاي برنامه‌سازي يكپارچه و قوي مانند Delphi، Visual Studio .NET، و ... كه امكان دسترسي به داده‌هاي قديمي و جديد سازمان به صورت يكپارچه را فراهم مي‌كنند امكان استفاده مجدد جزئي از منطق حرفه در قسمت سرويس‌دهنده

معماري Client/Server (ادامه) معايب محل منطق حرفه مشخص نيست تنها بخشي از منطق حرفه قابل استفاده مجدد است منطق حرفه قابل استفاده مجدد، معمولاً، به صورت روال‌هاي ذخيره شده كه متعلق به يك پايگاه داده معيني است، وجود دارد. به علت اين وابستگي منطق حرفه قابليت استفاده مجدد را در سطح تمام سازمان نخواهد داشت

معماري 3-Tier در اين معماري بخش‌هاي سه‌گانه برنامه در سه لايه اصلي قرار مي‌گيرند منطق حرفه بر روي سرويس‌دهنده مستقلي كه به سرويس‌دهنده كاربردي (Application Server) معروف است، قرار مي‌گيرد

معماري 3-Tier (ادامه) مزايا معايب معماري 3-لايه‌اي از تقسيم‌بندي منطقي برنامه تبعيت مي‌كند جداسازي منطق حرفه از بقيه قسمت‌هاي برنامه باعث به حداكثر رساندن قابليت استفاده مجدد آن است معايب پيچيدگي در طراحي و پياده سازي

معماري 3-Tier (ادامه) Tier 1 Data Management Tier 2 Business Logic Server Tier 2 Business Logic Tier 3 User Interface Client 1 Client 2 Client 3

مقايسه معماري C/S و 3-Tier Data Management Business Logic User Interface Client/Server 3-Tier Initial Development Effort

مقايسه معماري C/S و 3-Tier Data Management Business Logic User Interface Client/Server 3-Tier Subsequent Development Efforts

مقايسه معماري C/S و 3-Tier Data Management Business Logic User Interface Client/Server 3-Tier Client Tool Migration

مقوله‌بندي (Stereotyping) مقوله‌‌بندي اشياء كمك مي‌كند كه سطوح تجريد در يك سيستم نرم‌افزاري را شناخته شده و بدين صورت تمام افراد تيم مي‌توانند در سطح واحدي از تجريد فعاليت نمايند مقوله‌بندي روشي براي تنظيم سطح تجريد است (Abstraction Level Tuner)

مقوله‌بندي (ادامه) مثال: مقوله‌بندي در متدولوژي‌هاي Unified Software Development Process (USDP) Select Perspective Responsibility Driven Design

مقوله‌بندي در USDP در USDP كلاس‌ها به سه گروه زير تقسيم مي‌شوند كلاس‌هاي مرزي (Boundary Classes) مثال: واسط كاربر، پروتكل‌هاي ارتباطي، واسط چاپگر، حسگرها و ... كلاس‌هاي كنترلي (Control Classes) كلاس‌هاي موجوديتي (Entity Classes) كلاس‌هاي موجوديتي مفاهيم كليدي در سيستم در حال توسعه را نمايش مي‌دهند

مقوله‌بندي در Perspective كلاس‌هاي واسط (Interface Classes) در سيستم هتل‌داري: اپراتوري كه با سيستم كار مي‌كند با فرم‌هايي(همان اشياء واسط) ارتباط دارد مانند: فرم رزرو اتاق، فرم حساب شخص، گزارشي از تعداد افراد و … Check in Form Check out Form Booking Report Reservation Form

مقوله‌بندي در Perspective (ادامه) كلاس‌هاي حرفه (Business Classes) در سيستم هتل‌داري: اشيائي مانند رزرو كردن و درخواست مشتري، فاكتور، حساب و … مشاهده مي‌شوند كه سرويس‌هاي مورد انتظار از سيستم را فراهم مي‌نمايند Customer Order Account Invoice Reservation

مقوله‌بندي در Perspective (ادامه) كلاس‌هاي داده‌اي (Data Classes) در سيستم هتل‌داري: اشيائي مانند مدير داده‌هاي حساب، تبديل‌كننده داده‌هاي حساب، دستيابي به داده‌هاي حساب و… مشاهده مي‌شوند كه سرويس‌هاي داده‌اي مورد انتظار اشياء ديگر را فراهم مي‌نمايند Account Data Conversion Account Data Manager Account Data Access

مقوله‌بندي در RDD در RDD كلاس‌ها به 6 گروه زير تقسيم مي‌شوند كلاس‌هاي كنترل كننده (Controller Classes) كلاس‌هاي هماهنگ كننده (Coordinator Classes) كلاس‌هاي واسط (Interface Classes) كلاس‌هاي فراهم‌كننده سرويس (Service Provider Classes) كلاس‌هاي نگهدارنده اطلاعات (Information Holder Classes) كلاس‌هاي ساختاري (Structure Classes)

كارت‌هاي CRC و مقوله‌بندي مثال: در يك سيستم بانكي مشتري مي‌خواهد مبلغي از حساب خود برداشت نمايد. اين كار بوسيله ماشين پرداخت پول(Automatic Teller Machine) انجام مي‌گيرد.

كارت‌هاي CRC و مقوله‌بندي (ادامه) Withdrawal Transaction Supercalss: Financial Transaction Responsibilities Collaborators Knows account Knows amount Performs Withdraw Cash Dispenser Logs Transaction Initiates Dispensing cash

كارت‌هاي CRC و مقوله‌بندي (ادامه) Withdrawal Transaction Withdraws cash from an account and dispense it Purpose Service Provider, Coordinator, Business Object Stereotypes پشت كارت Withdrawal Transaction كه در آن طبقه‌بندي كلاس ديده مي‌شود

پرسش و پاسخ