مقوله‌بندي (ادامه)

Download Report

Transcript مقوله‌بندي (ادامه)

‫بسمهتعالي‬
‫فصل چهارم‬
‫روش‌هاي شناسائي و يافتن كالس‌ها‬
‫اهداف جلسه‬
‫‪‬‬
‫درك اهميت طبقهبندي در‬
‫‪‬‬
‫آشنائي با روشهاي يافتن كالسها‬
‫‪‬‬
‫درك تفاوت بين روشهاي مبتني بر داده و مبتني بر وظيفه‬
‫‪‬‬
‫آشنائي با مدلسازي بوسيله كارتهاي‬
‫‪‬‬
‫آشنائي با اليهبندي و نقش آن‬
‫‪‬‬
‫آشنائي با مقولهبندي و نقش آن‬
‫‪‬‬
‫كارتهاي ‪ CRC‬و مقولهبندي‬
‫‪OOAD‬‬
‫‪CRC‬‬
‫‪2‬‬
‫فهرست مطالب‬
‫‪‬‬
‫طبقهبندي (‪)Classification‬‬
‫(‪)Data-Driven‬‬
‫‪‬‬
‫روشهاي مبتني بر داده‬
‫‪‬‬
‫روشهاي مبتني بر وظيفه (‪)Responsibility-Driven‬‬
‫‪‬‬
‫روشهاي شناسائي كالسهاي اوليه‬
‫‪‬‬
‫روش‬
‫‪‬‬
‫اليهبندي (‪)Layering‬‬
‫‪‬‬
‫مقولهبندي (‪)Stereotyping‬‬
‫‪CRC‬‬
‫‪3‬‬
‫طبقه‌بندي (‪)Classification‬‬
‫‪‬‬
‫طبقهههبنههدي ابههزاري اسههت كههه بوسههيله آن دانههش ههود را مرته‬
‫مينماييم‬
‫‪‬‬
‫مسئله طبقهبندي در همه رشتههاي علوم محه‪ ،‬كهاربردي و‬
‫مهندسي مطرح است‬
‫كالسهاي مطرح براي‬
‫مدلسازي يك سيستم‬
‫‪ )1‬كالسهاي مناس يا كليدي‬
‫بوسيله طبقهبندي‬
‫‪ )2‬غير مناس يا كم اهميت‬
‫‪4‬‬
‫طبقه‌بندي ‪ -‬ويژگيها‬
‫‪ )1‬هر طبقهبندي با توجه به معياري(معيارهايي) انجام ميگيرد‬
‫‪‬‬
‫معيارهاي متفاوت منجر به طبقهبنديهاي م تلف واهد شد‬
‫‪ )2‬طبقهبنههدي ايههدهآل (يعنههي بهتههرين طبقهبنههدي بههدون توج هه بههه‬
‫شرايط موجود) وجود ندارد!‬
‫‪ )3‬فرآيند طبقهبندي يك فرآيند افزايشي و تكراري‬
‫‪5‬‬
‫ويژگيهاي طبقه‌بندي در ‪OOAD‬‬
‫‪ )1‬كالسهههايي بايههد انت هها شههوند كههه بهها توجههه بههه معيارههها و‬
‫محههدوديتهههاي موجههود (اقتصههادي تكنولههو ي و ‪ )...‬سههازگار‬
‫باشند‬
‫‪ )2‬نبايههد دنبههال راهحههل طالئههي بلكههه بايههد بههدنبال راهحههل مناس هبتر‬
‫باشيم!‬
‫‪6‬‬
‫ويژگيهاي طبقه‌بندي در ‪OOAD‬‬
‫(ادامه)‬
‫‪ )3‬طبيعت افزايشي و تكراري فرآينهد طبقهبنهدي بهه صهورت زيهر‬
‫ود را نشان مي دهد‪:‬‬
‫تعدادي كالس‬
‫كانديدا (اوليه)‬
‫شناسائي‬
‫كالسهاي ديگر‬
‫افزايش درك‬
‫مسئله‪ +‬تالش‬
‫براي تشريح‬
‫سا تار و رفتار تقسيم يك كالس‬
‫كالسها‬
‫بزرگتر به تعدادي‬
‫كالس كوچكتر‬
‫بهبود‬
‫كالسهاي اوليه‬
‫تركي تعدادي كالس‬
‫كوچكتر براي تشكيل‬
‫دادن يك كالس بزرگتر‬
‫ايجاد‬
‫زيركالسهاي‬
‫جديد‬
‫‪7‬‬
‫منابع تشخيص کالس‌ها‬
‫‪‬‬
‫دو منبع اصلي براي تش يص كالسها‬
‫‪‬‬
‫فضاي مسئله (‪)Problem Space‬‬
‫‪‬‬
‫فضاي راهحل (‪)Solution Space‬‬
‫مدل تحليل‬
‫مدل طراحي مفصل‬
‫توصيف فضاي مسئله‬
‫توصيف فضاي راهحل‬
‫‪8‬‬
‫فرآيند شناسايي کالس‌ها‬
‫فرآيند شناسائي كالسها شامل دو فعاليت‬
‫اكتشاف (‪‌ )Discovery‬و ابداع (‪ )Invention‬است‬
‫اكتشاف كالسهاي‬
‫موجود‬
‫ابداع كالسهايي براي پيادهسازي‬
‫كالسهاي موجود‬
‫مثال‪ :‬ساختمان دادهها (ليست‪،‬‬
‫آرايه‪ ،‬درخت‪ ،)...،‬ارتباط با پايگاه‬
‫دادهها‪ ،‬كالسهاي كنترلي و‬
‫هماهنگ كننده‪... ،‬‬
‫‪9‬‬
‫يافتن كالس‌ها‬
‫‪‬‬
‫رهيافتها‬
‫‪ )1‬روشهاي مبتني بر داده (‪)Data Driven Approach‬‬
‫‪ )2‬روشهاي مبتني بر رفتار (‪)Responsibility Driven Approach‬‬
‫‪Data‬‬
‫اولويت با دادهها‬
‫‪Responsibilities‬‬
‫اولويت با وظايف‬
‫‪10‬‬
‫روش‌هاي مبتني بر داده‬
‫‪‬‬
‫در ايههن روشههها مبنههاي شناسههائي كالسهههاي مناس ه سيسههتم‬
‫شناسائي سا تار دادههاي مورد نياز هر كالس است‬
‫‪‬‬
‫فرآيند تعيين كالسها با پرسيدن دو سوال صورت ميگيرد‬
‫‪ -1‬سا تار هر كالس چيست؟‬
‫‪ -2‬چه عملياتي بوسيله هر كالس انجام مي گيرد؟‬
‫‪‬‬
‫مزيت‬
‫‪‬‬
‫سهههولت يههادگيري م صوصهها بههراي كسههاني كههه پههيش زمينهههاي در‬
‫روشهاي سا تيافته و طراحي مبتني بر دادهها را دارند‬
‫‪11‬‬
‫روش‌هاي مبتني بر داده‬
‫(ادامه)‬
‫روشهاي مبتني بر داده‬
‫هاي مور‬
‫بر اساس‬
‫عملياتومورد‬
‫اصلد گام‬
‫گام ‪ :1‬داده‬
‫محصو‪:2‬رسازي‬
‫واسط‬
‫نيازاز‬
‫هدف‬
‫نقض‬
‫نياز را تعيين كنيد‬
‫سرويسهاي كالس به ساختار داخلي‬
‫آن وابسته خواهند بود‬
‫ساختار داده‌هاي پيشنهادي را‬
‫معين كنيد‬
‫سرويسگيرندگان به ساختار داخلي كالس‬
‫وابسته خواهند شد‬
‫‪12‬‬
‫روش‌هاي مبتني بر وظيفه‬
‫‪‬‬
‫در ايههن روشههها مبنههاي شناسههائي كالسهههاي مناس ه سيسههتم‬
‫شناسهههائي مسهههئوليتههههاي (‪ )Responsibilities‬مهههورد نيهههاز ههههر‬
‫كالس است‬
‫‪‬‬
‫فرآيند تعيين كالسها با پرسيدن دو سوال صورت ميگيرد‬
‫‪ -1‬هههر كههالس چههه مسههئوليتي دارد؟ (چههه عمليههاتي بوسههيله ايههن كههالس‬
‫انجام ميگيرد؟)‬
‫‪ -2‬اين شي چه اطالعاتي با بقيه اشياء به اشتراك ميگذارد؟‬
‫‪13‬‬
‫روش‌هاي مبتني بر وظيفه‬
‫(ادامه)‬
‫روشهاي مبتني بر وظيفه‬
‫گام ‪ :1‬عمليات مورد‬
‫نياز را تعيين كنيد‬
‫گام ‪ :2‬ساختار دادهاي مورد‬
‫نياز را تعيين كنيد‬
‫الگوي ‪Client/Server‬‬
‫سرويسهاي كالس به ساختار داخلي‬
‫آن وابسته نخواهند بود‬
‫سرويس گيرندگان‪ ،‬مستقل از ساختار داخلي‬
‫كالس خواهند شد‬
‫‪14‬‬
‫روش‌هاي مبتني بر وظيفه‬
‫‪‬‬
‫(ادامه)‬
‫نگاه اصلي اين روش به هر كالس عبارت از موجوديتي است‬
‫كه در هر آن ميتوانهد نقهش سهرويسدهنهده يها نقهش سهرويس‬
‫گيرنده را ايفا نمايد‬
‫‪‬‬
‫هر كالس در نقش سرويسدهنده ميتواند فراهمكننهده هدمات‬
‫براي ‪ 3‬نوع سرويسگيرنده باشد‬
‫‪ -1‬سرويسگيرندگان ارجي (‪)External Clients‬‬
‫‪ -2‬سرويسگيرندگان مشتق شده (‪)Derived Clients‬‬
‫‪-3‬‬
‫ود كالس (‪)Self Client‬‬
‫‪15‬‬
‫روش‌هاي مبتني بر وظيفه‬
‫‪‬‬
‫(ادامه)‬
‫مزيت‬
‫‪‬‬
‫بزرگتههرين مزيههت ايههن روش بههه حههداكسر رسههاندن محصورسههازي در‬
‫سههههطح طراحههههي اسههههت كههههه باعهههه افههههزايش قابليههههت نگهههههداري و‬
‫انعطافپذيري سيستم نسبت به تغييرات آتي واهد گرديد‬
‫‪16‬‬
‫روش‌هاي شناسائي كالس‌هاي اوليه‬
‫‪ )1‬طبقهبنديهاي پيشنهاد شده بوسيله متدولو يهاي‬
‫‪OO‬‬
‫‪ )2‬تحليل دامنه (‪)Domain Analysis‬‬
‫‪ )3‬تحليل موارد كاربري (‪)Use Case Analysis‬‬
‫‪ )4‬تحليل لغوي صورت مساله (‪)Problem Statement Analysis‬‬
‫‪ )5‬استفاده از الگوها (‪)Patterns‬‬
‫‪ )6‬كارتهاي‬
‫‪CRC‬‬
‫‪17‬‬
‫طبقه‌بنديهاي پيشنهاد شده‪...‬‬
‫‪‬‬
‫منابع بالقوه زير براي شناسائي كالسها پيشنهاد ميشوند‬
‫‪ )1‬دستگاهها(‪ :)Devices‬دستگاههايي كه برنامه با آنها تعامل دارد‬
‫‪ )2‬نقههشههها‪ :‬نقههشهههاي گونههاگون كههه كههاربر در تعامههل بهها سيسههتم ايف ها‬
‫مينمايد‬
‫‪ )3‬محلهاي فيزيكي (مانند دفاتر سايتهها ‪ )...‬كهه بهراي سيسهتم مههم‬
‫هستند‬
‫‪ )4‬سازمانهها‪ :‬مجموعههههاي سهازماندهي شهده (مهردم منهابع ابهزار‬
‫‪ )...‬كه داراي ماموريتهاي مش صند‬
‫‪18‬‬
‫طبقه‌بنديهاي پيشنهاد شده‪...‬‬
‫‪ )5‬مفههاهيم منطقههي‪ :‬اصهههول و ايههدهههههاي منطقههي كهههه در منطههق كهههاري‬
‫سازمان بكار گرفته ميشوند‬
‫‪ )6‬سا تار‪ :‬همان روابط ‪ IS-A‬و‬
‫‪PART-OF‬‬
‫‪ )7‬ديگر سيستمها‪ :‬سيستمهاي ارجي كه برنامه با آنها تعامل دارد‬
‫‪19‬‬
‫تحليل دامنه (‪)Domain Analysis‬‬
‫‪‬‬
‫عبارتسهههت از شناسهههائي كالسهههها و اشهههياء مشهههترك در همهههه‬
‫برنامههههههههاي كهههاربردي (‪ )Applications‬متعلهههق بهههه يهههك دامنهههه‬
‫مش ص (مانند كامپايلرهها سيسهتمهاي اطالعهاتي جغرافيهايي‬
‫‪)...‬‬
‫‪‬‬
‫در ايههن روش بهها ديههدن سيسههتمهاي مههرتبط و اسههناد آنههها و بها‬
‫صهههحبت بههها كارشناسهههان بهههره در زمينهههه سيسهههتم مهههورد نظهههر‬
‫ميتوان كالسهاي كليدي يك سيستم را حدس زد‬
‫‪20‬‬
‫تحليل موارد كاربري‌‬
‫‪‬‬
‫دنبالهاي از عمليات اسهت كهه يهك سيسهتم انجهام مهيدههد تها يهك‬
‫نتيجه قابل مشاهده و ارزشمند براي كاربر فراهم نمايد‬
‫كالسهاي كليدي‬
‫موارد كاربري‬
‫تجزيه و‬
‫تحليل‬
‫‪21‬‬
‫تحليل لغوي صورت مساله‬
‫‪‬‬
‫با تحليهل صهورت مكتهو مسهاله مهيتهوان كالسههاي اوليهه را‬
‫بدست آورد‬
‫گام ‪ :1‬تعيين نامها‬
‫گام ‪ :2‬حذف نامها و‬
‫و فعلهاي موجود‬
‫فعلهاي غيرضروري‬
‫نامها‪ :‬كالسهاي‬
‫كانديدا‬
‫فعلها‪ :‬عمليات‬
‫كانديدا‬
‫‪22‬‬
‫استفاده از الگوها‬
‫‪‬‬
‫يك الگو يهك مسهاله طراحهي كهه در يهك زمينهه مشه ص مرتبها‬
‫تكههرار مههيگههردد را توصههيف كههرده و سههپس يههك راهحههل كلههي و‬
‫تكرارپذير براي آن ارائه ميكند‬
‫كاتالوگي از‬
‫الگوهاي استاندارد‬
‫كالسهاي كليدي‬
‫گزينش‬
‫‪23‬‬
‫كارت‌هاي ‪CRC‬‬
‫‪‬‬
‫روشههههي غيررسههههمي(‪ )Informal‬بههههراي شناسههههائي و توصههههيف‬
‫كالسها رفتار و مسئوليتههاي آنهها و همكهاراني (كالسههاي‬
‫ديگر) كه به كمك آنها وظايف ود را انجام ميدهند‬
‫ك ‌الس(رده)‬
‫مسئوليتها همكاران‬
‫‪Class‬‬
‫‪Responsibilities‬‬
‫‪Collaborators‬‬
‫كلمه‬
‫‪CRC‬‬
‫‪24‬‬
‫كارت‌هاي ‪CRC‬‬
‫(ادامه)‬
‫كارتهاي “‪”3×2‬‬
‫اسم كالس ‪:‬‬
‫‪Collaborators‬‬
‫‪Class Name‬‬
‫‪Responsibilities‬‬
‫مسئوليتها ‪:‬‬
‫همكاران ‪:‬‬
‫دارا بو ووودن م موعو ووهاي از اطالعو ووات زم و كو ووا ي (بو ووه صو ووورت ‪ )Abstract‬از هو وور عنصو وور در يو و‬
‫سيستم‬
‫‪ ‬در چه ردهاي ؟ )‪(Class‬‬
‫‪ ‬با چه وظايفي؟ )‪(Responsibilities‬‬
‫‪ ‬با چه همكاراني ؟ )‪(Collaborators‬‬
‫‪25‬‬
‫كارت‌هاي ‪CRC‬‬
‫‪‬‬
‫(ادامه)‬
‫هدف‬
‫‪‬‬
‫فراهم نمهودن روشهي بهراي آمهوزش مفهاهيم شهيگرا (كمهك بهه پيهاده‬
‫نمودن شيوهاي كه در آن اشياء محور ميباشند)‬
‫‪‬‬
‫حل مشكل شناسايي اشياء براي مسائلي كه آشنايي زيادي در مهورد‬
‫آنها نداريم‬
‫‪26‬‬
‫كارت‌هاي ‪ - CRC‬ويژگيها‬
‫‪‬‬
‫سادگي روش‪ :‬بر اساس يك بازي ساده با كارتها‬
‫‪‬‬
‫طبيعي بودن روند كار و نمايش سناريوهاي واقعي‬
‫… ‪What if‬‬
‫‪‬‬
‫فرايندگرايي براساس كار گروهي‬
‫‪27‬‬
‫فرآيند مدلسازي بوسيله كارت‌هاي ‪CRC‬‬
‫‪ -1‬موارد كاربري كليدي سيستم را مرور كنيد‬
‫‪ -2‬در صههههورت نيههههاز يكههههي (يهههها تركيبههههي) از تكنيههههكهههههاي يههههافتن‬
‫كالسهاي اوليهه را بهراي شناسهائي مجموعههاي از كالسههاي‬
‫كانديدا بكار ببريد‬
‫‪ -3‬به ازاي هر مورد كاربري گامهاي زير را انجام دهيد‬
‫الف) از كالسهاي موجود كالسههايي كهه مناسه ايهن مهورد كهاربري‬
‫است را مش ص نماييد‬
‫) اگر كالس مناسبي وجود نداشته باشد پس كالس جديهدي را ايجهاد‬
‫نماييد‬
‫‪28‬‬
‫فرآيند مدلسازي بوسيله ‪...‬‬
‫(ادامه)‬
‫ج) مسئوليتهاي كالس را تش يص دهيد‪:‬‬
‫‪‬‬
‫اين كالس بايد چه وظيفهاي را انجام دهد؟‬
‫‪‬‬
‫اگر وظيفهاي را در ا تيار داريد اين وظيفه متعلق به كدام كالس است؟‬
‫‪‬‬
‫بعضهههي از مسهههئوليتهههها بوسهههيله همكهههاري كهههالس بههها ديگهههر كالسهههها انجهههام‬
‫ميپذيرند بنابراين عجله نكنيد‪.‬‬
‫‪29‬‬
‫فرآيند مدلسازي بوسيله ‪...‬‬
‫(ادامه)‬
‫د) همكاران كالس را تش يص دهيد‪:‬‬
‫‪‬‬
‫سناريوي ”?…‪ “What if‬را اجرا كنيد‬
‫‪‬‬
‫همكاري هنگهامي ر مهيدههد كهه يهك كهالس نيازمنهد اطالعهاتي باشهد كهه در‬
‫ا تيار ندارد‬
‫‪‬‬
‫همكاري هنگامي ر ميدهد كه يك كالس نيازمند بهه روزرسهاني اطالعهاتي‬
‫باشد كه در ا تيار ندارد‬
‫‪‬‬
‫در هر همكاري حداقل يك كالس آغازكننده بايد وجود داشته باشد‬
‫‪30‬‬
‫فرآيند مدلسازي بوسيله ‪...‬‬
‫(ادامه)‬
‫هـ) كارتهاي ‪ CRC‬را دور ميز چر ش دهيد‪:‬‬
‫‪‬‬
‫‪‬‬
‫كارتهاي كالسهايي كه با يكديگر همكاري دارند نزديك هم قرار دهيد‬
‫هرچه همكاري قويتر باشهد نزديكهي دو كهالس بهه يكهديگر مهيبايسهت بيشهتر‬
‫باشد‬
‫‪‬‬
‫كارتهاي پر(شلوغ) را در وسط ميز قرار دهيد‬
‫‪‬‬
‫كارتها را دور ميز بچر انيد‬
‫‪‬‬
‫از كسههاني كههه در جلسههه شههركت دارنههد ب واهيههد كههه بههه كارتهههاي در حههال‬
‫چر ش توجه نمايند‬
‫‪‬‬
‫حاضرين در جلسه ارتباطات جديدي بين كالسها تش يص واهند داد‬
‫‪‬‬
‫سناريوي «چه ميشود اگر‪...‬؟» را اجرا نماييد‬
‫‪31‬‬
Producer/Consumer ‫ مسئله‬:‫مثال‬
32
‫نمونه نرم‌افزار کارت‌هاي ‪CRC‬‬
‫‪33‬‬
‫کارت‌هاي ‪ - CRC‬مزايا‬
‫‪‬‬
‫نقطه مناسبي براي شروع تحليل (جرقه ذهني)‬
‫‪‬‬
‫قابليت شبيهسازي رفتار سيستم (مرور سناريو)‬
‫‪‬‬
‫با نمودار كالسها سازگار است‬
‫‪‬‬
‫امکان کارگروهي‬
‫‪34‬‬
‫کارت‌هاي ‪ – CRC‬مزايا‬
‫(ادامه)‬
‫‪‬‬
‫نداشتن مشكل سيمبندي (‪)Wire Syndrome‬‬
‫‪‬‬
‫مقولهبندي (‪)Stereotyping‬‬
‫‪‬‬
‫رضايت كاربران‬
‫‪‬‬
‫تحليل بوسيله برگان‬
‫‪35‬‬
‫کارت‌هاي ‪ – CRC‬معايب‬
‫‪‬‬
‫مشكل برقراري ارتباط با كاربران‬
‫‪‬‬
‫كارتههههاي ‪ CRC‬تنهههها ب شهههي از نيازمنهههديههههاي يهههك سيسهههتم‬
‫شيگرا را تشكيل ميدهند‬
‫‪36‬‬
‫يهبندي و مقولهبندي‬
‫‪‬‬
‫‪‬‬
‫يههك سيسههتم پيچيههده ابعههاد گونههاگوني دارد لههذا بايههد از زوايههاي‬
‫متفاوتي به آن نگريست‬
‫مسال‪ :‬سا تمان‬
‫‪‬‬
‫يههك سهها تمان معمههوال از ديههد مشههتري داراي يههك بعههد مههيباشههد‪ .‬امهها‬
‫معمههار سهها تمان را از يههك يهها چنههد زاويههه م تلههف بههراي مشههتري‬
‫تصوير ميكند‬
‫‪37‬‬
‫يهبندي و مقولهبندي‬
‫‪‬‬
‫(ادامه)‬
‫يك سيستم نرمافزاري نيهز هماننهد يهك سها تمان يهك موجوديهت‬
‫واحههد اسههت امهها بههراي توليههد و توسههعه آن توصههيف كههاملي از‬
‫سيستم نياز است كه آن را از زواياي گونهاگون مهورد بررسهي‬
‫قرار ميدهد‬
‫هركدام از سهامداران به سيستم از يك زاويه ديد معين مينگرند‬
‫كاربر نهائي مشتري مدير پرو ه‬
‫تحليلگر طراح معمار برنامهنويس ‪...‬‬
‫‪38‬‬
‫يهبندي و مقولهبندي‬
‫‪‬‬
‫(ادامه)‬
‫در توصيف يك سيستم نرمافزاري دو اصل وجود دارد‪:‬‬
‫‪ )1‬از ديد چه كسي اين سيستم توصيف ميگردد؟‬
‫‪ )2‬ميزان پردا تن به جزئيات چه قدر است؟‬
‫اليهبندي‬
‫مقولهبندي‬
‫‪39‬‬
‫يهبندي و مقولهبندي‬
‫مقولهبندي‬
‫(ادامه)‬
‫در اين يه چه گروههايي از كالسها را ميتوان‬
‫يافت؟‬
‫سيستم‬
‫‪Layer 3‬‬
‫يهبندي‬
‫‪Layer 2‬‬
‫‪Layer 1‬‬
‫‪40‬‬
‫يهبندي (‪)Layering‬‬
‫‪‬‬
‫در اليهههبنههدي يههك سيسههتم نههرمافههزاري بههه صههورت تعههدادي از‬
‫اليهها تقسيمبندي ميگردد‬
‫‪‬‬
‫اليهههبنههدي وابسههتگيههها را كههاهش مههيدهههد بطوريكههه اليههههههاي‬
‫پايينتر از جزئيات و واسطهاي اليههاي باالتر اطالعي ندارند‬
‫‪41‬‬
‫يهبندي‬
‫‪‬‬
‫(ادامه)‬
‫يههك برنامههه كههاربردي از نظههر منطقههي بههه سههه اليههه كلههي تقسههيم‬
‫ميشود‬
‫‪ )1‬واسط كاربر (‪)User Interface‬‬
‫‪ )2‬منطق حرفه (‪)Business Logic‬‬
‫‪ )3‬سرويسهاي دادهاي (‪)Data Services‬‬
‫‪42‬‬
‫يهبندي‬
‫‪‬‬
‫(ادامه)‬
‫با توجه به تقسيمبندي قبل سه معماري وجود دارد‪:‬‬
‫‪ )1‬معماري متمركز‬
‫‪ )2‬معماري‬
‫‪Client/Server‬‬
‫‪ )3‬معماري‬
‫‪3-Tier‬‬
‫‪43‬‬
‫معماري متمركز‬
‫‪‬‬
‫در ايههن معمههاري ب ههشهههاي سهههگانههه برنامههه شههديدا بهها يكههديگر‬
‫آمي تهاند‪ .‬در واقع تنها يك اليه وجود دارد‪.‬‬
‫مزايا‬
‫‪‬‬
‫در صورت نياز به قدرت محاسباتي بيشتر پديده جزاير برنامههاي‬
‫‪ )1‬سادگي در طراحي و پيادهسازي‬
‫‪‬‬
‫معاي‬
‫كاربردي (‪ )Applications Islands‬به وجود ميآيد‬
‫‪ )1‬عدم قابليت استفاده مجدد‬
‫‪ )2‬عدم انعطافپذيري و قابليت تغيير پائين‬
‫‪ )3‬قابليت توسعهپذيري و مقياسپذيري پائين‬
‫‪44‬‬
)‫(ادامه‬
‫معماري متمركز‬
User Interface +
Business Logic +
Data Management
Mainframe
Terminal 1
45
Terminal 2
Terminal 3
‫معماري ‪Client/Server‬‬
‫‪‬‬
‫در اين معمهاري ب هشههاي سههگانهه برنامهه در دو اليهه اصهلي‬
‫قرار ميگيرند‬
‫‪‬‬
‫اليهها‬
‫‪ )1‬سرويسگيرنده‪ :‬واسط كاربر ‪ +‬ب شي از منطق حرفه‬
‫‪ )2‬سرويسدهنده‪ :‬سرويسهاي دادهاي ‪ +‬قسمت اعظم منطق حرفه‬
‫‪46‬‬
)‫(ادامه‬
Client/Server ‫معماري‬
Tier 1
Business Logic +
Data Management
Server
Tier 2
User Interface +
Business Logic
Client 1
47
Client 2
Client 3
‫معماري ‪Client/Server‬‬
‫‪‬‬
‫(ادامه)‬
‫مزايا‬
‫‪‬‬
‫واسط كاربر قابل استفاده مجدد است‬
‫‪‬‬
‫وجهههود محهههيطههههاي برنامههههسهههازي يكپارچهههه و قهههوي ماننهههد‬
‫‪Visual Studio .NET‬‬
‫‪Delphi‬‬
‫و ‪ ...‬كه امكان دسترسي به دادههاي قديمي و‬
‫جديد سازمان به صورت يكپارچه را فراهم ميكنند‬
‫‪‬‬
‫امكان استفاده مجدد جزئي از منطق حرفه در قسمت سرويسدهنده‬
‫‪48‬‬
‫معماري ‪Client/Server‬‬
‫‪‬‬
‫(ادامه)‬
‫معاي‬
‫‪‬‬
‫محل منطق حرفه مش ص نيست‬
‫‪‬‬
‫تنها ب شي از منطق حرفه قابل استفاده مجدد است‬
‫‪‬‬
‫منطههق حرفههه قابههل اسههتفاده مجههدد معمههوال بههه صههورت روالهههاي‬
‫ذ يره شده كه متعلق به يك پايگاه داده معيني است وجود دارد‪ .‬به‬
‫علت اين وابسهتگي منطهق حرفهه قابليهت اسهتفاده مجهدد را در سهطح‬
‫تمام سازمان ن واهد داشت‬
‫‪49‬‬
‫معماري ‪3-Tier‬‬
‫‪‬‬
‫در اين معماري ب شهاي سههگانهه برنامهه در سهه اليهه اصهلي‬
‫قرار ميگيرند‬
‫‪‬‬
‫منطههههق حرفههههه بههههر روي سههههرويسدهنههههده مسههههتقلي كههههه بههههه‬
‫سرويسدهنده كهاربردي (‪ )Application Server‬معهروف اسهت‬
‫قرار ميگيرد‬
‫‪50‬‬
‫معماري ‪3-Tier‬‬
‫‪‬‬
‫(ادامه)‬
‫مزايا‬
‫‪‬‬
‫معماري ‪-3‬اليهاي از تقسيمبندي منطقي برنامه تبعيت ميكند‬
‫‪‬‬
‫جداسازي منطق حرفه از بقيه قسهمتههاي برنامهه باعه بهه حهداكسر‬
‫رساندن قابليت استفاده مجدد آن است‬
‫‪‬‬
‫معاي‬
‫‪‬‬
‫پيچيدگي در طراحي و پياده سازي‬
‫‪51‬‬
)‫(ادامه‬
3-Tier ‫معماري‬
Tier 1
Data Management
Server
Tier 2
Business Logic
Tier 3
User Interface
Client 1
52
Client 2
Client 3
3-Tier ‫ و‬C/S ‫مقايسه معماري‬
Data Management
Business Logic
User Interface
Client/Server
3-Tier
Initial Development Effort
53
3-Tier ‫ و‬C/S ‫مقايسه معماري‬
Data Management
Business Logic
User Interface
Client/Server
3-Tier
Subsequent Development Efforts
54
3-Tier ‫ و‬C/S ‫مقايسه معماري‬
Data Management
Business Logic
User Interface
Client/Server
3-Tier
Client Tool Migration
55
‫مقولهبندي (‪)Stereotyping‬‬
‫‪‬‬
‫مقولهبندي اشياء كمك ميكند كه سطوح تجريد در يهك سيسهتم‬
‫نههرمافههزاري را شههنا ته شههده و بههدين صههورت تمههام افههراد تههيم‬
‫ميتوانند در سطح واحدي از تجريد فعاليت نمايند‬
‫مقولهبندي روشي براي تنظيم سطح تجريد است‬
‫(‪)Abstraction Level Tuner‬‬
‫‪56‬‬
)‫(ادامه‬
‫مقولهبندي‬
‫ مقولهبندي در متدولو يهاي‬:‫مسال‬
57

Unified Software Development Process (USDP)

Select Perspective

Responsibility Driven Design

‫مقولهبندي در ‪USDP‬‬
‫‪‬‬
‫در ‪ USDP‬كالسها به سه گروه زير تقسيم ميشوند‬
‫‪‬‬
‫كالسهاي مرزي (‪)Boundary Classes‬‬
‫‪‬‬
‫مسال‪ :‬واسط كاربر پروتكلهاي ارتباطي واسط چاپگر حسگرها و ‪...‬‬
‫‪‬‬
‫كالسهاي كنترلي (‪)Control Classes‬‬
‫‪‬‬
‫كالسهاي موجوديتي (‪)Entity Classes‬‬
‫‪‬‬
‫كههالسهههاي موجههوديتي مفههاهيم كليههدي در سيسههتم در حههال توسههعه را نمههايش‬
‫ميدهند‬
‫‪58‬‬
‫مقولهبندي در ‪Perspective‬‬
‫‪‬‬
‫كالسهاي واسط (‪)Interface Classes‬‬
‫‪‬‬
‫در سيسهههتم هتهههلداري‪ :‬اپراتهههوري كهههه بههها سيسهههتم كهههار مهههيكنهههد بههها‬
‫فهرمههايي(همههان اشهياء واسههط) ارتبهاط دارد ماننههد‪ :‬فهرم رزرو اتههاق‬
‫فرم حسا ش ص گزارشي از تعداد افراد و …‬
‫‪Check out‬‬
‫‪Form‬‬
‫‪Check in‬‬
‫‪Form‬‬
‫‪Reservation‬‬
‫‪Form‬‬
‫‪Booking‬‬
‫‪Report‬‬
‫‪59‬‬
‫مقوله‌بندي در ‪Perspective‬‬
‫‪‬‬
‫(ادامه)‬
‫كالسهاي حرفه (‪)Business Classes‬‬
‫‪‬‬
‫در سيسههههتم هتههههلداري‪ :‬اشههههيائي ماننههههد رزرو كههههردن و در واسههههت‬
‫مشتري فهاكتور حسها و … مشهاهده مهيشهوند كهه سهرويسههاي‬
‫مورد انتظار از سيستم را فراهم مينمايند‬
‫‪Account‬‬
‫‪Customer‬‬
‫‪Order‬‬
‫‪Reservation‬‬
‫‪Invoice‬‬
‫‪60‬‬
‫مقوله‌بندي در ‪Perspective‬‬
‫‪‬‬
‫(ادامه)‬
‫كالسهاي دادهاي (‪)Data Classes‬‬
‫‪‬‬
‫در سيستم هتلداري‪ :‬اشيائي مانند مدير دادههاي حسا‬
‫دادههاي حسا‬
‫تبديلكننده‬
‫دستيابي به دادههاي حسا و… مشاهده ميشوند‬
‫كه سرويسهاي دادهاي مورد انتظار اشياء ديگر را فراهم مينمايند‬
‫‪Account Data‬‬
‫‪Access‬‬
‫‪Account Data‬‬
‫‪Manager‬‬
‫‪Account Data‬‬
‫‪Conversion‬‬
‫‪61‬‬
‫مقولهبندي در ‪RDD‬‬
‫‪‬‬
‫در ‪ RDD‬كالسها به ‪ 6‬گروه زير تقسيم ميشوند‬
‫‪‬‬
‫كالسهاي كنترل كننده (‪)Controller Classes‬‬
‫‪‬‬
‫كالسهاي هماهنگ كننده (‪)Coordinator Classes‬‬
‫‪‬‬
‫كالسهاي واسط (‪)Interface Classes‬‬
‫‪‬‬
‫كالسهاي فراهمكننده سرويس (‪)Service Provider Classes‬‬
‫‪‬‬
‫كالسهاي نگهدارنده اطالعات (‪)Information Holder Classes‬‬
‫‪‬‬
‫كالسهاي سا تاري (‪)Structure Classes‬‬
‫‪62‬‬
‫كارتهاي ‪ CRC‬و مقولهبندي‬
‫‪‬‬
‫از كهههارتههههاي ‪ CRC‬مهههيتهههوان بهههراي تشههه يص طبقههههبنهههدي‬
‫(مقولهبندي) اشياء استفاده نمود‬
‫‪‬‬
‫مسال‪ :‬در يك سيستم بانكي مشتري مي واهد مبلغهي از حسها‬
‫برداشههت نمايههد‪ .‬ايههن كههار بوسههيله ماشههين پردا ههت پههول(‬
‫هود‬
‫‪Automatic‬‬
‫‪ )Teller Machine‬انجام ميگيرد‪.‬‬
‫‪63‬‬
)‫(ادامه‬
‫ و مقولهبندي‬CRC ‫كارتهاي‬
Withdrawal Transaction
Supercalss: Financial Transaction
Responsibilities
Knows account
Knows amount
Performs Withdraw
Logs Transaction
Initiates Dispensing cash
64
Collaborators
Cash Dispenser
)‫(ادامه‬
‫ و مقولهبندي‬CRC ‫كارتهاي‬
Withdrawal Transaction
Purpose
Withdraws cash from an
account and dispense it
Service Provider, Coordinator,
Business Object
Stereotypes
‫ كه در آن طبقهبندي كالس ديده ميشود‬Withdrawal Transaction ‫پشت كارت‬
65
‫پرسش و پاسخ‬
‫‪66‬‬