مقولهبندي (ادامه)
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