330 likes | 620 Views
فصل بيست و يکم تحليل شيءگرا. تحليل شيء گرا. تعريف کلاس هايي که نمايان گر مسئله مورد بررسي، شيوه اي که با آن کلاس ها با يکديگر ارتباط داشته و واکنش متقابل دارند، کارهاي داخلي يک شيء و مکانيزم هاي ارتباطي که به آنها اجازه مي دهد با هم کار کنند، تحليل شيء گرا گفته مي شود.
E N D
فصل بيست و يکم تحليل شيءگرا
تحليل شيء گرا • تعريف کلاس هايي که نمايان گر مسئله مورد بررسي، شيوه اي که با آن کلاس ها با يکديگر ارتباط داشته و واکنش متقابل دارند، کارهاي داخلي يک شيء و مکانيزم هاي ارتباطي که به آنها اجازه مي دهد با هم کار کنند، تحليل شيء گرا گفته مي شود. • حاصل کار يک مدل از صفات خاصه کلاس، ارتباطات و رفتارها، روابط متقابل و تصويرگري از رفتار کلاس در طول زمان خواهد بود.
نحوه تعريف کلاس ها و روابط بين آنها • نيازمندي هاي اوليه کاربر بايد بين مشتري و مهندس نرم افزار مورد تبادل قرار گيرد. • کلاس ها بايد شناسايي شوند. • سلسله مراتب کلاس بايد مشخص شود. • روابط شيء با شيء نمايان گردند. • رفتار شيء مدل سازي شوند. • وظائف 1 تا 5 به صورت تکراري به کار گرفته مي شوند تا وقتي که مدل تکميل گردد.
برخي از شيوه هاي تحليل شيء گرا 1) شيوه بوچ: يک رهيافت تکاملي که مشتمل بر دو سطح ريزفرآيند توسعه و درشت فرآيند توسعه است. در سطح ريز مجموعه اي از وظايف تحليلي است که در هر گام درشت بايد تکرار شود. 2) شيوه رامباف: يک فن مدل سازي شيئي که در آن فعاليت تحليل سه مدل را ايجاد مي کند: مدل شيء، مدل پويا و مدل کارکردي. 3) شيوه ياکوبسن ( OOSE ): نسخه ساده اي از شيوه ي شيء اختصاصي است. اين شيوه با توجه به تاکيد قوي بر Use-Case با ديگر شيوه ها متفاوت است.
برخي از شيوه هاي تحليل شيء گرا-ادامه 4) شيوه کاد و يوردان : در اين شيوه بعد از شناسايي اشيا به تعريف ساختارها پرداخته سپس زيرسيستم هاي فرعي را شناسايي مي کنيم. 5) شيوه ورفز-براک: در اين روش بين طراحي و تحليل و تمايزي وجود ندارد. بلکه ابتدا مشخصه هاي مشتري را ارزيابي مي کنيم، کلاس هاي کانديد شده را با استفاده از تجزيه گرامري از مشخصه ها جدا مي کنيم سپس کلاس ها را تعريف و روابط بين آنها را مشخص مي کنيم.
مراحل کلي تحليل شيء گرا • نيازمندي هاي مشتري را از نظر سيستم پيدا کند. • سناريوها يا موارد کاربردي را شناسايي کند. • با استفاده از نيازمندي هاي اوليه به عنوان يک راهنما، کلاس ها و اشيا را انتخاب کند. • صفات خاصه و عمليات را براي هريک از اشياي سيستم شناسايي کند. • ساختار و سلسله مراتب سازمان دهنده کلاس را تعريف کند. • يک مدل ارتباط شيئي را بسازد. • يک مدل حالت و رفتار شيئي را بسازد • مدل تحليل شيء گرا را در مقايسه با موارد کاربرد/ سناريو بازبيني کند.
زبان مدل ساري متحد ( UML) UML به مهندس نرم افزار امکان مي دهد تا يک مدل تحليل را با استفاده از علائم مدل سازي که تحت کنترل يک سري قواعد نحوي، معنايي و عمل گرا هستند، ارائه دهد. ديدگاه هاي ارائه شده در UML : ديدگاه مدل کاربر ديدگاه مدل ساختاري ديدگاه مدل رفتاري ديدگاه مدل پياده سازي ديدگاه مدل محيطي
تحليل حوزه • تحليل سيستم هاي شيء گرا در سطوح مختلف انتزاعي رخ مي دهد. در سطح تجاري يا شرکتي، فنون مربوط به تحليل شيء گرا مي توانند با هم ادغام شده و همراه با رهيافت مهندسي فرآيند تجاري باشند. اين تکنيک اغلب تحليل دامنه ناميده مي شود. • تحليل دامنه نرم افزار عبارت است از شناسايي، تحليل و تعيين مختصات و نيازهاي معمول از دامنه خاص برنامه کاربردي به ويژه براي استفاده مجدد در يک دامنه کاربردي خاص، از نظر اشياي معمول، کلاس ها، مونتاژهاي فرعي و چارچوب هاي کاري ...
فعاليت هاي تحليل دامنه • دامنه مورد تحقيق را تعريف کنيد. • اقلام بدست آمده از دامنه را طبقه بندي کنيد. • يک نمونه از برنامه هاي کاربردي در دامنه را بدست آوريد. • هر برنامه موجود در نمونه را تحليل کنيد. • يک مدل تحليل براي اشياء توسعه دهيد.
اجزاي کليدي يک مدل OOA • ديدگاه ايستا در مورد کلاس هاي معنايي • ديدگاه ايستا در مورد صفت خاصه • ديدگاه ايستا در مورد روابط • ديدگاه ايستا در مورد رفتارها • ديدگاه پويا در مورد ارتباطات • ديدگاه پويا در مورد کنترل و زمان
فرآيند تحليل شيء گرا • فرآيند تحليل شيء گرا با تعريف موارد کاربرد شروع مي شود. سپس از تکنيک مدلسازي CRC براي مستندسازي کلاس ها و صفات خاصه و عمليات آنها استفاده مي شود. مرحله بعدي کلاس بندي اشياء و ايجاد سلسله مراتب هر کلاس است. سيستم هاي فرعي را مي توان براي در برگرفتن اشياي مربوطه استفاده نمود.
تعريف موارد کاربرد • به منظور تعيين نيازمندي ها از نمودار موارد کاربرد استفاده مي کنيم. • بازيگران موجوديت هايي هستند که با سيستم ارتباط متقابل دارند. مانند کاربران، سيستم ها و ماشين هاي ديگر • موارد کاربرد بايد اهداف زير را برآورده کند: • تعريف نيازمندي هاي عملياتي و کارکردي سيستم • توصيف ارتباط متقابل سيستم و کاربر نهايي • پايه اي براي اعتبار آزمون اعتبارسنجي
مدل سازي کلاس-مسئوليت-مشارکت • اکنون نوبت به شناسايي و سازمان دهي کلاس هاي کانديد، مسئوليت کلاس ها و همکاري کلاس ها با هم مي رسد. • براي اين منظور از کارت شاخص استفاده مي کنيم که داراي ساختارزير است:
چه کلاس هايي مي توانند وارد کارت CRC شوند؟ • اطلاعات بازيابي شده • خدمات مورد نياز • صفات خاصه چندگانه • مشخصه هاي معمول و مشترک • عمليات مشترک • نيازمندي هاي ضروري
تخصيص مسئوليت ها به کلاس • هوش سيستم بايد به طور يکنواخت توزيع شود. • هر مسئوليتي بايد تا جايي که ممکن است به طور کلي بيان شود. • اطلاعات و رفتار مربوطه بايد در همان کلاس قرار بگيرد. • اطلاعات مربوط به هر چيز بايد در يک کلاس قرار گيرد نه آنکه در کلاس هاي چندگانه توزيع شود. • مسئوليت ها بايد به صورت مناسب ميان کلاس هاي مربوطه تقسيم شوند.
مشارکت (همکاري) • همکاري ها باتعيين اين مطلب شناسايي مي شوند که آيا يک کلاس مي تواند مسئوليتي را به خودي خود انجام دهد يا نه؟ اگر نمي تواند، پس لازم است با کلاس ديگر ارتباط داشته باشد و اين همکاري است. • براي شناسايي همکارها بايد سه رابطه کلي زير را بررسي کنيد: • ارتباط is-part-of • ارتباط has-knowledge-of • رابطه deponds-upon
تعريف ساختارها و سلسله مراتب حال که کلاس ها و اشياء با استفاده از مدل CRC شناسايي شدند، تحليل گر شروع به تمرکز روي ساختار مدل کلاس و سلسله مراتب منتج از آن مي کند که با ظهور کلاس ها به وجود مي آيند. کلاس تعميم يافته به صورت مجموعه اي از کلاس تخصيصي در مي آيد. صفات خاصه و عمليات نيز از کلاس تعميم يافته به کلاس هاي تخصيص يافته ارث مي رسد.
تعريف ساختارها و سلسله مراتب-ادامه
تعريف ساختارها و سلسله مراتب-ادامه در ساير موارد، يک شيء که در مدل اوليه نشان داده شده ممکن است بواقع متشکل از چند جزء باشد که خودشان مي توانند به نوبه خود به عنوان اشياء تعريف شوند. اين اشياء گروهي را مي توان به عنوان گروه يا کلاس مرکب نشان داد.
تعريف موضوعات و زير سيستم ها • به منظور سادگي در نمايش ساختار کلاس هايي که در بين خودشان همکاري دارند، آنها را به صورت مجموعه اي در مي آوريم که مسئوليت هاي منسجم و يکپارچه اي در آن وجود دارد.اين مجموعه سيستم فرعي يا پکيج ناميده مي شود. • در UML نيز مي توان بسته را به صورت نمودار بسته اي نشان داد. • در انتزاعي ترين و تجريدي ترين سطح، مدل OOA تنها حاوي مراجع بسته اي است. هر يک از مرجع ها به صورت ساختارهايي توسعه مي يابند.
مدل رابطه-شيء • رهيافت مدل سازي CRC اولين عناصر کلاس و روابط شيء را بنيان مي نهد. • روابط عبارت است از درک مسئوليت هاي هر کلاس، کارت مدل CRC حاوي فهرستي از مسئوليت هاست. • بين دو کلاس که به هم مرتبط هستند، يک رابطه وجود دارد. بنابراين بين کلاس هاي همکار هميشه يک رابطه دارد که رايج ترين آن رابطه دودويي است.
مدل رابطه-شيء (ادامه) • مدل رابطه-شيء (مثل مدل رابطه-موجوديت درUML) مي تواند داراي سه مرحله باشد: • با استفاده از کارت هاي ايندکسCRC، شبکه اي از اشياي همکار ترسيم مي شود. • با بازبيني کارت ايندکس مدلCRC، مسئوليت ها و همکاران ارزيابي شده و هر خط ارتباطي بدون عنواني نام گذاريمي شود. • وقتي روابط نام گذاري شده، ايجاد گرديدند هر پايان مورد ارزيابي قرار مي گيرد تا کارديناليته آن تعيين شود.
مدل رفتار-شيء • به منظور مدل کردن رفتار پويا در سيستم شيء گرا مي توان از مدل رفتار-شيء استفاده برد. • اين مدل نشان گر اين است که چگونه يک سيستم شيء گرا به حوادث يا محرک هاي بيروني واکنش مي دهد.
مدل رفتار-شيء ( ادامه) • مراحلي که تحليل گر بايد براي ايجاد مدل طي کند: • تمام موارد کاربرد را ارزيابي کند تا بطور کامل توالي روابط ميان آنها را در سيستم بشناسد. • حوادثي را شناسايي کند که باعث توالي عمل شده و چگونگي ارتباط آنها را با اشياي خاص درک کند. • مسير حادثه اي را براي هر مورد کاربرد ايجاد کند. • يک نمودار تغيير وضعيت براي سيستم ترسيم کند. • مدل رفتار-شيء را به منظور تعيين دقت و انسجام بازبيني کند.
شناسايي رويداد با موارد کاربرد • مورد کاربرد نمايانگر يک سري فعاليت هايي است که بازيگران سيستم و خود سيستم را در بر مي گيرد. به طور کلي، رويداد وقتي رخ مي دهد که سيستم و بازيگر نقش در آن اطلاعاتي رد و بدل مي کنند. • يک رويداد يا حادثه دو ارزشي يا بولين است، يعني حادثه اطلاعاتي نيست که تبادل شده اند بلکه در واقع، خود حقيقت و واقعيت امر، تبادل اين اطلاعات است.
بازنمايي وضعيت • در بافت و متن سيستم شيء گرا دو مشخصه متفاوت از حالات و وضعيت ها وجود دارد که بايد بررسي شوند: • وضعيت هر شيء که سيستم عمل آن را انجام مي دهد. • وضعيت سيستم از بيرون، هنگامي که سيستم عملکرد خود را انجام مي دهد. • وضعيت شيء داراي مشخصه هاي فعال و غير فعال است.
بازنمايي وضعيت-ادامه • انتقال، تغيير حالت از حالت فعال يک شيء به حالتي ديگر است که در اثر يک رويداد انتقال صورت مي گيرد. • علاوه بر مشخص کردن حادثه اي که باعث ايجاد تغيير شده، تحليل گر يک گارد يا محافظ و يک اقدام را نيز مشخص مي سازد. • گارد يک شرط بولين است که بايد به منظور ايجاد انتقال برقرار شود. • يک اقدام همزمان با انتقال وضعيت و به عنوان نتيجه آن رخ مي دهد و معمولا مستلزم يک يا چند عمليات در شيء است.
نمايش مدل تحليلي • در UML به منظور نمايش همکاري بين کلاس ها از نمودار همکاري(Interaction Diagram) و به منظور نشان دادن توالي اين همکاري ها يا همان رويدادها از نمودار توالي يا ترتيبي (Sequence Diagram) بهره مي بريم. براي نشان دادن انتقال حالت ها از نمودار حالت (State Diagram) استفاده مي کنيم. • براي نشان دادن رفتار ديناميک اشياء و کلاس هايي که شناسايي شده اند و بخشي از مدل تحليل هستند، از ترکيبي از اين نمودارها استفاده مي کنيم.
پايان فصل بيست و يکم تحليل شيءگرا